@townco/gui-template 0.1.30 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +0,0 @@
1
- import{r as i,j as t,P as ns,e as os,f as rs,M as as,h as is,a as ls}from"./react-CrKZJ-ak.js";import{P as ve,a as cs}from"./acp-sdk-4ryhpmET.js";import{L as H,M as k,N as E,O as y,P as Re,Q as D,R,S as L,T as z,U as ds,W as X,X as ne,Y as us,Z as ps,$ as ms,a0 as fs,a1 as V,a2 as gs,a3 as Ne}from"./vendor-Ccy0WTO1.js";import{S as J,L as Ue,T as Me,C as Ae,R as hs,O as De,P as xs,a as _e,b as bs,c as Pe,D as Le,d as ze,e as Fe,f as ys,g as Oe,I as He,h as $e,i as Be,j as We,k as Ve,l as qe,m as Qe,n as Ge,o as ws,p as Ke,q as Xe,r as vs,s as Je,V as Ns,t as Ye,u as Ze,v as js,w as Ss,x as et}from"./radix-R6uiGzM3.js";import{C as tt,S as Cs,P as Ts,M as ks,A as Is,a as st,F as nt,D as ot,L as rt,b as je,c as Es,d as Rs,e as Us,f as fe,g as at,X as Ms,h as it,i as lt,j as ge,W as As,k as ct,l as Ds,m as _s}from"./icons-Cd_vS0Im.js";import{r as Ps}from"./markdown-Bz1KRONC.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const l of a)if(l.type==="childList")for(const d of l.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function n(a){const l={};return a.integrity&&(l.integrity=a.integrity),a.referrerPolicy&&(l.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?l.credentials="include":a.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(a){if(a.ep)return;a.ep=!0;const l=n(a);fetch(a.href,l)}})();const ue=typeof process<"u"&&process.versions?.node;let Ls,zs=0;const Fs=new Set;function Os(s){for(const e of Fs)e(s)}const Se={trace:0,debug:1,info:2,warn:3,error:4,fatal:5};class Hs{service;minLevel;logFilePath;logsDir;writeQueue=[];isWriting=!1;constructor(e,n="debug"){this.service=e,this.minLevel=n,typeof process<"u"&&(this.minLevel="info")}setupFileLogging(){}async writeToFile(e){if(!(!this.logFilePath||!ue)&&(this.writeQueue.push(e),!this.isWriting)){for(this.isWriting=!0;this.writeQueue.length>0;){const o=`${this.writeQueue.splice(0,this.writeQueue.length).join(`
2
- `)}
3
- `;try{await require("node:fs").promises.appendFile(this.logFilePath,o,"utf-8")}catch{}}this.isWriting=!1}}shouldLog(e){return Se[e]>=Se[this.minLevel]}log(e,n,o){if(!this.shouldLog(e))return;const a={id:`log_${++zs}`,timestamp:new Date().toISOString(),level:e,service:this.service,message:n,...o&&{metadata:o}};if(Os(a),ue&&this.logFilePath,ue&&this.logFilePath){const l={timestamp:a.timestamp,level:a.level,service:a.service,message:a.message,...a.metadata&&{metadata:a.metadata}};this.writeToFile(JSON.stringify(l)).catch(()=>{})}}trace(e,n){this.log("trace",e,n)}debug(e,n){this.log("debug",e,n)}info(e,n){this.log("info",e,n)}warn(e,n){this.log("warn",e,n)}error(e,n){this.log("error",e,n)}fatal(e,n){this.log("fatal",e,n)}}function $(s,e="debug"){return new Hs(s,e)}const j=$("http-transport");class $s{connected=!1;sessionUpdateCallbacks=new Set;errorCallbacks=new Set;messageQueue=[];currentSessionId=null;chunkResolvers=[];streamComplete=!1;sseAbortController=null;reconnectAttempts=0;maxReconnectAttempts=5;reconnectDelay=1e3;reconnecting=!1;abortController=null;options;isReceivingMessages=!1;constructor(e){this.options={...e,baseUrl:e.baseUrl.replace(/\/$/,"")}}async connect(){if(!this.connected)try{this.abortController=new AbortController;const e={protocolVersion:ve,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0}}},n=await this.sendRpcRequest("initialize",e);j.info("ACP connection initialized",{initResponse:n});const o={cwd:"/",mcpServers:[]},a=await this.sendRpcRequest("session/new",o);this.currentSessionId=a.sessionId,j.info("Session created",{sessionId:this.currentSessionId}),await this.connectSSE(),this.connected=!0,this.reconnectAttempts=0}catch(e){this.connected=!1;const n=e instanceof Error?e:new Error(String(e));throw this.notifyError(n),n}}async loadSession(e){this.connected&&(j.warn("Transport already connected, disconnecting first",{sessionId:e}),await this.disconnect());try{this.abortController=new AbortController;const n={protocolVersion:ve,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0}}};j.info("Loading session - initializing connection",{sessionId:e});const o=await this.sendRpcRequest("initialize",n);if(!o.agentCapabilities?.loadSession)throw j.error("Agent does not support loading sessions",{capabilities:o.agentCapabilities}),new Error("Agent does not support loading sessions");j.info("ACP connection initialized, loading session",{sessionId:e,capabilities:o.agentCapabilities}),this.currentSessionId=e,await this.connectSSE();const a={sessionId:e,cwd:"/",mcpServers:[]};j.info("Sending session/load request",{loadRequest:a});const l=await this.sendRpcRequest("session/load",a);j.info("Session loaded successfully",{sessionId:this.currentSessionId,loadResponse:l}),this.connected=!0,this.reconnectAttempts=0}catch(n){this.connected=!1;const o=n instanceof Error?n:new Error(String(n));throw j.error("Failed to load session",{sessionId:e,error:o.message,stack:o.stack}),this.notifyError(o),o}}async disconnect(){if(this.connected)try{this.abortController&&(this.abortController.abort(),this.abortController=null),this.sseAbortController&&(this.sseAbortController.abort(),this.sseAbortController=null),this.connected=!1,this.currentSessionId=null,this.messageQueue=[],this.chunkResolvers=[],this.streamComplete=!1,this.reconnecting=!1,this.reconnectAttempts=0}catch(e){const n=e instanceof Error?e:new Error(String(e));throw this.notifyError(n),n}}async send(e){if(!this.connected||!this.currentSessionId)throw new Error("Transport not connected");try{this.streamComplete=!1,this.messageQueue=[];const n=e.content.filter(d=>d.type==="text").map(d=>d.text).join(`
4
- `),o={sessionId:this.currentSessionId,prompt:[{type:"text",text:n}]},a=await this.sendRpcRequest("session/prompt",o);j.debug("Prompt sent",{promptResponse:a}),this.streamComplete=!0;const l=this.chunkResolvers.shift();l?l({id:this.currentSessionId||"unknown",role:"assistant",contentDelta:{type:"text",text:""},isComplete:!0}):this.messageQueue.push({id:this.currentSessionId||"unknown",role:"assistant",contentDelta:{type:"text",text:""},isComplete:!0})}catch(n){this.streamComplete=!0;const o=n instanceof Error?n:new Error(String(n));throw this.notifyError(o),o}}async*receive(){this.isReceivingMessages=!0;try{for(;!this.streamComplete;)if(this.messageQueue.length>0){const e=this.messageQueue.shift();if(e&&(yield e,e.isComplete))return}else{const e=await new Promise(n=>{this.chunkResolvers.push(n)});if(e.isComplete){yield e;return}else yield e}for(;this.messageQueue.length>0;){const e=this.messageQueue.shift();e&&(yield e)}yield{id:this.currentSessionId||"unknown",role:"assistant",contentDelta:{type:"text",text:""},isComplete:!0}}finally{this.isReceivingMessages=!1}}isConnected(){return this.connected}onSessionUpdate(e){return this.sessionUpdateCallbacks.add(e),()=>{this.sessionUpdateCallbacks.delete(e)}}onError(e){return this.errorCallbacks.add(e),()=>{this.errorCallbacks.delete(e)}}async sendRpcRequest(e,n){const a={jsonrpc:"2.0",id:this.generateRequestId(),method:e,params:n};j.debug("Sending RPC request",{method:e,params:n,request:a});const l={"Content-Type":"application/json",...this.options.headers},d=this.options.timeout??600*1e3,p=new AbortController,u=setTimeout(()=>p.abort(),d);try{const r=await fetch(`${this.options.baseUrl}/rpc`,{method:"POST",headers:l,body:JSON.stringify(a),signal:p.signal});if(clearTimeout(u),!r.ok){const m=await r.text();throw new Error(`HTTP ${r.status}: ${m}`)}const c=await r.json();if(c.error)throw new Error(`ACP error: ${c.error.message||JSON.stringify(c.error)}`);return c.result||c}catch(r){throw clearTimeout(u),r instanceof Error&&r.name==="AbortError"?new Error(`Request timeout after ${d}ms`):r}}async connectSSE(){if(!this.currentSessionId)throw new Error("Cannot connect SSE without a session ID");const e=`${this.options.baseUrl}/events`,n={"X-Session-ID":this.currentSessionId,...this.options.headers};this.sseAbortController=new AbortController;try{const o=await fetch(e,{method:"GET",headers:n,signal:this.sseAbortController.signal});if(!o.ok)throw new Error(`SSE connection failed: HTTP ${o.status}`);if(!o.body)throw new Error("Response body is null");j.debug("SSE connection opened"),this.reconnectAttempts=0,this.reconnectDelay=1e3;const a=o.body.getReader(),l=new TextDecoder;let d="";(async()=>{try{for(;;){const{done:p,value:u}=await a.read();if(p){j.debug("SSE stream closed by server"),this.connected&&await this.handleSSEDisconnect();break}d+=l.decode(u,{stream:!0});const r=d.split(`
5
- `);d=r.pop()||"";let c={event:"message",data:""};for(const m of r)m.startsWith("event:")?c.event=m.substring(6).trim():m.startsWith("data:")?c.data=m.substring(5).trim():m===""&&(c.event==="message"&&c.data&&this.handleSSEMessage(c.data),c={event:"message",data:""})}}catch(p){if(p instanceof Error&&p.name==="AbortError"){j.debug("SSE stream aborted");return}j.error("Error reading SSE stream",{error:p}),this.connected&&!this.reconnecting&&await this.handleSSEDisconnect()}})()}catch(o){throw j.error("SSE connection error",{error:o}),o}}async handleSSEDisconnect(){if(this.reconnecting||!this.connected)return;if(this.reconnecting=!0,this.sseAbortController&&(this.sseAbortController.abort(),this.sseAbortController=null),this.reconnectAttempts>=this.maxReconnectAttempts){const n=new Error(`SSE reconnection failed after ${this.maxReconnectAttempts} attempts`);this.notifyError(n),this.connected=!1,this.reconnecting=!1;return}this.reconnectAttempts++;const e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),32e3);j.debug("SSE reconnecting",{delay:e,attempt:this.reconnectAttempts,maxAttempts:this.maxReconnectAttempts}),await new Promise(n=>setTimeout(n,e));try{await this.connectSSE(),j.info("SSE reconnected successfully"),this.reconnecting=!1}catch(n){j.error("SSE reconnection failed",{error:n}),this.reconnecting=!1}}handleSSEMessage(e){try{const n=JSON.parse(e);j.debug("Received SSE message",{message:n});const o=cs.safeParse(n);if(!o.success){j.error("Invalid ACP message from SSE",{issues:o.error.issues});return}const a=o.data;j.debug("Parsed ACP message",{method:"method"in a?a.method:"(no method)"}),"method"in a&&a.method==="session/update"&&(j.debug("Received session/update notification"),"params"in a&&a.params&&(j.debug("Calling handleSessionNotification",{params:a.params}),this.handleSessionNotification(a.params)))}catch(n){j.error("Error parsing SSE message",{error:n}),this.notifyError(n instanceof Error?n:new Error(String(n)))}}handleSessionNotification(e){j.debug("handleSessionNotification called",{params:e});const o=e.update,a=this.currentSessionId||e.sessionId;if(j.debug("Update session type",{sessionUpdate:o?.sessionUpdate}),o?.sessionUpdate==="tool_call"){j.debug("Tool call notification",{tokenUsage:o.tokenUsage});const l=o._meta&&typeof o._meta=="object"&&"messageId"in o._meta?String(o._meta.messageId):void 0,d={id:o.toolCallId??"",title:o.title??"",kind:o.kind||"other",status:o.status||"pending",locations:o.locations,rawInput:o.rawInput,tokenUsage:o.tokenUsage,content:o.content?.map(u=>{if(typeof u!="object"||u===null)return{type:"text",text:""};const r=u;if(r.type==="content"&&typeof r.content=="object"&&r.content!==null){const c=r.content;if(c.type==="text")return{type:"content",content:{type:"text",text:typeof c.text=="string"?c.text:""}}}return r.type==="text"?{type:"text",text:typeof r.text=="string"?r.text:""}:r.type==="diff"?{type:"diff",path:typeof r.path=="string"?r.path:"",oldText:typeof r.oldText=="string"?r.oldText:"",newText:typeof r.newText=="string"?r.newText:"",line:typeof r.line=="number"?r.line:null}:r.type==="terminal"?{type:"terminal",terminalId:typeof r.terminalId=="string"?r.terminalId:""}:{type:"text",text:""}}),startedAt:Date.now()},p={type:"tool_call",sessionId:a,status:"active",toolCall:d,messageId:l};this.notifySessionUpdate(p)}else if(o?.sessionUpdate==="tool_call_update"){const l=o._meta&&typeof o._meta=="object"&&"messageId"in o._meta?String(o._meta.messageId):void 0,d={id:o.toolCallId??"",status:o.status,locations:o.locations,rawOutput:o.rawOutput,tokenUsage:o.tokenUsage,content:o.content?.map(u=>{if(typeof u!="object"||u===null)return{type:"text",text:""};const r=u;if(r.type==="content"&&typeof r.content=="object"&&r.content!==null){const c=r.content;if(c.type==="text")return{type:"content",content:{type:"text",text:typeof c.text=="string"?c.text:""}}}return r.type==="text"?{type:"text",text:typeof r.text=="string"?r.text:""}:r.type==="diff"?{type:"diff",path:typeof r.path=="string"?r.path:"",oldText:typeof r.oldText=="string"?r.oldText:"",newText:typeof r.newText=="string"?r.newText:"",line:typeof r.line=="number"?r.line:null}:r.type==="terminal"?{type:"terminal",terminalId:typeof r.terminalId=="string"?r.terminalId:""}:{type:"text",text:""}}),error:o.error,completedAt:o.status==="completed"||o.status==="failed"?Date.now():void 0},p={type:"tool_call_update",sessionId:a,status:"active",toolCallUpdate:d,messageId:l};j.debug("Notifying tool_call_update session update",{sessionUpdate:p}),this.notifySessionUpdate(p)}else if(o&&"sessionUpdate"in o&&o.sessionUpdate==="tool_output"){const l=o,d=l._meta&&typeof l._meta=="object"&&"messageId"in l._meta?String(l._meta.messageId):void 0,p={id:l.toolCallId??"",rawOutput:l.rawOutput,content:l.content?.map(r=>{if(typeof r!="object"||r===null)return{type:"text",text:""};const c=r;if(c.type==="content"&&typeof c.content=="object"&&c.content!==null){const m=c.content;if(m.type==="text")return{type:"content",content:{type:"text",text:typeof m.text=="string"?m.text:""}}}return c.type==="text"?{type:"text",text:typeof c.text=="string"?c.text:""}:c.type==="diff"?{type:"diff",path:typeof c.path=="string"?c.path:"",oldText:typeof c.oldText=="string"?c.oldText:"",newText:typeof c.newText=="string"?c.newText:"",line:typeof c.line=="number"?c.line:null}:c.type==="terminal"?{type:"terminal",terminalId:typeof c.terminalId=="string"?c.terminalId:""}:{type:"text",text:""}})},u={type:"tool_call_update",sessionId:a,status:"active",toolCallUpdate:p,messageId:d};j.debug("Notifying tool_output as tool_call_update",{sessionUpdate:u}),this.notifySessionUpdate(u)}else if(o?.sessionUpdate==="agent_message_chunk"){const l={type:"generic",sessionId:a,status:"active"},d=o._meta&&typeof o._meta=="object"&&"tokenUsage"in o._meta?o._meta.tokenUsage:void 0;j.debug("Agent message chunk",{tokenUsage:d});const p=o.content;if(p&&typeof p=="object"){const u=p;let r=null;if(u.type==="text"&&typeof u.text=="string"&&(r={id:e.sessionId,role:"assistant",contentDelta:{type:"text",text:u.text},tokenUsage:d,isComplete:!1}),r){const c=this.chunkResolvers.shift();c?c(r):this.messageQueue.push(r)}if(r&&typeof u.text=="string"&&!this.isReceivingMessages){const c={type:"generic",sessionId:a,status:"active",message:{id:`msg_${Date.now()}_assistant`,role:"assistant",content:[{type:"text",text:u.text}],timestamp:new Date().toISOString()}};this.notifySessionUpdate(c)}}this.notifySessionUpdate(l)}else if(o?.sessionUpdate==="user_message_chunk"){j.debug("Received user_message_chunk",{update:o});const l=o.content;if(l&&typeof l=="object"){const d=l;if(d.type==="text"&&typeof d.text=="string"){const p={type:"generic",sessionId:a,status:"active",message:{id:`msg_${Date.now()}_user`,role:"user",content:[{type:"text",text:d.text}],timestamp:new Date().toISOString()}};j.debug("Notifying session update for user message"),this.notifySessionUpdate(p)}}}else{const l={type:"generic",sessionId:a,status:"active"};this.notifySessionUpdate(l)}}generateRequestId(){return`req-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}notifySessionUpdate(e){for(const n of this.sessionUpdateCallbacks)try{n(e)}catch(o){j.error("Error in session update callback",{error:o})}}notifyError(e){for(const n of this.errorCallbacks)try{n(e)}catch(o){j.error("Error in error callback",{error:o})}}}class Bs{constructor(){throw new Error("StdioTransport is not available in the browser. Use HttpTransport or WebSocketTransport instead.")}async connect(){throw new Error("StdioTransport not available in browser")}async disconnect(){}async send(){throw new Error("StdioTransport not available in browser")}async*receive(){throw new Error("StdioTransport not available in browser")}isConnected(){return!1}onSessionUpdate(){return()=>{}}onError(){return()=>{}}}class Ws{ws=null;connected=!1;sessionUpdateCallbacks=new Set;errorCallbacks=new Set;constructor(e){}async connect(){throw new Error("WebSocketTransport not yet implemented. Waiting for HTTP ACP server.")}async disconnect(){this.ws&&(this.ws.close(),this.ws=null),this.connected=!1}async send(e){throw!this.connected||!this.ws?new Error("Transport not connected"):new Error("WebSocketTransport not yet implemented. Waiting for HTTP ACP server.")}async*receive(){throw new Error("WebSocketTransport not yet implemented. Waiting for HTTP ACP server.")}isConnected(){return this.connected}onSessionUpdate(e){return this.sessionUpdateCallbacks.add(e),()=>{this.sessionUpdateCallbacks.delete(e)}}onError(e){return this.errorCallbacks.add(e),()=>{this.errorCallbacks.delete(e)}}}const pe=$("acp-client","debug");class Vs{config;transport;sessions=new Map;currentSessionId=null;sessionUpdateHandlers=new Set;errorHandlers=new Set;constructor(e){this.config=e,this.transport=this.createTransport(),this.setupTransportListeners(),e.autoConnect&&this.connect().catch(n=>{pe.error("Failed to auto-connect",{error:n instanceof Error?n.message:String(n)})})}async connect(){await this.transport.connect()}async disconnect(){await this.transport.disconnect(),this.currentSessionId=null}isConnected(){return this.transport.isConnected()}async startSession(e){const n="currentSessionId"in this.transport?this.transport.currentSessionId:void 0;if(n){const d=new Date().toISOString(),p={id:n,status:"connected",config:e?{...e,agentPath:e.agentPath||""}:{agentPath:""},messages:[],metadata:{startedAt:d}};return this.sessions.set(n,p),this.currentSessionId=n,n}const o=this.generateSessionId(),a=new Date().toISOString(),l={id:o,status:"connecting",config:e?{...e,agentPath:e.agentPath||""}:{agentPath:""},messages:[],metadata:{startedAt:a}};return this.sessions.set(o,l),this.currentSessionId=o,this.updateSessionStatus(o,"connected"),o}async loadSession(e,n){if(!this.transport.loadSession)throw new Error("Transport does not support loading sessions");const o=new Date().toISOString(),a={id:e,status:"connecting",config:n?{...n,agentPath:n.agentPath||""}:{agentPath:""},messages:[],metadata:{startedAt:o}};return this.sessions.set(e,a),this.currentSessionId=e,await this.transport.loadSession(e),this.updateSessionStatus(e,"connected"),e}async sendMessage(e,n){const o=n||this.currentSessionId;if(!o)throw new Error("No active session. Start a session first.");if(!this.transport.isConnected())throw new Error("Transport not connected");const a=this.sessions.get(o);if(!a)throw new Error(`Session ${o} not found`);const l={id:this.generateMessageId(),role:"user",content:[{type:"text",text:e}],timestamp:new Date().toISOString()};a.messages.push(l),this.updateSessionStatus(o,"active"),await this.transport.send(l)}async*receiveMessages(){if(!this.transport.isConnected())throw new Error("Transport not connected");yield*this.transport.receive()}getSession(e){return this.sessions.get(e)}getCurrentSession(){return this.currentSessionId?this.sessions.get(this.currentSessionId):void 0}getAllSessions(){return Array.from(this.sessions.values())}onSessionUpdate(e){return this.sessionUpdateHandlers.add(e),()=>{this.sessionUpdateHandlers.delete(e)}}onError(e){return this.errorHandlers.add(e),()=>{this.errorHandlers.delete(e)}}createTransport(){switch(this.config.type){case"stdio":return new Bs(this.config.options);case"http":return new $s(this.config.options);case"websocket":return new Ws(this.config.options);default:throw new Error(`Unknown transport type: ${this.config.type}`)}}setupTransportListeners(){this.transport.onSessionUpdate(e=>{this.handleSessionUpdate(e)}),this.transport.onError(e=>{this.handleError(e)})}handleSessionUpdate(e){if(e.sessionId){const n=this.sessions.get(e.sessionId);n&&(e.status&&(n.status=e.status),e.message&&n.messages.push(e.message),e.error&&(n.error=e.error))}for(const n of this.sessionUpdateHandlers)try{n(e)}catch(o){pe.error("Error in session update handler",{error:o instanceof Error?o.message:String(o)})}}handleError(e){for(const n of this.errorHandlers)try{n(e)}catch(o){pe.error("Error in error handler",{error:o instanceof Error?o.message:String(o)})}}updateSessionStatus(e,n){const o=this.sessions.get(e);o&&(o.status=n,this.handleSessionUpdate({sessionId:e,status:n}))}generateSessionId(){return`session_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}generateMessageId(){return`msg_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}}const q=$("acp-client-hook");function qs(s){const[e,n]=i.useState(null),[o,a]=i.useState(null),[l,d]=i.useState(null);return i.useEffect(()=>{const u=new URLSearchParams(window.location.search).get("session");u&&(q.info("Session ID found in URL",{sessionId:u}),d(u));try{q.info("Initializing ACP client",{serverUrl:s.serverUrl});const r=new Vs({type:"http",options:{baseUrl:s.serverUrl}});return n(r),q.info("ACP client initialized successfully"),()=>{q.debug("Disconnecting ACP client"),r.disconnect().catch(c=>{q.error("Failed to disconnect ACP client",{error:c instanceof Error?c.message:String(c)})})}}catch(r){const c=r instanceof Error?r.message:"Failed to initialize ACP client";a(c),q.error("Failed to initialize ACP client",{error:r instanceof Error?r.message:String(r),stack:r instanceof Error?r.stack:void 0});return}},[s.serverUrl]),{client:e,error:o,sessionId:l}}const dt=H(["pending","in_progress","completed","failed"]),Qs=H(["read","edit","delete","move","search","execute","think","fetch","switch_mode","other"]),ut=k({path:y(),line:E().nullable().optional()}),he=k({inputTokens:E().optional(),outputTokens:E().optional(),totalTokens:E().optional()}),pt=Re("type",[k({type:D("content"),content:k({type:D("text"),text:y()})}),k({type:D("text"),text:y()}),k({type:D("diff"),path:y(),oldText:y(),newText:y(),line:E().nullable().optional()}),k({type:D("terminal"),terminalId:y()})]),mt=k({id:y(),title:y(),kind:Qs,status:dt,contentPosition:E().optional(),locations:R(ut).optional(),rawInput:L(y(),z()).optional(),rawOutput:L(y(),z()).optional(),content:R(pt).optional(),error:y().optional(),startedAt:E().optional(),completedAt:E().optional(),tokenUsage:he.optional()}),Gs=k({id:y(),status:dt.optional(),locations:R(ut).optional(),rawOutput:L(y(),z()).optional(),content:R(pt).optional(),error:y().optional(),completedAt:E().optional(),tokenUsage:he.optional()});function Ce(s,e){return{...s,status:e.status??s.status,locations:e.locations??s.locations,rawOutput:e.rawOutput??s.rawOutput,content:e.content?[...s.content??[],...e.content]:s.content,error:e.error??s.error,completedAt:e.completedAt??s.completedAt,tokenUsage:e.tokenUsage??s.tokenUsage}}const Q=$("chat-store","debug"),T=ds(s=>({connectionStatus:"disconnected",sessionId:null,error:null,messages:[],isStreaming:!1,streamingStartTime:null,toolCalls:{},totalBilled:{inputTokens:0,outputTokens:0,totalTokens:0},currentContext:{inputTokens:0,outputTokens:0,totalTokens:0},currentModel:"claude-sonnet-4-5-20250929",tokenDisplayMode:"context",logs:[],activeTab:"chat",input:{value:"",isSubmitting:!1,attachedFiles:[]},setConnectionStatus:e=>s({connectionStatus:e}),setSessionId:e=>s({sessionId:e}),setError:e=>s({error:e}),addMessage:e=>s(n=>({messages:[...n.messages,e]})),updateMessage:(e,n)=>s(o=>{const a=o.messages.find(r=>r.id===e);let l=o.totalBilled,d=o.currentContext,p=n;if(n.tokenUsage){const r=a?.tokenUsage;Q.debug("updateMessage: incoming tokenUsage",{incoming:n.tokenUsage,existing:r});const c={inputTokens:Math.max(n.tokenUsage.inputTokens??0,r?.inputTokens??0),outputTokens:Math.max(n.tokenUsage.outputTokens??0,r?.outputTokens??0),totalTokens:Math.max(n.tokenUsage.inputTokens??0,r?.inputTokens??0)+Math.max(n.tokenUsage.outputTokens??0,r?.outputTokens??0)};Q.debug("updateMessage: merged tokenUsage",{merged:c}),p={...n,tokenUsage:c};const m=c.inputTokens-(r?.inputTokens??0),x=c.outputTokens-(r?.outputTokens??0),w=c.totalTokens-(r?.totalTokens??0);l={inputTokens:o.totalBilled.inputTokens+m,outputTokens:o.totalBilled.outputTokens+x,totalTokens:o.totalBilled.totalTokens+w},d={inputTokens:c.inputTokens,outputTokens:o.currentContext.outputTokens+x,totalTokens:c.totalTokens}}const u=o.messages.map(r=>r.id===e?{...r,...p}:r);if(n.tokenUsage&&p.tokenUsage){const r=a?.tokenUsage,c=p.tokenUsage,m=(c.inputTokens??0)-(r?.inputTokens??0),x=(c.outputTokens??0)-(r?.outputTokens??0),w=(c.totalTokens??0)-(r?.totalTokens??0),g=u.filter(b=>b.tokenUsage).map(b=>({id:b.id,role:b.role,tokens:b.tokenUsage})),h=u.reduce((b,N)=>({inputTokens:b.inputTokens+(N.tokenUsage?.inputTokens??0),outputTokens:b.outputTokens+(N.tokenUsage?.outputTokens??0),totalTokens:b.totalTokens+(N.tokenUsage?.totalTokens??0)}),{inputTokens:0,outputTokens:0,totalTokens:0}),v=h.inputTokens===l.inputTokens&&h.outputTokens===l.outputTokens&&h.totalTokens===l.totalTokens;Q.debug("updateMessage: tokenUsage update",{messageId:e,updates:n.tokenUsage,existing:r,messageMax:c,delta:{inputDelta:m,outputDelta:x,totalDelta:w},totalBilled:l,currentContext:d,actualSum:h,billedCorrect:v?"✅":"❌",messageCount:u.length,messagesWithTokens:g.length,breakdown:g})}return{messages:u,totalBilled:l,currentContext:d}}),clearMessages:()=>s({messages:[]}),setIsStreaming:e=>s({isStreaming:e}),setStreamingStartTime:e=>s({streamingStartTime:e}),addToolCall:(e,n)=>s(o=>({toolCalls:{...o.toolCalls,[e]:[...o.toolCalls[e]||[],n]}})),addToolCallToCurrentMessage:e=>s(n=>{const o=n.messages.findLastIndex(u=>u.role==="assistant");if(o===-1){Q.debug("No assistant message found, creating one for tool call at position 0");const u={id:`msg_${Date.now()}_assistant`,role:"assistant",content:"",timestamp:new Date().toISOString(),isStreaming:!1,toolCalls:[{...e,contentPosition:0}]};return{messages:[...n.messages,u]}}const a=[...n.messages],l=a[o];if(!l)return n;const d=l.content.length,p={...e,contentPosition:d};return a[o]={...l,toolCalls:[...l.toolCalls||[],p]},{messages:a}}),updateToolCallInCurrentMessage:e=>s(n=>{const o=n.messages.findLastIndex(c=>c.role==="assistant");if(o===-1)return Q.warn("No assistant message found to update tool call in"),n;const a=[...n.messages],l=a[o];if(!l)return n;const d=l.toolCalls||[],p=d.findIndex(c=>c.id===e.id);if(p===-1)return Q.warn(`Tool call ${e.id} not found in message`),n;const u=d[p];if(!u)return n;const r=[...d];return r[p]=Ce(u,e),a[o]={...l,toolCalls:r},{messages:a}}),updateToolCall:(e,n)=>s(o=>{const a=o.toolCalls[e]||[],l=a.findIndex(u=>u.id===n.id);if(l===-1)return o;const d=a[l];if(!d)return o;const p=[...a];return p[l]=Ce(d,n),{toolCalls:{...o.toolCalls,[e]:p}}}),setInputValue:e=>s(n=>({input:{...n.input,value:e}})),setInputSubmitting:e=>s(n=>({input:{...n.input,isSubmitting:e}})),addFileAttachment:e=>s(n=>({input:{...n.input,attachedFiles:[...n.input.attachedFiles,e]}})),removeFileAttachment:e=>s(n=>({input:{...n.input,attachedFiles:n.input.attachedFiles.filter((o,a)=>a!==e)}})),clearInput:()=>s(e=>({input:{value:"",isSubmitting:!1,attachedFiles:[]}})),addTokenUsage:e=>s(n=>({totalBilled:{inputTokens:n.totalBilled.inputTokens+(e.inputTokens??0),outputTokens:n.totalBilled.outputTokens+(e.outputTokens??0),totalTokens:n.totalBilled.totalTokens+(e.totalTokens??0)},currentContext:{inputTokens:e.inputTokens??n.currentContext.inputTokens,outputTokens:n.currentContext.outputTokens+(e.outputTokens??0),totalTokens:(e.inputTokens??n.currentContext.inputTokens)+(n.currentContext.outputTokens+(e.outputTokens??0))}})),setCurrentModel:e=>s({currentModel:e}),resetTokens:()=>s({totalBilled:{inputTokens:0,outputTokens:0,totalTokens:0},currentContext:{inputTokens:0,outputTokens:0,totalTokens:0}}),cycleTokenDisplayMode:()=>s(e=>{const n=["context","input","output"],a=(n.indexOf(e.tokenDisplayMode)+1)%n.length,l=n[a];return l?{tokenDisplayMode:l}:e}),addLog:e=>s(n=>({logs:[...n.logs,e]})),clearLogs:()=>s({logs:[]}),setActiveTab:e=>s({activeTab:e})})),me=$("use-chat-messages","debug");function ft(s){const e=T(c=>c.messages),n=T(c=>c.isStreaming),o=T(c=>c.sessionId),a=T(c=>c.setIsStreaming),l=T(c=>c.setStreamingStartTime),d=T(c=>c.addMessage),p=T(c=>c.updateMessage),u=T(c=>c.setError),r=i.useCallback(async c=>{if(!s){me.error("No client available"),u("No client available");return}if(!o){me.error("No active session"),u("No active session");return}try{const m=Date.now();a(!0),l(m);const x={id:`msg_${Date.now()}_user`,role:"user",content:c,timestamp:new Date().toISOString(),isStreaming:!1};d(x);const w=`msg_${Date.now()}_assistant`,g={id:w,role:"assistant",content:"",timestamp:new Date().toISOString(),isStreaming:!0,streamingStartTime:m};d(g);const h=s.receiveMessages();s.sendMessage(c,o).catch(b=>{const N=b instanceof Error?b.message:String(b);u(N),a(!1),l(null)});let v="";for await(const b of h)if(b.tokenUsage&&me.debug("chunk.tokenUsage",{tokenUsage:b.tokenUsage}),b.isComplete){p(w,{content:v,isStreaming:!1,streamingStartTime:void 0,...b.tokenUsage?{tokenUsage:b.tokenUsage}:{}}),a(!1),l(null);break}else b.contentDelta.type==="text"&&(v+=b.contentDelta.text,p(w,{content:v,...b.tokenUsage?{tokenUsage:b.tokenUsage}:{}}),await new Promise(N=>setTimeout(N,16)))}catch(m){const x=m instanceof Error?m.message:String(m);u(x),a(!1),l(null)}},[s,o,d,p,a,l,u]);return{messages:e,isStreaming:n,sendMessage:r}}const Ks=$("use-chat-input","debug");function Xs(s){const e=T(m=>m.input),n=T(m=>m.setInputValue),o=T(m=>m.setInputSubmitting),a=T(m=>m.addFileAttachment),l=T(m=>m.removeFileAttachment),{sendMessage:d}=ft(s),p=i.useCallback(m=>{n(m)},[n]),u=i.useCallback(async()=>{if(!e.value.trim()||e.isSubmitting)return;const m=e.value;n(""),o(!0);try{await d(m)}catch(x){Ks.error("Failed to send message",{error:x instanceof Error?x.message:String(x)})}finally{o(!1)}},[e,n,o,d]),r=i.useCallback(m=>{a(m)},[a]),c=i.useCallback(m=>{l(m)},[l]);return{value:e.value,isSubmitting:e.isSubmitting,attachedFiles:e.attachedFiles,onChange:p,onSubmit:u,onAttachFile:r,onRemoveFile:c}}const B=$("use-chat-session","debug");function Js(s,e){const n=T(g=>g.connectionStatus),o=T(g=>g.sessionId),a=T(g=>g.setConnectionStatus),l=T(g=>g.setSessionId),d=T(g=>g.setError),p=T(g=>g.clearMessages),u=T(g=>g.resetTokens),r=T(g=>g.addMessage);i.useEffect(()=>s?s.onSessionUpdate(h=>{if(h.message&&(B.debug("Session update with message",{message:h.message}),h.message.role!=="tool")){const v=h.message.content.map(S=>S.type==="text"?S.text:"").join(""),b=T.getState().messages,N=b[b.length-1];if(h.message.role==="assistant"&&N?.role==="assistant"&&N.content===""&&v)B.debug("Appending text to existing assistant message"),T.getState().updateMessage(N.id,{content:N.content+v});else{const S={id:h.message.id,role:h.message.role,content:v,timestamp:h.message.timestamp,isStreaming:!1};r(S)}}}):void 0,[s,r]);const c=i.useCallback(async()=>{if(!s){d("No client available");return}try{a("connecting"),d(null),await s.connect(),a("connected")}catch(g){B.error("Failed to connect",{error:g instanceof Error?g.message:String(g)});const h=g instanceof Error?g.message:String(g);d(h),a("error")}},[s,a,d]),m=i.useCallback(async g=>{if(!s){d("No client available");return}try{a("connecting"),d(null);const h=await s.loadSession(g);l(h),a("connected"),u(),B.info("Session loaded successfully",{sessionId:h})}catch(h){B.warn("Failed to load session, creating new one instead",{sessionId:g,error:h instanceof Error?h.message:String(h)});try{await c();const v=await s.startSession();if(l(v),p(),u(),typeof window<"u"){const b=new URL(window.location.href);b.searchParams.set("session",v),window.history.replaceState({},"",b.toString())}B.info("Created new session after failed load",{sessionId:v})}catch(v){const b=v instanceof Error?v.message:String(v);d(`Failed to load or create session: ${b}`),a("error")}}},[s,a,l,d,p,u,c]),x=i.useCallback(async()=>{if(!s){d("No client available");return}try{const g=await s.startSession();if(l(g),p(),u(),typeof window<"u"){const h=new URL(window.location.href);h.searchParams.set("session",g),window.history.pushState({},"",h.toString())}}catch(g){const h=g instanceof Error?g.message:String(g);d(h)}},[s,l,d,p,u]),w=i.useCallback(async()=>{if(s)try{await s.disconnect(),a("disconnected"),l(null)}catch(g){const h=g instanceof Error?g.message:String(g);d(h)}},[s,a,l,d]);return i.useEffect(()=>{!s||n!=="disconnected"||(e?(B.info("Loading initial session from URL",{sessionId:e}),m(e)):c())},[s,n,e,c,m]),i.useEffect(()=>{n==="connected"&&!o&&!e&&x()},[n,o,e,x]),{connectionStatus:n,sessionId:o,connect:c,loadSession:m,startSession:x,disconnect:w}}function Ys(s){const e=T(d=>d.toolCalls),n=T(d=>d.addToolCall),o=T(d=>d.updateToolCall),a=T(d=>d.addToolCallToCurrentMessage),l=T(d=>d.updateToolCallInCurrentMessage);return i.useEffect(()=>{if(!s)return;const d=s.onSessionUpdate(p=>{p.type==="tool_call"?(n(p.sessionId,p.toolCall),a(p.toolCall)):p.type==="tool_call_update"&&(o(p.sessionId,p.toolCallUpdate),l(p.toolCallUpdate))});return()=>{d()}},[s,n,o,a,l]),{toolCalls:e,getToolCallsForSession:d=>{const p=e[d];return p&&p.length>0?p:Object.values(e).flat()}}}const Zs=k({id:y(),role:H(["user","assistant","system"]),content:y(),timestamp:ne(),isStreaming:X().default(!1),streamingStartTime:E().optional(),metadata:L(y(),z()).optional(),toolCalls:R(mt).optional(),tokenUsage:he.optional()}),en=k({value:y(),isSubmitting:X(),attachedFiles:R(k({name:y(),path:y(),size:E(),mimeType:y()}))});k({sessionId:y().nullable(),isConnected:X(),isStreaming:X(),messages:R(Zs),input:en,error:y().nullable()});H(["disconnected","connecting","connected","error"]);const tn=k({name:y(),description:y().optional(),parameters:L(y(),z()).optional()}),sn=k({name:y(),description:y(),parameters:L(y(),z()),required:R(y()).optional()}),nn=k({name:y(),version:y().optional(),description:y().optional(),author:y().optional(),capabilities:R(tn).optional(),tools:R(sn).optional(),supportedFormats:R(y()).optional()}),on=H(["initializing","ready","busy","error","terminated"]);k({status:on,info:nn.optional(),pid:E().optional(),error:y().optional(),uptime:E().optional()});const gt=H(["user","assistant","system","tool"]),rn=H(["text","image","file","tool_call","tool_result"]),Y=k({type:rn}),an=Y.extend({type:D("text"),text:y()}),ln=Y.extend({type:D("image"),url:y().url().optional(),data:y().optional(),mimeType:y().optional()}),cn=Y.extend({type:D("file"),name:y(),path:y().optional(),url:y().url().optional(),mimeType:y(),size:E().optional()}),dn=Y.extend({type:D("tool_call"),id:y(),name:y(),arguments:L(y(),z())}),un=Y.extend({type:D("tool_result"),callId:y(),result:z(),error:y().optional()}),ht=Re("type",[an,ln,cn,dn,un]),xt=k({id:y(),role:gt,content:R(ht),timestamp:ne(),metadata:L(y(),z()).optional()});k({id:y(),role:gt,contentDelta:ht,isComplete:X(),tokenUsage:k({inputTokens:E().optional(),outputTokens:E().optional(),totalTokens:E().optional()}).optional()});const bt=H(["idle","connecting","connected","active","streaming","error","disconnected"]),pn=k({agentPath:y(),agentArgs:R(y()).optional(),environment:L(y(),y()).optional(),workingDirectory:y().optional(),timeout:E().optional()}),mn=k({agentName:y().optional(),agentVersion:y().optional(),capabilities:R(y()).optional(),startedAt:ne(),lastActivityAt:ne().optional()});k({id:y(),status:bt,config:pn,metadata:mn.optional(),messages:R(xt),error:y().optional()});const oe=k({sessionId:y(),status:bt.optional(),message:xt.optional(),error:y().optional()}),fn=oe.extend({type:D("tool_call"),toolCall:mt,messageId:y().optional()}),gn=oe.extend({type:D("tool_call_update"),toolCallUpdate:Gs,messageId:y().optional()}),hn=oe.extend({type:D("tool_output"),toolOutput:k({id:y(),content:R(us()).optional(),rawOutput:L(y(),z()).optional()}),messageId:y().optional()}),xn=oe.extend({type:D("generic").optional()});ps([fn,gn,hn,xn]);function f(...s){return ms(fs(s))}const bn=V("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-hover",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive-hover",outline:"border border-input bg-background hover:bg-accent-hover hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary-hover",ghost:"hover:bg-accent-hover hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Z=i.forwardRef(({className:s,variant:e,size:n,asChild:o=!1,...a},l)=>{const d=o?J:"button";return t.jsx(d,{className:f(bn({variant:e,size:n,className:s})),ref:l,...a})});Z.displayName="Button";const yn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("rounded-lg border bg-card text-card-foreground shadow-sm",s),...e}));yn.displayName="Card";const wn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("flex flex-col space-y-1.5 p-6",s),...e}));wn.displayName="CardHeader";const vn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("text-2xl font-semibold leading-none tracking-tight",s),...e}));vn.displayName="CardTitle";const Nn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("text-sm text-muted-foreground",s),...e}));Nn.displayName="CardDescription";const jn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("p-6 pt-0",s),...e}));jn.displayName="CardContent";const Sn=i.forwardRef(({className:s,...e},n)=>t.jsx("div",{ref:n,className:f("flex items-center p-6 pt-0",s),...e}));Sn.displayName="CardFooter";const yt=i.forwardRef(({title:s,description:e,guideUrl:n,guideText:o="Guide",suggestedPrompts:a=[],onPromptClick:l,onGuideClick:d,className:p,...u},r)=>{const c=w=>{l?.(w)},m=()=>{n&&window.open(n,"_blank","noopener,noreferrer"),d?.()},x=[];for(let w=0;w<a.length;w+=2)x.push(a.slice(w,w+2));return t.jsxs("div",{ref:r,className:f("flex flex-col items-start gap-6",p),...u,children:[t.jsx("h3",{className:"text-heading-3 text-text-primary hidden lg:block",children:s}),t.jsx("p",{className:"text-subheading text-text-secondary max-w-prose",children:e}),(n||d)&&t.jsxs("button",{type:"button",onClick:m,className:"flex items-center gap-2 px-3 py-1.5 rounded-lg hover:bg-accent transition-colors",children:[t.jsx("span",{className:"text-sm font-medium leading-normal text-text-primary",children:o}),t.jsx(tt,{className:"size-4 text-text-primary"})]}),a.length>0&&t.jsxs("div",{className:"flex flex-col gap-3 w-full max-w-prompt-container",children:[t.jsx("p",{className:"text-label text-text-tertiary",children:"Suggested Prompts"}),t.jsx("div",{className:"flex flex-col gap-2.5",children:x.map(w=>t.jsx("div",{className:"flex gap-2.5 items-center",children:w.map(g=>t.jsx("button",{type:"button",onClick:()=>c(g),className:"flex-1 flex items-start gap-2 p-3 bg-secondary hover:bg-secondary/80 rounded-2xl transition-colors min-w-0",children:t.jsx("span",{className:"text-base font-normal leading-normal text-text-tertiary truncate",children:g})},g))},w.join("-")))})]})]})});yt.displayName="ChatEmptyState";const wt=i.createContext(void 0),xe=()=>{const s=i.useContext(wt);if(!s)throw new Error("ChatHeader components must be used within ChatHeader.Root");return s},vt=i.forwardRef(({defaultExpanded:s=!1,expanded:e,onExpandedChange:n,className:o,children:a,...l},d)=>{const[p,u]=i.useState(s),r=e??p,c=i.useCallback(g=>{u(g),n?.(g)},[n]),m=i.Children.toArray(a),x=m.find(g=>i.isValidElement(g)&&typeof g.type=="function"&&g.type.displayName==="ChatHeader.ExpandablePanel"),w=m.filter(g=>g!==x);return t.jsxs(wt.Provider,{value:{isExpanded:r,setIsExpanded:c},children:[t.jsx("div",{ref:d,className:f("flex items-center justify-between px-6 py-4",o),...l,children:w}),x]})});vt.displayName="ChatHeader.Root";const Cn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("h1",{ref:o,className:f("m-0 text-xl font-semibold",s),...n,children:e}));Cn.displayName="ChatHeader.Title";const Tn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("flex items-center gap-3",s),...n,children:e}));Tn.displayName="ChatHeader.Actions";const kn=s=>{switch(s){case"connected":return"bg-green-500";case"connecting":return"bg-yellow-500";case"error":return"bg-red-500";default:return"bg-gray-500"}},In=s=>{switch(s){case"connected":return"Connected";case"connecting":return"Connecting...";case"error":return"Connection Error";default:return"No Server"}},En=i.forwardRef(({status:s,statusText:e,className:n,...o},a)=>{const l=e??In(s),d=kn(s);return t.jsxs("div",{ref:a,className:f("flex items-center gap-2",n),...o,children:[t.jsx("div",{className:f("h-2 w-2 rounded-full",d)}),t.jsx("span",{className:"text-sm text-muted-foreground",children:l})]})});En.displayName="ChatHeader.StatusIndicator";const Rn=i.forwardRef(({icon:s,className:e,children:n,onClick:o,...a},l)=>{const{isExpanded:d,setIsExpanded:p}=xe(),u=r=>{p(!d),o?.(r)};return t.jsxs("button",{ref:l,type:"button",onClick:u,className:f("rounded p-1 transition-colors hover:bg-background lg:hidden",e),"aria-label":d?"Collapse header":"Expand header",...a,children:[s&&t.jsx("div",{className:f("transition-transform duration-200",d&&"rotate-180"),children:s}),n]})});Rn.displayName="ChatHeader.Toggle";const Nt=i.forwardRef(({className:s,children:e,...n},o)=>{const{isExpanded:a}=xe();return a?t.jsx("div",{ref:o,className:f("absolute top-full left-0 right-0 z-50 border-b border-border bg-card px-6 py-4 shadow-lg lg:hidden",s),...n,children:e}):null});Nt.displayName="ChatHeader.ExpandablePanel";const jt=i.forwardRef(({commands:s=[],showCommandMenu:e,commandMenuQuery:n,selectedMenuIndex:o,setSelectedMenuIndex:a,setMenuItemCount:l,triggerCounter:d,onChange:p,className:u,...r},c)=>{const m=i.useCallback((w,g)=>{const h=w.toLowerCase(),v=g.toLowerCase();if(!g)return 1;if(h.includes(v))return 1-v.length/h.length;let b=0;for(let N=0;N<h.length&&b<v.length;N++)h[N]===v[b]&&b++;return b===v.length?.5-b/h.length:0},[]),x=i.useMemo(()=>s.map(w=>({...w,score:Math.max(m(w.label,n),w.description?m(w.description,n):0)})).filter(w=>w.score>0).sort((w,g)=>g.score-w.score),[s,n,m]);return i.useEffect(()=>{l(x.length)},[x.length,l]),i.useEffect(()=>{a(0)},[a]),i.useEffect(()=>{d>0&&x[o]&&(x[o].onSelect(),p(""))},[d,x,o,p]),!e||x.length===0?null:t.jsxs("div",{ref:c,className:f("absolute bottom-full left-0 z-50 mb-2 w-full max-w-md","rounded-md border border-border bg-card p-2 shadow-lg",u),...r,children:[t.jsx("div",{className:"text-xs font-semibold text-muted-foreground px-2 py-1",children:"Commands"}),t.jsx("div",{className:"max-h-64 overflow-y-auto",children:x.map((w,g)=>t.jsxs("button",{type:"button",onClick:()=>w.onSelect(),className:f("w-full rounded-sm px-2 py-2 text-left text-sm transition-colors","flex items-start gap-2","hover:bg-muted",g===o&&"bg-muted"),children:[w.icon&&t.jsx("span",{className:"shrink-0 mt-0.5",children:w.icon}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("div",{className:"font-medium",children:w.label}),w.description&&t.jsx("div",{className:"text-xs text-muted-foreground truncate",children:w.description})]})]},w.id))})]})});jt.displayName="ChatInputCommandMenu";const St=i.createContext(void 0),re=()=>{const s=i.useContext(St);if(!s)throw new Error("ChatInput components must be used within ChatInput.Root");return s},Ct=i.forwardRef(({client:s,value:e,onChange:n,onSubmit:o,disabled:a=!1,isSubmitting:l,submitOnEnter:d=!0,className:p,children:u,...r},c)=>{const m=i.useRef(null),x=Xs(s??null),w=T(M=>M.isStreaming),g=x?x.value:e||"",h=x?x.onChange:n||(()=>{}),v=x?x.onSubmit:o||(async()=>{}),b=x?x.isSubmitting||w:l||!1,[N,S]=i.useState(!1),[U,I]=i.useState(""),[A,C]=i.useState(0),[_,F]=i.useState(0),[ce,de]=i.useState(0),Yt=i.useCallback(()=>{de(M=>M+1)},[]),Zt=async M=>{M.preventDefault(),g.trim()&&!b&&!a&&(await v(),setTimeout(()=>{m.current?.focus()},0))},es=M=>{const O=M.target;!(O.tagName==="BUTTON"||O.tagName==="INPUT"||O.tagName==="TEXTAREA"||O.closest("button"))&&m.current&&m.current.focus()},ts=M=>{const O=M.target;!(O.tagName==="BUTTON"||O.tagName==="INPUT"||O.tagName==="TEXTAREA"||O.closest("button"))&&M.key===" "&&(M.preventDefault(),m.current&&m.current.focus())};return i.useEffect(()=>{const M=document.querySelector('textarea[name="chat-input"]');M&&m.current!==M&&(m.current=M)},[]),i.useEffect(()=>{!g&&m.current&&(m.current.style.height="auto",m.current.style.overflowY="hidden")},[g]),t.jsx(St.Provider,{value:{value:g,onChange:h,onSubmit:v,disabled:a,isSubmitting:b,submitOnEnter:d,showCommandMenu:N,setShowCommandMenu:S,commandMenuQuery:U,setCommandMenuQuery:I,selectedMenuIndex:A,setSelectedMenuIndex:C,menuItemCount:_,setMenuItemCount:F,triggerMenuSelect:Yt,triggerCounter:ce},children:t.jsx("form",{ref:c,onSubmit:Zt,onClick:es,onKeyDown:ts,className:f("relative w-full divide-y rounded-xl border bg-background shadow-md",p),...r,children:u})})});Ct.displayName="ChatInput.Root";const Tt=i.forwardRef(({asChild:s=!1,className:e,onKeyDown:n,children:o,...a},l)=>{const{value:d,onChange:p,onSubmit:u,disabled:r,isSubmitting:c,submitOnEnter:m,showCommandMenu:x,setShowCommandMenu:w,setCommandMenuQuery:g,setSelectedMenuIndex:h,menuItemCount:v,triggerMenuSelect:b}=re(),N=i.useRef(null),A={ref:i.useCallback(C=>{N.current=C,typeof l=="function"?l(C):l&&(l.current=C)},[l]),name:"chat-input",value:d,onChange:C=>{const _=C.target.value;if(p(_),_.startsWith("/")&&!_.includes(`
6
- `)){w(!0);const de=_.slice(1);g(de)}else w(!1),g("");const F=N.current;if(!F)return;F.style.height="auto";const ce=Math.min(F.scrollHeight,164);F.style.height=`${ce}px`,F.scrollHeight>164?F.style.overflowY="auto":F.style.overflowY="hidden"},onKeyDown:C=>{if(x&&v>0){if(C.key==="ArrowDown"){C.preventDefault(),h(_=>(_+1)%v);return}else if(C.key==="ArrowUp"){C.preventDefault(),h(_=>(_-1+v)%v);return}else if(C.key==="Enter"&&!C.shiftKey){C.preventDefault(),b();return}else if(C.key==="Escape"){C.preventDefault(),w(!1),g("");return}}m&&C.key==="Enter"&&!C.shiftKey&&(d.trim()&&!c&&!r?(C.preventDefault(),u()):(c||r)&&C.preventDefault()),n?.(C)},disabled:r,...a};return s&&i.isValidElement(o)?i.cloneElement(o,A):t.jsx("textarea",{...A,className:f("w-full resize-none rounded-none border-none p-4 shadow-none","outline-none ring-0 field-sizing-content max-h-[6lh]","bg-transparent dark:bg-transparent focus-visible:ring-0","text-sm placeholder:text-muted-foreground","disabled:cursor-not-allowed disabled:opacity-50",e)})});Tt.displayName="ChatInput.Field";const kt=i.forwardRef(({asChild:s=!1,className:e,disabled:n,children:o,...a},l)=>{const{value:d,disabled:p,isSubmitting:u}=re(),r=n||p||u||!d.trim(),c=s?J:Z;return t.jsx(c,{ref:l,type:"submit",disabled:r,variant:s?void 0:"default",size:"icon",className:f(!s&&"gap-1.5 rounded-full",e),...a,children:o})});kt.displayName="ChatInput.Submit";const It=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("flex items-center justify-between p-2",s),...n,children:e}));It.displayName="ChatInput.Toolbar";const Et=i.forwardRef(({asChild:s=!1,className:e,children:n,onClick:o,...a},l)=>{const{value:d,onChange:p,setShowCommandMenu:u,setCommandMenuQuery:r}=re(),c=x=>{d.startsWith("/")||(p("/"),u(!0),r("")),o?.(x)},m=s?J:Z;return t.jsx(m,{ref:l,type:"button",variant:"ghost",size:"icon",className:f("rounded-full",e),onClick:c,...a,children:n||t.jsx(Cs,{className:"size-4"})})});Et.displayName="ChatInput.Actions";const Rt=i.forwardRef(({asChild:s=!1,className:e,children:n,...o},a)=>{const l=s?J:Z;return t.jsx(l,{ref:a,type:"button",variant:"ghost",size:"icon",className:f("rounded-full",e),...o,children:n||t.jsx(Ts,{className:"size-4"})})});Rt.displayName="ChatInput.Attachment";const Ut=i.forwardRef(({asChild:s=!1,className:e,children:n,...o},a)=>{const l=s?J:Z;return t.jsx(l,{ref:a,type:"button",variant:"ghost",size:"icon",className:f("rounded-full",e),...o,children:n||t.jsx(ks,{className:"size-4"})})});Ut.displayName="ChatInput.VoiceInput";const Mt=i.forwardRef(({commands:s=[],className:e,onChange:n,...o},a)=>{const{showCommandMenu:l,commandMenuQuery:d,selectedMenuIndex:p,setSelectedMenuIndex:u,setMenuItemCount:r,triggerCounter:c,onChange:m}=re();return t.jsx(jt,{ref:a,commands:s,showCommandMenu:l,commandMenuQuery:d,selectedMenuIndex:p,setSelectedMenuIndex:u,setMenuItemCount:r,triggerCounter:c,onChange:m,className:e,...o})});Mt.displayName="ChatInput.CommandMenu";const Un=({className:s,...e})=>t.jsx(ns,{className:f("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",s),...e}),At=({className:s,...e})=>t.jsx(os,{className:f(s),...e}),Mn=({withHandle:s,className:e,...n})=>t.jsx(rs,{className:f("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",e),...n,children:s&&t.jsx("div",{className:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border",children:t.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-2.5 w-2.5",children:[t.jsx("title",{children:"Resize Handle"}),t.jsx("circle",{cx:"9",cy:"12",r:"1"}),t.jsx("circle",{cx:"9",cy:"5",r:"1"}),t.jsx("circle",{cx:"9",cy:"19",r:"1"}),t.jsx("circle",{cx:"15",cy:"12",r:"1"}),t.jsx("circle",{cx:"15",cy:"5",r:"1"}),t.jsx("circle",{cx:"15",cy:"19",r:"1"})]})})}),An=({...s})=>t.jsx(gs,{position:"top-center",className:"toaster group",style:{"--top-offset":"16px","--width:":"calc(100% - 2 * var(--top-offset))",position:"absolute",zIndex:5,top:"var(--top-offset)",left:"50%",transform:"translateX(-50%)",width:"calc(100% - 2 * var(--top-offset))",maxWidth:"480px"},offset:0,toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...s}),Dt=i.createContext(void 0),be=()=>{const s=i.useContext(Dt);if(!s)throw new Error("ChatLayout components must be used within ChatLayout.Root");return s},_t=i.forwardRef(({defaultSidebarOpen:s=!1,defaultPanelSize:e="hidden",defaultActiveTab:n="todo",className:o,children:a,...l},d)=>{const[p,u]=i.useState(s),[r,c]=i.useState(e),[m,x]=i.useState(n);return t.jsx(Dt.Provider,{value:{sidebarOpen:p,setSidebarOpen:u,panelSize:r,setPanelSize:c,activeTab:m,setActiveTab:x},children:t.jsx("div",{ref:d,className:f("flex h-screen flex-row bg-background text-foreground",o),...l,children:t.jsx(Un,{direction:"horizontal",className:"flex-1",children:a})})})});_t.displayName="ChatLayout.Root";const Dn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("relative z-10 border-b border-border bg-card shrink-0",s),...n,children:e}));Dn.displayName="ChatLayout.Header";const Pt=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx(At,{defaultSize:75,minSize:50,children:t.jsx("div",{ref:o,className:f("flex flex-1 flex-col overflow-hidden h-full",s),...n,children:e})}));Pt.displayName="ChatLayout.Main";const Lt=i.forwardRef(({showToaster:s=!0,className:e,children:n,...o},a)=>t.jsxs("div",{ref:a,className:f("relative flex flex-1 flex-col overflow-hidden",e),...o,children:[n,s&&t.jsx(An,{})]}));Lt.displayName="ChatLayout.Body";const zt=i.forwardRef(({className:s,children:e,onScrollChange:n,showScrollToBottom:o=!0,...a},l)=>{const[d,p]=i.useState(!1),u=i.useRef(null);i.useImperativeHandle(l,()=>u.current);const r=i.useCallback(()=>{const x=u.current;if(!x)return;const{scrollTop:w,scrollHeight:g,clientHeight:h}=x,b=g-w-h<100;p(!b&&o),n?.(b)},[n,o]),c=i.useCallback(()=>{r()},[r]),m=i.useCallback(()=>{const x=u.current;x&&x.scrollTo({top:x.scrollHeight,behavior:"smooth"})},[]);return i.useEffect(()=>{r()},[r]),t.jsxs("div",{className:"relative flex-1 overflow-hidden",children:[t.jsx("div",{ref:u,className:f("h-full overflow-y-auto",s),onScroll:c,...a,children:t.jsx("div",{className:"mx-auto max-w-chat min-h-full flex flex-col",children:e})}),d&&t.jsx("button",{type:"button",onClick:m,className:f("absolute bottom-4 left-1/2 -translate-x-1/2 z-10","flex items-center justify-center p-2 rounded-full","bg-card border border-border shadow-lg","text-foreground","hover:bg-accent hover:text-accent-foreground","transition-all duration-200 ease-in-out","animate-in fade-in slide-in-from-bottom-2"),"aria-label":"Scroll to bottom",children:t.jsx(Is,{className:"size-4"})})]})});zt.displayName="ChatLayout.Messages";const Ft=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("bg-linear-to-t from-background to-transparent px-4 pb-4",s),...n,children:t.jsx("div",{className:"mx-auto max-w-chat",children:e})}));Ft.displayName="ChatLayout.Footer";const _n=i.forwardRef(({className:s,children:e,...n},o)=>{const{sidebarOpen:a}=be();return a?t.jsx("div",{ref:o,className:f("border-r border-border bg-card w-64 overflow-y-auto",s),...n,children:e}):null});_n.displayName="ChatLayout.Sidebar";const Ot=i.forwardRef(({breakpoint:s="lg",className:e,children:n,...o},a)=>{const{panelSize:l}=be();return l==="hidden"?null:t.jsxs(t.Fragment,{children:[t.jsx(Mn,{withHandle:!0}),t.jsx(At,{defaultSize:25,minSize:15,maxSize:50,children:t.jsx("div",{ref:a,className:f("hidden h-full border-l border-border bg-card overflow-y-auto transition-all duration-300",s==="md"&&"md:block",s==="lg"&&"lg:block",s==="xl"&&"xl:block",s==="2xl"&&"2xl:block",e),...o,children:n})})]})});Ot.displayName="ChatLayout.Aside";const Ht=i.forwardRef(({source:s,isSelected:e,className:n,...o},a)=>t.jsxs("button",{ref:a,type:"button",className:f("flex w-full text-left gap-2 items-start p-3 rounded-lg transition-colors cursor-pointer border border-transparent","hover:bg-accent-hover hover:border-border/50",e&&"bg-accent-hover border-border/50",n),onClick:()=>window.open(s.url,"_blank"),...o,children:[t.jsx("div",{className:"flex gap-2 items-center py-[2px] shrink-0",children:t.jsx("div",{className:"relative rounded-[3px] shrink-0 size-4 overflow-hidden bg-muted",children:s.favicon?t.jsx("img",{alt:s.sourceName,className:"size-full object-cover",src:s.favicon}):t.jsx("div",{className:"size-full bg-muted"})})}),t.jsxs("div",{className:"flex flex-1 flex-col gap-1 min-w-0",children:[t.jsxs("div",{className:"text-xs leading-normal text-foreground",children:[t.jsx("span",{className:"font-medium",children:s.sourceName}),t.jsxs("span",{className:"text-muted-foreground",children:[" · ",s.title]})]}),t.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground line-clamp-3",children:s.snippet})]})]}));Ht.displayName="SourceListItem";const ae=i.forwardRef(({todos:s,className:e,...n},o)=>t.jsx("div",{ref:o,className:f("space-y-2",e),...n,children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full min-h-[200px]",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:"No todos yet"})}):s.map(a=>t.jsx("div",{className:"text-sm",children:a.text},a.id))}));ae.displayName="TodoTabContent";const ie=i.forwardRef(({files:s=[],className:e,...n},o)=>t.jsx("div",{ref:o,className:f("space-y-2",e),...n,children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full min-h-[200px]",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:"No files attached"})}):s.map(a=>t.jsx("div",{className:"text-sm",children:a},a))}));ie.displayName="FilesTabContent";const le=i.forwardRef(({sources:s=[],className:e,...n},o)=>t.jsx("div",{ref:o,className:f("space-y-2",e),...n,children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full min-h-[200px]",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:"No sources available"})}):s.map(a=>t.jsx(Ht,{source:a},a.id))}));le.displayName="SourcesTabContent";const Pn=i.forwardRef(({data:s,className:e,...n},o)=>t.jsxs("div",{ref:o,className:f("space-y-4",e),...n,children:[t.jsx("h3",{className:"font-semibold text-lg",children:"Database"}),t.jsxs("div",{className:"text-sm text-muted-foreground",children:[t.jsx("p",{children:"Database viewer - panel automatically expanded to large size"}),t.jsxs("div",{className:"mt-4 p-4 border border-border rounded",children:[t.jsx("p",{children:"Your large data table would go here"}),s&&typeof s=="object"?t.jsx("pre",{className:"mt-2 text-xs overflow-auto",children:JSON.stringify(s,null,2)}):null]})]})]}));Pn.displayName="DatabaseTabContent";const ye=hs,G=i.forwardRef(({className:s,...e},n)=>t.jsx(Ue,{ref:n,className:f("inline-flex h-10 items-center rounded-md bg-muted p-1 text-muted-foreground gap-1",s),...e}));G.displayName=Ue.displayName;const K=i.forwardRef(({className:s,...e},n)=>t.jsx(Me,{ref:n,className:f("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",s),...e}));K.displayName=Me.displayName;const P=i.forwardRef(({className:s,...e},n)=>t.jsx(Ae,{ref:n,className:f("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",s),...e}));P.displayName=Ae.displayName;const $t=i.forwardRef(({todo:s,className:e,...n},o)=>t.jsx("div",{ref:o,className:f("flex items-center gap-3 px-3 py-2 rounded-lg",e),...n,children:t.jsx("span",{className:f("flex-1 text-[var(--font-size)] font-[var(--font-family)]",s.status==="completed"&&"line-through opacity-60",s.status==="in_progress"&&"shimmer-animation"),children:s.text})}));$t.displayName="TodoListItem";const Bt=i.forwardRef(({client:s,todos:e,className:n,...o},a)=>{const l=e||[];return t.jsx("div",{ref:a,className:f("space-y-2 max-h-64 overflow-y-auto",n),...o,children:l.length===0?t.jsx("p",{className:"text-sm text-foreground opacity-60 italic",children:"No tasks yet."}):l.map(d=>t.jsx($t,{todo:d},d.id))})});Bt.displayName="TodoList";const Ln=i.forwardRef(({client:s,todos:e,variant:n="animated",showIcons:o=!1,visibleTabs:a=["todo","files","database"],className:l,...d},p)=>{const u=e||[],[r,c]=i.useState(a[0]||"todo"),m=i.useRef(null),x=i.useRef(null);i.useEffect(()=>{const v=setTimeout(()=>{const b=m.current;if(r&&b){const N=x.current;if(N){const S=b.getBoundingClientRect(),U=N.getBoundingClientRect(),I=U.left-S.left,A=U.width,C=I/S.width*100,_=100-(I+A)/S.width*100;b.style.clipPath=`inset(0 ${_.toFixed(2)}% 0 ${C.toFixed(2)}% round 999px)`}}},0);return()=>clearTimeout(v)},[r]);const g=[{id:"todo",label:n==="pills"?"To-do":"To-Do List",icon:st},{id:"files",label:"Files",icon:nt},{id:"database",label:"Database",icon:ot},{id:"sources",label:"Sources",icon:rt}].filter(h=>a.includes(h.id));return t.jsx("div",{ref:p,className:f("select-none",l),...d,children:t.jsxs(ye,{value:r,onValueChange:c,className:"w-full",children:[n==="pills"?t.jsx(G,{className:f("w-full justify-start bg-transparent p-0 h-auto","gap-1"),children:g.map(h=>{const v=h.icon;return t.jsxs(K,{value:h.id,className:f("gap-2 px-3 py-1.5 rounded-lg text-sm font-medium","data-[state=active]:bg-zinc-100 data-[state=active]:text-foreground","data-[state=inactive]:text-muted-foreground"),children:[o&&v&&t.jsx(v,{className:"size-4"}),h.label]},h.id)})}):t.jsxs("div",{className:"relative mb-4 border-border",children:[t.jsx(G,{className:"bg-transparent p-0 h-auto rounded-none w-full border-none",children:g.map(h=>t.jsx(K,{value:h.id,className:"px-3 py-1 text-sm font-[var(--font-family)] font-medium rounded-none text-foreground opacity-60 data-[state=active]:opacity-100 data-[state=active]:bg-transparent data-[state=active]:shadow-none",children:h.label},h.id))}),t.jsx("div",{ref:m,className:"absolute top-0 left-0 w-full overflow-hidden z-10 pointer-events-none",style:{clipPath:"inset(0 100% 0 0% round 999px)",transition:"clip-path 0.25s ease-out"},children:t.jsx(G,{className:"bg-secondary p-0 h-auto rounded-none w-full border-none",children:g.map(h=>t.jsx(K,{value:h.id,ref:r===h.id?x:null,className:"px-3 py-1 text-sm font-[var(--font-family)] font-medium rounded-none text-primary bg-transparent data-[state=active]:shadow-none shadow-none",tabIndex:-1,children:h.label},h.id))})})]}),t.jsx(P,{value:"todo",className:n==="pills"?"mt-0":"",children:n==="pills"?t.jsx(ae,{todos:u}):t.jsx(Bt,{todos:u})}),t.jsx(P,{value:"files",className:n==="pills"?"mt-0":"",children:t.jsx(ie,{})}),t.jsx(P,{value:"database",className:n==="pills"?"mt-0":"",children:t.jsx("div",{className:"text-sm text-foreground opacity-60 italic",children:"Database tab coming soon..."})}),t.jsx(P,{value:"sources",className:n==="pills"?"mt-0":"",children:t.jsx(le,{})})]})})});Ln.displayName="ChatSecondaryPanel";const zn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("flex h-full flex-col",s),...n,children:e}));zn.displayName="ChatSidebar.Root";const Fn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("border-b border-border px-4 py-3",s),...n,children:e}));Fn.displayName="ChatSidebar.Header";const On=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("flex-1 overflow-y-auto p-4",s),...n,children:e}));On.displayName="ChatSidebar.Content";const Hn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsx("div",{ref:o,className:f("border-t border-border px-4 py-3",s),...n,children:e}));Hn.displayName="ChatSidebar.Footer";const $n=i.forwardRef(({children:s,className:e,...n},o)=>{const[a,l]=i.useState(s),[d,p]=i.useState(!1),u=i.useRef(s),r=i.useRef(!0);return i.useEffect(()=>{if(r.current){r.current=!1,u.current=s;return}if(u.current===s)return;p(!0);const c=setTimeout(()=>{l(s),u.current=s,requestAnimationFrame(()=>{p(!1)})},150);return()=>{clearTimeout(c)}},[s]),t.jsx("span",{ref:o,className:f("text-sm text-foreground opacity-60 transition-opacity duration-300",d?"opacity-0":"opacity-60",e),...n,children:a})});$n.displayName="ChatStatus";const W=$("gui");function Bn({agentName:s}){const{isExpanded:e,setIsExpanded:n}=xe();return t.jsxs("div",{className:"flex lg:hidden items-center gap-2 flex-1",children:[t.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[t.jsx("h1",{className:"text-[20px] font-semibold leading-[1.2] tracking-[-0.4px] text-foreground",children:s}),t.jsx("div",{className:"flex items-center justify-center shrink-0",children:t.jsx(fe,{className:"size-4 rotate-180 text-muted-foreground"})})]}),t.jsx("button",{type:"button",className:"flex items-center justify-center shrink-0 cursor-pointer","aria-label":"Toggle menu",onClick:()=>n(!e),children:t.jsx(at,{className:"size-4 text-muted-foreground"})})]})}function Wn({agentName:s,todos:e,sources:n,showHeader:o}){const{panelSize:a,setPanelSize:l}=be();return t.jsxs(vt,{className:f("border-b border-border bg-card relative lg:p-0","[border-bottom-width:0.5px]"),children:[t.jsxs("div",{className:"hidden lg:flex items-center gap-2 w-full h-16 py-5 pl-6 pr-4",children:[o&&t.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[t.jsx("h1",{className:"text-[20px] font-semibold leading-[1.2] tracking-[-0.4px] text-foreground",children:s}),t.jsx("div",{className:"flex items-center justify-center shrink-0",children:t.jsx(fe,{className:"size-4 rotate-180 text-muted-foreground"})})]}),!o&&t.jsx("div",{className:"flex-1"}),t.jsx("button",{type:"button",className:"flex items-center justify-center shrink-0 cursor-pointer","aria-label":"Toggle sidebar",onClick:()=>{l(a==="hidden"?"small":"hidden")},children:t.jsx(at,{className:"size-4 text-muted-foreground"})})]}),t.jsx(Bn,{agentName:s}),t.jsx(Nt,{className:f("pt-6 pb-8 px-6","border-b border-border bg-card","shadow-[0_4px_16px_0_rgba(0,0,0,0.04)]","[border-bottom-width:0.5px]"),children:t.jsxs(ye,{defaultValue:"todo",className:"w-full",children:[t.jsx(we,{showIcons:!0,visibleTabs:["todo","files","sources"],variant:"default"}),t.jsx(P,{value:"todo",className:"mt-4",children:t.jsx(ae,{todos:e})}),t.jsx(P,{value:"files",className:"mt-4",children:t.jsx(ie,{})}),t.jsx(P,{value:"sources",className:"mt-4",children:t.jsx(le,{sources:n})})]})})]})}function Vn({client:s,initialSessionId:e,error:n}){const{connectionStatus:o,connect:a,sessionId:l}=Js(s,e),{messages:d}=ft(s);Ys(s);const p=T(h=>h.error),[u,r]=i.useState("Agent"),[c,m]=i.useState(typeof window<"u"?window.innerWidth>=1024:!0);if(i.useEffect(()=>{W.debug("Connection status changed",{status:o}),o==="error"&&p&&W.error("Connection error occurred",{error:p})},[o,p]),i.useEffect(()=>{if(s&&l){const h=s.getCurrentSession();h?.metadata?.agentName&&r(h.metadata.agentName)}},[s,l]),i.useEffect(()=>{const h=window.matchMedia("(min-width: 1024px)"),v=b=>{m(b.matches)};return m(h.matches),h.addEventListener("change",v),()=>{h.removeEventListener("change",v)}},[]),n)return t.jsx("div",{className:"flex items-center justify-center h-screen bg-background",children:t.jsxs("div",{className:"text-center p-8 max-w-md",children:[t.jsx("h1",{className:"text-2xl font-bold text-destructive mb-4",children:"Initialization Error"}),t.jsx("p",{className:"text-foreground mb-4",children:n}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Failed to initialize the ACP client. Check the console for details."})]})});const x=[],w=[{id:"1",title:"Boeing Scores Early Wins at Dubai Airshow",sourceName:"Reuters",url:"https://www.reuters.com/markets/companies/BA.N",snippet:"DUBAI, Nov 17 (Reuters) - Boeing (BA.N), opens new tab took centre stage at day one of the Dubai Airshow on Monday, booking a $38 billion order from host carrier Emirates and clinching more deals with African carriers, while China displayed its C919 in the Middle East for the first time.",favicon:"https://www.google.com/s2/favicons?domain=reuters.com&sz=32"},{id:"2",title:"Boeing's Sustainable Aviation Goals Take Flight",sourceName:"Forbes",url:"https://www.forbes.com",snippet:"SEATTLE, Nov 18 (Reuters) - Boeing is making headway towards its sustainability targets, unveiling plans for a new eco-friendly aircraft design aimed at reducing emissions by 50% by 2030.",favicon:"https://www.google.com/s2/favicons?domain=forbes.com&sz=32"},{id:"3",title:"Boeing Faces Increased Competition in Global Aviation Market",sourceName:"Reuters",url:"https://www.reuters.com",snippet:"CHICAGO, Nov 19 (Reuters) - As the global aviation industry rebounds post-pandemic, Boeing is grappling with intensified competition from rival manufacturers, particularly in the Asian market.",favicon:"https://www.google.com/s2/favicons?domain=reuters.com&sz=32"},{id:"4",title:"Boeing's Starliner Successfully Completes Orbital Test Flight",sourceName:"The Verge",url:"https://www.theverge.com",snippet:"NASA, Nov 20 (Reuters) - Boeing's CST-100 Starliner spacecraft achieves a significant milestone, successfully completing its orbital test flight, paving the way for future crewed missions to the International Space Station.",favicon:"https://www.google.com/s2/favicons?domain=theverge.com&sz=32"}],g=[{id:"model-sonnet",label:"Use Sonnet 4.5",description:"Switch to Claude Sonnet 4.5 model",icon:t.jsx(je,{className:"h-4 w-4"}),category:"model",onSelect:()=>{W.info("User selected Sonnet 4.5 model")}},{id:"model-opus",label:"Use Opus",description:"Switch to Claude Opus model",icon:t.jsx(je,{className:"h-4 w-4"}),category:"model",onSelect:()=>{W.info("User selected Opus model")}},{id:"settings",label:"Open Settings",description:"Configure chat preferences",icon:t.jsx(Es,{className:"h-4 w-4"}),category:"action",onSelect:()=>{W.info("User opened settings")}},{id:"code-mode",label:"Code Mode",description:"Enable code-focused responses",icon:t.jsx(Rs,{className:"h-4 w-4"}),category:"mode",onSelect:()=>{W.info("User enabled code mode")}}];return t.jsxs(_t,{defaultPanelSize:"hidden",defaultActiveTab:"todo",children:[t.jsxs(Pt,{children:[t.jsx(Wn,{agentName:u,todos:x,sources:w,showHeader:d.length>0}),o==="error"&&p&&t.jsx("div",{className:"border-b border-destructive/20 bg-destructive/10 px-6 py-4",children:t.jsxs("div",{className:"flex items-start justify-between gap-4",children:[t.jsxs("div",{className:"flex-1",children:[t.jsx("h3",{className:"mb-1 text-sm font-semibold text-destructive",children:"Connection Error"}),t.jsx("p",{className:"whitespace-pre-line text-sm text-foreground",children:p})]}),t.jsx("button",{type:"button",onClick:a,className:"rounded-lg bg-destructive px-4 py-2 text-sm font-medium text-destructive-foreground transition-colors hover:bg-destructive-hover",children:"Retry"})]})}),t.jsxs(Lt,{children:[t.jsx(zt,{className:d.length>0?"pt-4":"",children:d.length===0?t.jsx("div",{className:"flex flex-1 items-center px-4",children:t.jsx(yt,{title:u,description:"This agent can help you with your tasks. Start a conversation by typing a message below.",suggestedPrompts:["Help me debug this code","Explain how this works","Create a new feature","Review my changes"],onPromptClick:h=>{W.info("Prompt clicked",{prompt:h})}})}):t.jsx("div",{className:"flex flex-col gap-4 px-4",children:d.map((h,v)=>t.jsx(Vt,{message:h,isLastMessage:v===d.length-1,children:t.jsx(Qt,{message:h,thinkingDisplayStyle:"collapsible"})},h.id))})}),t.jsx(Ft,{children:t.jsxs(Ct,{client:s,children:[t.jsx(Mt,{commands:g}),t.jsx(Tt,{placeholder:"Type a message or / for commands...",autoFocus:!0}),t.jsxs(It,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(Et,{}),t.jsx(Rt,{})]}),t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(Ut,{}),t.jsx(kt,{children:t.jsx(Us,{className:"size-4"})})]})]})]})})]})]}),c&&t.jsx(Ot,{breakpoint:"lg",children:t.jsxs(ye,{defaultValue:"todo",className:"flex flex-col h-full",children:[t.jsx("div",{className:f("border-b border-border bg-card","px-6 py-2 h-16","flex items-center","[border-bottom-width:0.5px]"),children:t.jsx(we,{showIcons:!0,visibleTabs:["todo","files","sources"],variant:"compact"})}),t.jsx(P,{value:"todo",className:"flex-1 p-4 mt-0",children:t.jsx(ae,{todos:x})}),t.jsx(P,{value:"files",className:"flex-1 p-4 mt-0",children:t.jsx(ie,{})}),t.jsx(P,{value:"sources",className:"flex-1 p-4 mt-0",children:t.jsx(le,{sources:w})})]})})]})}const qn=i.forwardRef(({autoScroll:s=!0,isStreaming:e=!1,scrollBehavior:n="smooth",scrollThreshold:o=100,showScrollButton:a=!0,scrollButton:l,className:d,children:p,...u},r)=>{const c=i.useRef(null),[m,x]=i.useState(!0),[w,g]=i.useState(!1),h=i.useRef(0);i.useImperativeHandle(r,()=>{if(!c.current)throw new Error("Container ref not initialized");return c.current});const v=i.useCallback(()=>{const N=c.current;if(!N)return;const{scrollTop:S,scrollHeight:U,clientHeight:I}=N,C=U-S-I<o;x(C),g(!C&&a),h.current=S},[o,a]),b=i.useCallback((N=n)=>{const S=c.current;S&&S.scrollTo({top:S.scrollHeight,behavior:N})},[n]);return i.useEffect(()=>{!s||!c.current||(e&&m?b("auto"):!e&&m&&b())},[s,e,m,b]),i.useEffect(()=>{const N=c.current;if(!N)return;const S=()=>{v()};return N.addEventListener("scroll",S,{passive:!0}),v(),()=>{N.removeEventListener("scroll",S)}},[v]),i.useEffect(()=>{const N=c.current;if(!N)return;const S=new ResizeObserver(()=>{m&&s&&b("auto")});return S.observe(N),()=>{S.disconnect()}},[m,s,b]),t.jsxs("div",{className:"relative flex-1",children:[t.jsx("div",{ref:c,className:f("h-full overflow-y-auto overflow-x-hidden","scrollbar-thin scrollbar-thumb-[border] scrollbar-track-transparent",d),...u,children:t.jsx("div",{className:"flex flex-col gap-4 px-4 py-4",children:p})}),w&&t.jsx("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10",children:l||t.jsxs("button",{type:"button",onClick:()=>b(),className:"px-4 py-2 rounded-full bg-card border border-border shadow-lg hover:shadow-xl hover:bg-card/90 transition-all text-sm font-medium text-foreground flex items-center gap-2","aria-label":"Scroll to bottom",children:[t.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",role:"img","aria-label":"Down arrow",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 14l-7 7m0 0l-7-7m7 7V3"})}),"Scroll to bottom"]})})]})});qn.displayName="Conversation";const Qn=xs,Wt=i.forwardRef(({className:s,...e},n)=>t.jsx(De,{ref:n,className:f("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...e}));Wt.displayName=De.displayName;const Gn=i.forwardRef(({className:s,children:e,...n},o)=>t.jsxs(Qn,{children:[t.jsx(Wt,{}),t.jsxs(_e,{ref:o,className:f("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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%] sm:rounded-lg",s),...n,children:[e,t.jsxs(bs,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[t.jsx(Ms,{className:"h-4 w-4"}),t.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Gn.displayName=_e.displayName;const Kn=i.forwardRef(({className:s,...e},n)=>t.jsx(Pe,{ref:n,className:f("text-lg font-semibold leading-none tracking-tight",s),...e}));Kn.displayName=Pe.displayName;const Xn=i.forwardRef(({className:s,...e},n)=>t.jsx(Le,{ref:n,className:f("text-sm text-muted-foreground",s),...e}));Xn.displayName=Le.displayName;const Jn=i.forwardRef(({className:s,inset:e,children:n,...o},a)=>t.jsxs(ze,{ref:a,className:f("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted data-[state=open]:bg-muted",e&&"pl-8",s),...o,children:[n,t.jsx(tt,{className:"ml-auto h-4 w-4"})]}));Jn.displayName=ze.displayName;const Yn=i.forwardRef(({className:s,...e},n)=>t.jsx(Fe,{ref:n,className:f("z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-card p-1 shadow-lg","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",s),...e}));Yn.displayName=Fe.displayName;const Zn=i.forwardRef(({className:s,sideOffset:e=4,...n},o)=>t.jsx(ys,{children:t.jsx(Oe,{ref:o,sideOffset:e,className:f("z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-card p-1 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",s),...n})}));Zn.displayName=Oe.displayName;const eo=i.forwardRef(({className:s,inset:e,...n},o)=>t.jsx(He,{ref:o,className:f("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors","focus:bg-muted focus:text-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e&&"pl-8",s),...n}));eo.displayName=He.displayName;const to=i.forwardRef(({className:s,children:e,...n},o)=>t.jsxs($e,{ref:o,className:f("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors","focus:bg-muted focus:text-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...n,children:[t.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:t.jsx(Be,{children:t.jsx(it,{className:"h-4 w-4"})})}),e]}));to.displayName=$e.displayName;const so=i.forwardRef(({className:s,children:e,...n},o)=>t.jsxs(We,{ref:o,className:f("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors","focus:bg-muted focus:text-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...n,children:[t.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:t.jsx(Be,{children:t.jsx(lt,{className:"h-2 w-2 fill-current"})})}),e]}));so.displayName=We.displayName;const no=i.forwardRef(({className:s,inset:e,...n},o)=>t.jsx(Ve,{ref:o,className:f("px-2 py-1.5 text-sm font-semibold",e&&"pl-8",s),...n}));no.displayName=Ve.displayName;const oo=i.forwardRef(({className:s,...e},n)=>t.jsx(qe,{ref:n,className:f("-mx-1 my-1 h-px bg-border",s),...e}));oo.displayName=qe.displayName;const ro=V("flex h-10 w-full rounded-md border bg-input-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{variant:{default:"border-input focus-visible:ring-ring",error:"border-destructive focus-visible:ring-destructive",success:"border-green-500 focus-visible:ring-green-500"}},defaultVariants:{variant:"default"}}),ao=i.forwardRef(({className:s,type:e,variant:n,...o},a)=>t.jsx("input",{type:e,className:f(ro({variant:n,className:s})),ref:a,...o}));ao.displayName="Input";const io=i.forwardRef(({className:s,...e},n)=>t.jsx(Qe,{ref:n,className:f("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",s),...e}));io.displayName=Qe.displayName;const lo=V("flex animate-fadeIn",{variants:{role:{user:"max-w-[80%] self-end ml-auto mr-2",assistant:"self-start mr-auto",system:"self-start mr-auto max-w-full"},layout:{default:"",full:"max-w-full",compact:"max-w-[90%]"}},defaultVariants:{role:"assistant",layout:"default"}}),Vt=i.forwardRef(({message:s,role:e,layout:n,className:o,children:a,messageId:l,autoScroll:d,isLastMessage:p=!1,...u},r)=>{const c=s?s.role:e||"assistant",m=s?s.id:l,x=i.useRef(null),[w,g]=i.useState(void 0);return i.useImperativeHandle(r,()=>x.current),i.useEffect(()=>{if(!p||c!=="assistant"){g(void 0);return}const h=()=>{const b=x.current;if(!b)return;let N=b.parentElement;for(;N&&!N.classList.contains("overflow-y-auto");)N=N.parentElement;if(!N)return;const S=b.previousElementSibling;if(!S||S.getAttribute("aria-label")!=="user message"){g(void 0);return}const U=N.clientHeight,I=S.offsetHeight,C=Math.max(0,U-I-32);g(C)};h();const v=new ResizeObserver(h);if(x.current){v.observe(x.current);let b=x.current.parentElement;for(;b&&!b.classList.contains("overflow-y-auto");)b=b.parentElement;b&&v.observe(b)}return()=>v.disconnect()},[p,c]),i.useEffect(()=>{if((d!==void 0?d:c==="user")&&x.current){const v=setTimeout(()=>{x.current?.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})},50);return()=>clearTimeout(v)}},[c,d]),t.jsx("article",{ref:x,"aria-label":`${c} message`,"data-message-id":m,className:f(lo({role:c,layout:n}),o),style:{minHeight:w!==void 0?`${w}px`:void 0},...u,children:a})});Vt.displayName="Message";const te=128e3,Te={"claude-sonnet-4-5-20250929":2e5,"claude-sonnet-4-20250514":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-sonnet-20240620":2e5,"claude-3-opus-20240229":2e5,"claude-3-sonnet-20240229":2e5,"claude-3-haiku-20240307":2e5,"gpt-4-turbo":128e3,"gpt-4-turbo-preview":128e3,"gpt-4-0125-preview":128e3,"gpt-4-1106-preview":128e3,"gpt-4":8192,"gpt-4-32k":32768,"gpt-3.5-turbo":16385,"gpt-3.5-turbo-16k":16385,default:te};function co(s){if(!s)return te;if(s in Te)return Te[s]??te;const e=s.toLowerCase();return e.includes("claude")?2e5:e.includes("gpt-4-turbo")?128e3:e.includes("gpt-4-32k")?32768:e.includes("gpt-4")?8192:e.includes("gpt-3.5")?16385:te}function uo(s,e){const n=co(e);return s/n*100}function po(s,e,n=1){return`${uo(s,e).toFixed(n)}%`}const ke=V("mb-3 rounded-lg bg-card border border-border transition-all",{variants:{variant:{default:"opacity-70",subtle:"opacity-50",prominent:"opacity-90 shadow-sm"}},defaultVariants:{variant:"default"}}),mo=V("w-4 h-4 text-foreground opacity-60 transition-transform duration-200",{variants:{expanded:{true:"rotate-180",false:""}},defaultVariants:{expanded:!1}}),qt=i.forwardRef(({content:s,isStreaming:e=!1,mode:n="collapsible",defaultExpanded:o=!1,autoExpand:a=!1,autoCollapse:l=!0,autoCollapseDelay:d=2e3,label:p="Thinking",variant:u,className:r},c)=>{const[m,x]=i.useState(n==="inline"?!0:o),[w,g]=i.useState(!1);return i.useEffect(()=>{if(l&&!e&&s&&n==="collapsible"){const h=setTimeout(()=>{g(!0),x(!1)},d);return()=>clearTimeout(h)}},[e,s,l,d,n]),i.useEffect(()=>{a&&e&&n==="collapsible"&&!w&&x(!0)},[a,e,n,w]),!s&&!e?null:n==="inline"?t.jsxs("div",{ref:c,className:f(ke({variant:u}),"p-3",r),children:[t.jsxs("div",{className:"flex items-start gap-2 mb-2",children:[t.jsx("span",{className:"text-xs font-medium text-foreground opacity-60 uppercase tracking-wide",children:p}),e&&t.jsx("span",{className:"inline-block w-2 h-2 bg-primary rounded-full animate-pulse"})]}),t.jsxs("div",{className:"text-sm italic text-foreground opacity-80 leading-relaxed whitespace-pre-wrap",children:[s,e&&s&&t.jsx("span",{className:"inline-block animate-typing text-primary",children:"..."})]})]}):t.jsxs("div",{ref:c,className:f("mb-3",r),children:[t.jsxs("button",{type:"button",onClick:()=>{x(!m),g(!1)},className:"w-full flex items-center justify-between p-2.5 rounded-lg bg-card border border-border hover:bg-card/80 hover:shadow-sm transition-all text-left","aria-expanded":m,"aria-label":`${m?"Collapse":"Expand"} reasoning`,children:[t.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[t.jsx("span",{className:"text-xs font-medium text-foreground opacity-60 uppercase tracking-wide shrink-0",children:p}),e&&t.jsx("span",{className:"inline-block w-2 h-2 bg-primary rounded-full animate-pulse shrink-0"}),!m&&s&&t.jsxs("span",{className:"text-xs text-foreground opacity-50 truncate",children:[s.substring(0,60),s.length>60&&"..."]})]}),t.jsx(ge,{className:mo({expanded:m}),"aria-hidden":"true"})]}),m&&t.jsx("div",{className:f(ke({variant:u}),"mt-2 p-3 animate-fadeIn"),children:t.jsxs("div",{className:"text-sm italic text-foreground opacity-80 leading-relaxed whitespace-pre-wrap",children:[s,e&&s&&t.jsx("span",{className:"inline-block animate-typing text-primary",children:"..."})]})})]})});qt.displayName="Reasoning";const se=i.forwardRef(({content:s,isStreaming:e=!1,showEmpty:n=!0,emptyMessage:o="",className:a,...l},d)=>{if(!s&&e&&n)return t.jsx("div",{ref:d,className:f("opacity-70 italic text-sm",a),...l,children:o});if(!s)return null;const p={table:({node:u,...r})=>t.jsx("div",{className:"overflow-x-auto my-4",children:t.jsx("table",{className:"min-w-full border-collapse border border-border rounded-md",...r})}),thead:({node:u,...r})=>t.jsx("thead",{className:"bg-card border-b border-border",...r}),tbody:({node:u,...r})=>t.jsx("tbody",{...r}),tr:({node:u,...r})=>t.jsx("tr",{className:"border-b border-border hover:bg-card transition-colors",...r}),th:({node:u,...r})=>t.jsx("th",{className:"px-4 py-2 text-left font-semibold text-foreground border-r border-border last:border-r-0",...r}),td:({node:u,...r})=>t.jsx("td",{className:"px-4 py-2 text-foreground border-r border-border last:border-r-0",...r}),input:({node:u,checked:r,...c})=>c.type==="checkbox"?t.jsx("input",{type:"checkbox",checked:r||!1,disabled:!0,readOnly:!0,className:"mr-2 w-4 h-4 accent-[primary] cursor-not-allowed",...c}):t.jsx("input",{...c}),code:({node:u,...r})=>r.className?.includes("language-")?t.jsx("code",{className:"block p-4 bg-card border border-border rounded-md overflow-x-auto text-sm font-mono text-foreground shadow-sm",...r}):t.jsx("code",{className:"px-1.5 py-0.5 bg-card border border-border rounded text-sm font-mono text-foreground",...r}),pre:({node:u,...r})=>t.jsx("pre",{className:"my-4 rounded-lg",...r}),h1:({node:u,...r})=>t.jsx("h1",{className:"text-2xl font-bold mt-6 mb-4 text-foreground border-b border-border pb-2",...r}),h2:({node:u,...r})=>t.jsx("h2",{className:"text-xl font-semibold mt-5 mb-3 text-foreground border-b border-border/50 pb-1.5",...r}),h3:({node:u,...r})=>t.jsx("h3",{className:"text-lg font-semibold mt-4 mb-2 text-foreground",...r}),h4:({node:u,...r})=>t.jsx("h4",{className:"text-base font-semibold mt-3 mb-2 text-foreground",...r}),ul:({node:u,...r})=>{const c=u?.children?.some(m=>typeof m=="object"&&m!==null&&"type"in m&&m.type==="element"&&"tagName"in m&&m.tagName==="li"&&"children"in m&&Array.isArray(m.children)&&m.children.some(x=>typeof x=="object"&&x!==null&&"type"in x&&x.type==="element"&&"tagName"in x&&x.tagName==="input"&&"properties"in x&&typeof x.properties=="object"&&x.properties!==null&&"type"in x.properties&&x.properties.type==="checkbox"));return t.jsx("ul",{className:f("my-2 space-y-1 text-foreground",c?"list-none space-y-2":"list-disc list-inside"),...r})},ol:({node:u,...r})=>t.jsx("ol",{className:"list-decimal list-inside my-2 space-y-1 text-foreground",...r}),li:({node:u,...r})=>{const c=u?.children?.some(m=>typeof m=="object"&&m!==null&&"type"in m&&m.type==="element"&&"tagName"in m&&m.tagName==="input"&&"properties"in m&&typeof m.properties=="object"&&m.properties!==null&&"type"in m.properties&&m.properties.type==="checkbox");return t.jsx("li",{className:f("flex items-start",c?"gap-2":"ml-2"),...r})},a:({node:u,...r})=>t.jsx("a",{className:"text-primary hover:underline decoration-2 underline-offset-2 transition-all",target:"_blank",rel:"noopener noreferrer",...r}),p:({node:u,...r})=>t.jsx("p",{className:"my-2 text-foreground leading-relaxed",...r}),blockquote:({node:u,...r})=>t.jsx("blockquote",{className:"border-l-4 border-[primary] pl-4 italic my-4 text-foreground bg-card py-2 rounded-r-md shadow-sm",...r}),hr:({node:u,...r})=>t.jsx("hr",{className:"my-6 border-t border-border opacity-50",...r})};return t.jsxs("div",{ref:d,className:f("markdown-content prose prose-sm max-w-none dark:prose-invert",a),...l,children:[t.jsx(as,{remarkPlugins:[Ps],components:p,children:s}),e&&s&&t.jsx("span",{className:"inline-block ml-1 animate-typing text-primary",children:"..."})]})});se.displayName="Response";const fo={pending:"bg-transparent text-muted-foreground",in_progress:"bg-transparent text-muted-foreground",completed:"bg-transparent text-muted-foreground",failed:"bg-transparent text-muted-foreground"};function Ie({toolCall:s}){const[e,n]=i.useState(!1);return t.jsxs("div",{className:"flex flex-col",children:[t.jsxs("button",{type:"button",className:"flex items-center gap-1.5 cursor-pointer bg-transparent border-none p-0 text-left group w-fit",onClick:()=>n(!e),"aria-expanded":e,children:[t.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2 py-1 text-xs font-medium rounded ${fo[s.status]}`,children:[t.jsx(As,{className:"h-3 w-3"}),t.jsx("span",{children:s.title}),s.status==="completed"&&t.jsx("span",{children:"✓"})]}),t.jsx("span",{className:"text-muted-foreground text-xs opacity-0 group-hover:opacity-100 transition-opacity",children:e?"▲":"▼"})]}),e&&t.jsxs("div",{className:"mt-2 space-y-3 text-sm border border-border rounded-md p-3 bg-card shadow-sm max-w-full",children:[s.locations&&s.locations.length>0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-1.5",children:"Files"}),t.jsx("ul",{className:"space-y-1",children:s.locations.map(o=>t.jsxs("li",{className:"font-mono text-xs text-foreground bg-muted px-2 py-1 rounded",children:[o.path,o.line!==null&&o.line!==void 0&&`:${o.line}`]},`${o.path}:${o.line??""}`))})]}),s.rawInput&&Object.keys(s.rawInput).length>0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-1.5",children:"Input"}),t.jsx("div",{className:"bg-muted p-2 rounded border border-border",children:t.jsx(Ne,{value:s.rawInput,collapsed:!1,displayDataTypes:!1,displayObjectSize:!1,enableClipboard:!0,style:{fontSize:"11px",backgroundColor:"transparent"}})})]}),s.content&&s.content.length>0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-1.5",children:"Output"}),t.jsx("div",{className:"space-y-2",children:s.content.map((o,a)=>{const l=()=>o.type==="diff"&&"path"in o?`diff-${o.path}-${a}`:o.type==="terminal"&&"terminalId"in o?`terminal-${o.terminalId}`:o.type==="text"&&"text"in o?`text-${o.text.substring(0,20)}-${a}`:o.type==="content"&&"content"in o?`content-${o.content.text?.substring(0,20)}-${a}`:`block-${a}`,d=(p,u)=>{try{const r=JSON.parse(p);if(typeof r=="object"&&r!==null)return t.jsx("div",{className:"bg-muted p-2 rounded border border-border",children:t.jsx(Ne,{value:r,collapsed:!1,displayDataTypes:!1,displayObjectSize:!1,enableClipboard:!0,style:{fontSize:"11px",backgroundColor:"transparent"}})},u)}catch{}return t.jsx("pre",{className:"bg-muted p-2.5 rounded border border-border text-xs overflow-x-auto font-mono text-foreground",children:p},u)};if(o.type==="content"&&"content"in o){const p=o.content;if(p.type==="text"&&p.text)return d(p.text,l())}return o.type==="text"&&"text"in o?d(o.text,l()):o.type==="diff"&&"path"in o&&"oldText"in o&&"newText"in o?t.jsxs("div",{className:"border rounded",children:[t.jsxs("div",{className:"bg-muted px-2 py-1 text-xs font-mono",children:[o.path,"line"in o&&o.line!==null&&o.line!==void 0&&`:${o.line}`]}),t.jsxs("div",{className:"p-2 font-mono text-xs",children:[t.jsxs("div",{className:"text-red-600",children:["- ",o.oldText]}),t.jsxs("div",{className:"text-green-600",children:["+ ",o.newText]})]})]},l()):o.type==="terminal"&&"terminalId"in o?t.jsxs("div",{className:"bg-black text-green-400 p-2 rounded text-xs font-mono",children:["Terminal: ",o.terminalId]},l()):null})})]}),s.error&&t.jsxs("div",{className:"bg-destructive/10 border border-destructive/20 rounded p-2.5 text-destructive",children:[t.jsx("div",{className:"text-xs font-semibold text-destructive uppercase tracking-wide mb-1.5",children:"Error"}),t.jsx("div",{className:"text-xs",children:s.error})]}),s.tokenUsage&&t.jsxs("div",{className:"bg-muted border border-border rounded p-2.5",children:[t.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Token Usage"}),t.jsxs("div",{className:"grid grid-cols-3 gap-3 text-xs text-foreground",children:[s.tokenUsage.inputTokens!==void 0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-muted-foreground text-[10px] uppercase tracking-wide mb-0.5",children:"Input"}),t.jsx("div",{className:"font-medium",children:s.tokenUsage.inputTokens.toLocaleString()})]}),s.tokenUsage.outputTokens!==void 0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-muted-foreground text-[10px] uppercase tracking-wide mb-0.5",children:"Output"}),t.jsx("div",{className:"font-medium",children:s.tokenUsage.outputTokens.toLocaleString()})]}),s.tokenUsage.totalTokens!==void 0&&t.jsxs("div",{children:[t.jsx("div",{className:"text-muted-foreground text-[10px] uppercase tracking-wide mb-0.5",children:"Total"}),t.jsx("div",{className:"font-medium",children:s.tokenUsage.totalTokens.toLocaleString()})]})]})]}),s.startedAt&&t.jsxs("div",{className:"text-xs text-muted-foreground",children:["Started: ",new Date(s.startedAt).toLocaleTimeString(),s.completedAt&&t.jsxs(t.Fragment,{children:[" ","| Completed:"," ",new Date(s.completedAt).toLocaleTimeString()," (",Math.round((s.completedAt-s.startedAt)/1e3),"s)"]})]})]})]})}const ee=["Thinking","Pensando","Pensant","Denkend","Pensando","考えている","생각 중","思考中","Размышляя","Düşünüyor","Myślący","Tänkande","Pensando","Ajatellen","Σκεπτόμενος","חושב","सोच रहा है","Berpikir"],Ee=["...","·..",".·.","..·",".·.","·.."];function go({startTime:s}){const[e,n]=i.useState(0),[o,a]=i.useState(()=>ee[Math.floor(Math.random()*ee.length)]),[l,d]=i.useState(0);i.useEffect(()=>{const r=setInterval(()=>{const m=Date.now()-s;n(m)},100);return()=>clearInterval(r)},[s]),i.useEffect(()=>{const r=setInterval(()=>{const c=Math.floor(Math.random()*ee.length);a(ee[c])},1500);return()=>clearInterval(r)},[]),i.useEffect(()=>{const r=setInterval(()=>{d(c=>(c+1)%Ee.length)},100);return()=>clearInterval(r)},[]);const p=(e/1e3).toFixed(1),u=Ee[l];return t.jsxs("span",{className:"text-muted-foreground text-sm",children:[o,u," ",p,"s"]})}const ho=V("w-full px-4 py-3 rounded-xl text-[var(--font-size)] font-[var(--font-family)] leading-relaxed break-words transition-colors",{variants:{role:{user:"bg-primary text-primary-foreground shadow-sm",assistant:"text-foreground",system:"bg-card border border-border text-foreground opacity-80 text-sm"},variant:{default:"",outline:"border border-border",ghost:"bg-transparent"}},defaultVariants:{role:"assistant",variant:"default"}}),Qt=i.forwardRef(({role:s,variant:e,isStreaming:n,message:o,thinkingDisplayStyle:a="collapsible",className:l,children:d,...p},u)=>{const r=T(h=>h.streamingStartTime),c=T(h=>h.currentModel),m=o&&!d,x=m?o.role:s||"assistant",w=m?o.isStreaming:n;let g=d;if(m){const h=o.metadata?.thinking,v=!!h,b=o.isStreaming&&!o.content&&o.role==="assistant";g=t.jsxs(t.Fragment,{children:[o.role==="assistant"&&v&&t.jsx(qt,{content:h,isStreaming:o.isStreaming,mode:a,autoCollapse:!0}),b&&r&&t.jsxs("div",{className:"flex items-center gap-2 opacity-50",children:[t.jsx(ct,{className:"size-4 animate-spin text-muted-foreground"}),t.jsx(go,{startTime:r})]}),o.role==="assistant"?(()=>{const N=(o.toolCalls||[]).slice().sort((I,A)=>(I.contentPosition??1/0)-(A.contentPosition??1/0));if(N.length===0||!N.some(I=>I.contentPosition!==void 0))return t.jsxs(t.Fragment,{children:[N.length>0&&t.jsx("div",{className:"flex flex-col gap-2 mb-3",children:N.map(I=>t.jsx(Ie,{toolCall:I},I.id))}),t.jsx(se,{content:o.content,isStreaming:o.isStreaming,showEmpty:!1})]});const S=[];let U=0;if(N.forEach(I=>{const A=I.contentPosition??o.content.length;if(A>U){const C=o.content.slice(U,A);C&&S.push(t.jsx(se,{content:C,isStreaming:!1,showEmpty:!1},`text-before-${I.id}`))}S.push(t.jsx("div",{className:"my-2",children:t.jsx(Ie,{toolCall:I})},`tool-${I.id}`)),U=A}),U<o.content.length){const I=o.content.slice(U);I&&S.push(t.jsx(se,{content:I,isStreaming:o.isStreaming,showEmpty:!1},"text-end"))}return t.jsx(t.Fragment,{children:S})})():t.jsx("div",{className:"whitespace-pre-wrap",children:o.content}),o.role==="assistant"&&o.tokenUsage&&t.jsx("div",{className:"mt-3 pt-2 border-t border-border/30 text-xs text-muted-foreground/60",children:t.jsxs("span",{children:["Context:"," ",po(o.tokenUsage.totalTokens??0,c??void 0)," ","(",(o.tokenUsage.totalTokens??0).toLocaleString()," ","tokens)"]})})]})}return t.jsx("div",{ref:u,className:f(ho({role:x,variant:e}),w&&"animate-pulse-subtle",l),...p,children:g})});Qt.displayName="MessageContent";const we=i.forwardRef(({showIcons:s=!0,visibleTabs:e=["todo","files"],variant:n="default",className:o,...a},l)=>{const p=[{id:"todo",label:"To-do",icon:st},{id:"files",label:"Files",icon:nt},{id:"database",label:"Database",icon:ot},{id:"sources",label:"Sources",icon:rt}].filter(r=>e.includes(r.id)),u=n==="compact"?"gap-[4px]":"gap-3";return t.jsx(G,{ref:l,className:f("w-full justify-start bg-transparent p-0 h-auto",u,o),...a,children:p.map(r=>{const c=r.icon;return t.jsxs(K,{value:r.id,className:f("gap-2 px-3 py-1.5 rounded-lg text-sm font-medium","data-[state=active]:bg-zinc-100 data-[state=active]:text-foreground","data-[state=inactive]:text-muted-foreground"),children:[s&&c&&t.jsx(c,{className:"size-4"}),r.label]},r.id)})})});we.displayName="PanelTabsHeader";const xo=i.forwardRef(({className:s,children:e,...n},o)=>t.jsxs(Ge,{ref:o,className:f("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...n,children:[e,t.jsx(ws,{asChild:!0,children:t.jsx(Ds,{className:"h-4 w-4 opacity-50"})})]}));xo.displayName=Ge.displayName;const Gt=i.forwardRef(({className:s,...e},n)=>t.jsx(Ke,{ref:n,className:f("flex cursor-default items-center justify-center py-1",s),...e,children:t.jsx(fe,{className:"h-4 w-4"})}));Gt.displayName=Ke.displayName;const Kt=i.forwardRef(({className:s,...e},n)=>t.jsx(Xe,{ref:n,className:f("flex cursor-default items-center justify-center py-1",s),...e,children:t.jsx(ge,{className:"h-4 w-4"})}));Kt.displayName=Xe.displayName;const bo=i.forwardRef(({className:s,children:e,position:n="popper",...o},a)=>t.jsx(vs,{children:t.jsxs(Je,{ref:a,className:f("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",n==="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",s),position:n,...o,children:[t.jsx(Gt,{}),t.jsx(Ns,{className:f("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:e}),t.jsx(Kt,{})]})}));bo.displayName=Je.displayName;const yo=i.forwardRef(({className:s,...e},n)=>t.jsx(Ye,{ref:n,className:f("py-1.5 pl-8 pr-2 text-sm font-semibold",s),...e}));yo.displayName=Ye.displayName;const wo=i.forwardRef(({className:s,children:e,...n},o)=>t.jsxs(Ze,{ref:o,className:f("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...n,children:[t.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:t.jsx(js,{children:t.jsx(it,{className:"h-4 w-4"})})}),t.jsx(Ss,{children:e})]}));wo.displayName=Ze.displayName;const vo=i.forwardRef(({className:s,...e},n)=>t.jsx(et,{ref:n,className:f("-mx-1 my-1 h-px bg-muted",s),...e}));vo.displayName=et.displayName;const Xt=i.forwardRef(({task:s,collapsible:e=!0,defaultExpanded:n=!1,onTaskClick:o,className:a,...l},d)=>{const[p,u]=i.useState(n),r=!!(s.details||s.files&&s.files.length>0),c={pending:lt,in_progress:ct,completed:_s}[s.status],m=()=>{switch(s.status){case"completed":return"text-green-500";case"in_progress":return"text-primary";default:return"text-foreground opacity-40"}},x=()=>{r&&e&&u(!p),o?.(s)};return t.jsxs("div",{ref:d,className:f("rounded-lg border border-border bg-card transition-all","hover:shadow-sm hover:border-border/80",a),...l,children:[t.jsxs("button",{type:"button",onClick:x,className:f("w-full flex items-center gap-3 px-3 py-2.5 text-left",r&&e&&"cursor-pointer"),disabled:!r&&!e,children:[t.jsx(c,{className:f("w-4 h-4 shrink-0",m(),s.status==="in_progress"&&"animate-spin")}),t.jsx("span",{className:f("flex-1 text-sm font-[var(--font-family)]",s.status==="completed"&&"line-through opacity-60",s.status==="in_progress"&&"font-medium"),children:s.text}),r&&e&&t.jsx(ge,{className:f("w-4 h-4 text-foreground opacity-50 transition-transform duration-200 shrink-0",p&&"rotate-180"),"aria-hidden":"true"})]}),r&&p&&t.jsxs("div",{className:"px-3 pb-3 pt-1 border-t border-border/50 animate-fadeIn",children:[s.details&&t.jsx("p",{className:"text-sm text-foreground opacity-80 leading-relaxed mb-2",children:s.details}),s.files&&s.files.length>0&&t.jsxs("div",{className:"space-y-1",children:[t.jsx("span",{className:"text-xs font-medium text-foreground opacity-60 uppercase tracking-wide",children:"Files:"}),t.jsx("div",{className:"space-y-1",children:s.files.map(w=>t.jsx("div",{className:"text-xs font-mono text-foreground opacity-70 bg-background px-2 py-1 rounded border border-border/50",children:w},w))})]})]})]})});Xt.displayName="Task";const No=i.forwardRef(({tasks:s,collapsible:e=!0,onTaskClick:n,emptyMessage:o="No tasks yet.",className:a,...l},d)=>t.jsx("div",{ref:d,className:f("space-y-2 max-h-96 overflow-y-auto",a),...l,children:s.length===0?t.jsx("p",{className:"text-sm text-foreground opacity-60 italic py-4 text-center",children:o}):s.map(p=>t.jsx(Xt,{task:p,collapsible:e,...n?{onTaskClick:n}:{}},p.id))}));No.displayName="TaskList";const jo=V("flex min-h-[80px] w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 resize-none",{variants:{variant:{default:"border-input focus-visible:ring-ring",error:"border-destructive focus-visible:ring-destructive",success:"border-green-500 focus-visible:ring-green-500"}},defaultVariants:{variant:"default"}}),So=i.forwardRef(({className:s,autoResize:e=!1,maxHeight:n=200,variant:o,...a},l)=>{const d=i.useRef(null),p=i.useCallback(r=>{d.current=r,typeof l=="function"?l(r):l&&(l.current=r)},[l]),u=i.useCallback(()=>{const r=d.current;if(!r||!e)return;r.style.height="auto";const c=Math.min(r.scrollHeight,n);r.style.height=`${c}px`,r.scrollHeight>n?r.style.overflowY="auto":r.style.overflowY="hidden"},[e,n]);return i.useEffect(()=>{u()},[u]),t.jsx("textarea",{className:f(jo({variant:o}),e&&"overflow-y-hidden",s),ref:p,...a})});So.displayName="Textarea";function Co(){return"http://localhost:3100"}const To={agentServerUrl:Co()};function ko(){const{client:s,error:e,sessionId:n}=qs({serverUrl:To.agentServerUrl});return t.jsx(Vn,{client:s,initialSessionId:n,error:e})}const Jt=document.getElementById("root");if(!Jt)throw new Error("Root element not found");is.createRoot(Jt).render(t.jsx(ls.StrictMode,{children:t.jsx(ko,{})}));
@@ -1 +0,0 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-zinc-100:oklch(96.7% .001 286.375);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:.5rem;--max-width-prose:477px;--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-primary-hover:var(--primary-hover);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-secondary-hover:var(--secondary-hover);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-accent-hover:var(--accent-hover);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-destructive-hover:var(--destructive-hover);--color-border:var(--border);--color-input:var(--input);--color-input-background:var(--input-background);--color-ring:var(--ring);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-tertiary:var(--text-tertiary);--max-width-chat:720px;--max-width-prompt-container:393px;--letter-spacing-tight:-.48px;--letter-spacing-uppercase:1.12px;--font-size-heading-3:1.5rem;--line-height-heading-3:1.2;--font-size-subheading:1.25rem;--line-height-subheading:1.5;--font-size-label:.875rem;--line-height-label:1.5}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground)}button{cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-4{right:calc(var(--spacing)*4)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-auto{margin-right:auto}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-16{height:calc(var(--spacing)*16)}.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-64{max-height:calc(var(--spacing)*64)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[6lh\]{max-height:6lh}.min-h-\[80px\]{min-height:80px}.min-h-\[200px\]{min-height:200px}.min-h-full{min-height:100%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-10{width:calc(var(--spacing)*10)}.w-64{width:calc(var(--spacing)*64)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[80\%\]{max-width:80%}.max-w-\[90\%\]{max-width:90%}.max-w-\[200px\]{max-width:200px}.max-w-chat{max-width:var(--max-width-chat)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-prompt-container{max-width:var(--max-width-prompt-container)}.max-w-prose{max-width:var(--max-width-prose)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-\[4px\]{gap:4px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:var(--radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[border-bottom-width\:0\.5px\]{border-bottom-width:.5px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-\[primary\]{border-color:primary}.border-border,.border-border\/30{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.border-border\/50{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-destructive,.border-destructive\/20{border-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-input{border-color:var(--color-input)}.border-transparent{border-color:#0000}.bg-accent-hover{background-color:var(--color-accent-hover)}.bg-background{background-color:var(--color-background)}.bg-black{background-color:var(--color-black)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive,.bg-destructive\/10{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-input-background{background-color:var(--color-input-background)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from:var(--color-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-\[2px\]{padding-block:2px}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[20px\]{font-size:20px}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-\[var\(--font-family\)\]{--tw-font-weight:var(--font-family);font-weight:var(--font-family)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.4px\]{--tw-tracking:-.4px;letter-spacing:-.4px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--font-size\)\]{color:var(--font-size)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground)60%,transparent)}}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-text-tertiary{color:var(--color-text-tertiary)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.decoration-2{text-decoration-thickness:2px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-\[primary\]{accent-color:primary}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-\[0_4px_16px_0_rgba\(0\,0\,0\,0\.04\)\]{--tw-shadow:0 4px 16px 0 var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 8px 24px -16px var(--tw-shadow-color,#0000000a),0 4px 16px 0 var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 8px 24px -16px var(--tw-shadow-color,#0000000a),0 4px 16px 0 var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--color-muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--color-primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--color-muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--color-primary-foreground)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--color-border)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--color-background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--color-foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing)*1)}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:border-border\/50:hover{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/50:hover{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.hover\:border-border\/80:hover{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/80:hover{border-color:color-mix(in oklab,var(--color-border)80%,transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\:bg-background:hover{background-color:var(--color-background)}.hover\:bg-card:hover,.hover\:bg-card\/80:hover{background-color:var(--color-card)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/80:hover{background-color:color-mix(in oklab,var(--color-card)80%,transparent)}}.hover\:bg-card\/90:hover{background-color:var(--color-card)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/90:hover{background-color:color-mix(in oklab,var(--color-card)90%,transparent)}}.hover\:bg-destructive-hover:hover{background-color:var(--color-destructive-hover)}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-secondary-hover:hover{background-color:var(--color-secondary-hover)}.hover\:bg-secondary\/80:hover{background-color:var(--color-secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 8px 24px -16px var(--tw-shadow-color,#0000000a),0 4px 16px 0 var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-muted:focus{background-color:var(--color-muted)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-foreground:focus{color:var(--color-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive:focus-visible{--tw-ring-color:var(--color-destructive)}.focus-visible\:ring-green-500:focus-visible{--tw-ring-color:var(--color-green-500)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing)*0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing)*1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--color-background)}.data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.data-\[state\=active\]\:bg-zinc-100[data-state=active]{background-color:var(--color-zinc-100)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:opacity-100[data-state=active]{opacity:1}.data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 8px 24px -16px var(--tw-shadow-color,#0000000a),0 4px 16px 0 var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=inactive\]\:text-muted-foreground[data-state=inactive]{color:var(--color-muted-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:bg-muted[data-state=open]{background-color:var(--color-muted)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}@media(min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:block{display:block}}@media(min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:p-0{padding:calc(var(--spacing)*0)}}@media(min-width:80rem){.xl\:block{display:block}}@media(min-width:96rem){.\32xl\:block{display:block}}@media(prefers-color-scheme:dark){.dark\:bg-transparent{background-color:#0000}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.text-heading-3{font-size:var(--font-size-heading-3);line-height:var(--line-height-heading-3);letter-spacing:var(--letter-spacing-tight);font-weight:600}.text-subheading{font-size:var(--font-size-subheading);line-height:var(--line-height-subheading);font-weight:400}.text-label{font-size:var(--font-size-label);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;font-weight:500}}:root{--background:var(--color-white);--foreground:var(--color-neutral-950);--card:var(--color-white);--card-foreground:var(--color-neutral-950);--popover:var(--color-white);--popover-foreground:var(--color-neutral-950);--primary:var(--color-neutral-900);--primary-foreground:var(--color-neutral-50);--primary-hover:var(--color-neutral-700);--secondary:var(--color-neutral-100);--secondary-foreground:var(--color-neutral-900);--secondary-hover:var(--color-neutral-50);--muted:var(--color-neutral-50);--muted-foreground:var(--color-neutral-500);--accent:var(--color-neutral-100);--accent-foreground:var(--color-neutral-900);--accent-hover:var(--color-neutral-50);--destructive:var(--color-red-500);--destructive-foreground:var(--color-neutral-50);--destructive-hover:var(--color-red-600);--border:var(--color-neutral-200);--border-dark:var(--color-neutral-300);--border-focus:var(--color-neutral-400);--border-error:var(--color-red-500);--input:var(--color-neutral-200);--input-background:var(--color-white);--ring:var(--color-neutral-900);--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-600);--text-tertiary:var(--color-neutral-500)}.dark{--background:var(--color-neutral-950);--foreground:var(--color-neutral-50);--card:var(--color-neutral-950);--card-foreground:var(--color-neutral-50);--popover:var(--color-neutral-950);--popover-foreground:var(--color-neutral-50);--primary:var(--color-neutral-50);--primary-foreground:var(--color-neutral-900);--primary-hover:var(--color-neutral-200);--secondary:var(--color-neutral-800);--secondary-foreground:var(--color-neutral-50);--secondary-hover:var(--color-neutral-700);--muted:var(--color-neutral-800);--muted-foreground:var(--color-neutral-400);--accent:var(--color-neutral-800);--accent-foreground:var(--color-neutral-50);--accent-hover:var(--color-neutral-700);--destructive:var(--color-red-900);--destructive-foreground:var(--color-neutral-50);--destructive-hover:var(--color-red-800);--border:var(--color-neutral-800);--border-dark:var(--color-neutral-700);--border-focus:var(--color-neutral-600);--border-error:var(--color-red-500);--input:var(--color-neutral-800);--input-background:var(--color-neutral-950);--ring:var(--color-neutral-300);--text-primary:var(--color-neutral-50);--text-secondary:var(--color-neutral-400);--text-tertiary:var(--color-neutral-500)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes slideDownAndFade{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeftAndFade{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}@keyframes slideUpAndFade{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRightAndFade{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes pulse{50%{opacity:.5}}
@@ -1,5 +0,0 @@
1
- import{r as s,R as st,j as l,a as pe,b as at,c as zo,d as it}from"./react-CrKZJ-ak.js";import{h as ct,i as Yo,j as Xo,k as qo,m as Zo,p as Jo,q as Qo,t as er,v as tr,w as nr}from"./vendor-Ccy0WTO1.js";function Pt(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function be(...e){return t=>{let n=!1;const o=e.map(r=>{const a=Pt(r,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let r=0;r<o.length;r++){const a=o[r];typeof a=="function"?a():Pt(e[r],null)}}}}function M(...e){return s.useCallback(be(...e),e)}var or=Symbol.for("react.lazy"),_e=st[" use ".trim().toString()];function rr(e){return typeof e=="object"&&e!==null&&"then"in e}function Lt(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===or&&"_payload"in e&&rr(e._payload)}function kt(e){const t=sr(e),n=s.forwardRef((o,r)=>{let{children:a,...c}=o;Lt(a)&&typeof _e=="function"&&(a=_e(a._payload));const i=s.Children.toArray(a),u=i.find(ir);if(u){const d=u.props.children,f=i.map(p=>p===u?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return l.jsx(t,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return l.jsx(t,{...c,ref:r,children:a})});return n.displayName=`${e}.Slot`,n}var qa=kt("Slot");function sr(e){const t=s.forwardRef((n,o)=>{let{children:r,...a}=n;if(Lt(r)&&typeof _e=="function"&&(r=_e(r._payload)),s.isValidElement(r)){const c=lr(r),i=cr(a,r.props);return r.type!==s.Fragment&&(i.ref=o?be(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ar=Symbol("radix.slottable");function ir(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ar}function cr(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...i)=>{const u=a(...i);return r(...i),u}:r&&(n[o]=r):o==="style"?n[o]={...r,...a}:o==="className"&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function lr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function E(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function ur(e,t){const n=s.createContext(t),o=a=>{const{children:c,...i}=a,u=s.useMemo(()=>i,Object.values(i));return l.jsx(n.Provider,{value:u,children:c})};o.displayName=e+"Provider";function r(a){const c=s.useContext(n);if(c)return c;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[o,r]}function le(e,t=[]){let n=[];function o(a,c){const i=s.createContext(c),u=n.length;n=[...n,c];const d=p=>{const{scope:v,children:y,...C}=p,m=v?.[e]?.[u]||i,h=s.useMemo(()=>C,Object.values(C));return l.jsx(m.Provider,{value:h,children:y})};d.displayName=a+"Provider";function f(p,v){const y=v?.[e]?.[u]||i,C=s.useContext(y);if(C)return C;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[d,f]}const r=()=>{const a=n.map(c=>s.createContext(c));return function(i){const u=i?.[e]||a;return s.useMemo(()=>({[`__scope${e}`]:{...i,[e]:u}}),[i,u])}};return r.scopeName=e,[o,dr(r,...t)]}function dr(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(a){const c=o.reduce((i,{useScope:u,scopeName:d})=>{const p=u(a)[`__scope${d}`];return{...i,...p}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}function xe(e){const t=fr(e),n=s.forwardRef((o,r)=>{const{children:a,...c}=o,i=s.Children.toArray(a),u=i.find(mr);if(u){const d=u.props.children,f=i.map(p=>p===u?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return l.jsx(t,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return l.jsx(t,{...c,ref:r,children:a})});return n.displayName=`${e}.Slot`,n}function fr(e){const t=s.forwardRef((n,o)=>{const{children:r,...a}=n;if(s.isValidElement(r)){const c=hr(r),i=vr(a,r.props);return r.type!==s.Fragment&&(i.ref=o?be(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pr=Symbol("radix.slottable");function mr(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pr}function vr(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...i)=>{const u=a(...i);return r(...i),u}:r&&(n[o]=r):o==="style"?n[o]={...r,...a}:o==="className"&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function hr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function lt(e){const t=e+"CollectionProvider",[n,o]=le(t),[r,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=m=>{const{scope:h,children:x}=m,g=pe.useRef(null),w=pe.useRef(new Map).current;return l.jsx(r,{scope:h,itemMap:w,collectionRef:g,children:x})};c.displayName=t;const i=e+"CollectionSlot",u=xe(i),d=pe.forwardRef((m,h)=>{const{scope:x,children:g}=m,w=a(i,x),R=M(h,w.collectionRef);return l.jsx(u,{ref:R,children:g})});d.displayName=i;const f=e+"CollectionItemSlot",p="data-radix-collection-item",v=xe(f),y=pe.forwardRef((m,h)=>{const{scope:x,children:g,...w}=m,R=pe.useRef(null),T=M(h,R),F=a(f,x);return pe.useEffect(()=>(F.itemMap.set(R,{ref:R,...w}),()=>void F.itemMap.delete(R))),l.jsx(v,{[p]:"",ref:T,children:g})});y.displayName=f;function C(m){const h=a(e+"CollectionConsumer",m);return pe.useCallback(()=>{const g=h.collectionRef.current;if(!g)return[];const w=Array.from(g.querySelectorAll(`[${p}]`));return Array.from(h.itemMap.values()).sort((F,I)=>w.indexOf(F.ref.current)-w.indexOf(I.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:c,Slot:d,ItemSlot:y},C,o]}var U=globalThis?.document?s.useLayoutEffect:()=>{},gr=st[" useId ".trim().toString()]||(()=>{}),xr=0;function De(e){const[t,n]=s.useState(gr());return U(()=>{n(o=>o??String(xr++))},[e]),t?`radix-${t}`:""}var wr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],P=wr.reduce((e,t)=>{const n=xe(`Primitive.${t}`),o=s.forwardRef((r,a)=>{const{asChild:c,...i}=r,u=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(u,{...i,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function $t(e,t){e&&at.flushSync(()=>e.dispatchEvent(t))}function ae(e){const t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>(...n)=>t.current?.(...n),[])}var yr=st[" useInsertionEffect ".trim().toString()]||U;function Bt({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,a,c]=Cr({defaultProp:t,onChange:n}),i=e!==void 0,u=i?e:r;{const f=s.useRef(e!==void 0);s.useEffect(()=>{const p=f.current;p!==i&&console.warn(`${o} is changing from ${p?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,o])}const d=s.useCallback(f=>{if(i){const p=Sr(f)?f(e):f;p!==e&&c.current?.(p)}else a(f)},[i,e,a,c]);return[u,d]}function Cr({defaultProp:e,onChange:t}){const[n,o]=s.useState(e),r=s.useRef(n),a=s.useRef(t);return yr(()=>{a.current=t},[t]),s.useEffect(()=>{r.current!==n&&(a.current?.(n),r.current=n)},[n,r]),[n,o,a]}function Sr(e){return typeof e=="function"}var Er=s.createContext(void 0);function Ut(e){const t=s.useContext(Er);return e||t||"ltr"}var ze="rovingFocusGroup.onEntryFocus",br={bubbles:!1,cancelable:!0},Re="RovingFocusGroup",[Ze,Kt,Rr]=lt(Re),[Ir,Oe]=le(Re,[Rr]),[Pr,_r]=Ir(Re),Wt=s.forwardRef((e,t)=>l.jsx(Ze.Provider,{scope:e.__scopeRovingFocusGroup,children:l.jsx(Ze.Slot,{scope:e.__scopeRovingFocusGroup,children:l.jsx(Mr,{...e,ref:t})})}));Wt.displayName=Re;var Mr=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:a,currentTabStopId:c,defaultCurrentTabStopId:i,onCurrentTabStopIdChange:u,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,v=s.useRef(null),y=M(t,v),C=Ut(a),[m,h]=Bt({prop:c,defaultProp:i??null,onChange:u,caller:Re}),[x,g]=s.useState(!1),w=ae(d),R=Kt(n),T=s.useRef(!1),[F,I]=s.useState(0);return s.useEffect(()=>{const _=v.current;if(_)return _.addEventListener(ze,w),()=>_.removeEventListener(ze,w)},[w]),l.jsx(Pr,{scope:n,orientation:o,dir:C,loop:r,currentTabStopId:m,onItemFocus:s.useCallback(_=>h(_),[h]),onItemShiftTab:s.useCallback(()=>g(!0),[]),onFocusableItemAdd:s.useCallback(()=>I(_=>_+1),[]),onFocusableItemRemove:s.useCallback(()=>I(_=>_-1),[]),children:l.jsx(P.div,{tabIndex:x||F===0?-1:0,"data-orientation":o,...p,ref:y,style:{outline:"none",...e.style},onMouseDown:E(e.onMouseDown,()=>{T.current=!0}),onFocus:E(e.onFocus,_=>{const $=!T.current;if(_.target===_.currentTarget&&$&&!x){const L=new CustomEvent(ze,br);if(_.currentTarget.dispatchEvent(L),!L.defaultPrevented){const B=R().filter(k=>k.focusable),K=B.find(k=>k.active),W=B.find(k=>k.id===m),H=[K,W,...B].filter(Boolean).map(k=>k.ref.current);Ht(H,f)}}T.current=!1}),onBlur:E(e.onBlur,()=>g(!1))})})}),Gt="RovingFocusGroupItem",Vt=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:a,children:c,...i}=e,u=De(),d=a||u,f=_r(Gt,n),p=f.currentTabStopId===d,v=Kt(n),{onFocusableItemAdd:y,onFocusableItemRemove:C,currentTabStopId:m}=f;return s.useEffect(()=>{if(o)return y(),()=>C()},[o,y,C]),l.jsx(Ze.ItemSlot,{scope:n,id:d,focusable:o,active:r,children:l.jsx(P.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:E(e.onMouseDown,h=>{o?f.onItemFocus(d):h.preventDefault()}),onFocus:E(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:E(e.onKeyDown,h=>{if(h.key==="Tab"&&h.shiftKey){f.onItemShiftTab();return}if(h.target!==h.currentTarget)return;const x=Ar(h,f.orientation,f.dir);if(x!==void 0){if(h.metaKey||h.ctrlKey||h.altKey||h.shiftKey)return;h.preventDefault();let w=v().filter(R=>R.focusable).map(R=>R.ref.current);if(x==="last")w.reverse();else if(x==="prev"||x==="next"){x==="prev"&&w.reverse();const R=w.indexOf(h.currentTarget);w=f.loop?Dr(w,R+1):w.slice(R+1)}setTimeout(()=>Ht(w))}}),children:typeof c=="function"?c({isCurrentTabStop:p,hasTabStop:m!=null}):c})})});Vt.displayName=Gt;var Tr={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Nr(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Ar(e,t,n){const o=Nr(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Tr[o]}function Ht(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function Dr(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var zt=Wt,Yt=Vt;function Or(e,t){return s.useReducer((n,o)=>t[n][o]??n,e)}var ie=e=>{const{present:t,children:n}=e,o=jr(t),r=typeof n=="function"?n({present:o.isPresent}):s.Children.only(n),a=M(o.ref,Fr(r));return typeof n=="function"||o.isPresent?s.cloneElement(r,{ref:a}):null};ie.displayName="Presence";function jr(e){const[t,n]=s.useState(),o=s.useRef(null),r=s.useRef(e),a=s.useRef("none"),c=e?"mounted":"unmounted",[i,u]=Or(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return s.useEffect(()=>{const d=Pe(o.current);a.current=i==="mounted"?d:"none"},[i]),U(()=>{const d=o.current,f=r.current;if(f!==e){const v=a.current,y=Pe(d);e?u("MOUNT"):y==="none"||d?.display==="none"?u("UNMOUNT"):u(f&&v!==y?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,u]),U(()=>{if(t){let d;const f=t.ownerDocument.defaultView??window,p=y=>{const m=Pe(o.current).includes(CSS.escape(y.animationName));if(y.target===t&&m&&(u("ANIMATION_END"),!r.current)){const h=t.style.animationFillMode;t.style.animationFillMode="forwards",d=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=h)})}},v=y=>{y.target===t&&(a.current=Pe(o.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{f.clearTimeout(d),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:s.useCallback(d=>{o.current=d?getComputedStyle(d):null,n(d)},[])}}function Pe(e){return e?.animationName||"none"}function Fr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var je="Tabs",[Lr]=le(je,[Oe]),Xt=Oe(),[kr,ut]=Lr(je),qt=s.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:r,defaultValue:a,orientation:c="horizontal",dir:i,activationMode:u="automatic",...d}=e,f=Ut(i),[p,v]=Bt({prop:o,onChange:r,defaultProp:a??"",caller:je});return l.jsx(kr,{scope:n,baseId:De(),value:p,onValueChange:v,orientation:c,dir:f,activationMode:u,children:l.jsx(P.div,{dir:f,"data-orientation":c,...d,ref:t})})});qt.displayName=je;var Zt="TabsList",Jt=s.forwardRef((e,t)=>{const{__scopeTabs:n,loop:o=!0,...r}=e,a=ut(Zt,n),c=Xt(n);return l.jsx(zt,{asChild:!0,...c,orientation:a.orientation,dir:a.dir,loop:o,children:l.jsx(P.div,{role:"tablist","aria-orientation":a.orientation,...r,ref:t})})});Jt.displayName=Zt;var Qt="TabsTrigger",en=s.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,disabled:r=!1,...a}=e,c=ut(Qt,n),i=Xt(n),u=on(c.baseId,o),d=rn(c.baseId,o),f=o===c.value;return l.jsx(Yt,{asChild:!0,...i,focusable:!r,active:f,children:l.jsx(P.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":d,"data-state":f?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:u,...a,ref:t,onMouseDown:E(e.onMouseDown,p=>{!r&&p.button===0&&p.ctrlKey===!1?c.onValueChange(o):p.preventDefault()}),onKeyDown:E(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&c.onValueChange(o)}),onFocus:E(e.onFocus,()=>{const p=c.activationMode!=="manual";!f&&!r&&p&&c.onValueChange(o)})})})});en.displayName=Qt;var tn="TabsContent",nn=s.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,forceMount:r,children:a,...c}=e,i=ut(tn,n),u=on(i.baseId,o),d=rn(i.baseId,o),f=o===i.value,p=s.useRef(f);return s.useEffect(()=>{const v=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(v)},[]),l.jsx(ie,{present:r||f,children:({present:v})=>l.jsx(P.div,{"data-state":f?"active":"inactive","data-orientation":i.orientation,role:"tabpanel","aria-labelledby":u,hidden:!v,id:d,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:v&&a})})});nn.displayName=tn;function on(e,t){return`${e}-trigger-${t}`}function rn(e,t){return`${e}-content-${t}`}var Za=qt,Ja=Jt,Qa=en,ei=nn;function $r(e,t=globalThis?.document){const n=ae(e);s.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var Br="DismissableLayer",Je="dismissableLayer.update",Ur="dismissableLayer.pointerDownOutside",Kr="dismissableLayer.focusOutside",_t,sn=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Fe=s.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:c,onDismiss:i,...u}=e,d=s.useContext(sn),[f,p]=s.useState(null),v=f?.ownerDocument??globalThis?.document,[,y]=s.useState({}),C=M(t,I=>p(I)),m=Array.from(d.layers),[h]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),x=m.indexOf(h),g=f?m.indexOf(f):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,R=g>=x,T=Vr(I=>{const _=I.target,$=[...d.branches].some(L=>L.contains(_));!R||$||(r?.(I),c?.(I),I.defaultPrevented||i?.())},v),F=Hr(I=>{const _=I.target;[...d.branches].some(L=>L.contains(_))||(a?.(I),c?.(I),I.defaultPrevented||i?.())},v);return $r(I=>{g===d.layers.size-1&&(o?.(I),!I.defaultPrevented&&i&&(I.preventDefault(),i()))},v),s.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(_t=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Mt(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=_t)}},[f,v,n,d]),s.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Mt())},[f,d]),s.useEffect(()=>{const I=()=>y({});return document.addEventListener(Je,I),()=>document.removeEventListener(Je,I)},[]),l.jsx(P.div,{...u,ref:C,style:{pointerEvents:w?R?"auto":"none":void 0,...e.style},onFocusCapture:E(e.onFocusCapture,F.onFocusCapture),onBlurCapture:E(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,T.onPointerDownCapture)})});Fe.displayName=Br;var Wr="DismissableLayerBranch",Gr=s.forwardRef((e,t)=>{const n=s.useContext(sn),o=s.useRef(null),r=M(t,o);return s.useEffect(()=>{const a=o.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),l.jsx(P.div,{...e,ref:r})});Gr.displayName=Wr;function Vr(e,t=globalThis?.document){const n=ae(e),o=s.useRef(!1),r=s.useRef(()=>{});return s.useEffect(()=>{const a=i=>{if(i.target&&!o.current){let u=function(){an(Ur,n,d,{discrete:!0})};const d={originalEvent:i};i.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=u,t.addEventListener("click",r.current,{once:!0})):u()}else t.removeEventListener("click",r.current);o.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",a),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function Hr(e,t=globalThis?.document){const n=ae(e),o=s.useRef(!1);return s.useEffect(()=>{const r=a=>{a.target&&!o.current&&an(Kr,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Mt(){const e=new CustomEvent(Je);document.dispatchEvent(e)}function an(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?$t(r,a):r.dispatchEvent(a)}var Ye="focusScope.autoFocusOnMount",Xe="focusScope.autoFocusOnUnmount",Tt={bubbles:!1,cancelable:!0},zr="FocusScope",Le=s.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...c}=e,[i,u]=s.useState(null),d=ae(r),f=ae(a),p=s.useRef(null),v=M(t,m=>u(m)),y=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(o){let m=function(w){if(y.paused||!i)return;const R=w.target;i.contains(R)?p.current=R:ce(p.current,{select:!0})},h=function(w){if(y.paused||!i)return;const R=w.relatedTarget;R!==null&&(i.contains(R)||ce(p.current,{select:!0}))},x=function(w){if(document.activeElement===document.body)for(const T of w)T.removedNodes.length>0&&ce(i)};document.addEventListener("focusin",m),document.addEventListener("focusout",h);const g=new MutationObserver(x);return i&&g.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",h),g.disconnect()}}},[o,i,y.paused]),s.useEffect(()=>{if(i){At.add(y);const m=document.activeElement;if(!i.contains(m)){const x=new CustomEvent(Ye,Tt);i.addEventListener(Ye,d),i.dispatchEvent(x),x.defaultPrevented||(Yr(Qr(cn(i)),{select:!0}),document.activeElement===m&&ce(i))}return()=>{i.removeEventListener(Ye,d),setTimeout(()=>{const x=new CustomEvent(Xe,Tt);i.addEventListener(Xe,f),i.dispatchEvent(x),x.defaultPrevented||ce(m??document.body,{select:!0}),i.removeEventListener(Xe,f),At.remove(y)},0)}}},[i,d,f,y]);const C=s.useCallback(m=>{if(!n&&!o||y.paused)return;const h=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,x=document.activeElement;if(h&&x){const g=m.currentTarget,[w,R]=Xr(g);w&&R?!m.shiftKey&&x===R?(m.preventDefault(),n&&ce(w,{select:!0})):m.shiftKey&&x===w&&(m.preventDefault(),n&&ce(R,{select:!0})):x===g&&m.preventDefault()}},[n,o,y.paused]);return l.jsx(P.div,{tabIndex:-1,...c,ref:v,onKeyDown:C})});Le.displayName=zr;function Yr(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(ce(o,{select:t}),document.activeElement!==n)return}function Xr(e){const t=cn(e),n=Nt(t,e),o=Nt(t.reverse(),e);return[n,o]}function cn(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Nt(e,t){for(const n of e)if(!qr(n,{upTo:t}))return n}function qr(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Zr(e){return e instanceof HTMLInputElement&&"select"in e}function ce(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Zr(e)&&t&&e.select()}}var At=Jr();function Jr(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=Dt(e,t),e.unshift(t)},remove(t){e=Dt(e,t),e[0]?.resume()}}}function Dt(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function Qr(e){return e.filter(t=>t.tagName!=="A")}var es="Portal",ke=s.forwardRef((e,t)=>{const{container:n,...o}=e,[r,a]=s.useState(!1);U(()=>a(!0),[]);const c=n||r&&globalThis?.document?.body;return c?zo.createPortal(l.jsx(P.div,{...o,ref:t}),c):null});ke.displayName=es;var qe=0;function dt(){s.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Ot()),document.body.insertAdjacentElement("beforeend",e[1]??Ot()),qe++,()=>{qe===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),qe--}},[])}function Ot(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ln="Dialog",[un]=le(ln),[ti,oe]=un(ln),dn="DialogTrigger",ts=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=oe(dn,n),a=M(t,r.triggerRef);return l.jsx(P.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":mt(r.open),...o,ref:a,onClick:E(e.onClick,r.onOpenToggle)})});ts.displayName=dn;var ft="DialogPortal",[ns,fn]=un(ft,{forceMount:void 0}),pn=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:r}=e,a=oe(ft,t);return l.jsx(ns,{scope:t,forceMount:n,children:s.Children.map(o,c=>l.jsx(ie,{present:n||a.open,children:l.jsx(ke,{asChild:!0,container:r,children:c})}))})};pn.displayName=ft;var Me="DialogOverlay",mn=s.forwardRef((e,t)=>{const n=fn(Me,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,a=oe(Me,e.__scopeDialog);return a.modal?l.jsx(ie,{present:o||a.open,children:l.jsx(rs,{...r,ref:t})}):null});mn.displayName=Me;var os=xe("DialogOverlay.RemoveScroll"),rs=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=oe(Me,n);return l.jsx(it,{as:os,allowPinchZoom:!0,shards:[r.contentRef],children:l.jsx(P.div,{"data-state":mt(r.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),me="DialogContent",vn=s.forwardRef((e,t)=>{const n=fn(me,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,a=oe(me,e.__scopeDialog);return l.jsx(ie,{present:o||a.open,children:a.modal?l.jsx(ss,{...r,ref:t}):l.jsx(as,{...r,ref:t})})});vn.displayName=me;var ss=s.forwardRef((e,t)=>{const n=oe(me,e.__scopeDialog),o=s.useRef(null),r=M(t,n.contentRef,o);return s.useEffect(()=>{const a=o.current;if(a)return ct(a)},[]),l.jsx(hn,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,a=>{a.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,i=c.button===0&&c.ctrlKey===!0;(c.button===2||i)&&a.preventDefault()}),onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault())})}),as=s.forwardRef((e,t)=>{const n=oe(me,e.__scopeDialog),o=s.useRef(!1),r=s.useRef(!1);return l.jsx(hn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),a.defaultPrevented||(o.current||n.triggerRef.current?.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;n.triggerRef.current?.contains(c)&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),hn=s.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,...c}=e,i=oe(me,n),u=s.useRef(null),d=M(t,u);return dt(),l.jsxs(l.Fragment,{children:[l.jsx(Le,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:l.jsx(Fe,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":mt(i.open),...c,ref:d,onDismiss:()=>i.onOpenChange(!1)})}),l.jsxs(l.Fragment,{children:[l.jsx(is,{titleId:i.titleId}),l.jsx(ls,{contentRef:u,descriptionId:i.descriptionId})]})]})}),pt="DialogTitle",gn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=oe(pt,n);return l.jsx(P.h2,{id:r.titleId,...o,ref:t})});gn.displayName=pt;var xn="DialogDescription",wn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=oe(xn,n);return l.jsx(P.p,{id:r.descriptionId,...o,ref:t})});wn.displayName=xn;var yn="DialogClose",Cn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=oe(yn,n);return l.jsx(P.button,{type:"button",...o,ref:t,onClick:E(e.onClick,()=>r.onOpenChange(!1))})});Cn.displayName=yn;function mt(e){return e?"open":"closed"}var Sn="DialogTitleWarning",[ni,En]=ur(Sn,{contentName:me,titleName:pt,docsSlug:"dialog"}),is=({titleId:e})=>{const t=En(Sn),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},cs="DialogDescriptionWarning",ls=({contentRef:e,descriptionId:t})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${En(cs).contentName}}.`;return s.useEffect(()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},oi=pn,ri=mn,si=vn,ai=gn,ii=wn,ci=Cn,us="Arrow",bn=s.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...a}=e;return l.jsx(P.svg,{...a,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:l.jsx("polygon",{points:"0,0 30,0 15,10"})})});bn.displayName=us;var ds=bn;function fs(e){const[t,n]=s.useState(void 0);return U(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const a=r[0];let c,i;if("borderBoxSize"in a){const u=a.borderBoxSize,d=Array.isArray(u)?u[0]:u;c=d.inlineSize,i=d.blockSize}else c=e.offsetWidth,i=e.offsetHeight;n({width:c,height:i})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var Rn="Popper",[In,$e]=le(Rn),[li,Pn]=In(Rn),_n="PopperAnchor",Mn=s.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,a=Pn(_n,n),c=s.useRef(null),i=M(t,c),u=s.useRef(null);return s.useEffect(()=>{const d=u.current;u.current=o?.current||c.current,d!==u.current&&a.onAnchorChange(u.current)}),o?null:l.jsx(P.div,{...r,ref:i})});Mn.displayName=_n;var vt="PopperContent",[ps,ms]=In(vt),Tn=s.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:a="center",alignOffset:c=0,arrowPadding:i=0,avoidCollisions:u=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:v=!1,updatePositionStrategy:y="optimized",onPlaced:C,...m}=e,h=Pn(vt,n),[x,g]=s.useState(null),w=M(t,S=>g(S)),[R,T]=s.useState(null),F=fs(R),I=F?.width??0,_=F?.height??0,$=o+(a!=="center"?"-"+a:""),L=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},B=Array.isArray(d)?d:[d],K=B.length>0,W={padding:L,boundary:B.filter(hs),altBoundary:K},{refs:Y,floatingStyles:H,placement:k,isPositioned:X,middlewareData:O}=Yo({strategy:"fixed",placement:$,whileElementsMounted:(...S)=>nr(...S,{animationFrame:y==="always"}),elements:{reference:h.anchor},middleware:[Xo({mainAxis:r+_,alignmentAxis:c}),u&&qo({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?tr():void 0,...W}),u&&Zo({...W}),Jo({...W,apply:({elements:S,rects:N,availableWidth:V,availableHeight:A})=>{const{width:D,height:j}=N.reference,Q=S.floating.style;Q.setProperty("--radix-popper-available-width",`${V}px`),Q.setProperty("--radix-popper-available-height",`${A}px`),Q.setProperty("--radix-popper-anchor-width",`${D}px`),Q.setProperty("--radix-popper-anchor-height",`${j}px`)}}),R&&Qo({element:R,padding:i}),gs({arrowWidth:I,arrowHeight:_}),v&&er({strategy:"referenceHidden",...W})]}),[b,Z]=Dn(k),G=ae(C);U(()=>{X&&G?.()},[X,G]);const te=O.arrow?.x,re=O.arrow?.y,J=O.arrow?.centerOffset!==0,[se,q]=s.useState();return U(()=>{x&&q(window.getComputedStyle(x).zIndex)},[x]),l.jsx("div",{ref:Y.setFloating,"data-radix-popper-content-wrapper":"",style:{...H,transform:X?H.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:se,"--radix-popper-transform-origin":[O.transformOrigin?.x,O.transformOrigin?.y].join(" "),...O.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:l.jsx(ps,{scope:n,placedSide:b,onArrowChange:T,arrowX:te,arrowY:re,shouldHideArrow:J,children:l.jsx(P.div,{"data-side":b,"data-align":Z,...m,ref:w,style:{...m.style,animation:X?void 0:"none"}})})})});Tn.displayName=vt;var Nn="PopperArrow",vs={top:"bottom",right:"left",bottom:"top",left:"right"},An=s.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,a=ms(Nn,o),c=vs[a.placedSide];return l.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:l.jsx(ds,{...r,ref:n,style:{...r.style,display:"block"}})})});An.displayName=Nn;function hs(e){return e!==null}var gs=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,c=r.arrow?.centerOffset!==0,i=c?0:e.arrowWidth,u=c?0:e.arrowHeight,[d,f]=Dn(n),p={start:"0%",center:"50%",end:"100%"}[f],v=(r.arrow?.x??0)+i/2,y=(r.arrow?.y??0)+u/2;let C="",m="";return d==="bottom"?(C=c?p:`${v}px`,m=`${-u}px`):d==="top"?(C=c?p:`${v}px`,m=`${o.floating.height+u}px`):d==="right"?(C=`${-u}px`,m=c?p:`${y}px`):d==="left"&&(C=`${o.floating.width+u}px`,m=c?p:`${y}px`),{data:{x:C,y:m}}}});function Dn(e){const[t,n="center"]=e.split("-");return[t,n]}var On=Mn,jn=Tn,Fn=An,Qe=["Enter"," "],xs=["ArrowDown","PageUp","Home"],Ln=["ArrowUp","PageDown","End"],ws=[...xs,...Ln],ys={ltr:[...Qe,"ArrowRight"],rtl:[...Qe,"ArrowLeft"]},Cs={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Be="Menu",[Se,Ss,Es]=lt(Be),[he,kn]=le(Be,[Es,$e,Oe]),ht=$e(),$n=Oe(),[ui,ge]=he(Be),[di,Ie]=he(Be),bs="MenuAnchor",gt=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ht(n);return l.jsx(On,{...r,...o,ref:t})});gt.displayName=bs;var xt="MenuPortal",[Rs,Bn]=he(xt,{forceMount:void 0}),Un=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,a=ge(xt,t);return l.jsx(Rs,{scope:t,forceMount:n,children:l.jsx(ie,{present:n||a.open,children:l.jsx(ke,{asChild:!0,container:r,children:o})})})};Un.displayName=xt;var ee="MenuContent",[Is,wt]=he(ee),Kn=s.forwardRef((e,t)=>{const n=Bn(ee,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,a=ge(ee,e.__scopeMenu),c=Ie(ee,e.__scopeMenu);return l.jsx(Se.Provider,{scope:e.__scopeMenu,children:l.jsx(ie,{present:o||a.open,children:l.jsx(Se.Slot,{scope:e.__scopeMenu,children:c.modal?l.jsx(Ps,{...r,ref:t}):l.jsx(_s,{...r,ref:t})})})})}),Ps=s.forwardRef((e,t)=>{const n=ge(ee,e.__scopeMenu),o=s.useRef(null),r=M(t,o);return s.useEffect(()=>{const a=o.current;if(a)return ct(a)},[]),l.jsx(yt,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),_s=s.forwardRef((e,t)=>{const n=ge(ee,e.__scopeMenu);return l.jsx(yt,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Ms=xe("MenuContent.ScrollLock"),yt=s.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:i,onEntryFocus:u,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:v,onDismiss:y,disableOutsideScroll:C,...m}=e,h=ge(ee,n),x=Ie(ee,n),g=ht(n),w=$n(n),R=Ss(n),[T,F]=s.useState(null),I=s.useRef(null),_=M(t,I,h.onContentChange),$=s.useRef(0),L=s.useRef(""),B=s.useRef(0),K=s.useRef(null),W=s.useRef("right"),Y=s.useRef(0),H=C?it:s.Fragment,k=C?{as:Ms,allowPinchZoom:!0}:void 0,X=b=>{const Z=L.current+b,G=R().filter(S=>!S.disabled),te=document.activeElement,re=G.find(S=>S.ref.current===te)?.textValue,J=G.map(S=>S.textValue),se=Us(J,Z,re),q=G.find(S=>S.textValue===se)?.ref.current;(function S(N){L.current=N,window.clearTimeout($.current),N!==""&&($.current=window.setTimeout(()=>S(""),1e3))})(Z),q&&setTimeout(()=>q.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),dt();const O=s.useCallback(b=>W.current===K.current?.side&&Ws(b,K.current?.area),[]);return l.jsx(Is,{scope:n,searchRef:L,onItemEnter:s.useCallback(b=>{O(b)&&b.preventDefault()},[O]),onItemLeave:s.useCallback(b=>{O(b)||(I.current?.focus(),F(null))},[O]),onTriggerLeave:s.useCallback(b=>{O(b)&&b.preventDefault()},[O]),pointerGraceTimerRef:B,onPointerGraceIntentChange:s.useCallback(b=>{K.current=b},[]),children:l.jsx(H,{...k,children:l.jsx(Le,{asChild:!0,trapped:r,onMountAutoFocus:E(a,b=>{b.preventDefault(),I.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:l.jsx(Fe,{asChild:!0,disableOutsidePointerEvents:i,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:v,onDismiss:y,children:l.jsx(zt,{asChild:!0,...w,dir:x.dir,orientation:"vertical",loop:o,currentTabStopId:T,onCurrentTabStopIdChange:F,onEntryFocus:E(u,b=>{x.isUsingKeyboardRef.current||b.preventDefault()}),preventScrollOnEntryFocus:!0,children:l.jsx(jn,{role:"menu","aria-orientation":"vertical","data-state":ro(h.open),"data-radix-menu-content":"",dir:x.dir,...g,...m,ref:_,style:{outline:"none",...m.style},onKeyDown:E(m.onKeyDown,b=>{const G=b.target.closest("[data-radix-menu-content]")===b.currentTarget,te=b.ctrlKey||b.altKey||b.metaKey,re=b.key.length===1;G&&(b.key==="Tab"&&b.preventDefault(),!te&&re&&X(b.key));const J=I.current;if(b.target!==J||!ws.includes(b.key))return;b.preventDefault();const q=R().filter(S=>!S.disabled).map(S=>S.ref.current);Ln.includes(b.key)&&q.reverse(),$s(q)}),onBlur:E(e.onBlur,b=>{b.currentTarget.contains(b.target)||(window.clearTimeout($.current),L.current="")}),onPointerMove:E(e.onPointerMove,Ee(b=>{const Z=b.target,G=Y.current!==b.clientX;if(b.currentTarget.contains(Z)&&G){const te=b.clientX>Y.current?"right":"left";W.current=te,Y.current=b.clientX}}))})})})})})})});Kn.displayName=ee;var Ts="MenuGroup",Ct=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return l.jsx(P.div,{role:"group",...o,ref:t})});Ct.displayName=Ts;var Ns="MenuLabel",Wn=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return l.jsx(P.div,{...o,ref:t})});Wn.displayName=Ns;var Te="MenuItem",jt="menu.itemSelect",Ue=s.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,a=s.useRef(null),c=Ie(Te,e.__scopeMenu),i=wt(Te,e.__scopeMenu),u=M(t,a),d=s.useRef(!1),f=()=>{const p=a.current;if(!n&&p){const v=new CustomEvent(jt,{bubbles:!0,cancelable:!0});p.addEventListener(jt,y=>o?.(y),{once:!0}),$t(p,v),v.defaultPrevented?d.current=!1:c.onClose()}};return l.jsx(Gn,{...r,ref:u,disabled:n,onClick:E(e.onClick,f),onPointerDown:p=>{e.onPointerDown?.(p),d.current=!0},onPointerUp:E(e.onPointerUp,p=>{d.current||p.currentTarget?.click()}),onKeyDown:E(e.onKeyDown,p=>{const v=i.searchRef.current!=="";n||v&&p.key===" "||Qe.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});Ue.displayName=Te;var Gn=s.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...a}=e,c=wt(Te,n),i=$n(n),u=s.useRef(null),d=M(t,u),[f,p]=s.useState(!1),[v,y]=s.useState("");return s.useEffect(()=>{const C=u.current;C&&y((C.textContent??"").trim())},[a.children]),l.jsx(Se.ItemSlot,{scope:n,disabled:o,textValue:r??v,children:l.jsx(Yt,{asChild:!0,...i,focusable:!o,children:l.jsx(P.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:d,onPointerMove:E(e.onPointerMove,Ee(C=>{o?c.onItemLeave(C):(c.onItemEnter(C),C.defaultPrevented||C.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:E(e.onPointerLeave,Ee(C=>c.onItemLeave(C))),onFocus:E(e.onFocus,()=>p(!0)),onBlur:E(e.onBlur,()=>p(!1))})})})}),As="MenuCheckboxItem",Vn=s.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return l.jsx(qn,{scope:e.__scopeMenu,checked:n,children:l.jsx(Ue,{role:"menuitemcheckbox","aria-checked":Ne(n)?"mixed":n,...r,ref:t,"data-state":Et(n),onSelect:E(r.onSelect,()=>o?.(Ne(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Vn.displayName=As;var Hn="MenuRadioGroup",[Ds,Os]=he(Hn,{value:void 0,onValueChange:()=>{}}),zn=s.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,a=ae(o);return l.jsx(Ds,{scope:e.__scopeMenu,value:n,onValueChange:a,children:l.jsx(Ct,{...r,ref:t})})});zn.displayName=Hn;var Yn="MenuRadioItem",Xn=s.forwardRef((e,t)=>{const{value:n,...o}=e,r=Os(Yn,e.__scopeMenu),a=n===r.value;return l.jsx(qn,{scope:e.__scopeMenu,checked:a,children:l.jsx(Ue,{role:"menuitemradio","aria-checked":a,...o,ref:t,"data-state":Et(a),onSelect:E(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});Xn.displayName=Yn;var St="MenuItemIndicator",[qn,js]=he(St,{checked:!1}),Zn=s.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,a=js(St,n);return l.jsx(ie,{present:o||Ne(a.checked)||a.checked===!0,children:l.jsx(P.span,{...r,ref:t,"data-state":Et(a.checked)})})});Zn.displayName=St;var Fs="MenuSeparator",Jn=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return l.jsx(P.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});Jn.displayName=Fs;var Ls="MenuArrow",Qn=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ht(n);return l.jsx(Fn,{...r,...o,ref:t})});Qn.displayName=Ls;var ks="MenuSub",[fi,eo]=he(ks),ye="MenuSubTrigger",to=s.forwardRef((e,t)=>{const n=ge(ye,e.__scopeMenu),o=Ie(ye,e.__scopeMenu),r=eo(ye,e.__scopeMenu),a=wt(ye,e.__scopeMenu),c=s.useRef(null),{pointerGraceTimerRef:i,onPointerGraceIntentChange:u}=a,d={__scopeMenu:e.__scopeMenu},f=s.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return s.useEffect(()=>f,[f]),s.useEffect(()=>{const p=i.current;return()=>{window.clearTimeout(p),u(null)}},[i,u]),l.jsx(gt,{asChild:!0,...d,children:l.jsx(Gn,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":ro(n.open),...e,ref:be(t,r.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:E(e.onPointerMove,Ee(p=>{a.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!c.current&&(a.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:E(e.onPointerLeave,Ee(p=>{f();const v=n.content?.getBoundingClientRect();if(v){const y=n.content?.dataset.side,C=y==="right",m=C?-5:5,h=v[C?"left":"right"],x=v[C?"right":"left"];a.onPointerGraceIntentChange({area:[{x:p.clientX+m,y:p.clientY},{x:h,y:v.top},{x,y:v.top},{x,y:v.bottom},{x:h,y:v.bottom}],side:y}),window.clearTimeout(i.current),i.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(p),p.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:E(e.onKeyDown,p=>{const v=a.searchRef.current!=="";e.disabled||v&&p.key===" "||ys[o.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});to.displayName=ye;var no="MenuSubContent",oo=s.forwardRef((e,t)=>{const n=Bn(ee,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,a=ge(ee,e.__scopeMenu),c=Ie(ee,e.__scopeMenu),i=eo(no,e.__scopeMenu),u=s.useRef(null),d=M(t,u);return l.jsx(Se.Provider,{scope:e.__scopeMenu,children:l.jsx(ie,{present:o||a.open,children:l.jsx(Se.Slot,{scope:e.__scopeMenu,children:l.jsx(yt,{id:i.contentId,"aria-labelledby":i.triggerId,...r,ref:d,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{c.isUsingKeyboardRef.current&&u.current?.focus(),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:E(e.onFocusOutside,f=>{f.target!==i.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:E(e.onEscapeKeyDown,f=>{c.onClose(),f.preventDefault()}),onKeyDown:E(e.onKeyDown,f=>{const p=f.currentTarget.contains(f.target),v=Cs[c.dir].includes(f.key);p&&v&&(a.onOpenChange(!1),i.trigger?.focus(),f.preventDefault())})})})})})});oo.displayName=no;function ro(e){return e?"open":"closed"}function Ne(e){return e==="indeterminate"}function Et(e){return Ne(e)?"indeterminate":e?"checked":"unchecked"}function $s(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Bs(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function Us(e,t,n){const r=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let c=Bs(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==n));const u=c.find(d=>d.toLowerCase().startsWith(r.toLowerCase()));return u!==n?u:void 0}function Ks(e,t){const{x:n,y:o}=e;let r=!1;for(let a=0,c=t.length-1;a<t.length;c=a++){const i=t[a],u=t[c],d=i.x,f=i.y,p=u.x,v=u.y;f>o!=v>o&&n<(p-d)*(o-f)/(v-f)+d&&(r=!r)}return r}function Ws(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Ks(n,t)}function Ee(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Gs=gt,Vs=Un,Hs=Kn,zs=Ct,Ys=Wn,Xs=Ue,qs=Vn,Zs=zn,Js=Xn,Qs=Zn,ea=Jn,ta=Qn,na=to,oa=oo,so="DropdownMenu",[ra]=le(so,[kn]),z=kn(),[pi,ao]=ra(so),io="DropdownMenuTrigger",sa=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,a=ao(io,n),c=z(n);return l.jsx(Gs,{asChild:!0,...c,children:l.jsx(P.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:be(t,a.triggerRef),onPointerDown:E(e.onPointerDown,i=>{!o&&i.button===0&&i.ctrlKey===!1&&(a.onOpenToggle(),a.open||i.preventDefault())}),onKeyDown:E(e.onKeyDown,i=>{o||(["Enter"," "].includes(i.key)&&a.onOpenToggle(),i.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(i.key)&&i.preventDefault())})})})});sa.displayName=io;var aa="DropdownMenuPortal",co=e=>{const{__scopeDropdownMenu:t,...n}=e,o=z(t);return l.jsx(Vs,{...o,...n})};co.displayName=aa;var lo="DropdownMenuContent",uo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=ao(lo,n),a=z(n),c=s.useRef(!1);return l.jsx(Hs,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:t,onCloseAutoFocus:E(e.onCloseAutoFocus,i=>{c.current||r.triggerRef.current?.focus(),c.current=!1,i.preventDefault()}),onInteractOutside:E(e.onInteractOutside,i=>{const u=i.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;(!r.modal||f)&&(c.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});uo.displayName=lo;var ia="DropdownMenuGroup",ca=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(zs,{...r,...o,ref:t})});ca.displayName=ia;var la="DropdownMenuLabel",fo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(Ys,{...r,...o,ref:t})});fo.displayName=la;var ua="DropdownMenuItem",po=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(Xs,{...r,...o,ref:t})});po.displayName=ua;var da="DropdownMenuCheckboxItem",mo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(qs,{...r,...o,ref:t})});mo.displayName=da;var fa="DropdownMenuRadioGroup",pa=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(Zs,{...r,...o,ref:t})});pa.displayName=fa;var ma="DropdownMenuRadioItem",vo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(Js,{...r,...o,ref:t})});vo.displayName=ma;var va="DropdownMenuItemIndicator",ho=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(Qs,{...r,...o,ref:t})});ho.displayName=va;var ha="DropdownMenuSeparator",go=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(ea,{...r,...o,ref:t})});go.displayName=ha;var ga="DropdownMenuArrow",xa=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(ta,{...r,...o,ref:t})});xa.displayName=ga;var wa="DropdownMenuSubTrigger",xo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(na,{...r,...o,ref:t})});xo.displayName=wa;var ya="DropdownMenuSubContent",wo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=z(n);return l.jsx(oa,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});wo.displayName=ya;var mi=co,vi=uo,hi=fo,gi=po,xi=mo,wi=vo,yi=ho,Ci=go,Si=xo,Ei=wo,Ca=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Sa=Ca.reduce((e,t)=>{const n=kt(`Primitive.${t}`),o=s.forwardRef((r,a)=>{const{asChild:c,...i}=r,u=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(u,{...i,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),Ea="Label",yo=s.forwardRef((e,t)=>l.jsx(Sa.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));yo.displayName=Ea;var bi=yo;function Ft(e,[t,n]){return Math.min(n,Math.max(t,e))}function ba(e){const t=s.useRef({value:e,previous:e});return s.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Co=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Ra="VisuallyHidden",Ia=s.forwardRef((e,t)=>l.jsx(P.span,{...e,ref:t,style:{...Co,...e.style}}));Ia.displayName=Ra;var Pa=[" ","Enter","ArrowUp","ArrowDown"],_a=[" ","Enter"],Ke="Select",[bt,We,Ma]=lt(Ke),[we]=le(Ke,[Ma,$e]),Rt=$e(),[Ri,ue]=we(Ke),[Ii,Ta]=we(Ke),So="SelectTrigger",Eo=s.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...r}=e,a=Rt(n),c=ue(So,n),i=c.disabled||o,u=M(t,c.onTriggerChange),d=We(n),f=s.useRef("touch"),[p,v,y]=Vo(m=>{const h=d().filter(w=>!w.disabled),x=h.find(w=>w.value===c.value),g=Ho(h,m,x);g!==void 0&&c.onValueChange(g.value)}),C=m=>{i||(c.onOpenChange(!0),y()),m&&(c.triggerPointerDownPosRef.current={x:Math.round(m.pageX),y:Math.round(m.pageY)})};return l.jsx(On,{asChild:!0,...a,children:l.jsx(P.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:i,"data-disabled":i?"":void 0,"data-placeholder":Go(c.value)?"":void 0,...r,ref:u,onClick:E(r.onClick,m=>{m.currentTarget.focus(),f.current!=="mouse"&&C(m)}),onPointerDown:E(r.onPointerDown,m=>{f.current=m.pointerType;const h=m.target;h.hasPointerCapture(m.pointerId)&&h.releasePointerCapture(m.pointerId),m.button===0&&m.ctrlKey===!1&&m.pointerType==="mouse"&&(C(m),m.preventDefault())}),onKeyDown:E(r.onKeyDown,m=>{const h=p.current!=="";!(m.ctrlKey||m.altKey||m.metaKey)&&m.key.length===1&&v(m.key),!(h&&m.key===" ")&&Pa.includes(m.key)&&(C(),m.preventDefault())})})})});Eo.displayName=So;var bo="SelectValue",Na=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,children:a,placeholder:c="",...i}=e,u=ue(bo,n),{onValueNodeHasChildrenChange:d}=u,f=a!==void 0,p=M(t,u.onValueNodeChange);return U(()=>{d(f)},[d,f]),l.jsx(P.span,{...i,ref:p,style:{pointerEvents:"none"},children:Go(u.value)?l.jsx(l.Fragment,{children:c}):a})});Na.displayName=bo;var Aa="SelectIcon",Ro=s.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,...r}=e;return l.jsx(P.span,{"aria-hidden":!0,...r,ref:t,children:o||"▼"})});Ro.displayName=Aa;var Da="SelectPortal",Io=e=>l.jsx(ke,{asChild:!0,...e});Io.displayName=Da;var ve="SelectContent",Po=s.forwardRef((e,t)=>{const n=ue(ve,e.__scopeSelect),[o,r]=s.useState();if(U(()=>{r(new DocumentFragment)},[]),!n.open){const a=o;return a?at.createPortal(l.jsx(_o,{scope:e.__scopeSelect,children:l.jsx(bt.Slot,{scope:e.__scopeSelect,children:l.jsx("div",{children:e.children})})}),a):null}return l.jsx(Mo,{...e,ref:t})});Po.displayName=ve;var ne=10,[_o,de]=we(ve),Oa="SelectContentImpl",ja=xe("SelectContent.RemoveScroll"),Mo=s.forwardRef((e,t)=>{const{__scopeSelect:n,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:a,onPointerDownOutside:c,side:i,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:v,collisionPadding:y,sticky:C,hideWhenDetached:m,avoidCollisions:h,...x}=e,g=ue(ve,n),[w,R]=s.useState(null),[T,F]=s.useState(null),I=M(t,S=>R(S)),[_,$]=s.useState(null),[L,B]=s.useState(null),K=We(n),[W,Y]=s.useState(!1),H=s.useRef(!1);s.useEffect(()=>{if(w)return ct(w)},[w]),dt();const k=s.useCallback(S=>{const[N,...V]=K().map(j=>j.ref.current),[A]=V.slice(-1),D=document.activeElement;for(const j of S)if(j===D||(j?.scrollIntoView({block:"nearest"}),j===N&&T&&(T.scrollTop=0),j===A&&T&&(T.scrollTop=T.scrollHeight),j?.focus(),document.activeElement!==D))return},[K,T]),X=s.useCallback(()=>k([_,w]),[k,_,w]);s.useEffect(()=>{W&&X()},[W,X]);const{onOpenChange:O,triggerPointerDownPosRef:b}=g;s.useEffect(()=>{if(w){let S={x:0,y:0};const N=A=>{S={x:Math.abs(Math.round(A.pageX)-(b.current?.x??0)),y:Math.abs(Math.round(A.pageY)-(b.current?.y??0))}},V=A=>{S.x<=10&&S.y<=10?A.preventDefault():w.contains(A.target)||O(!1),document.removeEventListener("pointermove",N),b.current=null};return b.current!==null&&(document.addEventListener("pointermove",N),document.addEventListener("pointerup",V,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",V,{capture:!0})}}},[w,O,b]),s.useEffect(()=>{const S=()=>O(!1);return window.addEventListener("blur",S),window.addEventListener("resize",S),()=>{window.removeEventListener("blur",S),window.removeEventListener("resize",S)}},[O]);const[Z,G]=Vo(S=>{const N=K().filter(D=>!D.disabled),V=N.find(D=>D.ref.current===document.activeElement),A=Ho(N,S,V);A&&setTimeout(()=>A.ref.current.focus())}),te=s.useCallback((S,N,V)=>{const A=!H.current&&!V;(g.value!==void 0&&g.value===N||A)&&($(S),A&&(H.current=!0))},[g.value]),re=s.useCallback(()=>w?.focus(),[w]),J=s.useCallback((S,N,V)=>{const A=!H.current&&!V;(g.value!==void 0&&g.value===N||A)&&B(S)},[g.value]),se=o==="popper"?et:To,q=se===et?{side:i,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:v,collisionPadding:y,sticky:C,hideWhenDetached:m,avoidCollisions:h}:{};return l.jsx(_o,{scope:n,content:w,viewport:T,onViewportChange:F,itemRefCallback:te,selectedItem:_,onItemLeave:re,itemTextRefCallback:J,focusSelectedItem:X,selectedItemText:L,position:o,isPositioned:W,searchRef:Z,children:l.jsx(it,{as:ja,allowPinchZoom:!0,children:l.jsx(Le,{asChild:!0,trapped:g.open,onMountAutoFocus:S=>{S.preventDefault()},onUnmountAutoFocus:E(r,S=>{g.trigger?.focus({preventScroll:!0}),S.preventDefault()}),children:l.jsx(Fe,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:S=>S.preventDefault(),onDismiss:()=>g.onOpenChange(!1),children:l.jsx(se,{role:"listbox",id:g.contentId,"data-state":g.open?"open":"closed",dir:g.dir,onContextMenu:S=>S.preventDefault(),...x,...q,onPlaced:()=>Y(!0),ref:I,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:E(x.onKeyDown,S=>{const N=S.ctrlKey||S.altKey||S.metaKey;if(S.key==="Tab"&&S.preventDefault(),!N&&S.key.length===1&&G(S.key),["ArrowUp","ArrowDown","Home","End"].includes(S.key)){let A=K().filter(D=>!D.disabled).map(D=>D.ref.current);if(["ArrowUp","End"].includes(S.key)&&(A=A.slice().reverse()),["ArrowUp","ArrowDown"].includes(S.key)){const D=S.target,j=A.indexOf(D);A=A.slice(j+1)}setTimeout(()=>k(A)),S.preventDefault()}})})})})})})});Mo.displayName=Oa;var Fa="SelectItemAlignedPosition",To=s.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:o,...r}=e,a=ue(ve,n),c=de(ve,n),[i,u]=s.useState(null),[d,f]=s.useState(null),p=M(t,I=>f(I)),v=We(n),y=s.useRef(!1),C=s.useRef(!0),{viewport:m,selectedItem:h,selectedItemText:x,focusSelectedItem:g}=c,w=s.useCallback(()=>{if(a.trigger&&a.valueNode&&i&&d&&m&&h&&x){const I=a.trigger.getBoundingClientRect(),_=d.getBoundingClientRect(),$=a.valueNode.getBoundingClientRect(),L=x.getBoundingClientRect();if(a.dir!=="rtl"){const D=L.left-_.left,j=$.left-D,Q=I.left-j,fe=I.width+Q,Ge=Math.max(fe,_.width),Ve=window.innerWidth-ne,He=Ft(j,[ne,Math.max(ne,Ve-Ge)]);i.style.minWidth=fe+"px",i.style.left=He+"px"}else{const D=_.right-L.right,j=window.innerWidth-$.right-D,Q=window.innerWidth-I.right-j,fe=I.width+Q,Ge=Math.max(fe,_.width),Ve=window.innerWidth-ne,He=Ft(j,[ne,Math.max(ne,Ve-Ge)]);i.style.minWidth=fe+"px",i.style.right=He+"px"}const B=v(),K=window.innerHeight-ne*2,W=m.scrollHeight,Y=window.getComputedStyle(d),H=parseInt(Y.borderTopWidth,10),k=parseInt(Y.paddingTop,10),X=parseInt(Y.borderBottomWidth,10),O=parseInt(Y.paddingBottom,10),b=H+k+W+O+X,Z=Math.min(h.offsetHeight*5,b),G=window.getComputedStyle(m),te=parseInt(G.paddingTop,10),re=parseInt(G.paddingBottom,10),J=I.top+I.height/2-ne,se=K-J,q=h.offsetHeight/2,S=h.offsetTop+q,N=H+k+S,V=b-N;if(N<=J){const D=B.length>0&&h===B[B.length-1].ref.current;i.style.bottom="0px";const j=d.clientHeight-m.offsetTop-m.offsetHeight,Q=Math.max(se,q+(D?re:0)+j+X),fe=N+Q;i.style.height=fe+"px"}else{const D=B.length>0&&h===B[0].ref.current;i.style.top="0px";const Q=Math.max(J,H+m.offsetTop+(D?te:0)+q)+V;i.style.height=Q+"px",m.scrollTop=N-J+m.offsetTop}i.style.margin=`${ne}px 0`,i.style.minHeight=Z+"px",i.style.maxHeight=K+"px",o?.(),requestAnimationFrame(()=>y.current=!0)}},[v,a.trigger,a.valueNode,i,d,m,h,x,a.dir,o]);U(()=>w(),[w]);const[R,T]=s.useState();U(()=>{d&&T(window.getComputedStyle(d).zIndex)},[d]);const F=s.useCallback(I=>{I&&C.current===!0&&(w(),g?.(),C.current=!1)},[w,g]);return l.jsx(ka,{scope:n,contentWrapper:i,shouldExpandOnScrollRef:y,onScrollButtonChange:F,children:l.jsx("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:l.jsx(P.div,{...r,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});To.displayName=Fa;var La="SelectPopperPosition",et=s.forwardRef((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:r=ne,...a}=e,c=Rt(n);return l.jsx(jn,{...c,...a,ref:t,align:o,collisionPadding:r,style:{boxSizing:"border-box",...a.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)"}})});et.displayName=La;var[ka,It]=we(ve,{}),tt="SelectViewport",No=s.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:o,...r}=e,a=de(tt,n),c=It(tt,n),i=M(t,a.onViewportChange),u=s.useRef(0);return l.jsxs(l.Fragment,{children:[l.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:o}),l.jsx(bt.Slot,{scope:n,children:l.jsx(P.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:i,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:E(r.onScroll,d=>{const f=d.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:v}=c;if(v?.current&&p){const y=Math.abs(u.current-f.scrollTop);if(y>0){const C=window.innerHeight-ne*2,m=parseFloat(p.style.minHeight),h=parseFloat(p.style.height),x=Math.max(m,h);if(x<C){const g=x+y,w=Math.min(C,g),R=g-w;p.style.height=w+"px",p.style.bottom==="0px"&&(f.scrollTop=R>0?R:0,p.style.justifyContent="flex-end")}}}u.current=f.scrollTop})})})]})});No.displayName=tt;var Ao="SelectGroup",[$a,Ba]=we(Ao),Ua=s.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=De();return l.jsx($a,{scope:n,id:r,children:l.jsx(P.div,{role:"group","aria-labelledby":r,...o,ref:t})})});Ua.displayName=Ao;var Do="SelectLabel",Oo=s.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Ba(Do,n);return l.jsx(P.div,{id:r.id,...o,ref:t})});Oo.displayName=Do;var Ae="SelectItem",[Ka,jo]=we(Ae),Fo=s.forwardRef((e,t)=>{const{__scopeSelect:n,value:o,disabled:r=!1,textValue:a,...c}=e,i=ue(Ae,n),u=de(Ae,n),d=i.value===o,[f,p]=s.useState(a??""),[v,y]=s.useState(!1),C=M(t,g=>u.itemRefCallback?.(g,o,r)),m=De(),h=s.useRef("touch"),x=()=>{r||(i.onValueChange(o),i.onOpenChange(!1))};if(o==="")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 l.jsx(Ka,{scope:n,value:o,disabled:r,textId:m,isSelected:d,onItemTextChange:s.useCallback(g=>{p(w=>w||(g?.textContent??"").trim())},[]),children:l.jsx(bt.ItemSlot,{scope:n,value:o,disabled:r,textValue:f,children:l.jsx(P.div,{role:"option","aria-labelledby":m,"data-highlighted":v?"":void 0,"aria-selected":d&&v,"data-state":d?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...c,ref:C,onFocus:E(c.onFocus,()=>y(!0)),onBlur:E(c.onBlur,()=>y(!1)),onClick:E(c.onClick,()=>{h.current!=="mouse"&&x()}),onPointerUp:E(c.onPointerUp,()=>{h.current==="mouse"&&x()}),onPointerDown:E(c.onPointerDown,g=>{h.current=g.pointerType}),onPointerMove:E(c.onPointerMove,g=>{h.current=g.pointerType,r?u.onItemLeave?.():h.current==="mouse"&&g.currentTarget.focus({preventScroll:!0})}),onPointerLeave:E(c.onPointerLeave,g=>{g.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:E(c.onKeyDown,g=>{u.searchRef?.current!==""&&g.key===" "||(_a.includes(g.key)&&x(),g.key===" "&&g.preventDefault())})})})})});Fo.displayName=Ae;var Ce="SelectItemText",Lo=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,...a}=e,c=ue(Ce,n),i=de(Ce,n),u=jo(Ce,n),d=Ta(Ce,n),[f,p]=s.useState(null),v=M(t,x=>p(x),u.onItemTextChange,x=>i.itemTextRefCallback?.(x,u.value,u.disabled)),y=f?.textContent,C=s.useMemo(()=>l.jsx("option",{value:u.value,disabled:u.disabled,children:y},u.value),[u.disabled,u.value,y]),{onNativeOptionAdd:m,onNativeOptionRemove:h}=d;return U(()=>(m(C),()=>h(C)),[m,h,C]),l.jsxs(l.Fragment,{children:[l.jsx(P.span,{id:u.textId,...a,ref:v}),u.isSelected&&c.valueNode&&!c.valueNodeHasChildren?at.createPortal(a.children,c.valueNode):null]})});Lo.displayName=Ce;var ko="SelectItemIndicator",$o=s.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return jo(ko,n).isSelected?l.jsx(P.span,{"aria-hidden":!0,...o,ref:t}):null});$o.displayName=ko;var nt="SelectScrollUpButton",Bo=s.forwardRef((e,t)=>{const n=de(nt,e.__scopeSelect),o=It(nt,e.__scopeSelect),[r,a]=s.useState(!1),c=M(t,o.onScrollButtonChange);return U(()=>{if(n.viewport&&n.isPositioned){let i=function(){const d=u.scrollTop>0;a(d)};const u=n.viewport;return i(),u.addEventListener("scroll",i),()=>u.removeEventListener("scroll",i)}},[n.viewport,n.isPositioned]),r?l.jsx(Ko,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:u}=n;i&&u&&(i.scrollTop=i.scrollTop-u.offsetHeight)}}):null});Bo.displayName=nt;var ot="SelectScrollDownButton",Uo=s.forwardRef((e,t)=>{const n=de(ot,e.__scopeSelect),o=It(ot,e.__scopeSelect),[r,a]=s.useState(!1),c=M(t,o.onScrollButtonChange);return U(()=>{if(n.viewport&&n.isPositioned){let i=function(){const d=u.scrollHeight-u.clientHeight,f=Math.ceil(u.scrollTop)<d;a(f)};const u=n.viewport;return i(),u.addEventListener("scroll",i),()=>u.removeEventListener("scroll",i)}},[n.viewport,n.isPositioned]),r?l.jsx(Ko,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:u}=n;i&&u&&(i.scrollTop=i.scrollTop+u.offsetHeight)}}):null});Uo.displayName=ot;var Ko=s.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...r}=e,a=de("SelectScrollButton",n),c=s.useRef(null),i=We(n),u=s.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return s.useEffect(()=>()=>u(),[u]),U(()=>{i().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[i]),l.jsx(P.div,{"aria-hidden":!0,...r,ref:t,style:{flexShrink:0,...r.style},onPointerDown:E(r.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(o,50))}),onPointerMove:E(r.onPointerMove,()=>{a.onItemLeave?.(),c.current===null&&(c.current=window.setInterval(o,50))}),onPointerLeave:E(r.onPointerLeave,()=>{u()})})}),Wa="SelectSeparator",Wo=s.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return l.jsx(P.div,{"aria-hidden":!0,...o,ref:t})});Wo.displayName=Wa;var rt="SelectArrow",Ga=s.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Rt(n),a=ue(rt,n),c=de(rt,n);return a.open&&c.position==="popper"?l.jsx(Fn,{...r,...o,ref:t}):null});Ga.displayName=rt;var Va="SelectBubbleInput",Ha=s.forwardRef(({__scopeSelect:e,value:t,...n},o)=>{const r=s.useRef(null),a=M(o,r),c=ba(t);return s.useEffect(()=>{const i=r.current;if(!i)return;const u=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(u,"value").set;if(c!==t&&f){const p=new Event("change",{bubbles:!0});f.call(i,t),i.dispatchEvent(p)}},[c,t]),l.jsx(P.select,{...n,style:{...Co,...n.style},ref:a,defaultValue:t})});Ha.displayName=Va;function Go(e){return e===""||e===void 0}function Vo(e){const t=ae(e),n=s.useRef(""),o=s.useRef(0),r=s.useCallback(c=>{const i=n.current+c;t(i),(function u(d){n.current=d,window.clearTimeout(o.current),d!==""&&(o.current=window.setTimeout(()=>u(""),1e3))})(i)},[t]),a=s.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,r,a]}function Ho(e,t,n){const r=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let c=za(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==n));const u=c.find(d=>d.textValue.toLowerCase().startsWith(r.toLowerCase()));return u!==n?u:void 0}function za(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Pi=Eo,_i=Ro,Mi=Io,Ti=Po,Ni=No,Ai=Oo,Di=Fo,Oi=Lo,ji=$o,Fi=Bo,Li=Uo,ki=Wo;export{ei as C,ii as D,gi as I,Ja as L,ri as O,oi as P,Za as R,qa as S,Qa as T,Ni as V,si as a,ci as b,ai as c,Si as d,Ei as e,mi as f,vi as g,xi as h,yi as i,wi as j,hi as k,Ci as l,bi as m,Pi as n,_i as o,Fi as p,Li as q,Mi as r,Ti as s,Ai as t,Di as u,ji as v,Oi as w,ki as x};