groove-dev 0.27.213 → 0.27.215

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.
Files changed (30) hide show
  1. package/CLAUDE.md +2 -0
  2. package/node_modules/@groove-dev/cli/bin/groove.js +8 -0
  3. package/node_modules/@groove-dev/cli/package.json +1 -1
  4. package/node_modules/@groove-dev/cli/src/commands/handoff.js +22 -0
  5. package/node_modules/@groove-dev/daemon/package.json +1 -1
  6. package/node_modules/@groove-dev/daemon/src/index.js +18 -1
  7. package/node_modules/@groove-dev/daemon/src/journalist.js +28 -0
  8. package/node_modules/@groove-dev/daemon/src/rotator.js +179 -0
  9. package/node_modules/@groove-dev/daemon/src/routes/agents.js +25 -0
  10. package/node_modules/@groove-dev/daemon/src/tunnel-manager.js +217 -30
  11. package/node_modules/@groove-dev/daemon/test/rotator.test.js +86 -0
  12. package/node_modules/@groove-dev/daemon/test/tunnel-manager.test.js +143 -2
  13. package/node_modules/@groove-dev/gui/dist/assets/{index-DPsim83z.css → index-B82kMi13.css} +1 -1
  14. package/node_modules/@groove-dev/gui/dist/assets/{index-BP4oE2UL.js → index-CLfmxBx1.js} +1 -1
  15. package/node_modules/@groove-dev/gui/dist/index.html +2 -2
  16. package/node_modules/@groove-dev/gui/package.json +1 -1
  17. package/package.json +1 -1
  18. package/packages/cli/bin/groove.js +8 -0
  19. package/packages/cli/package.json +1 -1
  20. package/packages/cli/src/commands/handoff.js +22 -0
  21. package/packages/daemon/package.json +1 -1
  22. package/packages/daemon/src/index.js +18 -1
  23. package/packages/daemon/src/journalist.js +28 -0
  24. package/packages/daemon/src/rotator.js +179 -0
  25. package/packages/daemon/src/routes/agents.js +25 -0
  26. package/packages/daemon/src/tunnel-manager.js +217 -30
  27. package/packages/gui/dist/assets/{index-DPsim83z.css → index-B82kMi13.css} +1 -1
  28. package/packages/gui/dist/assets/{index-BP4oE2UL.js → index-CLfmxBx1.js} +1 -1
  29. package/packages/gui/dist/index.html +2 -2
  30. package/packages/gui/package.json +1 -1
@@ -39,7 +39,7 @@ ${p.brief}`}),A(`Sent ${c.map(v=>"#"+v).join(", ")} to agent`)}else A(`No memori
39
39
  ${typeof E.result=="string"?E.result.slice(0,500):JSON.stringify(E.result).slice(0,500)}`:T}).join(`
40
40
  `)),N.contextUsage!==void 0||N.tokensUsed!==void 0){const E=s().agents.map(T=>{if(T.id!==b)return T;const B={};return N.contextUsage!==void 0&&(B.contextUsage=N.contextUsage),N.tokensUsed!==void 0&&(B.tokensUsed=N.tokensUsed),{...T,...B}});t({agents:E})}const k=N.subtype==="stream";if(w&&w.trim()&&!k&&(N.subtype==="assistant"||N.subtype==="text"||N.type==="result"||N.type==="activity"&&typeof N.data=="string")){s().thinkingAgents.has(b)&&t(Y=>{const W=new Set(Y.thinkingAgents);return W.delete(b),{thinkingAgents:W}});const E=w.trim(),T={...s().chatHistory};T[b]||(T[b]=[]);const B=[...T[b]],F=B[B.length-1],$=F&&F.from==="agent"&&Date.now()-F.timestamp<8e3;if(!($&&(F.text===E||F.text.endsWith(E)))){if($){const Y=N.subtype==="assistant"?`
41
41
 
