nextclaw 0.8.18 → 0.8.19

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextclaw",
3
- "version": "0.8.18",
3
+ "version": "0.8.19",
4
4
  "description": "Lightweight personal AI assistant with CLI, multi-provider routing, and channel integrations.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -333,10 +333,10 @@ Please change the parent <Route path="${P}"> to <Route path="${P==="/"?"*":`${P}
333
333
  `)},Dg=function(){var t=parseInt(document.body.getAttribute(Es)||"0",10);return isFinite(t)?t:0},RE=function(){m.useEffect(function(){return document.body.setAttribute(Es,(Dg()+1).toString()),function(){var t=Dg()-1;t<=0?document.body.removeAttribute(Es):document.body.setAttribute(Es,t.toString())}},[])},jE=function(t){var r=t.noRelative,o=t.noImportant,a=t.gapMode,l=a===void 0?"margin":a;RE();var c=m.useMemo(function(){return EE(l)},[l]);return m.createElement(NE,{styles:PE(c,!r,l,o?"":"!important")})},rf=!1;if(typeof window<"u")try{var jl=Object.defineProperty({},"passive",{get:function(){return rf=!0,!0}});window.addEventListener("test",jl,jl),window.removeEventListener("test",jl,jl)}catch{rf=!1}var ws=rf?{passive:!1}:!1,TE=function(t){return t.tagName==="TEXTAREA"},Zv=function(t,r){if(!(t instanceof Element))return!1;var o=window.getComputedStyle(t);return o[r]!=="hidden"&&!(o.overflowY===o.overflowX&&!TE(t)&&o[r]==="visible")},ME=function(t){return Zv(t,"overflowY")},IE=function(t){return Zv(t,"overflowX")},Og=function(t,r){var o=r.ownerDocument,a=r;do{typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&(a=a.host);var l=e0(t,a);if(l){var c=t0(t,a),f=c[1],h=c[2];if(f>h)return!0}a=a.parentNode}while(a&&a!==o.body);return!1},AE=function(t){var r=t.scrollTop,o=t.scrollHeight,a=t.clientHeight;return[r,o,a]},LE=function(t){var r=t.scrollLeft,o=t.scrollWidth,a=t.clientWidth;return[r,o,a]},e0=function(t,r){return t==="v"?ME(r):IE(r)},t0=function(t,r){return t==="v"?AE(r):LE(r)},zE=function(t,r){return t==="h"&&r==="rtl"?-1:1},DE=function(t,r,o,a,l){var c=zE(t,window.getComputedStyle(r).direction),f=c*a,h=o.target,g=r.contains(h),y=!1,x=f>0,b=0,k=0;do{if(!h)break;var w=t0(t,h),N=w[0],v=w[1],C=w[2],R=v-C-c*N;(N||R)&&e0(t,h)&&(b+=R,k+=N);var j=h.parentNode;h=j&&j.nodeType===Node.DOCUMENT_FRAGMENT_NODE?j.host:j}while(!g&&h!==document.body||g&&(r.contains(h)||r===h));return(x&&Math.abs(b)<1||!x&&Math.abs(k)<1)&&(y=!0),y},Tl=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},_g=function(t){return[t.deltaX,t.deltaY]},Fg=function(t){return t&&"current"in t?t.current:t},OE=function(t,r){return t[0]===r[0]&&t[1]===r[1]},_E=function(t){return`
334
334
  .block-interactivity-`.concat(t,` {pointer-events: none;}
335
335
  .allow-interactivity-`).concat(t,` {pointer-events: all;}
336
- `)},FE=0,bs=[];function UE(t){var r=m.useRef([]),o=m.useRef([0,0]),a=m.useRef(),l=m.useState(FE++)[0],c=m.useState(Jv)[0],f=m.useRef(t);m.useEffect(function(){f.current=t},[t]),m.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(l));var v=iE([t.lockRef.current],(t.shards||[]).map(Fg),!0).filter(Boolean);return v.forEach(function(C){return C.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),v.forEach(function(C){return C.classList.remove("allow-interactivity-".concat(l))})}}},[t.inert,t.lockRef.current,t.shards]);var h=m.useCallback(function(v,C){if("touches"in v&&v.touches.length===2||v.type==="wheel"&&v.ctrlKey)return!f.current.allowPinchZoom;var R=Tl(v),j=o.current,P="deltaX"in v?v.deltaX:j[0]-R[0],A="deltaY"in v?v.deltaY:j[1]-R[1],$,B=v.target,W=Math.abs(P)>Math.abs(A)?"h":"v";if("touches"in v&&W==="h"&&B.type==="range")return!1;var X=window.getSelection(),H=X&&X.anchorNode,Y=H?H===B||H.contains(B):!1;if(Y)return!1;var _=Og(W,B);if(!_)return!0;if(_?$=W:($=W==="v"?"h":"v",_=Og(W,B)),!_)return!1;if(!a.current&&"changedTouches"in v&&(P||A)&&(a.current=$),!$)return!0;var O=a.current||$;return DE(O,C,v,O==="h"?P:A)},[]),g=m.useCallback(function(v){var C=v;if(!(!bs.length||bs[bs.length-1]!==c)){var R="deltaY"in C?_g(C):Tl(C),j=r.current.filter(function($){return $.name===C.type&&($.target===C.target||C.target===$.shadowParent)&&OE($.delta,R)})[0];if(j&&j.should){C.cancelable&&C.preventDefault();return}if(!j){var P=(f.current.shards||[]).map(Fg).filter(Boolean).filter(function($){return $.contains(C.target)}),A=P.length>0?h(C,P[0]):!f.current.noIsolation;A&&C.cancelable&&C.preventDefault()}}},[]),y=m.useCallback(function(v,C,R,j){var P={name:v,delta:C,target:R,should:j,shadowParent:$E(R)};r.current.push(P),setTimeout(function(){r.current=r.current.filter(function(A){return A!==P})},1)},[]),x=m.useCallback(function(v){o.current=Tl(v),a.current=void 0},[]),b=m.useCallback(function(v){y(v.type,_g(v),v.target,h(v,t.lockRef.current))},[]),k=m.useCallback(function(v){y(v.type,Tl(v),v.target,h(v,t.lockRef.current))},[]);m.useEffect(function(){return bs.push(c),t.setCallbacks({onScrollCapture:b,onWheelCapture:b,onTouchMoveCapture:k}),document.addEventListener("wheel",g,ws),document.addEventListener("touchmove",g,ws),document.addEventListener("touchstart",x,ws),function(){bs=bs.filter(function(v){return v!==c}),document.removeEventListener("wheel",g,ws),document.removeEventListener("touchmove",g,ws),document.removeEventListener("touchstart",x,ws)}},[]);var w=t.removeScrollBar,N=t.inert;return m.createElement(m.Fragment,null,N?m.createElement(c,{styles:_E(l)}):null,w?m.createElement(jE,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function $E(t){for(var r=null;t!==null;)t instanceof ShadowRoot&&(r=t.host,t=t.host),t=t.parentNode;return r}const BE=gE(Xv,UE);var Vf=m.forwardRef(function(t,r){return m.createElement(gc,Vn({},t,{ref:r,sideCar:BE}))});Vf.classNames=gc.classNames;var HE=[" ","Enter","ArrowUp","ArrowDown"],WE=[" ","Enter"],Uo="Select",[yc,vc,VE]=cC(Uo),[Gs]=oi(Uo,[VE,pc]),xc=pc(),[KE,io]=Gs(Uo),[QE,qE]=Gs(Uo),n0=t=>{const{__scopeSelect:r,children:o,open:a,defaultOpen:l,onOpenChange:c,value:f,defaultValue:h,onValueChange:g,dir:y,name:x,autoComplete:b,disabled:k,required:w,form:N}=t,v=xc(r),[C,R]=m.useState(null),[j,P]=m.useState(null),[A,$]=m.useState(!1),B=dC(y),[W,X]=nc({prop:a,defaultProp:l??!1,onChange:c,caller:Uo}),[H,Y]=nc({prop:f,defaultProp:h,onChange:g,caller:Uo}),_=m.useRef(null),O=C?N||!!C.closest("form"):!0,[Z,ee]=m.useState(new Set),G=Array.from(Z).map(ie=>ie.props.value).join(";");return u.jsx($v,{...v,children:u.jsxs(KE,{required:w,scope:r,trigger:C,onTriggerChange:R,valueNode:j,onValueNodeChange:P,valueNodeHasChildren:A,onValueNodeHasChildrenChange:$,contentId:Lo(),value:H,onValueChange:Y,open:W,onOpenChange:X,dir:B,triggerPointerDownPosRef:_,disabled:k,children:[u.jsx(yc.Provider,{scope:r,children:u.jsx(QE,{scope:t.__scopeSelect,onNativeOptionAdd:m.useCallback(ie=>{ee(ce=>new Set(ce).add(ie))},[]),onNativeOptionRemove:m.useCallback(ie=>{ee(ce=>{const K=new Set(ce);return K.delete(ie),K})},[]),children:o})}),O?u.jsxs(N0,{"aria-hidden":!0,required:w,tabIndex:-1,name:x,autoComplete:b,value:H,onChange:ie=>Y(ie.target.value),disabled:k,form:N,children:[H===void 0?u.jsx("option",{value:""}):null,Array.from(Z)]},G):null]})})};n0.displayName=Uo;var r0="SelectTrigger",o0=m.forwardRef((t,r)=>{const{__scopeSelect:o,disabled:a=!1,...l}=t,c=xc(o),f=io(r0,o),h=f.disabled||a,g=Ze(r,f.onTriggerChange),y=vc(o),x=m.useRef("touch"),[b,k,w]=R0(v=>{const C=y().filter(P=>!P.disabled),R=C.find(P=>P.value===f.value),j=j0(C,v,R);j!==void 0&&f.onValueChange(j.value)}),N=v=>{h||(f.onOpenChange(!0),w()),v&&(f.triggerPointerDownPosRef.current={x:Math.round(v.pageX),y:Math.round(v.pageY)})};return u.jsx(Bv,{asChild:!0,...c,children:u.jsx(Be.button,{type:"button",role:"combobox","aria-controls":f.contentId,"aria-expanded":f.open,"aria-required":f.required,"aria-autocomplete":"none",dir:f.dir,"data-state":f.open?"open":"closed",disabled:h,"data-disabled":h?"":void 0,"data-placeholder":P0(f.value)?"":void 0,...l,ref:g,onClick:Oe(l.onClick,v=>{v.currentTarget.focus(),x.current!=="mouse"&&N(v)}),onPointerDown:Oe(l.onPointerDown,v=>{x.current=v.pointerType;const C=v.target;C.hasPointerCapture(v.pointerId)&&C.releasePointerCapture(v.pointerId),v.button===0&&v.ctrlKey===!1&&v.pointerType==="mouse"&&(N(v),v.preventDefault())}),onKeyDown:Oe(l.onKeyDown,v=>{const C=b.current!=="";!(v.ctrlKey||v.altKey||v.metaKey)&&v.key.length===1&&k(v.key),!(C&&v.key===" ")&&HE.includes(v.key)&&(N(),v.preventDefault())})})})});o0.displayName=r0;var s0="SelectValue",a0=m.forwardRef((t,r)=>{const{__scopeSelect:o,className:a,style:l,children:c,placeholder:f="",...h}=t,g=io(s0,o),{onValueNodeHasChildrenChange:y}=g,x=c!==void 0,b=Ze(r,g.onValueNodeChange);return Et(()=>{y(x)},[y,x]),u.jsx(Be.span,{...h,ref:b,style:{pointerEvents:"none"},children:P0(g.value)?u.jsx(u.Fragment,{children:f}):c})});a0.displayName=s0;var GE="SelectIcon",i0=m.forwardRef((t,r)=>{const{__scopeSelect:o,children:a,...l}=t;return u.jsx(Be.span,{"aria-hidden":!0,...l,ref:r,children:a||"▼"})});i0.displayName=GE;var YE="SelectPortal",l0=t=>u.jsx(mc,{asChild:!0,...t});l0.displayName=YE;var $o="SelectContent",c0=m.forwardRef((t,r)=>{const o=io($o,t.__scopeSelect),[a,l]=m.useState();if(Et(()=>{l(new DocumentFragment)},[]),!o.open){const c=a;return c?ri.createPortal(u.jsx(u0,{scope:t.__scopeSelect,children:u.jsx(yc.Slot,{scope:t.__scopeSelect,children:u.jsx("div",{children:t.children})})}),c):null}return u.jsx(d0,{...t,ref:r})});c0.displayName=$o;var bn=10,[u0,lo]=Gs($o),XE="SelectContentImpl",JE=Ka("SelectContent.RemoveScroll"),d0=m.forwardRef((t,r)=>{const{__scopeSelect:o,position:a="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:c,onPointerDownOutside:f,side:h,sideOffset:g,align:y,alignOffset:x,arrowPadding:b,collisionBoundary:k,collisionPadding:w,sticky:N,hideWhenDetached:v,avoidCollisions:C,...R}=t,j=io($o,o),[P,A]=m.useState(null),[$,B]=m.useState(null),W=Ze(r,ne=>A(ne)),[X,H]=m.useState(null),[Y,_]=m.useState(null),O=vc(o),[Z,ee]=m.useState(!1),G=m.useRef(!1);m.useEffect(()=>{if(P)return qv(P)},[P]),vv();const ie=m.useCallback(ne=>{const[he,...be]=O().map(Ie=>Ie.ref.current),[Ce]=be.slice(-1),Te=document.activeElement;for(const Ie of ne)if(Ie===Te||(Ie==null||Ie.scrollIntoView({block:"nearest"}),Ie===he&&$&&($.scrollTop=0),Ie===Ce&&$&&($.scrollTop=$.scrollHeight),Ie==null||Ie.focus(),document.activeElement!==Te))return},[O,$]),ce=m.useCallback(()=>ie([X,P]),[ie,X,P]);m.useEffect(()=>{Z&&ce()},[Z,ce]);const{onOpenChange:K,triggerPointerDownPosRef:q}=j;m.useEffect(()=>{if(P){let ne={x:0,y:0};const he=Ce=>{var Te,Ie;ne={x:Math.abs(Math.round(Ce.pageX)-(((Te=q.current)==null?void 0:Te.x)??0)),y:Math.abs(Math.round(Ce.pageY)-(((Ie=q.current)==null?void 0:Ie.y)??0))}},be=Ce=>{ne.x<=10&&ne.y<=10?Ce.preventDefault():P.contains(Ce.target)||K(!1),document.removeEventListener("pointermove",he),q.current=null};return q.current!==null&&(document.addEventListener("pointermove",he),document.addEventListener("pointerup",be,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",he),document.removeEventListener("pointerup",be,{capture:!0})}}},[P,K,q]),m.useEffect(()=>{const ne=()=>K(!1);return window.addEventListener("blur",ne),window.addEventListener("resize",ne),()=>{window.removeEventListener("blur",ne),window.removeEventListener("resize",ne)}},[K]);const[Q,M]=R0(ne=>{const he=O().filter(Te=>!Te.disabled),be=he.find(Te=>Te.ref.current===document.activeElement),Ce=j0(he,ne,be);Ce&&setTimeout(()=>Ce.ref.current.focus())}),F=m.useCallback((ne,he,be)=>{const Ce=!G.current&&!be;(j.value!==void 0&&j.value===he||Ce)&&(H(ne),Ce&&(G.current=!0))},[j.value]),le=m.useCallback(()=>P==null?void 0:P.focus(),[P]),J=m.useCallback((ne,he,be)=>{const Ce=!G.current&&!be;(j.value!==void 0&&j.value===he||Ce)&&_(ne)},[j.value]),ue=a==="popper"?of:f0,xe=ue===of?{side:h,sideOffset:g,align:y,alignOffset:x,arrowPadding:b,collisionBoundary:k,collisionPadding:w,sticky:N,hideWhenDetached:v,avoidCollisions:C}:{};return u.jsx(u0,{scope:o,content:P,viewport:$,onViewportChange:B,itemRefCallback:F,selectedItem:X,onItemLeave:le,itemTextRefCallback:J,focusSelectedItem:ce,selectedItemText:Y,position:a,isPositioned:Z,searchRef:Q,children:u.jsx(Vf,{as:JE,allowPinchZoom:!0,children:u.jsx(Df,{asChild:!0,trapped:j.open,onMountAutoFocus:ne=>{ne.preventDefault()},onUnmountAutoFocus:Oe(l,ne=>{var he;(he=j.trigger)==null||he.focus({preventScroll:!0}),ne.preventDefault()}),children:u.jsx(cc,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:ne=>ne.preventDefault(),onDismiss:()=>j.onOpenChange(!1),children:u.jsx(ue,{role:"listbox",id:j.contentId,"data-state":j.open?"open":"closed",dir:j.dir,onContextMenu:ne=>ne.preventDefault(),...R,...xe,onPlaced:()=>ee(!0),ref:W,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:Oe(R.onKeyDown,ne=>{const he=ne.ctrlKey||ne.altKey||ne.metaKey;if(ne.key==="Tab"&&ne.preventDefault(),!he&&ne.key.length===1&&M(ne.key),["ArrowUp","ArrowDown","Home","End"].includes(ne.key)){let Ce=O().filter(Te=>!Te.disabled).map(Te=>Te.ref.current);if(["ArrowUp","End"].includes(ne.key)&&(Ce=Ce.slice().reverse()),["ArrowUp","ArrowDown"].includes(ne.key)){const Te=ne.target,Ie=Ce.indexOf(Te);Ce=Ce.slice(Ie+1)}setTimeout(()=>ie(Ce)),ne.preventDefault()}})})})})})})});d0.displayName=XE;var ZE="SelectItemAlignedPosition",f0=m.forwardRef((t,r)=>{const{__scopeSelect:o,onPlaced:a,...l}=t,c=io($o,o),f=lo($o,o),[h,g]=m.useState(null),[y,x]=m.useState(null),b=Ze(r,W=>x(W)),k=vc(o),w=m.useRef(!1),N=m.useRef(!0),{viewport:v,selectedItem:C,selectedItemText:R,focusSelectedItem:j}=f,P=m.useCallback(()=>{if(c.trigger&&c.valueNode&&h&&y&&v&&C&&R){const W=c.trigger.getBoundingClientRect(),X=y.getBoundingClientRect(),H=c.valueNode.getBoundingClientRect(),Y=R.getBoundingClientRect();if(c.dir!=="rtl"){const Te=Y.left-X.left,Ie=H.left-Te,nt=W.left-Ie,vt=W.width+nt,Rn=Math.max(vt,X.width),ln=window.innerWidth-bn,cn=mg(Ie,[bn,Math.max(bn,ln-Rn)]);h.style.minWidth=vt+"px",h.style.left=cn+"px"}else{const Te=X.right-Y.right,Ie=window.innerWidth-H.right-Te,nt=window.innerWidth-W.right-Ie,vt=W.width+nt,Rn=Math.max(vt,X.width),ln=window.innerWidth-bn,cn=mg(Ie,[bn,Math.max(bn,ln-Rn)]);h.style.minWidth=vt+"px",h.style.right=cn+"px"}const _=k(),O=window.innerHeight-bn*2,Z=v.scrollHeight,ee=window.getComputedStyle(y),G=parseInt(ee.borderTopWidth,10),ie=parseInt(ee.paddingTop,10),ce=parseInt(ee.borderBottomWidth,10),K=parseInt(ee.paddingBottom,10),q=G+ie+Z+K+ce,Q=Math.min(C.offsetHeight*5,q),M=window.getComputedStyle(v),F=parseInt(M.paddingTop,10),le=parseInt(M.paddingBottom,10),J=W.top+W.height/2-bn,ue=O-J,xe=C.offsetHeight/2,ne=C.offsetTop+xe,he=G+ie+ne,be=q-he;if(he<=J){const Te=_.length>0&&C===_[_.length-1].ref.current;h.style.bottom="0px";const Ie=y.clientHeight-v.offsetTop-v.offsetHeight,nt=Math.max(ue,xe+(Te?le:0)+Ie+ce),vt=he+nt;h.style.height=vt+"px"}else{const Te=_.length>0&&C===_[0].ref.current;h.style.top="0px";const nt=Math.max(J,G+v.offsetTop+(Te?F:0)+xe)+be;h.style.height=nt+"px",v.scrollTop=he-J+v.offsetTop}h.style.margin=`${bn}px 0`,h.style.minHeight=Q+"px",h.style.maxHeight=O+"px",a==null||a(),requestAnimationFrame(()=>w.current=!0)}},[k,c.trigger,c.valueNode,h,y,v,C,R,c.dir,a]);Et(()=>P(),[P]);const[A,$]=m.useState();Et(()=>{y&&$(window.getComputedStyle(y).zIndex)},[y]);const B=m.useCallback(W=>{W&&N.current===!0&&(P(),j==null||j(),N.current=!1)},[P,j]);return u.jsx(tN,{scope:o,contentWrapper:h,shouldExpandOnScrollRef:w,onScrollButtonChange:B,children:u.jsx("div",{ref:g,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:u.jsx(Be.div,{...l,ref:b,style:{boxSizing:"border-box",maxHeight:"100%",...l.style}})})})});f0.displayName=ZE;var eN="SelectPopperPosition",of=m.forwardRef((t,r)=>{const{__scopeSelect:o,align:a="start",collisionPadding:l=bn,...c}=t,f=xc(o);return u.jsx(Hv,{...f,...c,ref:r,align:a,collisionPadding:l,style:{boxSizing:"border-box",...c.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});of.displayName=eN;var[tN,Kf]=Gs($o,{}),sf="SelectViewport",h0=m.forwardRef((t,r)=>{const{__scopeSelect:o,nonce:a,...l}=t,c=lo(sf,o),f=Kf(sf,o),h=Ze(r,c.onViewportChange),g=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),u.jsx(yc.Slot,{scope:o,children:u.jsx(Be.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:h,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:Oe(l.onScroll,y=>{const x=y.currentTarget,{contentWrapper:b,shouldExpandOnScrollRef:k}=f;if(k!=null&&k.current&&b){const w=Math.abs(g.current-x.scrollTop);if(w>0){const N=window.innerHeight-bn*2,v=parseFloat(b.style.minHeight),C=parseFloat(b.style.height),R=Math.max(v,C);if(R<N){const j=R+w,P=Math.min(N,j),A=j-P;b.style.height=P+"px",b.style.bottom==="0px"&&(x.scrollTop=A>0?A:0,b.style.justifyContent="flex-end")}}}g.current=x.scrollTop})})})]})});h0.displayName=sf;var p0="SelectGroup",[nN,rN]=Gs(p0),oN=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=Lo();return u.jsx(nN,{scope:o,id:l,children:u.jsx(Be.div,{role:"group","aria-labelledby":l,...a,ref:r})})});oN.displayName=p0;var m0="SelectLabel",g0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=rN(m0,o);return u.jsx(Be.div,{id:l.id,...a,ref:r})});g0.displayName=m0;var rc="SelectItem",[sN,y0]=Gs(rc),v0=m.forwardRef((t,r)=>{const{__scopeSelect:o,value:a,disabled:l=!1,textValue:c,...f}=t,h=io(rc,o),g=lo(rc,o),y=h.value===a,[x,b]=m.useState(c??""),[k,w]=m.useState(!1),N=Ze(r,j=>{var P;return(P=g.itemRefCallback)==null?void 0:P.call(g,j,a,l)}),v=Lo(),C=m.useRef("touch"),R=()=>{l||(h.onValueChange(a),h.onOpenChange(!1))};if(a==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(sN,{scope:o,value:a,disabled:l,textId:v,isSelected:y,onItemTextChange:m.useCallback(j=>{b(P=>P||((j==null?void 0:j.textContent)??"").trim())},[]),children:u.jsx(yc.ItemSlot,{scope:o,value:a,disabled:l,textValue:x,children:u.jsx(Be.div,{role:"option","aria-labelledby":v,"data-highlighted":k?"":void 0,"aria-selected":y&&k,"data-state":y?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...f,ref:N,onFocus:Oe(f.onFocus,()=>w(!0)),onBlur:Oe(f.onBlur,()=>w(!1)),onClick:Oe(f.onClick,()=>{C.current!=="mouse"&&R()}),onPointerUp:Oe(f.onPointerUp,()=>{C.current==="mouse"&&R()}),onPointerDown:Oe(f.onPointerDown,j=>{C.current=j.pointerType}),onPointerMove:Oe(f.onPointerMove,j=>{var P;C.current=j.pointerType,l?(P=g.onItemLeave)==null||P.call(g):C.current==="mouse"&&j.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Oe(f.onPointerLeave,j=>{var P;j.currentTarget===document.activeElement&&((P=g.onItemLeave)==null||P.call(g))}),onKeyDown:Oe(f.onKeyDown,j=>{var A;((A=g.searchRef)==null?void 0:A.current)!==""&&j.key===" "||(WE.includes(j.key)&&R(),j.key===" "&&j.preventDefault())})})})})});v0.displayName=rc;var Ua="SelectItemText",x0=m.forwardRef((t,r)=>{const{__scopeSelect:o,className:a,style:l,...c}=t,f=io(Ua,o),h=lo(Ua,o),g=y0(Ua,o),y=qE(Ua,o),[x,b]=m.useState(null),k=Ze(r,R=>b(R),g.onItemTextChange,R=>{var j;return(j=h.itemTextRefCallback)==null?void 0:j.call(h,R,g.value,g.disabled)}),w=x==null?void 0:x.textContent,N=m.useMemo(()=>u.jsx("option",{value:g.value,disabled:g.disabled,children:w},g.value),[g.disabled,g.value,w]),{onNativeOptionAdd:v,onNativeOptionRemove:C}=y;return Et(()=>(v(N),()=>C(N)),[v,C,N]),u.jsxs(u.Fragment,{children:[u.jsx(Be.span,{id:g.textId,...c,ref:k}),g.isSelected&&f.valueNode&&!f.valueNodeHasChildren?ri.createPortal(c.children,f.valueNode):null]})});x0.displayName=Ua;var w0="SelectItemIndicator",b0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t;return y0(w0,o).isSelected?u.jsx(Be.span,{"aria-hidden":!0,...a,ref:r}):null});b0.displayName=w0;var af="SelectScrollUpButton",S0=m.forwardRef((t,r)=>{const o=lo(af,t.__scopeSelect),a=Kf(af,t.__scopeSelect),[l,c]=m.useState(!1),f=Ze(r,a.onScrollButtonChange);return Et(()=>{if(o.viewport&&o.isPositioned){let h=function(){const y=g.scrollTop>0;c(y)};const g=o.viewport;return h(),g.addEventListener("scroll",h),()=>g.removeEventListener("scroll",h)}},[o.viewport,o.isPositioned]),l?u.jsx(C0,{...t,ref:f,onAutoScroll:()=>{const{viewport:h,selectedItem:g}=o;h&&g&&(h.scrollTop=h.scrollTop-g.offsetHeight)}}):null});S0.displayName=af;var lf="SelectScrollDownButton",k0=m.forwardRef((t,r)=>{const o=lo(lf,t.__scopeSelect),a=Kf(lf,t.__scopeSelect),[l,c]=m.useState(!1),f=Ze(r,a.onScrollButtonChange);return Et(()=>{if(o.viewport&&o.isPositioned){let h=function(){const y=g.scrollHeight-g.clientHeight,x=Math.ceil(g.scrollTop)<y;c(x)};const g=o.viewport;return h(),g.addEventListener("scroll",h),()=>g.removeEventListener("scroll",h)}},[o.viewport,o.isPositioned]),l?u.jsx(C0,{...t,ref:f,onAutoScroll:()=>{const{viewport:h,selectedItem:g}=o;h&&g&&(h.scrollTop=h.scrollTop+g.offsetHeight)}}):null});k0.displayName=lf;var C0=m.forwardRef((t,r)=>{const{__scopeSelect:o,onAutoScroll:a,...l}=t,c=lo("SelectScrollButton",o),f=m.useRef(null),h=vc(o),g=m.useCallback(()=>{f.current!==null&&(window.clearInterval(f.current),f.current=null)},[]);return m.useEffect(()=>()=>g(),[g]),Et(()=>{var x;const y=h().find(b=>b.ref.current===document.activeElement);(x=y==null?void 0:y.ref.current)==null||x.scrollIntoView({block:"nearest"})},[h]),u.jsx(Be.div,{"aria-hidden":!0,...l,ref:r,style:{flexShrink:0,...l.style},onPointerDown:Oe(l.onPointerDown,()=>{f.current===null&&(f.current=window.setInterval(a,50))}),onPointerMove:Oe(l.onPointerMove,()=>{var y;(y=c.onItemLeave)==null||y.call(c),f.current===null&&(f.current=window.setInterval(a,50))}),onPointerLeave:Oe(l.onPointerLeave,()=>{g()})})}),aN="SelectSeparator",E0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t;return u.jsx(Be.div,{"aria-hidden":!0,...a,ref:r})});E0.displayName=aN;var cf="SelectArrow",iN=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=xc(o),c=io(cf,o),f=lo(cf,o);return c.open&&f.position==="popper"?u.jsx(Wv,{...l,...a,ref:r}):null});iN.displayName=cf;var lN="SelectBubbleInput",N0=m.forwardRef(({__scopeSelect:t,value:r,...o},a)=>{const l=m.useRef(null),c=Ze(a,l),f=tE(r);return m.useEffect(()=>{const h=l.current;if(!h)return;const g=window.HTMLSelectElement.prototype,x=Object.getOwnPropertyDescriptor(g,"value").set;if(f!==r&&x){const b=new Event("change",{bubbles:!0});x.call(h,r),h.dispatchEvent(b)}},[f,r]),u.jsx(Be.select,{...o,style:{...Vv,...o.style},ref:c,defaultValue:r})});N0.displayName=lN;function P0(t){return t===""||t===void 0}function R0(t){const r=_o(t),o=m.useRef(""),a=m.useRef(0),l=m.useCallback(f=>{const h=o.current+f;r(h),(function g(y){o.current=y,window.clearTimeout(a.current),y!==""&&(a.current=window.setTimeout(()=>g(""),1e3))})(h)},[r]),c=m.useCallback(()=>{o.current="",window.clearTimeout(a.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(a.current),[]),[o,l,c]}function j0(t,r,o){const l=r.length>1&&Array.from(r).every(y=>y===r[0])?r[0]:r,c=o?t.indexOf(o):-1;let f=cN(t,Math.max(c,0));l.length===1&&(f=f.filter(y=>y!==o));const g=f.find(y=>y.textValue.toLowerCase().startsWith(l.toLowerCase()));return g!==o?g:void 0}function cN(t,r){return t.map((o,a)=>t[(r+a)%t.length])}var uN=n0,T0=o0,dN=a0,fN=i0,hN=l0,M0=c0,pN=h0,I0=g0,A0=v0,mN=x0,gN=b0,L0=S0,z0=k0,D0=E0;const so=uN,Bo=dN,vr=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(T0,{ref:a,className:me("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-xl border border-gray-200/80 bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 bg-white",t),...o,children:[r,u.jsx(fN,{asChild:!0,children:u.jsx(av,{className:"h-4 w-4 opacity-50"})})]}));vr.displayName=T0.displayName;const O0=m.forwardRef(({className:t,...r},o)=>u.jsx(L0,{ref:o,className:me("flex cursor-default items-center justify-center py-1",t),...r,children:u.jsx(Rk,{className:"h-4 w-4"})}));O0.displayName=L0.displayName;const _0=m.forwardRef(({className:t,...r},o)=>u.jsx(z0,{ref:o,className:me("flex cursor-default items-center justify-center py-1",t),...r,children:u.jsx(av,{className:"h-4 w-4"})}));_0.displayName=z0.displayName;const xr=m.forwardRef(({className:t,children:r,position:o="popper",...a},l)=>u.jsx(hN,{children:u.jsxs(M0,{ref:l,className:me("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-white",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:o,...a,children:[u.jsx(O0,{}),u.jsx(pN,{className:me("p-1",o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),u.jsx(_0,{})]})}));xr.displayName=M0.displayName;const yN=m.forwardRef(({className:t,...r},o)=>u.jsx(I0,{ref:o,className:me("px-2 py-1.5 text-sm font-semibold",t),...r}));yN.displayName=I0.displayName;const Ct=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(A0,{ref:a,className:me("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-100 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-gray-100",t),...o,children:[u.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:u.jsx(gN,{children:u.jsx(Pk,{className:"h-4 w-4"})})}),u.jsx(mN,{children:r})]}));Ct.displayName=A0.displayName;const vN=m.forwardRef(({className:t,...r},o)=>u.jsx(D0,{ref:o,className:me("-mx-1 my-1 h-px bg-muted",t),...r}));vN.displayName=D0.displayName;function xN(){var f;const t=lc(),{language:r,setLanguage:o}=tC(),a=((f=ug.find(h=>h.value===r))==null?void 0:f.label)??r,l=h=>{r!==h&&(o(h),window.location.reload())},c=[{target:"/model",label:E("model"),icon:Tk},{target:"/providers",label:E("providers"),icon:dv},{target:"/channels",label:E("channels"),icon:Lf},{target:"/runtime",label:E("runtime"),icon:Lk},{target:"/sessions",label:E("sessions"),icon:Dk},{target:"/cron",label:E("cron"),icon:rv},{target:"/marketplace",label:E("marketplace"),icon:Qk}];return u.jsxs("aside",{className:"w-[240px] bg-[#f0f2f7] flex flex-col h-full py-6 px-4",children:[u.jsx("div",{className:"px-2 mb-8",children:u.jsxs("div",{className:"flex items-center gap-2.5 cursor-pointer",children:[u.jsx("div",{className:"h-7 w-7 rounded-lg overflow-hidden flex items-center justify-center",children:u.jsx("img",{src:"/logo.svg",alt:"NextClaw",className:"h-full w-full object-contain"})}),u.jsx("span",{className:"text-[15px] font-semibold text-gray-800 tracking-[-0.01em]",children:"NextClaw"})]})}),u.jsx("nav",{className:"flex-1",children:u.jsx("ul",{className:"space-y-1",children:c.map(h=>{const g=h.icon;return u.jsx("li",{children:u.jsx(Ay,{to:h.target,className:({isActive:y})=>me("group w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base",y?"bg-primary/10 text-primary font-semibold":"text-gray-600 hover:bg-[#e4e7ef] hover:text-gray-800"),children:({isActive:y})=>u.jsxs(u.Fragment,{children:[u.jsx(g,{className:me("h-[17px] w-[17px] transition-colors",y?"text-primary":"text-gray-400")}),u.jsx("span",{className:"flex-1 text-left",children:h.label})]})})},h.target)})})}),u.jsxs("div",{className:"pt-3 border-t border-[#dde0ea] mt-3",children:[u.jsx("div",{className:"mb-2",children:u.jsxs(so,{value:r,onValueChange:h=>l(h),children:[u.jsxs(vr,{className:"w-full h-auto rounded-xl border-0 bg-transparent shadow-none px-3 py-2.5 text-[14px] font-medium text-gray-600 hover:bg-[#e4e7ef] focus:ring-0",children:[u.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[u.jsx(Ok,{className:"h-[17px] w-[17px] text-gray-400"}),u.jsx("span",{className:"text-left",children:E("language")})]}),u.jsx("span",{className:"ml-auto text-xs text-gray-500",children:a})]}),u.jsx(xr,{children:ug.map(h=>u.jsx(Ct,{value:h.value,className:"text-xs",children:h.label},h.value))})]})}),u.jsxs("button",{onClick:()=>t.open(),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base text-gray-600 hover:bg-[#e4e7ef] hover:text-gray-800",children:[u.jsx(sv,{className:"h-[17px] w-[17px] text-gray-400"}),u.jsx("span",{className:"flex-1 text-left",children:E("docBrowserHelp")})]})]})]})}function wN({children:t}){const{isOpen:r,mode:o}=lc();return Zk(),u.jsxs("div",{className:"h-screen flex bg-background font-sans text-foreground",children:[u.jsx(xN,{}),u.jsxs("div",{className:"flex-1 flex min-w-0 overflow-hidden relative",children:[u.jsx("div",{className:"flex-1 flex flex-col min-w-0 overflow-hidden",children:u.jsx("main",{className:"flex-1 overflow-auto custom-scrollbar p-8",children:u.jsx("div",{className:"max-w-6xl mx-auto animate-fade-in h-full",children:t})})}),r&&o==="docked"&&u.jsx(pg,{})]}),r&&o==="floating"&&u.jsx(pg,{})]})}function bN({children:t}){return u.jsx(Jk,{children:u.jsx(wN,{children:t})})}const Ug=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,$g=qy,SN=(t,r)=>o=>{var a;if((r==null?void 0:r.variants)==null)return $g(t,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:l,defaultVariants:c}=r,f=Object.keys(l).map(y=>{const x=o==null?void 0:o[y],b=c==null?void 0:c[y];if(x===null)return null;const k=Ug(x)||Ug(b);return l[y][k]}),h=o&&Object.entries(o).reduce((y,x)=>{let[b,k]=x;return k===void 0||(y[b]=k),y},{}),g=r==null||(a=r.compoundVariants)===null||a===void 0?void 0:a.reduce((y,x)=>{let{class:b,className:k,...w}=x;return Object.entries(w).every(N=>{let[v,C]=N;return Array.isArray(C)?C.includes({...c,...h}[v]):{...c,...h}[v]===C})?[...y,b,k]:y},[]);return $g(t,f,g,o==null?void 0:o.class,o==null?void 0:o.className)},kN=SN("inline-flex items-center justify-center whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-gray-200 bg-white hover:bg-gray-50 hover:text-gray-800 text-gray-600",secondary:"bg-gray-100 text-gray-700 hover:bg-gray-200/80",ghost:"hover:bg-gray-100/80 hover:text-gray-800",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-gray-100 text-gray-600 hover:bg-gray-200/80","primary-outline":"border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-lg px-3 text-xs",lg:"h-11 rounded-xl px-5 text-[14px]",xl:"h-12 rounded-2xl px-6 text-[15px]",icon:"h-9 w-9 rounded-xl"}},defaultVariants:{variant:"default",size:"default"}}),Ve=m.forwardRef(({className:t,variant:r,size:o,...a},l)=>u.jsx("button",{className:me(kN({variant:r,size:o,className:t})),ref:l,...a}));Ve.displayName="Button";const zo=m.forwardRef(({className:t,hover:r=!0,...o},a)=>u.jsx("div",{ref:a,className:me("rounded-2xl border border-gray-200/50 bg-white text-card-foreground shadow-sm transition-all duration-base",r&&"hover:shadow-md hover:border-gray-200",t),...o}));zo.displayName="Card";const $l=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("flex flex-col space-y-1.5 p-6",t),...r}));$l.displayName="CardHeader";const Bl=m.forwardRef(({className:t,...r},o)=>u.jsx("h3",{ref:o,className:me("text-[15px] font-semibold leading-tight tracking-tight text-gray-900",t),...r}));Bl.displayName="CardTitle";const Hl=m.forwardRef(({className:t,...r},o)=>u.jsx("p",{ref:o,className:me("text-[13px] text-gray-400 leading-relaxed",t),...r}));Hl.displayName="CardDescription";const Ba=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("p-6 pt-0",t),...r}));Ba.displayName="CardContent";const CN=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("flex items-center justify-between p-6 pt-0",t),...r}));CN.displayName="CardFooter";const We=m.forwardRef(({className:t,type:r,...o},a)=>u.jsx("input",{type:r,className:me("flex h-9 w-full rounded-xl border border-gray-200/80 bg-white px-3.5 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-400 focus:outline-none focus:ring-1 focus:ring-primary/40 focus:border-primary/40 transition-colors disabled:cursor-not-allowed disabled:opacity-50",t),ref:a,...o}));We.displayName="Input";const fr=m.forwardRef(({className:t,...r},o)=>u.jsx("label",{ref:o,className:me("text-sm font-medium leading-none text-gray-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...r}));fr.displayName="Label";function xn({className:t,...r}){return u.jsx("div",{className:me("animate-pulse rounded-md bg-slate-200",t),...r})}const EN="http://127.0.0.1:18791",Wl=(()=>{var t;return typeof window<"u"&&((t=window.location)!=null&&t.origin)?window.location.origin:EN})();async function Ml(t,r={}){const o=`${Wl}${t}`,a=await fetch(o,{headers:{"Content-Type":"application/json",...r.headers},...r}),l=await a.text();let c=null;if(l)try{c=JSON.parse(l)}catch{}if(!c){const f=l?l.slice(0,200):"";return{ok:!1,error:{code:"INVALID_RESPONSE",message:`Non-JSON response (${a.status} ${a.statusText})${f?`: ${f}`:""}`}}}return a.ok,c}const at={get:t=>Ml(t,{method:"GET"}),put:(t,r)=>Ml(t,{method:"PUT",body:JSON.stringify(r)}),post:(t,r)=>Ml(t,{method:"POST",body:JSON.stringify(r)}),delete:t=>Ml(t,{method:"DELETE"})};async function NN(){const t=await at.get("/api/config");if(!t.ok)throw new Error(t.error.message);return t.data}async function PN(){const t=await at.get("/api/config/meta");if(!t.ok)throw new Error(t.error.message);return t.data}async function RN(){const t=await at.get("/api/config/schema");if(!t.ok)throw new Error(t.error.message);return t.data}async function jN(t){const r=await at.put("/api/config/model",t);if(!r.ok)throw new Error(r.error.message);return r.data}async function TN(t,r){const o=await at.put(`/api/config/providers/${t}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function MN(t,r){const o=await at.put(`/api/config/channels/${t}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function IN(t){const r=await at.put("/api/config/runtime",t);if(!r.ok)throw new Error(r.error.message);return r.data}async function AN(t,r){const o=await at.post(`/api/config/actions/${t}/execute`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function LN(t){var l;const r=new URLSearchParams;(l=t==null?void 0:t.q)!=null&&l.trim()&&r.set("q",t.q.trim()),typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)&&r.set("limit",String(Math.max(0,Math.trunc(t.limit)))),typeof(t==null?void 0:t.activeMinutes)=="number"&&Number.isFinite(t.activeMinutes)&&r.set("activeMinutes",String(Math.max(0,Math.trunc(t.activeMinutes))));const o=r.toString(),a=await at.get(o?"/api/sessions?"+o:"/api/sessions");if(!a.ok)throw new Error(a.error.message);return a.data}async function zN(t,r=200){const o=await at.get(`/api/sessions/${encodeURIComponent(t)}/history?limit=${Math.max(1,Math.trunc(r))}`);if(!o.ok)throw new Error(o.error.message);return o.data}async function DN(t,r){const o=await at.put(`/api/sessions/${encodeURIComponent(t)}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function ON(t){const r=await at.delete(`/api/sessions/${encodeURIComponent(t)}`);if(!r.ok)throw new Error(r.error.message);return r.data}async function _N(t){const r=new URLSearchParams;t!=null&&t.all&&r.set("all","1");const o=r.toString(),a=await at.get(o?"/api/cron?"+o:"/api/cron");if(!a.ok)throw new Error(a.error.message);return a.data}async function FN(t){const r=await at.delete(`/api/cron/${encodeURIComponent(t)}`);if(!r.ok)throw new Error(r.error.message);return r.data}async function UN(t,r){const o=await at.put(`/api/cron/${encodeURIComponent(t)}/enable`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function $N(t,r){const o=await at.post(`/api/cron/${encodeURIComponent(t)}/run`,r);if(!o.ok)throw new Error(o.error.message);return o.data}var BN=t=>{switch(t){case"success":return VN;case"info":return QN;case"warning":return KN;case"error":return qN;default:return null}},HN=Array(12).fill(0),WN=({visible:t,className:r})=>ae.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":t},ae.createElement("div",{className:"sonner-spinner"},HN.map((o,a)=>ae.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),VN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),KN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),QN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),qN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),GN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},ae.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ae.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),YN=()=>{let[t,r]=ae.useState(document.hidden);return ae.useEffect(()=>{let o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),t},uf=1,XN=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let r=this.subscribers.indexOf(t);this.subscribers.splice(r,1)}),this.publish=t=>{this.subscribers.forEach(r=>r(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var r;let{message:o,...a}=t,l=typeof(t==null?void 0:t.id)=="number"||((r=t.id)==null?void 0:r.length)>0?t.id:uf++,c=this.toasts.find(h=>h.id===l),f=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),c?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...t,id:l,title:o}),{...h,...t,id:l,dismissible:f,title:o}):h):this.addToast({title:o,...a,dismissible:f,id:l}),l},this.dismiss=t=>(this.dismissedToasts.add(t),t||this.toasts.forEach(r=>{this.subscribers.forEach(o=>o({id:r.id,dismiss:!0}))}),this.subscribers.forEach(r=>r({id:t,dismiss:!0})),t),this.message=(t,r)=>this.create({...r,message:t}),this.error=(t,r)=>this.create({...r,message:t,type:"error"}),this.success=(t,r)=>this.create({...r,type:"success",message:t}),this.info=(t,r)=>this.create({...r,type:"info",message:t}),this.warning=(t,r)=>this.create({...r,type:"warning",message:t}),this.loading=(t,r)=>this.create({...r,type:"loading",message:t}),this.promise=(t,r)=>{if(!r)return;let o;r.loading!==void 0&&(o=this.create({...r,promise:t,type:"loading",message:r.loading,description:typeof r.description!="function"?r.description:void 0}));let a=t instanceof Promise?t:t(),l=o!==void 0,c,f=a.then(async g=>{if(c=["resolve",g],ae.isValidElement(g))l=!1,this.create({id:o,type:"default",message:g});else if(ZN(g)&&!g.ok){l=!1;let y=typeof r.error=="function"?await r.error(`HTTP error! status: ${g.status}`):r.error,x=typeof r.description=="function"?await r.description(`HTTP error! status: ${g.status}`):r.description;this.create({id:o,type:"error",message:y,description:x})}else if(r.success!==void 0){l=!1;let y=typeof r.success=="function"?await r.success(g):r.success,x=typeof r.description=="function"?await r.description(g):r.description;this.create({id:o,type:"success",message:y,description:x})}}).catch(async g=>{if(c=["reject",g],r.error!==void 0){l=!1;let y=typeof r.error=="function"?await r.error(g):r.error,x=typeof r.description=="function"?await r.description(g):r.description;this.create({id:o,type:"error",message:y,description:x})}}).finally(()=>{var g;l&&(this.dismiss(o),o=void 0),(g=r.finally)==null||g.call(r)}),h=()=>new Promise((g,y)=>f.then(()=>c[0]==="reject"?y(c[1]):g(c[1])).catch(y));return typeof o!="string"&&typeof o!="number"?{unwrap:h}:Object.assign(o,{unwrap:h})},this.custom=(t,r)=>{let o=(r==null?void 0:r.id)||uf++;return this.create({jsx:t(o),id:o,...r}),o},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Bt=new XN,JN=(t,r)=>{let o=(r==null?void 0:r.id)||uf++;return Bt.addToast({title:t,...r,id:o}),o},ZN=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",eP=JN,tP=()=>Bt.toasts,nP=()=>Bt.getActiveToasts(),Ue=Object.assign(eP,{success:Bt.success,info:Bt.info,warning:Bt.warning,error:Bt.error,custom:Bt.custom,message:Bt.message,promise:Bt.promise,dismiss:Bt.dismiss,loading:Bt.loading},{getHistory:tP,getToasts:nP});function rP(t,{insertAt:r}={}){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",r==="top"&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}rP(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
336
+ `)},FE=0,bs=[];function UE(t){var r=m.useRef([]),o=m.useRef([0,0]),a=m.useRef(),l=m.useState(FE++)[0],c=m.useState(Jv)[0],f=m.useRef(t);m.useEffect(function(){f.current=t},[t]),m.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(l));var v=iE([t.lockRef.current],(t.shards||[]).map(Fg),!0).filter(Boolean);return v.forEach(function(C){return C.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),v.forEach(function(C){return C.classList.remove("allow-interactivity-".concat(l))})}}},[t.inert,t.lockRef.current,t.shards]);var h=m.useCallback(function(v,C){if("touches"in v&&v.touches.length===2||v.type==="wheel"&&v.ctrlKey)return!f.current.allowPinchZoom;var R=Tl(v),j=o.current,P="deltaX"in v?v.deltaX:j[0]-R[0],A="deltaY"in v?v.deltaY:j[1]-R[1],$,B=v.target,W=Math.abs(P)>Math.abs(A)?"h":"v";if("touches"in v&&W==="h"&&B.type==="range")return!1;var X=window.getSelection(),H=X&&X.anchorNode,Y=H?H===B||H.contains(B):!1;if(Y)return!1;var _=Og(W,B);if(!_)return!0;if(_?$=W:($=W==="v"?"h":"v",_=Og(W,B)),!_)return!1;if(!a.current&&"changedTouches"in v&&(P||A)&&(a.current=$),!$)return!0;var O=a.current||$;return DE(O,C,v,O==="h"?P:A)},[]),g=m.useCallback(function(v){var C=v;if(!(!bs.length||bs[bs.length-1]!==c)){var R="deltaY"in C?_g(C):Tl(C),j=r.current.filter(function($){return $.name===C.type&&($.target===C.target||C.target===$.shadowParent)&&OE($.delta,R)})[0];if(j&&j.should){C.cancelable&&C.preventDefault();return}if(!j){var P=(f.current.shards||[]).map(Fg).filter(Boolean).filter(function($){return $.contains(C.target)}),A=P.length>0?h(C,P[0]):!f.current.noIsolation;A&&C.cancelable&&C.preventDefault()}}},[]),y=m.useCallback(function(v,C,R,j){var P={name:v,delta:C,target:R,should:j,shadowParent:$E(R)};r.current.push(P),setTimeout(function(){r.current=r.current.filter(function(A){return A!==P})},1)},[]),x=m.useCallback(function(v){o.current=Tl(v),a.current=void 0},[]),b=m.useCallback(function(v){y(v.type,_g(v),v.target,h(v,t.lockRef.current))},[]),k=m.useCallback(function(v){y(v.type,Tl(v),v.target,h(v,t.lockRef.current))},[]);m.useEffect(function(){return bs.push(c),t.setCallbacks({onScrollCapture:b,onWheelCapture:b,onTouchMoveCapture:k}),document.addEventListener("wheel",g,ws),document.addEventListener("touchmove",g,ws),document.addEventListener("touchstart",x,ws),function(){bs=bs.filter(function(v){return v!==c}),document.removeEventListener("wheel",g,ws),document.removeEventListener("touchmove",g,ws),document.removeEventListener("touchstart",x,ws)}},[]);var w=t.removeScrollBar,N=t.inert;return m.createElement(m.Fragment,null,N?m.createElement(c,{styles:_E(l)}):null,w?m.createElement(jE,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function $E(t){for(var r=null;t!==null;)t instanceof ShadowRoot&&(r=t.host,t=t.host),t=t.parentNode;return r}const BE=gE(Xv,UE);var Vf=m.forwardRef(function(t,r){return m.createElement(gc,Vn({},t,{ref:r,sideCar:BE}))});Vf.classNames=gc.classNames;var HE=[" ","Enter","ArrowUp","ArrowDown"],WE=[" ","Enter"],Uo="Select",[yc,vc,VE]=cC(Uo),[Gs]=oi(Uo,[VE,pc]),xc=pc(),[KE,io]=Gs(Uo),[QE,qE]=Gs(Uo),n0=t=>{const{__scopeSelect:r,children:o,open:a,defaultOpen:l,onOpenChange:c,value:f,defaultValue:h,onValueChange:g,dir:y,name:x,autoComplete:b,disabled:k,required:w,form:N}=t,v=xc(r),[C,R]=m.useState(null),[j,P]=m.useState(null),[A,$]=m.useState(!1),B=dC(y),[W,X]=nc({prop:a,defaultProp:l??!1,onChange:c,caller:Uo}),[H,Y]=nc({prop:f,defaultProp:h,onChange:g,caller:Uo}),_=m.useRef(null),O=C?N||!!C.closest("form"):!0,[Z,ee]=m.useState(new Set),G=Array.from(Z).map(ie=>ie.props.value).join(";");return u.jsx($v,{...v,children:u.jsxs(KE,{required:w,scope:r,trigger:C,onTriggerChange:R,valueNode:j,onValueNodeChange:P,valueNodeHasChildren:A,onValueNodeHasChildrenChange:$,contentId:Lo(),value:H,onValueChange:Y,open:W,onOpenChange:X,dir:B,triggerPointerDownPosRef:_,disabled:k,children:[u.jsx(yc.Provider,{scope:r,children:u.jsx(QE,{scope:t.__scopeSelect,onNativeOptionAdd:m.useCallback(ie=>{ee(ce=>new Set(ce).add(ie))},[]),onNativeOptionRemove:m.useCallback(ie=>{ee(ce=>{const K=new Set(ce);return K.delete(ie),K})},[]),children:o})}),O?u.jsxs(N0,{"aria-hidden":!0,required:w,tabIndex:-1,name:x,autoComplete:b,value:H,onChange:ie=>Y(ie.target.value),disabled:k,form:N,children:[H===void 0?u.jsx("option",{value:""}):null,Array.from(Z)]},G):null]})})};n0.displayName=Uo;var r0="SelectTrigger",o0=m.forwardRef((t,r)=>{const{__scopeSelect:o,disabled:a=!1,...l}=t,c=xc(o),f=io(r0,o),h=f.disabled||a,g=Ze(r,f.onTriggerChange),y=vc(o),x=m.useRef("touch"),[b,k,w]=R0(v=>{const C=y().filter(P=>!P.disabled),R=C.find(P=>P.value===f.value),j=j0(C,v,R);j!==void 0&&f.onValueChange(j.value)}),N=v=>{h||(f.onOpenChange(!0),w()),v&&(f.triggerPointerDownPosRef.current={x:Math.round(v.pageX),y:Math.round(v.pageY)})};return u.jsx(Bv,{asChild:!0,...c,children:u.jsx(Be.button,{type:"button",role:"combobox","aria-controls":f.contentId,"aria-expanded":f.open,"aria-required":f.required,"aria-autocomplete":"none",dir:f.dir,"data-state":f.open?"open":"closed",disabled:h,"data-disabled":h?"":void 0,"data-placeholder":P0(f.value)?"":void 0,...l,ref:g,onClick:Oe(l.onClick,v=>{v.currentTarget.focus(),x.current!=="mouse"&&N(v)}),onPointerDown:Oe(l.onPointerDown,v=>{x.current=v.pointerType;const C=v.target;C.hasPointerCapture(v.pointerId)&&C.releasePointerCapture(v.pointerId),v.button===0&&v.ctrlKey===!1&&v.pointerType==="mouse"&&(N(v),v.preventDefault())}),onKeyDown:Oe(l.onKeyDown,v=>{const C=b.current!=="";!(v.ctrlKey||v.altKey||v.metaKey)&&v.key.length===1&&k(v.key),!(C&&v.key===" ")&&HE.includes(v.key)&&(N(),v.preventDefault())})})})});o0.displayName=r0;var s0="SelectValue",a0=m.forwardRef((t,r)=>{const{__scopeSelect:o,className:a,style:l,children:c,placeholder:f="",...h}=t,g=io(s0,o),{onValueNodeHasChildrenChange:y}=g,x=c!==void 0,b=Ze(r,g.onValueNodeChange);return Et(()=>{y(x)},[y,x]),u.jsx(Be.span,{...h,ref:b,style:{pointerEvents:"none"},children:P0(g.value)?u.jsx(u.Fragment,{children:f}):c})});a0.displayName=s0;var GE="SelectIcon",i0=m.forwardRef((t,r)=>{const{__scopeSelect:o,children:a,...l}=t;return u.jsx(Be.span,{"aria-hidden":!0,...l,ref:r,children:a||"▼"})});i0.displayName=GE;var YE="SelectPortal",l0=t=>u.jsx(mc,{asChild:!0,...t});l0.displayName=YE;var $o="SelectContent",c0=m.forwardRef((t,r)=>{const o=io($o,t.__scopeSelect),[a,l]=m.useState();if(Et(()=>{l(new DocumentFragment)},[]),!o.open){const c=a;return c?ri.createPortal(u.jsx(u0,{scope:t.__scopeSelect,children:u.jsx(yc.Slot,{scope:t.__scopeSelect,children:u.jsx("div",{children:t.children})})}),c):null}return u.jsx(d0,{...t,ref:r})});c0.displayName=$o;var bn=10,[u0,lo]=Gs($o),XE="SelectContentImpl",JE=Ka("SelectContent.RemoveScroll"),d0=m.forwardRef((t,r)=>{const{__scopeSelect:o,position:a="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:c,onPointerDownOutside:f,side:h,sideOffset:g,align:y,alignOffset:x,arrowPadding:b,collisionBoundary:k,collisionPadding:w,sticky:N,hideWhenDetached:v,avoidCollisions:C,...R}=t,j=io($o,o),[P,A]=m.useState(null),[$,B]=m.useState(null),W=Ze(r,ne=>A(ne)),[X,H]=m.useState(null),[Y,_]=m.useState(null),O=vc(o),[Z,ee]=m.useState(!1),G=m.useRef(!1);m.useEffect(()=>{if(P)return qv(P)},[P]),vv();const ie=m.useCallback(ne=>{const[he,...be]=O().map(Ie=>Ie.ref.current),[Ce]=be.slice(-1),Te=document.activeElement;for(const Ie of ne)if(Ie===Te||(Ie==null||Ie.scrollIntoView({block:"nearest"}),Ie===he&&$&&($.scrollTop=0),Ie===Ce&&$&&($.scrollTop=$.scrollHeight),Ie==null||Ie.focus(),document.activeElement!==Te))return},[O,$]),ce=m.useCallback(()=>ie([X,P]),[ie,X,P]);m.useEffect(()=>{Z&&ce()},[Z,ce]);const{onOpenChange:K,triggerPointerDownPosRef:q}=j;m.useEffect(()=>{if(P){let ne={x:0,y:0};const he=Ce=>{var Te,Ie;ne={x:Math.abs(Math.round(Ce.pageX)-(((Te=q.current)==null?void 0:Te.x)??0)),y:Math.abs(Math.round(Ce.pageY)-(((Ie=q.current)==null?void 0:Ie.y)??0))}},be=Ce=>{ne.x<=10&&ne.y<=10?Ce.preventDefault():P.contains(Ce.target)||K(!1),document.removeEventListener("pointermove",he),q.current=null};return q.current!==null&&(document.addEventListener("pointermove",he),document.addEventListener("pointerup",be,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",he),document.removeEventListener("pointerup",be,{capture:!0})}}},[P,K,q]),m.useEffect(()=>{const ne=()=>K(!1);return window.addEventListener("blur",ne),window.addEventListener("resize",ne),()=>{window.removeEventListener("blur",ne),window.removeEventListener("resize",ne)}},[K]);const[Q,M]=R0(ne=>{const he=O().filter(Te=>!Te.disabled),be=he.find(Te=>Te.ref.current===document.activeElement),Ce=j0(he,ne,be);Ce&&setTimeout(()=>Ce.ref.current.focus())}),F=m.useCallback((ne,he,be)=>{const Ce=!G.current&&!be;(j.value!==void 0&&j.value===he||Ce)&&(H(ne),Ce&&(G.current=!0))},[j.value]),le=m.useCallback(()=>P==null?void 0:P.focus(),[P]),J=m.useCallback((ne,he,be)=>{const Ce=!G.current&&!be;(j.value!==void 0&&j.value===he||Ce)&&_(ne)},[j.value]),ue=a==="popper"?of:f0,xe=ue===of?{side:h,sideOffset:g,align:y,alignOffset:x,arrowPadding:b,collisionBoundary:k,collisionPadding:w,sticky:N,hideWhenDetached:v,avoidCollisions:C}:{};return u.jsx(u0,{scope:o,content:P,viewport:$,onViewportChange:B,itemRefCallback:F,selectedItem:X,onItemLeave:le,itemTextRefCallback:J,focusSelectedItem:ce,selectedItemText:Y,position:a,isPositioned:Z,searchRef:Q,children:u.jsx(Vf,{as:JE,allowPinchZoom:!0,children:u.jsx(Df,{asChild:!0,trapped:j.open,onMountAutoFocus:ne=>{ne.preventDefault()},onUnmountAutoFocus:Oe(l,ne=>{var he;(he=j.trigger)==null||he.focus({preventScroll:!0}),ne.preventDefault()}),children:u.jsx(cc,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:ne=>ne.preventDefault(),onDismiss:()=>j.onOpenChange(!1),children:u.jsx(ue,{role:"listbox",id:j.contentId,"data-state":j.open?"open":"closed",dir:j.dir,onContextMenu:ne=>ne.preventDefault(),...R,...xe,onPlaced:()=>ee(!0),ref:W,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:Oe(R.onKeyDown,ne=>{const he=ne.ctrlKey||ne.altKey||ne.metaKey;if(ne.key==="Tab"&&ne.preventDefault(),!he&&ne.key.length===1&&M(ne.key),["ArrowUp","ArrowDown","Home","End"].includes(ne.key)){let Ce=O().filter(Te=>!Te.disabled).map(Te=>Te.ref.current);if(["ArrowUp","End"].includes(ne.key)&&(Ce=Ce.slice().reverse()),["ArrowUp","ArrowDown"].includes(ne.key)){const Te=ne.target,Ie=Ce.indexOf(Te);Ce=Ce.slice(Ie+1)}setTimeout(()=>ie(Ce)),ne.preventDefault()}})})})})})})});d0.displayName=XE;var ZE="SelectItemAlignedPosition",f0=m.forwardRef((t,r)=>{const{__scopeSelect:o,onPlaced:a,...l}=t,c=io($o,o),f=lo($o,o),[h,g]=m.useState(null),[y,x]=m.useState(null),b=Ze(r,W=>x(W)),k=vc(o),w=m.useRef(!1),N=m.useRef(!0),{viewport:v,selectedItem:C,selectedItemText:R,focusSelectedItem:j}=f,P=m.useCallback(()=>{if(c.trigger&&c.valueNode&&h&&y&&v&&C&&R){const W=c.trigger.getBoundingClientRect(),X=y.getBoundingClientRect(),H=c.valueNode.getBoundingClientRect(),Y=R.getBoundingClientRect();if(c.dir!=="rtl"){const Te=Y.left-X.left,Ie=H.left-Te,nt=W.left-Ie,vt=W.width+nt,Rn=Math.max(vt,X.width),ln=window.innerWidth-bn,cn=mg(Ie,[bn,Math.max(bn,ln-Rn)]);h.style.minWidth=vt+"px",h.style.left=cn+"px"}else{const Te=X.right-Y.right,Ie=window.innerWidth-H.right-Te,nt=window.innerWidth-W.right-Ie,vt=W.width+nt,Rn=Math.max(vt,X.width),ln=window.innerWidth-bn,cn=mg(Ie,[bn,Math.max(bn,ln-Rn)]);h.style.minWidth=vt+"px",h.style.right=cn+"px"}const _=k(),O=window.innerHeight-bn*2,Z=v.scrollHeight,ee=window.getComputedStyle(y),G=parseInt(ee.borderTopWidth,10),ie=parseInt(ee.paddingTop,10),ce=parseInt(ee.borderBottomWidth,10),K=parseInt(ee.paddingBottom,10),q=G+ie+Z+K+ce,Q=Math.min(C.offsetHeight*5,q),M=window.getComputedStyle(v),F=parseInt(M.paddingTop,10),le=parseInt(M.paddingBottom,10),J=W.top+W.height/2-bn,ue=O-J,xe=C.offsetHeight/2,ne=C.offsetTop+xe,he=G+ie+ne,be=q-he;if(he<=J){const Te=_.length>0&&C===_[_.length-1].ref.current;h.style.bottom="0px";const Ie=y.clientHeight-v.offsetTop-v.offsetHeight,nt=Math.max(ue,xe+(Te?le:0)+Ie+ce),vt=he+nt;h.style.height=vt+"px"}else{const Te=_.length>0&&C===_[0].ref.current;h.style.top="0px";const nt=Math.max(J,G+v.offsetTop+(Te?F:0)+xe)+be;h.style.height=nt+"px",v.scrollTop=he-J+v.offsetTop}h.style.margin=`${bn}px 0`,h.style.minHeight=Q+"px",h.style.maxHeight=O+"px",a==null||a(),requestAnimationFrame(()=>w.current=!0)}},[k,c.trigger,c.valueNode,h,y,v,C,R,c.dir,a]);Et(()=>P(),[P]);const[A,$]=m.useState();Et(()=>{y&&$(window.getComputedStyle(y).zIndex)},[y]);const B=m.useCallback(W=>{W&&N.current===!0&&(P(),j==null||j(),N.current=!1)},[P,j]);return u.jsx(tN,{scope:o,contentWrapper:h,shouldExpandOnScrollRef:w,onScrollButtonChange:B,children:u.jsx("div",{ref:g,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:u.jsx(Be.div,{...l,ref:b,style:{boxSizing:"border-box",maxHeight:"100%",...l.style}})})})});f0.displayName=ZE;var eN="SelectPopperPosition",of=m.forwardRef((t,r)=>{const{__scopeSelect:o,align:a="start",collisionPadding:l=bn,...c}=t,f=xc(o);return u.jsx(Hv,{...f,...c,ref:r,align:a,collisionPadding:l,style:{boxSizing:"border-box",...c.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});of.displayName=eN;var[tN,Kf]=Gs($o,{}),sf="SelectViewport",h0=m.forwardRef((t,r)=>{const{__scopeSelect:o,nonce:a,...l}=t,c=lo(sf,o),f=Kf(sf,o),h=Ze(r,c.onViewportChange),g=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),u.jsx(yc.Slot,{scope:o,children:u.jsx(Be.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:h,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:Oe(l.onScroll,y=>{const x=y.currentTarget,{contentWrapper:b,shouldExpandOnScrollRef:k}=f;if(k!=null&&k.current&&b){const w=Math.abs(g.current-x.scrollTop);if(w>0){const N=window.innerHeight-bn*2,v=parseFloat(b.style.minHeight),C=parseFloat(b.style.height),R=Math.max(v,C);if(R<N){const j=R+w,P=Math.min(N,j),A=j-P;b.style.height=P+"px",b.style.bottom==="0px"&&(x.scrollTop=A>0?A:0,b.style.justifyContent="flex-end")}}}g.current=x.scrollTop})})})]})});h0.displayName=sf;var p0="SelectGroup",[nN,rN]=Gs(p0),oN=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=Lo();return u.jsx(nN,{scope:o,id:l,children:u.jsx(Be.div,{role:"group","aria-labelledby":l,...a,ref:r})})});oN.displayName=p0;var m0="SelectLabel",g0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=rN(m0,o);return u.jsx(Be.div,{id:l.id,...a,ref:r})});g0.displayName=m0;var rc="SelectItem",[sN,y0]=Gs(rc),v0=m.forwardRef((t,r)=>{const{__scopeSelect:o,value:a,disabled:l=!1,textValue:c,...f}=t,h=io(rc,o),g=lo(rc,o),y=h.value===a,[x,b]=m.useState(c??""),[k,w]=m.useState(!1),N=Ze(r,j=>{var P;return(P=g.itemRefCallback)==null?void 0:P.call(g,j,a,l)}),v=Lo(),C=m.useRef("touch"),R=()=>{l||(h.onValueChange(a),h.onOpenChange(!1))};if(a==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(sN,{scope:o,value:a,disabled:l,textId:v,isSelected:y,onItemTextChange:m.useCallback(j=>{b(P=>P||((j==null?void 0:j.textContent)??"").trim())},[]),children:u.jsx(yc.ItemSlot,{scope:o,value:a,disabled:l,textValue:x,children:u.jsx(Be.div,{role:"option","aria-labelledby":v,"data-highlighted":k?"":void 0,"aria-selected":y&&k,"data-state":y?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...f,ref:N,onFocus:Oe(f.onFocus,()=>w(!0)),onBlur:Oe(f.onBlur,()=>w(!1)),onClick:Oe(f.onClick,()=>{C.current!=="mouse"&&R()}),onPointerUp:Oe(f.onPointerUp,()=>{C.current==="mouse"&&R()}),onPointerDown:Oe(f.onPointerDown,j=>{C.current=j.pointerType}),onPointerMove:Oe(f.onPointerMove,j=>{var P;C.current=j.pointerType,l?(P=g.onItemLeave)==null||P.call(g):C.current==="mouse"&&j.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Oe(f.onPointerLeave,j=>{var P;j.currentTarget===document.activeElement&&((P=g.onItemLeave)==null||P.call(g))}),onKeyDown:Oe(f.onKeyDown,j=>{var A;((A=g.searchRef)==null?void 0:A.current)!==""&&j.key===" "||(WE.includes(j.key)&&R(),j.key===" "&&j.preventDefault())})})})})});v0.displayName=rc;var Ua="SelectItemText",x0=m.forwardRef((t,r)=>{const{__scopeSelect:o,className:a,style:l,...c}=t,f=io(Ua,o),h=lo(Ua,o),g=y0(Ua,o),y=qE(Ua,o),[x,b]=m.useState(null),k=Ze(r,R=>b(R),g.onItemTextChange,R=>{var j;return(j=h.itemTextRefCallback)==null?void 0:j.call(h,R,g.value,g.disabled)}),w=x==null?void 0:x.textContent,N=m.useMemo(()=>u.jsx("option",{value:g.value,disabled:g.disabled,children:w},g.value),[g.disabled,g.value,w]),{onNativeOptionAdd:v,onNativeOptionRemove:C}=y;return Et(()=>(v(N),()=>C(N)),[v,C,N]),u.jsxs(u.Fragment,{children:[u.jsx(Be.span,{id:g.textId,...c,ref:k}),g.isSelected&&f.valueNode&&!f.valueNodeHasChildren?ri.createPortal(c.children,f.valueNode):null]})});x0.displayName=Ua;var w0="SelectItemIndicator",b0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t;return y0(w0,o).isSelected?u.jsx(Be.span,{"aria-hidden":!0,...a,ref:r}):null});b0.displayName=w0;var af="SelectScrollUpButton",S0=m.forwardRef((t,r)=>{const o=lo(af,t.__scopeSelect),a=Kf(af,t.__scopeSelect),[l,c]=m.useState(!1),f=Ze(r,a.onScrollButtonChange);return Et(()=>{if(o.viewport&&o.isPositioned){let h=function(){const y=g.scrollTop>0;c(y)};const g=o.viewport;return h(),g.addEventListener("scroll",h),()=>g.removeEventListener("scroll",h)}},[o.viewport,o.isPositioned]),l?u.jsx(C0,{...t,ref:f,onAutoScroll:()=>{const{viewport:h,selectedItem:g}=o;h&&g&&(h.scrollTop=h.scrollTop-g.offsetHeight)}}):null});S0.displayName=af;var lf="SelectScrollDownButton",k0=m.forwardRef((t,r)=>{const o=lo(lf,t.__scopeSelect),a=Kf(lf,t.__scopeSelect),[l,c]=m.useState(!1),f=Ze(r,a.onScrollButtonChange);return Et(()=>{if(o.viewport&&o.isPositioned){let h=function(){const y=g.scrollHeight-g.clientHeight,x=Math.ceil(g.scrollTop)<y;c(x)};const g=o.viewport;return h(),g.addEventListener("scroll",h),()=>g.removeEventListener("scroll",h)}},[o.viewport,o.isPositioned]),l?u.jsx(C0,{...t,ref:f,onAutoScroll:()=>{const{viewport:h,selectedItem:g}=o;h&&g&&(h.scrollTop=h.scrollTop+g.offsetHeight)}}):null});k0.displayName=lf;var C0=m.forwardRef((t,r)=>{const{__scopeSelect:o,onAutoScroll:a,...l}=t,c=lo("SelectScrollButton",o),f=m.useRef(null),h=vc(o),g=m.useCallback(()=>{f.current!==null&&(window.clearInterval(f.current),f.current=null)},[]);return m.useEffect(()=>()=>g(),[g]),Et(()=>{var x;const y=h().find(b=>b.ref.current===document.activeElement);(x=y==null?void 0:y.ref.current)==null||x.scrollIntoView({block:"nearest"})},[h]),u.jsx(Be.div,{"aria-hidden":!0,...l,ref:r,style:{flexShrink:0,...l.style},onPointerDown:Oe(l.onPointerDown,()=>{f.current===null&&(f.current=window.setInterval(a,50))}),onPointerMove:Oe(l.onPointerMove,()=>{var y;(y=c.onItemLeave)==null||y.call(c),f.current===null&&(f.current=window.setInterval(a,50))}),onPointerLeave:Oe(l.onPointerLeave,()=>{g()})})}),aN="SelectSeparator",E0=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t;return u.jsx(Be.div,{"aria-hidden":!0,...a,ref:r})});E0.displayName=aN;var cf="SelectArrow",iN=m.forwardRef((t,r)=>{const{__scopeSelect:o,...a}=t,l=xc(o),c=io(cf,o),f=lo(cf,o);return c.open&&f.position==="popper"?u.jsx(Wv,{...l,...a,ref:r}):null});iN.displayName=cf;var lN="SelectBubbleInput",N0=m.forwardRef(({__scopeSelect:t,value:r,...o},a)=>{const l=m.useRef(null),c=Ze(a,l),f=tE(r);return m.useEffect(()=>{const h=l.current;if(!h)return;const g=window.HTMLSelectElement.prototype,x=Object.getOwnPropertyDescriptor(g,"value").set;if(f!==r&&x){const b=new Event("change",{bubbles:!0});x.call(h,r),h.dispatchEvent(b)}},[f,r]),u.jsx(Be.select,{...o,style:{...Vv,...o.style},ref:c,defaultValue:r})});N0.displayName=lN;function P0(t){return t===""||t===void 0}function R0(t){const r=_o(t),o=m.useRef(""),a=m.useRef(0),l=m.useCallback(f=>{const h=o.current+f;r(h),(function g(y){o.current=y,window.clearTimeout(a.current),y!==""&&(a.current=window.setTimeout(()=>g(""),1e3))})(h)},[r]),c=m.useCallback(()=>{o.current="",window.clearTimeout(a.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(a.current),[]),[o,l,c]}function j0(t,r,o){const l=r.length>1&&Array.from(r).every(y=>y===r[0])?r[0]:r,c=o?t.indexOf(o):-1;let f=cN(t,Math.max(c,0));l.length===1&&(f=f.filter(y=>y!==o));const g=f.find(y=>y.textValue.toLowerCase().startsWith(l.toLowerCase()));return g!==o?g:void 0}function cN(t,r){return t.map((o,a)=>t[(r+a)%t.length])}var uN=n0,T0=o0,dN=a0,fN=i0,hN=l0,M0=c0,pN=h0,I0=g0,A0=v0,mN=x0,gN=b0,L0=S0,z0=k0,D0=E0;const so=uN,Bo=dN,vr=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(T0,{ref:a,className:me("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-xl border border-gray-200/80 bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 bg-white",t),...o,children:[r,u.jsx(fN,{asChild:!0,children:u.jsx(av,{className:"h-4 w-4 opacity-50"})})]}));vr.displayName=T0.displayName;const O0=m.forwardRef(({className:t,...r},o)=>u.jsx(L0,{ref:o,className:me("flex cursor-default items-center justify-center py-1",t),...r,children:u.jsx(Rk,{className:"h-4 w-4"})}));O0.displayName=L0.displayName;const _0=m.forwardRef(({className:t,...r},o)=>u.jsx(z0,{ref:o,className:me("flex cursor-default items-center justify-center py-1",t),...r,children:u.jsx(av,{className:"h-4 w-4"})}));_0.displayName=z0.displayName;const xr=m.forwardRef(({className:t,children:r,position:o="popper",...a},l)=>u.jsx(hN,{children:u.jsxs(M0,{ref:l,className:me("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-white",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:o,...a,children:[u.jsx(O0,{}),u.jsx(pN,{className:me("p-1",o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),u.jsx(_0,{})]})}));xr.displayName=M0.displayName;const yN=m.forwardRef(({className:t,...r},o)=>u.jsx(I0,{ref:o,className:me("px-2 py-1.5 text-sm font-semibold",t),...r}));yN.displayName=I0.displayName;const Ct=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(A0,{ref:a,className:me("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-100 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-gray-100",t),...o,children:[u.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:u.jsx(gN,{children:u.jsx(Pk,{className:"h-4 w-4"})})}),u.jsx(mN,{children:r})]}));Ct.displayName=A0.displayName;const vN=m.forwardRef(({className:t,...r},o)=>u.jsx(D0,{ref:o,className:me("-mx-1 my-1 h-px bg-muted",t),...r}));vN.displayName=D0.displayName;function xN(){var f;const t=lc(),{language:r,setLanguage:o}=tC(),a=((f=ug.find(h=>h.value===r))==null?void 0:f.label)??r,l=h=>{r!==h&&(o(h),window.location.reload())},c=[{target:"/model",label:E("model"),icon:Tk},{target:"/providers",label:E("providers"),icon:dv},{target:"/channels",label:E("channels"),icon:Lf},{target:"/runtime",label:E("runtime"),icon:Lk},{target:"/sessions",label:E("sessions"),icon:Dk},{target:"/cron",label:E("cron"),icon:rv},{target:"/marketplace",label:E("marketplace"),icon:Qk}];return u.jsxs("aside",{className:"w-[240px] shrink-0 flex flex-col h-full py-6 px-4 bg-[#e9ecf3]",children:[u.jsx("div",{className:"px-2 mb-8",children:u.jsxs("div",{className:"flex items-center gap-2.5 cursor-pointer",children:[u.jsx("div",{className:"h-7 w-7 rounded-lg overflow-hidden flex items-center justify-center",children:u.jsx("img",{src:"/logo.svg",alt:"NextClaw",className:"h-full w-full object-contain"})}),u.jsx("span",{className:"text-[15px] font-semibold text-gray-800 tracking-[-0.01em]",children:"NextClaw"})]})}),u.jsx("nav",{className:"flex-1",children:u.jsx("ul",{className:"space-y-1",children:c.map(h=>{const g=h.icon;return u.jsx("li",{children:u.jsx(Ay,{to:h.target,className:({isActive:y})=>me("group w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base",y?"bg-primary/10 text-primary font-semibold":"text-gray-600 hover:bg-[#e4e7ef] hover:text-gray-800"),children:({isActive:y})=>u.jsxs(u.Fragment,{children:[u.jsx(g,{className:me("h-[17px] w-[17px] transition-colors",y?"text-primary":"text-gray-400")}),u.jsx("span",{className:"flex-1 text-left",children:h.label})]})})},h.target)})})}),u.jsxs("div",{className:"pt-3 border-t border-[#dde0ea] mt-3",children:[u.jsx("div",{className:"mb-2",children:u.jsxs(so,{value:r,onValueChange:h=>l(h),children:[u.jsxs(vr,{className:"w-full h-auto rounded-xl border-0 bg-transparent shadow-none px-3 py-2.5 text-[14px] font-medium text-gray-600 hover:bg-[#e4e7ef] focus:ring-0",children:[u.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[u.jsx(Ok,{className:"h-[17px] w-[17px] text-gray-400"}),u.jsx("span",{className:"text-left",children:E("language")})]}),u.jsx("span",{className:"ml-auto text-xs text-gray-500",children:a})]}),u.jsx(xr,{children:ug.map(h=>u.jsx(Ct,{value:h.value,className:"text-xs",children:h.label},h.value))})]})}),u.jsxs("button",{onClick:()=>t.open(),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base text-gray-600 hover:bg-[#e4e7ef] hover:text-gray-800",children:[u.jsx(sv,{className:"h-[17px] w-[17px] text-gray-400"}),u.jsx("span",{className:"flex-1 text-left",children:E("docBrowserHelp")})]})]})]})}function wN({children:t}){const{isOpen:r,mode:o}=lc();return Zk(),u.jsxs("div",{className:"h-screen flex bg-background font-sans text-foreground",children:[u.jsx(xN,{}),u.jsxs("div",{className:"flex-1 flex min-w-0 overflow-hidden relative",children:[u.jsx("div",{className:"flex-1 flex flex-col min-w-0 overflow-hidden",children:u.jsx("main",{className:"flex-1 overflow-auto custom-scrollbar p-8",children:u.jsx("div",{className:"max-w-6xl mx-auto animate-fade-in h-full",children:t})})}),r&&o==="docked"&&u.jsx(pg,{})]}),r&&o==="floating"&&u.jsx(pg,{})]})}function bN({children:t}){return u.jsx(Jk,{children:u.jsx(wN,{children:t})})}const Ug=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,$g=qy,SN=(t,r)=>o=>{var a;if((r==null?void 0:r.variants)==null)return $g(t,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:l,defaultVariants:c}=r,f=Object.keys(l).map(y=>{const x=o==null?void 0:o[y],b=c==null?void 0:c[y];if(x===null)return null;const k=Ug(x)||Ug(b);return l[y][k]}),h=o&&Object.entries(o).reduce((y,x)=>{let[b,k]=x;return k===void 0||(y[b]=k),y},{}),g=r==null||(a=r.compoundVariants)===null||a===void 0?void 0:a.reduce((y,x)=>{let{class:b,className:k,...w}=x;return Object.entries(w).every(N=>{let[v,C]=N;return Array.isArray(C)?C.includes({...c,...h}[v]):{...c,...h}[v]===C})?[...y,b,k]:y},[]);return $g(t,f,g,o==null?void 0:o.class,o==null?void 0:o.className)},kN=SN("inline-flex items-center justify-center whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-gray-200 bg-white hover:bg-gray-50 hover:text-gray-800 text-gray-600",secondary:"bg-gray-100 text-gray-700 hover:bg-gray-200/80",ghost:"hover:bg-gray-100/80 hover:text-gray-800",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-gray-100 text-gray-600 hover:bg-gray-200/80","primary-outline":"border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-lg px-3 text-xs",lg:"h-11 rounded-xl px-5 text-[14px]",xl:"h-12 rounded-2xl px-6 text-[15px]",icon:"h-9 w-9 rounded-xl"}},defaultVariants:{variant:"default",size:"default"}}),Ve=m.forwardRef(({className:t,variant:r,size:o,...a},l)=>u.jsx("button",{className:me(kN({variant:r,size:o,className:t})),ref:l,...a}));Ve.displayName="Button";const zo=m.forwardRef(({className:t,hover:r=!0,...o},a)=>u.jsx("div",{ref:a,className:me("rounded-2xl border border-gray-200/50 bg-white text-card-foreground shadow-card transition-all duration-base",r&&"hover:shadow-card-hover hover:border-gray-200",t),...o}));zo.displayName="Card";const $l=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("flex flex-col space-y-1.5 p-6",t),...r}));$l.displayName="CardHeader";const Bl=m.forwardRef(({className:t,...r},o)=>u.jsx("h3",{ref:o,className:me("text-[15px] font-semibold leading-tight tracking-tight text-gray-900",t),...r}));Bl.displayName="CardTitle";const Hl=m.forwardRef(({className:t,...r},o)=>u.jsx("p",{ref:o,className:me("text-[13px] text-gray-400 leading-relaxed",t),...r}));Hl.displayName="CardDescription";const Ba=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("p-6 pt-0",t),...r}));Ba.displayName="CardContent";const CN=m.forwardRef(({className:t,...r},o)=>u.jsx("div",{ref:o,className:me("flex items-center justify-between p-6 pt-0",t),...r}));CN.displayName="CardFooter";const We=m.forwardRef(({className:t,type:r,...o},a)=>u.jsx("input",{type:r,className:me("flex h-9 w-full rounded-xl border border-gray-200/80 bg-white px-3.5 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-400 focus:outline-none focus:ring-1 focus:ring-primary/40 focus:border-primary/40 transition-colors disabled:cursor-not-allowed disabled:opacity-50",t),ref:a,...o}));We.displayName="Input";const fr=m.forwardRef(({className:t,...r},o)=>u.jsx("label",{ref:o,className:me("text-sm font-medium leading-none text-gray-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...r}));fr.displayName="Label";function xn({className:t,...r}){return u.jsx("div",{className:me("animate-pulse rounded-md bg-slate-200",t),...r})}const EN="http://127.0.0.1:18791",Wl=(()=>{var t;return typeof window<"u"&&((t=window.location)!=null&&t.origin)?window.location.origin:EN})();async function Ml(t,r={}){const o=`${Wl}${t}`,a=await fetch(o,{headers:{"Content-Type":"application/json",...r.headers},...r}),l=await a.text();let c=null;if(l)try{c=JSON.parse(l)}catch{}if(!c){const f=l?l.slice(0,200):"";return{ok:!1,error:{code:"INVALID_RESPONSE",message:`Non-JSON response (${a.status} ${a.statusText})${f?`: ${f}`:""}`}}}return a.ok,c}const at={get:t=>Ml(t,{method:"GET"}),put:(t,r)=>Ml(t,{method:"PUT",body:JSON.stringify(r)}),post:(t,r)=>Ml(t,{method:"POST",body:JSON.stringify(r)}),delete:t=>Ml(t,{method:"DELETE"})};async function NN(){const t=await at.get("/api/config");if(!t.ok)throw new Error(t.error.message);return t.data}async function PN(){const t=await at.get("/api/config/meta");if(!t.ok)throw new Error(t.error.message);return t.data}async function RN(){const t=await at.get("/api/config/schema");if(!t.ok)throw new Error(t.error.message);return t.data}async function jN(t){const r=await at.put("/api/config/model",t);if(!r.ok)throw new Error(r.error.message);return r.data}async function TN(t,r){const o=await at.put(`/api/config/providers/${t}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function MN(t,r){const o=await at.put(`/api/config/channels/${t}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function IN(t){const r=await at.put("/api/config/runtime",t);if(!r.ok)throw new Error(r.error.message);return r.data}async function AN(t,r){const o=await at.post(`/api/config/actions/${t}/execute`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function LN(t){var l;const r=new URLSearchParams;(l=t==null?void 0:t.q)!=null&&l.trim()&&r.set("q",t.q.trim()),typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)&&r.set("limit",String(Math.max(0,Math.trunc(t.limit)))),typeof(t==null?void 0:t.activeMinutes)=="number"&&Number.isFinite(t.activeMinutes)&&r.set("activeMinutes",String(Math.max(0,Math.trunc(t.activeMinutes))));const o=r.toString(),a=await at.get(o?"/api/sessions?"+o:"/api/sessions");if(!a.ok)throw new Error(a.error.message);return a.data}async function zN(t,r=200){const o=await at.get(`/api/sessions/${encodeURIComponent(t)}/history?limit=${Math.max(1,Math.trunc(r))}`);if(!o.ok)throw new Error(o.error.message);return o.data}async function DN(t,r){const o=await at.put(`/api/sessions/${encodeURIComponent(t)}`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function ON(t){const r=await at.delete(`/api/sessions/${encodeURIComponent(t)}`);if(!r.ok)throw new Error(r.error.message);return r.data}async function _N(t){const r=new URLSearchParams;t!=null&&t.all&&r.set("all","1");const o=r.toString(),a=await at.get(o?"/api/cron?"+o:"/api/cron");if(!a.ok)throw new Error(a.error.message);return a.data}async function FN(t){const r=await at.delete(`/api/cron/${encodeURIComponent(t)}`);if(!r.ok)throw new Error(r.error.message);return r.data}async function UN(t,r){const o=await at.put(`/api/cron/${encodeURIComponent(t)}/enable`,r);if(!o.ok)throw new Error(o.error.message);return o.data}async function $N(t,r){const o=await at.post(`/api/cron/${encodeURIComponent(t)}/run`,r);if(!o.ok)throw new Error(o.error.message);return o.data}var BN=t=>{switch(t){case"success":return VN;case"info":return QN;case"warning":return KN;case"error":return qN;default:return null}},HN=Array(12).fill(0),WN=({visible:t,className:r})=>ae.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":t},ae.createElement("div",{className:"sonner-spinner"},HN.map((o,a)=>ae.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),VN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),KN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),QN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),qN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ae.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),GN=ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},ae.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ae.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),YN=()=>{let[t,r]=ae.useState(document.hidden);return ae.useEffect(()=>{let o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),t},uf=1,XN=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let r=this.subscribers.indexOf(t);this.subscribers.splice(r,1)}),this.publish=t=>{this.subscribers.forEach(r=>r(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var r;let{message:o,...a}=t,l=typeof(t==null?void 0:t.id)=="number"||((r=t.id)==null?void 0:r.length)>0?t.id:uf++,c=this.toasts.find(h=>h.id===l),f=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),c?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...t,id:l,title:o}),{...h,...t,id:l,dismissible:f,title:o}):h):this.addToast({title:o,...a,dismissible:f,id:l}),l},this.dismiss=t=>(this.dismissedToasts.add(t),t||this.toasts.forEach(r=>{this.subscribers.forEach(o=>o({id:r.id,dismiss:!0}))}),this.subscribers.forEach(r=>r({id:t,dismiss:!0})),t),this.message=(t,r)=>this.create({...r,message:t}),this.error=(t,r)=>this.create({...r,message:t,type:"error"}),this.success=(t,r)=>this.create({...r,type:"success",message:t}),this.info=(t,r)=>this.create({...r,type:"info",message:t}),this.warning=(t,r)=>this.create({...r,type:"warning",message:t}),this.loading=(t,r)=>this.create({...r,type:"loading",message:t}),this.promise=(t,r)=>{if(!r)return;let o;r.loading!==void 0&&(o=this.create({...r,promise:t,type:"loading",message:r.loading,description:typeof r.description!="function"?r.description:void 0}));let a=t instanceof Promise?t:t(),l=o!==void 0,c,f=a.then(async g=>{if(c=["resolve",g],ae.isValidElement(g))l=!1,this.create({id:o,type:"default",message:g});else if(ZN(g)&&!g.ok){l=!1;let y=typeof r.error=="function"?await r.error(`HTTP error! status: ${g.status}`):r.error,x=typeof r.description=="function"?await r.description(`HTTP error! status: ${g.status}`):r.description;this.create({id:o,type:"error",message:y,description:x})}else if(r.success!==void 0){l=!1;let y=typeof r.success=="function"?await r.success(g):r.success,x=typeof r.description=="function"?await r.description(g):r.description;this.create({id:o,type:"success",message:y,description:x})}}).catch(async g=>{if(c=["reject",g],r.error!==void 0){l=!1;let y=typeof r.error=="function"?await r.error(g):r.error,x=typeof r.description=="function"?await r.description(g):r.description;this.create({id:o,type:"error",message:y,description:x})}}).finally(()=>{var g;l&&(this.dismiss(o),o=void 0),(g=r.finally)==null||g.call(r)}),h=()=>new Promise((g,y)=>f.then(()=>c[0]==="reject"?y(c[1]):g(c[1])).catch(y));return typeof o!="string"&&typeof o!="number"?{unwrap:h}:Object.assign(o,{unwrap:h})},this.custom=(t,r)=>{let o=(r==null?void 0:r.id)||uf++;return this.create({jsx:t(o),id:o,...r}),o},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Bt=new XN,JN=(t,r)=>{let o=(r==null?void 0:r.id)||uf++;return Bt.addToast({title:t,...r,id:o}),o},ZN=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",eP=JN,tP=()=>Bt.toasts,nP=()=>Bt.getActiveToasts(),Ue=Object.assign(eP,{success:Bt.success,info:Bt.info,warning:Bt.warning,error:Bt.error,custom:Bt.custom,message:Bt.message,promise:Bt.promise,dismiss:Bt.dismiss,loading:Bt.loading},{getHistory:tP,getToasts:nP});function rP(t,{insertAt:r}={}){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",r==="top"&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}rP(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
337
337
  `);function Il(t){return t.label!==void 0}var oP=3,sP="32px",aP="16px",Bg=4e3,iP=356,lP=14,cP=20,uP=200;function wn(...t){return t.filter(Boolean).join(" ")}function dP(t){let[r,o]=t.split("-"),a=[];return r&&a.push(r),o&&a.push(o),a}var fP=t=>{var r,o,a,l,c,f,h,g,y,x,b;let{invert:k,toast:w,unstyled:N,interacting:v,setHeights:C,visibleToasts:R,heights:j,index:P,toasts:A,expanded:$,removeToast:B,defaultRichColors:W,closeButton:X,style:H,cancelButtonStyle:Y,actionButtonStyle:_,className:O="",descriptionClassName:Z="",duration:ee,position:G,gap:ie,loadingIcon:ce,expandByDefault:K,classNames:q,icons:Q,closeButtonAriaLabel:M="Close toast",pauseWhenPageIsHidden:F}=t,[le,J]=ae.useState(null),[ue,xe]=ae.useState(null),[ne,he]=ae.useState(!1),[be,Ce]=ae.useState(!1),[Te,Ie]=ae.useState(!1),[nt,vt]=ae.useState(!1),[Rn,ln]=ae.useState(!1),[cn,br]=ae.useState(0),[jn,Sr]=ae.useState(0),Xt=ae.useRef(w.duration||ee||Bg),Ko=ae.useRef(null),Tn=ae.useRef(null),li=P===0,ci=P+1<=R,Nt=w.type,Mn=w.dismissible!==!1,Qo=w.className||"",ui=w.descriptionClassName||"",In=ae.useMemo(()=>j.findIndex(Ne=>Ne.toastId===w.id)||0,[j,w.id]),co=ae.useMemo(()=>{var Ne;return(Ne=w.closeButton)!=null?Ne:X},[w.closeButton,X]),di=ae.useMemo(()=>w.duration||ee||Bg,[w.duration,ee]),qo=ae.useRef(0),Xn=ae.useRef(0),fi=ae.useRef(0),An=ae.useRef(null),[Zs,ea]=G.split("-"),Go=ae.useMemo(()=>j.reduce((Ne,De,$e)=>$e>=In?Ne:Ne+De.height,0),[j,In]),Yo=YN(),kr=w.invert||k,Ln=Nt==="loading";Xn.current=ae.useMemo(()=>In*ie+Go,[In,Go]),ae.useEffect(()=>{Xt.current=di},[di]),ae.useEffect(()=>{he(!0)},[]),ae.useEffect(()=>{let Ne=Tn.current;if(Ne){let De=Ne.getBoundingClientRect().height;return Sr(De),C($e=>[{toastId:w.id,height:De,position:w.position},...$e]),()=>C($e=>$e.filter(Pt=>Pt.toastId!==w.id))}},[C,w.id]),ae.useLayoutEffect(()=>{if(!ne)return;let Ne=Tn.current,De=Ne.style.height;Ne.style.height="auto";let $e=Ne.getBoundingClientRect().height;Ne.style.height=De,Sr($e),C(Pt=>Pt.find(It=>It.toastId===w.id)?Pt.map(It=>It.toastId===w.id?{...It,height:$e}:It):[{toastId:w.id,height:$e,position:w.position},...Pt])},[ne,w.title,w.description,C,w.id]);let un=ae.useCallback(()=>{Ce(!0),br(Xn.current),C(Ne=>Ne.filter(De=>De.toastId!==w.id)),setTimeout(()=>{B(w)},uP)},[w,B,C,Xn]);ae.useEffect(()=>{if(w.promise&&Nt==="loading"||w.duration===1/0||w.type==="loading")return;let Ne;return $||v||F&&Yo?(()=>{if(fi.current<qo.current){let De=new Date().getTime()-qo.current;Xt.current=Xt.current-De}fi.current=new Date().getTime()})():Xt.current!==1/0&&(qo.current=new Date().getTime(),Ne=setTimeout(()=>{var De;(De=w.onAutoClose)==null||De.call(w,w),un()},Xt.current)),()=>clearTimeout(Ne)},[$,v,w,Nt,F,Yo,un]),ae.useEffect(()=>{w.delete&&un()},[un,w.delete]);function hi(){var Ne,De,$e;return Q!=null&&Q.loading?ae.createElement("div",{className:wn(q==null?void 0:q.loader,(Ne=w==null?void 0:w.classNames)==null?void 0:Ne.loader,"sonner-loader"),"data-visible":Nt==="loading"},Q.loading):ce?ae.createElement("div",{className:wn(q==null?void 0:q.loader,(De=w==null?void 0:w.classNames)==null?void 0:De.loader,"sonner-loader"),"data-visible":Nt==="loading"},ce):ae.createElement(WN,{className:wn(q==null?void 0:q.loader,($e=w==null?void 0:w.classNames)==null?void 0:$e.loader),visible:Nt==="loading"})}return ae.createElement("li",{tabIndex:0,ref:Tn,className:wn(O,Qo,q==null?void 0:q.toast,(r=w==null?void 0:w.classNames)==null?void 0:r.toast,q==null?void 0:q.default,q==null?void 0:q[Nt],(o=w==null?void 0:w.classNames)==null?void 0:o[Nt]),"data-sonner-toast":"","data-rich-colors":(a=w.richColors)!=null?a:W,"data-styled":!(w.jsx||w.unstyled||N),"data-mounted":ne,"data-promise":!!w.promise,"data-swiped":Rn,"data-removed":be,"data-visible":ci,"data-y-position":Zs,"data-x-position":ea,"data-index":P,"data-front":li,"data-swiping":Te,"data-dismissible":Mn,"data-type":Nt,"data-invert":kr,"data-swipe-out":nt,"data-swipe-direction":ue,"data-expanded":!!($||K&&ne),style:{"--index":P,"--toasts-before":P,"--z-index":A.length-P,"--offset":`${be?cn:Xn.current}px`,"--initial-height":K?"auto":`${jn}px`,...H,...w.style},onDragEnd:()=>{Ie(!1),J(null),An.current=null},onPointerDown:Ne=>{Ln||!Mn||(Ko.current=new Date,br(Xn.current),Ne.target.setPointerCapture(Ne.pointerId),Ne.target.tagName!=="BUTTON"&&(Ie(!0),An.current={x:Ne.clientX,y:Ne.clientY}))},onPointerUp:()=>{var Ne,De,$e,Pt;if(nt||!Mn)return;An.current=null;let It=Number(((Ne=Tn.current)==null?void 0:Ne.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),At=Number(((De=Tn.current)==null?void 0:De.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),dn=new Date().getTime()-(($e=Ko.current)==null?void 0:$e.getTime()),pt=le==="x"?It:At,zn=Math.abs(pt)/dn;if(Math.abs(pt)>=cP||zn>.11){br(Xn.current),(Pt=w.onDismiss)==null||Pt.call(w,w),xe(le==="x"?It>0?"right":"left":At>0?"down":"up"),un(),vt(!0),ln(!1);return}Ie(!1),J(null)},onPointerMove:Ne=>{var De,$e,Pt,It;if(!An.current||!Mn||((De=window.getSelection())==null?void 0:De.toString().length)>0)return;let At=Ne.clientY-An.current.y,dn=Ne.clientX-An.current.x,pt=($e=t.swipeDirections)!=null?$e:dP(G);!le&&(Math.abs(dn)>1||Math.abs(At)>1)&&J(Math.abs(dn)>Math.abs(At)?"x":"y");let zn={x:0,y:0};le==="y"?(pt.includes("top")||pt.includes("bottom"))&&(pt.includes("top")&&At<0||pt.includes("bottom")&&At>0)&&(zn.y=At):le==="x"&&(pt.includes("left")||pt.includes("right"))&&(pt.includes("left")&&dn<0||pt.includes("right")&&dn>0)&&(zn.x=dn),(Math.abs(zn.x)>0||Math.abs(zn.y)>0)&&ln(!0),(Pt=Tn.current)==null||Pt.style.setProperty("--swipe-amount-x",`${zn.x}px`),(It=Tn.current)==null||It.style.setProperty("--swipe-amount-y",`${zn.y}px`)}},co&&!w.jsx?ae.createElement("button",{"aria-label":M,"data-disabled":Ln,"data-close-button":!0,onClick:Ln||!Mn?()=>{}:()=>{var Ne;un(),(Ne=w.onDismiss)==null||Ne.call(w,w)},className:wn(q==null?void 0:q.closeButton,(l=w==null?void 0:w.classNames)==null?void 0:l.closeButton)},(c=Q==null?void 0:Q.close)!=null?c:GN):null,w.jsx||m.isValidElement(w.title)?w.jsx?w.jsx:typeof w.title=="function"?w.title():w.title:ae.createElement(ae.Fragment,null,Nt||w.icon||w.promise?ae.createElement("div",{"data-icon":"",className:wn(q==null?void 0:q.icon,(f=w==null?void 0:w.classNames)==null?void 0:f.icon)},w.promise||w.type==="loading"&&!w.icon?w.icon||hi():null,w.type!=="loading"?w.icon||(Q==null?void 0:Q[Nt])||BN(Nt):null):null,ae.createElement("div",{"data-content":"",className:wn(q==null?void 0:q.content,(h=w==null?void 0:w.classNames)==null?void 0:h.content)},ae.createElement("div",{"data-title":"",className:wn(q==null?void 0:q.title,(g=w==null?void 0:w.classNames)==null?void 0:g.title)},typeof w.title=="function"?w.title():w.title),w.description?ae.createElement("div",{"data-description":"",className:wn(Z,ui,q==null?void 0:q.description,(y=w==null?void 0:w.classNames)==null?void 0:y.description)},typeof w.description=="function"?w.description():w.description):null),m.isValidElement(w.cancel)?w.cancel:w.cancel&&Il(w.cancel)?ae.createElement("button",{"data-button":!0,"data-cancel":!0,style:w.cancelButtonStyle||Y,onClick:Ne=>{var De,$e;Il(w.cancel)&&Mn&&(($e=(De=w.cancel).onClick)==null||$e.call(De,Ne),un())},className:wn(q==null?void 0:q.cancelButton,(x=w==null?void 0:w.classNames)==null?void 0:x.cancelButton)},w.cancel.label):null,m.isValidElement(w.action)?w.action:w.action&&Il(w.action)?ae.createElement("button",{"data-button":!0,"data-action":!0,style:w.actionButtonStyle||_,onClick:Ne=>{var De,$e;Il(w.action)&&(($e=(De=w.action).onClick)==null||$e.call(De,Ne),!Ne.defaultPrevented&&un())},className:wn(q==null?void 0:q.actionButton,(b=w==null?void 0:w.classNames)==null?void 0:b.actionButton)},w.action.label):null))};function Hg(){if(typeof window>"u"||typeof document>"u")return"ltr";let t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function hP(t,r){let o={};return[t,r].forEach((a,l)=>{let c=l===1,f=c?"--mobile-offset":"--offset",h=c?aP:sP;function g(y){["top","right","bottom","left"].forEach(x=>{o[`${f}-${x}`]=typeof y=="number"?`${y}px`:y})}typeof a=="number"||typeof a=="string"?g(a):typeof a=="object"?["top","right","bottom","left"].forEach(y=>{a[y]===void 0?o[`${f}-${y}`]=h:o[`${f}-${y}`]=typeof a[y]=="number"?`${a[y]}px`:a[y]}):g(h)}),o}var pP=m.forwardRef(function(t,r){let{invert:o,position:a="bottom-right",hotkey:l=["altKey","KeyT"],expand:c,closeButton:f,className:h,offset:g,mobileOffset:y,theme:x="light",richColors:b,duration:k,style:w,visibleToasts:N=oP,toastOptions:v,dir:C=Hg(),gap:R=lP,loadingIcon:j,icons:P,containerAriaLabel:A="Notifications",pauseWhenPageIsHidden:$}=t,[B,W]=ae.useState([]),X=ae.useMemo(()=>Array.from(new Set([a].concat(B.filter(F=>F.position).map(F=>F.position)))),[B,a]),[H,Y]=ae.useState([]),[_,O]=ae.useState(!1),[Z,ee]=ae.useState(!1),[G,ie]=ae.useState(x!=="system"?x:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ce=ae.useRef(null),K=l.join("+").replace(/Key/g,"").replace(/Digit/g,""),q=ae.useRef(null),Q=ae.useRef(!1),M=ae.useCallback(F=>{W(le=>{var J;return(J=le.find(ue=>ue.id===F.id))!=null&&J.delete||Bt.dismiss(F.id),le.filter(({id:ue})=>ue!==F.id)})},[]);return ae.useEffect(()=>Bt.subscribe(F=>{if(F.dismiss){W(le=>le.map(J=>J.id===F.id?{...J,delete:!0}:J));return}setTimeout(()=>{zy.flushSync(()=>{W(le=>{let J=le.findIndex(ue=>ue.id===F.id);return J!==-1?[...le.slice(0,J),{...le[J],...F},...le.slice(J+1)]:[F,...le]})})})}),[]),ae.useEffect(()=>{if(x!=="system"){ie(x);return}if(x==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ie("dark"):ie("light")),typeof window>"u")return;let F=window.matchMedia("(prefers-color-scheme: dark)");try{F.addEventListener("change",({matches:le})=>{ie(le?"dark":"light")})}catch{F.addListener(({matches:J})=>{try{ie(J?"dark":"light")}catch(ue){console.error(ue)}})}},[x]),ae.useEffect(()=>{B.length<=1&&O(!1)},[B]),ae.useEffect(()=>{let F=le=>{var J,ue;l.every(xe=>le[xe]||le.code===xe)&&(O(!0),(J=ce.current)==null||J.focus()),le.code==="Escape"&&(document.activeElement===ce.current||(ue=ce.current)!=null&&ue.contains(document.activeElement))&&O(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[l]),ae.useEffect(()=>{if(ce.current)return()=>{q.current&&(q.current.focus({preventScroll:!0}),q.current=null,Q.current=!1)}},[ce.current]),ae.createElement("section",{ref:r,"aria-label":`${A} ${K}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},X.map((F,le)=>{var J;let[ue,xe]=F.split("-");return B.length?ae.createElement("ol",{key:F,dir:C==="auto"?Hg():C,tabIndex:-1,ref:ce,className:h,"data-sonner-toaster":!0,"data-theme":G,"data-y-position":ue,"data-lifted":_&&B.length>1&&!c,"data-x-position":xe,style:{"--front-toast-height":`${((J=H[0])==null?void 0:J.height)||0}px`,"--width":`${iP}px`,"--gap":`${R}px`,...w,...hP(g,y)},onBlur:ne=>{Q.current&&!ne.currentTarget.contains(ne.relatedTarget)&&(Q.current=!1,q.current&&(q.current.focus({preventScroll:!0}),q.current=null))},onFocus:ne=>{ne.target instanceof HTMLElement&&ne.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,q.current=ne.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{Z||O(!1)},onDragEnd:()=>O(!1),onPointerDown:ne=>{ne.target instanceof HTMLElement&&ne.target.dataset.dismissible==="false"||ee(!0)},onPointerUp:()=>ee(!1)},B.filter(ne=>!ne.position&&le===0||ne.position===F).map((ne,he)=>{var be,Ce;return ae.createElement(fP,{key:ne.id,icons:P,index:he,toast:ne,defaultRichColors:b,duration:(be=v==null?void 0:v.duration)!=null?be:k,className:v==null?void 0:v.className,descriptionClassName:v==null?void 0:v.descriptionClassName,invert:o,visibleToasts:N,closeButton:(Ce=v==null?void 0:v.closeButton)!=null?Ce:f,interacting:Z,position:F,style:v==null?void 0:v.style,unstyled:v==null?void 0:v.unstyled,classNames:v==null?void 0:v.classNames,cancelButtonStyle:v==null?void 0:v.cancelButtonStyle,actionButtonStyle:v==null?void 0:v.actionButtonStyle,removeToast:M,toasts:B.filter(Te=>Te.position==ne.position),heights:H.filter(Te=>Te.position==ne.position),setHeights:Y,expandByDefault:c,gap:R,loadingIcon:j,expanded:_,pauseWhenPageIsHidden:$,swipeDirections:t.swipeDirections})})):null}))});function Ys(){return ao({queryKey:["config"],queryFn:NN,staleTime:3e4,refetchOnWindowFocus:!0})}function Qf(){return ao({queryKey:["config-meta"],queryFn:PN,staleTime:1/0})}function Xs(){return ao({queryKey:["config-schema"],queryFn:RN,staleTime:1/0})}function mP(){const t=Yt();return an({mutationFn:jN,onSuccess:()=>{t.invalidateQueries({queryKey:["config"]}),Ue.success(E("configSaved"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function gP(){const t=Yt();return an({mutationFn:({provider:r,data:o})=>TN(r,o),onSuccess:()=>{t.invalidateQueries({queryKey:["config"]}),Ue.success(E("configSaved"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function yP(){const t=Yt();return an({mutationFn:({channel:r,data:o})=>MN(r,o),onSuccess:()=>{t.invalidateQueries({queryKey:["config"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function vP(){const t=Yt();return an({mutationFn:({data:r})=>IN(r),onSuccess:()=>{t.invalidateQueries({queryKey:["config"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function xP(){return an({mutationFn:({actionId:t,data:r})=>AN(t,r),onError:t=>{Ue.error(E("error")+": "+t.message)}})}function wP(t){return ao({queryKey:["sessions",t],queryFn:()=>LN(t),staleTime:1e4})}function bP(t,r=200){return ao({queryKey:["session-history",t,r],queryFn:()=>zN(t,r),enabled:!!t,staleTime:5e3})}function SP(){const t=Yt();return an({mutationFn:({key:r,data:o})=>DN(r,o),onSuccess:(r,o)=>{t.invalidateQueries({queryKey:["sessions"]}),t.invalidateQueries({queryKey:["session-history",o.key]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function kP(){const t=Yt();return an({mutationFn:({key:r})=>ON(r),onSuccess:()=>{t.invalidateQueries({queryKey:["sessions"]}),t.invalidateQueries({queryKey:["session-history"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function CP(t={all:!0}){return ao({queryKey:["cron",t],queryFn:()=>_N(t),staleTime:1e4})}function EP(){const t=Yt();return an({mutationFn:({id:r})=>FN(r),onSuccess:()=>{t.invalidateQueries({queryKey:["cron"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function NP(){const t=Yt();return an({mutationFn:({id:r,enabled:o})=>UN(r,{enabled:o}),onSuccess:()=>{t.invalidateQueries({queryKey:["cron"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function PP(){const t=Yt();return an({mutationFn:({id:r,force:o})=>$N(r,{force:o}),onSuccess:()=>{t.invalidateQueries({queryKey:["cron"]}),Ue.success(E("configSavedApplied"))},onError:r=>{Ue.error(E("configSaveFailed")+": "+r.message)}})}function RP(t){return Array.isArray(t)?t.filter(r=>typeof r=="string").join("."):t}function yt(t,r){if(!r)return;const o=RP(t),a=r[o];if(a)return a;const l=o.split(".");for(const[c,f]of Object.entries(r)){if(!c.includes("*"))continue;const h=c.split(".");if(h.length!==l.length)continue;let g=!0;for(let y=0;y<l.length;y+=1)if(h[y]!=="*"&&h[y]!==l[y]){g=!1;break}if(g)return f}}function Wo({children:t,fullHeight:r=!1,className:o}){return u.jsx("div",{className:me("animate-fade-in",r?"h-[calc(100vh-80px)] w-full flex flex-col":"pb-16",o),children:t})}function Vo({title:t,description:r,actions:o,className:a}){return u.jsxs("div",{className:me("flex items-center justify-between mb-6 shrink-0",a),children:[u.jsxs("div",{children:[u.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:t}),r&&u.jsx("p",{className:"text-sm text-gray-500 mt-1",children:r})]}),o&&u.jsx("div",{className:"flex items-center gap-2 shrink-0",children:o})]})}function jP(){const{data:t,isLoading:r}=Ys(),{data:o}=Xs(),a=mP(),[l,c]=m.useState(""),[f,h]=m.useState(""),[g,y]=m.useState(8192),x=o==null?void 0:o.uiHints,b=yt("agents.defaults.model",x),k=yt("agents.defaults.workspace",x),w=yt("agents.defaults.maxTokens",x);m.useEffect(()=>{var v;(v=t==null?void 0:t.agents)!=null&&v.defaults&&(c(t.agents.defaults.model||""),h(t.agents.defaults.workspace||""),y(t.agents.defaults.maxTokens||8192))},[t]);const N=v=>{v.preventDefault(),a.mutate({model:l,maxTokens:g})};return r?u.jsxs("div",{className:"max-w-2xl space-y-6",children:[u.jsxs("div",{className:"space-y-2",children:[u.jsx(xn,{className:"h-8 w-32"}),u.jsx(xn,{className:"h-4 w-48"})]}),u.jsxs(zo,{className:"rounded-2xl border-gray-200 p-6",children:[u.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[u.jsx(xn,{className:"h-12 w-12 rounded-xl"}),u.jsxs("div",{className:"space-y-2",children:[u.jsx(xn,{className:"h-5 w-24"}),u.jsx(xn,{className:"h-3 w-32"})]})]}),u.jsx(xn,{className:"h-4 w-20 mb-2"}),u.jsx(xn,{className:"h-10 w-full rounded-xl"})]}),u.jsxs(zo,{className:"rounded-2xl border-gray-200 p-6",children:[u.jsx(xn,{className:"h-5 w-24 mb-2"}),u.jsx(xn,{className:"h-3 w-40 mb-6"}),u.jsx("div",{className:"space-y-6",children:u.jsxs("div",{children:[u.jsx(xn,{className:"h-4 w-28 mb-3"}),u.jsx(xn,{className:"h-2 w-full rounded-full"})]})})]})]}):u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("modelPageTitle"),description:E("modelPageDescription")}),u.jsxs("form",{onSubmit:N,className:"space-y-8",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[u.jsxs("div",{className:"p-8 rounded-2xl bg-white border border-gray-200 shadow-card",children:[u.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[u.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:u.jsx(dv,{className:"h-5 w-5"})}),u.jsx("h3",{className:"text-lg font-bold text-gray-900",children:E("defaultModel")})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx(fr,{htmlFor:"model",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(b==null?void 0:b.label)??"Model Name"}),u.jsx(We,{id:"model",value:l,onChange:v=>c(v.target.value),placeholder:(b==null?void 0:b.placeholder)??"minimax/MiniMax-M2.1",className:"h-12 px-4 rounded-xl"}),u.jsx("p",{className:"text-xs text-gray-400",children:(b==null?void 0:b.help)??"Examples: minimax/MiniMax-M2.5 · minimax/MiniMax-M2.1 · openrouter/anthropic/claude-3.5-sonnet · openrouter/openai/gpt-4o-mini"})]})]}),u.jsxs("div",{className:"p-8 rounded-2xl bg-white border border-gray-200 shadow-card",children:[u.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[u.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:u.jsx(Ak,{className:"h-5 w-5"})}),u.jsx("h3",{className:"text-lg font-bold text-gray-900",children:E("workspace")})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx(fr,{htmlFor:"workspace",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(k==null?void 0:k.label)??"Default Path"}),u.jsx(We,{id:"workspace",value:f,onChange:v=>h(v.target.value),placeholder:(k==null?void 0:k.placeholder)??"/path/to/workspace",className:"h-12 px-4 rounded-xl"})]})]})]}),u.jsxs("div",{className:"p-8 rounded-2xl bg-white border border-gray-200 shadow-card",children:[u.jsxs("div",{className:"flex items-center gap-4 mb-10",children:[u.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:u.jsx(Kk,{className:"h-5 w-5"})}),u.jsx("h3",{className:"text-lg font-bold text-gray-900",children:E("generationParameters")})]}),u.jsx("div",{className:"grid grid-cols-1 gap-12",children:u.jsxs("div",{className:"space-y-4",children:[u.jsxs("div",{className:"flex justify-between items-center mb-2",children:[u.jsx(fr,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(w==null?void 0:w.label)??E("maxTokens")}),u.jsx("span",{className:"text-sm font-semibold text-gray-900",children:tv(g)})]}),u.jsx("input",{type:"range",min:"1000",max:"32000",step:"1000",value:g,onChange:v=>y(parseInt(v.target.value)),className:"w-full h-1 bg-gray-200 rounded-full appearance-none cursor-pointer accent-primary"})]})})]}),u.jsx("div",{className:"flex justify-end pt-4",children:u.jsx(Ve,{type:"submit",disabled:a.isPending,size:"lg",children:a.isPending?u.jsx(_k,{className:"h-5 w-5 animate-spin"}):E("saveChanges")})})]})]})}const Wg=t=>{let r;const o=new Set,a=(y,x)=>{const b=typeof y=="function"?y(r):y;if(!Object.is(b,r)){const k=r;r=x??(typeof b!="object"||b===null)?b:Object.assign({},r,b),o.forEach(w=>w(r,k))}},l=()=>r,h={setState:a,getState:l,getInitialState:()=>g,subscribe:y=>(o.add(y),()=>o.delete(y))},g=r=t(a,l,h);return h},TP=(t=>t?Wg(t):Wg),MP=t=>t;function IP(t,r=MP){const o=ae.useSyncExternalStore(t.subscribe,ae.useCallback(()=>r(t.getState()),[t,r]),ae.useCallback(()=>r(t.getInitialState()),[t,r]));return ae.useDebugValue(o),o}const Vg=t=>{const r=TP(t),o=a=>IP(r,a);return Object.assign(o,r),o},AP=(t=>t?Vg(t):Vg),ai=AP(t=>({connectionStatus:"disconnected",setConnectionStatus:r=>t({connectionStatus:r}),providerModal:{open:!1},openProviderModal:r=>t({providerModal:{open:!0,provider:r}}),closeProviderModal:()=>t({providerModal:{open:!1}}),channelModal:{open:!1},openChannelModal:r=>t({channelModal:{open:!0,channel:r}}),closeChannelModal:()=>t({channelModal:{open:!1}})}));function LP(t,r){return m.useReducer((o,a)=>r[o][a]??o,t)}var Js=t=>{const{present:r,children:o}=t,a=zP(r),l=typeof o=="function"?o({present:a.isPresent}):m.Children.only(o),c=Ze(a.ref,DP(l));return typeof o=="function"||a.isPresent?m.cloneElement(l,{ref:c}):null};Js.displayName="Presence";function zP(t){const[r,o]=m.useState(),a=m.useRef(null),l=m.useRef(t),c=m.useRef("none"),f=t?"mounted":"unmounted",[h,g]=LP(f,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const y=Al(a.current);c.current=h==="mounted"?y:"none"},[h]),Et(()=>{const y=a.current,x=l.current;if(x!==t){const k=c.current,w=Al(y);t?g("MOUNT"):w==="none"||(y==null?void 0:y.display)==="none"?g("UNMOUNT"):g(x&&k!==w?"ANIMATION_OUT":"UNMOUNT"),l.current=t}},[t,g]),Et(()=>{if(r){let y;const x=r.ownerDocument.defaultView??window,b=w=>{const v=Al(a.current).includes(CSS.escape(w.animationName));if(w.target===r&&v&&(g("ANIMATION_END"),!l.current)){const C=r.style.animationFillMode;r.style.animationFillMode="forwards",y=x.setTimeout(()=>{r.style.animationFillMode==="forwards"&&(r.style.animationFillMode=C)})}},k=w=>{w.target===r&&(c.current=Al(a.current))};return r.addEventListener("animationstart",k),r.addEventListener("animationcancel",b),r.addEventListener("animationend",b),()=>{x.clearTimeout(y),r.removeEventListener("animationstart",k),r.removeEventListener("animationcancel",b),r.removeEventListener("animationend",b)}}else g("ANIMATION_END")},[r,g]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:m.useCallback(y=>{a.current=y?getComputedStyle(y):null,o(y)},[])}}function Al(t){return(t==null?void 0:t.animationName)||"none"}function DP(t){var a,l;let r=(a=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:a.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?t.ref:(r=(l=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:l.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?t.props.ref:t.props.ref||t.ref)}var wc="Dialog",[F0]=oi(wc),[OP,Pn]=F0(wc),U0=t=>{const{__scopeDialog:r,children:o,open:a,defaultOpen:l,onOpenChange:c,modal:f=!0}=t,h=m.useRef(null),g=m.useRef(null),[y,x]=nc({prop:a,defaultProp:l??!1,onChange:c,caller:wc});return u.jsx(OP,{scope:r,triggerRef:h,contentRef:g,contentId:Lo(),titleId:Lo(),descriptionId:Lo(),open:y,onOpenChange:x,onOpenToggle:m.useCallback(()=>x(b=>!b),[x]),modal:f,children:o})};U0.displayName=wc;var $0="DialogTrigger",_P=m.forwardRef((t,r)=>{const{__scopeDialog:o,...a}=t,l=Pn($0,o),c=Ze(r,l.triggerRef);return u.jsx(Be.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":Yf(l.open),...a,ref:c,onClick:Oe(t.onClick,l.onOpenToggle)})});_P.displayName=$0;var qf="DialogPortal",[FP,B0]=F0(qf,{forceMount:void 0}),H0=t=>{const{__scopeDialog:r,forceMount:o,children:a,container:l}=t,c=Pn(qf,r);return u.jsx(FP,{scope:r,forceMount:o,children:m.Children.map(a,f=>u.jsx(Js,{present:o||c.open,children:u.jsx(mc,{asChild:!0,container:l,children:f})}))})};H0.displayName=qf;var oc="DialogOverlay",W0=m.forwardRef((t,r)=>{const o=B0(oc,t.__scopeDialog),{forceMount:a=o.forceMount,...l}=t,c=Pn(oc,t.__scopeDialog);return c.modal?u.jsx(Js,{present:a||c.open,children:u.jsx($P,{...l,ref:r})}):null});W0.displayName=oc;var UP=Ka("DialogOverlay.RemoveScroll"),$P=m.forwardRef((t,r)=>{const{__scopeDialog:o,...a}=t,l=Pn(oc,o);return u.jsx(Vf,{as:UP,allowPinchZoom:!0,shards:[l.contentRef],children:u.jsx(Be.div,{"data-state":Yf(l.open),...a,ref:r,style:{pointerEvents:"auto",...a.style}})})}),Ho="DialogContent",V0=m.forwardRef((t,r)=>{const o=B0(Ho,t.__scopeDialog),{forceMount:a=o.forceMount,...l}=t,c=Pn(Ho,t.__scopeDialog);return u.jsx(Js,{present:a||c.open,children:c.modal?u.jsx(BP,{...l,ref:r}):u.jsx(HP,{...l,ref:r})})});V0.displayName=Ho;var BP=m.forwardRef((t,r)=>{const o=Pn(Ho,t.__scopeDialog),a=m.useRef(null),l=Ze(r,o.contentRef,a);return m.useEffect(()=>{const c=a.current;if(c)return qv(c)},[]),u.jsx(K0,{...t,ref:l,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Oe(t.onCloseAutoFocus,c=>{var f;c.preventDefault(),(f=o.triggerRef.current)==null||f.focus()}),onPointerDownOutside:Oe(t.onPointerDownOutside,c=>{const f=c.detail.originalEvent,h=f.button===0&&f.ctrlKey===!0;(f.button===2||h)&&c.preventDefault()}),onFocusOutside:Oe(t.onFocusOutside,c=>c.preventDefault())})}),HP=m.forwardRef((t,r)=>{const o=Pn(Ho,t.__scopeDialog),a=m.useRef(!1),l=m.useRef(!1);return u.jsx(K0,{...t,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:c=>{var f,h;(f=t.onCloseAutoFocus)==null||f.call(t,c),c.defaultPrevented||(a.current||(h=o.triggerRef.current)==null||h.focus(),c.preventDefault()),a.current=!1,l.current=!1},onInteractOutside:c=>{var g,y;(g=t.onInteractOutside)==null||g.call(t,c),c.defaultPrevented||(a.current=!0,c.detail.originalEvent.type==="pointerdown"&&(l.current=!0));const f=c.target;((y=o.triggerRef.current)==null?void 0:y.contains(f))&&c.preventDefault(),c.detail.originalEvent.type==="focusin"&&l.current&&c.preventDefault()}})}),K0=m.forwardRef((t,r)=>{const{__scopeDialog:o,trapFocus:a,onOpenAutoFocus:l,onCloseAutoFocus:c,...f}=t,h=Pn(Ho,o),g=m.useRef(null),y=Ze(r,g);return vv(),u.jsxs(u.Fragment,{children:[u.jsx(Df,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:l,onUnmountAutoFocus:c,children:u.jsx(cc,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":Yf(h.open),...f,ref:y,onDismiss:()=>h.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(WP,{titleId:h.titleId}),u.jsx(KP,{contentRef:g,descriptionId:h.descriptionId})]})]})}),Gf="DialogTitle",Q0=m.forwardRef((t,r)=>{const{__scopeDialog:o,...a}=t,l=Pn(Gf,o);return u.jsx(Be.h2,{id:l.titleId,...a,ref:r})});Q0.displayName=Gf;var q0="DialogDescription",G0=m.forwardRef((t,r)=>{const{__scopeDialog:o,...a}=t,l=Pn(q0,o);return u.jsx(Be.p,{id:l.descriptionId,...a,ref:r})});G0.displayName=q0;var Y0="DialogClose",X0=m.forwardRef((t,r)=>{const{__scopeDialog:o,...a}=t,l=Pn(Y0,o);return u.jsx(Be.button,{type:"button",...a,ref:r,onClick:Oe(t.onClick,()=>l.onOpenChange(!1))})});X0.displayName=Y0;function Yf(t){return t?"open":"closed"}var J0="DialogTitleWarning",[bj,Z0]=nC(J0,{contentName:Ho,titleName:Gf,docsSlug:"dialog"}),WP=({titleId:t})=>{const r=Z0(J0),o=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
338
338
 
339
339
  If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component.
340
340
 
341
- For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return m.useEffect(()=>{t&&(document.getElementById(t)||console.error(o))},[o,t]),null},VP="DialogDescriptionWarning",KP=({contentRef:t,descriptionId:r})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Z0(VP).contentName}}.`;return m.useEffect(()=>{var c;const l=(c=t.current)==null?void 0:c.getAttribute("aria-describedby");r&&l&&(document.getElementById(r)||console.warn(a))},[a,t,r]),null},QP=U0,qP=H0,ex=W0,tx=V0,nx=Q0,rx=G0,GP=X0;const Xf=QP,YP=qP,ox=m.forwardRef(({className:t,...r},o)=>u.jsx(ex,{ref:o,className:me("fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...r}));ox.displayName=ex.displayName;const bc=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(YP,{children:[u.jsx(ox,{}),u.jsxs(tx,{ref:a,className:me("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200/50 bg-white p-6 shadow-xl duration-base data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-2xl",t),...o,children:[r,u.jsxs(GP,{className:"absolute right-4 top-4 rounded-lg p-1 opacity-70 ring-offset-white transition-all duration-fast hover:opacity-100 hover:bg-gray-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none",children:[u.jsx(zf,{className:"h-4 w-4 text-gray-500"}),u.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));bc.displayName=tx.displayName;const Sc=({className:t,...r})=>u.jsx("div",{className:me("flex flex-col space-y-2 text-center sm:text-left",t),...r});Sc.displayName="DialogHeader";const kc=({className:t,...r})=>u.jsx("div",{className:me("flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-3",t),...r});kc.displayName="DialogFooter";const Cc=m.forwardRef(({className:t,...r},o)=>u.jsx(nx,{ref:o,className:me("text-lg font-semibold leading-tight tracking-tight text-gray-900",t),...r}));Cc.displayName=nx.displayName;const Ec=m.forwardRef(({className:t,...r},o)=>u.jsx(rx,{ref:o,className:me("text-sm text-gray-500 leading-relaxed",t),...r}));Ec.displayName=rx.displayName;function XP({maskedValue:t,isSet:r,className:o,...a}){const[l,c]=m.useState(!1);return u.jsxs("div",{className:"relative",children:[u.jsx(We,{type:l?"text":"password",className:me("pr-20",o),placeholder:r?`${E("apiKeySet")} (${E("unchanged")})`:"",...a}),u.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex gap-1",children:(r||t)&&u.jsx(Ve,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>c(!l),children:l?u.jsx(Mk,{className:"h-4 w-4"}):u.jsx(Ik,{className:"h-4 w-4"})})})]})}function JP({value:t,onChange:r,className:o}){const a=t?Object.entries(t):[],l=(h,g,y)=>{const x=[...a];x[h]=[g,y],r(Object.fromEntries(x))},c=()=>{r({...t,"":""})},f=h=>{const g=a.filter((y,x)=>x!==h);r(Object.fromEntries(g))};return u.jsxs("div",{className:me("space-y-2",o),children:[a.map(([h,g],y)=>u.jsxs("div",{className:"flex gap-2",children:[u.jsx(We,{type:"text",value:h,onChange:x=>l(y,x.target.value,g),placeholder:E("headerName"),className:"flex-1"}),u.jsx(We,{type:"text",value:g,onChange:x=>l(y,h,x.target.value),placeholder:E("headerValue"),className:"flex-1"}),u.jsx(Ve,{type:"button",variant:"ghost",size:"icon",onClick:()=>f(y),children:u.jsx(Xl,{className:"h-4 w-4 text-red-500"})})]},y)),u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:c,children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("add")]})]})}function ZP(){const{providerModal:t,closeProviderModal:r}=ai(),{data:o}=Ys(),{data:a}=Qf(),{data:l}=Xs(),c=gP(),[f,h]=m.useState(""),[g,y]=m.useState(""),[x,b]=m.useState(null),[k,w]=m.useState("auto"),N=t.provider,v=a==null?void 0:a.providers.find(W=>W.name===N),C=N?o==null?void 0:o.providers[N]:null,R=l==null?void 0:l.uiHints,j=N?yt(`providers.${N}.apiKey`,R):void 0,P=N?yt(`providers.${N}.apiBase`,R):void 0,A=N?yt(`providers.${N}.extraHeaders`,R):void 0,$=N?yt(`providers.${N}.wireApi`,R):void 0;m.useEffect(()=>{if(C){y(C.apiBase||(v==null?void 0:v.defaultApiBase)||""),b(C.extraHeaders||null),h("");const W=C.wireApi||(v==null?void 0:v.defaultWireApi)||"auto";w(W)}},[C,v]);const B=W=>{W.preventDefault();const X={};if(f!==""&&(X.apiKey=f),g&&g!==(v==null?void 0:v.defaultApiBase)&&(X.apiBase=g),x&&Object.keys(x).length>0&&(X.extraHeaders=x),v!=null&&v.supportsWireApi){const H=(C==null?void 0:C.wireApi)||v.defaultWireApi||"auto";k!==H&&(X.wireApi=k)}N&&c.mutate({provider:N,data:X},{onSuccess:()=>r()})};return u.jsx(Xf,{open:t.open,onOpenChange:r,children:u.jsxs(bc,{className:"sm:max-w-[500px]",children:[u.jsx(Sc,{children:u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center",children:u.jsx(Yl,{className:"h-5 w-5 text-white"})}),u.jsxs("div",{children:[u.jsx(Cc,{children:(v==null?void 0:v.displayName)||N}),u.jsx(Ec,{children:E("providerFormDescription")})]})]})}),u.jsxs("form",{onSubmit:B,className:"flex flex-col pt-2",children:[u.jsxs("div",{className:"space-y-5 max-h-[60vh] overflow-y-auto pr-1",children:[u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"apiKey",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Yl,{className:"h-3.5 w-3.5 text-gray-500"}),(j==null?void 0:j.label)??E("apiKey")]}),u.jsx(XP,{id:"apiKey",value:f,isSet:C==null?void 0:C.apiKeySet,onChange:W=>h(W.target.value),placeholder:C!=null&&C.apiKeySet?E("apiKeySet"):(j==null?void 0:j.placeholder)??E("enterApiKey"),className:"rounded-xl"})]}),u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"apiBase",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(lv,{className:"h-3.5 w-3.5 text-gray-500"}),(P==null?void 0:P.label)??E("apiBase")]}),u.jsx(We,{id:"apiBase",type:"text",value:g,onChange:W=>y(W.target.value),placeholder:(v==null?void 0:v.defaultApiBase)||(P==null?void 0:P.placeholder)||"https://api.example.com",className:"rounded-xl"}),(P==null?void 0:P.help)&&u.jsx("p",{className:"text-xs text-gray-500",children:P.help})]}),(v==null?void 0:v.supportsWireApi)&&u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"wireApi",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}),($==null?void 0:$.label)??E("wireApi")]}),u.jsxs(so,{value:k,onValueChange:W=>w(W),children:[u.jsx(vr,{className:"rounded-xl",children:u.jsx(Bo,{})}),u.jsx(xr,{children:(v.wireApiOptions||["auto","chat","responses"]).map(W=>u.jsx(Ct,{value:W,children:E(W==="chat"?"wireApiChat":W==="responses"?"wireApiResponses":"wireApiAuto")},W))})]})]}),u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}),(A==null?void 0:A.label)??E("extraHeaders")]}),u.jsx(JP,{value:x,onChange:b})]})]}),u.jsxs(kc,{className:"pt-4 flex-shrink-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:r,children:E("cancel")}),u.jsx(Ve,{type:"submit",disabled:c.isPending,children:c.isPending?E("saving"):E("save")})]})]})]})})}function Jf({tabs:t,activeTab:r,onChange:o,className:a}){return u.jsx("div",{className:me("flex items-center gap-6 border-b border-gray-200/60 mb-6",a),children:t.map(l=>{const c=r===l.id;return u.jsxs("button",{onClick:()=>o(l.id),className:me("relative pb-3 text-[14px] font-medium transition-all duration-fast flex items-center gap-1.5",c?"text-gray-900":"text-gray-600 hover:text-gray-900"),children:[l.label,l.count!==void 0&&u.jsx("span",{className:me("text-[11px] font-medium","text-gray-500"),children:tv(l.count)}),c&&u.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] bg-primary rounded-full"})]},l.id)})})}function sx({name:t,src:r,className:o,imgClassName:a,fallback:l}){const[c,f]=m.useState(!1),h=!!r&&!c;return u.jsx("div",{className:me("flex items-center justify-center",o),children:h?u.jsx("img",{src:r,alt:`${t} logo`,className:me("h-6 w-6 object-contain",a),onError:()=>f(!0),draggable:!1}):l??u.jsx("span",{className:"text-lg font-bold uppercase",children:t.slice(0,1)})})}const eR={openrouter:"openrouter.svg",aihubmix:"aihubmix.png",anthropic:"anthropic.svg",openai:"openai.svg",gemini:"gemini.svg",deepseek:"deepseek.png",zhipu:"zhipu.svg",dashscope:"dashscope.png",moonshot:"moonshot.png",minimax:"minimax.svg",vllm:"vllm.svg",groq:"groq.svg"},tR={telegram:"telegram.svg",slack:"slack.svg",discord:"discord.svg",whatsapp:"whatsapp.svg",qq:"qq.svg",feishu:"feishu.svg",dingtalk:"dingtalk.svg",wecom:"wecom.svg",mochat:"mochat.svg",email:"email.svg"};function ax(t,r){const o=r.toLowerCase(),a=t[o];return a?`/logos/${a}`:null}function nR(t){return ax(eR,t)}function rR(t){return ax(tR,t)}function ix({children:t,onClick:r,className:o}){return u.jsx("div",{onClick:r,className:me("group relative flex flex-col p-6 rounded-2xl border border-gray-200/50 bg-white shadow-sm","transition-all duration-base cursor-pointer","hover:shadow-md hover:border-gray-200",o),children:t})}function lx({children:t,className:r}){return u.jsx("div",{className:me("flex items-start justify-between mb-4",r),children:t})}function cx({title:t,description:r,className:o}){return u.jsxs("div",{className:me("flex-1",o),children:[u.jsx("h3",{className:"text-[14px] font-bold text-gray-900 mb-0.5",children:t}),r&&u.jsx("p",{className:"text-[12px] text-gray-400 leading-relaxed line-clamp-2",children:r})]})}function ux({children:t,className:r}){return u.jsx("div",{className:me("mt-4 pt-3 flex items-center justify-between",r),children:t})}const oR={active:{dot:"bg-emerald-500",text:"text-emerald-600",bg:"bg-emerald-50"},ready:{dot:"bg-emerald-500",text:"text-emerald-600",bg:"bg-emerald-50"},inactive:{dot:"bg-gray-300",text:"text-gray-400",bg:"bg-gray-100/80"},setup:{dot:"bg-gray-300",text:"text-gray-400",bg:"bg-gray-100/80"},warning:{dot:"bg-amber-400",text:"text-amber-600",bg:"bg-amber-50"}};function dx({status:t,label:r,className:o}){const a=oR[t];return u.jsxs("div",{className:me("flex items-center gap-1.5 px-2 py-0.5 rounded-full",a.bg,o),children:[u.jsx("span",{className:me("h-1.5 w-1.5 rounded-full",a.dot)}),u.jsx("span",{className:me("text-[11px] font-medium",a.text),children:r})]})}function fx({label:t,className:r,onClick:o}){return u.jsxs("span",{onClick:o,className:me("inline-flex items-center gap-1 text-[13px] font-medium text-gray-600 hover:text-primary transition-colors cursor-pointer group/action",r),children:[t,u.jsx(ov,{className:"h-3 w-3 transition-transform group-hover/action:translate-x-0.5"})]})}function sR(){const{data:t}=Ys(),{data:r}=Qf(),{data:o}=Xs(),{openProviderModal:a}=ai(),[l,c]=m.useState("installed"),f=o==null?void 0:o.uiHints;if(!t||!r)return u.jsx("div",{className:"p-8",children:E("providersLoading")});const h=[{id:"installed",label:E("providersTabConfigured"),count:t.providers?Object.keys(t.providers).filter(y=>t.providers[y].apiKeySet).length:0},{id:"all",label:E("providersTabAll"),count:r.providers.length}],g=l==="installed"?r.providers.filter(y=>{var x;return(x=t.providers[y.name])==null?void 0:x.apiKeySet}):r.providers;return u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("providersPageTitle")}),u.jsx(Jf,{tabs:h,activeTab:l,onChange:c}),u.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:g.map(y=>{const x=t.providers[y.name],b=x==null?void 0:x.apiKeySet,k=yt(`providers.${y.name}`,f),w=(k==null?void 0:k.help)||E("providersDefaultDescription");return u.jsxs(ix,{onClick:()=>a(y.name),children:[u.jsxs(lx,{children:[u.jsx(sx,{name:y.name,src:nR(y.name),className:me("h-11 w-11 rounded-xl border transition-all",b?"bg-white border-primary/30":"bg-white border-gray-200/60 group-hover:border-gray-300"),imgClassName:"h-6 w-6",fallback:u.jsx("span",{className:me("text-base font-semibold uppercase",b?"text-gray-800":"text-gray-400"),children:y.name[0]})}),u.jsx(dx,{status:b?"ready":"setup",label:E(b?"statusReady":"statusSetup")})]}),u.jsx(cx,{title:y.displayName||y.name,description:w}),u.jsx(ux,{children:u.jsx(fx,{label:E(b?"actionConfigure":"actionAddProvider")})})]},y.name)})}),g.length===0&&u.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[u.jsx("div",{className:"h-14 w-14 flex items-center justify-center rounded-xl bg-gray-100/80 mb-4",children:u.jsx(Yl,{className:"h-6 w-6 text-gray-300"})}),u.jsx("h3",{className:"text-[14px] font-semibold text-gray-900 mb-1.5",children:E("providersEmptyTitle")}),u.jsx("p",{className:"text-[13px] text-gray-400 max-w-sm",children:E("providersEmptyDescription")})]}),u.jsx(ZP,{})]})}const Zf=m.forwardRef(({className:t,checked:r=!1,onCheckedChange:o,...a},l)=>u.jsx("button",{type:"button",role:"switch","aria-checked":r,ref:l,className:me("peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50",r?"bg-primary":"bg-gray-200/80 hover:bg-gray-300/80",t),onClick:()=>o==null?void 0:o(!r),...a,children:u.jsx("span",{className:me("pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md ring-0 transition-transform duration-fast",r?"translate-x-5":"translate-x-0")})}));Zf.displayName="Switch";function aR({value:t,onChange:r,className:o,placeholder:a=""}){const[l,c]=m.useState(""),f=g=>{g.key==="Enter"&&l.trim()?(g.preventDefault(),r([...t,l.trim()]),c("")):g.key==="Backspace"&&!l&&t.length>0&&r(t.slice(0,-1))},h=g=>{r(t.filter((y,x)=>x!==g))};return u.jsxs("div",{className:me("flex flex-wrap gap-2 p-2 border rounded-md min-h-[42px]",o),children:[t.map((g,y)=>u.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-primary text-primary-foreground rounded text-sm",children:[g,u.jsx("button",{type:"button",onClick:()=>h(y),className:"hover:text-red-300 transition-colors",children:u.jsx(zf,{className:"h-3 w-3"})})]},y)),u.jsx("input",{type:"text",value:l,onChange:g=>c(g.target.value),onKeyDown:f,className:"flex-1 outline-none min-w-[100px] bg-transparent text-sm",placeholder:a||E("enterTag")})]})}const Kg=[{value:"pairing",label:"pairing"},{value:"allowlist",label:"allowlist"},{value:"open",label:"open"},{value:"disabled",label:"disabled"}],Qg=[{value:"open",label:"open"},{value:"allowlist",label:"allowlist"},{value:"disabled",label:"disabled"}],iR=[{value:"off",label:"off"},{value:"partial",label:"partial"},{value:"block",label:"block"},{value:"progress",label:"progress"}],lR=t=>t.includes("token")||t.includes("secret")||t.includes("password")?u.jsx(Yl,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("url")||t.includes("host")?u.jsx(lv,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("email")||t.includes("mail")?u.jsx(Af,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("id")||t.includes("from")?u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}):t==="enabled"||t==="consentGranted"?u.jsx(qk,{className:"h-3.5 w-3.5 text-gray-500"}):u.jsx(uv,{className:"h-3.5 w-3.5 text-gray-500"});function qg(){return{telegram:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"token",type:"password",label:E("botToken")},{name:"allowFrom",type:"tags",label:E("allowFrom")},{name:"proxy",type:"text",label:E("proxy")},{name:"accountId",type:"text",label:E("accountId")},{name:"dmPolicy",type:"select",label:E("dmPolicy"),options:Kg},{name:"groupPolicy",type:"select",label:E("groupPolicy"),options:Qg},{name:"groupAllowFrom",type:"tags",label:E("groupAllowFrom")},{name:"requireMention",type:"boolean",label:E("requireMention")},{name:"mentionPatterns",type:"tags",label:E("mentionPatterns")},{name:"groups",type:"json",label:E("groupRulesJson")}],discord:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"token",type:"password",label:E("botToken")},{name:"allowBots",type:"boolean",label:E("allowBotMessages")},{name:"allowFrom",type:"tags",label:E("allowFrom")},{name:"gatewayUrl",type:"text",label:E("gatewayUrl")},{name:"intents",type:"number",label:E("intents")},{name:"proxy",type:"text",label:E("proxy")},{name:"mediaMaxMb",type:"number",label:E("attachmentMaxSizeMb")},{name:"streaming",type:"select",label:E("streamingMode"),options:iR},{name:"draftChunk",type:"json",label:E("draftChunkingJson")},{name:"textChunkLimit",type:"number",label:E("textChunkLimit")},{name:"accountId",type:"text",label:E("accountId")},{name:"dmPolicy",type:"select",label:E("dmPolicy"),options:Kg},{name:"groupPolicy",type:"select",label:E("groupPolicy"),options:Qg},{name:"groupAllowFrom",type:"tags",label:E("groupAllowFrom")},{name:"requireMention",type:"boolean",label:E("requireMention")},{name:"mentionPatterns",type:"tags",label:E("mentionPatterns")},{name:"groups",type:"json",label:E("groupRulesJson")}],whatsapp:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"bridgeUrl",type:"text",label:E("bridgeUrl")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],feishu:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"appId",type:"text",label:E("appId")},{name:"appSecret",type:"password",label:E("appSecret")},{name:"encryptKey",type:"password",label:E("encryptKey")},{name:"verificationToken",type:"password",label:E("verificationToken")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],dingtalk:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"clientId",type:"text",label:E("clientId")},{name:"clientSecret",type:"password",label:E("clientSecret")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],wecom:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"corpId",type:"text",label:E("corpId")},{name:"agentId",type:"text",label:E("agentId")},{name:"secret",type:"password",label:E("secret")},{name:"token",type:"password",label:E("token")},{name:"callbackPort",type:"number",label:E("callbackPort")},{name:"callbackPath",type:"text",label:E("callbackPath")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],slack:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"mode",type:"text",label:E("mode")},{name:"webhookPath",type:"text",label:E("webhookPath")},{name:"allowBots",type:"boolean",label:E("allowBotMessages")},{name:"botToken",type:"password",label:E("botToken")},{name:"appToken",type:"password",label:E("appToken")}],email:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"consentGranted",type:"boolean",label:E("consentGranted")},{name:"imapHost",type:"text",label:E("imapHost")},{name:"imapPort",type:"number",label:E("imapPort")},{name:"imapUsername",type:"text",label:E("imapUsername")},{name:"imapPassword",type:"password",label:E("imapPassword")},{name:"fromAddress",type:"email",label:E("fromAddress")}],mochat:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"baseUrl",type:"text",label:E("baseUrl")},{name:"clawToken",type:"password",label:E("clawToken")},{name:"agentUserId",type:"text",label:E("agentUserId")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],qq:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"appId",type:"text",label:E("appId")},{name:"secret",type:"password",label:E("appSecret")},{name:"markdownSupport",type:"boolean",label:E("markdownSupport")},{name:"allowFrom",type:"tags",label:E("allowFrom")}]}}const Gg={telegram:ks,slack:ks,email:Af,default:ks},Yg={telegram:"from-sky-400 to-blue-500",slack:"from-purple-400 to-indigo-500",email:"from-rose-400 to-pink-500",default:"from-slate-400 to-gray-500"};function sc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hx(t,r){const o={...t};for(const[a,l]of Object.entries(r)){const c=o[a];if(sc(c)&&sc(l)){o[a]=hx(c,l);continue}o[a]=l}return o}function cR(t,r){const o=t.split("."),a={};let l=a;for(let c=0;c<o.length-1;c+=1){const f=o[c];l[f]={},l=l[f]}return l[o[o.length-1]]=r,a}function uR(){var H,Y;const{channelModal:t,closeChannelModal:r}=ai(),{data:o}=Ys(),{data:a}=Xs(),l=yP(),c=xP(),[f,h]=m.useState({}),[g,y]=m.useState({}),[x,b]=m.useState(null),k=t.channel,w=k?o==null?void 0:o.channels[k]:null,N=k?qg()[k]??[]:[],v=a==null?void 0:a.uiHints,C=k?`channels.${k}`:null,R=((H=a==null?void 0:a.actions)==null?void 0:H.filter(_=>_.scope===C))??[],j=k&&(((Y=yt(`channels.${k}`,v))==null?void 0:Y.label)??k);m.useEffect(()=>{if(w){h({...w});const _={};(k?qg()[k]??[]:[]).filter(Z=>Z.type==="json").forEach(Z=>{const ee=w[Z.name];_[Z.name]=JSON.stringify(ee??{},null,2)}),y(_)}else h({}),y({})},[w,k]);const P=(_,O)=>{h(Z=>({...Z,[_]:O}))},A=_=>{if(_.preventDefault(),!k)return;const O={...f};for(const Z of N){if(Z.type!=="json")continue;const ee=g[Z.name]??"";try{O[Z.name]=ee.trim()?JSON.parse(ee):{}}catch{Ue.error(`${E("invalidJson")}: ${Z.name}`);return}}l.mutate({channel:k,data:O},{onSuccess:()=>r()})},$=_=>{if(!_||!k)return;const O=_.channels;if(!sc(O))return;const Z=O[k];sc(Z)&&h(ee=>hx(ee,Z))},B=async _=>{if(!(!k||!C)){b(_.id);try{let O={...f};_.saveBeforeRun&&(O={...O,..._.savePatch??{}},h(O),await l.mutateAsync({channel:k,data:O}));const Z=await c.mutateAsync({actionId:_.id,data:{scope:C,draftConfig:cR(C,O)}});$(Z.patch),Z.ok?Ue.success(Z.message||E("success")):Ue.error(Z.message||E("error"))}catch(O){const Z=O instanceof Error?O.message:String(O);Ue.error(`${E("error")}: ${Z}`)}finally{b(null)}}},W=Gg[k||""]||Gg.default,X=Yg[k||""]||Yg.default;return u.jsx(Xf,{open:t.open,onOpenChange:r,children:u.jsxs(bc,{className:"sm:max-w-[550px] max-h-[85vh] overflow-hidden flex flex-col",children:[u.jsx(Sc,{children:u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("div",{className:`h-10 w-10 rounded-xl bg-gradient-to-br ${X} flex items-center justify-center`,children:u.jsx(W,{className:"h-5 w-5 text-white"})}),u.jsxs("div",{children:[u.jsx(Cc,{className:"capitalize",children:j}),u.jsx(Ec,{children:E("configureMessageChannelParameters")})]})]})}),u.jsxs("form",{onSubmit:A,className:"flex flex-col flex-1 overflow-hidden",children:[u.jsx("div",{className:"flex-1 overflow-y-auto custom-scrollbar py-2 pr-2 space-y-5",children:N.map(_=>{const O=k?yt(`channels.${k}.${_.name}`,v):void 0,Z=(O==null?void 0:O.label)??_.label,ee=O==null?void 0:O.placeholder;return u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:_.name,className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[lR(_.name),Z]}),_.type==="boolean"&&u.jsxs("div",{className:"flex items-center justify-between p-3 rounded-xl bg-gray-50",children:[u.jsx("span",{className:"text-sm text-gray-500",children:f[_.name]?E("enabled"):E("disabled")}),u.jsx(Zf,{id:_.name,checked:f[_.name]||!1,onCheckedChange:G=>P(_.name,G),className:"data-[state=checked]:bg-emerald-500"})]}),(_.type==="text"||_.type==="email")&&u.jsx(We,{id:_.name,type:_.type,value:f[_.name]||"",onChange:G=>P(_.name,G.target.value),placeholder:ee,className:"rounded-xl"}),_.type==="password"&&u.jsx(We,{id:_.name,type:"password",value:f[_.name]||"",onChange:G=>P(_.name,G.target.value),placeholder:ee??E("leaveBlankToKeepUnchanged"),className:"rounded-xl"}),_.type==="number"&&u.jsx(We,{id:_.name,type:"number",value:f[_.name]||0,onChange:G=>P(_.name,parseInt(G.target.value)||0),placeholder:ee,className:"rounded-xl"}),_.type==="tags"&&u.jsx(aR,{value:f[_.name]||[],onChange:G=>P(_.name,G)}),_.type==="select"&&u.jsxs(so,{value:f[_.name]||"",onValueChange:G=>P(_.name,G),children:[u.jsx(vr,{className:"rounded-xl",children:u.jsx(Bo,{})}),u.jsx(xr,{children:(_.options??[]).map(G=>u.jsx(Ct,{value:G.value,children:G.label},G.value))})]}),_.type==="json"&&u.jsx("textarea",{id:_.name,value:g[_.name]??"{}",onChange:G=>y(ie=>({...ie,[_.name]:G.target.value})),className:"min-h-[120px] w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-mono"})]},_.name)})}),u.jsxs(kc,{className:"pt-4 flex-shrink-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:r,children:E("cancel")}),u.jsx(Ve,{type:"submit",disabled:l.isPending||!!x,children:l.isPending?E("saving"):E("save")}),R.filter(_=>_.trigger==="manual").map(_=>u.jsx(Ve,{type:"button",onClick:()=>B(_),disabled:l.isPending||!!x,variant:"secondary",children:x===_.id?E("connecting"):_.title},_.id))]})]})]})})}const Xg={telegram:ks,slack:Vk,email:Af,webhook:Ek,default:Lf},dR={telegram:"channelDescTelegram",slack:"channelDescSlack",email:"channelDescEmail",webhook:"channelDescWebhook",discord:"channelDescDiscord",feishu:"channelDescFeishu"};function fR(){const{data:t}=Ys(),{data:r}=Qf(),{data:o}=Xs(),{openChannelModal:a}=ai(),[l,c]=m.useState("active"),f=o==null?void 0:o.uiHints;if(!t||!r)return u.jsx("div",{className:"p-8 text-gray-400",children:E("channelsLoading")});const h=[{id:"active",label:E("channelsTabEnabled"),count:r.channels.filter(y=>{var x;return(x=t.channels[y.name])==null?void 0:x.enabled}).length},{id:"all",label:E("channelsTabAll"),count:r.channels.length}],g=r.channels.filter(y=>{var b;const x=((b=t.channels[y.name])==null?void 0:b.enabled)||!1;return l==="all"||x});return u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("channelsPageTitle")}),u.jsx(Jf,{tabs:h,activeTab:l,onChange:c}),u.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:g.map(y=>{const x=t.channels[y.name],b=(x==null?void 0:x.enabled)||!1,k=Xg[y.name]||Xg.default,w=yt(`channels.${y.name}`,f),N=(w==null?void 0:w.help)||E(dR[y.name]||"channelDescriptionDefault");return u.jsxs(ix,{onClick:()=>a(y.name),children:[u.jsxs(lx,{children:[u.jsx(sx,{name:y.name,src:rR(y.name),className:me("h-11 w-11 rounded-xl border transition-all",b?"bg-white border-primary/30":"bg-white border-gray-200/60 group-hover:border-gray-300"),imgClassName:"h-5 w-5",fallback:u.jsx(k,{className:"h-5 w-5"})}),u.jsx(dx,{status:b?"active":"inactive",label:E(b?"statusActive":"statusInactive")})]}),u.jsx(cx,{title:y.displayName||y.name,description:N}),u.jsxs(ux,{children:[u.jsx(fx,{label:E(b?"actionConfigure":"actionEnable")}),y.tutorialUrl&&u.jsx("a",{href:y.tutorialUrl,target:"_blank",rel:"noreferrer",onClick:v=>v.stopPropagation(),className:"flex items-center justify-center h-6 w-6 rounded-md text-gray-300 hover:text-gray-500 hover:bg-gray-100/60 transition-colors",title:E("channelsGuideTitle"),children:u.jsx(iv,{className:"h-3.5 w-3.5"})})]})]},y.name)})}),g.length===0&&u.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[u.jsx("div",{className:"h-14 w-14 flex items-center justify-center rounded-xl bg-gray-100/80 mb-4",children:u.jsx(Lf,{className:"h-6 w-6 text-gray-300"})}),u.jsx("h3",{className:"text-[14px] font-semibold text-gray-900 mb-1.5",children:E("channelsEmptyTitle")}),u.jsx("p",{className:"text-[13px] text-gray-400 max-w-sm",children:E("channelsEmptyDescription")})]}),u.jsx(uR,{})]})}const hR=[{value:"main",label:"main"},{value:"per-peer",label:"per-peer"},{value:"per-channel-peer",label:"per-channel-peer"},{value:"per-account-channel-peer",label:"per-account-channel-peer"}];function pR(){return{id:"",default:!1,workspace:"",model:"",maxTokens:void 0,contextTokens:void 0,maxToolIterations:void 0}}function mR(){return{agentId:"",match:{channel:"",accountId:""}}}function Rd(t){const r=t.trim();if(!r)return;const o=Number.parseInt(r,10);return Number.isFinite(o)?o:void 0}function gR(){const{data:t,isLoading:r}=Ys(),{data:o}=Xs(),a=vP(),[l,c]=m.useState([]),[f,h]=m.useState([]),[g,y]=m.useState("per-channel-peer"),[x,b]=m.useState(0),[k,w]=m.useState(2e5);m.useEffect(()=>{var H,Y,_;t&&(c((t.agents.list??[]).map(O=>({id:O.id??"",default:!!O.default,workspace:O.workspace??"",model:O.model??"",maxTokens:O.maxTokens,contextTokens:O.contextTokens,maxToolIterations:O.maxToolIterations}))),h((t.bindings??[]).map(O=>{var Z,ee,G;return{agentId:O.agentId??"",match:{channel:((Z=O.match)==null?void 0:Z.channel)??"",accountId:((ee=O.match)==null?void 0:ee.accountId)??"",peer:(G=O.match)!=null&&G.peer?{kind:O.match.peer.kind,id:O.match.peer.id}:void 0}}})),y(((H=t.session)==null?void 0:H.dmScope)??"per-channel-peer"),b(((_=(Y=t.session)==null?void 0:Y.agentToAgent)==null?void 0:_.maxPingPongTurns)??0),w(t.agents.defaults.contextTokens??2e5))},[t]);const N=o==null?void 0:o.uiHints,v=yt("session.dmScope",N),C=yt("session.agentToAgent.maxPingPongTurns",N),R=yt("agents.defaults.contextTokens",N),j=yt("agents.list.*.contextTokens",N),P=yt("agents.list",N),A=yt("bindings",N),$=m.useMemo(()=>{const H=new Set(["main"]);return l.forEach(Y=>{const _=Y.id.trim();_&&H.add(_)}),H},[l]),B=(H,Y)=>{c(_=>_.map((O,Z)=>Z===H?{...O,...Y}:O))},W=(H,Y)=>{h(_=>_.map((O,Z)=>Z===H?Y:O))},X=()=>{try{const H=l.map((O,Z)=>{var ie,ce;const ee=O.id.trim();if(!ee)throw new Error(E("agentIdRequiredError").replace("{index}",String(Z)));const G={id:ee};return O.default&&(G.default=!0),(ie=O.workspace)!=null&&ie.trim()&&(G.workspace=O.workspace.trim()),(ce=O.model)!=null&&ce.trim()&&(G.model=O.model.trim()),typeof O.maxTokens=="number"&&(G.maxTokens=O.maxTokens),typeof O.contextTokens=="number"&&(G.contextTokens=Math.max(1e3,O.contextTokens)),typeof O.maxToolIterations=="number"&&(G.maxToolIterations=O.maxToolIterations),G}),Y=H.map(O=>O.id).filter((O,Z,ee)=>ee.indexOf(O)!==Z);if(Y.length>0){Ue.error(`${E("duplicateAgentId")}: ${Y[0]}`);return}const _=f.map((O,Z)=>{var Q,M,F,le;const ee=O.agentId.trim(),G=O.match.channel.trim(),ie=((Q=O.match.accountId)==null?void 0:Q.trim())??"",ce=(M=O.match.peer)==null?void 0:M.kind,K=((le=(F=O.match.peer)==null?void 0:F.id)==null?void 0:le.trim())??"";if(!ee)throw new Error(E("bindingAgentIdRequired").replace("{index}",String(Z)));if(!$.has(ee))throw new Error(`${E("bindingAgentIdNotFound").replace("{index}",String(Z))}: ${ee}`);if(!G)throw new Error(E("bindingChannelRequired").replace("{index}",String(Z)));const q={agentId:ee,match:{channel:G}};if(ie&&(q.match.accountId=ie),ce){if(!K)throw new Error(E("bindingPeerIdRequired").replace("{index}",String(Z)));q.match.peer={kind:ce,id:K}}return q});a.mutate({data:{agents:{defaults:{contextTokens:Math.max(1e3,k)},list:H},bindings:_,session:{dmScope:g,agentToAgent:{maxPingPongTurns:Math.min(5,Math.max(0,x))}}}})}catch(H){const Y=H instanceof Error?H.message:String(H);Ue.error(Y)}};return r||!t?u.jsx("div",{className:"p-8 text-gray-400",children:E("runtimeLoading")}):u.jsxs(Wo,{className:"space-y-6",children:[u.jsx(Vo,{title:E("runtimePageTitle"),description:E("runtimePageDescription")}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(v==null?void 0:v.label)??E("dmScope")}),u.jsx(Hl,{children:(v==null?void 0:v.help)??E("dmScopeHelp")})]}),u.jsxs(Ba,{className:"space-y-4",children:[u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(R==null?void 0:R.label)??E("defaultContextTokens")}),u.jsx(We,{type:"number",min:1e3,step:1e3,value:k,onChange:H=>w(Math.max(1e3,Number.parseInt(H.target.value,10)||1e3))}),u.jsx("p",{className:"text-xs text-gray-500",children:(R==null?void 0:R.help)??E("defaultContextTokensHelp")})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(v==null?void 0:v.label)??E("dmScope")}),u.jsxs(so,{value:g,onValueChange:H=>y(H),children:[u.jsx(vr,{children:u.jsx(Bo,{})}),u.jsx(xr,{children:hR.map(H=>u.jsx(Ct,{value:H.value,children:H.label},H.value))})]})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(C==null?void 0:C.label)??E("maxPingPongTurns")}),u.jsx(We,{type:"number",min:0,max:5,value:x,onChange:H=>b(Math.max(0,Number.parseInt(H.target.value,10)||0))}),u.jsx("p",{className:"text-xs text-gray-500",children:(C==null?void 0:C.help)??E("maxPingPongTurnsHelp")})]})]})]}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(P==null?void 0:P.label)??E("agentList")}),u.jsx(Hl,{children:(P==null?void 0:P.help)??E("agentListHelp")})]}),u.jsxs(Ba,{className:"space-y-3",children:[l.map((H,Y)=>u.jsxs("div",{className:"rounded-xl border border-gray-200 p-3 space-y-3",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[u.jsx(We,{value:H.id,onChange:_=>B(Y,{id:_.target.value}),placeholder:E("agentIdPlaceholder")}),u.jsx(We,{value:H.workspace??"",onChange:_=>B(Y,{workspace:_.target.value}),placeholder:E("workspaceOverridePlaceholder")}),u.jsx(We,{value:H.model??"",onChange:_=>B(Y,{model:_.target.value}),placeholder:E("modelOverridePlaceholder")}),u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2",children:[u.jsx(We,{type:"number",min:1,value:H.maxTokens??"",onChange:_=>B(Y,{maxTokens:Rd(_.target.value)}),placeholder:E("maxTokensPlaceholder")}),u.jsx(We,{type:"number",min:1e3,step:1e3,value:H.contextTokens??"",onChange:_=>B(Y,{contextTokens:Rd(_.target.value)}),placeholder:(j==null?void 0:j.label)??E("contextTokensPlaceholder")}),u.jsx(We,{type:"number",min:1,value:H.maxToolIterations??"",onChange:_=>B(Y,{maxToolIterations:Rd(_.target.value)}),placeholder:E("maxToolsPlaceholder")})]})]}),u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[u.jsx(Zf,{checked:!!H.default,onCheckedChange:_=>{if(!_){B(Y,{default:!1});return}c(O=>O.map((Z,ee)=>({...Z,default:ee===Y})))}}),u.jsx("span",{children:E("defaultAgent")})]}),u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:()=>c(_=>_.filter((O,Z)=>Z!==Y)),children:[u.jsx(Xl,{className:"h-4 w-4 mr-1"}),E("remove")]})]})]},`${Y}-${H.id}`)),u.jsxs(Ve,{type:"button",variant:"outline",onClick:()=>c(H=>[...H,pR()]),children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("addAgent")]})]})]}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(A==null?void 0:A.label)??E("bindings")}),u.jsx(Hl,{children:(A==null?void 0:A.help)??E("bindingsHelp")})]}),u.jsxs(Ba,{className:"space-y-3",children:[f.map((H,Y)=>{var O,Z;const _=((O=H.match.peer)==null?void 0:O.kind)??"";return u.jsxs("div",{className:"rounded-xl border border-gray-200 p-3 space-y-3",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[u.jsx(We,{value:H.agentId,onChange:ee=>W(Y,{...H,agentId:ee.target.value}),placeholder:E("targetAgentIdPlaceholder")}),u.jsx(We,{value:H.match.channel,onChange:ee=>W(Y,{...H,match:{...H.match,channel:ee.target.value}}),placeholder:E("channelPlaceholder")}),u.jsx(We,{value:H.match.accountId??"",onChange:ee=>W(Y,{...H,match:{...H.match,accountId:ee.target.value}}),placeholder:E("accountIdOptionalPlaceholder")}),u.jsxs(so,{value:_||"__none__",onValueChange:ee=>{var ie;const G=ee==="__none__"?"":ee;if(!G){W(Y,{...H,match:{...H.match,peer:void 0}});return}W(Y,{...H,match:{...H.match,peer:{kind:G,id:((ie=H.match.peer)==null?void 0:ie.id)??""}}})},children:[u.jsx(vr,{children:u.jsx(Bo,{})}),u.jsxs(xr,{children:[u.jsx(Ct,{value:"__none__",children:E("peerKindOptional")}),u.jsx(Ct,{value:"direct",children:"direct"}),u.jsx(Ct,{value:"group",children:"group"}),u.jsx(Ct,{value:"channel",children:"channel"})]})]}),u.jsx(We,{value:((Z=H.match.peer)==null?void 0:Z.id)??"",onChange:ee=>W(Y,{...H,match:{...H.match,peer:_?{kind:_,id:ee.target.value}:void 0}}),placeholder:E("peerIdPlaceholder")})]}),u.jsx("div",{className:"flex justify-end",children:u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:()=>h(ee=>ee.filter((G,ie)=>ie!==Y)),children:[u.jsx(Xl,{className:"h-4 w-4 mr-1"}),E("remove")]})})]},`${Y}-${H.agentId}`)}),u.jsxs(Ve,{type:"button",variant:"outline",onClick:()=>h(H=>[...H,mR()]),children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("addBinding")]})]})]}),u.jsx("div",{className:"flex justify-end",children:u.jsxs(Ve,{type:"button",onClick:X,disabled:a.isPending,children:[u.jsx(Wk,{className:"h-4 w-4 mr-2"}),a.isPending?E("saving"):E("saveRuntimeSettings")]})})]})}const yR=({open:t,onOpenChange:r,title:o,description:a,confirmLabel:l=E("confirm"),cancelLabel:c=E("cancel"),variant:f="default",onConfirm:h,onCancel:g})=>{const y=()=>{h(),r(!1)},x=()=>{g(),r(!1)};return u.jsx(Xf,{open:t,onOpenChange:r,children:u.jsxs(bc,{className:"[&>:last-child]:hidden",onCloseAutoFocus:b=>b.preventDefault(),children:[u.jsxs(Sc,{children:[u.jsx(Cc,{children:o}),a?u.jsx(Ec,{children:a}):null]}),u.jsxs(kc,{className:"gap-2 sm:gap-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:x,children:c}),u.jsx(Ve,{type:"button",variant:f==="destructive"?"destructive":"default",onClick:y,children:l})]})]})})},vR={open:!1,title:"",description:"",confirmLabel:E("confirm"),cancelLabel:E("cancel"),variant:"default",resolve:null};function eh(){const[t,r]=m.useState(vR),o=m.useCallback(c=>new Promise(f=>{r({open:!0,title:c.title,description:c.description??"",confirmLabel:c.confirmLabel??E("confirm"),cancelLabel:c.cancelLabel??E("cancel"),variant:c.variant??"default",resolve:h=>{f(h),r(g=>({...g,open:!1,resolve:null}))}})}),[]),a=m.useCallback(c=>{r(f=>(!c&&f.resolve&&f.resolve(!1),{...f,open:c,resolve:c?f.resolve:null}))},[]),l=m.useCallback(()=>u.jsx(yR,{open:t.open,onOpenChange:a,title:t.title,description:t.description||void 0,confirmLabel:t.confirmLabel,cancelLabel:t.cancelLabel,variant:t.variant,onConfirm:()=>{var c;return(c=t.resolve)==null?void 0:c.call(t,!0)},onCancel:()=>{var c;return(c=t.resolve)==null?void 0:c.call(t,!1)}}),[t,a]);return{confirm:o,ConfirmDialog:l}}const qa="__unknown_channel__";function xR(t){return If(t)}function Ll(t){const r=t.indexOf(":");return r<=0?qa:t.slice(0,r).trim()||qa}function df(t){return t===qa?E("sessionsUnknownChannel"):t}function wR({session:t,channel:r,isSelected:o,onSelect:a}){const l=df(r),c=t.label||t.key.split(":").pop()||t.key;return u.jsxs("button",{onClick:a,className:me("w-full text-left p-3.5 rounded-xl transition-all duration-200 outline-none focus:outline-none focus:ring-0 group",o?"bg-brand-50 border border-brand-100/50":"bg-transparent border border-transparent hover:bg-gray-50/80"),children:[u.jsxs("div",{className:"flex items-start justify-between mb-1.5",children:[u.jsx("div",{className:me("font-semibold truncate pr-2 flex-1 text-sm",o?"text-brand-800":"text-gray-900"),children:c}),u.jsx("div",{className:me("text-[10px] font-bold px-2 py-0.5 rounded-full shrink-0 capitalize",o?"bg-white text-brand-600 shadow-[0_1px_2px_rgba(0,0,0,0.02)]":"bg-gray-100 text-gray-500"),children:l})]}),u.jsxs("div",{className:me("flex items-center text-xs justify-between mt-2 font-medium",o?"text-brand-600/80":"text-gray-400"),children:[u.jsxs("div",{className:"flex items-center gap-1.5",children:[u.jsx(jk,{className:"w-3.5 h-3.5 opacity-70"}),u.jsx("span",{className:"truncate max-w-[100px]",children:wk(t.updatedAt)})]}),u.jsxs("div",{className:"flex items-center gap-1",children:[u.jsx(ks,{className:"w-3.5 h-3.5 opacity-70"}),u.jsx("span",{children:t.messageCount})]})]})]})}function bR({message:t}){const r=t.role.toLowerCase()==="user";return u.jsx("div",{className:me("flex w-full mb-6",r?"justify-end":"justify-start"),children:u.jsxs("div",{className:me("max-w-[85%] rounded-[1.25rem] p-5 flex gap-3 text-sm",r?"bg-primary text-white rounded-tr-sm":"bg-gray-50 text-gray-800 rounded-tl-sm border border-gray-100/50"),children:[u.jsx("div",{className:"shrink-0 pt-0.5",children:r?u.jsx(Gk,{className:"w-4 h-4 text-primary-100"}):u.jsx(Nk,{className:"w-4 h-4 text-gray-400"})}),u.jsxs("div",{className:"flex-1 space-y-1 overflow-x-hidden",children:[u.jsxs("div",{className:"flex items-baseline justify-between gap-4 mb-2",children:[u.jsx("span",{className:me("font-semibold text-xs",r?"text-primary-50":"text-gray-900 capitalize"),children:t.role}),u.jsx("span",{className:me("text-[10px]",r?"text-primary-200":"text-gray-400"),children:xR(t.timestamp)})]}),u.jsx("div",{className:"whitespace-pre-wrap break-words leading-relaxed text-[15px]",children:t.content})]})]})})}function SR(){var O,Z,ee;const[t,r]=m.useState(""),[o]=m.useState(100),[a]=m.useState(0),[l,c]=m.useState(null),[f,h]=m.useState("all"),[g,y]=m.useState(""),[x,b]=m.useState(""),[k,w]=m.useState(!1),N=m.useMemo(()=>({q:t.trim()||void 0,limit:o,activeMinutes:a}),[t,o,a]),v=wP(N),C=bP(l,200),R=SP(),j=kP(),{confirm:P,ConfirmDialog:A}=eh(),$=m.useMemo(()=>{var G;return((G=v.data)==null?void 0:G.sessions)??[]},[(O=v.data)==null?void 0:O.sessions]),B=m.useMemo(()=>$.find(G=>G.key===l),[$,l]),W=m.useMemo(()=>{const G=new Set;for(const ie of $)G.add(Ll(ie.key));return Array.from(G).sort((ie,ce)=>ie===qa?1:ce===qa?-1:ie.localeCompare(ce))},[$]),X=m.useMemo(()=>f==="all"?$:$.filter(G=>Ll(G.key)===f),[$,f]);m.useEffect(()=>{B?(y(B.label||""),b(B.preferredModel||"")):(y(""),b("")),w(!1)},[B]);const H=()=>{l&&(R.mutate({key:l,data:{label:g.trim()||null,preferredModel:x.trim()||null}}),w(!1))},Y=async()=>{if(!l)return;await P({title:E("sessionsClearHistory")+"?",variant:"destructive",confirmLabel:E("sessionsClearHistory")})&&R.mutate({key:l,data:{clearHistory:!0}})},_=async()=>{if(!l)return;await P({title:E("sessionsDeleteConfirm")+"?",variant:"destructive",confirmLabel:E("sessionsDeleteConfirm")})&&j.mutate({key:l},{onSuccess:()=>c(null)})};return u.jsxs(Wo,{fullHeight:!0,children:[u.jsx(Vo,{title:E("sessionsPageTitle"),description:E("sessionsPageDescription")}),u.jsxs("div",{className:"flex-1 flex gap-6 min-h-0 relative",children:[u.jsxs("div",{className:"w-[320px] flex flex-col shrink-0 bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden",children:[u.jsxs("div",{className:"px-4 py-4 border-b border-gray-100 bg-white z-10 shrink-0 space-y-3",children:[u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("span",{className:"text-[11px] font-semibold text-gray-400 uppercase tracking-wider",children:[$.length," ",E("sessionsListTitle")]}),u.jsx(Ve,{variant:"ghost",size:"icon",className:"h-7 w-7 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100",onClick:()=>v.refetch(),children:u.jsx(Xd,{className:me("h-3.5 w-3.5",v.isFetching&&"animate-spin")})})]}),u.jsxs(so,{value:f,onValueChange:h,children:[u.jsx(vr,{className:"w-full h-8.5 rounded-lg bg-gray-50/50 hover:bg-gray-100 border-gray-200 focus:ring-0 shadow-none text-xs font-medium text-gray-700",children:u.jsx(Bo,{placeholder:E("sessionsAllChannels")})}),u.jsxs(xr,{className:"rounded-xl shadow-lg border-gray-100 max-w-[280px]",children:[u.jsx(Ct,{value:"all",className:"rounded-lg text-xs",children:E("sessionsAllChannels")}),W.map(G=>u.jsx(Ct,{value:G,className:"rounded-lg text-xs truncate pr-6",children:df(G)},G))]})]}),u.jsxs("div",{className:"relative w-full",children:[u.jsx(cv,{className:"h-3.5 w-3.5 absolute left-3 top-2.5 text-gray-400"}),u.jsx(We,{value:t,onChange:G=>r(G.target.value),placeholder:E("sessionsSearchPlaceholder"),className:"pl-8 h-8.5 rounded-lg bg-gray-50/50 border-gray-200 focus-visible:bg-white text-xs"})]})]}),u.jsx("div",{className:"flex-1 overflow-y-auto p-3 space-y-1 pb-10 custom-scrollbar relative",children:v.isLoading?u.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:E("sessionsLoading")}):X.length===0?u.jsxs("div",{className:"text-sm text-gray-400 p-4 text-center border-2 border-dashed border-gray-100 rounded-xl mt-4",children:[u.jsx(fg,{className:"w-8 h-8 mx-auto mb-2 text-gray-300"}),E("sessionsEmpty")]}):X.map(G=>u.jsx(wR,{session:G,channel:Ll(G.key),isSelected:l===G.key,onSelect:()=>c(G.key)},G.key))})]}),u.jsxs("div",{className:"flex-1 min-w-0 flex flex-col overflow-hidden relative bg-white rounded-2xl shadow-sm border border-gray-200",children:[(R.isPending||j.isPending)&&u.jsx("div",{className:"absolute top-0 left-0 w-full h-1 bg-primary/20 overflow-hidden z-20",children:u.jsx("div",{className:"h-full bg-primary animate-pulse w-1/3 rounded-r-full"})}),l&&B?u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"shrink-0 border-b border-gray-100 bg-white px-8 py-5 z-10 space-y-4",children:[u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex items-center gap-4",children:[u.jsx("div",{className:"h-12 w-12 rounded-[14px] bg-gray-50 border border-gray-100 flex items-center justify-center text-gray-400 shrink-0",children:u.jsx(Gl,{className:"h-6 w-6"})}),u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-2.5 mb-1.5",children:[u.jsx("h3",{className:"text-lg font-bold text-gray-900 tracking-tight",children:B.label||B.key.split(":").pop()||B.key}),u.jsx("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full bg-gray-100 text-gray-500 uppercase tracking-widest",children:df(Ll(B.key))})]}),u.jsx("div",{className:"text-xs text-gray-500 font-mono break-all line-clamp-1 opacity-70",title:l,children:l})]})]}),u.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[u.jsxs(Ve,{variant:"outline",size:"sm",onClick:()=>w(!k),className:me("h-8.5 rounded-lg shadow-none border-gray-200 transition-all text-xs font-semibold",k?"bg-gray-100 text-gray-900":"hover:bg-gray-50 hover:text-gray-900"),children:[u.jsx(uv,{className:"w-3.5 h-3.5 mr-1.5"}),E("sessionsMetadata")]}),u.jsx(Ve,{variant:"outline",size:"sm",onClick:Y,className:"h-8.5 rounded-lg shadow-none hover:bg-gray-50 hover:text-gray-900 border-gray-200 text-xs font-semibold text-gray-500",children:E("sessionsClearHistory")}),u.jsx(Ve,{variant:"outline",size:"sm",onClick:_,className:"h-8.5 rounded-lg shadow-none hover:bg-red-50 hover:text-red-600 hover:border-red-200 border-gray-200 text-xs font-semibold text-red-500",children:E("delete")})]})]}),k&&u.jsxs("div",{className:"flex items-center gap-3 bg-gray-50/50 p-3 rounded-lg border border-gray-100 animate-slide-in",children:[u.jsx(We,{placeholder:E("sessionsLabelPlaceholder"),value:g,onChange:G=>y(G.target.value),className:"h-8 text-sm bg-white"}),u.jsx(We,{placeholder:E("sessionsModelPlaceholder"),value:x,onChange:G=>b(G.target.value),className:"h-8 text-sm bg-white"}),u.jsx(Ve,{size:"sm",onClick:H,className:"h-8 px-4 shrink-0 shadow-none",disabled:R.isPending,children:E("sessionsSaveMeta")})]})]}),u.jsxs("div",{className:`flex-1 overflow-y-auto p-6 relative
341
+ For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return m.useEffect(()=>{t&&(document.getElementById(t)||console.error(o))},[o,t]),null},VP="DialogDescriptionWarning",KP=({contentRef:t,descriptionId:r})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Z0(VP).contentName}}.`;return m.useEffect(()=>{var c;const l=(c=t.current)==null?void 0:c.getAttribute("aria-describedby");r&&l&&(document.getElementById(r)||console.warn(a))},[a,t,r]),null},QP=U0,qP=H0,ex=W0,tx=V0,nx=Q0,rx=G0,GP=X0;const Xf=QP,YP=qP,ox=m.forwardRef(({className:t,...r},o)=>u.jsx(ex,{ref:o,className:me("fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...r}));ox.displayName=ex.displayName;const bc=m.forwardRef(({className:t,children:r,...o},a)=>u.jsxs(YP,{children:[u.jsx(ox,{}),u.jsxs(tx,{ref:a,className:me("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200/50 bg-white p-6 shadow-xl duration-base data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-2xl",t),...o,children:[r,u.jsxs(GP,{className:"absolute right-4 top-4 rounded-lg p-1 opacity-70 ring-offset-white transition-all duration-fast hover:opacity-100 hover:bg-gray-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none",children:[u.jsx(zf,{className:"h-4 w-4 text-gray-500"}),u.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));bc.displayName=tx.displayName;const Sc=({className:t,...r})=>u.jsx("div",{className:me("flex flex-col space-y-2 text-center sm:text-left",t),...r});Sc.displayName="DialogHeader";const kc=({className:t,...r})=>u.jsx("div",{className:me("flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-3",t),...r});kc.displayName="DialogFooter";const Cc=m.forwardRef(({className:t,...r},o)=>u.jsx(nx,{ref:o,className:me("text-lg font-semibold leading-tight tracking-tight text-gray-900",t),...r}));Cc.displayName=nx.displayName;const Ec=m.forwardRef(({className:t,...r},o)=>u.jsx(rx,{ref:o,className:me("text-sm text-gray-500 leading-relaxed",t),...r}));Ec.displayName=rx.displayName;function XP({maskedValue:t,isSet:r,className:o,...a}){const[l,c]=m.useState(!1);return u.jsxs("div",{className:"relative",children:[u.jsx(We,{type:l?"text":"password",className:me("pr-20",o),placeholder:r?`${E("apiKeySet")} (${E("unchanged")})`:"",...a}),u.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex gap-1",children:(r||t)&&u.jsx(Ve,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>c(!l),children:l?u.jsx(Mk,{className:"h-4 w-4"}):u.jsx(Ik,{className:"h-4 w-4"})})})]})}function JP({value:t,onChange:r,className:o}){const a=t?Object.entries(t):[],l=(h,g,y)=>{const x=[...a];x[h]=[g,y],r(Object.fromEntries(x))},c=()=>{r({...t,"":""})},f=h=>{const g=a.filter((y,x)=>x!==h);r(Object.fromEntries(g))};return u.jsxs("div",{className:me("space-y-2",o),children:[a.map(([h,g],y)=>u.jsxs("div",{className:"flex gap-2",children:[u.jsx(We,{type:"text",value:h,onChange:x=>l(y,x.target.value,g),placeholder:E("headerName"),className:"flex-1"}),u.jsx(We,{type:"text",value:g,onChange:x=>l(y,h,x.target.value),placeholder:E("headerValue"),className:"flex-1"}),u.jsx(Ve,{type:"button",variant:"ghost",size:"icon",onClick:()=>f(y),children:u.jsx(Xl,{className:"h-4 w-4 text-red-500"})})]},y)),u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:c,children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("add")]})]})}function ZP(){const{providerModal:t,closeProviderModal:r}=ai(),{data:o}=Ys(),{data:a}=Qf(),{data:l}=Xs(),c=gP(),[f,h]=m.useState(""),[g,y]=m.useState(""),[x,b]=m.useState(null),[k,w]=m.useState("auto"),N=t.provider,v=a==null?void 0:a.providers.find(W=>W.name===N),C=N?o==null?void 0:o.providers[N]:null,R=l==null?void 0:l.uiHints,j=N?yt(`providers.${N}.apiKey`,R):void 0,P=N?yt(`providers.${N}.apiBase`,R):void 0,A=N?yt(`providers.${N}.extraHeaders`,R):void 0,$=N?yt(`providers.${N}.wireApi`,R):void 0;m.useEffect(()=>{if(C){y(C.apiBase||(v==null?void 0:v.defaultApiBase)||""),b(C.extraHeaders||null),h("");const W=C.wireApi||(v==null?void 0:v.defaultWireApi)||"auto";w(W)}},[C,v]);const B=W=>{W.preventDefault();const X={};if(f!==""&&(X.apiKey=f),g&&g!==(v==null?void 0:v.defaultApiBase)&&(X.apiBase=g),x&&Object.keys(x).length>0&&(X.extraHeaders=x),v!=null&&v.supportsWireApi){const H=(C==null?void 0:C.wireApi)||v.defaultWireApi||"auto";k!==H&&(X.wireApi=k)}N&&c.mutate({provider:N,data:X},{onSuccess:()=>r()})};return u.jsx(Xf,{open:t.open,onOpenChange:r,children:u.jsxs(bc,{className:"sm:max-w-[500px]",children:[u.jsx(Sc,{children:u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center",children:u.jsx(Yl,{className:"h-5 w-5 text-white"})}),u.jsxs("div",{children:[u.jsx(Cc,{children:(v==null?void 0:v.displayName)||N}),u.jsx(Ec,{children:E("providerFormDescription")})]})]})}),u.jsxs("form",{onSubmit:B,className:"flex flex-col pt-2",children:[u.jsxs("div",{className:"space-y-5 max-h-[60vh] overflow-y-auto pr-1",children:[u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"apiKey",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Yl,{className:"h-3.5 w-3.5 text-gray-500"}),(j==null?void 0:j.label)??E("apiKey")]}),u.jsx(XP,{id:"apiKey",value:f,isSet:C==null?void 0:C.apiKeySet,onChange:W=>h(W.target.value),placeholder:C!=null&&C.apiKeySet?E("apiKeySet"):(j==null?void 0:j.placeholder)??E("enterApiKey"),className:"rounded-xl"})]}),u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"apiBase",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(lv,{className:"h-3.5 w-3.5 text-gray-500"}),(P==null?void 0:P.label)??E("apiBase")]}),u.jsx(We,{id:"apiBase",type:"text",value:g,onChange:W=>y(W.target.value),placeholder:(v==null?void 0:v.defaultApiBase)||(P==null?void 0:P.placeholder)||"https://api.example.com",className:"rounded-xl"}),(P==null?void 0:P.help)&&u.jsx("p",{className:"text-xs text-gray-500",children:P.help})]}),(v==null?void 0:v.supportsWireApi)&&u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:"wireApi",className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}),($==null?void 0:$.label)??E("wireApi")]}),u.jsxs(so,{value:k,onValueChange:W=>w(W),children:[u.jsx(vr,{className:"rounded-xl",children:u.jsx(Bo,{})}),u.jsx(xr,{children:(v.wireApiOptions||["auto","chat","responses"]).map(W=>u.jsx(Ct,{value:W,children:E(W==="chat"?"wireApiChat":W==="responses"?"wireApiResponses":"wireApiAuto")},W))})]})]}),u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}),(A==null?void 0:A.label)??E("extraHeaders")]}),u.jsx(JP,{value:x,onChange:b})]})]}),u.jsxs(kc,{className:"pt-4 flex-shrink-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:r,children:E("cancel")}),u.jsx(Ve,{type:"submit",disabled:c.isPending,children:c.isPending?E("saving"):E("save")})]})]})]})})}function Jf({tabs:t,activeTab:r,onChange:o,className:a}){return u.jsx("div",{className:me("flex items-center gap-6 border-b border-gray-200/60 mb-6",a),children:t.map(l=>{const c=r===l.id;return u.jsxs("button",{onClick:()=>o(l.id),className:me("relative pb-3 text-[14px] font-medium transition-all duration-fast flex items-center gap-1.5",c?"text-gray-900":"text-gray-600 hover:text-gray-900"),children:[l.label,l.count!==void 0&&u.jsx("span",{className:me("text-[11px] font-medium","text-gray-500"),children:tv(l.count)}),c&&u.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] bg-primary rounded-full"})]},l.id)})})}function sx({name:t,src:r,className:o,imgClassName:a,fallback:l}){const[c,f]=m.useState(!1),h=!!r&&!c;return u.jsx("div",{className:me("flex items-center justify-center",o),children:h?u.jsx("img",{src:r,alt:`${t} logo`,className:me("h-6 w-6 object-contain",a),onError:()=>f(!0),draggable:!1}):l??u.jsx("span",{className:"text-lg font-bold uppercase",children:t.slice(0,1)})})}const eR={openrouter:"openrouter.svg",aihubmix:"aihubmix.png",anthropic:"anthropic.svg",openai:"openai.svg",gemini:"gemini.svg",deepseek:"deepseek.png",zhipu:"zhipu.svg",dashscope:"dashscope.png",moonshot:"moonshot.png",minimax:"minimax.svg",vllm:"vllm.svg",groq:"groq.svg"},tR={telegram:"telegram.svg",slack:"slack.svg",discord:"discord.svg",whatsapp:"whatsapp.svg",qq:"qq.svg",feishu:"feishu.svg",dingtalk:"dingtalk.svg",wecom:"wecom.svg",mochat:"mochat.svg",email:"email.svg"};function ax(t,r){const o=r.toLowerCase(),a=t[o];return a?`/logos/${a}`:null}function nR(t){return ax(eR,t)}function rR(t){return ax(tR,t)}function ix({children:t,onClick:r,className:o}){return u.jsx("div",{onClick:r,className:me("group relative flex flex-col p-6 rounded-2xl border border-gray-200/50 bg-white shadow-card","transition-all duration-base cursor-pointer","hover:shadow-card-hover hover:border-gray-200",o),children:t})}function lx({children:t,className:r}){return u.jsx("div",{className:me("flex items-start justify-between mb-4",r),children:t})}function cx({title:t,description:r,className:o}){return u.jsxs("div",{className:me("flex-1",o),children:[u.jsx("h3",{className:"text-[14px] font-bold text-gray-900 mb-0.5",children:t}),r&&u.jsx("p",{className:"text-[12px] text-gray-400 leading-relaxed line-clamp-2",children:r})]})}function ux({children:t,className:r}){return u.jsx("div",{className:me("mt-4 pt-3 flex items-center justify-between",r),children:t})}const oR={active:{dot:"bg-emerald-500",text:"text-emerald-600",bg:"bg-emerald-50"},ready:{dot:"bg-emerald-500",text:"text-emerald-600",bg:"bg-emerald-50"},inactive:{dot:"bg-gray-300",text:"text-gray-400",bg:"bg-gray-100/80"},setup:{dot:"bg-gray-300",text:"text-gray-400",bg:"bg-gray-100/80"},warning:{dot:"bg-amber-400",text:"text-amber-600",bg:"bg-amber-50"}};function dx({status:t,label:r,className:o}){const a=oR[t];return u.jsxs("div",{className:me("flex items-center gap-1.5 px-2 py-0.5 rounded-full",a.bg,o),children:[u.jsx("span",{className:me("h-1.5 w-1.5 rounded-full",a.dot)}),u.jsx("span",{className:me("text-[11px] font-medium",a.text),children:r})]})}function fx({label:t,className:r,onClick:o}){return u.jsxs("span",{onClick:o,className:me("inline-flex items-center gap-1 text-[13px] font-medium text-gray-600 hover:text-primary transition-colors cursor-pointer group/action",r),children:[t,u.jsx(ov,{className:"h-3 w-3 transition-transform group-hover/action:translate-x-0.5"})]})}function sR(){const{data:t}=Ys(),{data:r}=Qf(),{data:o}=Xs(),{openProviderModal:a}=ai(),[l,c]=m.useState("installed"),f=o==null?void 0:o.uiHints;if(!t||!r)return u.jsx("div",{className:"p-8",children:E("providersLoading")});const h=[{id:"installed",label:E("providersTabConfigured"),count:t.providers?Object.keys(t.providers).filter(y=>t.providers[y].apiKeySet).length:0},{id:"all",label:E("providersTabAll"),count:r.providers.length}],g=l==="installed"?r.providers.filter(y=>{var x;return(x=t.providers[y.name])==null?void 0:x.apiKeySet}):r.providers;return u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("providersPageTitle")}),u.jsx(Jf,{tabs:h,activeTab:l,onChange:c}),u.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:g.map(y=>{const x=t.providers[y.name],b=x==null?void 0:x.apiKeySet,k=yt(`providers.${y.name}`,f),w=(k==null?void 0:k.help)||E("providersDefaultDescription");return u.jsxs(ix,{onClick:()=>a(y.name),children:[u.jsxs(lx,{children:[u.jsx(sx,{name:y.name,src:nR(y.name),className:me("h-11 w-11 rounded-xl border transition-all",b?"bg-white border-primary/30":"bg-white border-gray-200/60 group-hover:border-gray-300"),imgClassName:"h-6 w-6",fallback:u.jsx("span",{className:me("text-base font-semibold uppercase",b?"text-gray-800":"text-gray-400"),children:y.name[0]})}),u.jsx(dx,{status:b?"ready":"setup",label:E(b?"statusReady":"statusSetup")})]}),u.jsx(cx,{title:y.displayName||y.name,description:w}),u.jsx(ux,{children:u.jsx(fx,{label:E(b?"actionConfigure":"actionAddProvider")})})]},y.name)})}),g.length===0&&u.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[u.jsx("div",{className:"h-14 w-14 flex items-center justify-center rounded-xl bg-gray-100/80 mb-4",children:u.jsx(Yl,{className:"h-6 w-6 text-gray-300"})}),u.jsx("h3",{className:"text-[14px] font-semibold text-gray-900 mb-1.5",children:E("providersEmptyTitle")}),u.jsx("p",{className:"text-[13px] text-gray-400 max-w-sm",children:E("providersEmptyDescription")})]}),u.jsx(ZP,{})]})}const Zf=m.forwardRef(({className:t,checked:r=!1,onCheckedChange:o,...a},l)=>u.jsx("button",{type:"button",role:"switch","aria-checked":r,ref:l,className:me("peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50",r?"bg-primary":"bg-gray-200/80 hover:bg-gray-300/80",t),onClick:()=>o==null?void 0:o(!r),...a,children:u.jsx("span",{className:me("pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md ring-0 transition-transform duration-fast",r?"translate-x-5":"translate-x-0")})}));Zf.displayName="Switch";function aR({value:t,onChange:r,className:o,placeholder:a=""}){const[l,c]=m.useState(""),f=g=>{g.key==="Enter"&&l.trim()?(g.preventDefault(),r([...t,l.trim()]),c("")):g.key==="Backspace"&&!l&&t.length>0&&r(t.slice(0,-1))},h=g=>{r(t.filter((y,x)=>x!==g))};return u.jsxs("div",{className:me("flex flex-wrap gap-2 p-2 border rounded-md min-h-[42px]",o),children:[t.map((g,y)=>u.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-primary text-primary-foreground rounded text-sm",children:[g,u.jsx("button",{type:"button",onClick:()=>h(y),className:"hover:text-red-300 transition-colors",children:u.jsx(zf,{className:"h-3 w-3"})})]},y)),u.jsx("input",{type:"text",value:l,onChange:g=>c(g.target.value),onKeyDown:f,className:"flex-1 outline-none min-w-[100px] bg-transparent text-sm",placeholder:a||E("enterTag")})]})}const Kg=[{value:"pairing",label:"pairing"},{value:"allowlist",label:"allowlist"},{value:"open",label:"open"},{value:"disabled",label:"disabled"}],Qg=[{value:"open",label:"open"},{value:"allowlist",label:"allowlist"},{value:"disabled",label:"disabled"}],iR=[{value:"off",label:"off"},{value:"partial",label:"partial"},{value:"block",label:"block"},{value:"progress",label:"progress"}],lR=t=>t.includes("token")||t.includes("secret")||t.includes("password")?u.jsx(Yl,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("url")||t.includes("host")?u.jsx(lv,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("email")||t.includes("mail")?u.jsx(Af,{className:"h-3.5 w-3.5 text-gray-500"}):t.includes("id")||t.includes("from")?u.jsx(Gl,{className:"h-3.5 w-3.5 text-gray-500"}):t==="enabled"||t==="consentGranted"?u.jsx(qk,{className:"h-3.5 w-3.5 text-gray-500"}):u.jsx(uv,{className:"h-3.5 w-3.5 text-gray-500"});function qg(){return{telegram:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"token",type:"password",label:E("botToken")},{name:"allowFrom",type:"tags",label:E("allowFrom")},{name:"proxy",type:"text",label:E("proxy")},{name:"accountId",type:"text",label:E("accountId")},{name:"dmPolicy",type:"select",label:E("dmPolicy"),options:Kg},{name:"groupPolicy",type:"select",label:E("groupPolicy"),options:Qg},{name:"groupAllowFrom",type:"tags",label:E("groupAllowFrom")},{name:"requireMention",type:"boolean",label:E("requireMention")},{name:"mentionPatterns",type:"tags",label:E("mentionPatterns")},{name:"groups",type:"json",label:E("groupRulesJson")}],discord:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"token",type:"password",label:E("botToken")},{name:"allowBots",type:"boolean",label:E("allowBotMessages")},{name:"allowFrom",type:"tags",label:E("allowFrom")},{name:"gatewayUrl",type:"text",label:E("gatewayUrl")},{name:"intents",type:"number",label:E("intents")},{name:"proxy",type:"text",label:E("proxy")},{name:"mediaMaxMb",type:"number",label:E("attachmentMaxSizeMb")},{name:"streaming",type:"select",label:E("streamingMode"),options:iR},{name:"draftChunk",type:"json",label:E("draftChunkingJson")},{name:"textChunkLimit",type:"number",label:E("textChunkLimit")},{name:"accountId",type:"text",label:E("accountId")},{name:"dmPolicy",type:"select",label:E("dmPolicy"),options:Kg},{name:"groupPolicy",type:"select",label:E("groupPolicy"),options:Qg},{name:"groupAllowFrom",type:"tags",label:E("groupAllowFrom")},{name:"requireMention",type:"boolean",label:E("requireMention")},{name:"mentionPatterns",type:"tags",label:E("mentionPatterns")},{name:"groups",type:"json",label:E("groupRulesJson")}],whatsapp:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"bridgeUrl",type:"text",label:E("bridgeUrl")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],feishu:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"appId",type:"text",label:E("appId")},{name:"appSecret",type:"password",label:E("appSecret")},{name:"encryptKey",type:"password",label:E("encryptKey")},{name:"verificationToken",type:"password",label:E("verificationToken")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],dingtalk:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"clientId",type:"text",label:E("clientId")},{name:"clientSecret",type:"password",label:E("clientSecret")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],wecom:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"corpId",type:"text",label:E("corpId")},{name:"agentId",type:"text",label:E("agentId")},{name:"secret",type:"password",label:E("secret")},{name:"token",type:"password",label:E("token")},{name:"callbackPort",type:"number",label:E("callbackPort")},{name:"callbackPath",type:"text",label:E("callbackPath")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],slack:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"mode",type:"text",label:E("mode")},{name:"webhookPath",type:"text",label:E("webhookPath")},{name:"allowBots",type:"boolean",label:E("allowBotMessages")},{name:"botToken",type:"password",label:E("botToken")},{name:"appToken",type:"password",label:E("appToken")}],email:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"consentGranted",type:"boolean",label:E("consentGranted")},{name:"imapHost",type:"text",label:E("imapHost")},{name:"imapPort",type:"number",label:E("imapPort")},{name:"imapUsername",type:"text",label:E("imapUsername")},{name:"imapPassword",type:"password",label:E("imapPassword")},{name:"fromAddress",type:"email",label:E("fromAddress")}],mochat:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"baseUrl",type:"text",label:E("baseUrl")},{name:"clawToken",type:"password",label:E("clawToken")},{name:"agentUserId",type:"text",label:E("agentUserId")},{name:"allowFrom",type:"tags",label:E("allowFrom")}],qq:[{name:"enabled",type:"boolean",label:E("enabled")},{name:"appId",type:"text",label:E("appId")},{name:"secret",type:"password",label:E("appSecret")},{name:"markdownSupport",type:"boolean",label:E("markdownSupport")},{name:"allowFrom",type:"tags",label:E("allowFrom")}]}}const Gg={telegram:ks,slack:ks,email:Af,default:ks},Yg={telegram:"from-sky-400 to-blue-500",slack:"from-purple-400 to-indigo-500",email:"from-rose-400 to-pink-500",default:"from-slate-400 to-gray-500"};function sc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hx(t,r){const o={...t};for(const[a,l]of Object.entries(r)){const c=o[a];if(sc(c)&&sc(l)){o[a]=hx(c,l);continue}o[a]=l}return o}function cR(t,r){const o=t.split("."),a={};let l=a;for(let c=0;c<o.length-1;c+=1){const f=o[c];l[f]={},l=l[f]}return l[o[o.length-1]]=r,a}function uR(){var H,Y;const{channelModal:t,closeChannelModal:r}=ai(),{data:o}=Ys(),{data:a}=Xs(),l=yP(),c=xP(),[f,h]=m.useState({}),[g,y]=m.useState({}),[x,b]=m.useState(null),k=t.channel,w=k?o==null?void 0:o.channels[k]:null,N=k?qg()[k]??[]:[],v=a==null?void 0:a.uiHints,C=k?`channels.${k}`:null,R=((H=a==null?void 0:a.actions)==null?void 0:H.filter(_=>_.scope===C))??[],j=k&&(((Y=yt(`channels.${k}`,v))==null?void 0:Y.label)??k);m.useEffect(()=>{if(w){h({...w});const _={};(k?qg()[k]??[]:[]).filter(Z=>Z.type==="json").forEach(Z=>{const ee=w[Z.name];_[Z.name]=JSON.stringify(ee??{},null,2)}),y(_)}else h({}),y({})},[w,k]);const P=(_,O)=>{h(Z=>({...Z,[_]:O}))},A=_=>{if(_.preventDefault(),!k)return;const O={...f};for(const Z of N){if(Z.type!=="json")continue;const ee=g[Z.name]??"";try{O[Z.name]=ee.trim()?JSON.parse(ee):{}}catch{Ue.error(`${E("invalidJson")}: ${Z.name}`);return}}l.mutate({channel:k,data:O},{onSuccess:()=>r()})},$=_=>{if(!_||!k)return;const O=_.channels;if(!sc(O))return;const Z=O[k];sc(Z)&&h(ee=>hx(ee,Z))},B=async _=>{if(!(!k||!C)){b(_.id);try{let O={...f};_.saveBeforeRun&&(O={...O,..._.savePatch??{}},h(O),await l.mutateAsync({channel:k,data:O}));const Z=await c.mutateAsync({actionId:_.id,data:{scope:C,draftConfig:cR(C,O)}});$(Z.patch),Z.ok?Ue.success(Z.message||E("success")):Ue.error(Z.message||E("error"))}catch(O){const Z=O instanceof Error?O.message:String(O);Ue.error(`${E("error")}: ${Z}`)}finally{b(null)}}},W=Gg[k||""]||Gg.default,X=Yg[k||""]||Yg.default;return u.jsx(Xf,{open:t.open,onOpenChange:r,children:u.jsxs(bc,{className:"sm:max-w-[550px] max-h-[85vh] overflow-hidden flex flex-col",children:[u.jsx(Sc,{children:u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("div",{className:`h-10 w-10 rounded-xl bg-gradient-to-br ${X} flex items-center justify-center`,children:u.jsx(W,{className:"h-5 w-5 text-white"})}),u.jsxs("div",{children:[u.jsx(Cc,{className:"capitalize",children:j}),u.jsx(Ec,{children:E("configureMessageChannelParameters")})]})]})}),u.jsxs("form",{onSubmit:A,className:"flex flex-col flex-1 overflow-hidden",children:[u.jsx("div",{className:"flex-1 overflow-y-auto custom-scrollbar py-2 pr-2 space-y-5",children:N.map(_=>{const O=k?yt(`channels.${k}.${_.name}`,v):void 0,Z=(O==null?void 0:O.label)??_.label,ee=O==null?void 0:O.placeholder;return u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(fr,{htmlFor:_.name,className:"text-sm font-medium text-gray-900 flex items-center gap-2",children:[lR(_.name),Z]}),_.type==="boolean"&&u.jsxs("div",{className:"flex items-center justify-between p-3 rounded-xl bg-gray-50",children:[u.jsx("span",{className:"text-sm text-gray-500",children:f[_.name]?E("enabled"):E("disabled")}),u.jsx(Zf,{id:_.name,checked:f[_.name]||!1,onCheckedChange:G=>P(_.name,G),className:"data-[state=checked]:bg-emerald-500"})]}),(_.type==="text"||_.type==="email")&&u.jsx(We,{id:_.name,type:_.type,value:f[_.name]||"",onChange:G=>P(_.name,G.target.value),placeholder:ee,className:"rounded-xl"}),_.type==="password"&&u.jsx(We,{id:_.name,type:"password",value:f[_.name]||"",onChange:G=>P(_.name,G.target.value),placeholder:ee??E("leaveBlankToKeepUnchanged"),className:"rounded-xl"}),_.type==="number"&&u.jsx(We,{id:_.name,type:"number",value:f[_.name]||0,onChange:G=>P(_.name,parseInt(G.target.value)||0),placeholder:ee,className:"rounded-xl"}),_.type==="tags"&&u.jsx(aR,{value:f[_.name]||[],onChange:G=>P(_.name,G)}),_.type==="select"&&u.jsxs(so,{value:f[_.name]||"",onValueChange:G=>P(_.name,G),children:[u.jsx(vr,{className:"rounded-xl",children:u.jsx(Bo,{})}),u.jsx(xr,{children:(_.options??[]).map(G=>u.jsx(Ct,{value:G.value,children:G.label},G.value))})]}),_.type==="json"&&u.jsx("textarea",{id:_.name,value:g[_.name]??"{}",onChange:G=>y(ie=>({...ie,[_.name]:G.target.value})),className:"min-h-[120px] w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-mono"})]},_.name)})}),u.jsxs(kc,{className:"pt-4 flex-shrink-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:r,children:E("cancel")}),u.jsx(Ve,{type:"submit",disabled:l.isPending||!!x,children:l.isPending?E("saving"):E("save")}),R.filter(_=>_.trigger==="manual").map(_=>u.jsx(Ve,{type:"button",onClick:()=>B(_),disabled:l.isPending||!!x,variant:"secondary",children:x===_.id?E("connecting"):_.title},_.id))]})]})]})})}const Xg={telegram:ks,slack:Vk,email:Af,webhook:Ek,default:Lf},dR={telegram:"channelDescTelegram",slack:"channelDescSlack",email:"channelDescEmail",webhook:"channelDescWebhook",discord:"channelDescDiscord",feishu:"channelDescFeishu"};function fR(){const{data:t}=Ys(),{data:r}=Qf(),{data:o}=Xs(),{openChannelModal:a}=ai(),[l,c]=m.useState("active"),f=o==null?void 0:o.uiHints;if(!t||!r)return u.jsx("div",{className:"p-8 text-gray-400",children:E("channelsLoading")});const h=[{id:"active",label:E("channelsTabEnabled"),count:r.channels.filter(y=>{var x;return(x=t.channels[y.name])==null?void 0:x.enabled}).length},{id:"all",label:E("channelsTabAll"),count:r.channels.length}],g=r.channels.filter(y=>{var b;const x=((b=t.channels[y.name])==null?void 0:b.enabled)||!1;return l==="all"||x});return u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("channelsPageTitle")}),u.jsx(Jf,{tabs:h,activeTab:l,onChange:c}),u.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:g.map(y=>{const x=t.channels[y.name],b=(x==null?void 0:x.enabled)||!1,k=Xg[y.name]||Xg.default,w=yt(`channels.${y.name}`,f),N=(w==null?void 0:w.help)||E(dR[y.name]||"channelDescriptionDefault");return u.jsxs(ix,{onClick:()=>a(y.name),children:[u.jsxs(lx,{children:[u.jsx(sx,{name:y.name,src:rR(y.name),className:me("h-11 w-11 rounded-xl border transition-all",b?"bg-white border-primary/30":"bg-white border-gray-200/60 group-hover:border-gray-300"),imgClassName:"h-5 w-5",fallback:u.jsx(k,{className:"h-5 w-5"})}),u.jsx(dx,{status:b?"active":"inactive",label:E(b?"statusActive":"statusInactive")})]}),u.jsx(cx,{title:y.displayName||y.name,description:N}),u.jsxs(ux,{children:[u.jsx(fx,{label:E(b?"actionConfigure":"actionEnable")}),y.tutorialUrl&&u.jsx("a",{href:y.tutorialUrl,target:"_blank",rel:"noreferrer",onClick:v=>v.stopPropagation(),className:"flex items-center justify-center h-6 w-6 rounded-md text-gray-300 hover:text-gray-500 hover:bg-gray-100/60 transition-colors",title:E("channelsGuideTitle"),children:u.jsx(iv,{className:"h-3.5 w-3.5"})})]})]},y.name)})}),g.length===0&&u.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[u.jsx("div",{className:"h-14 w-14 flex items-center justify-center rounded-xl bg-gray-100/80 mb-4",children:u.jsx(Lf,{className:"h-6 w-6 text-gray-300"})}),u.jsx("h3",{className:"text-[14px] font-semibold text-gray-900 mb-1.5",children:E("channelsEmptyTitle")}),u.jsx("p",{className:"text-[13px] text-gray-400 max-w-sm",children:E("channelsEmptyDescription")})]}),u.jsx(uR,{})]})}const hR=[{value:"main",label:"main"},{value:"per-peer",label:"per-peer"},{value:"per-channel-peer",label:"per-channel-peer"},{value:"per-account-channel-peer",label:"per-account-channel-peer"}];function pR(){return{id:"",default:!1,workspace:"",model:"",maxTokens:void 0,contextTokens:void 0,maxToolIterations:void 0}}function mR(){return{agentId:"",match:{channel:"",accountId:""}}}function Rd(t){const r=t.trim();if(!r)return;const o=Number.parseInt(r,10);return Number.isFinite(o)?o:void 0}function gR(){const{data:t,isLoading:r}=Ys(),{data:o}=Xs(),a=vP(),[l,c]=m.useState([]),[f,h]=m.useState([]),[g,y]=m.useState("per-channel-peer"),[x,b]=m.useState(0),[k,w]=m.useState(2e5);m.useEffect(()=>{var H,Y,_;t&&(c((t.agents.list??[]).map(O=>({id:O.id??"",default:!!O.default,workspace:O.workspace??"",model:O.model??"",maxTokens:O.maxTokens,contextTokens:O.contextTokens,maxToolIterations:O.maxToolIterations}))),h((t.bindings??[]).map(O=>{var Z,ee,G;return{agentId:O.agentId??"",match:{channel:((Z=O.match)==null?void 0:Z.channel)??"",accountId:((ee=O.match)==null?void 0:ee.accountId)??"",peer:(G=O.match)!=null&&G.peer?{kind:O.match.peer.kind,id:O.match.peer.id}:void 0}}})),y(((H=t.session)==null?void 0:H.dmScope)??"per-channel-peer"),b(((_=(Y=t.session)==null?void 0:Y.agentToAgent)==null?void 0:_.maxPingPongTurns)??0),w(t.agents.defaults.contextTokens??2e5))},[t]);const N=o==null?void 0:o.uiHints,v=yt("session.dmScope",N),C=yt("session.agentToAgent.maxPingPongTurns",N),R=yt("agents.defaults.contextTokens",N),j=yt("agents.list.*.contextTokens",N),P=yt("agents.list",N),A=yt("bindings",N),$=m.useMemo(()=>{const H=new Set(["main"]);return l.forEach(Y=>{const _=Y.id.trim();_&&H.add(_)}),H},[l]),B=(H,Y)=>{c(_=>_.map((O,Z)=>Z===H?{...O,...Y}:O))},W=(H,Y)=>{h(_=>_.map((O,Z)=>Z===H?Y:O))},X=()=>{try{const H=l.map((O,Z)=>{var ie,ce;const ee=O.id.trim();if(!ee)throw new Error(E("agentIdRequiredError").replace("{index}",String(Z)));const G={id:ee};return O.default&&(G.default=!0),(ie=O.workspace)!=null&&ie.trim()&&(G.workspace=O.workspace.trim()),(ce=O.model)!=null&&ce.trim()&&(G.model=O.model.trim()),typeof O.maxTokens=="number"&&(G.maxTokens=O.maxTokens),typeof O.contextTokens=="number"&&(G.contextTokens=Math.max(1e3,O.contextTokens)),typeof O.maxToolIterations=="number"&&(G.maxToolIterations=O.maxToolIterations),G}),Y=H.map(O=>O.id).filter((O,Z,ee)=>ee.indexOf(O)!==Z);if(Y.length>0){Ue.error(`${E("duplicateAgentId")}: ${Y[0]}`);return}const _=f.map((O,Z)=>{var Q,M,F,le;const ee=O.agentId.trim(),G=O.match.channel.trim(),ie=((Q=O.match.accountId)==null?void 0:Q.trim())??"",ce=(M=O.match.peer)==null?void 0:M.kind,K=((le=(F=O.match.peer)==null?void 0:F.id)==null?void 0:le.trim())??"";if(!ee)throw new Error(E("bindingAgentIdRequired").replace("{index}",String(Z)));if(!$.has(ee))throw new Error(`${E("bindingAgentIdNotFound").replace("{index}",String(Z))}: ${ee}`);if(!G)throw new Error(E("bindingChannelRequired").replace("{index}",String(Z)));const q={agentId:ee,match:{channel:G}};if(ie&&(q.match.accountId=ie),ce){if(!K)throw new Error(E("bindingPeerIdRequired").replace("{index}",String(Z)));q.match.peer={kind:ce,id:K}}return q});a.mutate({data:{agents:{defaults:{contextTokens:Math.max(1e3,k)},list:H},bindings:_,session:{dmScope:g,agentToAgent:{maxPingPongTurns:Math.min(5,Math.max(0,x))}}}})}catch(H){const Y=H instanceof Error?H.message:String(H);Ue.error(Y)}};return r||!t?u.jsx("div",{className:"p-8 text-gray-400",children:E("runtimeLoading")}):u.jsxs(Wo,{className:"space-y-6",children:[u.jsx(Vo,{title:E("runtimePageTitle"),description:E("runtimePageDescription")}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(v==null?void 0:v.label)??E("dmScope")}),u.jsx(Hl,{children:(v==null?void 0:v.help)??E("dmScopeHelp")})]}),u.jsxs(Ba,{className:"space-y-4",children:[u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(R==null?void 0:R.label)??E("defaultContextTokens")}),u.jsx(We,{type:"number",min:1e3,step:1e3,value:k,onChange:H=>w(Math.max(1e3,Number.parseInt(H.target.value,10)||1e3))}),u.jsx("p",{className:"text-xs text-gray-500",children:(R==null?void 0:R.help)??E("defaultContextTokensHelp")})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(v==null?void 0:v.label)??E("dmScope")}),u.jsxs(so,{value:g,onValueChange:H=>y(H),children:[u.jsx(vr,{children:u.jsx(Bo,{})}),u.jsx(xr,{children:hR.map(H=>u.jsx(Ct,{value:H.value,children:H.label},H.value))})]})]}),u.jsxs("div",{className:"space-y-2",children:[u.jsx("label",{className:"text-sm font-medium text-gray-800",children:(C==null?void 0:C.label)??E("maxPingPongTurns")}),u.jsx(We,{type:"number",min:0,max:5,value:x,onChange:H=>b(Math.max(0,Number.parseInt(H.target.value,10)||0))}),u.jsx("p",{className:"text-xs text-gray-500",children:(C==null?void 0:C.help)??E("maxPingPongTurnsHelp")})]})]})]}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(P==null?void 0:P.label)??E("agentList")}),u.jsx(Hl,{children:(P==null?void 0:P.help)??E("agentListHelp")})]}),u.jsxs(Ba,{className:"space-y-3",children:[l.map((H,Y)=>u.jsxs("div",{className:"rounded-xl border border-gray-200 p-3 space-y-3",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[u.jsx(We,{value:H.id,onChange:_=>B(Y,{id:_.target.value}),placeholder:E("agentIdPlaceholder")}),u.jsx(We,{value:H.workspace??"",onChange:_=>B(Y,{workspace:_.target.value}),placeholder:E("workspaceOverridePlaceholder")}),u.jsx(We,{value:H.model??"",onChange:_=>B(Y,{model:_.target.value}),placeholder:E("modelOverridePlaceholder")}),u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2",children:[u.jsx(We,{type:"number",min:1,value:H.maxTokens??"",onChange:_=>B(Y,{maxTokens:Rd(_.target.value)}),placeholder:E("maxTokensPlaceholder")}),u.jsx(We,{type:"number",min:1e3,step:1e3,value:H.contextTokens??"",onChange:_=>B(Y,{contextTokens:Rd(_.target.value)}),placeholder:(j==null?void 0:j.label)??E("contextTokensPlaceholder")}),u.jsx(We,{type:"number",min:1,value:H.maxToolIterations??"",onChange:_=>B(Y,{maxToolIterations:Rd(_.target.value)}),placeholder:E("maxToolsPlaceholder")})]})]}),u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[u.jsx(Zf,{checked:!!H.default,onCheckedChange:_=>{if(!_){B(Y,{default:!1});return}c(O=>O.map((Z,ee)=>({...Z,default:ee===Y})))}}),u.jsx("span",{children:E("defaultAgent")})]}),u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:()=>c(_=>_.filter((O,Z)=>Z!==Y)),children:[u.jsx(Xl,{className:"h-4 w-4 mr-1"}),E("remove")]})]})]},`${Y}-${H.id}`)),u.jsxs(Ve,{type:"button",variant:"outline",onClick:()=>c(H=>[...H,pR()]),children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("addAgent")]})]})]}),u.jsxs(zo,{children:[u.jsxs($l,{children:[u.jsx(Bl,{children:(A==null?void 0:A.label)??E("bindings")}),u.jsx(Hl,{children:(A==null?void 0:A.help)??E("bindingsHelp")})]}),u.jsxs(Ba,{className:"space-y-3",children:[f.map((H,Y)=>{var O,Z;const _=((O=H.match.peer)==null?void 0:O.kind)??"";return u.jsxs("div",{className:"rounded-xl border border-gray-200 p-3 space-y-3",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[u.jsx(We,{value:H.agentId,onChange:ee=>W(Y,{...H,agentId:ee.target.value}),placeholder:E("targetAgentIdPlaceholder")}),u.jsx(We,{value:H.match.channel,onChange:ee=>W(Y,{...H,match:{...H.match,channel:ee.target.value}}),placeholder:E("channelPlaceholder")}),u.jsx(We,{value:H.match.accountId??"",onChange:ee=>W(Y,{...H,match:{...H.match,accountId:ee.target.value}}),placeholder:E("accountIdOptionalPlaceholder")}),u.jsxs(so,{value:_||"__none__",onValueChange:ee=>{var ie;const G=ee==="__none__"?"":ee;if(!G){W(Y,{...H,match:{...H.match,peer:void 0}});return}W(Y,{...H,match:{...H.match,peer:{kind:G,id:((ie=H.match.peer)==null?void 0:ie.id)??""}}})},children:[u.jsx(vr,{children:u.jsx(Bo,{})}),u.jsxs(xr,{children:[u.jsx(Ct,{value:"__none__",children:E("peerKindOptional")}),u.jsx(Ct,{value:"direct",children:"direct"}),u.jsx(Ct,{value:"group",children:"group"}),u.jsx(Ct,{value:"channel",children:"channel"})]})]}),u.jsx(We,{value:((Z=H.match.peer)==null?void 0:Z.id)??"",onChange:ee=>W(Y,{...H,match:{...H.match,peer:_?{kind:_,id:ee.target.value}:void 0}}),placeholder:E("peerIdPlaceholder")})]}),u.jsx("div",{className:"flex justify-end",children:u.jsxs(Ve,{type:"button",variant:"outline",size:"sm",onClick:()=>h(ee=>ee.filter((G,ie)=>ie!==Y)),children:[u.jsx(Xl,{className:"h-4 w-4 mr-1"}),E("remove")]})})]},`${Y}-${H.agentId}`)}),u.jsxs(Ve,{type:"button",variant:"outline",onClick:()=>h(H=>[...H,mR()]),children:[u.jsx(Yd,{className:"h-4 w-4 mr-2"}),E("addBinding")]})]})]}),u.jsx("div",{className:"flex justify-end",children:u.jsxs(Ve,{type:"button",onClick:X,disabled:a.isPending,children:[u.jsx(Wk,{className:"h-4 w-4 mr-2"}),a.isPending?E("saving"):E("saveRuntimeSettings")]})})]})}const yR=({open:t,onOpenChange:r,title:o,description:a,confirmLabel:l=E("confirm"),cancelLabel:c=E("cancel"),variant:f="default",onConfirm:h,onCancel:g})=>{const y=()=>{h(),r(!1)},x=()=>{g(),r(!1)};return u.jsx(Xf,{open:t,onOpenChange:r,children:u.jsxs(bc,{className:"[&>:last-child]:hidden",onCloseAutoFocus:b=>b.preventDefault(),children:[u.jsxs(Sc,{children:[u.jsx(Cc,{children:o}),a?u.jsx(Ec,{children:a}):null]}),u.jsxs(kc,{className:"gap-2 sm:gap-0",children:[u.jsx(Ve,{type:"button",variant:"outline",onClick:x,children:c}),u.jsx(Ve,{type:"button",variant:f==="destructive"?"destructive":"default",onClick:y,children:l})]})]})})},vR={open:!1,title:"",description:"",confirmLabel:E("confirm"),cancelLabel:E("cancel"),variant:"default",resolve:null};function eh(){const[t,r]=m.useState(vR),o=m.useCallback(c=>new Promise(f=>{r({open:!0,title:c.title,description:c.description??"",confirmLabel:c.confirmLabel??E("confirm"),cancelLabel:c.cancelLabel??E("cancel"),variant:c.variant??"default",resolve:h=>{f(h),r(g=>({...g,open:!1,resolve:null}))}})}),[]),a=m.useCallback(c=>{r(f=>(!c&&f.resolve&&f.resolve(!1),{...f,open:c,resolve:c?f.resolve:null}))},[]),l=m.useCallback(()=>u.jsx(yR,{open:t.open,onOpenChange:a,title:t.title,description:t.description||void 0,confirmLabel:t.confirmLabel,cancelLabel:t.cancelLabel,variant:t.variant,onConfirm:()=>{var c;return(c=t.resolve)==null?void 0:c.call(t,!0)},onCancel:()=>{var c;return(c=t.resolve)==null?void 0:c.call(t,!1)}}),[t,a]);return{confirm:o,ConfirmDialog:l}}const qa="__unknown_channel__";function xR(t){return If(t)}function Ll(t){const r=t.indexOf(":");return r<=0?qa:t.slice(0,r).trim()||qa}function df(t){return t===qa?E("sessionsUnknownChannel"):t}function wR({session:t,channel:r,isSelected:o,onSelect:a}){const l=df(r),c=t.label||t.key.split(":").pop()||t.key;return u.jsxs("button",{onClick:a,className:me("w-full text-left p-3.5 rounded-xl transition-all duration-200 outline-none focus:outline-none focus:ring-0 group",o?"bg-brand-50 border border-brand-100/50":"bg-transparent border border-transparent hover:bg-gray-50/80"),children:[u.jsxs("div",{className:"flex items-start justify-between mb-1.5",children:[u.jsx("div",{className:me("font-semibold truncate pr-2 flex-1 text-sm",o?"text-brand-800":"text-gray-900"),children:c}),u.jsx("div",{className:me("text-[10px] font-bold px-2 py-0.5 rounded-full shrink-0 capitalize",o?"bg-white text-brand-600 shadow-[0_1px_2px_rgba(0,0,0,0.02)]":"bg-gray-100 text-gray-500"),children:l})]}),u.jsxs("div",{className:me("flex items-center text-xs justify-between mt-2 font-medium",o?"text-brand-600/80":"text-gray-400"),children:[u.jsxs("div",{className:"flex items-center gap-1.5",children:[u.jsx(jk,{className:"w-3.5 h-3.5 opacity-70"}),u.jsx("span",{className:"truncate max-w-[100px]",children:wk(t.updatedAt)})]}),u.jsxs("div",{className:"flex items-center gap-1",children:[u.jsx(ks,{className:"w-3.5 h-3.5 opacity-70"}),u.jsx("span",{children:t.messageCount})]})]})]})}function bR({message:t}){const r=t.role.toLowerCase()==="user";return u.jsx("div",{className:me("flex w-full mb-6",r?"justify-end":"justify-start"),children:u.jsxs("div",{className:me("max-w-[85%] rounded-[1.25rem] p-5 flex gap-3 text-sm",r?"bg-primary text-white rounded-tr-sm":"bg-gray-50 text-gray-800 rounded-tl-sm border border-gray-100/50"),children:[u.jsx("div",{className:"shrink-0 pt-0.5",children:r?u.jsx(Gk,{className:"w-4 h-4 text-primary-100"}):u.jsx(Nk,{className:"w-4 h-4 text-gray-400"})}),u.jsxs("div",{className:"flex-1 space-y-1 overflow-x-hidden",children:[u.jsxs("div",{className:"flex items-baseline justify-between gap-4 mb-2",children:[u.jsx("span",{className:me("font-semibold text-xs",r?"text-primary-50":"text-gray-900 capitalize"),children:t.role}),u.jsx("span",{className:me("text-[10px]",r?"text-primary-200":"text-gray-400"),children:xR(t.timestamp)})]}),u.jsx("div",{className:"whitespace-pre-wrap break-words leading-relaxed text-[15px]",children:t.content})]})]})})}function SR(){var O,Z,ee;const[t,r]=m.useState(""),[o]=m.useState(100),[a]=m.useState(0),[l,c]=m.useState(null),[f,h]=m.useState("all"),[g,y]=m.useState(""),[x,b]=m.useState(""),[k,w]=m.useState(!1),N=m.useMemo(()=>({q:t.trim()||void 0,limit:o,activeMinutes:a}),[t,o,a]),v=wP(N),C=bP(l,200),R=SP(),j=kP(),{confirm:P,ConfirmDialog:A}=eh(),$=m.useMemo(()=>{var G;return((G=v.data)==null?void 0:G.sessions)??[]},[(O=v.data)==null?void 0:O.sessions]),B=m.useMemo(()=>$.find(G=>G.key===l),[$,l]),W=m.useMemo(()=>{const G=new Set;for(const ie of $)G.add(Ll(ie.key));return Array.from(G).sort((ie,ce)=>ie===qa?1:ce===qa?-1:ie.localeCompare(ce))},[$]),X=m.useMemo(()=>f==="all"?$:$.filter(G=>Ll(G.key)===f),[$,f]);m.useEffect(()=>{B?(y(B.label||""),b(B.preferredModel||"")):(y(""),b("")),w(!1)},[B]);const H=()=>{l&&(R.mutate({key:l,data:{label:g.trim()||null,preferredModel:x.trim()||null}}),w(!1))},Y=async()=>{if(!l)return;await P({title:E("sessionsClearHistory")+"?",variant:"destructive",confirmLabel:E("sessionsClearHistory")})&&R.mutate({key:l,data:{clearHistory:!0}})},_=async()=>{if(!l)return;await P({title:E("sessionsDeleteConfirm")+"?",variant:"destructive",confirmLabel:E("sessionsDeleteConfirm")})&&j.mutate({key:l},{onSuccess:()=>c(null)})};return u.jsxs(Wo,{fullHeight:!0,children:[u.jsx(Vo,{title:E("sessionsPageTitle"),description:E("sessionsPageDescription")}),u.jsxs("div",{className:"flex-1 flex gap-6 min-h-0 relative",children:[u.jsxs("div",{className:"w-[320px] flex flex-col shrink-0 bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden",children:[u.jsxs("div",{className:"px-4 py-4 border-b border-gray-100 bg-white z-10 shrink-0 space-y-3",children:[u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("span",{className:"text-[11px] font-semibold text-gray-400 uppercase tracking-wider",children:[$.length," ",E("sessionsListTitle")]}),u.jsx(Ve,{variant:"ghost",size:"icon",className:"h-7 w-7 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100",onClick:()=>v.refetch(),children:u.jsx(Xd,{className:me("h-3.5 w-3.5",v.isFetching&&"animate-spin")})})]}),u.jsxs(so,{value:f,onValueChange:h,children:[u.jsx(vr,{className:"w-full h-8.5 rounded-lg bg-gray-50/50 hover:bg-gray-100 border-gray-200 focus:ring-0 shadow-none text-xs font-medium text-gray-700",children:u.jsx(Bo,{placeholder:E("sessionsAllChannels")})}),u.jsxs(xr,{className:"rounded-xl shadow-lg border-gray-100 max-w-[280px]",children:[u.jsx(Ct,{value:"all",className:"rounded-lg text-xs",children:E("sessionsAllChannels")}),W.map(G=>u.jsx(Ct,{value:G,className:"rounded-lg text-xs truncate pr-6",children:df(G)},G))]})]}),u.jsxs("div",{className:"relative w-full",children:[u.jsx(cv,{className:"h-3.5 w-3.5 absolute left-3 top-2.5 text-gray-400"}),u.jsx(We,{value:t,onChange:G=>r(G.target.value),placeholder:E("sessionsSearchPlaceholder"),className:"pl-8 h-8.5 rounded-lg bg-gray-50/50 border-gray-200 focus-visible:bg-white text-xs"})]})]}),u.jsx("div",{className:"flex-1 overflow-y-auto p-3 space-y-1 pb-10 custom-scrollbar relative",children:v.isLoading?u.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:E("sessionsLoading")}):X.length===0?u.jsxs("div",{className:"text-sm text-gray-400 p-4 text-center border-2 border-dashed border-gray-100 rounded-xl mt-4",children:[u.jsx(fg,{className:"w-8 h-8 mx-auto mb-2 text-gray-300"}),E("sessionsEmpty")]}):X.map(G=>u.jsx(wR,{session:G,channel:Ll(G.key),isSelected:l===G.key,onSelect:()=>c(G.key)},G.key))})]}),u.jsxs("div",{className:"flex-1 min-w-0 flex flex-col overflow-hidden relative bg-white rounded-2xl shadow-sm border border-gray-200",children:[(R.isPending||j.isPending)&&u.jsx("div",{className:"absolute top-0 left-0 w-full h-1 bg-primary/20 overflow-hidden z-20",children:u.jsx("div",{className:"h-full bg-primary animate-pulse w-1/3 rounded-r-full"})}),l&&B?u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"shrink-0 border-b border-gray-100 bg-white px-8 py-5 z-10 space-y-4",children:[u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex items-center gap-4",children:[u.jsx("div",{className:"h-12 w-12 rounded-[14px] bg-gray-50 border border-gray-100 flex items-center justify-center text-gray-400 shrink-0",children:u.jsx(Gl,{className:"h-6 w-6"})}),u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-2.5 mb-1.5",children:[u.jsx("h3",{className:"text-lg font-bold text-gray-900 tracking-tight",children:B.label||B.key.split(":").pop()||B.key}),u.jsx("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full bg-gray-100 text-gray-500 uppercase tracking-widest",children:df(Ll(B.key))})]}),u.jsx("div",{className:"text-xs text-gray-500 font-mono break-all line-clamp-1 opacity-70",title:l,children:l})]})]}),u.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[u.jsxs(Ve,{variant:"outline",size:"sm",onClick:()=>w(!k),className:me("h-8.5 rounded-lg shadow-none border-gray-200 transition-all text-xs font-semibold",k?"bg-gray-100 text-gray-900":"hover:bg-gray-50 hover:text-gray-900"),children:[u.jsx(uv,{className:"w-3.5 h-3.5 mr-1.5"}),E("sessionsMetadata")]}),u.jsx(Ve,{variant:"outline",size:"sm",onClick:Y,className:"h-8.5 rounded-lg shadow-none hover:bg-gray-50 hover:text-gray-900 border-gray-200 text-xs font-semibold text-gray-500",children:E("sessionsClearHistory")}),u.jsx(Ve,{variant:"outline",size:"sm",onClick:_,className:"h-8.5 rounded-lg shadow-none hover:bg-red-50 hover:text-red-600 hover:border-red-200 border-gray-200 text-xs font-semibold text-red-500",children:E("delete")})]})]}),k&&u.jsxs("div",{className:"flex items-center gap-3 bg-gray-50/50 p-3 rounded-lg border border-gray-100 animate-slide-in",children:[u.jsx(We,{placeholder:E("sessionsLabelPlaceholder"),value:g,onChange:G=>y(G.target.value),className:"h-8 text-sm bg-white"}),u.jsx(We,{placeholder:E("sessionsModelPlaceholder"),value:x,onChange:G=>b(G.target.value),className:"h-8 text-sm bg-white"}),u.jsx(Ve,{size:"sm",onClick:H,className:"h-8 px-4 shrink-0 shadow-none",disabled:R.isPending,children:E("sessionsSaveMeta")})]})]}),u.jsxs("div",{className:`flex-1 overflow-y-auto p-6 relative
342
342
  [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:bg-gray-300/80 [&::-webkit-scrollbar-thumb]:rounded-full`,children:[C.isLoading&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-50/50 backdrop-blur-sm z-10",children:u.jsxs("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[u.jsx(Xd,{className:"w-6 h-6 text-primary animate-spin"}),u.jsx("span",{className:"text-sm font-medium text-gray-500",children:E("sessionsHistoryLoading")})]})}),C.error&&u.jsx("div",{className:"text-center p-6 bg-red-50 rounded-xl text-red-600 border border-red-100 text-sm",children:C.error.message}),!C.isLoading&&((Z=C.data)==null?void 0:Z.messages.length)===0&&u.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[u.jsx(ks,{className:"w-12 h-12 mb-3 text-gray-300"}),u.jsx("p",{className:"text-sm",children:E("sessionsEmpty")})]}),u.jsx("div",{className:"max-w-3xl mx-auto",children:(((ee=C.data)==null?void 0:ee.messages)??[]).map((G,ie)=>u.jsx(bR,{message:G},`${G.timestamp}-${ie}`))})]})]}):u.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-gray-400 p-8 h-full bg-white",children:[u.jsx("div",{className:"w-20 h-20 bg-gray-50 rounded-3xl flex items-center justify-center mb-6 border border-gray-100 shadow-[0_2px_8px_-2px_rgba(0,0,0,0.02)] rotate-3",children:u.jsx(fg,{className:"h-8 w-8 text-gray-300 -rotate-3"})}),u.jsx("h3",{className:"text-lg font-bold text-gray-900 mb-2",children:E("sessionsNoSelectionTitle")}),u.jsx("p",{className:"text-sm text-center max-w-sm leading-relaxed",children:E("sessionsNoSelectionDescription")})]})]})]}),u.jsx(A,{})]})}function Jg(t){return If(t??void 0)}function kR(t){return typeof t!="number"||!Number.isFinite(t)?"-":If(new Date(t))}function CR(t){if(typeof t!="number"||!Number.isFinite(t))return"-";const r=Math.round(t/1e3);if(r<60)return`${r}s`;const o=Math.round(r/60);if(o<60)return`${o}m`;const a=Math.round(o/60);return a<24?`${a}h`:`${Math.round(a/24)}d`}function ER(t){const r=t.schedule;return r.kind==="cron"?r.expr?`cron ${r.expr}`:"cron":r.kind==="every"?`every ${CR(r.everyMs)}`:r.kind==="at"?`at ${kR(r.atMs)}`:"-"}function NR(t){if(!t.payload.deliver)return"-";const r=t.payload.channel??"-",o=t.payload.to??"-";return`${r}:${o}`}function PR(t,r){const o=r.trim().toLowerCase();return o?[t.id,t.name,t.payload.message,t.payload.channel??"",t.payload.to??""].join(" ").toLowerCase().includes(o):!0}function RR(t,r){return r==="all"?!0:r==="enabled"?t.enabled:!t.enabled}function jR(){var N;const[t,r]=m.useState(""),[o,a]=m.useState("all"),l=CP({all:!0}),c=EP(),f=NP(),h=PP(),{confirm:g,ConfirmDialog:y}=eh(),x=m.useMemo(()=>{var C;return(((C=l.data)==null?void 0:C.jobs)??[]).filter(R=>PR(R,t)).filter(R=>RR(R,o))},[l.data,t,o]),b=async v=>{await g({title:`${E("cronDeleteConfirm")}?`,description:v.name?`${v.name} (${v.id})`:v.id,variant:"destructive",confirmLabel:E("delete")})&&c.mutate({id:v.id})},k=async v=>{const C=!v.enabled;await g({title:C?`${E("cronEnableConfirm")}?`:`${E("cronDisableConfirm")}?`,description:v.name?`${v.name} (${v.id})`:v.id,variant:C?"default":"destructive",confirmLabel:E(C?"cronEnable":"cronDisable")})&&f.mutate({id:v.id,enabled:C})},w=async v=>{const C=!v.enabled;await g({title:C?`${E("cronRunForceConfirm")}?`:`${E("cronRunConfirm")}?`,description:v.name?`${v.name} (${v.id})`:v.id,confirmLabel:E("cronRunNow")})&&h.mutate({id:v.id,force:C})};return u.jsxs(Wo,{fullHeight:!0,children:[u.jsx(Vo,{title:E("cronPageTitle"),description:E("cronPageDescription"),actions:u.jsx(Ve,{variant:"ghost",size:"icon",className:"h-9 w-9 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100",onClick:()=>l.refetch(),children:u.jsx(Xd,{className:me("h-4 w-4",l.isFetching&&"animate-spin")})})}),u.jsx("div",{className:"mb-6",children:u.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[u.jsxs("div",{className:"relative flex-1 min-w-[240px]",children:[u.jsx(We,{value:t,onChange:v=>r(v.target.value),placeholder:E("cronSearchPlaceholder"),className:"pl-9"}),u.jsx(rv,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400"})]}),u.jsx("div",{className:"min-w-[180px]",children:u.jsxs(so,{value:o,onValueChange:v=>a(v),children:[u.jsx(vr,{className:"w-full",children:u.jsx(Bo,{placeholder:E("cronStatusLabel")})}),u.jsxs(xr,{children:[u.jsx(Ct,{value:"all",children:E("cronStatusAll")}),u.jsx(Ct,{value:"enabled",children:E("cronStatusEnabled")}),u.jsx(Ct,{value:"disabled",children:E("cronStatusDisabled")})]})]})}),u.jsxs("div",{className:"text-xs text-gray-500 ml-auto",children:[E("cronTotalLabel"),": ",((N=l.data)==null?void 0:N.total)??0," / ",x.length]})]})}),u.jsx("div",{className:"flex-1 overflow-auto custom-scrollbar",children:l.isLoading?u.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:E("cronLoading")}):x.length===0?u.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:E("cronEmpty")}):u.jsx("div",{className:"space-y-4",children:x.map(v=>u.jsx(zo,{className:"border border-gray-200",children:u.jsx(Ba,{className:"pt-5 pb-5",children:u.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[u.jsxs("div",{className:"min-w-[220px] flex-1",children:[u.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[u.jsx("span",{className:"text-sm font-semibold text-gray-900",children:v.name||v.id}),u.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-full bg-gray-100 text-gray-500",children:v.id}),u.jsx("span",{className:me("text-[10px] font-semibold px-2 py-0.5 rounded-full",v.enabled?"bg-emerald-50 text-emerald-700":"bg-gray-100 text-gray-500"),children:v.enabled?E("enabled"):E("disabled")}),v.deleteAfterRun&&u.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-full bg-amber-50 text-amber-700",children:E("cronOneShot")})]}),u.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[E("cronScheduleLabel"),": ",ER(v)]}),u.jsx("div",{className:"mt-2 text-sm text-gray-700 whitespace-pre-wrap break-words",children:v.payload.message}),u.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[E("cronDeliverTo"),": ",NR(v)]})]}),u.jsxs("div",{className:"min-w-[220px] text-xs text-gray-500 space-y-2",children:[u.jsxs("div",{children:[u.jsxs("span",{className:"font-medium text-gray-700",children:[E("cronNextRun"),":"]})," ",Jg(v.state.nextRunAt)]}),u.jsxs("div",{children:[u.jsxs("span",{className:"font-medium text-gray-700",children:[E("cronLastRun"),":"]})," ",Jg(v.state.lastRunAt)]}),u.jsxs("div",{children:[u.jsxs("span",{className:"font-medium text-gray-700",children:[E("cronLastStatus"),":"]})," ",v.state.lastStatus??"-"]}),v.state.lastError&&u.jsx("div",{className:"text-[11px] text-red-500 break-words",children:v.state.lastError})]}),u.jsxs("div",{className:"flex items-start gap-2 flex-wrap justify-end",children:[u.jsxs(Ve,{variant:"subtle",size:"sm",onClick:()=>w(v),className:"gap-1",children:[u.jsx(Bk,{className:"h-3.5 w-3.5"}),E("cronRunNow")]}),u.jsxs(Ve,{variant:v.enabled?"outline":"primary",size:"sm",onClick:()=>k(v),className:"gap-1",children:[u.jsx(Hk,{className:"h-3.5 w-3.5"}),v.enabled?E("cronDisable"):E("cronEnable")]}),u.jsxs(Ve,{variant:"destructive",size:"sm",onClick:()=>b(v),className:"gap-1",children:[u.jsx(Xl,{className:"h-3.5 w-3.5"}),E("delete")]})]})]})})},v.id))})}),u.jsx(y,{})]})}var[Nc]=oi("Tooltip",[pc]),Pc=pc(),px="TooltipProvider",TR=700,ff="tooltip.open",[MR,th]=Nc(px),mx=t=>{const{__scopeTooltip:r,delayDuration:o=TR,skipDelayDuration:a=300,disableHoverableContent:l=!1,children:c}=t,f=m.useRef(!0),h=m.useRef(!1),g=m.useRef(0);return m.useEffect(()=>{const y=g.current;return()=>window.clearTimeout(y)},[]),u.jsx(MR,{scope:r,isOpenDelayedRef:f,delayDuration:o,onOpen:m.useCallback(()=>{window.clearTimeout(g.current),f.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>f.current=!0,a)},[a]),isPointerInTransitRef:h,onPointerInTransitChange:m.useCallback(y=>{h.current=y},[]),disableHoverableContent:l,children:c})};mx.displayName=px;var Ga="Tooltip",[IR,ii]=Nc(Ga),gx=t=>{const{__scopeTooltip:r,children:o,open:a,defaultOpen:l,onOpenChange:c,disableHoverableContent:f,delayDuration:h}=t,g=th(Ga,t.__scopeTooltip),y=Pc(r),[x,b]=m.useState(null),k=Lo(),w=m.useRef(0),N=f??g.disableHoverableContent,v=h??g.delayDuration,C=m.useRef(!1),[R,j]=nc({prop:a,defaultProp:l??!1,onChange:W=>{W?(g.onOpen(),document.dispatchEvent(new CustomEvent(ff))):g.onClose(),c==null||c(W)},caller:Ga}),P=m.useMemo(()=>R?C.current?"delayed-open":"instant-open":"closed",[R]),A=m.useCallback(()=>{window.clearTimeout(w.current),w.current=0,C.current=!1,j(!0)},[j]),$=m.useCallback(()=>{window.clearTimeout(w.current),w.current=0,j(!1)},[j]),B=m.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>{C.current=!0,j(!0),w.current=0},v)},[v,j]);return m.useEffect(()=>()=>{w.current&&(window.clearTimeout(w.current),w.current=0)},[]),u.jsx($v,{...y,children:u.jsx(IR,{scope:r,contentId:k,open:R,stateAttribute:P,trigger:x,onTriggerChange:b,onTriggerEnter:m.useCallback(()=>{g.isOpenDelayedRef.current?B():A()},[g.isOpenDelayedRef,B,A]),onTriggerLeave:m.useCallback(()=>{N?$():(window.clearTimeout(w.current),w.current=0)},[$,N]),onOpen:A,onClose:$,disableHoverableContent:N,children:o})})};gx.displayName=Ga;var hf="TooltipTrigger",yx=m.forwardRef((t,r)=>{const{__scopeTooltip:o,...a}=t,l=ii(hf,o),c=th(hf,o),f=Pc(o),h=m.useRef(null),g=Ze(r,h,l.onTriggerChange),y=m.useRef(!1),x=m.useRef(!1),b=m.useCallback(()=>y.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",b),[b]),u.jsx(Bv,{asChild:!0,...f,children:u.jsx(Be.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...a,ref:g,onPointerMove:Oe(t.onPointerMove,k=>{k.pointerType!=="touch"&&!x.current&&!c.isPointerInTransitRef.current&&(l.onTriggerEnter(),x.current=!0)}),onPointerLeave:Oe(t.onPointerLeave,()=>{l.onTriggerLeave(),x.current=!1}),onPointerDown:Oe(t.onPointerDown,()=>{l.open&&l.onClose(),y.current=!0,document.addEventListener("pointerup",b,{once:!0})}),onFocus:Oe(t.onFocus,()=>{y.current||l.onOpen()}),onBlur:Oe(t.onBlur,l.onClose),onClick:Oe(t.onClick,l.onClose)})})});yx.displayName=hf;var nh="TooltipPortal",[AR,LR]=Nc(nh,{forceMount:void 0}),vx=t=>{const{__scopeTooltip:r,forceMount:o,children:a,container:l}=t,c=ii(nh,r);return u.jsx(AR,{scope:r,forceMount:o,children:u.jsx(Js,{present:o||c.open,children:u.jsx(mc,{asChild:!0,container:l,children:a})})})};vx.displayName=nh;var Us="TooltipContent",xx=m.forwardRef((t,r)=>{const o=LR(Us,t.__scopeTooltip),{forceMount:a=o.forceMount,side:l="top",...c}=t,f=ii(Us,t.__scopeTooltip);return u.jsx(Js,{present:a||f.open,children:f.disableHoverableContent?u.jsx(wx,{side:l,...c,ref:r}):u.jsx(zR,{side:l,...c,ref:r})})}),zR=m.forwardRef((t,r)=>{const o=ii(Us,t.__scopeTooltip),a=th(Us,t.__scopeTooltip),l=m.useRef(null),c=Ze(r,l),[f,h]=m.useState(null),{trigger:g,onClose:y}=o,x=l.current,{onPointerInTransitChange:b}=a,k=m.useCallback(()=>{h(null),b(!1)},[b]),w=m.useCallback((N,v)=>{const C=N.currentTarget,R={x:N.clientX,y:N.clientY},j=UR(R,C.getBoundingClientRect()),P=$R(R,j),A=BR(v.getBoundingClientRect()),$=WR([...P,...A]);h($),b(!0)},[b]);return m.useEffect(()=>()=>k(),[k]),m.useEffect(()=>{if(g&&x){const N=C=>w(C,x),v=C=>w(C,g);return g.addEventListener("pointerleave",N),x.addEventListener("pointerleave",v),()=>{g.removeEventListener("pointerleave",N),x.removeEventListener("pointerleave",v)}}},[g,x,w,k]),m.useEffect(()=>{if(f){const N=v=>{const C=v.target,R={x:v.clientX,y:v.clientY},j=(g==null?void 0:g.contains(C))||(x==null?void 0:x.contains(C)),P=!HR(R,f);j?k():P&&(k(),y())};return document.addEventListener("pointermove",N),()=>document.removeEventListener("pointermove",N)}},[g,x,f,y,k]),u.jsx(wx,{...t,ref:c})}),[DR,OR]=Nc(Ga,{isInside:!1}),_R=sC("TooltipContent"),wx=m.forwardRef((t,r)=>{const{__scopeTooltip:o,children:a,"aria-label":l,onEscapeKeyDown:c,onPointerDownOutside:f,...h}=t,g=ii(Us,o),y=Pc(o),{onClose:x}=g;return m.useEffect(()=>(document.addEventListener(ff,x),()=>document.removeEventListener(ff,x)),[x]),m.useEffect(()=>{if(g.trigger){const b=k=>{const w=k.target;w!=null&&w.contains(g.trigger)&&x()};return window.addEventListener("scroll",b,{capture:!0}),()=>window.removeEventListener("scroll",b,{capture:!0})}},[g.trigger,x]),u.jsx(cc,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:b=>b.preventDefault(),onDismiss:x,children:u.jsxs(Hv,{"data-state":g.stateAttribute,...y,...h,ref:r,style:{...h.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(_R,{children:a}),u.jsx(DR,{scope:o,isInside:!0,children:u.jsx(rE,{id:g.contentId,role:"tooltip",children:l||a})})]})})});xx.displayName=Us;var bx="TooltipArrow",FR=m.forwardRef((t,r)=>{const{__scopeTooltip:o,...a}=t,l=Pc(o);return OR(bx,o).isInside?null:u.jsx(Wv,{...l,...a,ref:r})});FR.displayName=bx;function UR(t,r){const o=Math.abs(r.top-t.y),a=Math.abs(r.bottom-t.y),l=Math.abs(r.right-t.x),c=Math.abs(r.left-t.x);switch(Math.min(o,a,l,c)){case c:return"left";case l:return"right";case o:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function $R(t,r,o=5){const a=[];switch(r){case"top":a.push({x:t.x-o,y:t.y+o},{x:t.x+o,y:t.y+o});break;case"bottom":a.push({x:t.x-o,y:t.y-o},{x:t.x+o,y:t.y-o});break;case"left":a.push({x:t.x+o,y:t.y-o},{x:t.x+o,y:t.y+o});break;case"right":a.push({x:t.x-o,y:t.y-o},{x:t.x-o,y:t.y+o});break}return a}function BR(t){const{top:r,right:o,bottom:a,left:l}=t;return[{x:l,y:r},{x:o,y:r},{x:o,y:a},{x:l,y:a}]}function HR(t,r){const{x:o,y:a}=t;let l=!1;for(let c=0,f=r.length-1;c<r.length;f=c++){const h=r[c],g=r[f],y=h.x,x=h.y,b=g.x,k=g.y;x>a!=k>a&&o<(b-y)*(a-x)/(k-x)+y&&(l=!l)}return l}function WR(t){const r=t.slice();return r.sort((o,a)=>o.x<a.x?-1:o.x>a.x?1:o.y<a.y?-1:o.y>a.y?1:0),VR(r)}function VR(t){if(t.length<=1)return t.slice();const r=[];for(let a=0;a<t.length;a++){const l=t[a];for(;r.length>=2;){const c=r[r.length-1],f=r[r.length-2];if((c.x-f.x)*(l.y-f.y)>=(c.y-f.y)*(l.x-f.x))r.pop();else break}r.push(l)}r.pop();const o=[];for(let a=t.length-1;a>=0;a--){const l=t[a];for(;o.length>=2;){const c=o[o.length-1],f=o[o.length-2];if((c.x-f.x)*(l.y-f.y)>=(c.y-f.y)*(l.x-f.x))o.pop();else break}o.push(l)}return o.pop(),r.length===1&&o.length===1&&r[0].x===o[0].x&&r[0].y===o[0].y?r:r.concat(o)}var KR=mx,QR=gx,qR=yx,GR=vx,Sx=xx;const YR=KR,jd=QR,Td=qR,Vl=m.forwardRef(({className:t,sideOffset:r=4,...o},a)=>u.jsx(GR,{children:u.jsx(Sx,{ref:a,sideOffset:r,className:me("z-[var(--z-tooltip)] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o})}));Vl.displayName=Sx.displayName;async function XR(t={}){var l,c;const r=new URLSearchParams;(l=t.q)!=null&&l.trim()&&r.set("q",t.q.trim()),t.type&&r.set("type",t.type),(c=t.tag)!=null&&c.trim()&&r.set("tag",t.tag.trim()),t.sort&&r.set("sort",t.sort),typeof t.page=="number"&&Number.isFinite(t.page)&&r.set("page",String(Math.max(1,Math.trunc(t.page)))),typeof t.pageSize=="number"&&Number.isFinite(t.pageSize)&&r.set("pageSize",String(Math.max(1,Math.trunc(t.pageSize))));const o=r.toString(),a=await at.get(o?`/api/marketplace/items?${o}`:"/api/marketplace/items");if(!a.ok)throw new Error(a.error.message);return a.data}async function JR(t){const r=await at.post("/api/marketplace/install",t);if(!r.ok)throw new Error(r.error.message);return r.data}async function ZR(){const t=await at.get("/api/marketplace/installed");if(!t.ok)throw new Error(t.error.message);return t.data}async function ej(t){const r=await at.post("/api/marketplace/manage",t);if(!r.ok)throw new Error(r.error.message);return r.data}function tj(t){return ao({queryKey:["marketplace-items",t],queryFn:()=>XR(t),staleTime:15e3})}function nj(){return ao({queryKey:["marketplace-installed"],queryFn:ZR,staleTime:1e4})}function rj(){const t=Yt();return an({mutationFn:r=>JR(r),onSuccess:r=>{t.invalidateQueries({queryKey:["marketplace-installed"]}),t.refetchQueries({queryKey:["marketplace-installed"],type:"active"}),t.refetchQueries({queryKey:["marketplace-items"],type:"active"}),Ue.success(r.message||`${r.type} ${E("marketplaceInstalledCountSuffix")}`)},onError:r=>{Ue.error(r.message||E("marketplaceInstallFailed"))}})}function oj(){const t=Yt();return an({mutationFn:r=>ej(r),onSuccess:r=>{t.invalidateQueries({queryKey:["marketplace-installed"]}),t.invalidateQueries({queryKey:["marketplace-items"]}),t.refetchQueries({queryKey:["marketplace-installed"],type:"active"}),t.refetchQueries({queryKey:["marketplace-items"],type:"active"}),Ue.success(r.message||`${r.action} success`)},onError:r=>{Ue.error(r.message||E("marketplaceOperationFailed"))}})}const sj=12;function pf(t){return(t??"").trim().toLowerCase()}function Ns(t,r){const o=pf(r);return o.length>0?`${t}:${o}`:""}function aj(t){const r=new Map;for(const o of t){const a=[o.install.spec,o.slug,o.id];for(const l of a){const c=Ns(o.type,l);!c||r.has(c)||r.set(c,o)}}return r}function ij(t){const r=new Map;for(const o of t){const a=[o.spec,o.id,o.label];for(const l of a){const c=Ns(o.type,l);!c||r.has(c)||r.set(c,o)}}return r}function lj(t,r){const o=[t.install.spec,t.slug,t.id];for(const a of o){const l=Ns(t.type,a);if(!l)continue;const c=r.get(l);if(c)return c}}function cj(t,r){const o=r.get(Ns(t.type,t.spec));if(o)return o;const a=r.get(Ns(t.type,t.id));return a||r.get(Ns(t.type,t.label))}function uj(t,r,o){const a=pf(o);return a?[t.id,t.spec,t.label,r==null?void 0:r.name,r==null?void 0:r.slug,r==null?void 0:r.summary,...(r==null?void 0:r.tags)??[]].map(c=>pf(c)).filter(Boolean).some(c=>c.includes(a)):!0}function dj(t){const r=["bg-amber-600","bg-orange-500","bg-yellow-600","bg-emerald-600","bg-teal-600","bg-cyan-600","bg-stone-600","bg-rose-500","bg-violet-500"];let o=0;for(let a=0;a<t.length;a++)o=t.charCodeAt(a)+((o<<5)-o);return r[Math.abs(o)%r.length]}function fj({name:t,fallback:r}){const o=t||r,a=o.substring(0,2).toUpperCase(),l=dj(o);return u.jsx("div",{className:me("flex items-center justify-center w-10 h-10 rounded-xl text-white font-semibold text-sm shrink-0",l),children:a})}function hj(t){return u.jsx("div",{className:"mb-4",children:u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsxs("div",{className:"flex-1 min-w-0 relative",children:[u.jsx(Uk,{className:"h-4 w-4 text-gray-400 absolute left-3 top-1/2 -translate-y-1/2"}),u.jsx("input",{value:t.searchText,onChange:r=>t.onSearchTextChange(r.target.value),placeholder:E("marketplaceSearchPlaceholder"),className:"w-full h-9 border border-gray-200/80 rounded-xl pl-9 pr-3 text-sm focus:outline-none focus:ring-1 focus:ring-primary/40"})]}),u.jsx("div",{className:"inline-flex h-9 rounded-xl bg-gray-100/80 p-1 shrink-0",children:[{value:"all",label:E("marketplaceFilterAll")},{value:"plugin",label:E("marketplaceFilterPlugins")},{value:"skill",label:E("marketplaceFilterSkills")}].map(r=>u.jsx("button",{type:"button",onClick:()=>t.onTypeFilterChange(r.value),className:me("px-3 rounded-lg text-sm font-medium transition-all whitespace-nowrap",t.typeFilter===r.value?"bg-white text-gray-900 shadow-sm":"text-gray-500 hover:text-gray-700"),children:r.label},r.value))}),t.scope==="all"&&u.jsxs(so,{value:t.sort,onValueChange:r=>t.onSortChange(r),children:[u.jsx(vr,{className:"h-9 w-[150px] shrink-0 rounded-lg",children:u.jsx(Bo,{})}),u.jsxs(xr,{children:[u.jsx(Ct,{value:"relevance",children:E("marketplaceSortRelevance")}),u.jsx(Ct,{value:"updated",children:E("marketplaceSortUpdated")})]})]})]})})}function Zg(t){var C,R,j,P;const r=t.record,o=(r==null?void 0:r.type)==="plugin"?r:void 0,a=((C=t.item)==null?void 0:C.type)??(r==null?void 0:r.type),l=((R=t.item)==null?void 0:R.name)??(r==null?void 0:r.label)??(r==null?void 0:r.id)??(r==null?void 0:r.spec)??E("marketplaceUnknownItem"),c=((j=t.item)==null?void 0:j.summary)??(r?E("marketplaceInstalledLocalSummary"):""),f=((P=t.item)==null?void 0:P.install.spec)??(r==null?void 0:r.spec)??"",h=(r==null?void 0:r.id)||(r==null?void 0:r.spec),g=!!h&&t.manageState.isPending&&t.manageState.targetId===h,y=!!o,x=(r==null?void 0:r.type)==="plugin"&&r.origin!=="bundled",b=(r==null?void 0:r.type)==="skill"&&r.source==="workspace",k=!!(x||b),w=r?r.enabled===!1||r.runtimeStatus==="disabled":!1,N=t.installState.isPending&&t.item&&t.installState.installingSpec===t.item.install.spec,v=E(a==="plugin"?"marketplaceTypePlugin":a==="skill"?"marketplaceTypeSkill":"marketplaceTypeExtension");return u.jsxs("article",{className:"group bg-white border border-gray-200/40 hover:border-gray-200/80 rounded-2xl px-5 py-4 hover:shadow-md shadow-sm transition-all flex items-start gap-3.5 justify-between cursor-default",children:[u.jsxs("div",{className:"flex gap-3 min-w-0 flex-1 h-full items-start",children:[u.jsx(fj,{name:l,fallback:f||E("marketplaceTypeExtension")}),u.jsx("div",{className:"min-w-0 flex-1 flex flex-col justify-center h-full",children:u.jsxs(YR,{delayDuration:400,children:[u.jsxs(jd,{children:[u.jsx(Td,{asChild:!0,children:u.jsx("div",{className:"text-[14px] font-semibold text-gray-900 truncate leading-tight cursor-default",children:l})}),u.jsx(Vl,{className:"max-w-[300px] text-xs",children:l})]}),u.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5 mb-1.5",children:[u.jsx("span",{className:"text-[11px] text-gray-500 font-medium",children:v}),f&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-[10px] text-gray-300",children:"•"}),u.jsxs(jd,{children:[u.jsx(Td,{asChild:!0,children:u.jsx("span",{className:"text-[11px] text-gray-400 truncate max-w-full font-mono cursor-default",children:f})}),u.jsx(Vl,{className:"max-w-[300px] text-xs font-mono break-all",children:f})]})]})]}),u.jsxs(jd,{children:[u.jsx(Td,{asChild:!0,children:u.jsx("p",{className:"text-[12px] text-gray-500/90 line-clamp-1 transition-colors leading-relaxed text-left cursor-default",children:c})}),c&&u.jsx(Vl,{className:"max-w-[400px] text-xs leading-relaxed",children:c})]})]})})]}),u.jsxs("div",{className:"shrink-0 flex items-center h-full",children:[t.item&&!r&&u.jsx("button",{onClick:()=>t.onInstall(t.item),disabled:t.installState.isPending,className:"inline-flex items-center gap-1.5 h-8 px-4 rounded-xl text-xs font-medium bg-primary text-white hover:bg-primary-600 disabled:opacity-50 transition-colors",children:E(N?"marketplaceInstalling":"marketplaceInstall")}),o&&y&&u.jsx("button",{disabled:t.manageState.isPending,onClick:()=>t.onManage(w?"enable":"disable",o),className:"inline-flex items-center h-8 px-4 rounded-xl text-xs font-medium border border-gray-200/80 text-gray-600 bg-white hover:bg-gray-50 hover:border-gray-300 disabled:opacity-50 transition-colors",children:g&&t.manageState.action!=="uninstall"?t.manageState.action==="enable"?E("marketplaceEnabling"):E("marketplaceDisabling"):E(w?"marketplaceEnable":"marketplaceDisable")}),r&&k&&u.jsx("button",{disabled:t.manageState.isPending,onClick:()=>t.onManage("uninstall",r),className:"inline-flex items-center h-8 px-4 rounded-xl text-xs font-medium border border-rose-100 text-rose-500 bg-white hover:bg-rose-50 hover:border-rose-200 disabled:opacity-50 transition-colors",children:g&&t.manageState.action==="uninstall"?E("marketplaceRemoving"):E("marketplaceUninstall")})]})]})}function pj(t){return u.jsxs("div",{className:"mt-4 flex items-center justify-end gap-2",children:[u.jsx("button",{className:"h-8 px-3 rounded-xl border border-gray-200/80 text-sm text-gray-600 disabled:opacity-40",onClick:t.onPrev,disabled:t.page<=1||t.busy,children:E("prev")}),u.jsx("div",{className:"text-sm text-gray-600 min-w-20 text-center",children:t.totalPages===0?"0 / 0":`${t.page} / ${t.totalPages}`}),u.jsx("button",{className:"h-8 px-3 rounded-xl border border-gray-200/80 text-sm text-gray-600 disabled:opacity-40",onClick:t.onNext,disabled:t.totalPages===0||t.page>=t.totalPages||t.busy,children:E("next")})]})}function mj(){var G,ie,ce,K,q,Q,M,F,le;const[t,r]=m.useState(""),[o,a]=m.useState(""),[l,c]=m.useState("all"),[f,h]=m.useState("all"),[g,y]=m.useState("relevance"),[x,b]=m.useState(1);m.useEffect(()=>{const J=setTimeout(()=>{b(1),a(t.trim())},250);return()=>clearTimeout(J)},[t]);const k=nj(),w=tj({q:o||void 0,type:f==="all"?void 0:f,sort:g,page:x,pageSize:sj}),N=rj(),v=oj(),{confirm:C,ConfirmDialog:R}=eh(),j=m.useMemo(()=>{var J;return((J=k.data)==null?void 0:J.records)??[]},[(G=k.data)==null?void 0:G.records]),P=m.useMemo(()=>{var J;return((J=w.data)==null?void 0:J.items)??[]},[(ie=w.data)==null?void 0:ie.items]),A=m.useMemo(()=>aj(P),[P]),$=m.useMemo(()=>ij(j),[j]),B=m.useMemo(()=>{const J=j.filter(ue=>f==="all"?!0:ue.type===f).map(ue=>({key:`${ue.type}:${ue.spec}:${ue.id??""}`,record:ue,item:cj(ue,A)})).filter(ue=>uj(ue.record,ue.item,o));return J.sort((ue,xe)=>{const ne=ue.record.installedAt?Date.parse(ue.record.installedAt):Number.NaN,he=xe.record.installedAt?Date.parse(xe.record.installedAt):Number.NaN,be=!Number.isNaN(ne),Ce=!Number.isNaN(he);return be&&Ce&&ne!==he?he-ne:ue.record.spec.localeCompare(xe.record.spec)}),J},[j,f,A,o]),W=l==="installed"?B.length:((ce=w.data)==null?void 0:ce.total)??0,X=l==="installed"?1:((K=w.data)==null?void 0:K.totalPages)??0,H=m.useMemo(()=>l==="installed"?k.isLoading?E("loading"):`${B.length} ${E("marketplaceInstalledCountSuffix")}`:w.data?`${P.length} / ${W}`:E("loading"),[l,k.isLoading,B.length,w.data,P.length,W]),Y={isPending:N.isPending,installingSpec:(q=N.variables)==null?void 0:q.spec},_={isPending:v.isPending,targetId:((Q=v.variables)==null?void 0:Q.id)||((M=v.variables)==null?void 0:M.spec),action:(F=v.variables)==null?void 0:F.action},O=[{id:"all",label:E("marketplaceTabMarketplace")},{id:"installed",label:E("marketplaceTabInstalled"),count:((le=k.data)==null?void 0:le.total)??0}],Z=J=>{N.isPending||N.mutate({type:J.type,spec:J.install.spec,kind:J.install.kind})},ee=async(J,ue)=>{if(v.isPending)return;const xe=ue.id||ue.spec;xe&&(J==="uninstall"&&!await C({title:`${E("marketplaceUninstallTitle")} ${xe}?`,description:E("marketplaceUninstallDescription"),confirmLabel:E("marketplaceUninstall"),variant:"destructive"})||v.mutate({type:ue.type,action:J,id:xe,spec:ue.spec}))};return u.jsxs(Wo,{children:[u.jsx(Vo,{title:E("marketplacePageTitle"),description:E("marketplacePageDescription")}),u.jsx(Jf,{tabs:O,activeTab:l,onChange:J=>{c(J),b(1)},className:"mb-4"}),u.jsx(hj,{scope:l,searchText:t,typeFilter:f,sort:g,onSearchTextChange:r,onTypeFilterChange:J=>{b(1),h(J)},onSortChange:J=>{b(1),y(J)}}),u.jsxs("section",{children:[u.jsxs("div",{className:"flex items-center justify-between mb-3",children:[u.jsx("h3",{className:"text-[14px] font-semibold text-gray-900",children:E(l==="installed"?"marketplaceSectionInstalled":"marketplaceSectionExtensions")}),u.jsx("span",{className:"text-[12px] text-gray-500",children:H})]}),l==="all"&&w.isError&&u.jsxs("div",{className:"p-4 rounded-xl bg-rose-50 border border-rose-200 text-rose-700 text-sm",children:[E("marketplaceErrorLoadingData"),": ",w.error.message]}),l==="installed"&&k.isError&&u.jsxs("div",{className:"p-4 rounded-xl bg-rose-50 border border-rose-200 text-rose-700 text-sm",children:[E("marketplaceErrorLoadingInstalled"),": ",k.error.message]}),u.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 2xl:grid-cols-3 gap-3",children:[l==="all"&&P.map(J=>u.jsx(Zg,{item:J,record:lj(J,$),installState:Y,manageState:_,onInstall:Z,onManage:ee},J.id)),l==="installed"&&B.map(J=>u.jsx(Zg,{item:J.item,record:J.record,installState:Y,manageState:_,onInstall:Z,onManage:ee},J.key))]}),l==="all"&&!w.isLoading&&!w.isError&&P.length===0&&u.jsx("div",{className:"text-[13px] text-gray-500 py-8 text-center",children:E("marketplaceNoItems")}),l==="installed"&&!k.isLoading&&!k.isError&&B.length===0&&u.jsx("div",{className:"text-[13px] text-gray-500 py-8 text-center",children:E("marketplaceNoInstalledItems")})]}),l==="all"&&u.jsx(pj,{page:x,totalPages:X,busy:w.isFetching,onPrev:()=>b(J=>Math.max(1,J-1)),onNext:()=>b(J=>X>0?Math.min(X,J+1):J+1)}),u.jsx(R,{})]})}class gj{constructor(r){this.url=r,this.ws=null,this.handlers=new Map,this.reconnectTimer=null,this.manualClose=!1}connect(){this.manualClose=!1,this.ws=new WebSocket(this.url),this.ws.onopen=()=>{console.log("WebSocket connected"),this.emit({type:"connection.open",payload:{}})},this.ws.onmessage=r=>{try{const o=JSON.parse(r.data);this.emit(o)}catch(o){console.error("Failed to parse WebSocket message:",o)}},this.ws.onclose=()=>{console.log("WebSocket disconnected"),this.manualClose||this.scheduleReconnect()},this.ws.onerror=r=>{console.error("WebSocket error:",r)}}on(r,o){this.handlers.has(r)||this.handlers.set(r,new Set),this.handlers.get(r).add(o)}off(r,o){var a;(a=this.handlers.get(r))==null||a.delete(o)}emit(r){const o=this.handlers.get(r.type);o==null||o.forEach(a=>a(r))}scheduleReconnect(){this.reconnectTimer||(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))}disconnect(){var r;this.manualClose=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),(r=this.ws)==null||r.close(),this.ws=null}}function yj(t){const[r,o]=m.useState(null),{setConnectionStatus:a}=ai();return m.useEffect(()=>{const l=(()=>{const f=Wl==null?void 0:Wl.replace(/\/$/,"");if(!f)return"ws://127.0.0.1:18791/ws";try{const h=new URL(f,window.location.origin);return`${h.protocol==="https:"?"wss:":h.protocol==="http:"?"ws:":h.protocol}//${h.host}/ws`}catch{return f.startsWith("wss://")||f.startsWith("ws://")?`${f}/ws`:f.startsWith("https://")?`${f.replace(/^https:/,"wss:")}/ws`:f.startsWith("http://")?`${f.replace(/^http:/,"ws:")}/ws`:`${f}/ws`}})(),c=new gj(l);return c.on("connection.open",()=>{a("connected")}),c.on("config.updated",()=>{t&&t.invalidateQueries({queryKey:["config"]})}),c.on("error",f=>{f.type==="error"&&console.error("WebSocket error:",f.payload.message)}),c.connect(),o(c),()=>c.disconnect()},[a,t]),r}const ey=new kS({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!0}}});function vj(){yj(ey);const t=wr();return u.jsxs(CS,{client:ey,children:[u.jsx(bN,{children:u.jsx("div",{className:"animate-fade-in w-full h-full",children:u.jsxs(bb,{children:[u.jsx($n,{path:"/model",element:u.jsx(jP,{})}),u.jsx($n,{path:"/providers",element:u.jsx(sR,{})}),u.jsx($n,{path:"/channels",element:u.jsx(fR,{})}),u.jsx($n,{path:"/runtime",element:u.jsx(gR,{})}),u.jsx($n,{path:"/sessions",element:u.jsx(SR,{})}),u.jsx($n,{path:"/cron",element:u.jsx(jR,{})}),u.jsx($n,{path:"/marketplace",element:u.jsx(mj,{})}),u.jsx($n,{path:"/",element:u.jsx(Gm,{to:"/model",replace:!0})}),u.jsx($n,{path:"*",element:u.jsx(Gm,{to:"/model",replace:!0})})]})},t.pathname)}),u.jsx(pP,{position:"top-right",richColors:!0})]})}C1.createRoot(document.getElementById("root")).render(u.jsx(m.StrictMode,{children:u.jsx(eC,{children:u.jsx(Vb,{children:u.jsx(vj,{})})})}));
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--gray-200))}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: 217 100% 97%;--brand-100: 217 95% 92%;--brand-200: 217 90% 82%;--brand-300: 217 80% 68%;--brand-400: 217 72% 56%;--brand-500: 217 80% 55%;--brand-600: 217 70% 45%;--brand-700: 217 60% 35%;--brand-800: 217 55% 28%;--brand-900: 217 60% 25%;--gray-50: 210 20% 98%;--gray-100: 214 18% 96%;--gray-200: 213 14% 90%;--gray-300: 212 10% 83%;--gray-400: 215 8% 64%;--gray-500: 216 6% 46%;--gray-600: 215 10% 34%;--gray-700: 217 14% 26%;--gray-800: 219 18% 18%;--gray-900: 221 39% 11%;--background-secondary: 223 20% 93%;--background-tertiary: 223 15% 89%;--foreground-secondary: 219 18% 18%;--foreground-tertiary: 216 6% 46%;--foreground-muted: 215 8% 64%;--primary-hover: 217 70% 45%;--primary-active: 217 60% 35%;--secondary-hover: 213 14% 90%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--card-border: 213 14% 90%;--border-hover: 212 10% 83%;--border-active: 217 80% 55%;--input: 0 0% 100%;--input-border: 213 14% 90%;--input-focus: 217 80% 55%;--ring-offset: 0 0% 100%;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(30 20 10 / .04);--shadow-sm: 0 1px 3px 0 rgb(30 20 10 / .06), 0 1px 2px -1px rgb(30 20 10 / .04);--shadow-md: 0 4px 6px -1px rgb(30 20 10 / .06), 0 2px 4px -2px rgb(30 20 10 / .04);--shadow-lg: 0 10px 15px -3px rgb(30 20 10 / .06), 0 4px 6px -4px rgb(30 20 10 / .04);--shadow-xl: 0 20px 25px -5px rgb(30 20 10 / .08), 0 8px 10px -6px rgb(30 20 10 / .04);--shadow-2xl: 0 25px 50px -12px rgb(30 20 10 / .15);--shadow-card: 0 0 8px 0 rgba(0, 0, 0, .04);--shadow-card-hover: 0 0 16px 0 rgba(0, 0, 0, .06);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--background: 223 37% 96%;--foreground: 221 39% 11%;--card: 0 0% 100%;--card-foreground: 221 39% 11%;--popover: 0 0% 100%;--popover-foreground: 221 39% 11%;--primary: 217 80% 55%;--primary-foreground: 0 0% 100%;--secondary: 214 18% 96%;--secondary-foreground: 219 18% 18%;--muted: 214 18% 96%;--muted-foreground: 216 6% 46%;--accent: 217 100% 97%;--accent-foreground: 217 60% 35%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--border: 213 14% 90%;--input: 213 14% 90%;--ring: 217 80% 55%;--radius: .75rem}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip)}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[17px\]{height:17px}.h-\[180px\]{height:180px}.h-\[22px\]{height:22px}.h-\[2px\]{height:2px}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[42px\]{min-height:42px}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[17px\]{width:17px}.w-\[240px\]{width:240px}.w-\[320px\]{width:320px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-20{min-width:5rem}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-\[100px\]{max-width:100px}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-3{--tw-rotate: -3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate: 3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-45deg\]{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:slideIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-3xl{border-radius:1.5rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[14px\]{border-radius:14px}.rounded-full{border-radius:9999px}.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)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[\#dde0ea\]{--tw-border-opacity: 1;border-color:rgb(221 224 234 / var(--tw-border-opacity, 1))}.border-gray-100{border-color:hsl(var(--gray-100))}.border-gray-100\/50{border-color:hsl(var(--gray-100) / .5)}.border-gray-200{border-color:hsl(var(--gray-200))}.border-gray-200\/40{border-color:hsl(var(--gray-200) / .4)}.border-gray-200\/50{border-color:hsl(var(--gray-200) / .5)}.border-gray-200\/60{border-color:hsl(var(--gray-200) / .6)}.border-gray-200\/80{border-color:hsl(var(--gray-200) / .8)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-rose-100{--tw-border-opacity: 1;border-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-\[\#e9ecf3\]{--tw-bg-opacity: 1;background-color:rgb(233 236 243 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-gray-100\/80{background-color:hsl(var(--gray-100) / .8)}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-200\/80{background-color:hsl(var(--gray-200) / .8)}.bg-gray-300{background-color:hsl(var(--gray-300))}.bg-gray-50\/50{background-color:hsl(var(--gray-50) / .5)}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.from-purple-400{--tw-gradient-from: #c084fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-400{--tw-gradient-from: #fb7185 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-gray-500{--tw-gradient-to: hsl(var(--gray-500)) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to: rgb(255 255 255 / .1) var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-16{padding-bottom:4rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-gray-300{color:hsl(var(--gray-300))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-500\/90{color:hsl(var(--gray-500) / .9)}.text-gray-700{color:hsl(var(--gray-700))}.text-gray-800{color:hsl(var(--gray-800))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-100{color:hsl(var(--brand-100))}.text-primary-200{color:hsl(var(--brand-200))}.text-primary-50{color:hsl(var(--brand-50))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 1px 2px rgba(0,0,0,.02);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_-2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 2px 8px -2px rgba(0,0,0,.02);--tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: var(--shadow-card);--tw-shadow-colored: var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow-color: hsl(var(--card));--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200,.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}@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))}}@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))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200,.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.bg-brand-50{background-color:hsl(var(--brand-50))}.text-brand-600{color:hsl(var(--brand-600))}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.shadow-card{box-shadow:var(--shadow-card)}.custom-scrollbar::-webkit-scrollbar{width:5px;height:5px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.shadow-card{box-shadow:0 1px 3px -1px #1e140a08,0 1px 2px -1px #1e140a05}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.85}}.animate-fade-in{animation:fadeIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in{animation:slideIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse-soft{animation:pulse-soft 3s ease-in-out infinite}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{color:hsl(var(--gray-400))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-200:hover{border-color:hsl(var(--gray-200))}.hover\:border-gray-200\/80:hover{border-color:hsl(var(--gray-200) / .8)}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:border-red-200:hover{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.hover\:border-rose-200:hover{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#e4e7ef\]:hover{--tw-bg-opacity: 1;background-color:rgb(228 231 239 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100\/60:hover{background-color:hsl(var(--gray-100) / .6)}.hover\:bg-gray-100\/80:hover{background-color:hsl(var(--gray-100) / .8)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-200\/80:hover{background-color:hsl(var(--gray-200) / .8)}.hover\:bg-gray-300\/80:hover{background-color:hsl(var(--gray-300) / .8)}.hover\:bg-gray-50\/80:hover{background-color:hsl(var(--gray-50) / .8)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-gray-800:hover{color:hsl(var(--gray-800))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow: var(--shadow-card-hover);--tw-shadow-colored: var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:bg-gray-50:hover{background-color:hsl(var(--gray-50))}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-500:hover{color:hsl(var(--gray-500))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 8px 20px -4px #1e140a0f,0 4px 8px -4px #1e140a08}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/30:focus{--tw-ring-color: hsl(var(--primary) / .3)}.focus\:ring-primary\/40:focus{--tw-ring-color: hsl(var(--primary) / .4)}.focus\:bg-gray-100:focus{background-color:hsl(var(--gray-100))}.focus-visible\:bg-white:focus-visible{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color: #fff}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group\/action:hover .group-hover\/action\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{border-color:hsl(var(--gray-300))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}@media(min-width:640px){.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[550px\]{max-width:550px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-0{gap:0px}.sm\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:9999px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-gray-300\/80::-webkit-scrollbar-thumb{background-color:hsl(var(--gray-300) / .8)}.\[\&\:\:-webkit-scrollbar\]\:w-2::-webkit-scrollbar{width:.5rem}.\[\&\>\:last-child\]\:hidden>:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}
@@ -6,8 +6,8 @@
6
6
  <link rel="icon" type="image/svg+xml" href="/logo.svg" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
8
  <title>NextClaw - 系统配置</title>
9
- <script type="module" crossorigin src="/assets/index-BHB8zYn7.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-BGzsyzDd.css">
9
+ <script type="module" crossorigin src="/assets/index-BWFy0xvM.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-CqQ629Sy.css">
11
11
  </head>
12
12
 
13
13
  <body>
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--gray-200))}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: 217 100% 97%;--brand-100: 217 95% 92%;--brand-200: 217 90% 82%;--brand-300: 217 80% 68%;--brand-400: 217 72% 56%;--brand-500: 217 80% 55%;--brand-600: 217 70% 45%;--brand-700: 217 60% 35%;--brand-800: 217 55% 28%;--brand-900: 217 60% 25%;--gray-50: 210 20% 98%;--gray-100: 214 18% 96%;--gray-200: 213 14% 90%;--gray-300: 212 10% 83%;--gray-400: 215 8% 64%;--gray-500: 216 6% 46%;--gray-600: 215 10% 34%;--gray-700: 217 14% 26%;--gray-800: 219 18% 18%;--gray-900: 221 39% 11%;--background-secondary: 214 18% 96%;--background-tertiary: 213 14% 90%;--foreground-secondary: 219 18% 18%;--foreground-tertiary: 216 6% 46%;--foreground-muted: 215 8% 64%;--primary-hover: 217 70% 45%;--primary-active: 217 60% 35%;--secondary-hover: 213 14% 90%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--card-border: 213 14% 90%;--border-hover: 212 10% 83%;--border-active: 217 80% 55%;--input: 0 0% 100%;--input-border: 213 14% 90%;--input-focus: 217 80% 55%;--ring-offset: 0 0% 100%;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(30 20 10 / .04);--shadow-sm: 0 1px 3px 0 rgb(30 20 10 / .06), 0 1px 2px -1px rgb(30 20 10 / .04);--shadow-md: 0 4px 6px -1px rgb(30 20 10 / .06), 0 2px 4px -2px rgb(30 20 10 / .04);--shadow-lg: 0 10px 15px -3px rgb(30 20 10 / .06), 0 4px 6px -4px rgb(30 20 10 / .04);--shadow-xl: 0 20px 25px -5px rgb(30 20 10 / .08), 0 8px 10px -6px rgb(30 20 10 / .04);--shadow-2xl: 0 25px 50px -12px rgb(30 20 10 / .15);--shadow-card: 0 1px 3px -1px rgba(30, 20, 10, .03), 0 1px 2px -1px rgba(30, 20, 10, .02);--shadow-card-hover: 0 8px 20px -4px rgba(30, 20, 10, .06), 0 4px 8px -4px rgba(30, 20, 10, .03);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--background: 210 20% 98%;--foreground: 221 39% 11%;--card: 0 0% 100%;--card-foreground: 221 39% 11%;--popover: 0 0% 100%;--popover-foreground: 221 39% 11%;--primary: 217 80% 55%;--primary-foreground: 0 0% 100%;--secondary: 214 18% 96%;--secondary-foreground: 219 18% 18%;--muted: 214 18% 96%;--muted-foreground: 216 6% 46%;--accent: 217 100% 97%;--accent-foreground: 217 60% 35%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--border: 213 14% 90%;--input: 213 14% 90%;--ring: 217 80% 55%;--radius: .75rem}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip)}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[17px\]{height:17px}.h-\[180px\]{height:180px}.h-\[22px\]{height:22px}.h-\[2px\]{height:2px}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[42px\]{min-height:42px}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[17px\]{width:17px}.w-\[240px\]{width:240px}.w-\[320px\]{width:320px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-20{min-width:5rem}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-\[100px\]{max-width:100px}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-3{--tw-rotate: -3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate: 3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-45deg\]{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:slideIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-3xl{border-radius:1.5rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[14px\]{border-radius:14px}.rounded-full{border-radius:9999px}.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)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[\#dde0ea\]{--tw-border-opacity: 1;border-color:rgb(221 224 234 / var(--tw-border-opacity, 1))}.border-gray-100{border-color:hsl(var(--gray-100))}.border-gray-100\/50{border-color:hsl(var(--gray-100) / .5)}.border-gray-200{border-color:hsl(var(--gray-200))}.border-gray-200\/40{border-color:hsl(var(--gray-200) / .4)}.border-gray-200\/50{border-color:hsl(var(--gray-200) / .5)}.border-gray-200\/60{border-color:hsl(var(--gray-200) / .6)}.border-gray-200\/80{border-color:hsl(var(--gray-200) / .8)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-rose-100{--tw-border-opacity: 1;border-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-\[\#f0f2f7\]{--tw-bg-opacity: 1;background-color:rgb(240 242 247 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-gray-100\/80{background-color:hsl(var(--gray-100) / .8)}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-200\/80{background-color:hsl(var(--gray-200) / .8)}.bg-gray-300{background-color:hsl(var(--gray-300))}.bg-gray-50\/50{background-color:hsl(var(--gray-50) / .5)}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.from-purple-400{--tw-gradient-from: #c084fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-400{--tw-gradient-from: #fb7185 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-gray-500{--tw-gradient-to: hsl(var(--gray-500)) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to: rgb(255 255 255 / .1) var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-16{padding-bottom:4rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-gray-300{color:hsl(var(--gray-300))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-500\/90{color:hsl(var(--gray-500) / .9)}.text-gray-700{color:hsl(var(--gray-700))}.text-gray-800{color:hsl(var(--gray-800))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-100{color:hsl(var(--brand-100))}.text-primary-200{color:hsl(var(--brand-200))}.text-primary-50{color:hsl(var(--brand-50))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 1px 2px rgba(0,0,0,.02);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_-2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 2px 8px -2px rgba(0,0,0,.02);--tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: var(--shadow-card);--tw-shadow-colored: var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow-color: hsl(var(--card));--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200,.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}@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))}}@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))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200,.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.bg-brand-50{background-color:hsl(var(--brand-50))}.text-brand-600{color:hsl(var(--brand-600))}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.shadow-card{box-shadow:var(--shadow-card)}.custom-scrollbar::-webkit-scrollbar{width:5px;height:5px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.shadow-card{box-shadow:0 1px 3px -1px #1e140a08,0 1px 2px -1px #1e140a05}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.85}}.animate-fade-in{animation:fadeIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in{animation:slideIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse-soft{animation:pulse-soft 3s ease-in-out infinite}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{color:hsl(var(--gray-400))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-200:hover{border-color:hsl(var(--gray-200))}.hover\:border-gray-200\/80:hover{border-color:hsl(var(--gray-200) / .8)}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:border-red-200:hover{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.hover\:border-rose-200:hover{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#e4e7ef\]:hover{--tw-bg-opacity: 1;background-color:rgb(228 231 239 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100\/60:hover{background-color:hsl(var(--gray-100) / .6)}.hover\:bg-gray-100\/80:hover{background-color:hsl(var(--gray-100) / .8)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-200\/80:hover{background-color:hsl(var(--gray-200) / .8)}.hover\:bg-gray-300\/80:hover{background-color:hsl(var(--gray-300) / .8)}.hover\:bg-gray-50\/80:hover{background-color:hsl(var(--gray-50) / .8)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-gray-800:hover{color:hsl(var(--gray-800))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow: var(--shadow-card-hover);--tw-shadow-colored: var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:bg-gray-50:hover{background-color:hsl(var(--gray-50))}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-500:hover{color:hsl(var(--gray-500))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 8px 20px -4px #1e140a0f,0 4px 8px -4px #1e140a08}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/30:focus{--tw-ring-color: hsl(var(--primary) / .3)}.focus\:ring-primary\/40:focus{--tw-ring-color: hsl(var(--primary) / .4)}.focus\:bg-gray-100:focus{background-color:hsl(var(--gray-100))}.focus-visible\:bg-white:focus-visible{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color: #fff}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group\/action:hover .group-hover\/action\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{border-color:hsl(var(--gray-300))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}@media(min-width:640px){.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[550px\]{max-width:550px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-0{gap:0px}.sm\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:9999px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-gray-300\/80::-webkit-scrollbar-thumb{background-color:hsl(var(--gray-300) / .8)}.\[\&\:\:-webkit-scrollbar\]\:w-2::-webkit-scrollbar{width:.5rem}.\[\&\>\:last-child\]\:hidden>:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}