42
- `:" ";B[B.length-1]={...F,text:F.text+Y+E,timestamp:Date.now()}}else B.push({id:BQ(),from:"agent",text:E,timestamp:Date.now()});T[b]=B.slice(-100),t({chatHistory:T}),Yl(T),s().syncAgentHistoryRemote(b)}}if(Q&&Q.trim()){const E={...s().activityLog};E[b]||(E[b]=[]),E[b]=[...E[b].slice(-200),{timestamp:Date.now(),text:Q.trim(),type:N.type,subtype:"tool"}],t({activityLog:E}),js("groove:activityLog",E)}if(s().workspaceMode&&Array.isArray(N.data)){const E=new Set(["Write","Edit","write_file","edit_file","create_file"]);for(const T of N.data){if(T.type!=="tool_use"||!E.has(T.name))continue;const B=((i=T.input)==null?void 0:i.file_path)||((c=T.input)==null?void 0:c.path);if(B&&b===s().workspaceAgentId){const F=B.replace(/^\/[^/]+.*?\/groove\//,"");s().editorActiveFile?t(I=>({editorOpenTabs:I.editorOpenTabs.includes(F)?I.editorOpenTabs:[...I.editorOpenTabs,F]})):s().openFile(F)}}}break}case"agent:exit":{if(r.status==="waiting_for_input"){const U=s().agents.find(E=>E.id===r.agentId);s().addToast("info",`${(U==null?void 0:U.name)||r.agentId.slice(0,8)} needs your input`,"Check the question popup below");break}const b=s().agents.find(U=>U.id===r.agentId),N=(b==null?void 0:b.name)||r.agentId,w=r.status==="killed"||r.code===143||r.code===137,Q=r.status==="completed"?`${N} completed`:w?`${N} stopped`:`${N} crashed (exit ${r.code})`,k=r.status==="completed"?"success":w?"info":"warning";if(s().addToast(k,Q,r.error?r.error.slice(0,200):void 0),s().thinkingAgents.has(r.agentId)&&t(U=>{const E=new Set(U.thinkingAgents);return E.delete(r.agentId),{thinkingAgents:E}}),r.error&&r.agentId&&s().addChatMessage(r.agentId,"system",`Crashed: ${r.error}`),s().workspaceAgentId===r.agentId){const U=s().agents.filter(T=>T.id!==r.agentId&&T.teamId===s().activeTeamId),E=U.find(T=>T.status==="running")||U[0];t({workspaceAgentId:(E==null?void 0:E.id)||null})}(b==null?void 0:b.role)==="planner"&&r.status==="completed"&&setTimeout(()=>s().checkRecommendedTeam(),1e3);break}case"innerchat:turn":{const{thread:b,turn:N}=r.data;if(N.status==="failed"){s().addToast("error",`InnerChat to ${N.to.name} failed`,N.error);break}t(w=>{const Q={...w.chatHistory},k=(F,$)=>({from:"innerchat",text:N.text,timestamp:N.timestamp,isQuery:!1,innerchat:{turnId:N.id,threadId:b.id,kind:N.kind,peer:F,direction:$}}),U=[],E=(F,$)=>{Q[F]=[...Q[F]||[],$].slice(-100),U.push([F,$])};N.kind==="ask"&&E(N.from.id,k(N.to,"out")),E(N.to.id,k(N.from,"in")),Yl(Q);for(const[F,$]of U)s().persistMessageRemote(F,$);const T={...w.innerchatAnswers};N.kind==="answer"&&(T[N.from.id]={...T[N.from.id]||{},[N.text.trim()]:{peer:N.to,threadId:b.id}});const B={...w.innerchatThreads,[b.id]:b};return js("groove:innerchatThreads",B),{chatHistory:Q,innerchatThreads:B,innerchatAnswers:T}});break}case"recommended-team:ready":s().recommendedTeam||s().checkRecommendedTeam();break;case"phase2:spawned":s().addToast("info",`QC agent ${r.name} auto-spawned`,"Auditing phase 1 work");break;case"preview:ready":{const b=r.teamId?`/api/preview/${r.teamId}/proxy/`:r.url;t(N=>({teamPreviews:{...N.teamPreviews,[r.teamId]:{url:b,kind:r.kind,active:!0}}})),s().addToast("success","Project ready to preview",r.url,{label:"Open Preview",onClick:()=>s().openPreview(b,r.teamId,r.kind)},{persistent:!0,actions:[{label:"View in Browser",url:r.url}]});break}case"preview:failed":{const b=r.kind||"";b!=="no_preview"&&b!=="cli"&&b!=="none"&&s().addToast("warning","Preview could not launch",r.reason?String(r.reason).slice(0,200):"Unknown error");break}case"preview:stopped":{const b=s().teamPreviews[r.teamId];b&&t(N=>({teamPreviews:{...N.teamPreviews,[r.teamId]:{...b,active:!1}}}));break}case"agent:stalled":{const b=r.agentName||r.agentId,N=Math.round((r.silentMs||0)/1e3);s().addToast("warning",`${b} may be stalled`,`No output for ${N}s — API stream may be hung`);break}case"knock:denied":{const b=r.agentName||r.agentId;s().addToast("warning",`${b} blocked`,`${r.toolName} on ${r.target} — ${r.reason||"scope conflict"}`);break}case"phase2:failed":s().addToast("error","QC agent failed to spawn",r.error||"Unknown error");break;case"agent:message_queued":s().addChatMessage(r.agentId,"system","Agent is working — message will be delivered when it finishes.");break;case"agent:question":t(b=>({pendingQuestions:[...b.pendingQuestions,r.data]}));break;case"agent:question:resolved":t(b=>({pendingQuestions:b.pendingQuestions.filter(N=>N.agentId!==r.agentId)}));break;case"ollama:pull:progress":t({ollamaPullProgress:{...s().ollamaPullProgress,[r.model]:{status:"pulling",progress:r.progress}}});break;case"ollama:pull:complete":{const b={...s().ollamaPullProgress};delete b[r.model],t({ollamaPullProgress:b}),s().fetchOllamaStatus();break}case"ollama:pull:error":{const b={...s().ollamaPullProgress};delete b[r.model],t({ollamaPullProgress:b}),s().addToast("error",`Model pull failed: ${r.error}`);break}case"ollama:model:loaded":s().fetchOllamaStatus();break;case"ollama:model:unloaded":s().fetchOllamaStatus();break;case"ollama:model:imported":s().fetchOllamaStatus();break;case"lab:runtime:added":case"lab:runtime:updated":case"lab:runtime:removed":case"lab:runtime:started":case"lab:runtime:stopped":case"llama:server:stopped":s().fetchLabRuntimes();break;case"lab:preset:created":case"lab:preset:updated":case"lab:preset:deleted":break;case"rotation:start":break;case"rotation:complete":{const b=r.agentId,N=r.oldAgentId;if(!b||!N)break;t(w=>{var I,Y,W;const Q={...w.chatHistory},k={...w.tokenTimeline},U={...w.activityLog},E={...w.chatInputs};(I=Q[N])!=null&&I.length&&(Q[b]=[...Q[N]],delete Q[N]),(Y=k[N])!=null&&Y.length&&(k[b]=[...k[N]],delete k[N]),(W=U[N])!=null&&W.length&&(U[b]=[...U[N]],delete U[N]),E[N]&&(E[b]=E[N],delete E[N]);const T=w.detailPanel;let B=T,F=w.teamDetailPanels;if((T==null?void 0:T.type)==="agent"&&T.agentId===N){const ee={type:"agent",agentId:b};B=ee;const X=s().activeTeamId;F={...w.teamDetailPanels,[X]:ee}}let $=w.fleetSelectedAgents;($[0]===N||$[1]===N)&&($=[$[0]===N?b:$[0],$[1]===N?b:$[1]]);try{localStorage.setItem("groove:chatHistory",JSON.stringify(Q))}catch{}return{chatHistory:Q,tokenTimeline:k,activityLog:U,chatInputs:E,detailPanel:B,teamDetailPanels:F,fleetSelectedAgents:$}});break}case"rotation:failed":s().addToast("error","Rotation failed",r.error);break;case"file:changed":{const b=s().editorRecentSaves[r.path];if(b&&Date.now()-b<2e3)break;if(s().workspaceMode&&r.path&&!s().workspaceSnapshots[r.path]){const N=s().editorFiles[r.path];N!=null&&N.content&&s().captureSnapshot(r.path,N.content)}s().editorFiles[r.path]&&s().reloadFile(r.path);break}case"file:tree-changed":{s().fetchTreeDir(r.path||"");break}case"team:created":case"team:deleted":case"team:updated":s().fetchTeams();break;case"teams:reordered":r.teams&&t({teams:r.teams});break;case"approval:request":t(b=>({pendingApprovals:[...b.pendingApprovals,r.data]}));break;case"approval:resolved":{const b=r.data;t(N=>({pendingApprovals:N.pendingApprovals.filter(w=>w.id!==b.id),resolvedApprovals:[b,...N.resolvedApprovals].slice(0,200)}));break}case"conflict:detected":s().addToast("error",`Scope conflict: ${r.agentName||"agent"}`,r.filePath?`File: ${r.filePath}`:void 0);break;case"qc:activated":s().addToast("info","QC agent activated",`${r.agentCount||"4+"} agents running`);break;case"journalist:cycle":t({journalistStatus:r.data||null});break;case"schedule:execute":s().addToast("info",`Scheduled agent spawned: ${r.name||r.role||"agent"}`),s().fetchAutomations();break;case"schedule:created":case"schedule:updated":case"schedule:deleted":s().fetchAutomations();break;case"auto-agent:created":case"auto-agent:updated":case"auto-agent:deleted":case"auto-agent:paused":case"auto-agent:resumed":case"auto-agent:cycle-complete":case"auto-agent:auto-paused":case"auto-agent:state-updated":case"auto-agent:iteration-started":s().fetchAutoAgents();break;case"gateway:status":t({gateways:r.data||[]});break;case"axom:status":t({axomStatus:r.data||{endpoints:[]}});break;case"axom:event":s().ingestAxomEvent(r.endpoint,r.session,r.envelope);break;case"axom:session:reset":s().resetAxomSession(r.endpoint,r.session);break;case"axom:chats":t({axomChats:((A=r.data)==null?void 0:A.chats)||[]});break;case"axom:runtimes":t({axomRuntimes:((u=r.data)==null?void 0:u.runtimes)||[],axomActiveRuntimeId:((x=r.data)==null?void 0:x.activeRuntimeId)||null,axomRuntimesLive:!0});break;case"axom:instances":t({axomInstances:r.data||[]});break;case"axom:install:progress":t(b=>({axomInstall:{...b.axomInstall,...r.data}}));break;case"provider:status-changed":t({_providerRefreshTick:Date.now()});break;case"federation:whitelist":t(b=>({federation:{...b.federation,whitelist:r.data||[]}}));break;case"federation:connection":t(b=>{const N=[...b.federation.connections],w=N.findIndex(Q=>{var k;return Q.ip===((k=r.data)==null?void 0:k.ip)});return w>=0?N[w]={...N[w],...r.data}:N.push(r.data),{federation:{...b.federation,connections:N}}});break;case"federation:pouch":case"federation:pouch-log":t(b=>({federation:{...b.federation,pouchLog:[...b.federation.pouchLog,r.data].slice(-200)}}));break;case"project-dir:changed":t({projectDir:(m=r.data)==null?void 0:m.projectDir,showProjectPicker:!1});break;case"tunnel.connected":s().fetchTunnels(),t({tunnelConnectStep:null});break;case"tunnel.status":{t({tunnelConnectStep:r.data});break}case"tunnel.disconnected":s().fetchTunnels();break;case"tunnel.health":{const b=s().savedTunnels.map(N=>{var w;return N.id===((w=r.data)==null?void 0:w.id)?{...N,latencyMs:r.data.latencyMs,healthy:r.data.healthy}:N});t({savedTunnels:b});break}case"tunnel.version-info":{const b=s().savedTunnels.map(N=>N.id===r.data.id?{...N,localVersion:r.data.localVersion,remoteVersion:r.data.remoteVersion,versionMatch:r.data.match}:N);t({savedTunnels:b});break}case"tunnel.version-mismatch":{const b=s().savedTunnels.map(N=>N.id===r.data.id?{...N,localVersion:r.data.localVersion,remoteVersion:r.data.remoteVersion,versionMatch:!1}:N);t({savedTunnels:b}),s().addToast("warning","Version mismatch",`Remote v${r.data.remoteVersion} — local v${r.data.localVersion}. ${r.data.message||""}`);break}case"tunnel.upgrade-failed":{s().addToast("error","Remote upgrade failed",r.data.error||"Unknown error");break}case"subscription:updated":{const b={subscription:r.data};((p=r.data)==null?void 0:p.active)===!0&&!s().marketplaceAuthenticated&&(b.marketplaceAuthenticated=!0),t(b),H.get("/edition").then(N=>{t({edition:N.edition||"community",subscription:{plan:N.plan||"community",status:N.status||(N.subscriptionActive?"active":"none"),active:N.subscriptionActive===!0,features:N.features||[],seats:N.seats||1,periodEnd:N.periodEnd||null,cancelAtPeriodEnd:N.cancelAtPeriodEnd||!1}})}).catch(()=>{}),s().fetchTunnels();break}case"auth:expired":t({marketplaceAuthenticated:!1,marketplaceUser:null});break;case"network:node:status":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{};t({networkNode:{...s().networkNode,...Q}});break}case"network:node:event":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{...b,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"signal_connected":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{level:"connected",msg:String(b.msg||b.message||"Connected to signal").slice(0,500),detail:b.detail||b.url||void 0,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"matched":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{level:"session",msg:String(b.msg||b.message||"Session matched").slice(0,500),detail:b.detail||b.peer||b.nodeId||void 0,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"network:status":{const b=r.data||{},N={networkStatus:{...s().networkStatus,...b}};if(b.compute){const B=b.compute;N.networkCompute={totalRamMb:B.totalRamMb??B.total_ram_mb??0,totalVramMb:B.totalVramMb??B.total_vram_mb??0,totalCpuCores:B.totalCpuCores??B.total_cpu_cores??0,totalBandwidthMbps:B.totalBandwidthMbps??B.total_bandwidth_mbps??0,activeNodes:B.activeNodes??B.active_nodes??0,totalNodes:B.totalNodes??B.total_nodes??0,avgLoad:B.avgLoad??B.avg_load??0}}else if(Array.isArray(b.nodes)&&b.nodes.length>0){const B=b.nodes,F=B.filter($=>$.status==="active");N.networkCompute={totalRamMb:B.reduce(($,I)=>$+(I.ram_mb||0),0),totalVramMb:B.reduce(($,I)=>$+(I.vram_mb||0),0),totalCpuCores:B.reduce(($,I)=>$+(I.cpu_cores||0),0),totalBandwidthMbps:B.reduce(($,I)=>$+(I.bandwidth_mbps||0),0),activeNodes:F.length,totalNodes:B.length,avgLoad:F.length>0?F.reduce(($,I)=>$+(I.load||0),0)/F.length:0}}t(N);const w=b.nodes||[],Q=s().networkNode.nodeId,k=Q?w.find(B=>(B.node_id||B.nodeId)===Q):null,U=w.filter(B=>B.status==="active"),E={t:Date.now(),globalSessions:b.activeSessions||0,mySessions:(k==null?void 0:k.active_sessions)??(k==null?void 0:k.sessions)??0,nodeCount:U.length,avgLoad:U.length>0?U.reduce((B,F)=>B+(F.load||0),0)/U.length:0,myLoad:(k==null?void 0:k.load)??0,totalVramMb:w.reduce((B,F)=>B+(F.vram_mb||0),0),totalRamMb:w.reduce((B,F)=>B+(F.ram_mb||0),0)};let T=[...s().networkSnapshots,E];T.length>100&&(T=T.slice(-100)),t({networkSnapshots:T});break}case"network:install:progress":{const{step:b,message:N,percent:w}=r.data||{};b==="done"?(t({networkInstalled:!0,networkInstallProgress:{installing:!1,step:null,message:null,percent:0,error:null}}),s().addToast("success","Network package installed")):t(b==="error"?{networkInstallProgress:{installing:!1,step:"error",message:N||"Install failed",percent:0,error:N||"Install failed"}}:{networkInstallProgress:{installing:!0,step:b||"progress",message:N||"",percent:Number.isFinite(w)?Math.max(0,Math.min(100,w)):s().networkInstallProgress.percent,error:null}});break}case"network:update:available":{const{installed:b,latest:N,updateAvailable:w}=r.data||{};t({networkVersion:{installed:b??s().networkVersion.installed,latest:N??s().networkVersion.latest,updateAvailable:!!w}});break}case"network:update:progress":{const{step:b,message:N,percent:w,version:Q,error:k}=r.data||{};b==="done"?(t({networkUpdateProgress:{updating:!1,step:null,message:null,percent:0,error:null},networkVersion:{...s().networkVersion,installed:Q||s().networkVersion.latest||s().networkVersion.installed,updateAvailable:!1}}),s().addToast("success","Network package updated")):b==="error"?(t({networkUpdateProgress:{updating:!1,step:"error",message:N||k||"Update failed",percent:0,error:N||k||"Update failed"}}),s().addToast("error","Network update failed",N||k)):t({networkUpdateProgress:{updating:!0,step:b||"progress",message:N||"",percent:Number.isFinite(w)?Math.max(0,Math.min(100,w)):s().networkUpdateProgress.percent,error:null}});break}case"training:status":{const b={trainingOptIn:((O=r.data)==null?void 0:O.optedIn)??!1,trainingStats:r.data};(v=r.data)!=null&&v.optedIn&&(b.dataSharingModalOpen=!1),t(b);break}case"config:updated":s().fetchBetaStatus(),s().fetchNetworkInstallStatus();break;case"network:token:timing":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{},k={networkTokenTiming:Q,networkPerfSnapshots:[...s().networkPerfSnapshots,{t:Date.now(),tps:Q.tps||0}].slice(-100)};if(Array.isArray(Q.stages)){const U={...s().networkNodeTelemetry},E=new Set(["__proto__","constructor","prototype"]);for(const T of Q.stages){const B=(j=T.node_telemetry)==null?void 0:j.node_id;B&&typeof B=="string"&&!E.has(B)&&(U[B]={...T.node_telemetry,forward_ms:T.forward_ms,updatedAt:Date.now()})}k.networkNodeTelemetry=U}t(k);break}case"network:timing:summary":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{};t(k=>({networkBenchmarks:[...k.networkBenchmarks,Q].slice(-100)}));break}case"keeper:saved":case"keeper:updated":case"keeper:deleted":s().fetchKeeperItems();break}},n.onclose=()=>{_a&&(clearInterval(_a),_a=null),t({connected:!1,hydrated:!1,ws:null,daemonHost:null,tunneled:!1,remoteHomedir:null}),setTimeout(()=>s().connect(),2e3)},n.onerror=()=>n.close()}}));if(typeof window<"u"){const t=()=>{const s=C.getState();s.ws||s.connect()};window.addEventListener("online",t),window.addEventListener("focus",t),document.addEventListener("visibilitychange",()=>{document.hidden||t()})}function CQ(t){g.useEffect(()=>{function s(n){for(const a of t){const r=a.meta?n.metaKey||n.ctrlKey:!0,i=a.shift?n.shiftKey:!n.shiftKey;if(n.key.toLowerCase()===a.key.toLowerCase()&&r&&i){n.preventDefault(),a.handler();return}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[t])}function vd(){return!!(window.groove||navigator.userAgent.includes("Electron"))}function kQ(){var t;return((t=window.groove)==null?void 0:t.platform)||"browser"}function fO(t){window.groove?window.groove.openExternal(t):window.open(t,"_blank")}async function zE(t={}){var s,n;return(n=(s=window.groove)==null?void 0:s.folders)!=null&&n.select?window.groove.folders.select(t):null}async function TQ(t){var s,n;if((n=(s=window.groove)==null?void 0:s.integrations)!=null&&n.oauthStart)return window.groove.integrations.oauthStart(t);window.open(t,"_blank","noopener")}function UQ(t){var s,n,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(s=0;s<r;s++)t[s]&&(n=UQ(t[s]))&&(a&&(a+=" "),a+=n)}else for(n in t)t[n]&&(a&&(a+=" "),a+=n);return a}function LE(){for(var t,s,n=0,a="",r=arguments.length;n<r;n++)(t=arguments[n])&&(s=UQ(t))&&(a&&(a+=" "),a+=s);return a}const DE=(t,s)=>{const n=new Array(t.length+s.length);for(let a=0;a<t.length;a++)n[a]=t[a];for(let a=0;a<s.length;a++)n[t.length+a]=s[a];return n},HE=(t,s)=>({classGroupId:t,validator:s}),EQ=(t=new Map,s=null,n)=>({nextPart:t,validators:s,classGroupId:n}),dx="-",ej=[],XE="arbitrary..",GE=t=>{const s=VE(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=t;return{getClassGroupId:c=>{if(c.startsWith("[")&&c.endsWith("]"))return ZE(c);const A=c.split(dx),u=A[0]===""&&A.length>1?1:0;return PQ(A,u,s)},getConflictingClassGroupIds:(c,A)=>{if(A){const u=a[c],x=n[c];return u?x?DE(x,u):u:x||ej}return n[c]||ej}}},PQ=(t,s,n)=>{if(t.length-s===0)return n.classGroupId;const r=t[s],i=n.nextPart.get(r);if(i){const x=PQ(t,s+1,i);if(x)return x}const c=n.validators;if(c===null)return;const A=s===0?t.join(dx):t.slice(s).join(dx),u=c.length;for(let x=0;x<u;x++){const m=c[x];if(m.validator(A))return m.classGroupId}},ZE=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=t.slice(1,-1),n=s.indexOf(":"),a=s.slice(0,n);return a?XE+a:void 0})(),VE=t=>{const{theme:s,classGroups:n}=t;return KE(n,s)},KE=(t,s)=>{const n=EQ();for(const a in t){const r=t[a];wb(r,n,a,s)}return n},wb=(t,s,n,a)=>{const r=t.length;for(let i=0;i<r;i++){const c=t[i];qE(c,s,n,a)}},qE=(t,s,n,a)=>{if(typeof t=="string"){WE(t,s,n);return}if(typeof t=="function"){YE(t,s,n,a);return}JE(t,s,n,a)},WE=(t,s,n)=>{const a=t===""?s:FQ(s,t);a.classGroupId=n},YE=(t,s,n,a)=>{if(eP(t)){wb(t(a),s,n,a);return}s.validators===null&&(s.validators=[]),s.validators.push(HE(n,t))},JE=(t,s,n,a)=>{const r=Object.entries(t),i=r.length;for(let c=0;c<i;c++){const[A,u]=r[c];wb(u,FQ(s,A),n,a)}},FQ=(t,s)=>{let n=t;const a=s.split(dx),r=a.length;for(let i=0;i<r;i++){const c=a[i];let A=n.nextPart.get(c);A||(A=EQ(),n.nextPart.set(c,A)),n=A}return n},eP=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,tP=t=>{if(t<1)return{get:()=>{},set:()=>{}};let s=0,n=Object.create(null),a=Object.create(null);const r=(i,c)=>{n[i]=c,s++,s>t&&(s=0,a=n,n=Object.create(null))};return{get(i){let c=n[i];if(c!==void 0)return c;if((c=a[i])!==void 0)return r(i,c),c},set(i,c){i in n?n[i]=c:r(i,c)}}},xO="!",tj=":",sP=[],sj=(t,s,n,a,r)=>({modifiers:t,hasImportantModifier:s,baseClassName:n,maybePostfixModifierPosition:a,isExternal:r}),nP=t=>{const{prefix:s,experimentalParseClassName:n}=t;let a=r=>{const i=[];let c=0,A=0,u=0,x;const m=r.length;for(let b=0;b<m;b++){const N=r[b];if(c===0&&A===0){if(N===tj){i.push(r.slice(u,b)),u=b+1;continue}if(N==="/"){x=b;continue}}N==="["?c++:N==="]"?c--:N==="("?A++:N===")"&&A--}const p=i.length===0?r:r.slice(u);let O=p,v=!1;p.endsWith(xO)?(O=p.slice(0,-1),v=!0):p.startsWith(xO)&&(O=p.slice(1),v=!0);const j=x&&x>u?x-u:void 0;return sj(i,v,O,j)};if(s){const r=s+tj,i=a;a=c=>c.startsWith(r)?i(c.slice(r.length)):sj(sP,!1,c,void 0,!0)}if(n){const r=a;a=i=>n({className:i,parseClassName:r})}return a},aP=t=>{const s=new Map;return t.orderSensitiveModifiers.forEach((n,a)=>{s.set(n,1e6+a)}),n=>{const a=[];let r=[];for(let i=0;i<n.length;i++){const c=n[i],A=c[0]==="[",u=s.has(c);A||u?(r.length>0&&(r.sort(),a.push(...r),r=[]),a.push(c)):r.push(c)}return r.length>0&&(r.sort(),a.push(...r)),a}},rP=t=>({cache:tP(t.cacheSize),parseClassName:nP(t),sortModifiers:aP(t),...GE(t)}),oP=/\s+/,iP=(t,s)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:r,sortModifiers:i}=s,c=[],A=t.trim().split(oP);let u="";for(let x=A.length-1;x>=0;x-=1){const m=A[x],{isExternal:p,modifiers:O,hasImportantModifier:v,baseClassName:j,maybePostfixModifierPosition:b}=n(m);if(p){u=m+(u.length>0?" "+u:u);continue}let N=!!b,w=a(N?j.substring(0,b):j);if(!w){if(!N){u=m+(u.length>0?" "+u:u);continue}if(w=a(j),!w){u=m+(u.length>0?" "+u:u);continue}N=!1}const Q=O.length===0?"":O.length===1?O[0]:i(O).join(":"),k=v?Q+xO:Q,U=k+w;if(c.indexOf(U)>-1)continue;c.push(U);const E=r(w,N);for(let T=0;T<E.length;++T){const B=E[T];c.push(k+B)}u=m+(u.length>0?" "+u:u)}return u},lP=(...t)=>{let s=0,n,a,r="";for(;s<t.length;)(n=t[s++])&&(a=RQ(n))&&(r&&(r+=" "),r+=a);return r},RQ=t=>{if(typeof t=="string")return t;let s,n="";for(let a=0;a<t.length;a++)t[a]&&(s=RQ(t[a]))&&(n&&(n+=" "),n+=s);return n},cP=(t,...s)=>{let n,a,r,i;const c=u=>{const x=s.reduce((m,p)=>p(m),t());return n=rP(x),a=n.cache.get,r=n.cache.set,i=A,A(u)},A=u=>{const x=a(u);if(x)return x;const m=iP(u,n);return r(u,m),m};return i=c,(...u)=>i(lP(...u))},AP=[],ws=t=>{const s=n=>n[t]||AP;return s.isThemeGetter=!0,s},$Q=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,MQ=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dP=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,uP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,fP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,xP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,mP=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,hP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ho=t=>dP.test(t),ot=t=>!!t&&!Number.isNaN(Number(t)),po=t=>!!t&&Number.isInteger(Number(t)),Xp=t=>t.endsWith("%")&&ot(t.slice(0,-1)),jr=t=>uP.test(t),IQ=()=>!0,pP=t=>fP.test(t)&&!xP.test(t),jb=()=>!1,gP=t=>mP.test(t),OP=t=>hP.test(t),bP=t=>!Ie(t)&&!_e(t),vP=t=>Ko(t,LQ,jb),Ie=t=>$Q.test(t),bi=t=>Ko(t,DQ,pP),nj=t=>Ko(t,CP,ot),yP=t=>Ko(t,XQ,IQ),wP=t=>Ko(t,HQ,jb),aj=t=>Ko(t,_Q,jb),jP=t=>Ko(t,zQ,OP),Ku=t=>Ko(t,GQ,gP),_e=t=>MQ.test(t),NA=t=>Gi(t,DQ),NP=t=>Gi(t,HQ),rj=t=>Gi(t,_Q),QP=t=>Gi(t,LQ),SP=t=>Gi(t,zQ),qu=t=>Gi(t,GQ,!0),BP=t=>Gi(t,XQ,!0),Ko=(t,s,n)=>{const a=$Q.exec(t);return a?a[1]?s(a[1]):n(a[2]):!1},Gi=(t,s,n=!1)=>{const a=MQ.exec(t);return a?a[1]?s(a[1]):n:!1},_Q=t=>t==="position"||t==="percentage",zQ=t=>t==="image"||t==="url",LQ=t=>t==="length"||t==="size"||t==="bg-size",DQ=t=>t==="length",CP=t=>t==="number",HQ=t=>t==="family-name",XQ=t=>t==="number"||t==="weight",GQ=t=>t==="shadow",kP=()=>{const t=ws("color"),s=ws("font"),n=ws("text"),a=ws("font-weight"),r=ws("tracking"),i=ws("leading"),c=ws("breakpoint"),A=ws("container"),u=ws("spacing"),x=ws("radius"),m=ws("shadow"),p=ws("inset-shadow"),O=ws("text-shadow"),v=ws("drop-shadow"),j=ws("blur"),b=ws("perspective"),N=ws("aspect"),w=ws("ease"),Q=ws("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...U(),_e,Ie],T=()=>["auto","hidden","clip","visible","scroll"],B=()=>["auto","contain","none"],F=()=>[_e,Ie,u],$=()=>[ho,"full","auto",...F()],I=()=>[po,"none","subgrid",_e,Ie],Y=()=>["auto",{span:["full",po,_e,Ie]},po,_e,Ie],W=()=>[po,"auto",_e,Ie],ee=()=>["auto","min","max","fr",_e,Ie],X=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],z=()=>["start","end","center","stretch","center-safe","end-safe"],P=()=>["auto",...F()],q=()=>[ho,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],V=()=>[ho,"screen","full","dvw","lvw","svw","min","max","fit",...F()],M=()=>[ho,"screen","full","lh","dvh","lvh","svh","min","max","fit",...F()],D=()=>[t,_e,Ie],J=()=>[...U(),rj,aj,{position:[_e,Ie]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],te=()=>["auto","cover","contain",QP,vP,{size:[_e,Ie]}],pe=()=>[Xp,NA,bi],K=()=>["","none","full",x,_e,Ie],ce=()=>["",ot,NA,bi],le=()=>["solid","dashed","dotted","double"],je=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],_=()=>[ot,Xp,rj,aj],re=()=>["","none",j,_e,Ie],fe=()=>["none",ot,_e,Ie],ve=()=>["none",ot,_e,Ie],Ce=()=>[ot,_e,Ie],Te=()=>[ho,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[jr],breakpoint:[jr],color:[IQ],container:[jr],"drop-shadow":[jr],ease:["in","out","in-out"],font:[bP],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[jr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[jr],shadow:[jr],spacing:["px",ot],text:[jr],"text-shadow":[jr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ho,Ie,_e,N]}],container:["container"],columns:[{columns:[ot,Ie,_e,A]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:B()}],"overscroll-x":[{"overscroll-x":B()}],"overscroll-y":[{"overscroll-y":B()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:$()}],"inset-x":[{"inset-x":$()}],"inset-y":[{"inset-y":$()}],start:[{"inset-s":$(),start:$()}],end:[{"inset-e":$(),end:$()}],"inset-bs":[{"inset-bs":$()}],"inset-be":[{"inset-be":$()}],top:[{top:$()}],right:[{right:$()}],bottom:[{bottom:$()}],left:[{left:$()}],visibility:["visible","invisible","collapse"],z:[{z:[po,"auto",_e,Ie]}],basis:[{basis:[ho,"full","auto",A,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,ho,"auto","initial","none",Ie]}],grow:[{grow:["",ot,_e,Ie]}],shrink:[{shrink:["",ot,_e,Ie]}],order:[{order:[po,"first","last","none",_e,Ie]}],"grid-cols":[{"grid-cols":I()}],"col-start-end":[{col:Y()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":I()}],"row-start-end":[{row:Y()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ee()}],"auto-rows":[{"auto-rows":ee()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...z(),"normal"]}],"justify-self":[{"justify-self":["auto",...z()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...z(),{baseline:["","last"]}]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...z(),"baseline"]}],"place-self":[{"place-self":["auto",...z()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pbs:[{pbs:F()}],pbe:[{pbe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:P()}],mx:[{mx:P()}],my:[{my:P()}],ms:[{ms:P()}],me:[{me:P()}],mbs:[{mbs:P()}],mbe:[{mbe:P()}],mt:[{mt:P()}],mr:[{mr:P()}],mb:[{mb:P()}],ml:[{ml:P()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],"inline-size":[{inline:["auto",...V()]}],"min-inline-size":[{"min-inline":["auto",...V()]}],"max-inline-size":[{"max-inline":["none",...V()]}],"block-size":[{block:["auto",...M()]}],"min-block-size":[{"min-block":["auto",...M()]}],"max-block-size":[{"max-block":["none",...M()]}],w:[{w:[A,"screen",...q()]}],"min-w":[{"min-w":[A,"screen","none",...q()]}],"max-w":[{"max-w":[A,"screen","none","prose",{screen:[c]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",n,NA,bi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,BP,yP]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Xp,Ie]}],"font-family":[{font:[NP,wP,s]}],"font-features":[{"font-features":[Ie]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,_e,Ie]}],"line-clamp":[{"line-clamp":[ot,"none",_e,nj]}],leading:[{leading:[i,...F()]}],"list-image":[{"list-image":["none",_e,Ie]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_e,Ie]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...le(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",_e,bi]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[ot,"auto",_e,Ie]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_e,Ie]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_e,Ie]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:J()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:te()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},po,_e,Ie],radial:["",_e,Ie],conic:[po,_e,Ie]},SP,jP]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:pe()}],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:ce()}],"border-w-x":[{"border-x":ce()}],"border-w-y":[{"border-y":ce()}],"border-w-s":[{"border-s":ce()}],"border-w-e":[{"border-e":ce()}],"border-w-bs":[{"border-bs":ce()}],"border-w-be":[{"border-be":ce()}],"border-w-t":[{"border-t":ce()}],"border-w-r":[{"border-r":ce()}],"border-w-b":[{"border-b":ce()}],"border-w-l":[{"border-l":ce()}],"divide-x":[{"divide-x":ce()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ce()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...le(),"hidden","none"]}],"divide-style":[{divide:[...le(),"hidden","none"]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-bs":[{"border-bs":D()}],"border-color-be":[{"border-be":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,_e,Ie]}],"outline-w":[{outline:["",ot,NA,bi]}],"outline-color":[{outline:D()}],shadow:[{shadow:["","none",m,qu,Ku]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":["none",p,qu,Ku]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:ce()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[ot,bi]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":ce()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":["none",O,qu,Ku]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[ot,_e,Ie]}],"mix-blend":[{"mix-blend":[...je(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":je()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":_()}],"mask-image-linear-to-pos":[{"mask-linear-to":_()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":_()}],"mask-image-t-to-pos":[{"mask-t-to":_()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":_()}],"mask-image-r-to-pos":[{"mask-r-to":_()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":_()}],"mask-image-b-to-pos":[{"mask-b-to":_()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":_()}],"mask-image-l-to-pos":[{"mask-l-to":_()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":_()}],"mask-image-x-to-pos":[{"mask-x-to":_()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":_()}],"mask-image-y-to-pos":[{"mask-y-to":_()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[_e,Ie]}],"mask-image-radial-from-pos":[{"mask-radial-from":_()}],"mask-image-radial-to-pos":[{"mask-radial-to":_()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":U()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":_()}],"mask-image-conic-to-pos":[{"mask-conic-to":_()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:J()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:te()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_e,Ie]}],filter:[{filter:["","none",_e,Ie]}],blur:[{blur:re()}],brightness:[{brightness:[ot,_e,Ie]}],contrast:[{contrast:[ot,_e,Ie]}],"drop-shadow":[{"drop-shadow":["","none",v,qu,Ku]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:["",ot,_e,Ie]}],"hue-rotate":[{"hue-rotate":[ot,_e,Ie]}],invert:[{invert:["",ot,_e,Ie]}],saturate:[{saturate:[ot,_e,Ie]}],sepia:[{sepia:["",ot,_e,Ie]}],"backdrop-filter":[{"backdrop-filter":["","none",_e,Ie]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[ot,_e,Ie]}],"backdrop-contrast":[{"backdrop-contrast":[ot,_e,Ie]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,_e,Ie]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,_e,Ie]}],"backdrop-invert":[{"backdrop-invert":["",ot,_e,Ie]}],"backdrop-opacity":[{"backdrop-opacity":[ot,_e,Ie]}],"backdrop-saturate":[{"backdrop-saturate":[ot,_e,Ie]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,_e,Ie]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_e,Ie]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",_e,Ie]}],ease:[{ease:["linear","initial",w,_e,Ie]}],delay:[{delay:[ot,_e,Ie]}],animate:[{animate:["none",Q,_e,Ie]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,_e,Ie]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":["scale-3d"],skew:[{skew:Ce()}],"skew-x":[{"skew-x":Ce()}],"skew-y":[{"skew-y":Ce()}],transform:[{transform:[_e,Ie,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Te()}],"translate-x":[{"translate-x":Te()}],"translate-y":[{"translate-y":Te()}],"translate-z":[{"translate-z":Te()}],"translate-none":["translate-none"],accent:[{accent:D()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_e,Ie]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mbs":[{"scroll-mbs":F()}],"scroll-mbe":[{"scroll-mbe":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pbs":[{"scroll-pbs":F()}],"scroll-pbe":[{"scroll-pbe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_e,Ie]}],fill:[{fill:["none",...D()]}],"stroke-w":[{stroke:[ot,NA,bi,nj]}],stroke:[{stroke:["none",...D()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},TP=cP(kP);function G(...t){return TP(LE(t))}function Ue(t,s,{checkForDefaultPrevented:n=!0}={}){return function(r){if(t==null||t(r),n===!1||!r.defaultPrevented)return s==null?void 0:s(r)}}function oj(t,s){if(typeof t=="function")return t(s);t!=null&&(t.current=s)}function Nb(...t){return s=>{let n=!1;const a=t.map(r=>{const i=oj(r,s);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r<a.length;r++){const i=a[r];typeof i=="function"?i():oj(t[r],null)}}}}function xt(...t){return g.useCallback(Nb(...t),t)}function UP(t,s){const n=g.createContext(s),a=i=>{const{children:c,...A}=i,u=g.useMemo(()=>A,Object.values(A));return e.jsx(n.Provider,{value:u,children:c})};a.displayName=t+"Provider";function r(i){const c=g.useContext(n);if(c)return c;if(s!==void 0)return s;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[a,r]}function qa(t,s=[]){let n=[];function a(i,c){const A=g.createContext(c),u=n.length;n=[...n,c];const x=p=>{var w;const{scope:O,children:v,...j}=p,b=((w=O==null?void 0:O[t])==null?void 0:w[u])||A,N=g.useMemo(()=>j,Object.values(j));return e.jsx(b.Provider,{value:N,children:v})};x.displayName=i+"Provider";function m(p,O){var b;const v=((b=O==null?void 0:O[t])==null?void 0:b[u])||A,j=g.useContext(v);if(j)return j;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${i}\``)}return[x,m]}const r=()=>{const i=n.map(c=>g.createContext(c));return function(A){const u=(A==null?void 0:A[t])||i;return g.useMemo(()=>({[`__scope${t}`]:{...A,[t]:u}}),[A,u])}};return r.scopeName=t,[a,EP(r,...s)]}function EP(...t){const s=t[0];if(t.length===1)return s;const n=()=>{const a=t.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const c=a.reduce((A,{useScope:u,scopeName:x})=>{const p=u(i)[`__scope${x}`];return{...A,...p}},{});return g.useMemo(()=>({[`__scope${s.scopeName}`]:c}),[c])}};return n.scopeName=s.scopeName,n}function lc(t){const s=PP(t),n=g.forwardRef((a,r)=>{const{children:i,...c}=a,A=g.Children.toArray(i),u=A.find(RP);if(u){const x=u.props.children,m=A.map(p=>p===u?g.Children.count(x)>1?g.Children.only(null):g.isValidElement(x)?x.props.children:null:p);return e.jsx(s,{...c,ref:r,children:g.isValidElement(x)?g.cloneElement(x,void 0,m):null})}return e.jsx(s,{...c,ref:r,children:i})});return n.displayName=`${t}.Slot`,n}function PP(t){const s=g.forwardRef((n,a)=>{const{children:r,...i}=n;if(g.isValidElement(r)){const c=MP(r),A=$P(i,r.props);return r.type!==g.Fragment&&(A.ref=a?Nb(a,c):c),g.cloneElement(r,A)}return g.Children.count(r)>1?g.Children.only(null):null});return s.displayName=`${t}.SlotClone`,s}var ZQ=Symbol("radix.slottable");function FP(t){const s=({children:n})=>e.jsx(e.Fragment,{children:n});return s.displayName=`${t}.Slottable`,s.__radixId=ZQ,s}function RP(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===ZQ}function $P(t,s){const n={...s};for(const a in s){const r=t[a],i=s[a];/^on[A-Z]/.test(a)?r&&i?n[a]=(...A)=>{const u=i(...A);return r(...A),u}:r&&(n[a]=r):a==="style"?n[a]={...r,...i}:a==="className"&&(n[a]=[r,i].filter(Boolean).join(" "))}return{...t,...n}}function MP(t){var a,r;let s=(a=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:a.get,n=s&&"isReactWarning"in s&&s.isReactWarning;return n?t.ref:(s=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=s&&"isReactWarning"in s&&s.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var IP=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],et=IP.reduce((t,s)=>{const n=lc(`Primitive.${s}`),a=g.forwardRef((r,i)=>{const{asChild:c,...A}=r,u=c?n:s;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(u,{...A,ref:i})});return a.displayName=`Primitive.${s}`,{...t,[s]:a}},{});function VQ(t,s){t&&Xx.flushSync(()=>t.dispatchEvent(s))}function Es(t){const s=g.useRef(t);return g.useEffect(()=>{s.current=t}),g.useMemo(()=>(...n)=>{var a;return(a=s.current)==null?void 0:a.call(s,...n)},[])}function _P(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t);g.useEffect(()=>{const a=r=>{r.key==="Escape"&&n(r)};return s.addEventListener("keydown",a,{capture:!0}),()=>s.removeEventListener("keydown",a,{capture:!0})},[n,s])}var zP="DismissableLayer",mO="dismissableLayer.update",LP="dismissableLayer.pointerDownOutside",DP="dismissableLayer.focusOutside",ij,KQ=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),yd=g.forwardRef((t,s)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:a,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:c,onDismiss:A,...u}=t,x=g.useContext(KQ),[m,p]=g.useState(null),O=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=g.useState({}),j=xt(s,B=>p(B)),b=Array.from(x.layers),[N]=[...x.layersWithOutsidePointerEventsDisabled].slice(-1),w=b.indexOf(N),Q=m?b.indexOf(m):-1,k=x.layersWithOutsidePointerEventsDisabled.size>0,U=Q>=w,E=GP(B=>{const F=B.target,$=[...x.branches].some(I=>I.contains(F));!U||$||(r==null||r(B),c==null||c(B),B.defaultPrevented||A==null||A())},O),T=ZP(B=>{const F=B.target;[...x.branches].some(I=>I.contains(F))||(i==null||i(B),c==null||c(B),B.defaultPrevented||A==null||A())},O);return _P(B=>{Q===x.layers.size-1&&(a==null||a(B),!B.defaultPrevented&&A&&(B.preventDefault(),A()))},O),g.useEffect(()=>{if(m)return n&&(x.layersWithOutsidePointerEventsDisabled.size===0&&(ij=O.body.style.pointerEvents,O.body.style.pointerEvents="none"),x.layersWithOutsidePointerEventsDisabled.add(m)),x.layers.add(m),lj(),()=>{n&&x.layersWithOutsidePointerEventsDisabled.size===1&&(O.body.style.pointerEvents=ij)}},[m,O,n,x]),g.useEffect(()=>()=>{m&&(x.layers.delete(m),x.layersWithOutsidePointerEventsDisabled.delete(m),lj())},[m,x]),g.useEffect(()=>{const B=()=>v({});return document.addEventListener(mO,B),()=>document.removeEventListener(mO,B)},[]),e.jsx(et.div,{...u,ref:j,style:{pointerEvents:k?U?"auto":"none":void 0,...t.style},onFocusCapture:Ue(t.onFocusCapture,T.onFocusCapture),onBlurCapture:Ue(t.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Ue(t.onPointerDownCapture,E.onPointerDownCapture)})});yd.displayName=zP;var HP="DismissableLayerBranch",XP=g.forwardRef((t,s)=>{const n=g.useContext(KQ),a=g.useRef(null),r=xt(s,a);return g.useEffect(()=>{const i=a.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),e.jsx(et.div,{...t,ref:r})});XP.displayName=HP;function GP(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t),a=g.useRef(!1),r=g.useRef(()=>{});return g.useEffect(()=>{const i=A=>{if(A.target&&!a.current){let u=function(){qQ(LP,n,x,{discrete:!0})};const x={originalEvent:A};A.pointerType==="touch"?(s.removeEventListener("click",r.current),r.current=u,s.addEventListener("click",r.current,{once:!0})):u()}else s.removeEventListener("click",r.current);a.current=!1},c=window.setTimeout(()=>{s.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(c),s.removeEventListener("pointerdown",i),s.removeEventListener("click",r.current)}},[s,n]),{onPointerDownCapture:()=>a.current=!0}}function ZP(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t),a=g.useRef(!1);return g.useEffect(()=>{const r=i=>{i.target&&!a.current&&qQ(DP,n,{originalEvent:i},{discrete:!1})};return s.addEventListener("focusin",r),()=>s.removeEventListener("focusin",r)},[s,n]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function lj(){const t=new CustomEvent(mO);document.dispatchEvent(t)}function qQ(t,s,n,{discrete:a}){const r=n.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});s&&r.addEventListener(t,s,{once:!0}),a?VQ(r,i):r.dispatchEvent(i)}var Xs=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},VP=pQ[" useId ".trim().toString()]||(()=>{}),KP=0;function Pr(t){const[s,n]=g.useState(VP());return Xs(()=>{n(a=>a??String(KP++))},[t]),s?`radix-${s}`:""}const qP=["top","right","bottom","left"],_o=Math.min,In=Math.max,ux=Math.round,Wu=Math.floor,Xa=t=>({x:t,y:t}),WP={left:"right",right:"left",bottom:"top",top:"bottom"};function hO(t,s,n){return In(t,_o(s,n))}function Mr(t,s){return typeof t=="function"?t(s):t}function Ir(t){return t.split("-")[0]}function jc(t){return t.split("-")[1]}function Qb(t){return t==="x"?"y":"x"}function Sb(t){return t==="y"?"height":"width"}function Ha(t){const s=t[0];return s==="t"||s==="b"?"y":"x"}function Bb(t){return Qb(Ha(t))}function YP(t,s,n){n===void 0&&(n=!1);const a=jc(t),r=Bb(t),i=Sb(r);let c=r==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return s.reference[i]>s.floating[i]&&(c=fx(c)),[c,fx(c)]}function JP(t){const s=fx(t);return[pO(t),s,pO(s)]}function pO(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const cj=["left","right"],Aj=["right","left"],eF=["top","bottom"],tF=["bottom","top"];function sF(t,s,n){switch(t){case"top":case"bottom":return n?s?Aj:cj:s?cj:Aj;case"left":case"right":return s?eF:tF;default:return[]}}function nF(t,s,n,a){const r=jc(t);let i=sF(Ir(t),n==="start",a);return r&&(i=i.map(c=>c+"-"+r),s&&(i=i.concat(i.map(pO)))),i}function fx(t){const s=Ir(t);return WP[s]+t.slice(s.length)}function aF(t){return{top:0,right:0,bottom:0,left:0,...t}}function WQ(t){return typeof t!="number"?aF(t):{top:t,right:t,bottom:t,left:t}}function xx(t){const{x:s,y:n,width:a,height:r}=t;return{width:a,height:r,top:n,left:s,right:s+a,bottom:n+r,x:s,y:n}}function dj(t,s,n){let{reference:a,floating:r}=t;const i=Ha(s),c=Bb(s),A=Sb(c),u=Ir(s),x=i==="y",m=a.x+a.width/2-r.width/2,p=a.y+a.height/2-r.height/2,O=a[A]/2-r[A]/2;let v;switch(u){case"top":v={x:m,y:a.y-r.height};break;case"bottom":v={x:m,y:a.y+a.height};break;case"right":v={x:a.x+a.width,y:p};break;case"left":v={x:a.x-r.width,y:p};break;default:v={x:a.x,y:a.y}}switch(jc(s)){case"start":v[c]-=O*(n&&x?-1:1);break;case"end":v[c]+=O*(n&&x?-1:1);break}return v}async function rF(t,s){var n;s===void 0&&(s={});const{x:a,y:r,platform:i,rects:c,elements:A,strategy:u}=t,{boundary:x="clippingAncestors",rootBoundary:m="viewport",elementContext:p="floating",altBoundary:O=!1,padding:v=0}=Mr(s,t),j=WQ(v),N=A[O?p==="floating"?"reference":"floating":p],w=xx(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(N)))==null||n?N:N.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(A.floating)),boundary:x,rootBoundary:m,strategy:u})),Q=p==="floating"?{x:a,y:r,width:c.floating.width,height:c.floating.height}:c.reference,k=await(i.getOffsetParent==null?void 0:i.getOffsetParent(A.floating)),U=await(i.isElement==null?void 0:i.isElement(k))?await(i.getScale==null?void 0:i.getScale(k))||{x:1,y:1}:{x:1,y:1},E=xx(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:A,rect:Q,offsetParent:k,strategy:u}):Q);return{top:(w.top-E.top+j.top)/U.y,bottom:(E.bottom-w.bottom+j.bottom)/U.y,left:(w.left-E.left+j.left)/U.x,right:(E.right-w.right+j.right)/U.x}}const oF=50,iF=async(t,s,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:i=[],platform:c}=n,A=c.detectOverflow?c:{...c,detectOverflow:rF},u=await(c.isRTL==null?void 0:c.isRTL(s));let x=await c.getElementRects({reference:t,floating:s,strategy:r}),{x:m,y:p}=dj(x,a,u),O=a,v=0;const j={};for(let b=0;b<i.length;b++){const N=i[b];if(!N)continue;const{name:w,fn:Q}=N,{x:k,y:U,data:E,reset:T}=await Q({x:m,y:p,initialPlacement:a,placement:O,strategy:r,middlewareData:j,rects:x,platform:A,elements:{reference:t,floating:s}});m=k??m,p=U??p,j[w]={...j[w],...E},T&&v<oF&&(v++,typeof T=="object"&&(T.placement&&(O=T.placement),T.rects&&(x=T.rects===!0?await c.getElementRects({reference:t,floating:s,strategy:r}):T.rects),{x:m,y:p}=dj(x,O,u)),b=-1)}return{x:m,y:p,placement:O,strategy:r,middlewareData:j}},lF=t=>({name:"arrow",options:t,async fn(s){const{x:n,y:a,placement:r,rects:i,platform:c,elements:A,middlewareData:u}=s,{element:x,padding:m=0}=Mr(t,s)||{};if(x==null)return{};const p=WQ(m),O={x:n,y:a},v=Bb(r),j=Sb(v),b=await c.getDimensions(x),N=v==="y",w=N?"top":"left",Q=N?"bottom":"right",k=N?"clientHeight":"clientWidth",U=i.reference[j]+i.reference[v]-O[v]-i.floating[j],E=O[v]-i.reference[v],T=await(c.getOffsetParent==null?void 0:c.getOffsetParent(x));let B=T?T[k]:0;(!B||!await(c.isElement==null?void 0:c.isElement(T)))&&(B=A.floating[k]||i.floating[j]);const F=U/2-E/2,$=B/2-b[j]/2-1,I=_o(p[w],$),Y=_o(p[Q],$),W=I,ee=B-b[j]-Y,X=B/2-b[j]/2+F,z=hO(W,X,ee),P=!u.arrow&&jc(r)!=null&&X!==z&&i.reference[j]/2-(X<W?I:Y)-b[j]/2<0,q=P?X<W?X-W:X-ee:0;return{[v]:O[v]+q,data:{[v]:z,centerOffset:X-z-q,...P&&{alignmentOffset:q}},reset:P}}}),cF=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(s){var n,a;const{placement:r,middlewareData:i,rects:c,initialPlacement:A,platform:u,elements:x}=s,{mainAxis:m=!0,crossAxis:p=!0,fallbackPlacements:O,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:b=!0,...N}=Mr(t,s);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=Ir(r),Q=Ha(A),k=Ir(A)===A,U=await(u.isRTL==null?void 0:u.isRTL(x.floating)),E=O||(k||!b?[fx(A)]:JP(A)),T=j!=="none";!O&&T&&E.push(...nF(A,b,j,U));const B=[A,...E],F=await u.detectOverflow(s,N),$=[];let I=((a=i.flip)==null?void 0:a.overflows)||[];if(m&&$.push(F[w]),p){const X=YP(r,c,U);$.push(F[X[0]],F[X[1]])}if(I=[...I,{placement:r,overflows:$}],!$.every(X=>X<=0)){var Y,W;const X=(((Y=i.flip)==null?void 0:Y.index)||0)+1,z=B[X];if(z&&(!(p==="alignment"?Q!==Ha(z):!1)||I.every(V=>Ha(V.placement)===Q?V.overflows[0]>0:!0)))return{data:{index:X,overflows:I},reset:{placement:z}};let P=(W=I.filter(q=>q.overflows[0]<=0).sort((q,V)=>q.overflows[1]-V.overflows[1])[0])==null?void 0:W.placement;if(!P)switch(v){case"bestFit":{var ee;const q=(ee=I.filter(V=>{if(T){const M=Ha(V.placement);return M===Q||M==="y"}return!0}).map(V=>[V.placement,V.overflows.filter(M=>M>0).reduce((M,D)=>M+D,0)]).sort((V,M)=>V[1]-M[1])[0])==null?void 0:ee[0];q&&(P=q);break}case"initialPlacement":P=A;break}if(r!==P)return{reset:{placement:P}}}return{}}}};function uj(t,s){return{top:t.top-s.height,right:t.right-s.width,bottom:t.bottom-s.height,left:t.left-s.width}}function fj(t){return qP.some(s=>t[s]>=0)}const AF=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(s){const{rects:n,platform:a}=s,{strategy:r="referenceHidden",...i}=Mr(t,s);switch(r){case"referenceHidden":{const c=await a.detectOverflow(s,{...i,elementContext:"reference"}),A=uj(c,n.reference);return{data:{referenceHiddenOffsets:A,referenceHidden:fj(A)}}}case"escaped":{const c=await a.detectOverflow(s,{...i,altBoundary:!0}),A=uj(c,n.floating);return{data:{escapedOffsets:A,escaped:fj(A)}}}default:return{}}}}},YQ=new Set(["left","top"]);async function dF(t,s){const{placement:n,platform:a,elements:r}=t,i=await(a.isRTL==null?void 0:a.isRTL(r.floating)),c=Ir(n),A=jc(n),u=Ha(n)==="y",x=YQ.has(c)?-1:1,m=i&&u?-1:1,p=Mr(s,t);let{mainAxis:O,crossAxis:v,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return A&&typeof j=="number"&&(v=A==="end"?j*-1:j),u?{x:v*m,y:O*x}:{x:O*x,y:v*m}}const uF=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(s){var n,a;const{x:r,y:i,placement:c,middlewareData:A}=s,u=await dF(s,t);return c===((n=A.offset)==null?void 0:n.placement)&&(a=A.arrow)!=null&&a.alignmentOffset?{}:{x:r+u.x,y:i+u.y,data:{...u,placement:c}}}}},fF=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(s){const{x:n,y:a,placement:r,platform:i}=s,{mainAxis:c=!0,crossAxis:A=!1,limiter:u={fn:w=>{let{x:Q,y:k}=w;return{x:Q,y:k}}},...x}=Mr(t,s),m={x:n,y:a},p=await i.detectOverflow(s,x),O=Ha(Ir(r)),v=Qb(O);let j=m[v],b=m[O];if(c){const w=v==="y"?"top":"left",Q=v==="y"?"bottom":"right",k=j+p[w],U=j-p[Q];j=hO(k,j,U)}if(A){const w=O==="y"?"top":"left",Q=O==="y"?"bottom":"right",k=b+p[w],U=b-p[Q];b=hO(k,b,U)}const N=u.fn({...s,[v]:j,[O]:b});return{...N,data:{x:N.x-n,y:N.y-a,enabled:{[v]:c,[O]:A}}}}}},xF=function(t){return t===void 0&&(t={}),{options:t,fn(s){const{x:n,y:a,placement:r,rects:i,middlewareData:c}=s,{offset:A=0,mainAxis:u=!0,crossAxis:x=!0}=Mr(t,s),m={x:n,y:a},p=Ha(r),O=Qb(p);let v=m[O],j=m[p];const b=Mr(A,s),N=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(u){const k=O==="y"?"height":"width",U=i.reference[O]-i.floating[k]+N.mainAxis,E=i.reference[O]+i.reference[k]-N.mainAxis;v<U?v=U:v>E&&(v=E)}if(x){var w,Q;const k=O==="y"?"width":"height",U=YQ.has(Ir(r)),E=i.reference[p]-i.floating[k]+(U&&((w=c.offset)==null?void 0:w[p])||0)+(U?0:N.crossAxis),T=i.reference[p]+i.reference[k]+(U?0:((Q=c.offset)==null?void 0:Q[p])||0)-(U?N.crossAxis:0);j<E?j=E:j>T&&(j=T)}return{[O]:v,[p]:j}}}},mF=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(s){var n,a;const{placement:r,rects:i,platform:c,elements:A}=s,{apply:u=()=>{},...x}=Mr(t,s),m=await c.detectOverflow(s,x),p=Ir(r),O=jc(r),v=Ha(r)==="y",{width:j,height:b}=i.floating;let N,w;p==="top"||p==="bottom"?(N=p,w=O===(await(c.isRTL==null?void 0:c.isRTL(A.floating))?"start":"end")?"left":"right"):(w=p,N=O==="end"?"top":"bottom");const Q=b-m.top-m.bottom,k=j-m.left-m.right,U=_o(b-m[N],Q),E=_o(j-m[w],k),T=!s.middlewareData.shift;let B=U,F=E;if((n=s.middlewareData.shift)!=null&&n.enabled.x&&(F=k),(a=s.middlewareData.shift)!=null&&a.enabled.y&&(B=Q),T&&!O){const I=In(m.left,0),Y=In(m.right,0),W=In(m.top,0),ee=In(m.bottom,0);v?F=j-2*(I!==0||Y!==0?I+Y:In(m.left,m.right)):B=b-2*(W!==0||ee!==0?W+ee:In(m.top,m.bottom))}await u({...s,availableWidth:F,availableHeight:B});const $=await c.getDimensions(A.floating);return j!==$.width||b!==$.height?{reset:{rects:!0}}:{}}}};function Vx(){return typeof window<"u"}function Nc(t){return JQ(t)?(t.nodeName||"").toLowerCase():"#document"}function Hn(t){var s;return(t==null||(s=t.ownerDocument)==null?void 0:s.defaultView)||window}function Wa(t){var s;return(s=(JQ(t)?t.ownerDocument:t.document)||window.document)==null?void 0:s.documentElement}function JQ(t){return Vx()?t instanceof Node||t instanceof Hn(t).Node:!1}function Ba(t){return Vx()?t instanceof Element||t instanceof Hn(t).Element:!1}function Dr(t){return Vx()?t instanceof HTMLElement||t instanceof Hn(t).HTMLElement:!1}function xj(t){return!Vx()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Hn(t).ShadowRoot}function wd(t){const{overflow:s,overflowX:n,overflowY:a,display:r}=Ca(t);return/auto|scroll|overlay|hidden|clip/.test(s+a+n)&&r!=="inline"&&r!=="contents"}function hF(t){return/^(table|td|th)$/.test(Nc(t))}function Kx(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const pF=/transform|translate|scale|rotate|perspective|filter/,gF=/paint|layout|strict|content/,vi=t=>!!t&&t!=="none";let Gp;function Cb(t){const s=Ba(t)?Ca(t):t;return vi(s.transform)||vi(s.translate)||vi(s.scale)||vi(s.rotate)||vi(s.perspective)||!kb()&&(vi(s.backdropFilter)||vi(s.filter))||pF.test(s.willChange||"")||gF.test(s.contain||"")}function OF(t){let s=zo(t);for(;Dr(s)&&!cc(s);){if(Cb(s))return s;if(Kx(s))return null;s=zo(s)}return null}function kb(){return Gp==null&&(Gp=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Gp}function cc(t){return/^(html|body|#document)$/.test(Nc(t))}function Ca(t){return Hn(t).getComputedStyle(t)}function qx(t){return Ba(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function zo(t){if(Nc(t)==="html")return t;const s=t.assignedSlot||t.parentNode||xj(t)&&t.host||Wa(t);return xj(s)?s.host:s}function eS(t){const s=zo(t);return cc(s)?t.ownerDocument?t.ownerDocument.body:t.body:Dr(s)&&wd(s)?s:eS(s)}function ad(t,s,n){var a;s===void 0&&(s=[]),n===void 0&&(n=!0);const r=eS(t),i=r===((a=t.ownerDocument)==null?void 0:a.body),c=Hn(r);if(i){const A=gO(c);return s.concat(c,c.visualViewport||[],wd(r)?r:[],A&&n?ad(A):[])}else return s.concat(r,ad(r,[],n))}function gO(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function tS(t){const s=Ca(t);let n=parseFloat(s.width)||0,a=parseFloat(s.height)||0;const r=Dr(t),i=r?t.offsetWidth:n,c=r?t.offsetHeight:a,A=ux(n)!==i||ux(a)!==c;return A&&(n=i,a=c),{width:n,height:a,$:A}}function Tb(t){return Ba(t)?t:t.contextElement}function tc(t){const s=Tb(t);if(!Dr(s))return Xa(1);const n=s.getBoundingClientRect(),{width:a,height:r,$:i}=tS(s);let c=(i?ux(n.width):n.width)/a,A=(i?ux(n.height):n.height)/r;return(!c||!Number.isFinite(c))&&(c=1),(!A||!Number.isFinite(A))&&(A=1),{x:c,y:A}}const bF=Xa(0);function sS(t){const s=Hn(t);return!kb()||!s.visualViewport?bF:{x:s.visualViewport.offsetLeft,y:s.visualViewport.offsetTop}}function vF(t,s,n){return s===void 0&&(s=!1),!n||s&&n!==Hn(t)?!1:s}function Ei(t,s,n,a){s===void 0&&(s=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Tb(t);let c=Xa(1);s&&(a?Ba(a)&&(c=tc(a)):c=tc(t));const A=vF(i,n,a)?sS(i):Xa(0);let u=(r.left+A.x)/c.x,x=(r.top+A.y)/c.y,m=r.width/c.x,p=r.height/c.y;if(i){const O=Hn(i),v=a&&Ba(a)?Hn(a):a;let j=O,b=gO(j);for(;b&&a&&v!==j;){const N=tc(b),w=b.getBoundingClientRect(),Q=Ca(b),k=w.left+(b.clientLeft+parseFloat(Q.paddingLeft))*N.x,U=w.top+(b.clientTop+parseFloat(Q.paddingTop))*N.y;u*=N.x,x*=N.y,m*=N.x,p*=N.y,u+=k,x+=U,j=Hn(b),b=gO(j)}}return xx({width:m,height:p,x:u,y:x})}function Wx(t,s){const n=qx(t).scrollLeft;return s?s.left+n:Ei(Wa(t)).left+n}function nS(t,s){const n=t.getBoundingClientRect(),a=n.left+s.scrollLeft-Wx(t,n),r=n.top+s.scrollTop;return{x:a,y:r}}function yF(t){let{elements:s,rect:n,offsetParent:a,strategy:r}=t;const i=r==="fixed",c=Wa(a),A=s?Kx(s.floating):!1;if(a===c||A&&i)return n;let u={scrollLeft:0,scrollTop:0},x=Xa(1);const m=Xa(0),p=Dr(a);if((p||!p&&!i)&&((Nc(a)!=="body"||wd(c))&&(u=qx(a)),p)){const v=Ei(a);x=tc(a),m.x=v.x+a.clientLeft,m.y=v.y+a.clientTop}const O=c&&!p&&!i?nS(c,u):Xa(0);return{width:n.width*x.x,height:n.height*x.y,x:n.x*x.x-u.scrollLeft*x.x+m.x+O.x,y:n.y*x.y-u.scrollTop*x.y+m.y+O.y}}function wF(t){return Array.from(t.getClientRects())}function jF(t){const s=Wa(t),n=qx(t),a=t.ownerDocument.body,r=In(s.scrollWidth,s.clientWidth,a.scrollWidth,a.clientWidth),i=In(s.scrollHeight,s.clientHeight,a.scrollHeight,a.clientHeight);let c=-n.scrollLeft+Wx(t);const A=-n.scrollTop;return Ca(a).direction==="rtl"&&(c+=In(s.clientWidth,a.clientWidth)-r),{width:r,height:i,x:c,y:A}}const mj=25;function NF(t,s){const n=Hn(t),a=Wa(t),r=n.visualViewport;let i=a.clientWidth,c=a.clientHeight,A=0,u=0;if(r){i=r.width,c=r.height;const m=kb();(!m||m&&s==="fixed")&&(A=r.offsetLeft,u=r.offsetTop)}const x=Wx(a);if(x<=0){const m=a.ownerDocument,p=m.body,O=getComputedStyle(p),v=m.compatMode==="CSS1Compat"&&parseFloat(O.marginLeft)+parseFloat(O.marginRight)||0,j=Math.abs(a.clientWidth-p.clientWidth-v);j<=mj&&(i-=j)}else x<=mj&&(i+=x);return{width:i,height:c,x:A,y:u}}function QF(t,s){const n=Ei(t,!0,s==="fixed"),a=n.top+t.clientTop,r=n.left+t.clientLeft,i=Dr(t)?tc(t):Xa(1),c=t.clientWidth*i.x,A=t.clientHeight*i.y,u=r*i.x,x=a*i.y;return{width:c,height:A,x:u,y:x}}function hj(t,s,n){let a;if(s==="viewport")a=NF(t,n);else if(s==="document")a=jF(Wa(t));else if(Ba(s))a=QF(s,n);else{const r=sS(t);a={x:s.x-r.x,y:s.y-r.y,width:s.width,height:s.height}}return xx(a)}function aS(t,s){const n=zo(t);return n===s||!Ba(n)||cc(n)?!1:Ca(n).position==="fixed"||aS(n,s)}function SF(t,s){const n=s.get(t);if(n)return n;let a=ad(t,[],!1).filter(A=>Ba(A)&&Nc(A)!=="body"),r=null;const i=Ca(t).position==="fixed";let c=i?zo(t):t;for(;Ba(c)&&!cc(c);){const A=Ca(c),u=Cb(c);!u&&A.position==="fixed"&&(r=null),(i?!u&&!r:!u&&A.position==="static"&&!!r&&(r.position==="absolute"||r.position==="fixed")||wd(c)&&!u&&aS(t,c))?a=a.filter(m=>m!==c):r=A,c=zo(c)}return s.set(t,a),a}function BF(t){let{element:s,boundary:n,rootBoundary:a,strategy:r}=t;const c=[...n==="clippingAncestors"?Kx(s)?[]:SF(s,this._c):[].concat(n),a],A=hj(s,c[0],r);let u=A.top,x=A.right,m=A.bottom,p=A.left;for(let O=1;O<c.length;O++){const v=hj(s,c[O],r);u=In(v.top,u),x=_o(v.right,x),m=_o(v.bottom,m),p=In(v.left,p)}return{width:x-p,height:m-u,x:p,y:u}}function CF(t){const{width:s,height:n}=tS(t);return{width:s,height:n}}function kF(t,s,n){const a=Dr(s),r=Wa(s),i=n==="fixed",c=Ei(t,!0,i,s);let A={scrollLeft:0,scrollTop:0};const u=Xa(0);function x(){u.x=Wx(r)}if(a||!a&&!i)if((Nc(s)!=="body"||wd(r))&&(A=qx(s)),a){const v=Ei(s,!0,i,s);u.x=v.x+s.clientLeft,u.y=v.y+s.clientTop}else r&&x();i&&!a&&r&&x();const m=r&&!a&&!i?nS(r,A):Xa(0),p=c.left+A.scrollLeft-u.x-m.x,O=c.top+A.scrollTop-u.y-m.y;return{x:p,y:O,width:c.width,height:c.height}}function Zp(t){return Ca(t).position==="static"}function pj(t,s){if(!Dr(t)||Ca(t).position==="fixed")return null;if(s)return s(t);let n=t.offsetParent;return Wa(t)===n&&(n=n.ownerDocument.body),n}function rS(t,s){const n=Hn(t);if(Kx(t))return n;if(!Dr(t)){let r=zo(t);for(;r&&!cc(r);){if(Ba(r)&&!Zp(r))return r;r=zo(r)}return n}let a=pj(t,s);for(;a&&hF(a)&&Zp(a);)a=pj(a,s);return a&&cc(a)&&Zp(a)&&!Cb(a)?n:a||OF(t)||n}const TF=async function(t){const s=this.getOffsetParent||rS,n=this.getDimensions,a=await n(t.floating);return{reference:kF(t.reference,await s(t.floating),t.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function UF(t){return Ca(t).direction==="rtl"}const EF={convertOffsetParentRelativeRectToViewportRelativeRect:yF,getDocumentElement:Wa,getClippingRect:BF,getOffsetParent:rS,getElementRects:TF,getClientRects:wF,getDimensions:CF,getScale:tc,isElement:Ba,isRTL:UF};function oS(t,s){return t.x===s.x&&t.y===s.y&&t.width===s.width&&t.height===s.height}function PF(t,s){let n=null,a;const r=Wa(t);function i(){var A;clearTimeout(a),(A=n)==null||A.disconnect(),n=null}function c(A,u){A===void 0&&(A=!1),u===void 0&&(u=1),i();const x=t.getBoundingClientRect(),{left:m,top:p,width:O,height:v}=x;if(A||s(),!O||!v)return;const j=Wu(p),b=Wu(r.clientWidth-(m+O)),N=Wu(r.clientHeight-(p+v)),w=Wu(m),k={rootMargin:-j+"px "+-b+"px "+-N+"px "+-w+"px",threshold:In(0,_o(1,u))||1};let U=!0;function E(T){const B=T[0].intersectionRatio;if(B!==u){if(!U)return c();B?c(!1,B):a=setTimeout(()=>{c(!1,1e-7)},1e3)}B===1&&!oS(x,t.getBoundingClientRect())&&c(),U=!1}try{n=new IntersectionObserver(E,{...k,root:r.ownerDocument})}catch{n=new IntersectionObserver(E,k)}n.observe(t)}return c(!0),i}function FF(t,s,n,a){a===void 0&&(a={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:A=typeof IntersectionObserver=="function",animationFrame:u=!1}=a,x=Tb(t),m=r||i?[...x?ad(x):[],...s?ad(s):[]]:[];m.forEach(w=>{r&&w.addEventListener("scroll",n,{passive:!0}),i&&w.addEventListener("resize",n)});const p=x&&A?PF(x,n):null;let O=-1,v=null;c&&(v=new ResizeObserver(w=>{let[Q]=w;Q&&Q.target===x&&v&&s&&(v.unobserve(s),cancelAnimationFrame(O),O=requestAnimationFrame(()=>{var k;(k=v)==null||k.observe(s)})),n()}),x&&!u&&v.observe(x),s&&v.observe(s));let j,b=u?Ei(t):null;u&&N();function N(){const w=Ei(t);b&&!oS(b,w)&&n(),b=w,j=requestAnimationFrame(N)}return n(),()=>{var w;m.forEach(Q=>{r&&Q.removeEventListener("scroll",n),i&&Q.removeEventListener("resize",n)}),p==null||p(),(w=v)==null||w.disconnect(),v=null,u&&cancelAnimationFrame(j)}}const RF=uF,$F=fF,MF=cF,IF=mF,_F=AF,gj=lF,zF=xF,LF=(t,s,n)=>{const a=new Map,r={platform:EF,...n},i={...r.platform,_c:a};return iF(t,s,{...r,platform:i})};var DF=typeof document<"u",HF=function(){},Vf=DF?g.useLayoutEffect:HF;function mx(t,s){if(t===s)return!0;if(typeof t!=typeof s)return!1;if(typeof t=="function"&&t.toString()===s.toString())return!0;let n,a,r;if(t&&s&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==s.length)return!1;for(a=n;a--!==0;)if(!mx(t[a],s[a]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(s).length)return!1;for(a=n;a--!==0;)if(!{}.hasOwnProperty.call(s,r[a]))return!1;for(a=n;a--!==0;){const i=r[a];if(!(i==="_owner"&&t.$$typeof)&&!mx(t[i],s[i]))return!1}return!0}return t!==t&&s!==s}function iS(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Oj(t,s){const n=iS(t);return Math.round(s*n)/n}function Vp(t){const s=g.useRef(t);return Vf(()=>{s.current=t}),s}function XF(t){t===void 0&&(t={});const{placement:s="bottom",strategy:n="absolute",middleware:a=[],platform:r,elements:{reference:i,floating:c}={},transform:A=!0,whileElementsMounted:u,open:x}=t,[m,p]=g.useState({x:0,y:0,strategy:n,placement:s,middlewareData:{},isPositioned:!1}),[O,v]=g.useState(a);mx(O,a)||v(a);const[j,b]=g.useState(null),[N,w]=g.useState(null),Q=g.useCallback(V=>{V!==T.current&&(T.current=V,b(V))},[]),k=g.useCallback(V=>{V!==B.current&&(B.current=V,w(V))},[]),U=i||j,E=c||N,T=g.useRef(null),B=g.useRef(null),F=g.useRef(m),$=u!=null,I=Vp(u),Y=Vp(r),W=Vp(x),ee=g.useCallback(()=>{if(!T.current||!B.current)return;const V={placement:s,strategy:n,middleware:O};Y.current&&(V.platform=Y.current),LF(T.current,B.current,V).then(M=>{const D={...M,isPositioned:W.current!==!1};X.current&&!mx(F.current,D)&&(F.current=D,Xx.flushSync(()=>{p(D)}))})},[O,s,n,Y,W]);Vf(()=>{x===!1&&F.current.isPositioned&&(F.current.isPositioned=!1,p(V=>({...V,isPositioned:!1})))},[x]);const X=g.useRef(!1);Vf(()=>(X.current=!0,()=>{X.current=!1}),[]),Vf(()=>{if(U&&(T.current=U),E&&(B.current=E),U&&E){if(I.current)return I.current(U,E,ee);ee()}},[U,E,ee,I,$]);const z=g.useMemo(()=>({reference:T,floating:B,setReference:Q,setFloating:k}),[Q,k]),P=g.useMemo(()=>({reference:U,floating:E}),[U,E]),q=g.useMemo(()=>{const V={position:n,left:0,top:0};if(!P.floating)return V;const M=Oj(P.floating,m.x),D=Oj(P.floating,m.y);return A?{...V,transform:"translate("+M+"px, "+D+"px)",...iS(P.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:M,top:D}},[n,A,P.floating,m.x,m.y]);return g.useMemo(()=>({...m,update:ee,refs:z,elements:P,floatingStyles:q}),[m,ee,z,P,q])}const GF=t=>{function s(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:a,padding:r}=typeof t=="function"?t(n):t;return a&&s(a)?a.current!=null?gj({element:a.current,padding:r}).fn(n):{}:a?gj({element:a,padding:r}).fn(n):{}}}},ZF=(t,s)=>{const n=RF(t);return{name:n.name,fn:n.fn,options:[t,s]}},VF=(t,s)=>{const n=$F(t);return{name:n.name,fn:n.fn,options:[t,s]}},KF=(t,s)=>({fn:zF(t).fn,options:[t,s]}),qF=(t,s)=>{const n=MF(t);return{name:n.name,fn:n.fn,options:[t,s]}},WF=(t,s)=>{const n=IF(t);return{name:n.name,fn:n.fn,options:[t,s]}},YF=(t,s)=>{const n=_F(t);return{name:n.name,fn:n.fn,options:[t,s]}},JF=(t,s)=>{const n=GF(t);return{name:n.name,fn:n.fn,options:[t,s]}};var eR="Arrow",lS=g.forwardRef((t,s)=>{const{children:n,width:a=10,height:r=5,...i}=t;return e.jsx(et.svg,{...i,ref:s,width:a,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:e.jsx("polygon",{points:"0,0 30,0 15,10"})})});lS.displayName=eR;var tR=lS;function sR(t){const[s,n]=g.useState(void 0);return Xs(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const a=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let c,A;if("borderBoxSize"in i){const u=i.borderBoxSize,x=Array.isArray(u)?u[0]:u;c=x.inlineSize,A=x.blockSize}else c=t.offsetWidth,A=t.offsetHeight;n({width:c,height:A})});return a.observe(t,{box:"border-box"}),()=>a.unobserve(t)}else n(void 0)},[t]),s}var Ub="Popper",[cS,Qc]=qa(Ub),[nR,AS]=cS(Ub),dS=t=>{const{__scopePopper:s,children:n}=t,[a,r]=g.useState(null);return e.jsx(nR,{scope:s,anchor:a,onAnchorChange:r,children:n})};dS.displayName=Ub;var uS="PopperAnchor",fS=g.forwardRef((t,s)=>{const{__scopePopper:n,virtualRef:a,...r}=t,i=AS(uS,n),c=g.useRef(null),A=xt(s,c),u=g.useRef(null);return g.useEffect(()=>{const x=u.current;u.current=(a==null?void 0:a.current)||c.current,x!==u.current&&i.onAnchorChange(u.current)}),a?null:e.jsx(et.div,{...r,ref:A})});fS.displayName=uS;var Eb="PopperContent",[aR,rR]=cS(Eb),xS=g.forwardRef((t,s)=>{var le,je,_,re,fe,ve;const{__scopePopper:n,side:a="bottom",sideOffset:r=0,align:i="center",alignOffset:c=0,arrowPadding:A=0,avoidCollisions:u=!0,collisionBoundary:x=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:O=!1,updatePositionStrategy:v="optimized",onPlaced:j,...b}=t,N=AS(Eb,n),[w,Q]=g.useState(null),k=xt(s,Ce=>Q(Ce)),[U,E]=g.useState(null),T=sR(U),B=(T==null?void 0:T.width)??0,F=(T==null?void 0:T.height)??0,$=a+(i!=="center"?"-"+i:""),I=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},Y=Array.isArray(x)?x:[x],W=Y.length>0,ee={padding:I,boundary:Y.filter(iR),altBoundary:W},{refs:X,floatingStyles:z,placement:P,isPositioned:q,middlewareData:V}=XF({strategy:"fixed",placement:$,whileElementsMounted:(...Ce)=>FF(...Ce,{animationFrame:v==="always"}),elements:{reference:N.anchor},middleware:[ZF({mainAxis:r+F,alignmentAxis:c}),u&&VF({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?KF():void 0,...ee}),u&&qF({...ee}),WF({...ee,apply:({elements:Ce,rects:Te,availableWidth:Ze,availableHeight:Re})=>{const{width:ie,height:Be}=Te.reference,Me=Ce.floating.style;Me.setProperty("--radix-popper-available-width",`${Ze}px`),Me.setProperty("--radix-popper-available-height",`${Re}px`),Me.setProperty("--radix-popper-anchor-width",`${ie}px`),Me.setProperty("--radix-popper-anchor-height",`${Be}px`)}}),U&&JF({element:U,padding:A}),lR({arrowWidth:B,arrowHeight:F}),O&&YF({strategy:"referenceHidden",...ee})]}),[M,D]=pS(P),J=Es(j);Xs(()=>{q&&(J==null||J())},[q,J]);const L=(le=V.arrow)==null?void 0:le.x,te=(je=V.arrow)==null?void 0:je.y,pe=((_=V.arrow)==null?void 0:_.centerOffset)!==0,[K,ce]=g.useState();return Xs(()=>{w&&ce(window.getComputedStyle(w).zIndex)},[w]),e.jsx("div",{ref:X.setFloating,"data-radix-popper-content-wrapper":"",style:{...z,transform:q?z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:K,"--radix-popper-transform-origin":[(re=V.transformOrigin)==null?void 0:re.x,(fe=V.transformOrigin)==null?void 0:fe.y].join(" "),...((ve=V.hide)==null?void 0:ve.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:e.jsx(aR,{scope:n,placedSide:M,onArrowChange:E,arrowX:L,arrowY:te,shouldHideArrow:pe,children:e.jsx(et.div,{"data-side":M,"data-align":D,...b,ref:k,style:{...b.style,animation:q?void 0:"none"}})})})});xS.displayName=Eb;var mS="PopperArrow",oR={top:"bottom",right:"left",bottom:"top",left:"right"},hS=g.forwardRef(function(s,n){const{__scopePopper:a,...r}=s,i=rR(mS,a),c=oR[i.placedSide];return e.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:e.jsx(tR,{...r,ref:n,style:{...r.style,display:"block"}})})});hS.displayName=mS;function iR(t){return t!==null}var lR=t=>({name:"transformOrigin",options:t,fn(s){var N,w,Q;const{placement:n,rects:a,middlewareData:r}=s,c=((N=r.arrow)==null?void 0:N.centerOffset)!==0,A=c?0:t.arrowWidth,u=c?0:t.arrowHeight,[x,m]=pS(n),p={start:"0%",center:"50%",end:"100%"}[m],O=(((w=r.arrow)==null?void 0:w.x)??0)+A/2,v=(((Q=r.arrow)==null?void 0:Q.y)??0)+u/2;let j="",b="";return x==="bottom"?(j=c?p:`${O}px`,b=`${-u}px`):x==="top"?(j=c?p:`${O}px`,b=`${a.floating.height+u}px`):x==="right"?(j=`${-u}px`,b=c?p:`${v}px`):x==="left"&&(j=`${a.floating.width+u}px`,b=c?p:`${v}px`),{data:{x:j,y:b}}}});function pS(t){const[s,n="center"]=t.split("-");return[s,n]}var Pb=dS,Fb=fS,Rb=xS,$b=hS,cR="Portal",jd=g.forwardRef((t,s)=>{var A;const{container:n,...a}=t,[r,i]=g.useState(!1);Xs(()=>i(!0),[]);const c=n||r&&((A=globalThis==null?void 0:globalThis.document)==null?void 0:A.body);return c?zU.createPortal(e.jsx(et.div,{...a,ref:s}),c):null});jd.displayName=cR;function AR(t,s){return g.useReducer((n,a)=>s[n][a]??n,t)}var un=t=>{const{present:s,children:n}=t,a=dR(s),r=typeof n=="function"?n({present:a.isPresent}):g.Children.only(n),i=xt(a.ref,uR(r));return typeof n=="function"||a.isPresent?g.cloneElement(r,{ref:i}):null};un.displayName="Presence";function dR(t){const[s,n]=g.useState(),a=g.useRef(null),r=g.useRef(t),i=g.useRef("none"),c=t?"mounted":"unmounted",[A,u]=AR(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const x=Yu(a.current);i.current=A==="mounted"?x:"none"},[A]),Xs(()=>{const x=a.current,m=r.current;if(m!==t){const O=i.current,v=Yu(x);t?u("MOUNT"):v==="none"||(x==null?void 0:x.display)==="none"?u("UNMOUNT"):u(m&&O!==v?"ANIMATION_OUT":"UNMOUNT"),r.current=t}},[t,u]),Xs(()=>{if(s){let x;const m=s.ownerDocument.defaultView??window,p=v=>{const b=Yu(a.current).includes(CSS.escape(v.animationName));if(v.target===s&&b&&(u("ANIMATION_END"),!r.current)){const N=s.style.animationFillMode;s.style.animationFillMode="forwards",x=m.setTimeout(()=>{s.style.animationFillMode==="forwards"&&(s.style.animationFillMode=N)})}},O=v=>{v.target===s&&(i.current=Yu(a.current))};return s.addEventListener("animationstart",O),s.addEventListener("animationcancel",p),s.addEventListener("animationend",p),()=>{m.clearTimeout(x),s.removeEventListener("animationstart",O),s.removeEventListener("animationcancel",p),s.removeEventListener("animationend",p)}}else u("ANIMATION_END")},[s,u]),{isPresent:["mounted","unmountSuspended"].includes(A),ref:g.useCallback(x=>{a.current=x?getComputedStyle(x):null,n(x)},[])}}function Yu(t){return(t==null?void 0:t.animationName)||"none"}function uR(t){var a,r;let s=(a=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:a.get,n=s&&"isReactWarning"in s&&s.isReactWarning;return n?t.ref:(s=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=s&&"isReactWarning"in s&&s.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var fR=pQ[" useInsertionEffect ".trim().toString()]||Xs;function Ac({prop:t,defaultProp:s,onChange:n=()=>{},caller:a}){const[r,i,c]=xR({defaultProp:s,onChange:n}),A=t!==void 0,u=A?t:r;{const m=g.useRef(t!==void 0);g.useEffect(()=>{const p=m.current;p!==A&&console.warn(`${a} is changing from ${p?"controlled":"uncontrolled"} to ${A?"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.`),m.current=A},[A,a])}const x=g.useCallback(m=>{var p;if(A){const O=mR(m)?m(t):m;O!==t&&((p=c.current)==null||p.call(c,O))}else i(m)},[A,t,i,c]);return[u,x]}function xR({defaultProp:t,onChange:s}){const[n,a]=g.useState(t),r=g.useRef(n),i=g.useRef(s);return fR(()=>{i.current=s},[s]),g.useEffect(()=>{var c;r.current!==n&&((c=i.current)==null||c.call(i,n),r.current=n)},[n,r]),[n,a,i]}function mR(t){return typeof t=="function"}var gS=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"}),hR="VisuallyHidden",OS=g.forwardRef((t,s)=>e.jsx(et.span,{...t,ref:s,style:{...gS,...t.style}}));OS.displayName=hR;var pR=OS,[Yx]=qa("Tooltip",[Qc]),Jx=Qc(),bS="TooltipProvider",gR=700,OO="tooltip.open",[OR,Mb]=Yx(bS),vS=t=>{const{__scopeTooltip:s,delayDuration:n=gR,skipDelayDuration:a=300,disableHoverableContent:r=!1,children:i}=t,c=g.useRef(!0),A=g.useRef(!1),u=g.useRef(0);return g.useEffect(()=>{const x=u.current;return()=>window.clearTimeout(x)},[]),e.jsx(OR,{scope:s,isOpenDelayedRef:c,delayDuration:n,onOpen:g.useCallback(()=>{window.clearTimeout(u.current),c.current=!1},[]),onClose:g.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.current=!0,a)},[a]),isPointerInTransitRef:A,onPointerInTransitChange:g.useCallback(x=>{A.current=x},[]),disableHoverableContent:r,children:i})};vS.displayName=bS;var rd="Tooltip",[bR,Nd]=Yx(rd),yS=t=>{const{__scopeTooltip:s,children:n,open:a,defaultOpen:r,onOpenChange:i,disableHoverableContent:c,delayDuration:A}=t,u=Mb(rd,t.__scopeTooltip),x=Jx(s),[m,p]=g.useState(null),O=Pr(),v=g.useRef(0),j=c??u.disableHoverableContent,b=A??u.delayDuration,N=g.useRef(!1),[w,Q]=Ac({prop:a,defaultProp:r??!1,onChange:B=>{B?(u.onOpen(),document.dispatchEvent(new CustomEvent(OO))):u.onClose(),i==null||i(B)},caller:rd}),k=g.useMemo(()=>w?N.current?"delayed-open":"instant-open":"closed",[w]),U=g.useCallback(()=>{window.clearTimeout(v.current),v.current=0,N.current=!1,Q(!0)},[Q]),E=g.useCallback(()=>{window.clearTimeout(v.current),v.current=0,Q(!1)},[Q]),T=g.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{N.current=!0,Q(!0),v.current=0},b)},[b,Q]);return g.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),e.jsx(Pb,{...x,children:e.jsx(bR,{scope:s,contentId:O,open:w,stateAttribute:k,trigger:m,onTriggerChange:p,onTriggerEnter:g.useCallback(()=>{u.isOpenDelayedRef.current?T():U()},[u.isOpenDelayedRef,T,U]),onTriggerLeave:g.useCallback(()=>{j?E():(window.clearTimeout(v.current),v.current=0)},[E,j]),onOpen:U,onClose:E,disableHoverableContent:j,children:n})})};yS.displayName=rd;var bO="TooltipTrigger",wS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,...a}=t,r=Nd(bO,n),i=Mb(bO,n),c=Jx(n),A=g.useRef(null),u=xt(s,A,r.onTriggerChange),x=g.useRef(!1),m=g.useRef(!1),p=g.useCallback(()=>x.current=!1,[]);return g.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),e.jsx(Fb,{asChild:!0,...c,children:e.jsx(et.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...a,ref:u,onPointerMove:Ue(t.onPointerMove,O=>{O.pointerType!=="touch"&&!m.current&&!i.isPointerInTransitRef.current&&(r.onTriggerEnter(),m.current=!0)}),onPointerLeave:Ue(t.onPointerLeave,()=>{r.onTriggerLeave(),m.current=!1}),onPointerDown:Ue(t.onPointerDown,()=>{r.open&&r.onClose(),x.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Ue(t.onFocus,()=>{x.current||r.onOpen()}),onBlur:Ue(t.onBlur,r.onClose),onClick:Ue(t.onClick,r.onClose)})})});wS.displayName=bO;var Ib="TooltipPortal",[vR,yR]=Yx(Ib,{forceMount:void 0}),jS=t=>{const{__scopeTooltip:s,forceMount:n,children:a,container:r}=t,i=Nd(Ib,s);return e.jsx(vR,{scope:s,forceMount:n,children:e.jsx(un,{present:n||i.open,children:e.jsx(jd,{asChild:!0,container:r,children:a})})})};jS.displayName=Ib;var dc="TooltipContent",NS=g.forwardRef((t,s)=>{const n=yR(dc,t.__scopeTooltip),{forceMount:a=n.forceMount,side:r="top",...i}=t,c=Nd(dc,t.__scopeTooltip);return e.jsx(un,{present:a||c.open,children:c.disableHoverableContent?e.jsx(QS,{side:r,...i,ref:s}):e.jsx(wR,{side:r,...i,ref:s})})}),wR=g.forwardRef((t,s)=>{const n=Nd(dc,t.__scopeTooltip),a=Mb(dc,t.__scopeTooltip),r=g.useRef(null),i=xt(s,r),[c,A]=g.useState(null),{trigger:u,onClose:x}=n,m=r.current,{onPointerInTransitChange:p}=a,O=g.useCallback(()=>{A(null),p(!1)},[p]),v=g.useCallback((j,b)=>{const N=j.currentTarget,w={x:j.clientX,y:j.clientY},Q=SR(w,N.getBoundingClientRect()),k=BR(w,Q),U=CR(b.getBoundingClientRect()),E=TR([...k,...U]);A(E),p(!0)},[p]);return g.useEffect(()=>()=>O(),[O]),g.useEffect(()=>{if(u&&m){const j=N=>v(N,m),b=N=>v(N,u);return u.addEventListener("pointerleave",j),m.addEventListener("pointerleave",b),()=>{u.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",b)}}},[u,m,v,O]),g.useEffect(()=>{if(c){const j=b=>{const N=b.target,w={x:b.clientX,y:b.clientY},Q=(u==null?void 0:u.contains(N))||(m==null?void 0:m.contains(N)),k=!kR(w,c);Q?O():k&&(O(),x())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[u,m,c,x,O]),e.jsx(QS,{...t,ref:i})}),[jR,NR]=Yx(rd,{isInside:!1}),QR=FP("TooltipContent"),QS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,children:a,"aria-label":r,onEscapeKeyDown:i,onPointerDownOutside:c,...A}=t,u=Nd(dc,n),x=Jx(n),{onClose:m}=u;return g.useEffect(()=>(document.addEventListener(OO,m),()=>document.removeEventListener(OO,m)),[m]),g.useEffect(()=>{if(u.trigger){const p=O=>{const v=O.target;v!=null&&v.contains(u.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[u.trigger,m]),e.jsx(yd,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:e.jsxs(Rb,{"data-state":u.stateAttribute,...x,...A,ref:s,style:{...A.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(QR,{children:a}),e.jsx(jR,{scope:n,isInside:!0,children:e.jsx(pR,{id:u.contentId,role:"tooltip",children:r||a})})]})})});NS.displayName=dc;var SS="TooltipArrow",BS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,...a}=t,r=Jx(n);return NR(SS,n).isInside?null:e.jsx($b,{...r,...a,ref:s})});BS.displayName=SS;function SR(t,s){const n=Math.abs(s.top-t.y),a=Math.abs(s.bottom-t.y),r=Math.abs(s.right-t.x),i=Math.abs(s.left-t.x);switch(Math.min(n,a,r,i)){case i:return"left";case r:return"right";case n:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function BR(t,s,n=5){const a=[];switch(s){case"top":a.push({x:t.x-n,y:t.y+n},{x:t.x+n,y:t.y+n});break;case"bottom":a.push({x:t.x-n,y:t.y-n},{x:t.x+n,y:t.y-n});break;case"left":a.push({x:t.x+n,y:t.y-n},{x:t.x+n,y:t.y+n});break;case"right":a.push({x:t.x-n,y:t.y-n},{x:t.x-n,y:t.y+n});break}return a}function CR(t){const{top:s,right:n,bottom:a,left:r}=t;return[{x:r,y:s},{x:n,y:s},{x:n,y:a},{x:r,y:a}]}function kR(t,s){const{x:n,y:a}=t;let r=!1;for(let i=0,c=s.length-1;i<s.length;c=i++){const A=s[i],u=s[c],x=A.x,m=A.y,p=u.x,O=u.y;m>a!=O>a&&n<(p-x)*(a-m)/(O-m)+x&&(r=!r)}return r}function TR(t){const s=t.slice();return s.sort((n,a)=>n.x<a.x?-1:n.x>a.x?1:n.y<a.y?-1:n.y>a.y?1:0),UR(s)}function UR(t){if(t.length<=1)return t.slice();const s=[];for(let a=0;a<t.length;a++){const r=t[a];for(;s.length>=2;){const i=s[s.length-1],c=s[s.length-2];if((i.x-c.x)*(r.y-c.y)>=(i.y-c.y)*(r.x-c.x))s.pop();else break}s.push(r)}s.pop();const n=[];for(let a=t.length-1;a>=0;a--){const r=t[a];for(;n.length>=2;){const i=n[n.length-1],c=n[n.length-2];if((i.x-c.x)*(r.y-c.y)>=(i.y-c.y)*(r.x-c.x))n.pop();else break}n.push(r)}return n.pop(),s.length===1&&n.length===1&&s[0].x===n[0].x&&s[0].y===n[0].y?s:s.concat(n)}var ER=vS,PR=yS,FR=wS,RR=jS,$R=NS,MR=BS;function IR({children:t}){return e.jsx(ER,{delayDuration:300,children:t})}function ut({children:t,content:s,side:n="top",className:a}){return s?e.jsxs(PR,{children:[e.jsx(FR,{asChild:!0,children:t}),e.jsx(RR,{children:e.jsxs($R,{side:n,sideOffset:6,className:G("z-50 px-2.5 py-1.5 text-xs font-sans","bg-surface-4 text-text-0 border border-border rounded-md shadow-lg","animate-in fade-in-0 zoom-in-95",a),children:[s,e.jsx(MR,{className:"fill-surface-4"})]})})]}):t}/**
42
+ `:" ";B[B.length-1]={...F,text:F.text+Y+E,timestamp:Date.now()}}else B.push({id:BQ(),from:"agent",text:E,timestamp:Date.now()});T[b]=B.slice(-100),t({chatHistory:T}),Yl(T),s().syncAgentHistoryRemote(b)}}if(Q&&Q.trim()){const E={...s().activityLog};E[b]||(E[b]=[]),E[b]=[...E[b].slice(-200),{timestamp:Date.now(),text:Q.trim(),type:N.type,subtype:"tool"}],t({activityLog:E}),js("groove:activityLog",E)}if(s().workspaceMode&&Array.isArray(N.data)){const E=new Set(["Write","Edit","write_file","edit_file","create_file"]);for(const T of N.data){if(T.type!=="tool_use"||!E.has(T.name))continue;const B=((i=T.input)==null?void 0:i.file_path)||((c=T.input)==null?void 0:c.path);if(B&&b===s().workspaceAgentId){const F=B.replace(/^\/[^/]+.*?\/groove\//,"");s().editorActiveFile?t(I=>({editorOpenTabs:I.editorOpenTabs.includes(F)?I.editorOpenTabs:[...I.editorOpenTabs,F]})):s().openFile(F)}}}break}case"agent:exit":{if(r.status==="waiting_for_input"){const U=s().agents.find(E=>E.id===r.agentId);s().addToast("info",`${(U==null?void 0:U.name)||r.agentId.slice(0,8)} needs your input`,"Check the question popup below");break}const b=s().agents.find(U=>U.id===r.agentId),N=(b==null?void 0:b.name)||r.agentId,w=r.status==="killed"||r.code===143||r.code===137,Q=r.status==="completed"?`${N} completed`:w?`${N} stopped`:`${N} crashed (exit ${r.code})`,k=r.status==="completed"?"success":w?"info":"warning";if(s().addToast(k,Q,r.error?r.error.slice(0,200):void 0),s().thinkingAgents.has(r.agentId)&&t(U=>{const E=new Set(U.thinkingAgents);return E.delete(r.agentId),{thinkingAgents:E}}),r.error&&r.agentId&&s().addChatMessage(r.agentId,"system",`Crashed: ${r.error}`),s().workspaceAgentId===r.agentId){const U=s().agents.filter(T=>T.id!==r.agentId&&T.teamId===s().activeTeamId),E=U.find(T=>T.status==="running")||U[0];t({workspaceAgentId:(E==null?void 0:E.id)||null})}(b==null?void 0:b.role)==="planner"&&r.status==="completed"&&setTimeout(()=>s().checkRecommendedTeam(),1e3);break}case"innerchat:turn":{const{thread:b,turn:N}=r.data;if(N.status==="failed"){s().addToast("error",`InnerChat to ${N.to.name} failed`,N.error);break}t(w=>{const Q={...w.chatHistory},k=(F,$)=>({from:"innerchat",text:N.text,timestamp:N.timestamp,isQuery:!1,innerchat:{turnId:N.id,threadId:b.id,kind:N.kind,peer:F,direction:$}}),U=[],E=(F,$)=>{Q[F]=[...Q[F]||[],$].slice(-100),U.push([F,$])};N.kind==="ask"&&E(N.from.id,k(N.to,"out")),E(N.to.id,k(N.from,"in")),Yl(Q);for(const[F,$]of U)s().persistMessageRemote(F,$);const T={...w.innerchatAnswers};N.kind==="answer"&&(T[N.from.id]={...T[N.from.id]||{},[N.text.trim()]:{peer:N.to,threadId:b.id}});const B={...w.innerchatThreads,[b.id]:b};return js("groove:innerchatThreads",B),{chatHistory:Q,innerchatThreads:B,innerchatAnswers:T}});break}case"recommended-team:ready":s().recommendedTeam||s().checkRecommendedTeam();break;case"phase2:spawned":s().addToast("info",`QC agent ${r.name} auto-spawned`,"Auditing phase 1 work");break;case"preview:ready":{const b=r.teamId?`/api/preview/${r.teamId}/proxy/`:r.url;t(N=>({teamPreviews:{...N.teamPreviews,[r.teamId]:{url:b,kind:r.kind,active:!0}}})),s().addToast("success","Project ready to preview",r.url,{label:"Open Preview",onClick:()=>s().openPreview(b,r.teamId,r.kind)},{persistent:!0,actions:[{label:"View in Browser",url:r.url}]});break}case"preview:failed":{const b=r.kind||"";b!=="no_preview"&&b!=="cli"&&b!=="none"&&s().addToast("warning","Preview could not launch",r.reason?String(r.reason).slice(0,200):"Unknown error");break}case"preview:stopped":{const b=s().teamPreviews[r.teamId];b&&t(N=>({teamPreviews:{...N.teamPreviews,[r.teamId]:{...b,active:!1}}}));break}case"agent:stalled":{const b=r.agentName||r.agentId,N=Math.round((r.silentMs||0)/1e3);s().addToast("warning",`${b} may be stalled`,`No output for ${N}s — API stream may be hung`);break}case"knock:denied":{const b=r.agentName||r.agentId;s().addToast("warning",`${b} blocked`,`${r.toolName} on ${r.target} — ${r.reason||"scope conflict"}`);break}case"phase2:failed":s().addToast("error","QC agent failed to spawn",r.error||"Unknown error");break;case"agent:message_queued":s().addChatMessage(r.agentId,"system","Agent is working — message will be delivered when it finishes.");break;case"agent:question":t(b=>({pendingQuestions:[...b.pendingQuestions,r.data]}));break;case"agent:question:resolved":t(b=>({pendingQuestions:b.pendingQuestions.filter(N=>N.agentId!==r.agentId)}));break;case"ollama:pull:progress":t({ollamaPullProgress:{...s().ollamaPullProgress,[r.model]:{status:"pulling",progress:r.progress}}});break;case"ollama:pull:complete":{const b={...s().ollamaPullProgress};delete b[r.model],t({ollamaPullProgress:b}),s().fetchOllamaStatus();break}case"ollama:pull:error":{const b={...s().ollamaPullProgress};delete b[r.model],t({ollamaPullProgress:b}),s().addToast("error",`Model pull failed: ${r.error}`);break}case"ollama:model:loaded":s().fetchOllamaStatus();break;case"ollama:model:unloaded":s().fetchOllamaStatus();break;case"ollama:model:imported":s().fetchOllamaStatus();break;case"lab:runtime:added":case"lab:runtime:updated":case"lab:runtime:removed":case"lab:runtime:started":case"lab:runtime:stopped":case"llama:server:stopped":s().fetchLabRuntimes();break;case"lab:preset:created":case"lab:preset:updated":case"lab:preset:deleted":break;case"rotation:start":break;case"handoff:started":{const b=r.data||{};s().addToast("info","Succession started",`${b.successorName} is interviewing ${b.predecessorName} before taking over.`);break}case"handoff:completed":{const b=r.data||{};s().addToast("success","Handoff complete",`${b.predecessorName} retired — ${b.successorName} has taken over.`);break}case"rotation:complete":{const b=r.agentId,N=r.oldAgentId;if(!b||!N)break;t(w=>{var I,Y,W;const Q={...w.chatHistory},k={...w.tokenTimeline},U={...w.activityLog},E={...w.chatInputs};(I=Q[N])!=null&&I.length&&(Q[b]=[...Q[N]],delete Q[N]),(Y=k[N])!=null&&Y.length&&(k[b]=[...k[N]],delete k[N]),(W=U[N])!=null&&W.length&&(U[b]=[...U[N]],delete U[N]),E[N]&&(E[b]=E[N],delete E[N]);const T=w.detailPanel;let B=T,F=w.teamDetailPanels;if((T==null?void 0:T.type)==="agent"&&T.agentId===N){const ee={type:"agent",agentId:b};B=ee;const X=s().activeTeamId;F={...w.teamDetailPanels,[X]:ee}}let $=w.fleetSelectedAgents;($[0]===N||$[1]===N)&&($=[$[0]===N?b:$[0],$[1]===N?b:$[1]]);try{localStorage.setItem("groove:chatHistory",JSON.stringify(Q))}catch{}return{chatHistory:Q,tokenTimeline:k,activityLog:U,chatInputs:E,detailPanel:B,teamDetailPanels:F,fleetSelectedAgents:$}});break}case"rotation:failed":s().addToast("error","Rotation failed",r.error);break;case"file:changed":{const b=s().editorRecentSaves[r.path];if(b&&Date.now()-b<2e3)break;if(s().workspaceMode&&r.path&&!s().workspaceSnapshots[r.path]){const N=s().editorFiles[r.path];N!=null&&N.content&&s().captureSnapshot(r.path,N.content)}s().editorFiles[r.path]&&s().reloadFile(r.path);break}case"file:tree-changed":{s().fetchTreeDir(r.path||"");break}case"team:created":case"team:deleted":case"team:updated":s().fetchTeams();break;case"teams:reordered":r.teams&&t({teams:r.teams});break;case"approval:request":t(b=>({pendingApprovals:[...b.pendingApprovals,r.data]}));break;case"approval:resolved":{const b=r.data;t(N=>({pendingApprovals:N.pendingApprovals.filter(w=>w.id!==b.id),resolvedApprovals:[b,...N.resolvedApprovals].slice(0,200)}));break}case"conflict:detected":s().addToast("error",`Scope conflict: ${r.agentName||"agent"}`,r.filePath?`File: ${r.filePath}`:void 0);break;case"qc:activated":s().addToast("info","QC agent activated",`${r.agentCount||"4+"} agents running`);break;case"journalist:cycle":t({journalistStatus:r.data||null});break;case"schedule:execute":s().addToast("info",`Scheduled agent spawned: ${r.name||r.role||"agent"}`),s().fetchAutomations();break;case"schedule:created":case"schedule:updated":case"schedule:deleted":s().fetchAutomations();break;case"auto-agent:created":case"auto-agent:updated":case"auto-agent:deleted":case"auto-agent:paused":case"auto-agent:resumed":case"auto-agent:cycle-complete":case"auto-agent:auto-paused":case"auto-agent:state-updated":case"auto-agent:iteration-started":s().fetchAutoAgents();break;case"gateway:status":t({gateways:r.data||[]});break;case"axom:status":t({axomStatus:r.data||{endpoints:[]}});break;case"axom:event":s().ingestAxomEvent(r.endpoint,r.session,r.envelope);break;case"axom:session:reset":s().resetAxomSession(r.endpoint,r.session);break;case"axom:chats":t({axomChats:((A=r.data)==null?void 0:A.chats)||[]});break;case"axom:runtimes":t({axomRuntimes:((u=r.data)==null?void 0:u.runtimes)||[],axomActiveRuntimeId:((x=r.data)==null?void 0:x.activeRuntimeId)||null,axomRuntimesLive:!0});break;case"axom:instances":t({axomInstances:r.data||[]});break;case"axom:install:progress":t(b=>({axomInstall:{...b.axomInstall,...r.data}}));break;case"provider:status-changed":t({_providerRefreshTick:Date.now()});break;case"federation:whitelist":t(b=>({federation:{...b.federation,whitelist:r.data||[]}}));break;case"federation:connection":t(b=>{const N=[...b.federation.connections],w=N.findIndex(Q=>{var k;return Q.ip===((k=r.data)==null?void 0:k.ip)});return w>=0?N[w]={...N[w],...r.data}:N.push(r.data),{federation:{...b.federation,connections:N}}});break;case"federation:pouch":case"federation:pouch-log":t(b=>({federation:{...b.federation,pouchLog:[...b.federation.pouchLog,r.data].slice(-200)}}));break;case"project-dir:changed":t({projectDir:(m=r.data)==null?void 0:m.projectDir,showProjectPicker:!1});break;case"tunnel.connected":s().fetchTunnels(),t({tunnelConnectStep:null});break;case"tunnel.status":{t({tunnelConnectStep:r.data});break}case"tunnel.disconnected":s().fetchTunnels();break;case"tunnel.health":{const b=s().savedTunnels.map(N=>{var w;return N.id===((w=r.data)==null?void 0:w.id)?{...N,latencyMs:r.data.latencyMs,healthy:r.data.healthy}:N});t({savedTunnels:b});break}case"tunnel.version-info":{const b=s().savedTunnels.map(N=>N.id===r.data.id?{...N,localVersion:r.data.localVersion,remoteVersion:r.data.remoteVersion,versionMatch:r.data.match}:N);t({savedTunnels:b});break}case"tunnel.version-mismatch":{const b=s().savedTunnels.map(N=>N.id===r.data.id?{...N,localVersion:r.data.localVersion,remoteVersion:r.data.remoteVersion,versionMatch:!1}:N);t({savedTunnels:b}),s().addToast("warning","Version mismatch",`Remote v${r.data.remoteVersion} — local v${r.data.localVersion}. ${r.data.message||""}`);break}case"tunnel.upgrade-failed":{s().addToast("error","Remote upgrade failed",r.data.error||"Unknown error");break}case"subscription:updated":{const b={subscription:r.data};((p=r.data)==null?void 0:p.active)===!0&&!s().marketplaceAuthenticated&&(b.marketplaceAuthenticated=!0),t(b),H.get("/edition").then(N=>{t({edition:N.edition||"community",subscription:{plan:N.plan||"community",status:N.status||(N.subscriptionActive?"active":"none"),active:N.subscriptionActive===!0,features:N.features||[],seats:N.seats||1,periodEnd:N.periodEnd||null,cancelAtPeriodEnd:N.cancelAtPeriodEnd||!1}})}).catch(()=>{}),s().fetchTunnels();break}case"auth:expired":t({marketplaceAuthenticated:!1,marketplaceUser:null});break;case"network:node:status":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{};t({networkNode:{...s().networkNode,...Q}});break}case"network:node:event":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{...b,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"signal_connected":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{level:"connected",msg:String(b.msg||b.message||"Connected to signal").slice(0,500),detail:b.detail||b.url||void 0,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"matched":{const b=r.data||{};t(N=>({networkEvents:[...N.networkEvents,{level:"session",msg:String(b.msg||b.message||"Session matched").slice(0,500),detail:b.detail||b.peer||b.nodeId||void 0,timestamp:b.timestamp||Date.now()}].slice(-100)}));break}case"network:status":{const b=r.data||{},N={networkStatus:{...s().networkStatus,...b}};if(b.compute){const B=b.compute;N.networkCompute={totalRamMb:B.totalRamMb??B.total_ram_mb??0,totalVramMb:B.totalVramMb??B.total_vram_mb??0,totalCpuCores:B.totalCpuCores??B.total_cpu_cores??0,totalBandwidthMbps:B.totalBandwidthMbps??B.total_bandwidth_mbps??0,activeNodes:B.activeNodes??B.active_nodes??0,totalNodes:B.totalNodes??B.total_nodes??0,avgLoad:B.avgLoad??B.avg_load??0}}else if(Array.isArray(b.nodes)&&b.nodes.length>0){const B=b.nodes,F=B.filter($=>$.status==="active");N.networkCompute={totalRamMb:B.reduce(($,I)=>$+(I.ram_mb||0),0),totalVramMb:B.reduce(($,I)=>$+(I.vram_mb||0),0),totalCpuCores:B.reduce(($,I)=>$+(I.cpu_cores||0),0),totalBandwidthMbps:B.reduce(($,I)=>$+(I.bandwidth_mbps||0),0),activeNodes:F.length,totalNodes:B.length,avgLoad:F.length>0?F.reduce(($,I)=>$+(I.load||0),0)/F.length:0}}t(N);const w=b.nodes||[],Q=s().networkNode.nodeId,k=Q?w.find(B=>(B.node_id||B.nodeId)===Q):null,U=w.filter(B=>B.status==="active"),E={t:Date.now(),globalSessions:b.activeSessions||0,mySessions:(k==null?void 0:k.active_sessions)??(k==null?void 0:k.sessions)??0,nodeCount:U.length,avgLoad:U.length>0?U.reduce((B,F)=>B+(F.load||0),0)/U.length:0,myLoad:(k==null?void 0:k.load)??0,totalVramMb:w.reduce((B,F)=>B+(F.vram_mb||0),0),totalRamMb:w.reduce((B,F)=>B+(F.ram_mb||0),0)};let T=[...s().networkSnapshots,E];T.length>100&&(T=T.slice(-100)),t({networkSnapshots:T});break}case"network:install:progress":{const{step:b,message:N,percent:w}=r.data||{};b==="done"?(t({networkInstalled:!0,networkInstallProgress:{installing:!1,step:null,message:null,percent:0,error:null}}),s().addToast("success","Network package installed")):t(b==="error"?{networkInstallProgress:{installing:!1,step:"error",message:N||"Install failed",percent:0,error:N||"Install failed"}}:{networkInstallProgress:{installing:!0,step:b||"progress",message:N||"",percent:Number.isFinite(w)?Math.max(0,Math.min(100,w)):s().networkInstallProgress.percent,error:null}});break}case"network:update:available":{const{installed:b,latest:N,updateAvailable:w}=r.data||{};t({networkVersion:{installed:b??s().networkVersion.installed,latest:N??s().networkVersion.latest,updateAvailable:!!w}});break}case"network:update:progress":{const{step:b,message:N,percent:w,version:Q,error:k}=r.data||{};b==="done"?(t({networkUpdateProgress:{updating:!1,step:null,message:null,percent:0,error:null},networkVersion:{...s().networkVersion,installed:Q||s().networkVersion.latest||s().networkVersion.installed,updateAvailable:!1}}),s().addToast("success","Network package updated")):b==="error"?(t({networkUpdateProgress:{updating:!1,step:"error",message:N||k||"Update failed",percent:0,error:N||k||"Update failed"}}),s().addToast("error","Network update failed",N||k)):t({networkUpdateProgress:{updating:!0,step:b||"progress",message:N||"",percent:Number.isFinite(w)?Math.max(0,Math.min(100,w)):s().networkUpdateProgress.percent,error:null}});break}case"training:status":{const b={trainingOptIn:((O=r.data)==null?void 0:O.optedIn)??!1,trainingStats:r.data};(v=r.data)!=null&&v.optedIn&&(b.dataSharingModalOpen=!1),t(b);break}case"config:updated":s().fetchBetaStatus(),s().fetchNetworkInstallStatus();break;case"network:token:timing":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{},k={networkTokenTiming:Q,networkPerfSnapshots:[...s().networkPerfSnapshots,{t:Date.now(),tps:Q.tps||0}].slice(-100)};if(Array.isArray(Q.stages)){const U={...s().networkNodeTelemetry},E=new Set(["__proto__","constructor","prototype"]);for(const T of Q.stages){const B=(j=T.node_telemetry)==null?void 0:j.node_id;B&&typeof B=="string"&&!E.has(B)&&(U[B]={...T.node_telemetry,forward_ms:T.forward_ms,updatedAt:Date.now()})}k.networkNodeTelemetry=U}t(k);break}case"network:timing:summary":{const{__proto__:b,constructor:N,prototype:w,...Q}=r.data||{};t(k=>({networkBenchmarks:[...k.networkBenchmarks,Q].slice(-100)}));break}case"keeper:saved":case"keeper:updated":case"keeper:deleted":s().fetchKeeperItems();break}},n.onclose=()=>{_a&&(clearInterval(_a),_a=null),t({connected:!1,hydrated:!1,ws:null,daemonHost:null,tunneled:!1,remoteHomedir:null}),setTimeout(()=>s().connect(),2e3)},n.onerror=()=>n.close()}}));if(typeof window<"u"){const t=()=>{const s=C.getState();s.ws||s.connect()};window.addEventListener("online",t),window.addEventListener("focus",t),document.addEventListener("visibilitychange",()=>{document.hidden||t()})}function CQ(t){g.useEffect(()=>{function s(n){for(const a of t){const r=a.meta?n.metaKey||n.ctrlKey:!0,i=a.shift?n.shiftKey:!n.shiftKey;if(n.key.toLowerCase()===a.key.toLowerCase()&&r&&i){n.preventDefault(),a.handler();return}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[t])}function vd(){return!!(window.groove||navigator.userAgent.includes("Electron"))}function kQ(){var t;return((t=window.groove)==null?void 0:t.platform)||"browser"}function fO(t){window.groove?window.groove.openExternal(t):window.open(t,"_blank")}async function zE(t={}){var s,n;return(n=(s=window.groove)==null?void 0:s.folders)!=null&&n.select?window.groove.folders.select(t):null}async function TQ(t){var s,n;if((n=(s=window.groove)==null?void 0:s.integrations)!=null&&n.oauthStart)return window.groove.integrations.oauthStart(t);window.open(t,"_blank","noopener")}function UQ(t){var s,n,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(s=0;s<r;s++)t[s]&&(n=UQ(t[s]))&&(a&&(a+=" "),a+=n)}else for(n in t)t[n]&&(a&&(a+=" "),a+=n);return a}function LE(){for(var t,s,n=0,a="",r=arguments.length;n<r;n++)(t=arguments[n])&&(s=UQ(t))&&(a&&(a+=" "),a+=s);return a}const DE=(t,s)=>{const n=new Array(t.length+s.length);for(let a=0;a<t.length;a++)n[a]=t[a];for(let a=0;a<s.length;a++)n[t.length+a]=s[a];return n},HE=(t,s)=>({classGroupId:t,validator:s}),EQ=(t=new Map,s=null,n)=>({nextPart:t,validators:s,classGroupId:n}),dx="-",ej=[],XE="arbitrary..",GE=t=>{const s=VE(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=t;return{getClassGroupId:c=>{if(c.startsWith("[")&&c.endsWith("]"))return ZE(c);const A=c.split(dx),u=A[0]===""&&A.length>1?1:0;return PQ(A,u,s)},getConflictingClassGroupIds:(c,A)=>{if(A){const u=a[c],x=n[c];return u?x?DE(x,u):u:x||ej}return n[c]||ej}}},PQ=(t,s,n)=>{if(t.length-s===0)return n.classGroupId;const r=t[s],i=n.nextPart.get(r);if(i){const x=PQ(t,s+1,i);if(x)return x}const c=n.validators;if(c===null)return;const A=s===0?t.join(dx):t.slice(s).join(dx),u=c.length;for(let x=0;x<u;x++){const m=c[x];if(m.validator(A))return m.classGroupId}},ZE=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=t.slice(1,-1),n=s.indexOf(":"),a=s.slice(0,n);return a?XE+a:void 0})(),VE=t=>{const{theme:s,classGroups:n}=t;return KE(n,s)},KE=(t,s)=>{const n=EQ();for(const a in t){const r=t[a];wb(r,n,a,s)}return n},wb=(t,s,n,a)=>{const r=t.length;for(let i=0;i<r;i++){const c=t[i];qE(c,s,n,a)}},qE=(t,s,n,a)=>{if(typeof t=="string"){WE(t,s,n);return}if(typeof t=="function"){YE(t,s,n,a);return}JE(t,s,n,a)},WE=(t,s,n)=>{const a=t===""?s:FQ(s,t);a.classGroupId=n},YE=(t,s,n,a)=>{if(eP(t)){wb(t(a),s,n,a);return}s.validators===null&&(s.validators=[]),s.validators.push(HE(n,t))},JE=(t,s,n,a)=>{const r=Object.entries(t),i=r.length;for(let c=0;c<i;c++){const[A,u]=r[c];wb(u,FQ(s,A),n,a)}},FQ=(t,s)=>{let n=t;const a=s.split(dx),r=a.length;for(let i=0;i<r;i++){const c=a[i];let A=n.nextPart.get(c);A||(A=EQ(),n.nextPart.set(c,A)),n=A}return n},eP=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,tP=t=>{if(t<1)return{get:()=>{},set:()=>{}};let s=0,n=Object.create(null),a=Object.create(null);const r=(i,c)=>{n[i]=c,s++,s>t&&(s=0,a=n,n=Object.create(null))};return{get(i){let c=n[i];if(c!==void 0)return c;if((c=a[i])!==void 0)return r(i,c),c},set(i,c){i in n?n[i]=c:r(i,c)}}},xO="!",tj=":",sP=[],sj=(t,s,n,a,r)=>({modifiers:t,hasImportantModifier:s,baseClassName:n,maybePostfixModifierPosition:a,isExternal:r}),nP=t=>{const{prefix:s,experimentalParseClassName:n}=t;let a=r=>{const i=[];let c=0,A=0,u=0,x;const m=r.length;for(let b=0;b<m;b++){const N=r[b];if(c===0&&A===0){if(N===tj){i.push(r.slice(u,b)),u=b+1;continue}if(N==="/"){x=b;continue}}N==="["?c++:N==="]"?c--:N==="("?A++:N===")"&&A--}const p=i.length===0?r:r.slice(u);let O=p,v=!1;p.endsWith(xO)?(O=p.slice(0,-1),v=!0):p.startsWith(xO)&&(O=p.slice(1),v=!0);const j=x&&x>u?x-u:void 0;return sj(i,v,O,j)};if(s){const r=s+tj,i=a;a=c=>c.startsWith(r)?i(c.slice(r.length)):sj(sP,!1,c,void 0,!0)}if(n){const r=a;a=i=>n({className:i,parseClassName:r})}return a},aP=t=>{const s=new Map;return t.orderSensitiveModifiers.forEach((n,a)=>{s.set(n,1e6+a)}),n=>{const a=[];let r=[];for(let i=0;i<n.length;i++){const c=n[i],A=c[0]==="[",u=s.has(c);A||u?(r.length>0&&(r.sort(),a.push(...r),r=[]),a.push(c)):r.push(c)}return r.length>0&&(r.sort(),a.push(...r)),a}},rP=t=>({cache:tP(t.cacheSize),parseClassName:nP(t),sortModifiers:aP(t),...GE(t)}),oP=/\s+/,iP=(t,s)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:r,sortModifiers:i}=s,c=[],A=t.trim().split(oP);let u="";for(let x=A.length-1;x>=0;x-=1){const m=A[x],{isExternal:p,modifiers:O,hasImportantModifier:v,baseClassName:j,maybePostfixModifierPosition:b}=n(m);if(p){u=m+(u.length>0?" "+u:u);continue}let N=!!b,w=a(N?j.substring(0,b):j);if(!w){if(!N){u=m+(u.length>0?" "+u:u);continue}if(w=a(j),!w){u=m+(u.length>0?" "+u:u);continue}N=!1}const Q=O.length===0?"":O.length===1?O[0]:i(O).join(":"),k=v?Q+xO:Q,U=k+w;if(c.indexOf(U)>-1)continue;c.push(U);const E=r(w,N);for(let T=0;T<E.length;++T){const B=E[T];c.push(k+B)}u=m+(u.length>0?" "+u:u)}return u},lP=(...t)=>{let s=0,n,a,r="";for(;s<t.length;)(n=t[s++])&&(a=RQ(n))&&(r&&(r+=" "),r+=a);return r},RQ=t=>{if(typeof t=="string")return t;let s,n="";for(let a=0;a<t.length;a++)t[a]&&(s=RQ(t[a]))&&(n&&(n+=" "),n+=s);return n},cP=(t,...s)=>{let n,a,r,i;const c=u=>{const x=s.reduce((m,p)=>p(m),t());return n=rP(x),a=n.cache.get,r=n.cache.set,i=A,A(u)},A=u=>{const x=a(u);if(x)return x;const m=iP(u,n);return r(u,m),m};return i=c,(...u)=>i(lP(...u))},AP=[],ws=t=>{const s=n=>n[t]||AP;return s.isThemeGetter=!0,s},$Q=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,MQ=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dP=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,uP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,fP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,xP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,mP=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,hP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ho=t=>dP.test(t),ot=t=>!!t&&!Number.isNaN(Number(t)),po=t=>!!t&&Number.isInteger(Number(t)),Xp=t=>t.endsWith("%")&&ot(t.slice(0,-1)),jr=t=>uP.test(t),IQ=()=>!0,pP=t=>fP.test(t)&&!xP.test(t),jb=()=>!1,gP=t=>mP.test(t),OP=t=>hP.test(t),bP=t=>!Ie(t)&&!_e(t),vP=t=>Ko(t,LQ,jb),Ie=t=>$Q.test(t),bi=t=>Ko(t,DQ,pP),nj=t=>Ko(t,CP,ot),yP=t=>Ko(t,XQ,IQ),wP=t=>Ko(t,HQ,jb),aj=t=>Ko(t,_Q,jb),jP=t=>Ko(t,zQ,OP),Ku=t=>Ko(t,GQ,gP),_e=t=>MQ.test(t),NA=t=>Gi(t,DQ),NP=t=>Gi(t,HQ),rj=t=>Gi(t,_Q),QP=t=>Gi(t,LQ),SP=t=>Gi(t,zQ),qu=t=>Gi(t,GQ,!0),BP=t=>Gi(t,XQ,!0),Ko=(t,s,n)=>{const a=$Q.exec(t);return a?a[1]?s(a[1]):n(a[2]):!1},Gi=(t,s,n=!1)=>{const a=MQ.exec(t);return a?a[1]?s(a[1]):n:!1},_Q=t=>t==="position"||t==="percentage",zQ=t=>t==="image"||t==="url",LQ=t=>t==="length"||t==="size"||t==="bg-size",DQ=t=>t==="length",CP=t=>t==="number",HQ=t=>t==="family-name",XQ=t=>t==="number"||t==="weight",GQ=t=>t==="shadow",kP=()=>{const t=ws("color"),s=ws("font"),n=ws("text"),a=ws("font-weight"),r=ws("tracking"),i=ws("leading"),c=ws("breakpoint"),A=ws("container"),u=ws("spacing"),x=ws("radius"),m=ws("shadow"),p=ws("inset-shadow"),O=ws("text-shadow"),v=ws("drop-shadow"),j=ws("blur"),b=ws("perspective"),N=ws("aspect"),w=ws("ease"),Q=ws("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...U(),_e,Ie],T=()=>["auto","hidden","clip","visible","scroll"],B=()=>["auto","contain","none"],F=()=>[_e,Ie,u],$=()=>[ho,"full","auto",...F()],I=()=>[po,"none","subgrid",_e,Ie],Y=()=>["auto",{span:["full",po,_e,Ie]},po,_e,Ie],W=()=>[po,"auto",_e,Ie],ee=()=>["auto","min","max","fr",_e,Ie],X=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],z=()=>["start","end","center","stretch","center-safe","end-safe"],P=()=>["auto",...F()],q=()=>[ho,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],V=()=>[ho,"screen","full","dvw","lvw","svw","min","max","fit",...F()],M=()=>[ho,"screen","full","lh","dvh","lvh","svh","min","max","fit",...F()],D=()=>[t,_e,Ie],J=()=>[...U(),rj,aj,{position:[_e,Ie]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],te=()=>["auto","cover","contain",QP,vP,{size:[_e,Ie]}],pe=()=>[Xp,NA,bi],K=()=>["","none","full",x,_e,Ie],ce=()=>["",ot,NA,bi],le=()=>["solid","dashed","dotted","double"],je=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],_=()=>[ot,Xp,rj,aj],re=()=>["","none",j,_e,Ie],fe=()=>["none",ot,_e,Ie],ve=()=>["none",ot,_e,Ie],Ce=()=>[ot,_e,Ie],Te=()=>[ho,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[jr],breakpoint:[jr],color:[IQ],container:[jr],"drop-shadow":[jr],ease:["in","out","in-out"],font:[bP],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[jr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[jr],shadow:[jr],spacing:["px",ot],text:[jr],"text-shadow":[jr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ho,Ie,_e,N]}],container:["container"],columns:[{columns:[ot,Ie,_e,A]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:B()}],"overscroll-x":[{"overscroll-x":B()}],"overscroll-y":[{"overscroll-y":B()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:$()}],"inset-x":[{"inset-x":$()}],"inset-y":[{"inset-y":$()}],start:[{"inset-s":$(),start:$()}],end:[{"inset-e":$(),end:$()}],"inset-bs":[{"inset-bs":$()}],"inset-be":[{"inset-be":$()}],top:[{top:$()}],right:[{right:$()}],bottom:[{bottom:$()}],left:[{left:$()}],visibility:["visible","invisible","collapse"],z:[{z:[po,"auto",_e,Ie]}],basis:[{basis:[ho,"full","auto",A,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,ho,"auto","initial","none",Ie]}],grow:[{grow:["",ot,_e,Ie]}],shrink:[{shrink:["",ot,_e,Ie]}],order:[{order:[po,"first","last","none",_e,Ie]}],"grid-cols":[{"grid-cols":I()}],"col-start-end":[{col:Y()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":I()}],"row-start-end":[{row:Y()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ee()}],"auto-rows":[{"auto-rows":ee()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...z(),"normal"]}],"justify-self":[{"justify-self":["auto",...z()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...z(),{baseline:["","last"]}]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...z(),"baseline"]}],"place-self":[{"place-self":["auto",...z()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pbs:[{pbs:F()}],pbe:[{pbe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:P()}],mx:[{mx:P()}],my:[{my:P()}],ms:[{ms:P()}],me:[{me:P()}],mbs:[{mbs:P()}],mbe:[{mbe:P()}],mt:[{mt:P()}],mr:[{mr:P()}],mb:[{mb:P()}],ml:[{ml:P()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],"inline-size":[{inline:["auto",...V()]}],"min-inline-size":[{"min-inline":["auto",...V()]}],"max-inline-size":[{"max-inline":["none",...V()]}],"block-size":[{block:["auto",...M()]}],"min-block-size":[{"min-block":["auto",...M()]}],"max-block-size":[{"max-block":["none",...M()]}],w:[{w:[A,"screen",...q()]}],"min-w":[{"min-w":[A,"screen","none",...q()]}],"max-w":[{"max-w":[A,"screen","none","prose",{screen:[c]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",n,NA,bi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,BP,yP]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Xp,Ie]}],"font-family":[{font:[NP,wP,s]}],"font-features":[{"font-features":[Ie]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,_e,Ie]}],"line-clamp":[{"line-clamp":[ot,"none",_e,nj]}],leading:[{leading:[i,...F()]}],"list-image":[{"list-image":["none",_e,Ie]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_e,Ie]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...le(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",_e,bi]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[ot,"auto",_e,Ie]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_e,Ie]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_e,Ie]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:J()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:te()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},po,_e,Ie],radial:["",_e,Ie],conic:[po,_e,Ie]},SP,jP]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:pe()}],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:ce()}],"border-w-x":[{"border-x":ce()}],"border-w-y":[{"border-y":ce()}],"border-w-s":[{"border-s":ce()}],"border-w-e":[{"border-e":ce()}],"border-w-bs":[{"border-bs":ce()}],"border-w-be":[{"border-be":ce()}],"border-w-t":[{"border-t":ce()}],"border-w-r":[{"border-r":ce()}],"border-w-b":[{"border-b":ce()}],"border-w-l":[{"border-l":ce()}],"divide-x":[{"divide-x":ce()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ce()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...le(),"hidden","none"]}],"divide-style":[{divide:[...le(),"hidden","none"]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-bs":[{"border-bs":D()}],"border-color-be":[{"border-be":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,_e,Ie]}],"outline-w":[{outline:["",ot,NA,bi]}],"outline-color":[{outline:D()}],shadow:[{shadow:["","none",m,qu,Ku]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":["none",p,qu,Ku]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:ce()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[ot,bi]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":ce()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":["none",O,qu,Ku]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[ot,_e,Ie]}],"mix-blend":[{"mix-blend":[...je(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":je()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":_()}],"mask-image-linear-to-pos":[{"mask-linear-to":_()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":_()}],"mask-image-t-to-pos":[{"mask-t-to":_()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":_()}],"mask-image-r-to-pos":[{"mask-r-to":_()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":_()}],"mask-image-b-to-pos":[{"mask-b-to":_()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":_()}],"mask-image-l-to-pos":[{"mask-l-to":_()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":_()}],"mask-image-x-to-pos":[{"mask-x-to":_()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":_()}],"mask-image-y-to-pos":[{"mask-y-to":_()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[_e,Ie]}],"mask-image-radial-from-pos":[{"mask-radial-from":_()}],"mask-image-radial-to-pos":[{"mask-radial-to":_()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":U()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":_()}],"mask-image-conic-to-pos":[{"mask-conic-to":_()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:J()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:te()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_e,Ie]}],filter:[{filter:["","none",_e,Ie]}],blur:[{blur:re()}],brightness:[{brightness:[ot,_e,Ie]}],contrast:[{contrast:[ot,_e,Ie]}],"drop-shadow":[{"drop-shadow":["","none",v,qu,Ku]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:["",ot,_e,Ie]}],"hue-rotate":[{"hue-rotate":[ot,_e,Ie]}],invert:[{invert:["",ot,_e,Ie]}],saturate:[{saturate:[ot,_e,Ie]}],sepia:[{sepia:["",ot,_e,Ie]}],"backdrop-filter":[{"backdrop-filter":["","none",_e,Ie]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[ot,_e,Ie]}],"backdrop-contrast":[{"backdrop-contrast":[ot,_e,Ie]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,_e,Ie]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,_e,Ie]}],"backdrop-invert":[{"backdrop-invert":["",ot,_e,Ie]}],"backdrop-opacity":[{"backdrop-opacity":[ot,_e,Ie]}],"backdrop-saturate":[{"backdrop-saturate":[ot,_e,Ie]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,_e,Ie]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_e,Ie]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",_e,Ie]}],ease:[{ease:["linear","initial",w,_e,Ie]}],delay:[{delay:[ot,_e,Ie]}],animate:[{animate:["none",Q,_e,Ie]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,_e,Ie]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":["scale-3d"],skew:[{skew:Ce()}],"skew-x":[{"skew-x":Ce()}],"skew-y":[{"skew-y":Ce()}],transform:[{transform:[_e,Ie,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Te()}],"translate-x":[{"translate-x":Te()}],"translate-y":[{"translate-y":Te()}],"translate-z":[{"translate-z":Te()}],"translate-none":["translate-none"],accent:[{accent:D()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_e,Ie]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mbs":[{"scroll-mbs":F()}],"scroll-mbe":[{"scroll-mbe":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pbs":[{"scroll-pbs":F()}],"scroll-pbe":[{"scroll-pbe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_e,Ie]}],fill:[{fill:["none",...D()]}],"stroke-w":[{stroke:[ot,NA,bi,nj]}],stroke:[{stroke:["none",...D()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},TP=cP(kP);function G(...t){return TP(LE(t))}function Ue(t,s,{checkForDefaultPrevented:n=!0}={}){return function(r){if(t==null||t(r),n===!1||!r.defaultPrevented)return s==null?void 0:s(r)}}function oj(t,s){if(typeof t=="function")return t(s);t!=null&&(t.current=s)}function Nb(...t){return s=>{let n=!1;const a=t.map(r=>{const i=oj(r,s);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r<a.length;r++){const i=a[r];typeof i=="function"?i():oj(t[r],null)}}}}function xt(...t){return g.useCallback(Nb(...t),t)}function UP(t,s){const n=g.createContext(s),a=i=>{const{children:c,...A}=i,u=g.useMemo(()=>A,Object.values(A));return e.jsx(n.Provider,{value:u,children:c})};a.displayName=t+"Provider";function r(i){const c=g.useContext(n);if(c)return c;if(s!==void 0)return s;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[a,r]}function qa(t,s=[]){let n=[];function a(i,c){const A=g.createContext(c),u=n.length;n=[...n,c];const x=p=>{var w;const{scope:O,children:v,...j}=p,b=((w=O==null?void 0:O[t])==null?void 0:w[u])||A,N=g.useMemo(()=>j,Object.values(j));return e.jsx(b.Provider,{value:N,children:v})};x.displayName=i+"Provider";function m(p,O){var b;const v=((b=O==null?void 0:O[t])==null?void 0:b[u])||A,j=g.useContext(v);if(j)return j;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${i}\``)}return[x,m]}const r=()=>{const i=n.map(c=>g.createContext(c));return function(A){const u=(A==null?void 0:A[t])||i;return g.useMemo(()=>({[`__scope${t}`]:{...A,[t]:u}}),[A,u])}};return r.scopeName=t,[a,EP(r,...s)]}function EP(...t){const s=t[0];if(t.length===1)return s;const n=()=>{const a=t.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const c=a.reduce((A,{useScope:u,scopeName:x})=>{const p=u(i)[`__scope${x}`];return{...A,...p}},{});return g.useMemo(()=>({[`__scope${s.scopeName}`]:c}),[c])}};return n.scopeName=s.scopeName,n}function lc(t){const s=PP(t),n=g.forwardRef((a,r)=>{const{children:i,...c}=a,A=g.Children.toArray(i),u=A.find(RP);if(u){const x=u.props.children,m=A.map(p=>p===u?g.Children.count(x)>1?g.Children.only(null):g.isValidElement(x)?x.props.children:null:p);return e.jsx(s,{...c,ref:r,children:g.isValidElement(x)?g.cloneElement(x,void 0,m):null})}return e.jsx(s,{...c,ref:r,children:i})});return n.displayName=`${t}.Slot`,n}function PP(t){const s=g.forwardRef((n,a)=>{const{children:r,...i}=n;if(g.isValidElement(r)){const c=MP(r),A=$P(i,r.props);return r.type!==g.Fragment&&(A.ref=a?Nb(a,c):c),g.cloneElement(r,A)}return g.Children.count(r)>1?g.Children.only(null):null});return s.displayName=`${t}.SlotClone`,s}var ZQ=Symbol("radix.slottable");function FP(t){const s=({children:n})=>e.jsx(e.Fragment,{children:n});return s.displayName=`${t}.Slottable`,s.__radixId=ZQ,s}function RP(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===ZQ}function $P(t,s){const n={...s};for(const a in s){const r=t[a],i=s[a];/^on[A-Z]/.test(a)?r&&i?n[a]=(...A)=>{const u=i(...A);return r(...A),u}:r&&(n[a]=r):a==="style"?n[a]={...r,...i}:a==="className"&&(n[a]=[r,i].filter(Boolean).join(" "))}return{...t,...n}}function MP(t){var a,r;let s=(a=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:a.get,n=s&&"isReactWarning"in s&&s.isReactWarning;return n?t.ref:(s=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=s&&"isReactWarning"in s&&s.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var IP=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],et=IP.reduce((t,s)=>{const n=lc(`Primitive.${s}`),a=g.forwardRef((r,i)=>{const{asChild:c,...A}=r,u=c?n:s;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(u,{...A,ref:i})});return a.displayName=`Primitive.${s}`,{...t,[s]:a}},{});function VQ(t,s){t&&Xx.flushSync(()=>t.dispatchEvent(s))}function Es(t){const s=g.useRef(t);return g.useEffect(()=>{s.current=t}),g.useMemo(()=>(...n)=>{var a;return(a=s.current)==null?void 0:a.call(s,...n)},[])}function _P(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t);g.useEffect(()=>{const a=r=>{r.key==="Escape"&&n(r)};return s.addEventListener("keydown",a,{capture:!0}),()=>s.removeEventListener("keydown",a,{capture:!0})},[n,s])}var zP="DismissableLayer",mO="dismissableLayer.update",LP="dismissableLayer.pointerDownOutside",DP="dismissableLayer.focusOutside",ij,KQ=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),yd=g.forwardRef((t,s)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:a,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:c,onDismiss:A,...u}=t,x=g.useContext(KQ),[m,p]=g.useState(null),O=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=g.useState({}),j=xt(s,B=>p(B)),b=Array.from(x.layers),[N]=[...x.layersWithOutsidePointerEventsDisabled].slice(-1),w=b.indexOf(N),Q=m?b.indexOf(m):-1,k=x.layersWithOutsidePointerEventsDisabled.size>0,U=Q>=w,E=GP(B=>{const F=B.target,$=[...x.branches].some(I=>I.contains(F));!U||$||(r==null||r(B),c==null||c(B),B.defaultPrevented||A==null||A())},O),T=ZP(B=>{const F=B.target;[...x.branches].some(I=>I.contains(F))||(i==null||i(B),c==null||c(B),B.defaultPrevented||A==null||A())},O);return _P(B=>{Q===x.layers.size-1&&(a==null||a(B),!B.defaultPrevented&&A&&(B.preventDefault(),A()))},O),g.useEffect(()=>{if(m)return n&&(x.layersWithOutsidePointerEventsDisabled.size===0&&(ij=O.body.style.pointerEvents,O.body.style.pointerEvents="none"),x.layersWithOutsidePointerEventsDisabled.add(m)),x.layers.add(m),lj(),()=>{n&&x.layersWithOutsidePointerEventsDisabled.size===1&&(O.body.style.pointerEvents=ij)}},[m,O,n,x]),g.useEffect(()=>()=>{m&&(x.layers.delete(m),x.layersWithOutsidePointerEventsDisabled.delete(m),lj())},[m,x]),g.useEffect(()=>{const B=()=>v({});return document.addEventListener(mO,B),()=>document.removeEventListener(mO,B)},[]),e.jsx(et.div,{...u,ref:j,style:{pointerEvents:k?U?"auto":"none":void 0,...t.style},onFocusCapture:Ue(t.onFocusCapture,T.onFocusCapture),onBlurCapture:Ue(t.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Ue(t.onPointerDownCapture,E.onPointerDownCapture)})});yd.displayName=zP;var HP="DismissableLayerBranch",XP=g.forwardRef((t,s)=>{const n=g.useContext(KQ),a=g.useRef(null),r=xt(s,a);return g.useEffect(()=>{const i=a.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),e.jsx(et.div,{...t,ref:r})});XP.displayName=HP;function GP(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t),a=g.useRef(!1),r=g.useRef(()=>{});return g.useEffect(()=>{const i=A=>{if(A.target&&!a.current){let u=function(){qQ(LP,n,x,{discrete:!0})};const x={originalEvent:A};A.pointerType==="touch"?(s.removeEventListener("click",r.current),r.current=u,s.addEventListener("click",r.current,{once:!0})):u()}else s.removeEventListener("click",r.current);a.current=!1},c=window.setTimeout(()=>{s.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(c),s.removeEventListener("pointerdown",i),s.removeEventListener("click",r.current)}},[s,n]),{onPointerDownCapture:()=>a.current=!0}}function ZP(t,s=globalThis==null?void 0:globalThis.document){const n=Es(t),a=g.useRef(!1);return g.useEffect(()=>{const r=i=>{i.target&&!a.current&&qQ(DP,n,{originalEvent:i},{discrete:!1})};return s.addEventListener("focusin",r),()=>s.removeEventListener("focusin",r)},[s,n]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function lj(){const t=new CustomEvent(mO);document.dispatchEvent(t)}function qQ(t,s,n,{discrete:a}){const r=n.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});s&&r.addEventListener(t,s,{once:!0}),a?VQ(r,i):r.dispatchEvent(i)}var Xs=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},VP=pQ[" useId ".trim().toString()]||(()=>{}),KP=0;function Pr(t){const[s,n]=g.useState(VP());return Xs(()=>{n(a=>a??String(KP++))},[t]),s?`radix-${s}`:""}const qP=["top","right","bottom","left"],_o=Math.min,In=Math.max,ux=Math.round,Wu=Math.floor,Xa=t=>({x:t,y:t}),WP={left:"right",right:"left",bottom:"top",top:"bottom"};function hO(t,s,n){return In(t,_o(s,n))}function Mr(t,s){return typeof t=="function"?t(s):t}function Ir(t){return t.split("-")[0]}function jc(t){return t.split("-")[1]}function Qb(t){return t==="x"?"y":"x"}function Sb(t){return t==="y"?"height":"width"}function Ha(t){const s=t[0];return s==="t"||s==="b"?"y":"x"}function Bb(t){return Qb(Ha(t))}function YP(t,s,n){n===void 0&&(n=!1);const a=jc(t),r=Bb(t),i=Sb(r);let c=r==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return s.reference[i]>s.floating[i]&&(c=fx(c)),[c,fx(c)]}function JP(t){const s=fx(t);return[pO(t),s,pO(s)]}function pO(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const cj=["left","right"],Aj=["right","left"],eF=["top","bottom"],tF=["bottom","top"];function sF(t,s,n){switch(t){case"top":case"bottom":return n?s?Aj:cj:s?cj:Aj;case"left":case"right":return s?eF:tF;default:return[]}}function nF(t,s,n,a){const r=jc(t);let i=sF(Ir(t),n==="start",a);return r&&(i=i.map(c=>c+"-"+r),s&&(i=i.concat(i.map(pO)))),i}function fx(t){const s=Ir(t);return WP[s]+t.slice(s.length)}function aF(t){return{top:0,right:0,bottom:0,left:0,...t}}function WQ(t){return typeof t!="number"?aF(t):{top:t,right:t,bottom:t,left:t}}function xx(t){const{x:s,y:n,width:a,height:r}=t;return{width:a,height:r,top:n,left:s,right:s+a,bottom:n+r,x:s,y:n}}function dj(t,s,n){let{reference:a,floating:r}=t;const i=Ha(s),c=Bb(s),A=Sb(c),u=Ir(s),x=i==="y",m=a.x+a.width/2-r.width/2,p=a.y+a.height/2-r.height/2,O=a[A]/2-r[A]/2;let v;switch(u){case"top":v={x:m,y:a.y-r.height};break;case"bottom":v={x:m,y:a.y+a.height};break;case"right":v={x:a.x+a.width,y:p};break;case"left":v={x:a.x-r.width,y:p};break;default:v={x:a.x,y:a.y}}switch(jc(s)){case"start":v[c]-=O*(n&&x?-1:1);break;case"end":v[c]+=O*(n&&x?-1:1);break}return v}async function rF(t,s){var n;s===void 0&&(s={});const{x:a,y:r,platform:i,rects:c,elements:A,strategy:u}=t,{boundary:x="clippingAncestors",rootBoundary:m="viewport",elementContext:p="floating",altBoundary:O=!1,padding:v=0}=Mr(s,t),j=WQ(v),N=A[O?p==="floating"?"reference":"floating":p],w=xx(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(N)))==null||n?N:N.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(A.floating)),boundary:x,rootBoundary:m,strategy:u})),Q=p==="floating"?{x:a,y:r,width:c.floating.width,height:c.floating.height}:c.reference,k=await(i.getOffsetParent==null?void 0:i.getOffsetParent(A.floating)),U=await(i.isElement==null?void 0:i.isElement(k))?await(i.getScale==null?void 0:i.getScale(k))||{x:1,y:1}:{x:1,y:1},E=xx(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:A,rect:Q,offsetParent:k,strategy:u}):Q);return{top:(w.top-E.top+j.top)/U.y,bottom:(E.bottom-w.bottom+j.bottom)/U.y,left:(w.left-E.left+j.left)/U.x,right:(E.right-w.right+j.right)/U.x}}const oF=50,iF=async(t,s,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:i=[],platform:c}=n,A=c.detectOverflow?c:{...c,detectOverflow:rF},u=await(c.isRTL==null?void 0:c.isRTL(s));let x=await c.getElementRects({reference:t,floating:s,strategy:r}),{x:m,y:p}=dj(x,a,u),O=a,v=0;const j={};for(let b=0;b<i.length;b++){const N=i[b];if(!N)continue;const{name:w,fn:Q}=N,{x:k,y:U,data:E,reset:T}=await Q({x:m,y:p,initialPlacement:a,placement:O,strategy:r,middlewareData:j,rects:x,platform:A,elements:{reference:t,floating:s}});m=k??m,p=U??p,j[w]={...j[w],...E},T&&v<oF&&(v++,typeof T=="object"&&(T.placement&&(O=T.placement),T.rects&&(x=T.rects===!0?await c.getElementRects({reference:t,floating:s,strategy:r}):T.rects),{x:m,y:p}=dj(x,O,u)),b=-1)}return{x:m,y:p,placement:O,strategy:r,middlewareData:j}},lF=t=>({name:"arrow",options:t,async fn(s){const{x:n,y:a,placement:r,rects:i,platform:c,elements:A,middlewareData:u}=s,{element:x,padding:m=0}=Mr(t,s)||{};if(x==null)return{};const p=WQ(m),O={x:n,y:a},v=Bb(r),j=Sb(v),b=await c.getDimensions(x),N=v==="y",w=N?"top":"left",Q=N?"bottom":"right",k=N?"clientHeight":"clientWidth",U=i.reference[j]+i.reference[v]-O[v]-i.floating[j],E=O[v]-i.reference[v],T=await(c.getOffsetParent==null?void 0:c.getOffsetParent(x));let B=T?T[k]:0;(!B||!await(c.isElement==null?void 0:c.isElement(T)))&&(B=A.floating[k]||i.floating[j]);const F=U/2-E/2,$=B/2-b[j]/2-1,I=_o(p[w],$),Y=_o(p[Q],$),W=I,ee=B-b[j]-Y,X=B/2-b[j]/2+F,z=hO(W,X,ee),P=!u.arrow&&jc(r)!=null&&X!==z&&i.reference[j]/2-(X<W?I:Y)-b[j]/2<0,q=P?X<W?X-W:X-ee:0;return{[v]:O[v]+q,data:{[v]:z,centerOffset:X-z-q,...P&&{alignmentOffset:q}},reset:P}}}),cF=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(s){var n,a;const{placement:r,middlewareData:i,rects:c,initialPlacement:A,platform:u,elements:x}=s,{mainAxis:m=!0,crossAxis:p=!0,fallbackPlacements:O,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:b=!0,...N}=Mr(t,s);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=Ir(r),Q=Ha(A),k=Ir(A)===A,U=await(u.isRTL==null?void 0:u.isRTL(x.floating)),E=O||(k||!b?[fx(A)]:JP(A)),T=j!=="none";!O&&T&&E.push(...nF(A,b,j,U));const B=[A,...E],F=await u.detectOverflow(s,N),$=[];let I=((a=i.flip)==null?void 0:a.overflows)||[];if(m&&$.push(F[w]),p){const X=YP(r,c,U);$.push(F[X[0]],F[X[1]])}if(I=[...I,{placement:r,overflows:$}],!$.every(X=>X<=0)){var Y,W;const X=(((Y=i.flip)==null?void 0:Y.index)||0)+1,z=B[X];if(z&&(!(p==="alignment"?Q!==Ha(z):!1)||I.every(V=>Ha(V.placement)===Q?V.overflows[0]>0:!0)))return{data:{index:X,overflows:I},reset:{placement:z}};let P=(W=I.filter(q=>q.overflows[0]<=0).sort((q,V)=>q.overflows[1]-V.overflows[1])[0])==null?void 0:W.placement;if(!P)switch(v){case"bestFit":{var ee;const q=(ee=I.filter(V=>{if(T){const M=Ha(V.placement);return M===Q||M==="y"}return!0}).map(V=>[V.placement,V.overflows.filter(M=>M>0).reduce((M,D)=>M+D,0)]).sort((V,M)=>V[1]-M[1])[0])==null?void 0:ee[0];q&&(P=q);break}case"initialPlacement":P=A;break}if(r!==P)return{reset:{placement:P}}}return{}}}};function uj(t,s){return{top:t.top-s.height,right:t.right-s.width,bottom:t.bottom-s.height,left:t.left-s.width}}function fj(t){return qP.some(s=>t[s]>=0)}const AF=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(s){const{rects:n,platform:a}=s,{strategy:r="referenceHidden",...i}=Mr(t,s);switch(r){case"referenceHidden":{const c=await a.detectOverflow(s,{...i,elementContext:"reference"}),A=uj(c,n.reference);return{data:{referenceHiddenOffsets:A,referenceHidden:fj(A)}}}case"escaped":{const c=await a.detectOverflow(s,{...i,altBoundary:!0}),A=uj(c,n.floating);return{data:{escapedOffsets:A,escaped:fj(A)}}}default:return{}}}}},YQ=new Set(["left","top"]);async function dF(t,s){const{placement:n,platform:a,elements:r}=t,i=await(a.isRTL==null?void 0:a.isRTL(r.floating)),c=Ir(n),A=jc(n),u=Ha(n)==="y",x=YQ.has(c)?-1:1,m=i&&u?-1:1,p=Mr(s,t);let{mainAxis:O,crossAxis:v,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return A&&typeof j=="number"&&(v=A==="end"?j*-1:j),u?{x:v*m,y:O*x}:{x:O*x,y:v*m}}const uF=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(s){var n,a;const{x:r,y:i,placement:c,middlewareData:A}=s,u=await dF(s,t);return c===((n=A.offset)==null?void 0:n.placement)&&(a=A.arrow)!=null&&a.alignmentOffset?{}:{x:r+u.x,y:i+u.y,data:{...u,placement:c}}}}},fF=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(s){const{x:n,y:a,placement:r,platform:i}=s,{mainAxis:c=!0,crossAxis:A=!1,limiter:u={fn:w=>{let{x:Q,y:k}=w;return{x:Q,y:k}}},...x}=Mr(t,s),m={x:n,y:a},p=await i.detectOverflow(s,x),O=Ha(Ir(r)),v=Qb(O);let j=m[v],b=m[O];if(c){const w=v==="y"?"top":"left",Q=v==="y"?"bottom":"right",k=j+p[w],U=j-p[Q];j=hO(k,j,U)}if(A){const w=O==="y"?"top":"left",Q=O==="y"?"bottom":"right",k=b+p[w],U=b-p[Q];b=hO(k,b,U)}const N=u.fn({...s,[v]:j,[O]:b});return{...N,data:{x:N.x-n,y:N.y-a,enabled:{[v]:c,[O]:A}}}}}},xF=function(t){return t===void 0&&(t={}),{options:t,fn(s){const{x:n,y:a,placement:r,rects:i,middlewareData:c}=s,{offset:A=0,mainAxis:u=!0,crossAxis:x=!0}=Mr(t,s),m={x:n,y:a},p=Ha(r),O=Qb(p);let v=m[O],j=m[p];const b=Mr(A,s),N=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(u){const k=O==="y"?"height":"width",U=i.reference[O]-i.floating[k]+N.mainAxis,E=i.reference[O]+i.reference[k]-N.mainAxis;v<U?v=U:v>E&&(v=E)}if(x){var w,Q;const k=O==="y"?"width":"height",U=YQ.has(Ir(r)),E=i.reference[p]-i.floating[k]+(U&&((w=c.offset)==null?void 0:w[p])||0)+(U?0:N.crossAxis),T=i.reference[p]+i.reference[k]+(U?0:((Q=c.offset)==null?void 0:Q[p])||0)-(U?N.crossAxis:0);j<E?j=E:j>T&&(j=T)}return{[O]:v,[p]:j}}}},mF=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(s){var n,a;const{placement:r,rects:i,platform:c,elements:A}=s,{apply:u=()=>{},...x}=Mr(t,s),m=await c.detectOverflow(s,x),p=Ir(r),O=jc(r),v=Ha(r)==="y",{width:j,height:b}=i.floating;let N,w;p==="top"||p==="bottom"?(N=p,w=O===(await(c.isRTL==null?void 0:c.isRTL(A.floating))?"start":"end")?"left":"right"):(w=p,N=O==="end"?"top":"bottom");const Q=b-m.top-m.bottom,k=j-m.left-m.right,U=_o(b-m[N],Q),E=_o(j-m[w],k),T=!s.middlewareData.shift;let B=U,F=E;if((n=s.middlewareData.shift)!=null&&n.enabled.x&&(F=k),(a=s.middlewareData.shift)!=null&&a.enabled.y&&(B=Q),T&&!O){const I=In(m.left,0),Y=In(m.right,0),W=In(m.top,0),ee=In(m.bottom,0);v?F=j-2*(I!==0||Y!==0?I+Y:In(m.left,m.right)):B=b-2*(W!==0||ee!==0?W+ee:In(m.top,m.bottom))}await u({...s,availableWidth:F,availableHeight:B});const $=await c.getDimensions(A.floating);return j!==$.width||b!==$.height?{reset:{rects:!0}}:{}}}};function Vx(){return typeof window<"u"}function Nc(t){return JQ(t)?(t.nodeName||"").toLowerCase():"#document"}function Hn(t){var s;return(t==null||(s=t.ownerDocument)==null?void 0:s.defaultView)||window}function Wa(t){var s;return(s=(JQ(t)?t.ownerDocument:t.document)||window.document)==null?void 0:s.documentElement}function JQ(t){return Vx()?t instanceof Node||t instanceof Hn(t).Node:!1}function Ba(t){return Vx()?t instanceof Element||t instanceof Hn(t).Element:!1}function Dr(t){return Vx()?t instanceof HTMLElement||t instanceof Hn(t).HTMLElement:!1}function xj(t){return!Vx()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Hn(t).ShadowRoot}function wd(t){const{overflow:s,overflowX:n,overflowY:a,display:r}=Ca(t);return/auto|scroll|overlay|hidden|clip/.test(s+a+n)&&r!=="inline"&&r!=="contents"}function hF(t){return/^(table|td|th)$/.test(Nc(t))}function Kx(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const pF=/transform|translate|scale|rotate|perspective|filter/,gF=/paint|layout|strict|content/,vi=t=>!!t&&t!=="none";let Gp;function Cb(t){const s=Ba(t)?Ca(t):t;return vi(s.transform)||vi(s.translate)||vi(s.scale)||vi(s.rotate)||vi(s.perspective)||!kb()&&(vi(s.backdropFilter)||vi(s.filter))||pF.test(s.willChange||"")||gF.test(s.contain||"")}function OF(t){let s=zo(t);for(;Dr(s)&&!cc(s);){if(Cb(s))return s;if(Kx(s))return null;s=zo(s)}return null}function kb(){return Gp==null&&(Gp=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Gp}function cc(t){return/^(html|body|#document)$/.test(Nc(t))}function Ca(t){return Hn(t).getComputedStyle(t)}function qx(t){return Ba(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function zo(t){if(Nc(t)==="html")return t;const s=t.assignedSlot||t.parentNode||xj(t)&&t.host||Wa(t);return xj(s)?s.host:s}function eS(t){const s=zo(t);return cc(s)?t.ownerDocument?t.ownerDocument.body:t.body:Dr(s)&&wd(s)?s:eS(s)}function ad(t,s,n){var a;s===void 0&&(s=[]),n===void 0&&(n=!0);const r=eS(t),i=r===((a=t.ownerDocument)==null?void 0:a.body),c=Hn(r);if(i){const A=gO(c);return s.concat(c,c.visualViewport||[],wd(r)?r:[],A&&n?ad(A):[])}else return s.concat(r,ad(r,[],n))}function gO(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function tS(t){const s=Ca(t);let n=parseFloat(s.width)||0,a=parseFloat(s.height)||0;const r=Dr(t),i=r?t.offsetWidth:n,c=r?t.offsetHeight:a,A=ux(n)!==i||ux(a)!==c;return A&&(n=i,a=c),{width:n,height:a,$:A}}function Tb(t){return Ba(t)?t:t.contextElement}function tc(t){const s=Tb(t);if(!Dr(s))return Xa(1);const n=s.getBoundingClientRect(),{width:a,height:r,$:i}=tS(s);let c=(i?ux(n.width):n.width)/a,A=(i?ux(n.height):n.height)/r;return(!c||!Number.isFinite(c))&&(c=1),(!A||!Number.isFinite(A))&&(A=1),{x:c,y:A}}const bF=Xa(0);function sS(t){const s=Hn(t);return!kb()||!s.visualViewport?bF:{x:s.visualViewport.offsetLeft,y:s.visualViewport.offsetTop}}function vF(t,s,n){return s===void 0&&(s=!1),!n||s&&n!==Hn(t)?!1:s}function Ei(t,s,n,a){s===void 0&&(s=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Tb(t);let c=Xa(1);s&&(a?Ba(a)&&(c=tc(a)):c=tc(t));const A=vF(i,n,a)?sS(i):Xa(0);let u=(r.left+A.x)/c.x,x=(r.top+A.y)/c.y,m=r.width/c.x,p=r.height/c.y;if(i){const O=Hn(i),v=a&&Ba(a)?Hn(a):a;let j=O,b=gO(j);for(;b&&a&&v!==j;){const N=tc(b),w=b.getBoundingClientRect(),Q=Ca(b),k=w.left+(b.clientLeft+parseFloat(Q.paddingLeft))*N.x,U=w.top+(b.clientTop+parseFloat(Q.paddingTop))*N.y;u*=N.x,x*=N.y,m*=N.x,p*=N.y,u+=k,x+=U,j=Hn(b),b=gO(j)}}return xx({width:m,height:p,x:u,y:x})}function Wx(t,s){const n=qx(t).scrollLeft;return s?s.left+n:Ei(Wa(t)).left+n}function nS(t,s){const n=t.getBoundingClientRect(),a=n.left+s.scrollLeft-Wx(t,n),r=n.top+s.scrollTop;return{x:a,y:r}}function yF(t){let{elements:s,rect:n,offsetParent:a,strategy:r}=t;const i=r==="fixed",c=Wa(a),A=s?Kx(s.floating):!1;if(a===c||A&&i)return n;let u={scrollLeft:0,scrollTop:0},x=Xa(1);const m=Xa(0),p=Dr(a);if((p||!p&&!i)&&((Nc(a)!=="body"||wd(c))&&(u=qx(a)),p)){const v=Ei(a);x=tc(a),m.x=v.x+a.clientLeft,m.y=v.y+a.clientTop}const O=c&&!p&&!i?nS(c,u):Xa(0);return{width:n.width*x.x,height:n.height*x.y,x:n.x*x.x-u.scrollLeft*x.x+m.x+O.x,y:n.y*x.y-u.scrollTop*x.y+m.y+O.y}}function wF(t){return Array.from(t.getClientRects())}function jF(t){const s=Wa(t),n=qx(t),a=t.ownerDocument.body,r=In(s.scrollWidth,s.clientWidth,a.scrollWidth,a.clientWidth),i=In(s.scrollHeight,s.clientHeight,a.scrollHeight,a.clientHeight);let c=-n.scrollLeft+Wx(t);const A=-n.scrollTop;return Ca(a).direction==="rtl"&&(c+=In(s.clientWidth,a.clientWidth)-r),{width:r,height:i,x:c,y:A}}const mj=25;function NF(t,s){const n=Hn(t),a=Wa(t),r=n.visualViewport;let i=a.clientWidth,c=a.clientHeight,A=0,u=0;if(r){i=r.width,c=r.height;const m=kb();(!m||m&&s==="fixed")&&(A=r.offsetLeft,u=r.offsetTop)}const x=Wx(a);if(x<=0){const m=a.ownerDocument,p=m.body,O=getComputedStyle(p),v=m.compatMode==="CSS1Compat"&&parseFloat(O.marginLeft)+parseFloat(O.marginRight)||0,j=Math.abs(a.clientWidth-p.clientWidth-v);j<=mj&&(i-=j)}else x<=mj&&(i+=x);return{width:i,height:c,x:A,y:u}}function QF(t,s){const n=Ei(t,!0,s==="fixed"),a=n.top+t.clientTop,r=n.left+t.clientLeft,i=Dr(t)?tc(t):Xa(1),c=t.clientWidth*i.x,A=t.clientHeight*i.y,u=r*i.x,x=a*i.y;return{width:c,height:A,x:u,y:x}}function hj(t,s,n){let a;if(s==="viewport")a=NF(t,n);else if(s==="document")a=jF(Wa(t));else if(Ba(s))a=QF(s,n);else{const r=sS(t);a={x:s.x-r.x,y:s.y-r.y,width:s.width,height:s.height}}return xx(a)}function aS(t,s){const n=zo(t);return n===s||!Ba(n)||cc(n)?!1:Ca(n).position==="fixed"||aS(n,s)}function SF(t,s){const n=s.get(t);if(n)return n;let a=ad(t,[],!1).filter(A=>Ba(A)&&Nc(A)!=="body"),r=null;const i=Ca(t).position==="fixed";let c=i?zo(t):t;for(;Ba(c)&&!cc(c);){const A=Ca(c),u=Cb(c);!u&&A.position==="fixed"&&(r=null),(i?!u&&!r:!u&&A.position==="static"&&!!r&&(r.position==="absolute"||r.position==="fixed")||wd(c)&&!u&&aS(t,c))?a=a.filter(m=>m!==c):r=A,c=zo(c)}return s.set(t,a),a}function BF(t){let{element:s,boundary:n,rootBoundary:a,strategy:r}=t;const c=[...n==="clippingAncestors"?Kx(s)?[]:SF(s,this._c):[].concat(n),a],A=hj(s,c[0],r);let u=A.top,x=A.right,m=A.bottom,p=A.left;for(let O=1;O<c.length;O++){const v=hj(s,c[O],r);u=In(v.top,u),x=_o(v.right,x),m=_o(v.bottom,m),p=In(v.left,p)}return{width:x-p,height:m-u,x:p,y:u}}function CF(t){const{width:s,height:n}=tS(t);return{width:s,height:n}}function kF(t,s,n){const a=Dr(s),r=Wa(s),i=n==="fixed",c=Ei(t,!0,i,s);let A={scrollLeft:0,scrollTop:0};const u=Xa(0);function x(){u.x=Wx(r)}if(a||!a&&!i)if((Nc(s)!=="body"||wd(r))&&(A=qx(s)),a){const v=Ei(s,!0,i,s);u.x=v.x+s.clientLeft,u.y=v.y+s.clientTop}else r&&x();i&&!a&&r&&x();const m=r&&!a&&!i?nS(r,A):Xa(0),p=c.left+A.scrollLeft-u.x-m.x,O=c.top+A.scrollTop-u.y-m.y;return{x:p,y:O,width:c.width,height:c.height}}function Zp(t){return Ca(t).position==="static"}function pj(t,s){if(!Dr(t)||Ca(t).position==="fixed")return null;if(s)return s(t);let n=t.offsetParent;return Wa(t)===n&&(n=n.ownerDocument.body),n}function rS(t,s){const n=Hn(t);if(Kx(t))return n;if(!Dr(t)){let r=zo(t);for(;r&&!cc(r);){if(Ba(r)&&!Zp(r))return r;r=zo(r)}return n}let a=pj(t,s);for(;a&&hF(a)&&Zp(a);)a=pj(a,s);return a&&cc(a)&&Zp(a)&&!Cb(a)?n:a||OF(t)||n}const TF=async function(t){const s=this.getOffsetParent||rS,n=this.getDimensions,a=await n(t.floating);return{reference:kF(t.reference,await s(t.floating),t.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function UF(t){return Ca(t).direction==="rtl"}const EF={convertOffsetParentRelativeRectToViewportRelativeRect:yF,getDocumentElement:Wa,getClippingRect:BF,getOffsetParent:rS,getElementRects:TF,getClientRects:wF,getDimensions:CF,getScale:tc,isElement:Ba,isRTL:UF};function oS(t,s){return t.x===s.x&&t.y===s.y&&t.width===s.width&&t.height===s.height}function PF(t,s){let n=null,a;const r=Wa(t);function i(){var A;clearTimeout(a),(A=n)==null||A.disconnect(),n=null}function c(A,u){A===void 0&&(A=!1),u===void 0&&(u=1),i();const x=t.getBoundingClientRect(),{left:m,top:p,width:O,height:v}=x;if(A||s(),!O||!v)return;const j=Wu(p),b=Wu(r.clientWidth-(m+O)),N=Wu(r.clientHeight-(p+v)),w=Wu(m),k={rootMargin:-j+"px "+-b+"px "+-N+"px "+-w+"px",threshold:In(0,_o(1,u))||1};let U=!0;function E(T){const B=T[0].intersectionRatio;if(B!==u){if(!U)return c();B?c(!1,B):a=setTimeout(()=>{c(!1,1e-7)},1e3)}B===1&&!oS(x,t.getBoundingClientRect())&&c(),U=!1}try{n=new IntersectionObserver(E,{...k,root:r.ownerDocument})}catch{n=new IntersectionObserver(E,k)}n.observe(t)}return c(!0),i}function FF(t,s,n,a){a===void 0&&(a={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:A=typeof IntersectionObserver=="function",animationFrame:u=!1}=a,x=Tb(t),m=r||i?[...x?ad(x):[],...s?ad(s):[]]:[];m.forEach(w=>{r&&w.addEventListener("scroll",n,{passive:!0}),i&&w.addEventListener("resize",n)});const p=x&&A?PF(x,n):null;let O=-1,v=null;c&&(v=new ResizeObserver(w=>{let[Q]=w;Q&&Q.target===x&&v&&s&&(v.unobserve(s),cancelAnimationFrame(O),O=requestAnimationFrame(()=>{var k;(k=v)==null||k.observe(s)})),n()}),x&&!u&&v.observe(x),s&&v.observe(s));let j,b=u?Ei(t):null;u&&N();function N(){const w=Ei(t);b&&!oS(b,w)&&n(),b=w,j=requestAnimationFrame(N)}return n(),()=>{var w;m.forEach(Q=>{r&&Q.removeEventListener("scroll",n),i&&Q.removeEventListener("resize",n)}),p==null||p(),(w=v)==null||w.disconnect(),v=null,u&&cancelAnimationFrame(j)}}const RF=uF,$F=fF,MF=cF,IF=mF,_F=AF,gj=lF,zF=xF,LF=(t,s,n)=>{const a=new Map,r={platform:EF,...n},i={...r.platform,_c:a};return iF(t,s,{...r,platform:i})};var DF=typeof document<"u",HF=function(){},Vf=DF?g.useLayoutEffect:HF;function mx(t,s){if(t===s)return!0;if(typeof t!=typeof s)return!1;if(typeof t=="function"&&t.toString()===s.toString())return!0;let n,a,r;if(t&&s&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==s.length)return!1;for(a=n;a--!==0;)if(!mx(t[a],s[a]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(s).length)return!1;for(a=n;a--!==0;)if(!{}.hasOwnProperty.call(s,r[a]))return!1;for(a=n;a--!==0;){const i=r[a];if(!(i==="_owner"&&t.$$typeof)&&!mx(t[i],s[i]))return!1}return!0}return t!==t&&s!==s}function iS(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Oj(t,s){const n=iS(t);return Math.round(s*n)/n}function Vp(t){const s=g.useRef(t);return Vf(()=>{s.current=t}),s}function XF(t){t===void 0&&(t={});const{placement:s="bottom",strategy:n="absolute",middleware:a=[],platform:r,elements:{reference:i,floating:c}={},transform:A=!0,whileElementsMounted:u,open:x}=t,[m,p]=g.useState({x:0,y:0,strategy:n,placement:s,middlewareData:{},isPositioned:!1}),[O,v]=g.useState(a);mx(O,a)||v(a);const[j,b]=g.useState(null),[N,w]=g.useState(null),Q=g.useCallback(V=>{V!==T.current&&(T.current=V,b(V))},[]),k=g.useCallback(V=>{V!==B.current&&(B.current=V,w(V))},[]),U=i||j,E=c||N,T=g.useRef(null),B=g.useRef(null),F=g.useRef(m),$=u!=null,I=Vp(u),Y=Vp(r),W=Vp(x),ee=g.useCallback(()=>{if(!T.current||!B.current)return;const V={placement:s,strategy:n,middleware:O};Y.current&&(V.platform=Y.current),LF(T.current,B.current,V).then(M=>{const D={...M,isPositioned:W.current!==!1};X.current&&!mx(F.current,D)&&(F.current=D,Xx.flushSync(()=>{p(D)}))})},[O,s,n,Y,W]);Vf(()=>{x===!1&&F.current.isPositioned&&(F.current.isPositioned=!1,p(V=>({...V,isPositioned:!1})))},[x]);const X=g.useRef(!1);Vf(()=>(X.current=!0,()=>{X.current=!1}),[]),Vf(()=>{if(U&&(T.current=U),E&&(B.current=E),U&&E){if(I.current)return I.current(U,E,ee);ee()}},[U,E,ee,I,$]);const z=g.useMemo(()=>({reference:T,floating:B,setReference:Q,setFloating:k}),[Q,k]),P=g.useMemo(()=>({reference:U,floating:E}),[U,E]),q=g.useMemo(()=>{const V={position:n,left:0,top:0};if(!P.floating)return V;const M=Oj(P.floating,m.x),D=Oj(P.floating,m.y);return A?{...V,transform:"translate("+M+"px, "+D+"px)",...iS(P.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:M,top:D}},[n,A,P.floating,m.x,m.y]);return g.useMemo(()=>({...m,update:ee,refs:z,elements:P,floatingStyles:q}),[m,ee,z,P,q])}const GF=t=>{function s(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:a,padding:r}=typeof t=="function"?t(n):t;return a&&s(a)?a.current!=null?gj({element:a.current,padding:r}).fn(n):{}:a?gj({element:a,padding:r}).fn(n):{}}}},ZF=(t,s)=>{const n=RF(t);return{name:n.name,fn:n.fn,options:[t,s]}},VF=(t,s)=>{const n=$F(t);return{name:n.name,fn:n.fn,options:[t,s]}},KF=(t,s)=>({fn:zF(t).fn,options:[t,s]}),qF=(t,s)=>{const n=MF(t);return{name:n.name,fn:n.fn,options:[t,s]}},WF=(t,s)=>{const n=IF(t);return{name:n.name,fn:n.fn,options:[t,s]}},YF=(t,s)=>{const n=_F(t);return{name:n.name,fn:n.fn,options:[t,s]}},JF=(t,s)=>{const n=GF(t);return{name:n.name,fn:n.fn,options:[t,s]}};var eR="Arrow",lS=g.forwardRef((t,s)=>{const{children:n,width:a=10,height:r=5,...i}=t;return e.jsx(et.svg,{...i,ref:s,width:a,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:e.jsx("polygon",{points:"0,0 30,0 15,10"})})});lS.displayName=eR;var tR=lS;function sR(t){const[s,n]=g.useState(void 0);return Xs(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const a=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let c,A;if("borderBoxSize"in i){const u=i.borderBoxSize,x=Array.isArray(u)?u[0]:u;c=x.inlineSize,A=x.blockSize}else c=t.offsetWidth,A=t.offsetHeight;n({width:c,height:A})});return a.observe(t,{box:"border-box"}),()=>a.unobserve(t)}else n(void 0)},[t]),s}var Ub="Popper",[cS,Qc]=qa(Ub),[nR,AS]=cS(Ub),dS=t=>{const{__scopePopper:s,children:n}=t,[a,r]=g.useState(null);return e.jsx(nR,{scope:s,anchor:a,onAnchorChange:r,children:n})};dS.displayName=Ub;var uS="PopperAnchor",fS=g.forwardRef((t,s)=>{const{__scopePopper:n,virtualRef:a,...r}=t,i=AS(uS,n),c=g.useRef(null),A=xt(s,c),u=g.useRef(null);return g.useEffect(()=>{const x=u.current;u.current=(a==null?void 0:a.current)||c.current,x!==u.current&&i.onAnchorChange(u.current)}),a?null:e.jsx(et.div,{...r,ref:A})});fS.displayName=uS;var Eb="PopperContent",[aR,rR]=cS(Eb),xS=g.forwardRef((t,s)=>{var le,je,_,re,fe,ve;const{__scopePopper:n,side:a="bottom",sideOffset:r=0,align:i="center",alignOffset:c=0,arrowPadding:A=0,avoidCollisions:u=!0,collisionBoundary:x=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:O=!1,updatePositionStrategy:v="optimized",onPlaced:j,...b}=t,N=AS(Eb,n),[w,Q]=g.useState(null),k=xt(s,Ce=>Q(Ce)),[U,E]=g.useState(null),T=sR(U),B=(T==null?void 0:T.width)??0,F=(T==null?void 0:T.height)??0,$=a+(i!=="center"?"-"+i:""),I=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},Y=Array.isArray(x)?x:[x],W=Y.length>0,ee={padding:I,boundary:Y.filter(iR),altBoundary:W},{refs:X,floatingStyles:z,placement:P,isPositioned:q,middlewareData:V}=XF({strategy:"fixed",placement:$,whileElementsMounted:(...Ce)=>FF(...Ce,{animationFrame:v==="always"}),elements:{reference:N.anchor},middleware:[ZF({mainAxis:r+F,alignmentAxis:c}),u&&VF({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?KF():void 0,...ee}),u&&qF({...ee}),WF({...ee,apply:({elements:Ce,rects:Te,availableWidth:Ze,availableHeight:Re})=>{const{width:ie,height:Be}=Te.reference,Me=Ce.floating.style;Me.setProperty("--radix-popper-available-width",`${Ze}px`),Me.setProperty("--radix-popper-available-height",`${Re}px`),Me.setProperty("--radix-popper-anchor-width",`${ie}px`),Me.setProperty("--radix-popper-anchor-height",`${Be}px`)}}),U&&JF({element:U,padding:A}),lR({arrowWidth:B,arrowHeight:F}),O&&YF({strategy:"referenceHidden",...ee})]}),[M,D]=pS(P),J=Es(j);Xs(()=>{q&&(J==null||J())},[q,J]);const L=(le=V.arrow)==null?void 0:le.x,te=(je=V.arrow)==null?void 0:je.y,pe=((_=V.arrow)==null?void 0:_.centerOffset)!==0,[K,ce]=g.useState();return Xs(()=>{w&&ce(window.getComputedStyle(w).zIndex)},[w]),e.jsx("div",{ref:X.setFloating,"data-radix-popper-content-wrapper":"",style:{...z,transform:q?z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:K,"--radix-popper-transform-origin":[(re=V.transformOrigin)==null?void 0:re.x,(fe=V.transformOrigin)==null?void 0:fe.y].join(" "),...((ve=V.hide)==null?void 0:ve.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:e.jsx(aR,{scope:n,placedSide:M,onArrowChange:E,arrowX:L,arrowY:te,shouldHideArrow:pe,children:e.jsx(et.div,{"data-side":M,"data-align":D,...b,ref:k,style:{...b.style,animation:q?void 0:"none"}})})})});xS.displayName=Eb;var mS="PopperArrow",oR={top:"bottom",right:"left",bottom:"top",left:"right"},hS=g.forwardRef(function(s,n){const{__scopePopper:a,...r}=s,i=rR(mS,a),c=oR[i.placedSide];return e.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:e.jsx(tR,{...r,ref:n,style:{...r.style,display:"block"}})})});hS.displayName=mS;function iR(t){return t!==null}var lR=t=>({name:"transformOrigin",options:t,fn(s){var N,w,Q;const{placement:n,rects:a,middlewareData:r}=s,c=((N=r.arrow)==null?void 0:N.centerOffset)!==0,A=c?0:t.arrowWidth,u=c?0:t.arrowHeight,[x,m]=pS(n),p={start:"0%",center:"50%",end:"100%"}[m],O=(((w=r.arrow)==null?void 0:w.x)??0)+A/2,v=(((Q=r.arrow)==null?void 0:Q.y)??0)+u/2;let j="",b="";return x==="bottom"?(j=c?p:`${O}px`,b=`${-u}px`):x==="top"?(j=c?p:`${O}px`,b=`${a.floating.height+u}px`):x==="right"?(j=`${-u}px`,b=c?p:`${v}px`):x==="left"&&(j=`${a.floating.width+u}px`,b=c?p:`${v}px`),{data:{x:j,y:b}}}});function pS(t){const[s,n="center"]=t.split("-");return[s,n]}var Pb=dS,Fb=fS,Rb=xS,$b=hS,cR="Portal",jd=g.forwardRef((t,s)=>{var A;const{container:n,...a}=t,[r,i]=g.useState(!1);Xs(()=>i(!0),[]);const c=n||r&&((A=globalThis==null?void 0:globalThis.document)==null?void 0:A.body);return c?zU.createPortal(e.jsx(et.div,{...a,ref:s}),c):null});jd.displayName=cR;function AR(t,s){return g.useReducer((n,a)=>s[n][a]??n,t)}var un=t=>{const{present:s,children:n}=t,a=dR(s),r=typeof n=="function"?n({present:a.isPresent}):g.Children.only(n),i=xt(a.ref,uR(r));return typeof n=="function"||a.isPresent?g.cloneElement(r,{ref:i}):null};un.displayName="Presence";function dR(t){const[s,n]=g.useState(),a=g.useRef(null),r=g.useRef(t),i=g.useRef("none"),c=t?"mounted":"unmounted",[A,u]=AR(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const x=Yu(a.current);i.current=A==="mounted"?x:"none"},[A]),Xs(()=>{const x=a.current,m=r.current;if(m!==t){const O=i.current,v=Yu(x);t?u("MOUNT"):v==="none"||(x==null?void 0:x.display)==="none"?u("UNMOUNT"):u(m&&O!==v?"ANIMATION_OUT":"UNMOUNT"),r.current=t}},[t,u]),Xs(()=>{if(s){let x;const m=s.ownerDocument.defaultView??window,p=v=>{const b=Yu(a.current).includes(CSS.escape(v.animationName));if(v.target===s&&b&&(u("ANIMATION_END"),!r.current)){const N=s.style.animationFillMode;s.style.animationFillMode="forwards",x=m.setTimeout(()=>{s.style.animationFillMode==="forwards"&&(s.style.animationFillMode=N)})}},O=v=>{v.target===s&&(i.current=Yu(a.current))};return s.addEventListener("animationstart",O),s.addEventListener("animationcancel",p),s.addEventListener("animationend",p),()=>{m.clearTimeout(x),s.removeEventListener("animationstart",O),s.removeEventListener("animationcancel",p),s.removeEventListener("animationend",p)}}else u("ANIMATION_END")},[s,u]),{isPresent:["mounted","unmountSuspended"].includes(A),ref:g.useCallback(x=>{a.current=x?getComputedStyle(x):null,n(x)},[])}}function Yu(t){return(t==null?void 0:t.animationName)||"none"}function uR(t){var a,r;let s=(a=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:a.get,n=s&&"isReactWarning"in s&&s.isReactWarning;return n?t.ref:(s=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=s&&"isReactWarning"in s&&s.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var fR=pQ[" useInsertionEffect ".trim().toString()]||Xs;function Ac({prop:t,defaultProp:s,onChange:n=()=>{},caller:a}){const[r,i,c]=xR({defaultProp:s,onChange:n}),A=t!==void 0,u=A?t:r;{const m=g.useRef(t!==void 0);g.useEffect(()=>{const p=m.current;p!==A&&console.warn(`${a} is changing from ${p?"controlled":"uncontrolled"} to ${A?"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.`),m.current=A},[A,a])}const x=g.useCallback(m=>{var p;if(A){const O=mR(m)?m(t):m;O!==t&&((p=c.current)==null||p.call(c,O))}else i(m)},[A,t,i,c]);return[u,x]}function xR({defaultProp:t,onChange:s}){const[n,a]=g.useState(t),r=g.useRef(n),i=g.useRef(s);return fR(()=>{i.current=s},[s]),g.useEffect(()=>{var c;r.current!==n&&((c=i.current)==null||c.call(i,n),r.current=n)},[n,r]),[n,a,i]}function mR(t){return typeof t=="function"}var gS=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"}),hR="VisuallyHidden",OS=g.forwardRef((t,s)=>e.jsx(et.span,{...t,ref:s,style:{...gS,...t.style}}));OS.displayName=hR;var pR=OS,[Yx]=qa("Tooltip",[Qc]),Jx=Qc(),bS="TooltipProvider",gR=700,OO="tooltip.open",[OR,Mb]=Yx(bS),vS=t=>{const{__scopeTooltip:s,delayDuration:n=gR,skipDelayDuration:a=300,disableHoverableContent:r=!1,children:i}=t,c=g.useRef(!0),A=g.useRef(!1),u=g.useRef(0);return g.useEffect(()=>{const x=u.current;return()=>window.clearTimeout(x)},[]),e.jsx(OR,{scope:s,isOpenDelayedRef:c,delayDuration:n,onOpen:g.useCallback(()=>{window.clearTimeout(u.current),c.current=!1},[]),onClose:g.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.current=!0,a)},[a]),isPointerInTransitRef:A,onPointerInTransitChange:g.useCallback(x=>{A.current=x},[]),disableHoverableContent:r,children:i})};vS.displayName=bS;var rd="Tooltip",[bR,Nd]=Yx(rd),yS=t=>{const{__scopeTooltip:s,children:n,open:a,defaultOpen:r,onOpenChange:i,disableHoverableContent:c,delayDuration:A}=t,u=Mb(rd,t.__scopeTooltip),x=Jx(s),[m,p]=g.useState(null),O=Pr(),v=g.useRef(0),j=c??u.disableHoverableContent,b=A??u.delayDuration,N=g.useRef(!1),[w,Q]=Ac({prop:a,defaultProp:r??!1,onChange:B=>{B?(u.onOpen(),document.dispatchEvent(new CustomEvent(OO))):u.onClose(),i==null||i(B)},caller:rd}),k=g.useMemo(()=>w?N.current?"delayed-open":"instant-open":"closed",[w]),U=g.useCallback(()=>{window.clearTimeout(v.current),v.current=0,N.current=!1,Q(!0)},[Q]),E=g.useCallback(()=>{window.clearTimeout(v.current),v.current=0,Q(!1)},[Q]),T=g.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{N.current=!0,Q(!0),v.current=0},b)},[b,Q]);return g.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),e.jsx(Pb,{...x,children:e.jsx(bR,{scope:s,contentId:O,open:w,stateAttribute:k,trigger:m,onTriggerChange:p,onTriggerEnter:g.useCallback(()=>{u.isOpenDelayedRef.current?T():U()},[u.isOpenDelayedRef,T,U]),onTriggerLeave:g.useCallback(()=>{j?E():(window.clearTimeout(v.current),v.current=0)},[E,j]),onOpen:U,onClose:E,disableHoverableContent:j,children:n})})};yS.displayName=rd;var bO="TooltipTrigger",wS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,...a}=t,r=Nd(bO,n),i=Mb(bO,n),c=Jx(n),A=g.useRef(null),u=xt(s,A,r.onTriggerChange),x=g.useRef(!1),m=g.useRef(!1),p=g.useCallback(()=>x.current=!1,[]);return g.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),e.jsx(Fb,{asChild:!0,...c,children:e.jsx(et.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...a,ref:u,onPointerMove:Ue(t.onPointerMove,O=>{O.pointerType!=="touch"&&!m.current&&!i.isPointerInTransitRef.current&&(r.onTriggerEnter(),m.current=!0)}),onPointerLeave:Ue(t.onPointerLeave,()=>{r.onTriggerLeave(),m.current=!1}),onPointerDown:Ue(t.onPointerDown,()=>{r.open&&r.onClose(),x.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Ue(t.onFocus,()=>{x.current||r.onOpen()}),onBlur:Ue(t.onBlur,r.onClose),onClick:Ue(t.onClick,r.onClose)})})});wS.displayName=bO;var Ib="TooltipPortal",[vR,yR]=Yx(Ib,{forceMount:void 0}),jS=t=>{const{__scopeTooltip:s,forceMount:n,children:a,container:r}=t,i=Nd(Ib,s);return e.jsx(vR,{scope:s,forceMount:n,children:e.jsx(un,{present:n||i.open,children:e.jsx(jd,{asChild:!0,container:r,children:a})})})};jS.displayName=Ib;var dc="TooltipContent",NS=g.forwardRef((t,s)=>{const n=yR(dc,t.__scopeTooltip),{forceMount:a=n.forceMount,side:r="top",...i}=t,c=Nd(dc,t.__scopeTooltip);return e.jsx(un,{present:a||c.open,children:c.disableHoverableContent?e.jsx(QS,{side:r,...i,ref:s}):e.jsx(wR,{side:r,...i,ref:s})})}),wR=g.forwardRef((t,s)=>{const n=Nd(dc,t.__scopeTooltip),a=Mb(dc,t.__scopeTooltip),r=g.useRef(null),i=xt(s,r),[c,A]=g.useState(null),{trigger:u,onClose:x}=n,m=r.current,{onPointerInTransitChange:p}=a,O=g.useCallback(()=>{A(null),p(!1)},[p]),v=g.useCallback((j,b)=>{const N=j.currentTarget,w={x:j.clientX,y:j.clientY},Q=SR(w,N.getBoundingClientRect()),k=BR(w,Q),U=CR(b.getBoundingClientRect()),E=TR([...k,...U]);A(E),p(!0)},[p]);return g.useEffect(()=>()=>O(),[O]),g.useEffect(()=>{if(u&&m){const j=N=>v(N,m),b=N=>v(N,u);return u.addEventListener("pointerleave",j),m.addEventListener("pointerleave",b),()=>{u.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",b)}}},[u,m,v,O]),g.useEffect(()=>{if(c){const j=b=>{const N=b.target,w={x:b.clientX,y:b.clientY},Q=(u==null?void 0:u.contains(N))||(m==null?void 0:m.contains(N)),k=!kR(w,c);Q?O():k&&(O(),x())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[u,m,c,x,O]),e.jsx(QS,{...t,ref:i})}),[jR,NR]=Yx(rd,{isInside:!1}),QR=FP("TooltipContent"),QS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,children:a,"aria-label":r,onEscapeKeyDown:i,onPointerDownOutside:c,...A}=t,u=Nd(dc,n),x=Jx(n),{onClose:m}=u;return g.useEffect(()=>(document.addEventListener(OO,m),()=>document.removeEventListener(OO,m)),[m]),g.useEffect(()=>{if(u.trigger){const p=O=>{const v=O.target;v!=null&&v.contains(u.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[u.trigger,m]),e.jsx(yd,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:e.jsxs(Rb,{"data-state":u.stateAttribute,...x,...A,ref:s,style:{...A.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(QR,{children:a}),e.jsx(jR,{scope:n,isInside:!0,children:e.jsx(pR,{id:u.contentId,role:"tooltip",children:r||a})})]})})});NS.displayName=dc;var SS="TooltipArrow",BS=g.forwardRef((t,s)=>{const{__scopeTooltip:n,...a}=t,r=Jx(n);return NR(SS,n).isInside?null:e.jsx($b,{...r,...a,ref:s})});BS.displayName=SS;function SR(t,s){const n=Math.abs(s.top-t.y),a=Math.abs(s.bottom-t.y),r=Math.abs(s.right-t.x),i=Math.abs(s.left-t.x);switch(Math.min(n,a,r,i)){case i:return"left";case r:return"right";case n:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function BR(t,s,n=5){const a=[];switch(s){case"top":a.push({x:t.x-n,y:t.y+n},{x:t.x+n,y:t.y+n});break;case"bottom":a.push({x:t.x-n,y:t.y-n},{x:t.x+n,y:t.y-n});break;case"left":a.push({x:t.x+n,y:t.y-n},{x:t.x+n,y:t.y+n});break;case"right":a.push({x:t.x-n,y:t.y-n},{x:t.x-n,y:t.y+n});break}return a}function CR(t){const{top:s,right:n,bottom:a,left:r}=t;return[{x:r,y:s},{x:n,y:s},{x:n,y:a},{x:r,y:a}]}function kR(t,s){const{x:n,y:a}=t;let r=!1;for(let i=0,c=s.length-1;i<s.length;c=i++){const A=s[i],u=s[c],x=A.x,m=A.y,p=u.x,O=u.y;m>a!=O>a&&n<(p-x)*(a-m)/(O-m)+x&&(r=!r)}return r}function TR(t){const s=t.slice();return s.sort((n,a)=>n.x<a.x?-1:n.x>a.x?1:n.y<a.y?-1:n.y>a.y?1:0),UR(s)}function UR(t){if(t.length<=1)return t.slice();const s=[];for(let a=0;a<t.length;a++){const r=t[a];for(;s.length>=2;){const i=s[s.length-1],c=s[s.length-2];if((i.x-c.x)*(r.y-c.y)>=(i.y-c.y)*(r.x-c.x))s.pop();else break}s.push(r)}s.pop();const n=[];for(let a=t.length-1;a>=0;a--){const r=t[a];for(;n.length>=2;){const i=n[n.length-1],c=n[n.length-2];if((i.x-c.x)*(r.y-c.y)>=(i.y-c.y)*(r.x-c.x))n.pop();else break}n.push(r)}return n.pop(),s.length===1&&n.length===1&&s[0].x===n[0].x&&s[0].y===n[0].y?s:s.concat(n)}var ER=vS,PR=yS,FR=wS,RR=jS,$R=NS,MR=BS;function IR({children:t}){return e.jsx(ER,{delayDuration:300,children:t})}function ut({children:t,content:s,side:n="top",className:a}){return s?e.jsxs(PR,{children:[e.jsx(FR,{asChild:!0,children:t}),e.jsx(RR,{children:e.jsxs($R,{side:n,sideOffset:6,className:G("z-50 px-2.5 py-1.5 text-xs font-sans","bg-surface-4 text-text-0 border border-border rounded-md shadow-lg","animate-in fade-in-0 zoom-in-95",a),children:[s,e.jsx(MR,{className:"fill-surface-4"})]})})]}):t}/**
43
43
  * @license lucide-react v1.11.0 - ISC
44
44
  *
45
45
  * This source code is licensed under the ISC license.
@@ -6,12 +6,12 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <link rel="icon" type="image/png" href="/favicon.png" />
8
8
  <title>Groove GUI</title>
9
- <script type="module" crossorigin src="/assets/index-BP4oE2UL.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-CLfmxBx1.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-26L3JoZv.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/reactflow-DoBZjiHE.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/codemirror-BYKpdS2W.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/xterm--7_ns2zW.js">
14
- <link rel="stylesheet" crossorigin href="/assets/index-DPsim83z.css">
14
+ <link rel="stylesheet" crossorigin href="/assets/index-B82kMi13.css">
15
15
  </head>
16
16
  <body>
17
17
  <div id="root"></div>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groove-dev/gui",
3
- "version": "0.27.213",
3
+ "version": "0.27.215",
4
4
  "description": "GROOVE GUI — visual agent control plane",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "groove-dev",
3
- "version": "0.27.213",
3
+ "version": "0.27.215",
4
4
  "description": "Open-source agent orchestration layer — the AI company OS. Local model agent engine (GGUF/Ollama/llama-server), HuggingFace model browser, MCP integrations (Slack, Gmail, Stripe, 15+), agent scheduling (cron), business roles (CMO, CFO, EA). GUI dashboard, multi-agent coordination, zero cold-start, infinite sessions. Works with Claude Code, Codex, Gemini CLI, Ollama, any local model.",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "author": "Groove Dev <hello@groovedev.ai> (https://groovedev.ai)",
@@ -12,6 +12,7 @@ import { agents } from '../src/commands/agents.js';
12
12
  import { status } from '../src/commands/status.js';
13
13
  import { nuke } from '../src/commands/nuke.js';
14
14
  import { rotate } from '../src/commands/rotate.js';
15
+ import { handoff } from '../src/commands/handoff.js';
15
16
  import { teamCreate, teamSave, teamLoad, teamList, teamDelete, teamRename, teamExport, teamImport } from '../src/commands/team.js';
16
17
  import { approvals, approve, reject } from '../src/commands/approve.js';
17
18
  import { providers, setKey } from '../src/commands/providers.js';
@@ -99,6 +100,13 @@ program
99
100
  .description('Rotate an agent (kill + respawn with fresh context)')
100
101
  .action(rotate);
101
102
 
103
+ program
104
+ .command('handoff <id>')
105
+ .description('Succession: spawn a fresh agent that interviews this one, then takes over')
106
+ .option('--name <name>', 'successor name (default: <agent>-successor)')
107
+ .option('--no-keep-name', 'successor keeps its own name instead of inheriting')
108
+ .action(handoff);
109
+
102
110
  // Teams
103
111
  const team = program.command('team').description('Manage agent teams');
104
112
  team.command('create <name>').description('Create a new team').action(teamCreate);