groove-dev 0.25.20 → 0.25.21

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.
@@ -437,9 +437,14 @@ For normal file edits within your scope, proceed without review.
437
437
  }
438
438
  });
439
439
 
440
- // Capture stderr
440
+ // Capture stderr — collect for crash reporting
441
+ const stderrBuf = [];
441
442
  proc.stderr.on('data', (chunk) => {
442
- logStream.write(`[stderr] ${chunk}`);
443
+ const text = chunk.toString();
444
+ logStream.write(`[stderr] ${text}`);
445
+ stderrBuf.push(text);
446
+ // Keep last 2KB of stderr for crash reporting
447
+ while (stderrBuf.join('').length > 2048) stderrBuf.shift();
443
448
  });
444
449
 
445
450
  // Handle process exit
@@ -456,6 +461,9 @@ For normal file edits within your scope, proceed without review.
456
461
  ? 'completed'
457
462
  : 'crashed';
458
463
 
464
+ // Capture crash error from stderr for UI display
465
+ const crashError = finalStatus === 'crashed' ? stderrBuf.join('').trim().slice(-500) : null;
466
+
459
467
  registry.update(agent.id, { status: finalStatus, pid: null });
460
468
 
461
469
  // Record lifecycle event for timeline
@@ -474,6 +482,7 @@ For normal file edits within your scope, proceed without review.
474
482
  code,
475
483
  signal,
476
484
  status: finalStatus,
485
+ error: crashError || undefined,
477
486
  });
478
487
 
479
488
  // Refresh MCP config — remove integrations no longer needed by running agents
@@ -497,6 +506,14 @@ For normal file edits within your scope, proceed without review.
497
506
 
498
507
  this.handles.delete(agent.id);
499
508
  registry.update(agent.id, { status: 'crashed', pid: null });
509
+ this.daemon.broadcast({
510
+ type: 'agent:exit',
511
+ agentId: agent.id,
512
+ code: null,
513
+ signal: null,
514
+ status: 'crashed',
515
+ error: err.message,
516
+ });
500
517
  });
501
518
 
502
519
  return agent;
@@ -26,7 +26,7 @@ Error generating stack: `+c.message+`
26
26
  `),g=p.data.filter(b=>b.type==="tool_use").map(b=>{var v,Q,w;return`${b.name}: ${typeof b.input=="string"?b.input.slice(0,80):((v=b.input)==null?void 0:v.command)||((Q=b.input)==null?void 0:Q.path)||((w=b.input)==null?void 0:w.pattern)||JSON.stringify(b.input||"").slice(0,80)}`}).join(`
27
27
  `)),p.contextUsage!==void 0||p.tokensUsed!==void 0){const b=a().agents.map(v=>{if(v.id!==m)return v;const Q={};return p.contextUsage!==void 0&&(Q.contextUsage=p.contextUsage),p.tokensUsed!==void 0&&(Q.tokensUsed=p.tokensUsed),{...v,...Q}});t({agents:b})}if((p.subtype==="assistant"||p.type==="result")&&x&&x.trim()){const b={...a().chatHistory};b[m]||(b[m]=[]);const v=[...b[m]],Q=v[v.length-1];Q&&Q.from==="agent"&&Date.now()-Q.timestamp<8e3&&p.subtype==="assistant"?v[v.length-1]={...Q,text:Q.text+`
28
28
 
29
- `+x.trim(),timestamp:Date.now()}:v.push({from:"agent",text:x.trim(),timestamp:Date.now()}),b[m]=v.slice(-100),t({chatHistory:b}),Ql("groove:chatHistory",b)}if(g&&g.trim()){const b={...a().activityLog};b[m]||(b[m]=[]),b[m]=[...b[m].slice(-200),{timestamp:Date.now(),text:g.trim(),type:p.type,subtype:"tool"}],t({activityLog:b}),Ql("groove:activityLog",b)}break}case"agent:exit":{const m=a().agents.find(v=>v.id===o.agentId),p=(m==null?void 0:m.name)||o.agentId,x=o.status==="killed"||o.code===143||o.code===137,g=o.status==="completed"?`${p} completed`:x?`${p} stopped`:`${p} crashed (exit ${o.code})`,b=o.status==="completed"?"success":x?"info":"warning";a().addToast(b,g),(m==null?void 0:m.role)==="planner"&&o.status==="completed"&&setTimeout(()=>a().checkRecommendedTeam(),1e3);break}case"phase2:spawned":a().addToast("info",`QC agent ${o.name} auto-spawned`,"Auditing phase 1 work");break;case"phase2:failed":a().addToast("error","QC agent failed to spawn",o.error||"Unknown error");break;case"rotation:start":a().addToast("info",`Rotating ${o.agentName}...`);break;case"rotation:complete":{a().addToast("success",`Rotated ${o.agentName}`,`Saved ${o.tokensSaved} tokens`);const m=a().detailPanel;(m==null?void 0:m.type)==="agent"&&m.agentId===o.oldAgentId&&o.newAgentId&&t(p=>{var b,v;const x={...p.chatHistory},g={...p.tokenTimeline};return(b=x[o.oldAgentId])!=null&&b.length&&(x[o.newAgentId]=[...x[o.oldAgentId]]),(v=g[o.oldAgentId])!=null&&v.length&&(g[o.newAgentId]=[...g[o.oldAgentId]]),{chatHistory:x,tokenTimeline:g,detailPanel:{type:"agent",agentId:o.newAgentId}}});break}case"rotation:failed":a().addToast("error","Rotation failed",o.error);break;case"file:changed":{const m=a().editorRecentSaves[o.path];if(m&&Date.now()-m<2e3)break;t(p=>({editorChangedFiles:{...p.editorChangedFiles,[o.path]:o.timestamp}}));break}case"team:created":case"team:deleted":case"team:updated":a().fetchTeams();break;case"approval:request":t(m=>({pendingApprovals:[...m.pendingApprovals,o.data]})),a().addToast("warning",`Approval needed: ${((u=o.data)==null?void 0:u.agentName)||"agent"}`,(O=(d=o.data)==null?void 0:d.action)==null?void 0:O.description);break;case"approval:resolved":{const m=o.data;t(p=>({pendingApprovals:p.pendingApprovals.filter(x=>x.id!==m.id),resolvedApprovals:[m,...p.resolvedApprovals].slice(0,200)}));break}case"conflict:detected":a().addToast("error",`Scope conflict: ${o.agentName||"agent"}`,o.filePath?`File: ${o.filePath}`:void 0);break;case"qc:activated":a().addToast("info","QC agent activated",`${o.agentCount||"4+"} agents running`);break;case"journalist:cycle":t({journalistStatus:o.data||null});break;case"schedule:execute":a().addToast("info",`Scheduled agent spawned: ${o.name||o.role||"agent"}`);break;case"gateway:status":t({gateways:o.data||[]});break}},s.onclose=()=>{t({connected:!1,hydrated:!1,ws:null,daemonHost:null,tunneled:!1}),setTimeout(()=>a().connect(),2e3)},s.onerror=()=>s.close()},setActiveView(s){t({activeView:s})},async fetchTeams(){try{const s=await te.get("/teams"),l=s.teams||[],o=s.defaultTeamId,{activeTeamId:u}=a(),O=l.map(m=>m.id).includes(u)?u:o;t({teams:l,activeTeamId:O}),O&&localStorage.setItem("groove:activeTeamId",O)}catch{}},switchTeam(s){t({activeTeamId:s,detailPanel:null}),localStorage.setItem("groove:activeTeamId",s)},async createTeam(s,l){try{const o={name:s};l&&(o.workingDir=l);const u=await te.post("/teams",o);return t({activeTeamId:u.id}),localStorage.setItem("groove:activeTeamId",u.id),a().addToast("success",`Team "${s}" created`),u}catch(o){throw a().addToast("error","Failed to create team",o.message),o}},async deleteTeam(s){const l=a().teams.find(o=>o.id===s);if(l!=null&&l.isDefault){a().addToast("warning","Cannot delete the default team");return}try{await te.delete(`/teams/${s}`),a().addToast("info",`Team "${l==null?void 0:l.name}" deleted`)}catch(o){a().addToast("error","Failed to delete team",o.message)}},async renameTeam(s,l){try{const o=await te.patch(`/teams/${s}`,{name:l});return t(u=>({teams:u.teams.map(d=>d.id===s?o:d)})),o}catch(o){throw a().addToast("error","Failed to rename team",o.message),o}},openDetail(s){t({detailPanel:s})},closeDetail(){t({detailPanel:null})},selectAgent(s){t({detailPanel:{type:"agent",agentId:s}})},clearSelection(){t({detailPanel:null})},toggleCommandPalette(){t(s=>({commandPaletteOpen:!s.commandPaletteOpen}))},setDetailPanelWidth(s){t({detailPanelWidth:s}),localStorage.setItem("groove:detailWidth",String(s))},setTerminalVisible(s){t({terminalVisible:s}),localStorage.setItem("groove:terminalVisible",String(s))},setTerminalHeight(s){t({terminalHeight:s}),localStorage.setItem("groove:terminalHeight",String(s))},setTerminalFullHeight(s){t({terminalFullHeight:s})},addToast(s,l,o){const u=++lw;t(d=>({toasts:[...d.toasts,{id:u,type:s,message:l,detail:o}]}))},removeToast(s){t(l=>({toasts:l.toasts.filter(o=>o.id!==s)}))},async checkMarketplaceAuth(){try{const s=await te.get("/auth/status");t({marketplaceAuthenticated:s.authenticated||!1,marketplaceUser:s.user||null})}catch{t({marketplaceAuthenticated:!1,marketplaceUser:null})}},async marketplaceLogin(){try{const s=await te.get("/auth/login-url");s.url&&window.open(s.url,"_blank");const l=setInterval(async()=>{var o,u;try{const d=await te.get("/auth/status");d.authenticated&&(clearInterval(l),t({marketplaceAuthenticated:!0,marketplaceUser:d.user}),a().addToast("success",`Signed in as ${((o=d.user)==null?void 0:o.displayName)||((u=d.user)==null?void 0:u.id)||"user"}`))}catch{}},2e3);setTimeout(()=>clearInterval(l),3e5)}catch(s){a().addToast("error","Login failed",s.message)}},async marketplaceLogout(){try{await te.post("/auth/logout"),t({marketplaceAuthenticated:!1,marketplaceUser:null}),a().addToast("info","Signed out of marketplace")}catch(s){a().addToast("error","Logout failed",s.message)}},async marketplaceCheckout(s){try{const l=await te.post("/auth/checkout",{skillId:s});return l.url&&window.open(l.url,"_blank"),l}catch(l){throw a().addToast("error","Checkout failed",l.message),l}},async fetchApprovals(){try{const s=await te.get("/approvals");t({pendingApprovals:s.pending||[],resolvedApprovals:s.resolved||[]})}catch{}},async approveRequest(s){try{await te.post(`/approvals/${s}/approve`),t(l=>({pendingApprovals:l.pendingApprovals.filter(o=>o.id!==s)})),a().addToast("success","Approved")}catch(l){a().addToast("error","Approve failed",l.message)}},async rejectRequest(s,l=""){try{await te.post(`/approvals/${s}/reject`,{reason:l}),t(o=>({pendingApprovals:o.pendingApprovals.filter(u=>u.id!==s)})),a().addToast("info","Rejected")}catch(o){a().addToast("error","Reject failed",o.message)}},async checkRecommendedTeam(){var s;try{const l=await te.get("/recommended-team");l&&((s=l.agents)!=null&&s.length)?t({recommendedTeam:l}):t({recommendedTeam:null})}catch{t({recommendedTeam:null})}},async launchRecommendedTeam(){try{t({recommendedTeam:null}),a().addToast("info","Launching team...");const s=await te.post("/recommended-team/launch"),l=[s.phase2Pending?`${s.phase2Pending} QC queued`:"",s.projectDir?`→ ${s.projectDir}/`:""].filter(Boolean).join(" · ");return a().addToast("success",`Launched ${s.launched} agents`,l||void 0),te.post("/cleanup").catch(()=>{}),s}catch(s){throw a().addToast("error","Launch failed",s.message),s}},async fetchJournalist(){try{const s=await te.get("/journalist");return t({journalistStatus:s}),s}catch{return null}},async triggerJournalistCycle(){try{const s=await te.post("/journalist/cycle");return a().addToast("success","Synthesis cycle triggered"),t({journalistStatus:s}),s}catch(s){throw a().addToast("error","Synthesis failed",s.message),s}},async spawnAgent(s){try{const l=a().activeTeamId,o=await te.post("/agents",{...s,teamId:l});return a().addToast("success",`Spawned ${o.name}`),o}catch(l){throw a().addToast("error","Spawn failed",l.message),l}},async killAgent(s,l=!1){try{await te.delete(`/agents/${s}?purge=${l}`)}catch(o){a().addToast("error","Kill failed",o.message)}},async rotateAgent(s){try{return await te.post(`/agents/${s}/rotate`)}catch(l){throw a().addToast("error","Rotation failed",l.message),l}},async fetchProviders(){return te.get("/providers")},addChatMessage(s,l,o,u=!1){t(d=>{const O={...d.chatHistory};return O[s]||(O[s]=[]),O[s]=[...O[s].slice(-100),{from:l,text:o,timestamp:Date.now(),isQuery:u}],Ql("groove:chatHistory",O),{chatHistory:O}})},async instructAgent(s,l){var d,O;const o=a().agents.find(m=>m.id===s);if(o&&(o.status==="running"||o.status==="starting")){a().addChatMessage(s,"user",l,!1);try{const m=await te.post(`/agents/${s}/query`,{message:l});return a().addChatMessage(s,"agent",m.response),m}catch(m){throw a().addChatMessage(s,"system",`failed: ${m.message}`),m}}a().addChatMessage(s,"user",l,!1);try{const m=await te.post(`/agents/${s}/instruct`,{message:l});for(const p of["chatHistory","activityLog","tokenTimeline"]){const x=a()[p][s];x!=null&&x.length&&t(g=>({[p]:{...g[p],[m.id]:[...x]}}))}return(d=a().chatHistory[s])!=null&&d.length&&Ql("groove:chatHistory",a().chatHistory),(O=a().activityLog[s])!=null&&O.length&&Ql("groove:activityLog",a().activityLog),a().selectAgent(m.id),m}catch(m){throw a().addChatMessage(s,"system",`failed: ${m.message}`),m}},async queryAgent(s,l){a().addChatMessage(s,"user",l,!0);try{const o=await te.post(`/agents/${s}/query`,{message:l});return a().addChatMessage(s,"agent",o.response),o}catch(o){throw a().addChatMessage(s,"system",`query failed: ${o.message}`),o}},async openFile(s){var u;if(a().editorFiles[s]||a().editorOpenTabs.includes(s)){t(d=>({editorActiveFile:s,editorOpenTabs:d.editorOpenTabs.includes(s)?d.editorOpenTabs:[...d.editorOpenTabs,s]}));return}const l=(u=s.split(".").pop())==null?void 0:u.toLowerCase();if(["png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","mp4","webm","mov","avi","mkv","ogv"].includes(l)){t(d=>({editorActiveFile:s,editorOpenTabs:[...d.editorOpenTabs,s]}));return}try{const d=await te.get(`/files/read?path=${encodeURIComponent(s)}`);if(d.binary){a().addToast("warning","Binary file — cannot open");return}t(m=>({editorFiles:{...m.editorFiles,[s]:{content:d.content,originalContent:d.content,language:d.language,loadedAt:Date.now()}},editorActiveFile:s,editorOpenTabs:m.editorOpenTabs.includes(s)?m.editorOpenTabs:[...m.editorOpenTabs,s]}));const O=a().ws;(O==null?void 0:O.readyState)===1&&O.send(JSON.stringify({type:"editor:watch",path:s}))}catch(d){a().addToast("error","Failed to open file",d.message)}},closeFile(s){t(o=>{const u=o.editorOpenTabs.filter(p=>p!==s),d={...o.editorFiles};delete d[s];const O={...o.editorChangedFiles};delete O[s];let m=o.editorActiveFile;if(m===s){const p=o.editorOpenTabs.indexOf(s);m=u[Math.min(p,u.length-1)]||null}return{editorOpenTabs:u,editorFiles:d,editorChangedFiles:O,editorActiveFile:m}});const l=a().ws;(l==null?void 0:l.readyState)===1&&l.send(JSON.stringify({type:"editor:unwatch",path:s}))},setActiveFile(s){t({editorActiveFile:s})},updateFileContent(s,l){t(o=>({editorFiles:{...o.editorFiles,[s]:{...o.editorFiles[s],content:l}}}))},async saveFile(s){const l=a().editorFiles[s];if(l)try{await te.post("/files/write",{path:s,content:l.content}),t(o=>({editorFiles:{...o.editorFiles,[s]:{...o.editorFiles[s],originalContent:l.content}},editorChangedFiles:(()=>{const u={...o.editorChangedFiles};return delete u[s],u})(),editorRecentSaves:{...o.editorRecentSaves,[s]:Date.now()}})),a().addToast("success","File saved")}catch(o){a().addToast("error","Save failed",o.message)}},async reloadFile(s){try{const l=await te.get(`/files/read?path=${encodeURIComponent(s)}`);if(l.binary)return;t(o=>({editorFiles:{...o.editorFiles,[s]:{content:l.content,originalContent:l.content,language:l.language,loadedAt:Date.now()}},editorChangedFiles:(()=>{const u={...o.editorChangedFiles};return delete u[s],u})()}))}catch{}},dismissFileChange(s){t(l=>{const o={...l.editorChangedFiles};return delete o[s],{editorChangedFiles:o}})},async fetchTreeDir(s){try{const l=await te.get(`/files/tree?path=${encodeURIComponent(s)}`);t(o=>({editorTreeCache:{...o.editorTreeCache,[s]:l.entries}}))}catch{}},async createFile(s){try{await te.post("/files/create",{path:s});const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),a().addToast("success","File created"),!0}catch(l){return a().addToast("error","Create failed",l.message),!1}},async createDir(s){try{await te.post("/files/mkdir",{path:s});const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),a().addToast("success","Folder created"),!0}catch(l){return a().addToast("error","Create failed",l.message),!1}},async deleteFile(s){try{await te.delete(`/files/delete?path=${encodeURIComponent(s)}`),a().editorOpenTabs.includes(s)&&a().closeFile(s);const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),t(o=>{const u={...o.editorTreeCache};return delete u[s],{editorTreeCache:u}}),a().addToast("success","Deleted"),!0}catch(l){return a().addToast("error","Delete failed",l.message),!1}},async renameFile(s,l){try{await te.post("/files/rename",{oldPath:s,newPath:l}),t(d=>{const O=d.editorOpenTabs.map(x=>x===s?l:x),m={...d.editorFiles};m[s]&&(m[l]=m[s],delete m[s]);const p=d.editorActiveFile===s?l:d.editorActiveFile;return{editorOpenTabs:O,editorFiles:m,editorActiveFile:p}});const o=s.includes("/")?s.split("/").slice(0,-1).join("/"):"",u=l.includes("/")?l.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(o),u!==o&&await a().fetchTreeDir(u),a().addToast("success","Renamed"),!0}catch(o){return a().addToast("error","Rename failed",o.message),!1}}}));function rw(t){y.useEffect(()=>{function a(s){for(const l of t){const o=l.meta?s.metaKey||s.ctrlKey:!0,u=l.shift?s.shiftKey:!s.shiftKey;if(s.key.toLowerCase()===l.key.toLowerCase()&&o&&u){s.preventDefault(),l.handler();return}}}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[t])}function Ee(t,a,{checkForDefaultPrevented:s=!0}={}){return function(o){if(t==null||t(o),s===!1||!o.defaultPrevented)return a==null?void 0:a(o)}}function Pg(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function P0(...t){return a=>{let s=!1;const l=t.map(o=>{const u=Pg(o,a);return!s&&typeof u=="function"&&(s=!0),u});if(s)return()=>{for(let o=0;o<l.length;o++){const u=l[o];typeof u=="function"?u():Pg(t[o],null)}}}}function it(...t){return y.useCallback(P0(...t),t)}function iw(t,a){const s=y.createContext(a),l=u=>{const{children:d,...O}=u,m=y.useMemo(()=>O,Object.values(O));return i.jsx(s.Provider,{value:m,children:d})};l.displayName=t+"Provider";function o(u){const d=y.useContext(s);if(d)return d;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${t}\``)}return[l,o]}function zs(t,a=[]){let s=[];function l(u,d){const O=y.createContext(d),m=s.length;s=[...s,d];const p=g=>{var k;const{scope:b,children:v,...Q}=g,w=((k=b==null?void 0:b[t])==null?void 0:k[m])||O,N=y.useMemo(()=>Q,Object.values(Q));return i.jsx(w.Provider,{value:N,children:v})};p.displayName=u+"Provider";function x(g,b){var w;const v=((w=b==null?void 0:b[t])==null?void 0:w[m])||O,Q=y.useContext(v);if(Q)return Q;if(d!==void 0)return d;throw new Error(`\`${g}\` must be used within \`${u}\``)}return[p,x]}const o=()=>{const u=s.map(d=>y.createContext(d));return function(O){const m=(O==null?void 0:O[t])||u;return y.useMemo(()=>({[`__scope${t}`]:{...O,[t]:m}}),[O,m])}};return o.scopeName=t,[l,ow(o,...a)]}function ow(...t){const a=t[0];if(t.length===1)return a;const s=()=>{const l=t.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(u){const d=l.reduce((O,{useScope:m,scopeName:p})=>{const g=m(u)[`__scope${p}`];return{...O,...g}},{});return y.useMemo(()=>({[`__scope${a.scopeName}`]:d}),[d])}};return s.scopeName=a.scopeName,s}function rc(t){const a=cw(t),s=y.forwardRef((l,o)=>{const{children:u,...d}=l,O=y.Children.toArray(u),m=O.find(dw);if(m){const p=m.props.children,x=O.map(g=>g===m?y.Children.count(p)>1?y.Children.only(null):y.isValidElement(p)?p.props.children:null:g);return i.jsx(a,{...d,ref:o,children:y.isValidElement(p)?y.cloneElement(p,void 0,x):null})}return i.jsx(a,{...d,ref:o,children:u})});return s.displayName=`${t}.Slot`,s}function cw(t){const a=y.forwardRef((s,l)=>{const{children:o,...u}=s;if(y.isValidElement(o)){const d=fw(o),O=Ow(u,o.props);return o.type!==y.Fragment&&(O.ref=l?P0(l,d):d),y.cloneElement(o,O)}return y.Children.count(o)>1?y.Children.only(null):null});return a.displayName=`${t}.SlotClone`,a}var z0=Symbol("radix.slottable");function uw(t){const a=({children:s})=>i.jsx(i.Fragment,{children:s});return a.displayName=`${t}.Slottable`,a.__radixId=z0,a}function dw(t){return y.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===z0}function Ow(t,a){const s={...a};for(const l in a){const o=t[l],u=a[l];/^on[A-Z]/.test(l)?o&&u?s[l]=(...O)=>{const m=u(...O);return o(...O),m}:o&&(s[l]=o):l==="style"?s[l]={...o,...u}:l==="className"&&(s[l]=[o,u].filter(Boolean).join(" "))}return{...t,...s}}function fw(t){var l,o;let a=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?t.ref:(a=(o=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:o.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}var hw=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Be=hw.reduce((t,a)=>{const s=rc(`Primitive.${a}`),l=y.forwardRef((o,u)=>{const{asChild:d,...O}=o,m=d?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(m,{...O,ref:u})});return l.displayName=`Primitive.${a}`,{...t,[a]:l}},{});function mw(t,a){t&&S0.flushSync(()=>t.dispatchEvent(a))}function Rt(t){const a=y.useRef(t);return y.useEffect(()=>{a.current=t}),y.useMemo(()=>(...s)=>{var l;return(l=a.current)==null?void 0:l.call(a,...s)},[])}function pw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t);y.useEffect(()=>{const l=o=>{o.key==="Escape"&&s(o)};return a.addEventListener("keydown",l,{capture:!0}),()=>a.removeEventListener("keydown",l,{capture:!0})},[s,a])}var xw="DismissableLayer",af="dismissableLayer.update",gw="dismissableLayer.pointerDownOutside",bw="dismissableLayer.focusOutside",zg,R0=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),zf=y.forwardRef((t,a)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:l,onPointerDownOutside:o,onFocusOutside:u,onInteractOutside:d,onDismiss:O,...m}=t,p=y.useContext(R0),[x,g]=y.useState(null),b=(x==null?void 0:x.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=y.useState({}),Q=it(a,X=>g(X)),w=Array.from(p.layers),[N]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),k=w.indexOf(N),P=x?w.indexOf(x):-1,$=p.layersWithOutsidePointerEventsDisabled.size>0,_=P>=k,L=Sw(X=>{const T=X.target,G=[...p.branches].some(V=>V.contains(T));!_||G||(o==null||o(X),d==null||d(X),X.defaultPrevented||O==null||O())},b),C=Qw(X=>{const T=X.target;[...p.branches].some(V=>V.contains(T))||(u==null||u(X),d==null||d(X),X.defaultPrevented||O==null||O())},b);return pw(X=>{P===p.layers.size-1&&(l==null||l(X),!X.defaultPrevented&&O&&(X.preventDefault(),O()))},b),y.useEffect(()=>{if(x)return s&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(zg=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(x)),p.layers.add(x),Rg(),()=>{s&&p.layersWithOutsidePointerEventsDisabled.size===1&&(b.body.style.pointerEvents=zg)}},[x,b,s,p]),y.useEffect(()=>()=>{x&&(p.layers.delete(x),p.layersWithOutsidePointerEventsDisabled.delete(x),Rg())},[x,p]),y.useEffect(()=>{const X=()=>v({});return document.addEventListener(af,X),()=>document.removeEventListener(af,X)},[]),i.jsx(Be.div,{...m,ref:Q,style:{pointerEvents:$?_?"auto":"none":void 0,...t.style},onFocusCapture:Ee(t.onFocusCapture,C.onFocusCapture),onBlurCapture:Ee(t.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Ee(t.onPointerDownCapture,L.onPointerDownCapture)})});zf.displayName=xw;var vw="DismissableLayerBranch",yw=y.forwardRef((t,a)=>{const s=y.useContext(R0),l=y.useRef(null),o=it(a,l);return y.useEffect(()=>{const u=l.current;if(u)return s.branches.add(u),()=>{s.branches.delete(u)}},[s.branches]),i.jsx(Be.div,{...t,ref:o})});yw.displayName=vw;function Sw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t),l=y.useRef(!1),o=y.useRef(()=>{});return y.useEffect(()=>{const u=O=>{if(O.target&&!l.current){let m=function(){C0(gw,s,p,{discrete:!0})};const p={originalEvent:O};O.pointerType==="touch"?(a.removeEventListener("click",o.current),o.current=m,a.addEventListener("click",o.current,{once:!0})):m()}else a.removeEventListener("click",o.current);l.current=!1},d=window.setTimeout(()=>{a.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(d),a.removeEventListener("pointerdown",u),a.removeEventListener("click",o.current)}},[a,s]),{onPointerDownCapture:()=>l.current=!0}}function Qw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t),l=y.useRef(!1);return y.useEffect(()=>{const o=u=>{u.target&&!l.current&&C0(bw,s,{originalEvent:u},{discrete:!1})};return a.addEventListener("focusin",o),()=>a.removeEventListener("focusin",o)},[a,s]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Rg(){const t=new CustomEvent(af);document.dispatchEvent(t)}function C0(t,a,s,{discrete:l}){const o=s.originalEvent.target,u=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:s});a&&o.addEventListener(t,a,{once:!0}),l?mw(o,u):o.dispatchEvent(u)}var la=globalThis!=null&&globalThis.document?y.useLayoutEffect:()=>{},jw=b0[" useId ".trim().toString()]||(()=>{}),ww=0;function kl(t){const[a,s]=y.useState(jw());return la(()=>{s(l=>l??String(ww++))},[t]),t||(a?`radix-${a}`:"")}const kw=["top","right","bottom","left"],Wa=Math.min,Dt=Math.max,ic=Math.round,Zo=Math.floor,Tn=t=>({x:t,y:t}),$w={left:"right",right:"left",bottom:"top",top:"bottom"};function sf(t,a,s){return Dt(t,Wa(a,s))}function ra(t,a){return typeof t=="function"?t(a):t}function ia(t){return t.split("-")[0]}function Ml(t){return t.split("-")[1]}function Rf(t){return t==="x"?"y":"x"}function Cf(t){return t==="y"?"height":"width"}function $n(t){const a=t[0];return a==="t"||a==="b"?"y":"x"}function Xf(t){return Rf($n(t))}function Tw(t,a,s){s===void 0&&(s=!1);const l=Ml(t),o=Xf(t),u=Cf(o);let d=o==="x"?l===(s?"end":"start")?"right":"left":l==="start"?"bottom":"top";return a.reference[u]>a.floating[u]&&(d=oc(d)),[d,oc(d)]}function Nw(t){const a=oc(t);return[lf(t),a,lf(a)]}function lf(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const Cg=["left","right"],Xg=["right","left"],Pw=["top","bottom"],zw=["bottom","top"];function Rw(t,a,s){switch(t){case"top":case"bottom":return s?a?Xg:Cg:a?Cg:Xg;case"left":case"right":return a?Pw:zw;default:return[]}}function Cw(t,a,s,l){const o=Ml(t);let u=Rw(ia(t),s==="start",l);return o&&(u=u.map(d=>d+"-"+o),a&&(u=u.concat(u.map(lf)))),u}function oc(t){const a=ia(t);return $w[a]+t.slice(a.length)}function Xw(t){return{top:0,right:0,bottom:0,left:0,...t}}function X0(t){return typeof t!="number"?Xw(t):{top:t,right:t,bottom:t,left:t}}function cc(t){const{x:a,y:s,width:l,height:o}=t;return{width:l,height:o,top:s,left:a,right:a+l,bottom:s+o,x:a,y:s}}function _g(t,a,s){let{reference:l,floating:o}=t;const u=$n(a),d=Xf(a),O=Cf(d),m=ia(a),p=u==="y",x=l.x+l.width/2-o.width/2,g=l.y+l.height/2-o.height/2,b=l[O]/2-o[O]/2;let v;switch(m){case"top":v={x,y:l.y-o.height};break;case"bottom":v={x,y:l.y+l.height};break;case"right":v={x:l.x+l.width,y:g};break;case"left":v={x:l.x-o.width,y:g};break;default:v={x:l.x,y:l.y}}switch(Ml(a)){case"start":v[d]-=b*(s&&p?-1:1);break;case"end":v[d]+=b*(s&&p?-1:1);break}return v}async function _w(t,a){var s;a===void 0&&(a={});const{x:l,y:o,platform:u,rects:d,elements:O,strategy:m}=t,{boundary:p="clippingAncestors",rootBoundary:x="viewport",elementContext:g="floating",altBoundary:b=!1,padding:v=0}=ra(a,t),Q=X0(v),N=O[b?g==="floating"?"reference":"floating":g],k=cc(await u.getClippingRect({element:(s=await(u.isElement==null?void 0:u.isElement(N)))==null||s?N:N.contextElement||await(u.getDocumentElement==null?void 0:u.getDocumentElement(O.floating)),boundary:p,rootBoundary:x,strategy:m})),P=g==="floating"?{x:l,y:o,width:d.floating.width,height:d.floating.height}:d.reference,$=await(u.getOffsetParent==null?void 0:u.getOffsetParent(O.floating)),_=await(u.isElement==null?void 0:u.isElement($))?await(u.getScale==null?void 0:u.getScale($))||{x:1,y:1}:{x:1,y:1},L=cc(u.convertOffsetParentRelativeRectToViewportRelativeRect?await u.convertOffsetParentRelativeRectToViewportRelativeRect({elements:O,rect:P,offsetParent:$,strategy:m}):P);return{top:(k.top-L.top+Q.top)/_.y,bottom:(L.bottom-k.bottom+Q.bottom)/_.y,left:(k.left-L.left+Q.left)/_.x,right:(L.right-k.right+Q.right)/_.x}}const Zw=50,Aw=async(t,a,s)=>{const{placement:l="bottom",strategy:o="absolute",middleware:u=[],platform:d}=s,O=d.detectOverflow?d:{...d,detectOverflow:_w},m=await(d.isRTL==null?void 0:d.isRTL(a));let p=await d.getElementRects({reference:t,floating:a,strategy:o}),{x,y:g}=_g(p,l,m),b=l,v=0;const Q={};for(let w=0;w<u.length;w++){const N=u[w];if(!N)continue;const{name:k,fn:P}=N,{x:$,y:_,data:L,reset:C}=await P({x,y:g,initialPlacement:l,placement:b,strategy:o,middlewareData:Q,rects:p,platform:O,elements:{reference:t,floating:a}});x=$??x,g=_??g,Q[k]={...Q[k],...L},C&&v<Zw&&(v++,typeof C=="object"&&(C.placement&&(b=C.placement),C.rects&&(p=C.rects===!0?await d.getElementRects({reference:t,floating:a,strategy:o}):C.rects),{x,y:g}=_g(p,b,m)),w=-1)}return{x,y:g,placement:b,strategy:o,middlewareData:Q}},Ew=t=>({name:"arrow",options:t,async fn(a){const{x:s,y:l,placement:o,rects:u,platform:d,elements:O,middlewareData:m}=a,{element:p,padding:x=0}=ra(t,a)||{};if(p==null)return{};const g=X0(x),b={x:s,y:l},v=Xf(o),Q=Cf(v),w=await d.getDimensions(p),N=v==="y",k=N?"top":"left",P=N?"bottom":"right",$=N?"clientHeight":"clientWidth",_=u.reference[Q]+u.reference[v]-b[v]-u.floating[Q],L=b[v]-u.reference[v],C=await(d.getOffsetParent==null?void 0:d.getOffsetParent(p));let X=C?C[$]:0;(!X||!await(d.isElement==null?void 0:d.isElement(C)))&&(X=O.floating[$]||u.floating[Q]);const T=_/2-L/2,G=X/2-w[Q]/2-1,V=Wa(g[k],G),ae=Wa(g[P],G),ce=V,oe=X-w[Q]-ae,ie=X/2-w[Q]/2+T,K=sf(ce,ie,oe),z=!m.arrow&&Ml(o)!=null&&ie!==K&&u.reference[Q]/2-(ie<ce?V:ae)-w[Q]/2<0,H=z?ie<ce?ie-ce:ie-oe:0;return{[v]:b[v]+H,data:{[v]:K,centerOffset:ie-K-H,...z&&{alignmentOffset:H}},reset:z}}}),qw=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(a){var s,l;const{placement:o,middlewareData:u,rects:d,initialPlacement:O,platform:m,elements:p}=a,{mainAxis:x=!0,crossAxis:g=!0,fallbackPlacements:b,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:Q="none",flipAlignment:w=!0,...N}=ra(t,a);if((s=u.arrow)!=null&&s.alignmentOffset)return{};const k=ia(o),P=$n(O),$=ia(O)===O,_=await(m.isRTL==null?void 0:m.isRTL(p.floating)),L=b||($||!w?[oc(O)]:Nw(O)),C=Q!=="none";!b&&C&&L.push(...Cw(O,w,Q,_));const X=[O,...L],T=await m.detectOverflow(a,N),G=[];let V=((l=u.flip)==null?void 0:l.overflows)||[];if(x&&G.push(T[k]),g){const ie=Tw(o,d,_);G.push(T[ie[0]],T[ie[1]])}if(V=[...V,{placement:o,overflows:G}],!G.every(ie=>ie<=0)){var ae,ce;const ie=(((ae=u.flip)==null?void 0:ae.index)||0)+1,K=X[ie];if(K&&(!(g==="alignment"?P!==$n(K):!1)||V.every(E=>$n(E.placement)===P?E.overflows[0]>0:!0)))return{data:{index:ie,overflows:V},reset:{placement:K}};let z=(ce=V.filter(H=>H.overflows[0]<=0).sort((H,E)=>H.overflows[1]-E.overflows[1])[0])==null?void 0:ce.placement;if(!z)switch(v){case"bestFit":{var oe;const H=(oe=V.filter(E=>{if(C){const le=$n(E.placement);return le===P||le==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(le=>le>0).reduce((le,ee)=>le+ee,0)]).sort((E,le)=>E[1]-le[1])[0])==null?void 0:oe[0];H&&(z=H);break}case"initialPlacement":z=O;break}if(o!==z)return{reset:{placement:z}}}return{}}}};function Zg(t,a){return{top:t.top-a.height,right:t.right-a.width,bottom:t.bottom-a.height,left:t.left-a.width}}function Ag(t){return kw.some(a=>t[a]>=0)}const Mw=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(a){const{rects:s,platform:l}=a,{strategy:o="referenceHidden",...u}=ra(t,a);switch(o){case"referenceHidden":{const d=await l.detectOverflow(a,{...u,elementContext:"reference"}),O=Zg(d,s.reference);return{data:{referenceHiddenOffsets:O,referenceHidden:Ag(O)}}}case"escaped":{const d=await l.detectOverflow(a,{...u,altBoundary:!0}),O=Zg(d,s.floating);return{data:{escapedOffsets:O,escaped:Ag(O)}}}default:return{}}}}},_0=new Set(["left","top"]);async function Yw(t,a){const{placement:s,platform:l,elements:o}=t,u=await(l.isRTL==null?void 0:l.isRTL(o.floating)),d=ia(s),O=Ml(s),m=$n(s)==="y",p=_0.has(d)?-1:1,x=u&&m?-1:1,g=ra(a,t);let{mainAxis:b,crossAxis:v,alignmentAxis:Q}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:g.mainAxis||0,crossAxis:g.crossAxis||0,alignmentAxis:g.alignmentAxis};return O&&typeof Q=="number"&&(v=O==="end"?Q*-1:Q),m?{x:v*x,y:b*p}:{x:b*p,y:v*x}}const Vw=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(a){var s,l;const{x:o,y:u,placement:d,middlewareData:O}=a,m=await Yw(a,t);return d===((s=O.offset)==null?void 0:s.placement)&&(l=O.arrow)!=null&&l.alignmentOffset?{}:{x:o+m.x,y:u+m.y,data:{...m,placement:d}}}}},Uw=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(a){const{x:s,y:l,placement:o,platform:u}=a,{mainAxis:d=!0,crossAxis:O=!1,limiter:m={fn:k=>{let{x:P,y:$}=k;return{x:P,y:$}}},...p}=ra(t,a),x={x:s,y:l},g=await u.detectOverflow(a,p),b=$n(ia(o)),v=Rf(b);let Q=x[v],w=x[b];if(d){const k=v==="y"?"top":"left",P=v==="y"?"bottom":"right",$=Q+g[k],_=Q-g[P];Q=sf($,Q,_)}if(O){const k=b==="y"?"top":"left",P=b==="y"?"bottom":"right",$=w+g[k],_=w-g[P];w=sf($,w,_)}const N=m.fn({...a,[v]:Q,[b]:w});return{...N,data:{x:N.x-s,y:N.y-l,enabled:{[v]:d,[b]:O}}}}}},Lw=function(t){return t===void 0&&(t={}),{options:t,fn(a){const{x:s,y:l,placement:o,rects:u,middlewareData:d}=a,{offset:O=0,mainAxis:m=!0,crossAxis:p=!0}=ra(t,a),x={x:s,y:l},g=$n(o),b=Rf(g);let v=x[b],Q=x[g];const w=ra(O,a),N=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(m){const $=b==="y"?"height":"width",_=u.reference[b]-u.floating[$]+N.mainAxis,L=u.reference[b]+u.reference[$]-N.mainAxis;v<_?v=_:v>L&&(v=L)}if(p){var k,P;const $=b==="y"?"width":"height",_=_0.has(ia(o)),L=u.reference[g]-u.floating[$]+(_&&((k=d.offset)==null?void 0:k[g])||0)+(_?0:N.crossAxis),C=u.reference[g]+u.reference[$]+(_?0:((P=d.offset)==null?void 0:P[g])||0)-(_?N.crossAxis:0);Q<L?Q=L:Q>C&&(Q=C)}return{[b]:v,[g]:Q}}}},Gw=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(a){var s,l;const{placement:o,rects:u,platform:d,elements:O}=a,{apply:m=()=>{},...p}=ra(t,a),x=await d.detectOverflow(a,p),g=ia(o),b=Ml(o),v=$n(o)==="y",{width:Q,height:w}=u.floating;let N,k;g==="top"||g==="bottom"?(N=g,k=b===(await(d.isRTL==null?void 0:d.isRTL(O.floating))?"start":"end")?"left":"right"):(k=g,N=b==="end"?"top":"bottom");const P=w-x.top-x.bottom,$=Q-x.left-x.right,_=Wa(w-x[N],P),L=Wa(Q-x[k],$),C=!a.middlewareData.shift;let X=_,T=L;if((s=a.middlewareData.shift)!=null&&s.enabled.x&&(T=$),(l=a.middlewareData.shift)!=null&&l.enabled.y&&(X=P),C&&!b){const V=Dt(x.left,0),ae=Dt(x.right,0),ce=Dt(x.top,0),oe=Dt(x.bottom,0);v?T=Q-2*(V!==0||ae!==0?V+ae:Dt(x.left,x.right)):X=w-2*(ce!==0||oe!==0?ce+oe:Dt(x.top,x.bottom))}await m({...a,availableWidth:T,availableHeight:X});const G=await d.getDimensions(O.floating);return Q!==G.width||w!==G.height?{reset:{rects:!0}}:{}}}};function zc(){return typeof window<"u"}function Yl(t){return Z0(t)?(t.nodeName||"").toLowerCase():"#document"}function Wt(t){var a;return(t==null||(a=t.ownerDocument)==null?void 0:a.defaultView)||window}function Pn(t){var a;return(a=(Z0(t)?t.ownerDocument:t.document)||window.document)==null?void 0:a.documentElement}function Z0(t){return zc()?t instanceof Node||t instanceof Wt(t).Node:!1}function pn(t){return zc()?t instanceof Element||t instanceof Wt(t).Element:!1}function ca(t){return zc()?t instanceof HTMLElement||t instanceof Wt(t).HTMLElement:!1}function Eg(t){return!zc()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Wt(t).ShadowRoot}function ii(t){const{overflow:a,overflowX:s,overflowY:l,display:o}=xn(t);return/auto|scroll|overlay|hidden|clip/.test(a+l+s)&&o!=="inline"&&o!=="contents"}function Dw(t){return/^(table|td|th)$/.test(Yl(t))}function Rc(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const Ww=/transform|translate|scale|rotate|perspective|filter/,Bw=/paint|layout|strict|content/,bs=t=>!!t&&t!=="none";let hO;function _f(t){const a=pn(t)?xn(t):t;return bs(a.transform)||bs(a.translate)||bs(a.scale)||bs(a.rotate)||bs(a.perspective)||!Zf()&&(bs(a.backdropFilter)||bs(a.filter))||Ww.test(a.willChange||"")||Bw.test(a.contain||"")}function Hw(t){let a=Ba(t);for(;ca(a)&&!Cl(a);){if(_f(a))return a;if(Rc(a))return null;a=Ba(a)}return null}function Zf(){return hO==null&&(hO=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),hO}function Cl(t){return/^(html|body|#document)$/.test(Yl(t))}function xn(t){return Wt(t).getComputedStyle(t)}function Cc(t){return pn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Ba(t){if(Yl(t)==="html")return t;const a=t.assignedSlot||t.parentNode||Eg(t)&&t.host||Pn(t);return Eg(a)?a.host:a}function A0(t){const a=Ba(t);return Cl(a)?t.ownerDocument?t.ownerDocument.body:t.body:ca(a)&&ii(a)?a:A0(a)}function Br(t,a,s){var l;a===void 0&&(a=[]),s===void 0&&(s=!0);const o=A0(t),u=o===((l=t.ownerDocument)==null?void 0:l.body),d=Wt(o);if(u){const O=rf(d);return a.concat(d,d.visualViewport||[],ii(o)?o:[],O&&s?Br(O):[])}else return a.concat(o,Br(o,[],s))}function rf(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function E0(t){const a=xn(t);let s=parseFloat(a.width)||0,l=parseFloat(a.height)||0;const o=ca(t),u=o?t.offsetWidth:s,d=o?t.offsetHeight:l,O=ic(s)!==u||ic(l)!==d;return O&&(s=u,l=d),{width:s,height:l,$:O}}function Af(t){return pn(t)?t:t.contextElement}function $l(t){const a=Af(t);if(!ca(a))return Tn(1);const s=a.getBoundingClientRect(),{width:l,height:o,$:u}=E0(a);let d=(u?ic(s.width):s.width)/l,O=(u?ic(s.height):s.height)/o;return(!d||!Number.isFinite(d))&&(d=1),(!O||!Number.isFinite(O))&&(O=1),{x:d,y:O}}const Iw=Tn(0);function q0(t){const a=Wt(t);return!Zf()||!a.visualViewport?Iw:{x:a.visualViewport.offsetLeft,y:a.visualViewport.offsetTop}}function Fw(t,a,s){return a===void 0&&(a=!1),!s||a&&s!==Wt(t)?!1:a}function js(t,a,s,l){a===void 0&&(a=!1),s===void 0&&(s=!1);const o=t.getBoundingClientRect(),u=Af(t);let d=Tn(1);a&&(l?pn(l)&&(d=$l(l)):d=$l(t));const O=Fw(u,s,l)?q0(u):Tn(0);let m=(o.left+O.x)/d.x,p=(o.top+O.y)/d.y,x=o.width/d.x,g=o.height/d.y;if(u){const b=Wt(u),v=l&&pn(l)?Wt(l):l;let Q=b,w=rf(Q);for(;w&&l&&v!==Q;){const N=$l(w),k=w.getBoundingClientRect(),P=xn(w),$=k.left+(w.clientLeft+parseFloat(P.paddingLeft))*N.x,_=k.top+(w.clientTop+parseFloat(P.paddingTop))*N.y;m*=N.x,p*=N.y,x*=N.x,g*=N.y,m+=$,p+=_,Q=Wt(w),w=rf(Q)}}return cc({width:x,height:g,x:m,y:p})}function Xc(t,a){const s=Cc(t).scrollLeft;return a?a.left+s:js(Pn(t)).left+s}function M0(t,a){const s=t.getBoundingClientRect(),l=s.left+a.scrollLeft-Xc(t,s),o=s.top+a.scrollTop;return{x:l,y:o}}function Kw(t){let{elements:a,rect:s,offsetParent:l,strategy:o}=t;const u=o==="fixed",d=Pn(l),O=a?Rc(a.floating):!1;if(l===d||O&&u)return s;let m={scrollLeft:0,scrollTop:0},p=Tn(1);const x=Tn(0),g=ca(l);if((g||!g&&!u)&&((Yl(l)!=="body"||ii(d))&&(m=Cc(l)),g)){const v=js(l);p=$l(l),x.x=v.x+l.clientLeft,x.y=v.y+l.clientTop}const b=d&&!g&&!u?M0(d,m):Tn(0);return{width:s.width*p.x,height:s.height*p.y,x:s.x*p.x-m.scrollLeft*p.x+x.x+b.x,y:s.y*p.y-m.scrollTop*p.y+x.y+b.y}}function Jw(t){return Array.from(t.getClientRects())}function ek(t){const a=Pn(t),s=Cc(t),l=t.ownerDocument.body,o=Dt(a.scrollWidth,a.clientWidth,l.scrollWidth,l.clientWidth),u=Dt(a.scrollHeight,a.clientHeight,l.scrollHeight,l.clientHeight);let d=-s.scrollLeft+Xc(t);const O=-s.scrollTop;return xn(l).direction==="rtl"&&(d+=Dt(a.clientWidth,l.clientWidth)-o),{width:o,height:u,x:d,y:O}}const qg=25;function tk(t,a){const s=Wt(t),l=Pn(t),o=s.visualViewport;let u=l.clientWidth,d=l.clientHeight,O=0,m=0;if(o){u=o.width,d=o.height;const x=Zf();(!x||x&&a==="fixed")&&(O=o.offsetLeft,m=o.offsetTop)}const p=Xc(l);if(p<=0){const x=l.ownerDocument,g=x.body,b=getComputedStyle(g),v=x.compatMode==="CSS1Compat"&&parseFloat(b.marginLeft)+parseFloat(b.marginRight)||0,Q=Math.abs(l.clientWidth-g.clientWidth-v);Q<=qg&&(u-=Q)}else p<=qg&&(u+=p);return{width:u,height:d,x:O,y:m}}function nk(t,a){const s=js(t,!0,a==="fixed"),l=s.top+t.clientTop,o=s.left+t.clientLeft,u=ca(t)?$l(t):Tn(1),d=t.clientWidth*u.x,O=t.clientHeight*u.y,m=o*u.x,p=l*u.y;return{width:d,height:O,x:m,y:p}}function Mg(t,a,s){let l;if(a==="viewport")l=tk(t,s);else if(a==="document")l=ek(Pn(t));else if(pn(a))l=nk(a,s);else{const o=q0(t);l={x:a.x-o.x,y:a.y-o.y,width:a.width,height:a.height}}return cc(l)}function Y0(t,a){const s=Ba(t);return s===a||!pn(s)||Cl(s)?!1:xn(s).position==="fixed"||Y0(s,a)}function ak(t,a){const s=a.get(t);if(s)return s;let l=Br(t,[],!1).filter(O=>pn(O)&&Yl(O)!=="body"),o=null;const u=xn(t).position==="fixed";let d=u?Ba(t):t;for(;pn(d)&&!Cl(d);){const O=xn(d),m=_f(d);!m&&O.position==="fixed"&&(o=null),(u?!m&&!o:!m&&O.position==="static"&&!!o&&(o.position==="absolute"||o.position==="fixed")||ii(d)&&!m&&Y0(t,d))?l=l.filter(x=>x!==d):o=O,d=Ba(d)}return a.set(t,l),l}function sk(t){let{element:a,boundary:s,rootBoundary:l,strategy:o}=t;const d=[...s==="clippingAncestors"?Rc(a)?[]:ak(a,this._c):[].concat(s),l],O=Mg(a,d[0],o);let m=O.top,p=O.right,x=O.bottom,g=O.left;for(let b=1;b<d.length;b++){const v=Mg(a,d[b],o);m=Dt(v.top,m),p=Wa(v.right,p),x=Wa(v.bottom,x),g=Dt(v.left,g)}return{width:p-g,height:x-m,x:g,y:m}}function lk(t){const{width:a,height:s}=E0(t);return{width:a,height:s}}function rk(t,a,s){const l=ca(a),o=Pn(a),u=s==="fixed",d=js(t,!0,u,a);let O={scrollLeft:0,scrollTop:0};const m=Tn(0);function p(){m.x=Xc(o)}if(l||!l&&!u)if((Yl(a)!=="body"||ii(o))&&(O=Cc(a)),l){const v=js(a,!0,u,a);m.x=v.x+a.clientLeft,m.y=v.y+a.clientTop}else o&&p();u&&!l&&o&&p();const x=o&&!l&&!u?M0(o,O):Tn(0),g=d.left+O.scrollLeft-m.x-x.x,b=d.top+O.scrollTop-m.y-x.y;return{x:g,y:b,width:d.width,height:d.height}}function mO(t){return xn(t).position==="static"}function Yg(t,a){if(!ca(t)||xn(t).position==="fixed")return null;if(a)return a(t);let s=t.offsetParent;return Pn(t)===s&&(s=s.ownerDocument.body),s}function V0(t,a){const s=Wt(t);if(Rc(t))return s;if(!ca(t)){let o=Ba(t);for(;o&&!Cl(o);){if(pn(o)&&!mO(o))return o;o=Ba(o)}return s}let l=Yg(t,a);for(;l&&Dw(l)&&mO(l);)l=Yg(l,a);return l&&Cl(l)&&mO(l)&&!_f(l)?s:l||Hw(t)||s}const ik=async function(t){const a=this.getOffsetParent||V0,s=this.getDimensions,l=await s(t.floating);return{reference:rk(t.reference,await a(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function ok(t){return xn(t).direction==="rtl"}const ck={convertOffsetParentRelativeRectToViewportRelativeRect:Kw,getDocumentElement:Pn,getClippingRect:sk,getOffsetParent:V0,getElementRects:ik,getClientRects:Jw,getDimensions:lk,getScale:$l,isElement:pn,isRTL:ok};function U0(t,a){return t.x===a.x&&t.y===a.y&&t.width===a.width&&t.height===a.height}function uk(t,a){let s=null,l;const o=Pn(t);function u(){var O;clearTimeout(l),(O=s)==null||O.disconnect(),s=null}function d(O,m){O===void 0&&(O=!1),m===void 0&&(m=1),u();const p=t.getBoundingClientRect(),{left:x,top:g,width:b,height:v}=p;if(O||a(),!b||!v)return;const Q=Zo(g),w=Zo(o.clientWidth-(x+b)),N=Zo(o.clientHeight-(g+v)),k=Zo(x),$={rootMargin:-Q+"px "+-w+"px "+-N+"px "+-k+"px",threshold:Dt(0,Wa(1,m))||1};let _=!0;function L(C){const X=C[0].intersectionRatio;if(X!==m){if(!_)return d();X?d(!1,X):l=setTimeout(()=>{d(!1,1e-7)},1e3)}X===1&&!U0(p,t.getBoundingClientRect())&&d(),_=!1}try{s=new IntersectionObserver(L,{...$,root:o.ownerDocument})}catch{s=new IntersectionObserver(L,$)}s.observe(t)}return d(!0),u}function dk(t,a,s,l){l===void 0&&(l={});const{ancestorScroll:o=!0,ancestorResize:u=!0,elementResize:d=typeof ResizeObserver=="function",layoutShift:O=typeof IntersectionObserver=="function",animationFrame:m=!1}=l,p=Af(t),x=o||u?[...p?Br(p):[],...a?Br(a):[]]:[];x.forEach(k=>{o&&k.addEventListener("scroll",s,{passive:!0}),u&&k.addEventListener("resize",s)});const g=p&&O?uk(p,s):null;let b=-1,v=null;d&&(v=new ResizeObserver(k=>{let[P]=k;P&&P.target===p&&v&&a&&(v.unobserve(a),cancelAnimationFrame(b),b=requestAnimationFrame(()=>{var $;($=v)==null||$.observe(a)})),s()}),p&&!m&&v.observe(p),a&&v.observe(a));let Q,w=m?js(t):null;m&&N();function N(){const k=js(t);w&&!U0(w,k)&&s(),w=k,Q=requestAnimationFrame(N)}return s(),()=>{var k;x.forEach(P=>{o&&P.removeEventListener("scroll",s),u&&P.removeEventListener("resize",s)}),g==null||g(),(k=v)==null||k.disconnect(),v=null,m&&cancelAnimationFrame(Q)}}const Ok=Vw,fk=Uw,hk=qw,mk=Gw,pk=Mw,Vg=Ew,xk=Lw,gk=(t,a,s)=>{const l=new Map,o={platform:ck,...s},u={...o.platform,_c:l};return Aw(t,a,{...o,platform:u})};var bk=typeof document<"u",vk=function(){},Ko=bk?y.useLayoutEffect:vk;function uc(t,a){if(t===a)return!0;if(typeof t!=typeof a)return!1;if(typeof t=="function"&&t.toString()===a.toString())return!0;let s,l,o;if(t&&a&&typeof t=="object"){if(Array.isArray(t)){if(s=t.length,s!==a.length)return!1;for(l=s;l--!==0;)if(!uc(t[l],a[l]))return!1;return!0}if(o=Object.keys(t),s=o.length,s!==Object.keys(a).length)return!1;for(l=s;l--!==0;)if(!{}.hasOwnProperty.call(a,o[l]))return!1;for(l=s;l--!==0;){const u=o[l];if(!(u==="_owner"&&t.$$typeof)&&!uc(t[u],a[u]))return!1}return!0}return t!==t&&a!==a}function L0(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Ug(t,a){const s=L0(t);return Math.round(a*s)/s}function pO(t){const a=y.useRef(t);return Ko(()=>{a.current=t}),a}function yk(t){t===void 0&&(t={});const{placement:a="bottom",strategy:s="absolute",middleware:l=[],platform:o,elements:{reference:u,floating:d}={},transform:O=!0,whileElementsMounted:m,open:p}=t,[x,g]=y.useState({x:0,y:0,strategy:s,placement:a,middlewareData:{},isPositioned:!1}),[b,v]=y.useState(l);uc(b,l)||v(l);const[Q,w]=y.useState(null),[N,k]=y.useState(null),P=y.useCallback(E=>{E!==C.current&&(C.current=E,w(E))},[]),$=y.useCallback(E=>{E!==X.current&&(X.current=E,k(E))},[]),_=u||Q,L=d||N,C=y.useRef(null),X=y.useRef(null),T=y.useRef(x),G=m!=null,V=pO(m),ae=pO(o),ce=pO(p),oe=y.useCallback(()=>{if(!C.current||!X.current)return;const E={placement:a,strategy:s,middleware:b};ae.current&&(E.platform=ae.current),gk(C.current,X.current,E).then(le=>{const ee={...le,isPositioned:ce.current!==!1};ie.current&&!uc(T.current,ee)&&(T.current=ee,S0.flushSync(()=>{g(ee)}))})},[b,a,s,ae,ce]);Ko(()=>{p===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,g(E=>({...E,isPositioned:!1})))},[p]);const ie=y.useRef(!1);Ko(()=>(ie.current=!0,()=>{ie.current=!1}),[]),Ko(()=>{if(_&&(C.current=_),L&&(X.current=L),_&&L){if(V.current)return V.current(_,L,oe);oe()}},[_,L,oe,V,G]);const K=y.useMemo(()=>({reference:C,floating:X,setReference:P,setFloating:$}),[P,$]),z=y.useMemo(()=>({reference:_,floating:L}),[_,L]),H=y.useMemo(()=>{const E={position:s,left:0,top:0};if(!z.floating)return E;const le=Ug(z.floating,x.x),ee=Ug(z.floating,x.y);return O?{...E,transform:"translate("+le+"px, "+ee+"px)",...L0(z.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:le,top:ee}},[s,O,z.floating,x.x,x.y]);return y.useMemo(()=>({...x,update:oe,refs:K,elements:z,floatingStyles:H}),[x,oe,K,z,H])}const Sk=t=>{function a(s){return{}.hasOwnProperty.call(s,"current")}return{name:"arrow",options:t,fn(s){const{element:l,padding:o}=typeof t=="function"?t(s):t;return l&&a(l)?l.current!=null?Vg({element:l.current,padding:o}).fn(s):{}:l?Vg({element:l,padding:o}).fn(s):{}}}},Qk=(t,a)=>{const s=Ok(t);return{name:s.name,fn:s.fn,options:[t,a]}},jk=(t,a)=>{const s=fk(t);return{name:s.name,fn:s.fn,options:[t,a]}},wk=(t,a)=>({fn:xk(t).fn,options:[t,a]}),kk=(t,a)=>{const s=hk(t);return{name:s.name,fn:s.fn,options:[t,a]}},$k=(t,a)=>{const s=mk(t);return{name:s.name,fn:s.fn,options:[t,a]}},Tk=(t,a)=>{const s=pk(t);return{name:s.name,fn:s.fn,options:[t,a]}},Nk=(t,a)=>{const s=Sk(t);return{name:s.name,fn:s.fn,options:[t,a]}};var Pk="Arrow",G0=y.forwardRef((t,a)=>{const{children:s,width:l=10,height:o=5,...u}=t;return i.jsx(Be.svg,{...u,ref:a,width:l,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?s:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});G0.displayName=Pk;var zk=G0;function Rk(t){const[a,s]=y.useState(void 0);return la(()=>{if(t){s({width:t.offsetWidth,height:t.offsetHeight});const l=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const u=o[0];let d,O;if("borderBoxSize"in u){const m=u.borderBoxSize,p=Array.isArray(m)?m[0]:m;d=p.inlineSize,O=p.blockSize}else d=t.offsetWidth,O=t.offsetHeight;s({width:d,height:O})});return l.observe(t,{box:"border-box"}),()=>l.unobserve(t)}else s(void 0)},[t]),a}var Ef="Popper",[D0,W0]=zs(Ef),[Ck,B0]=D0(Ef),H0=t=>{const{__scopePopper:a,children:s}=t,[l,o]=y.useState(null);return i.jsx(Ck,{scope:a,anchor:l,onAnchorChange:o,children:s})};H0.displayName=Ef;var I0="PopperAnchor",F0=y.forwardRef((t,a)=>{const{__scopePopper:s,virtualRef:l,...o}=t,u=B0(I0,s),d=y.useRef(null),O=it(a,d),m=y.useRef(null);return y.useEffect(()=>{const p=m.current;m.current=(l==null?void 0:l.current)||d.current,p!==m.current&&u.onAnchorChange(m.current)}),l?null:i.jsx(Be.div,{...o,ref:O})});F0.displayName=I0;var qf="PopperContent",[Xk,_k]=D0(qf),K0=y.forwardRef((t,a)=>{var Ce,Ot,Ze,nt,bt,yt;const{__scopePopper:s,side:l="bottom",sideOffset:o=0,align:u="center",alignOffset:d=0,arrowPadding:O=0,avoidCollisions:m=!0,collisionBoundary:p=[],collisionPadding:x=0,sticky:g="partial",hideWhenDetached:b=!1,updatePositionStrategy:v="optimized",onPlaced:Q,...w}=t,N=B0(qf,s),[k,P]=y.useState(null),$=it(a,Bt=>P(Bt)),[_,L]=y.useState(null),C=Rk(_),X=(C==null?void 0:C.width)??0,T=(C==null?void 0:C.height)??0,G=l+(u!=="center"?"-"+u:""),V=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},ae=Array.isArray(p)?p:[p],ce=ae.length>0,oe={padding:V,boundary:ae.filter(Ak),altBoundary:ce},{refs:ie,floatingStyles:K,placement:z,isPositioned:H,middlewareData:E}=yk({strategy:"fixed",placement:G,whileElementsMounted:(...Bt)=>dk(...Bt,{animationFrame:v==="always"}),elements:{reference:N.anchor},middleware:[Qk({mainAxis:o+T,alignmentAxis:d}),m&&jk({mainAxis:!0,crossAxis:!1,limiter:g==="partial"?wk():void 0,...oe}),m&&kk({...oe}),$k({...oe,apply:({elements:Bt,rects:St,availableWidth:Ul,availableHeight:Ll})=>{const{width:Ic,height:xi}=St.reference,da=Bt.floating.style;da.setProperty("--radix-popper-available-width",`${Ul}px`),da.setProperty("--radix-popper-available-height",`${Ll}px`),da.setProperty("--radix-popper-anchor-width",`${Ic}px`),da.setProperty("--radix-popper-anchor-height",`${xi}px`)}}),_&&Nk({element:_,padding:O}),Ek({arrowWidth:X,arrowHeight:T}),b&&Tk({strategy:"referenceHidden",...oe})]}),[le,ee]=tb(z),we=Rt(Q);la(()=>{H&&(we==null||we())},[H,we]);const ve=(Ce=E.arrow)==null?void 0:Ce.x,be=(Ot=E.arrow)==null?void 0:Ot.y,Re=((Ze=E.arrow)==null?void 0:Ze.centerOffset)!==0,[B,ue]=y.useState();return la(()=>{k&&ue(window.getComputedStyle(k).zIndex)},[k]),i.jsx("div",{ref:ie.setFloating,"data-radix-popper-content-wrapper":"",style:{...K,transform:H?K.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:B,"--radix-popper-transform-origin":[(nt=E.transformOrigin)==null?void 0:nt.x,(bt=E.transformOrigin)==null?void 0:bt.y].join(" "),...((yt=E.hide)==null?void 0:yt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:i.jsx(Xk,{scope:s,placedSide:le,onArrowChange:L,arrowX:ve,arrowY:be,shouldHideArrow:Re,children:i.jsx(Be.div,{"data-side":le,"data-align":ee,...w,ref:$,style:{...w.style,animation:H?void 0:"none"}})})})});K0.displayName=qf;var J0="PopperArrow",Zk={top:"bottom",right:"left",bottom:"top",left:"right"},eb=y.forwardRef(function(a,s){const{__scopePopper:l,...o}=a,u=_k(J0,l),d=Zk[u.placedSide];return i.jsx("span",{ref:u.onArrowChange,style:{position:"absolute",left:u.arrowX,top:u.arrowY,[d]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[u.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[u.placedSide],visibility:u.shouldHideArrow?"hidden":void 0},children:i.jsx(zk,{...o,ref:s,style:{...o.style,display:"block"}})})});eb.displayName=J0;function Ak(t){return t!==null}var Ek=t=>({name:"transformOrigin",options:t,fn(a){var N,k,P;const{placement:s,rects:l,middlewareData:o}=a,d=((N=o.arrow)==null?void 0:N.centerOffset)!==0,O=d?0:t.arrowWidth,m=d?0:t.arrowHeight,[p,x]=tb(s),g={start:"0%",center:"50%",end:"100%"}[x],b=(((k=o.arrow)==null?void 0:k.x)??0)+O/2,v=(((P=o.arrow)==null?void 0:P.y)??0)+m/2;let Q="",w="";return p==="bottom"?(Q=d?g:`${b}px`,w=`${-m}px`):p==="top"?(Q=d?g:`${b}px`,w=`${l.floating.height+m}px`):p==="right"?(Q=`${-m}px`,w=d?g:`${v}px`):p==="left"&&(Q=`${l.floating.width+m}px`,w=d?g:`${v}px`),{data:{x:Q,y:w}}}});function tb(t){const[a,s="center"]=t.split("-");return[a,s]}var qk=H0,Mk=F0,Yk=K0,Vk=eb,Uk="Portal",Mf=y.forwardRef((t,a)=>{var O;const{container:s,...l}=t,[o,u]=y.useState(!1);la(()=>u(!0),[]);const d=s||o&&((O=globalThis==null?void 0:globalThis.document)==null?void 0:O.body);return d?gj.createPortal(i.jsx(Be.div,{...l,ref:a}),d):null});Mf.displayName=Uk;function Lk(t,a){return y.useReducer((s,l)=>a[s][l]??s,t)}var bn=t=>{const{present:a,children:s}=t,l=Gk(a),o=typeof s=="function"?s({present:l.isPresent}):y.Children.only(s),u=it(l.ref,Dk(o));return typeof s=="function"||l.isPresent?y.cloneElement(o,{ref:u}):null};bn.displayName="Presence";function Gk(t){const[a,s]=y.useState(),l=y.useRef(null),o=y.useRef(t),u=y.useRef("none"),d=t?"mounted":"unmounted",[O,m]=Lk(d,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const p=Ao(l.current);u.current=O==="mounted"?p:"none"},[O]),la(()=>{const p=l.current,x=o.current;if(x!==t){const b=u.current,v=Ao(p);t?m("MOUNT"):v==="none"||(p==null?void 0:p.display)==="none"?m("UNMOUNT"):m(x&&b!==v?"ANIMATION_OUT":"UNMOUNT"),o.current=t}},[t,m]),la(()=>{if(a){let p;const x=a.ownerDocument.defaultView??window,g=v=>{const w=Ao(l.current).includes(CSS.escape(v.animationName));if(v.target===a&&w&&(m("ANIMATION_END"),!o.current)){const N=a.style.animationFillMode;a.style.animationFillMode="forwards",p=x.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=N)})}},b=v=>{v.target===a&&(u.current=Ao(l.current))};return a.addEventListener("animationstart",b),a.addEventListener("animationcancel",g),a.addEventListener("animationend",g),()=>{x.clearTimeout(p),a.removeEventListener("animationstart",b),a.removeEventListener("animationcancel",g),a.removeEventListener("animationend",g)}}else m("ANIMATION_END")},[a,m]),{isPresent:["mounted","unmountSuspended"].includes(O),ref:y.useCallback(p=>{l.current=p?getComputedStyle(p):null,s(p)},[])}}function Ao(t){return(t==null?void 0:t.animationName)||"none"}function Dk(t){var l,o;let a=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?t.ref:(a=(o=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:o.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}var Wk=b0[" useInsertionEffect ".trim().toString()]||la;function _c({prop:t,defaultProp:a,onChange:s=()=>{},caller:l}){const[o,u,d]=Bk({defaultProp:a,onChange:s}),O=t!==void 0,m=O?t:o;{const x=y.useRef(t!==void 0);y.useEffect(()=>{const g=x.current;g!==O&&console.warn(`${l} is changing from ${g?"controlled":"uncontrolled"} to ${O?"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.`),x.current=O},[O,l])}const p=y.useCallback(x=>{var g;if(O){const b=Hk(x)?x(t):x;b!==t&&((g=d.current)==null||g.call(d,b))}else u(x)},[O,t,u,d]);return[m,p]}function Bk({defaultProp:t,onChange:a}){const[s,l]=y.useState(t),o=y.useRef(s),u=y.useRef(a);return Wk(()=>{u.current=a},[a]),y.useEffect(()=>{var d;o.current!==s&&((d=u.current)==null||d.call(u,s),o.current=s)},[s,o]),[s,l,u]}function Hk(t){return typeof t=="function"}var Ik=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"}),Fk="VisuallyHidden",nb=y.forwardRef((t,a)=>i.jsx(Be.span,{...t,ref:a,style:{...Ik,...t.style}}));nb.displayName=Fk;var Kk=nb,[Zc]=zs("Tooltip",[W0]),Ac=W0(),ab="TooltipProvider",Jk=700,of="tooltip.open",[e$,Yf]=Zc(ab),sb=t=>{const{__scopeTooltip:a,delayDuration:s=Jk,skipDelayDuration:l=300,disableHoverableContent:o=!1,children:u}=t,d=y.useRef(!0),O=y.useRef(!1),m=y.useRef(0);return y.useEffect(()=>{const p=m.current;return()=>window.clearTimeout(p)},[]),i.jsx(e$,{scope:a,isOpenDelayedRef:d,delayDuration:s,onOpen:y.useCallback(()=>{window.clearTimeout(m.current),d.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>d.current=!0,l)},[l]),isPointerInTransitRef:O,onPointerInTransitChange:y.useCallback(p=>{O.current=p},[]),disableHoverableContent:o,children:u})};sb.displayName=ab;var Hr="Tooltip",[t$,oi]=Zc(Hr),lb=t=>{const{__scopeTooltip:a,children:s,open:l,defaultOpen:o,onOpenChange:u,disableHoverableContent:d,delayDuration:O}=t,m=Yf(Hr,t.__scopeTooltip),p=Ac(a),[x,g]=y.useState(null),b=kl(),v=y.useRef(0),Q=d??m.disableHoverableContent,w=O??m.delayDuration,N=y.useRef(!1),[k,P]=_c({prop:l,defaultProp:o??!1,onChange:X=>{X?(m.onOpen(),document.dispatchEvent(new CustomEvent(of))):m.onClose(),u==null||u(X)},caller:Hr}),$=y.useMemo(()=>k?N.current?"delayed-open":"instant-open":"closed",[k]),_=y.useCallback(()=>{window.clearTimeout(v.current),v.current=0,N.current=!1,P(!0)},[P]),L=y.useCallback(()=>{window.clearTimeout(v.current),v.current=0,P(!1)},[P]),C=y.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{N.current=!0,P(!0),v.current=0},w)},[w,P]);return y.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),i.jsx(qk,{...p,children:i.jsx(t$,{scope:a,contentId:b,open:k,stateAttribute:$,trigger:x,onTriggerChange:g,onTriggerEnter:y.useCallback(()=>{m.isOpenDelayedRef.current?C():_()},[m.isOpenDelayedRef,C,_]),onTriggerLeave:y.useCallback(()=>{Q?L():(window.clearTimeout(v.current),v.current=0)},[L,Q]),onOpen:_,onClose:L,disableHoverableContent:Q,children:s})})};lb.displayName=Hr;var cf="TooltipTrigger",rb=y.forwardRef((t,a)=>{const{__scopeTooltip:s,...l}=t,o=oi(cf,s),u=Yf(cf,s),d=Ac(s),O=y.useRef(null),m=it(a,O,o.onTriggerChange),p=y.useRef(!1),x=y.useRef(!1),g=y.useCallback(()=>p.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",g),[g]),i.jsx(Mk,{asChild:!0,...d,children:i.jsx(Be.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...l,ref:m,onPointerMove:Ee(t.onPointerMove,b=>{b.pointerType!=="touch"&&!x.current&&!u.isPointerInTransitRef.current&&(o.onTriggerEnter(),x.current=!0)}),onPointerLeave:Ee(t.onPointerLeave,()=>{o.onTriggerLeave(),x.current=!1}),onPointerDown:Ee(t.onPointerDown,()=>{o.open&&o.onClose(),p.current=!0,document.addEventListener("pointerup",g,{once:!0})}),onFocus:Ee(t.onFocus,()=>{p.current||o.onOpen()}),onBlur:Ee(t.onBlur,o.onClose),onClick:Ee(t.onClick,o.onClose)})})});rb.displayName=cf;var Vf="TooltipPortal",[n$,a$]=Zc(Vf,{forceMount:void 0}),ib=t=>{const{__scopeTooltip:a,forceMount:s,children:l,container:o}=t,u=oi(Vf,a);return i.jsx(n$,{scope:a,forceMount:s,children:i.jsx(bn,{present:s||u.open,children:i.jsx(Mf,{asChild:!0,container:o,children:l})})})};ib.displayName=Vf;var Xl="TooltipContent",ob=y.forwardRef((t,a)=>{const s=a$(Xl,t.__scopeTooltip),{forceMount:l=s.forceMount,side:o="top",...u}=t,d=oi(Xl,t.__scopeTooltip);return i.jsx(bn,{present:l||d.open,children:d.disableHoverableContent?i.jsx(cb,{side:o,...u,ref:a}):i.jsx(s$,{side:o,...u,ref:a})})}),s$=y.forwardRef((t,a)=>{const s=oi(Xl,t.__scopeTooltip),l=Yf(Xl,t.__scopeTooltip),o=y.useRef(null),u=it(a,o),[d,O]=y.useState(null),{trigger:m,onClose:p}=s,x=o.current,{onPointerInTransitChange:g}=l,b=y.useCallback(()=>{O(null),g(!1)},[g]),v=y.useCallback((Q,w)=>{const N=Q.currentTarget,k={x:Q.clientX,y:Q.clientY},P=o$(k,N.getBoundingClientRect()),$=c$(k,P),_=u$(w.getBoundingClientRect()),L=O$([...$,..._]);O(L),g(!0)},[g]);return y.useEffect(()=>()=>b(),[b]),y.useEffect(()=>{if(m&&x){const Q=N=>v(N,x),w=N=>v(N,m);return m.addEventListener("pointerleave",Q),x.addEventListener("pointerleave",w),()=>{m.removeEventListener("pointerleave",Q),x.removeEventListener("pointerleave",w)}}},[m,x,v,b]),y.useEffect(()=>{if(d){const Q=w=>{const N=w.target,k={x:w.clientX,y:w.clientY},P=(m==null?void 0:m.contains(N))||(x==null?void 0:x.contains(N)),$=!d$(k,d);P?b():$&&(b(),p())};return document.addEventListener("pointermove",Q),()=>document.removeEventListener("pointermove",Q)}},[m,x,d,p,b]),i.jsx(cb,{...t,ref:u})}),[l$,r$]=Zc(Hr,{isInside:!1}),i$=uw("TooltipContent"),cb=y.forwardRef((t,a)=>{const{__scopeTooltip:s,children:l,"aria-label":o,onEscapeKeyDown:u,onPointerDownOutside:d,...O}=t,m=oi(Xl,s),p=Ac(s),{onClose:x}=m;return y.useEffect(()=>(document.addEventListener(of,x),()=>document.removeEventListener(of,x)),[x]),y.useEffect(()=>{if(m.trigger){const g=b=>{const v=b.target;v!=null&&v.contains(m.trigger)&&x()};return window.addEventListener("scroll",g,{capture:!0}),()=>window.removeEventListener("scroll",g,{capture:!0})}},[m.trigger,x]),i.jsx(zf,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:g=>g.preventDefault(),onDismiss:x,children:i.jsxs(Yk,{"data-state":m.stateAttribute,...p,...O,ref:a,style:{...O.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:[i.jsx(i$,{children:l}),i.jsx(l$,{scope:s,isInside:!0,children:i.jsx(Kk,{id:m.contentId,role:"tooltip",children:o||l})})]})})});ob.displayName=Xl;var ub="TooltipArrow",db=y.forwardRef((t,a)=>{const{__scopeTooltip:s,...l}=t,o=Ac(s);return r$(ub,s).isInside?null:i.jsx(Vk,{...o,...l,ref:a})});db.displayName=ub;function o$(t,a){const s=Math.abs(a.top-t.y),l=Math.abs(a.bottom-t.y),o=Math.abs(a.right-t.x),u=Math.abs(a.left-t.x);switch(Math.min(s,l,o,u)){case u:return"left";case o:return"right";case s:return"top";case l:return"bottom";default:throw new Error("unreachable")}}function c$(t,a,s=5){const l=[];switch(a){case"top":l.push({x:t.x-s,y:t.y+s},{x:t.x+s,y:t.y+s});break;case"bottom":l.push({x:t.x-s,y:t.y-s},{x:t.x+s,y:t.y-s});break;case"left":l.push({x:t.x+s,y:t.y-s},{x:t.x+s,y:t.y+s});break;case"right":l.push({x:t.x-s,y:t.y-s},{x:t.x-s,y:t.y+s});break}return l}function u$(t){const{top:a,right:s,bottom:l,left:o}=t;return[{x:o,y:a},{x:s,y:a},{x:s,y:l},{x:o,y:l}]}function d$(t,a){const{x:s,y:l}=t;let o=!1;for(let u=0,d=a.length-1;u<a.length;d=u++){const O=a[u],m=a[d],p=O.x,x=O.y,g=m.x,b=m.y;x>l!=b>l&&s<(g-p)*(l-x)/(b-x)+p&&(o=!o)}return o}function O$(t){const a=t.slice();return a.sort((s,l)=>s.x<l.x?-1:s.x>l.x?1:s.y<l.y?-1:s.y>l.y?1:0),f$(a)}function f$(t){if(t.length<=1)return t.slice();const a=[];for(let l=0;l<t.length;l++){const o=t[l];for(;a.length>=2;){const u=a[a.length-1],d=a[a.length-2];if((u.x-d.x)*(o.y-d.y)>=(u.y-d.y)*(o.x-d.x))a.pop();else break}a.push(o)}a.pop();const s=[];for(let l=t.length-1;l>=0;l--){const o=t[l];for(;s.length>=2;){const u=s[s.length-1],d=s[s.length-2];if((u.x-d.x)*(o.y-d.y)>=(u.y-d.y)*(o.x-d.x))s.pop();else break}s.push(o)}return s.pop(),a.length===1&&s.length===1&&a[0].x===s[0].x&&a[0].y===s[0].y?a:a.concat(s)}var h$=sb,m$=lb,p$=rb,x$=ib,g$=ob,b$=db;function Ob(t){var a,s,l="";if(typeof t=="string"||typeof t=="number")l+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(a=0;a<o;a++)t[a]&&(s=Ob(t[a]))&&(l&&(l+=" "),l+=s)}else for(s in t)t[s]&&(l&&(l+=" "),l+=s);return l}function v$(){for(var t,a,s=0,l="",o=arguments.length;s<o;s++)(t=arguments[s])&&(a=Ob(t))&&(l&&(l+=" "),l+=a);return l}const y$=(t,a)=>{const s=new Array(t.length+a.length);for(let l=0;l<t.length;l++)s[l]=t[l];for(let l=0;l<a.length;l++)s[t.length+l]=a[l];return s},S$=(t,a)=>({classGroupId:t,validator:a}),fb=(t=new Map,a=null,s)=>({nextPart:t,validators:a,classGroupId:s}),dc="-",Lg=[],Q$="arbitrary..",j$=t=>{const a=k$(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:l}=t;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return w$(d);const O=d.split(dc),m=O[0]===""&&O.length>1?1:0;return hb(O,m,a)},getConflictingClassGroupIds:(d,O)=>{if(O){const m=l[d],p=s[d];return m?p?y$(p,m):m:p||Lg}return s[d]||Lg}}},hb=(t,a,s)=>{if(t.length-a===0)return s.classGroupId;const o=t[a],u=s.nextPart.get(o);if(u){const p=hb(t,a+1,u);if(p)return p}const d=s.validators;if(d===null)return;const O=a===0?t.join(dc):t.slice(a).join(dc),m=d.length;for(let p=0;p<m;p++){const x=d[p];if(x.validator(O))return x.classGroupId}},w$=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=t.slice(1,-1),s=a.indexOf(":"),l=a.slice(0,s);return l?Q$+l:void 0})(),k$=t=>{const{theme:a,classGroups:s}=t;return $$(s,a)},$$=(t,a)=>{const s=fb();for(const l in t){const o=t[l];Uf(o,s,l,a)}return s},Uf=(t,a,s,l)=>{const o=t.length;for(let u=0;u<o;u++){const d=t[u];T$(d,a,s,l)}},T$=(t,a,s,l)=>{if(typeof t=="string"){N$(t,a,s);return}if(typeof t=="function"){P$(t,a,s,l);return}z$(t,a,s,l)},N$=(t,a,s)=>{const l=t===""?a:mb(a,t);l.classGroupId=s},P$=(t,a,s,l)=>{if(R$(t)){Uf(t(l),a,s,l);return}a.validators===null&&(a.validators=[]),a.validators.push(S$(s,t))},z$=(t,a,s,l)=>{const o=Object.entries(t),u=o.length;for(let d=0;d<u;d++){const[O,m]=o[d];Uf(m,mb(a,O),s,l)}},mb=(t,a)=>{let s=t;const l=a.split(dc),o=l.length;for(let u=0;u<o;u++){const d=l[u];let O=s.nextPart.get(d);O||(O=fb(),s.nextPart.set(d,O)),s=O}return s},R$=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,C$=t=>{if(t<1)return{get:()=>{},set:()=>{}};let a=0,s=Object.create(null),l=Object.create(null);const o=(u,d)=>{s[u]=d,a++,a>t&&(a=0,l=s,s=Object.create(null))};return{get(u){let d=s[u];if(d!==void 0)return d;if((d=l[u])!==void 0)return o(u,d),d},set(u,d){u in s?s[u]=d:o(u,d)}}},uf="!",Gg=":",X$=[],Dg=(t,a,s,l,o)=>({modifiers:t,hasImportantModifier:a,baseClassName:s,maybePostfixModifierPosition:l,isExternal:o}),_$=t=>{const{prefix:a,experimentalParseClassName:s}=t;let l=o=>{const u=[];let d=0,O=0,m=0,p;const x=o.length;for(let w=0;w<x;w++){const N=o[w];if(d===0&&O===0){if(N===Gg){u.push(o.slice(m,w)),m=w+1;continue}if(N==="/"){p=w;continue}}N==="["?d++:N==="]"?d--:N==="("?O++:N===")"&&O--}const g=u.length===0?o:o.slice(m);let b=g,v=!1;g.endsWith(uf)?(b=g.slice(0,-1),v=!0):g.startsWith(uf)&&(b=g.slice(1),v=!0);const Q=p&&p>m?p-m:void 0;return Dg(u,v,b,Q)};if(a){const o=a+Gg,u=l;l=d=>d.startsWith(o)?u(d.slice(o.length)):Dg(X$,!1,d,void 0,!0)}if(s){const o=l;l=u=>s({className:u,parseClassName:o})}return l},Z$=t=>{const a=new Map;return t.orderSensitiveModifiers.forEach((s,l)=>{a.set(s,1e6+l)}),s=>{const l=[];let o=[];for(let u=0;u<s.length;u++){const d=s[u],O=d[0]==="[",m=a.has(d);O||m?(o.length>0&&(o.sort(),l.push(...o),o=[]),l.push(d)):o.push(d)}return o.length>0&&(o.sort(),l.push(...o)),l}},A$=t=>({cache:C$(t.cacheSize),parseClassName:_$(t),sortModifiers:Z$(t),...j$(t)}),E$=/\s+/,q$=(t,a)=>{const{parseClassName:s,getClassGroupId:l,getConflictingClassGroupIds:o,sortModifiers:u}=a,d=[],O=t.trim().split(E$);let m="";for(let p=O.length-1;p>=0;p-=1){const x=O[p],{isExternal:g,modifiers:b,hasImportantModifier:v,baseClassName:Q,maybePostfixModifierPosition:w}=s(x);if(g){m=x+(m.length>0?" "+m:m);continue}let N=!!w,k=l(N?Q.substring(0,w):Q);if(!k){if(!N){m=x+(m.length>0?" "+m:m);continue}if(k=l(Q),!k){m=x+(m.length>0?" "+m:m);continue}N=!1}const P=b.length===0?"":b.length===1?b[0]:u(b).join(":"),$=v?P+uf:P,_=$+k;if(d.indexOf(_)>-1)continue;d.push(_);const L=o(k,N);for(let C=0;C<L.length;++C){const X=L[C];d.push($+X)}m=x+(m.length>0?" "+m:m)}return m},M$=(...t)=>{let a=0,s,l,o="";for(;a<t.length;)(s=t[a++])&&(l=pb(s))&&(o&&(o+=" "),o+=l);return o},pb=t=>{if(typeof t=="string")return t;let a,s="";for(let l=0;l<t.length;l++)t[l]&&(a=pb(t[l]))&&(s&&(s+=" "),s+=a);return s},Y$=(t,...a)=>{let s,l,o,u;const d=m=>{const p=a.reduce((x,g)=>g(x),t());return s=A$(p),l=s.cache.get,o=s.cache.set,u=O,O(m)},O=m=>{const p=l(m);if(p)return p;const x=q$(m,s);return o(m,x),x};return u=d,(...m)=>u(M$(...m))},V$=[],ct=t=>{const a=s=>s[t]||V$;return a.isThemeGetter=!0,a},xb=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,gb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,U$=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,L$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,G$=/\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$/,D$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,W$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B$=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Aa=t=>U$.test(t),Qe=t=>!!t&&!Number.isNaN(Number(t)),Ea=t=>!!t&&Number.isInteger(Number(t)),xO=t=>t.endsWith("%")&&Qe(t.slice(0,-1)),Fn=t=>L$.test(t),bb=()=>!0,H$=t=>G$.test(t)&&!D$.test(t),Lf=()=>!1,I$=t=>W$.test(t),F$=t=>B$.test(t),K$=t=>!Oe(t)&&!fe(t),J$=t=>Ka(t,Sb,Lf),Oe=t=>xb.test(t),vs=t=>Ka(t,Qb,H$),Wg=t=>Ka(t,i5,Qe),e5=t=>Ka(t,wb,bb),t5=t=>Ka(t,jb,Lf),Bg=t=>Ka(t,vb,Lf),n5=t=>Ka(t,yb,F$),Eo=t=>Ka(t,kb,I$),fe=t=>gb.test(t),qr=t=>Rs(t,Qb),a5=t=>Rs(t,jb),Hg=t=>Rs(t,vb),s5=t=>Rs(t,Sb),l5=t=>Rs(t,yb),qo=t=>Rs(t,kb,!0),r5=t=>Rs(t,wb,!0),Ka=(t,a,s)=>{const l=xb.exec(t);return l?l[1]?a(l[1]):s(l[2]):!1},Rs=(t,a,s=!1)=>{const l=gb.exec(t);return l?l[1]?a(l[1]):s:!1},vb=t=>t==="position"||t==="percentage",yb=t=>t==="image"||t==="url",Sb=t=>t==="length"||t==="size"||t==="bg-size",Qb=t=>t==="length",i5=t=>t==="number",jb=t=>t==="family-name",wb=t=>t==="number"||t==="weight",kb=t=>t==="shadow",o5=()=>{const t=ct("color"),a=ct("font"),s=ct("text"),l=ct("font-weight"),o=ct("tracking"),u=ct("leading"),d=ct("breakpoint"),O=ct("container"),m=ct("spacing"),p=ct("radius"),x=ct("shadow"),g=ct("inset-shadow"),b=ct("text-shadow"),v=ct("drop-shadow"),Q=ct("blur"),w=ct("perspective"),N=ct("aspect"),k=ct("ease"),P=ct("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],_=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],L=()=>[..._(),fe,Oe],C=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto","contain","none"],T=()=>[fe,Oe,m],G=()=>[Aa,"full","auto",...T()],V=()=>[Ea,"none","subgrid",fe,Oe],ae=()=>["auto",{span:["full",Ea,fe,Oe]},Ea,fe,Oe],ce=()=>[Ea,"auto",fe,Oe],oe=()=>["auto","min","max","fr",fe,Oe],ie=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...T()],H=()=>[Aa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...T()],E=()=>[Aa,"screen","full","dvw","lvw","svw","min","max","fit",...T()],le=()=>[Aa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...T()],ee=()=>[t,fe,Oe],we=()=>[..._(),Hg,Bg,{position:[fe,Oe]}],ve=()=>["no-repeat",{repeat:["","x","y","space","round"]}],be=()=>["auto","cover","contain",s5,J$,{size:[fe,Oe]}],Re=()=>[xO,qr,vs],B=()=>["","none","full",p,fe,Oe],ue=()=>["",Qe,qr,vs],Ce=()=>["solid","dashed","dotted","double"],Ot=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Ze=()=>[Qe,xO,Hg,Bg],nt=()=>["","none",Q,fe,Oe],bt=()=>["none",Qe,fe,Oe],yt=()=>["none",Qe,fe,Oe],Bt=()=>[Qe,fe,Oe],St=()=>[Aa,"full",...T()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fn],breakpoint:[Fn],color:[bb],container:[Fn],"drop-shadow":[Fn],ease:["in","out","in-out"],font:[K$],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fn],shadow:[Fn],spacing:["px",Qe],text:[Fn],"text-shadow":[Fn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Aa,Oe,fe,N]}],container:["container"],columns:[{columns:[Qe,Oe,fe,O]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"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:L()}],overflow:[{overflow:C()}],"overflow-x":[{"overflow-x":C()}],"overflow-y":[{"overflow-y":C()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:G()}],"inset-x":[{"inset-x":G()}],"inset-y":[{"inset-y":G()}],start:[{"inset-s":G(),start:G()}],end:[{"inset-e":G(),end:G()}],"inset-bs":[{"inset-bs":G()}],"inset-be":[{"inset-be":G()}],top:[{top:G()}],right:[{right:G()}],bottom:[{bottom:G()}],left:[{left:G()}],visibility:["visible","invisible","collapse"],z:[{z:[Ea,"auto",fe,Oe]}],basis:[{basis:[Aa,"full","auto",O,...T()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Qe,Aa,"auto","initial","none",Oe]}],grow:[{grow:["",Qe,fe,Oe]}],shrink:[{shrink:["",Qe,fe,Oe]}],order:[{order:[Ea,"first","last","none",fe,Oe]}],"grid-cols":[{"grid-cols":V()}],"col-start-end":[{col:ae()}],"col-start":[{"col-start":ce()}],"col-end":[{"col-end":ce()}],"grid-rows":[{"grid-rows":V()}],"row-start-end":[{row:ae()}],"row-start":[{"row-start":ce()}],"row-end":[{"row-end":ce()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":oe()}],"auto-rows":[{"auto-rows":oe()}],gap:[{gap:T()}],"gap-x":[{"gap-x":T()}],"gap-y":[{"gap-y":T()}],"justify-content":[{justify:[...ie(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...ie()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":ie()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:T()}],px:[{px:T()}],py:[{py:T()}],ps:[{ps:T()}],pe:[{pe:T()}],pbs:[{pbs:T()}],pbe:[{pbe:T()}],pt:[{pt:T()}],pr:[{pr:T()}],pb:[{pb:T()}],pl:[{pl:T()}],m:[{m:z()}],mx:[{mx:z()}],my:[{my:z()}],ms:[{ms:z()}],me:[{me:z()}],mbs:[{mbs:z()}],mbe:[{mbe:z()}],mt:[{mt:z()}],mr:[{mr:z()}],mb:[{mb:z()}],ml:[{ml:z()}],"space-x":[{"space-x":T()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":T()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],"inline-size":[{inline:["auto",...E()]}],"min-inline-size":[{"min-inline":["auto",...E()]}],"max-inline-size":[{"max-inline":["none",...E()]}],"block-size":[{block:["auto",...le()]}],"min-block-size":[{"min-block":["auto",...le()]}],"max-block-size":[{"max-block":["none",...le()]}],w:[{w:[O,"screen",...H()]}],"min-w":[{"min-w":[O,"screen","none",...H()]}],"max-w":[{"max-w":[O,"screen","none","prose",{screen:[d]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",s,qr,vs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[l,r5,e5]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",xO,Oe]}],"font-family":[{font:[a5,t5,a]}],"font-features":[{"font-features":[Oe]}],"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:[o,fe,Oe]}],"line-clamp":[{"line-clamp":[Qe,"none",fe,Wg]}],leading:[{leading:[u,...T()]}],"list-image":[{"list-image":["none",fe,Oe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",fe,Oe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ee()}],"text-color":[{text:ee()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ce(),"wavy"]}],"text-decoration-thickness":[{decoration:[Qe,"from-font","auto",fe,vs]}],"text-decoration-color":[{decoration:ee()}],"underline-offset":[{"underline-offset":[Qe,"auto",fe,Oe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",fe,Oe]}],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",fe,Oe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:we()}],"bg-repeat":[{bg:ve()}],"bg-size":[{bg:be()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ea,fe,Oe],radial:["",fe,Oe],conic:[Ea,fe,Oe]},l5,n5]}],"bg-color":[{bg:ee()}],"gradient-from-pos":[{from:Re()}],"gradient-via-pos":[{via:Re()}],"gradient-to-pos":[{to:Re()}],"gradient-from":[{from:ee()}],"gradient-via":[{via:ee()}],"gradient-to":[{to:ee()}],rounded:[{rounded:B()}],"rounded-s":[{"rounded-s":B()}],"rounded-e":[{"rounded-e":B()}],"rounded-t":[{"rounded-t":B()}],"rounded-r":[{"rounded-r":B()}],"rounded-b":[{"rounded-b":B()}],"rounded-l":[{"rounded-l":B()}],"rounded-ss":[{"rounded-ss":B()}],"rounded-se":[{"rounded-se":B()}],"rounded-ee":[{"rounded-ee":B()}],"rounded-es":[{"rounded-es":B()}],"rounded-tl":[{"rounded-tl":B()}],"rounded-tr":[{"rounded-tr":B()}],"rounded-br":[{"rounded-br":B()}],"rounded-bl":[{"rounded-bl":B()}],"border-w":[{border:ue()}],"border-w-x":[{"border-x":ue()}],"border-w-y":[{"border-y":ue()}],"border-w-s":[{"border-s":ue()}],"border-w-e":[{"border-e":ue()}],"border-w-bs":[{"border-bs":ue()}],"border-w-be":[{"border-be":ue()}],"border-w-t":[{"border-t":ue()}],"border-w-r":[{"border-r":ue()}],"border-w-b":[{"border-b":ue()}],"border-w-l":[{"border-l":ue()}],"divide-x":[{"divide-x":ue()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ue()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ce(),"hidden","none"]}],"divide-style":[{divide:[...Ce(),"hidden","none"]}],"border-color":[{border:ee()}],"border-color-x":[{"border-x":ee()}],"border-color-y":[{"border-y":ee()}],"border-color-s":[{"border-s":ee()}],"border-color-e":[{"border-e":ee()}],"border-color-bs":[{"border-bs":ee()}],"border-color-be":[{"border-be":ee()}],"border-color-t":[{"border-t":ee()}],"border-color-r":[{"border-r":ee()}],"border-color-b":[{"border-b":ee()}],"border-color-l":[{"border-l":ee()}],"divide-color":[{divide:ee()}],"outline-style":[{outline:[...Ce(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Qe,fe,Oe]}],"outline-w":[{outline:["",Qe,qr,vs]}],"outline-color":[{outline:ee()}],shadow:[{shadow:["","none",x,qo,Eo]}],"shadow-color":[{shadow:ee()}],"inset-shadow":[{"inset-shadow":["none",g,qo,Eo]}],"inset-shadow-color":[{"inset-shadow":ee()}],"ring-w":[{ring:ue()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ee()}],"ring-offset-w":[{"ring-offset":[Qe,vs]}],"ring-offset-color":[{"ring-offset":ee()}],"inset-ring-w":[{"inset-ring":ue()}],"inset-ring-color":[{"inset-ring":ee()}],"text-shadow":[{"text-shadow":["none",b,qo,Eo]}],"text-shadow-color":[{"text-shadow":ee()}],opacity:[{opacity:[Qe,fe,Oe]}],"mix-blend":[{"mix-blend":[...Ot(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ot()}],"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":[Qe]}],"mask-image-linear-from-pos":[{"mask-linear-from":Ze()}],"mask-image-linear-to-pos":[{"mask-linear-to":Ze()}],"mask-image-linear-from-color":[{"mask-linear-from":ee()}],"mask-image-linear-to-color":[{"mask-linear-to":ee()}],"mask-image-t-from-pos":[{"mask-t-from":Ze()}],"mask-image-t-to-pos":[{"mask-t-to":Ze()}],"mask-image-t-from-color":[{"mask-t-from":ee()}],"mask-image-t-to-color":[{"mask-t-to":ee()}],"mask-image-r-from-pos":[{"mask-r-from":Ze()}],"mask-image-r-to-pos":[{"mask-r-to":Ze()}],"mask-image-r-from-color":[{"mask-r-from":ee()}],"mask-image-r-to-color":[{"mask-r-to":ee()}],"mask-image-b-from-pos":[{"mask-b-from":Ze()}],"mask-image-b-to-pos":[{"mask-b-to":Ze()}],"mask-image-b-from-color":[{"mask-b-from":ee()}],"mask-image-b-to-color":[{"mask-b-to":ee()}],"mask-image-l-from-pos":[{"mask-l-from":Ze()}],"mask-image-l-to-pos":[{"mask-l-to":Ze()}],"mask-image-l-from-color":[{"mask-l-from":ee()}],"mask-image-l-to-color":[{"mask-l-to":ee()}],"mask-image-x-from-pos":[{"mask-x-from":Ze()}],"mask-image-x-to-pos":[{"mask-x-to":Ze()}],"mask-image-x-from-color":[{"mask-x-from":ee()}],"mask-image-x-to-color":[{"mask-x-to":ee()}],"mask-image-y-from-pos":[{"mask-y-from":Ze()}],"mask-image-y-to-pos":[{"mask-y-to":Ze()}],"mask-image-y-from-color":[{"mask-y-from":ee()}],"mask-image-y-to-color":[{"mask-y-to":ee()}],"mask-image-radial":[{"mask-radial":[fe,Oe]}],"mask-image-radial-from-pos":[{"mask-radial-from":Ze()}],"mask-image-radial-to-pos":[{"mask-radial-to":Ze()}],"mask-image-radial-from-color":[{"mask-radial-from":ee()}],"mask-image-radial-to-color":[{"mask-radial-to":ee()}],"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":_()}],"mask-image-conic-pos":[{"mask-conic":[Qe]}],"mask-image-conic-from-pos":[{"mask-conic-from":Ze()}],"mask-image-conic-to-pos":[{"mask-conic-to":Ze()}],"mask-image-conic-from-color":[{"mask-conic-from":ee()}],"mask-image-conic-to-color":[{"mask-conic-to":ee()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:we()}],"mask-repeat":[{mask:ve()}],"mask-size":[{mask:be()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",fe,Oe]}],filter:[{filter:["","none",fe,Oe]}],blur:[{blur:nt()}],brightness:[{brightness:[Qe,fe,Oe]}],contrast:[{contrast:[Qe,fe,Oe]}],"drop-shadow":[{"drop-shadow":["","none",v,qo,Eo]}],"drop-shadow-color":[{"drop-shadow":ee()}],grayscale:[{grayscale:["",Qe,fe,Oe]}],"hue-rotate":[{"hue-rotate":[Qe,fe,Oe]}],invert:[{invert:["",Qe,fe,Oe]}],saturate:[{saturate:[Qe,fe,Oe]}],sepia:[{sepia:["",Qe,fe,Oe]}],"backdrop-filter":[{"backdrop-filter":["","none",fe,Oe]}],"backdrop-blur":[{"backdrop-blur":nt()}],"backdrop-brightness":[{"backdrop-brightness":[Qe,fe,Oe]}],"backdrop-contrast":[{"backdrop-contrast":[Qe,fe,Oe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Qe,fe,Oe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Qe,fe,Oe]}],"backdrop-invert":[{"backdrop-invert":["",Qe,fe,Oe]}],"backdrop-opacity":[{"backdrop-opacity":[Qe,fe,Oe]}],"backdrop-saturate":[{"backdrop-saturate":[Qe,fe,Oe]}],"backdrop-sepia":[{"backdrop-sepia":["",Qe,fe,Oe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":T()}],"border-spacing-x":[{"border-spacing-x":T()}],"border-spacing-y":[{"border-spacing-y":T()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",fe,Oe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Qe,"initial",fe,Oe]}],ease:[{ease:["linear","initial",k,fe,Oe]}],delay:[{delay:[Qe,fe,Oe]}],animate:[{animate:["none",P,fe,Oe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,fe,Oe]}],"perspective-origin":[{"perspective-origin":L()}],rotate:[{rotate:bt()}],"rotate-x":[{"rotate-x":bt()}],"rotate-y":[{"rotate-y":bt()}],"rotate-z":[{"rotate-z":bt()}],scale:[{scale:yt()}],"scale-x":[{"scale-x":yt()}],"scale-y":[{"scale-y":yt()}],"scale-z":[{"scale-z":yt()}],"scale-3d":["scale-3d"],skew:[{skew:Bt()}],"skew-x":[{"skew-x":Bt()}],"skew-y":[{"skew-y":Bt()}],transform:[{transform:[fe,Oe,"","none","gpu","cpu"]}],"transform-origin":[{origin:L()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:St()}],"translate-x":[{"translate-x":St()}],"translate-y":[{"translate-y":St()}],"translate-z":[{"translate-z":St()}],"translate-none":["translate-none"],accent:[{accent:ee()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ee()}],"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",fe,Oe]}],"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":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mbs":[{"scroll-mbs":T()}],"scroll-mbe":[{"scroll-mbe":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pbs":[{"scroll-pbs":T()}],"scroll-pbe":[{"scroll-pbe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"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",fe,Oe]}],fill:[{fill:["none",...ee()]}],"stroke-w":[{stroke:[Qe,qr,vs,Wg]}],stroke:[{stroke:["none",...ee()]}],"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"]}},c5=Y$(o5);function re(...t){return c5(v$(t))}function u5({children:t}){return i.jsx(h$,{delayDuration:300,children:t})}function Ig({children:t,content:a,side:s="top",className:l}){return a?i.jsxs(m$,{children:[i.jsx(p$,{asChild:!0,children:t}),i.jsx(x$,{children:i.jsxs(g$,{side:s,sideOffset:6,className:re("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",l),children:[a,i.jsx(b$,{className:"fill-surface-4"})]})})]}):t}/**
29
+ `+x.trim(),timestamp:Date.now()}:v.push({from:"agent",text:x.trim(),timestamp:Date.now()}),b[m]=v.slice(-100),t({chatHistory:b}),Ql("groove:chatHistory",b)}if(g&&g.trim()){const b={...a().activityLog};b[m]||(b[m]=[]),b[m]=[...b[m].slice(-200),{timestamp:Date.now(),text:g.trim(),type:p.type,subtype:"tool"}],t({activityLog:b}),Ql("groove:activityLog",b)}break}case"agent:exit":{const m=a().agents.find(v=>v.id===o.agentId),p=(m==null?void 0:m.name)||o.agentId,x=o.status==="killed"||o.code===143||o.code===137,g=o.status==="completed"?`${p} completed`:x?`${p} stopped`:`${p} crashed (exit ${o.code})`,b=o.status==="completed"?"success":x?"info":"warning";a().addToast(b,g,o.error?o.error.slice(0,200):void 0),o.error&&o.agentId&&a().addChatMessage(o.agentId,"system",`Crashed: ${o.error}`),(m==null?void 0:m.role)==="planner"&&o.status==="completed"&&setTimeout(()=>a().checkRecommendedTeam(),1e3);break}case"phase2:spawned":a().addToast("info",`QC agent ${o.name} auto-spawned`,"Auditing phase 1 work");break;case"phase2:failed":a().addToast("error","QC agent failed to spawn",o.error||"Unknown error");break;case"rotation:start":a().addToast("info",`Rotating ${o.agentName}...`);break;case"rotation:complete":{a().addToast("success",`Rotated ${o.agentName}`,`Saved ${o.tokensSaved} tokens`);const m=a().detailPanel;(m==null?void 0:m.type)==="agent"&&m.agentId===o.oldAgentId&&o.newAgentId&&t(p=>{var b,v;const x={...p.chatHistory},g={...p.tokenTimeline};return(b=x[o.oldAgentId])!=null&&b.length&&(x[o.newAgentId]=[...x[o.oldAgentId]]),(v=g[o.oldAgentId])!=null&&v.length&&(g[o.newAgentId]=[...g[o.oldAgentId]]),{chatHistory:x,tokenTimeline:g,detailPanel:{type:"agent",agentId:o.newAgentId}}});break}case"rotation:failed":a().addToast("error","Rotation failed",o.error);break;case"file:changed":{const m=a().editorRecentSaves[o.path];if(m&&Date.now()-m<2e3)break;t(p=>({editorChangedFiles:{...p.editorChangedFiles,[o.path]:o.timestamp}}));break}case"team:created":case"team:deleted":case"team:updated":a().fetchTeams();break;case"approval:request":t(m=>({pendingApprovals:[...m.pendingApprovals,o.data]})),a().addToast("warning",`Approval needed: ${((u=o.data)==null?void 0:u.agentName)||"agent"}`,(O=(d=o.data)==null?void 0:d.action)==null?void 0:O.description);break;case"approval:resolved":{const m=o.data;t(p=>({pendingApprovals:p.pendingApprovals.filter(x=>x.id!==m.id),resolvedApprovals:[m,...p.resolvedApprovals].slice(0,200)}));break}case"conflict:detected":a().addToast("error",`Scope conflict: ${o.agentName||"agent"}`,o.filePath?`File: ${o.filePath}`:void 0);break;case"qc:activated":a().addToast("info","QC agent activated",`${o.agentCount||"4+"} agents running`);break;case"journalist:cycle":t({journalistStatus:o.data||null});break;case"schedule:execute":a().addToast("info",`Scheduled agent spawned: ${o.name||o.role||"agent"}`);break;case"gateway:status":t({gateways:o.data||[]});break}},s.onclose=()=>{t({connected:!1,hydrated:!1,ws:null,daemonHost:null,tunneled:!1}),setTimeout(()=>a().connect(),2e3)},s.onerror=()=>s.close()},setActiveView(s){t({activeView:s})},async fetchTeams(){try{const s=await te.get("/teams"),l=s.teams||[],o=s.defaultTeamId,{activeTeamId:u}=a(),O=l.map(m=>m.id).includes(u)?u:o;t({teams:l,activeTeamId:O}),O&&localStorage.setItem("groove:activeTeamId",O)}catch{}},switchTeam(s){t({activeTeamId:s,detailPanel:null}),localStorage.setItem("groove:activeTeamId",s)},async createTeam(s,l){try{const o={name:s};l&&(o.workingDir=l);const u=await te.post("/teams",o);return t({activeTeamId:u.id}),localStorage.setItem("groove:activeTeamId",u.id),a().addToast("success",`Team "${s}" created`),u}catch(o){throw a().addToast("error","Failed to create team",o.message),o}},async deleteTeam(s){const l=a().teams.find(o=>o.id===s);if(l!=null&&l.isDefault){a().addToast("warning","Cannot delete the default team");return}try{await te.delete(`/teams/${s}`),a().addToast("info",`Team "${l==null?void 0:l.name}" deleted`)}catch(o){a().addToast("error","Failed to delete team",o.message)}},async renameTeam(s,l){try{const o=await te.patch(`/teams/${s}`,{name:l});return t(u=>({teams:u.teams.map(d=>d.id===s?o:d)})),o}catch(o){throw a().addToast("error","Failed to rename team",o.message),o}},openDetail(s){t({detailPanel:s})},closeDetail(){t({detailPanel:null})},selectAgent(s){t({detailPanel:{type:"agent",agentId:s}})},clearSelection(){t({detailPanel:null})},toggleCommandPalette(){t(s=>({commandPaletteOpen:!s.commandPaletteOpen}))},setDetailPanelWidth(s){t({detailPanelWidth:s}),localStorage.setItem("groove:detailWidth",String(s))},setTerminalVisible(s){t({terminalVisible:s}),localStorage.setItem("groove:terminalVisible",String(s))},setTerminalHeight(s){t({terminalHeight:s}),localStorage.setItem("groove:terminalHeight",String(s))},setTerminalFullHeight(s){t({terminalFullHeight:s})},addToast(s,l,o){const u=++lw;t(d=>({toasts:[...d.toasts,{id:u,type:s,message:l,detail:o}]}))},removeToast(s){t(l=>({toasts:l.toasts.filter(o=>o.id!==s)}))},async checkMarketplaceAuth(){try{const s=await te.get("/auth/status");t({marketplaceAuthenticated:s.authenticated||!1,marketplaceUser:s.user||null})}catch{t({marketplaceAuthenticated:!1,marketplaceUser:null})}},async marketplaceLogin(){try{const s=await te.get("/auth/login-url");s.url&&window.open(s.url,"_blank");const l=setInterval(async()=>{var o,u;try{const d=await te.get("/auth/status");d.authenticated&&(clearInterval(l),t({marketplaceAuthenticated:!0,marketplaceUser:d.user}),a().addToast("success",`Signed in as ${((o=d.user)==null?void 0:o.displayName)||((u=d.user)==null?void 0:u.id)||"user"}`))}catch{}},2e3);setTimeout(()=>clearInterval(l),3e5)}catch(s){a().addToast("error","Login failed",s.message)}},async marketplaceLogout(){try{await te.post("/auth/logout"),t({marketplaceAuthenticated:!1,marketplaceUser:null}),a().addToast("info","Signed out of marketplace")}catch(s){a().addToast("error","Logout failed",s.message)}},async marketplaceCheckout(s){try{const l=await te.post("/auth/checkout",{skillId:s});return l.url&&window.open(l.url,"_blank"),l}catch(l){throw a().addToast("error","Checkout failed",l.message),l}},async fetchApprovals(){try{const s=await te.get("/approvals");t({pendingApprovals:s.pending||[],resolvedApprovals:s.resolved||[]})}catch{}},async approveRequest(s){try{await te.post(`/approvals/${s}/approve`),t(l=>({pendingApprovals:l.pendingApprovals.filter(o=>o.id!==s)})),a().addToast("success","Approved")}catch(l){a().addToast("error","Approve failed",l.message)}},async rejectRequest(s,l=""){try{await te.post(`/approvals/${s}/reject`,{reason:l}),t(o=>({pendingApprovals:o.pendingApprovals.filter(u=>u.id!==s)})),a().addToast("info","Rejected")}catch(o){a().addToast("error","Reject failed",o.message)}},async checkRecommendedTeam(){var s;try{const l=await te.get("/recommended-team");l&&((s=l.agents)!=null&&s.length)?t({recommendedTeam:l}):t({recommendedTeam:null})}catch{t({recommendedTeam:null})}},async launchRecommendedTeam(){try{t({recommendedTeam:null}),a().addToast("info","Launching team...");const s=await te.post("/recommended-team/launch"),l=[s.phase2Pending?`${s.phase2Pending} QC queued`:"",s.projectDir?`→ ${s.projectDir}/`:""].filter(Boolean).join(" · ");return a().addToast("success",`Launched ${s.launched} agents`,l||void 0),te.post("/cleanup").catch(()=>{}),s}catch(s){throw a().addToast("error","Launch failed",s.message),s}},async fetchJournalist(){try{const s=await te.get("/journalist");return t({journalistStatus:s}),s}catch{return null}},async triggerJournalistCycle(){try{const s=await te.post("/journalist/cycle");return a().addToast("success","Synthesis cycle triggered"),t({journalistStatus:s}),s}catch(s){throw a().addToast("error","Synthesis failed",s.message),s}},async spawnAgent(s){try{const l=a().activeTeamId,o=await te.post("/agents",{...s,teamId:l});return a().addToast("success",`Spawned ${o.name}`),o}catch(l){throw a().addToast("error","Spawn failed",l.message),l}},async killAgent(s,l=!1){try{await te.delete(`/agents/${s}?purge=${l}`)}catch(o){a().addToast("error","Kill failed",o.message)}},async rotateAgent(s){try{return await te.post(`/agents/${s}/rotate`)}catch(l){throw a().addToast("error","Rotation failed",l.message),l}},async fetchProviders(){return te.get("/providers")},addChatMessage(s,l,o,u=!1){t(d=>{const O={...d.chatHistory};return O[s]||(O[s]=[]),O[s]=[...O[s].slice(-100),{from:l,text:o,timestamp:Date.now(),isQuery:u}],Ql("groove:chatHistory",O),{chatHistory:O}})},async instructAgent(s,l){var d,O;const o=a().agents.find(m=>m.id===s);if(o&&(o.status==="running"||o.status==="starting")){a().addChatMessage(s,"user",l,!1);try{const m=await te.post(`/agents/${s}/query`,{message:l});return a().addChatMessage(s,"agent",m.response),m}catch(m){throw a().addChatMessage(s,"system",`failed: ${m.message}`),m}}a().addChatMessage(s,"user",l,!1);try{const m=await te.post(`/agents/${s}/instruct`,{message:l});for(const p of["chatHistory","activityLog","tokenTimeline"]){const x=a()[p][s];x!=null&&x.length&&t(g=>({[p]:{...g[p],[m.id]:[...x]}}))}return(d=a().chatHistory[s])!=null&&d.length&&Ql("groove:chatHistory",a().chatHistory),(O=a().activityLog[s])!=null&&O.length&&Ql("groove:activityLog",a().activityLog),a().selectAgent(m.id),m}catch(m){throw a().addChatMessage(s,"system",`failed: ${m.message}`),m}},async queryAgent(s,l){a().addChatMessage(s,"user",l,!0);try{const o=await te.post(`/agents/${s}/query`,{message:l});return a().addChatMessage(s,"agent",o.response),o}catch(o){throw a().addChatMessage(s,"system",`query failed: ${o.message}`),o}},async openFile(s){var u;if(a().editorFiles[s]||a().editorOpenTabs.includes(s)){t(d=>({editorActiveFile:s,editorOpenTabs:d.editorOpenTabs.includes(s)?d.editorOpenTabs:[...d.editorOpenTabs,s]}));return}const l=(u=s.split(".").pop())==null?void 0:u.toLowerCase();if(["png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","mp4","webm","mov","avi","mkv","ogv"].includes(l)){t(d=>({editorActiveFile:s,editorOpenTabs:[...d.editorOpenTabs,s]}));return}try{const d=await te.get(`/files/read?path=${encodeURIComponent(s)}`);if(d.binary){a().addToast("warning","Binary file — cannot open");return}t(m=>({editorFiles:{...m.editorFiles,[s]:{content:d.content,originalContent:d.content,language:d.language,loadedAt:Date.now()}},editorActiveFile:s,editorOpenTabs:m.editorOpenTabs.includes(s)?m.editorOpenTabs:[...m.editorOpenTabs,s]}));const O=a().ws;(O==null?void 0:O.readyState)===1&&O.send(JSON.stringify({type:"editor:watch",path:s}))}catch(d){a().addToast("error","Failed to open file",d.message)}},closeFile(s){t(o=>{const u=o.editorOpenTabs.filter(p=>p!==s),d={...o.editorFiles};delete d[s];const O={...o.editorChangedFiles};delete O[s];let m=o.editorActiveFile;if(m===s){const p=o.editorOpenTabs.indexOf(s);m=u[Math.min(p,u.length-1)]||null}return{editorOpenTabs:u,editorFiles:d,editorChangedFiles:O,editorActiveFile:m}});const l=a().ws;(l==null?void 0:l.readyState)===1&&l.send(JSON.stringify({type:"editor:unwatch",path:s}))},setActiveFile(s){t({editorActiveFile:s})},updateFileContent(s,l){t(o=>({editorFiles:{...o.editorFiles,[s]:{...o.editorFiles[s],content:l}}}))},async saveFile(s){const l=a().editorFiles[s];if(l)try{await te.post("/files/write",{path:s,content:l.content}),t(o=>({editorFiles:{...o.editorFiles,[s]:{...o.editorFiles[s],originalContent:l.content}},editorChangedFiles:(()=>{const u={...o.editorChangedFiles};return delete u[s],u})(),editorRecentSaves:{...o.editorRecentSaves,[s]:Date.now()}})),a().addToast("success","File saved")}catch(o){a().addToast("error","Save failed",o.message)}},async reloadFile(s){try{const l=await te.get(`/files/read?path=${encodeURIComponent(s)}`);if(l.binary)return;t(o=>({editorFiles:{...o.editorFiles,[s]:{content:l.content,originalContent:l.content,language:l.language,loadedAt:Date.now()}},editorChangedFiles:(()=>{const u={...o.editorChangedFiles};return delete u[s],u})()}))}catch{}},dismissFileChange(s){t(l=>{const o={...l.editorChangedFiles};return delete o[s],{editorChangedFiles:o}})},async fetchTreeDir(s){try{const l=await te.get(`/files/tree?path=${encodeURIComponent(s)}`);t(o=>({editorTreeCache:{...o.editorTreeCache,[s]:l.entries}}))}catch{}},async createFile(s){try{await te.post("/files/create",{path:s});const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),a().addToast("success","File created"),!0}catch(l){return a().addToast("error","Create failed",l.message),!1}},async createDir(s){try{await te.post("/files/mkdir",{path:s});const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),a().addToast("success","Folder created"),!0}catch(l){return a().addToast("error","Create failed",l.message),!1}},async deleteFile(s){try{await te.delete(`/files/delete?path=${encodeURIComponent(s)}`),a().editorOpenTabs.includes(s)&&a().closeFile(s);const l=s.includes("/")?s.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(l),t(o=>{const u={...o.editorTreeCache};return delete u[s],{editorTreeCache:u}}),a().addToast("success","Deleted"),!0}catch(l){return a().addToast("error","Delete failed",l.message),!1}},async renameFile(s,l){try{await te.post("/files/rename",{oldPath:s,newPath:l}),t(d=>{const O=d.editorOpenTabs.map(x=>x===s?l:x),m={...d.editorFiles};m[s]&&(m[l]=m[s],delete m[s]);const p=d.editorActiveFile===s?l:d.editorActiveFile;return{editorOpenTabs:O,editorFiles:m,editorActiveFile:p}});const o=s.includes("/")?s.split("/").slice(0,-1).join("/"):"",u=l.includes("/")?l.split("/").slice(0,-1).join("/"):"";return await a().fetchTreeDir(o),u!==o&&await a().fetchTreeDir(u),a().addToast("success","Renamed"),!0}catch(o){return a().addToast("error","Rename failed",o.message),!1}}}));function rw(t){y.useEffect(()=>{function a(s){for(const l of t){const o=l.meta?s.metaKey||s.ctrlKey:!0,u=l.shift?s.shiftKey:!s.shiftKey;if(s.key.toLowerCase()===l.key.toLowerCase()&&o&&u){s.preventDefault(),l.handler();return}}}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[t])}function Ee(t,a,{checkForDefaultPrevented:s=!0}={}){return function(o){if(t==null||t(o),s===!1||!o.defaultPrevented)return a==null?void 0:a(o)}}function Pg(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function P0(...t){return a=>{let s=!1;const l=t.map(o=>{const u=Pg(o,a);return!s&&typeof u=="function"&&(s=!0),u});if(s)return()=>{for(let o=0;o<l.length;o++){const u=l[o];typeof u=="function"?u():Pg(t[o],null)}}}}function it(...t){return y.useCallback(P0(...t),t)}function iw(t,a){const s=y.createContext(a),l=u=>{const{children:d,...O}=u,m=y.useMemo(()=>O,Object.values(O));return i.jsx(s.Provider,{value:m,children:d})};l.displayName=t+"Provider";function o(u){const d=y.useContext(s);if(d)return d;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${t}\``)}return[l,o]}function zs(t,a=[]){let s=[];function l(u,d){const O=y.createContext(d),m=s.length;s=[...s,d];const p=g=>{var k;const{scope:b,children:v,...Q}=g,w=((k=b==null?void 0:b[t])==null?void 0:k[m])||O,N=y.useMemo(()=>Q,Object.values(Q));return i.jsx(w.Provider,{value:N,children:v})};p.displayName=u+"Provider";function x(g,b){var w;const v=((w=b==null?void 0:b[t])==null?void 0:w[m])||O,Q=y.useContext(v);if(Q)return Q;if(d!==void 0)return d;throw new Error(`\`${g}\` must be used within \`${u}\``)}return[p,x]}const o=()=>{const u=s.map(d=>y.createContext(d));return function(O){const m=(O==null?void 0:O[t])||u;return y.useMemo(()=>({[`__scope${t}`]:{...O,[t]:m}}),[O,m])}};return o.scopeName=t,[l,ow(o,...a)]}function ow(...t){const a=t[0];if(t.length===1)return a;const s=()=>{const l=t.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(u){const d=l.reduce((O,{useScope:m,scopeName:p})=>{const g=m(u)[`__scope${p}`];return{...O,...g}},{});return y.useMemo(()=>({[`__scope${a.scopeName}`]:d}),[d])}};return s.scopeName=a.scopeName,s}function rc(t){const a=cw(t),s=y.forwardRef((l,o)=>{const{children:u,...d}=l,O=y.Children.toArray(u),m=O.find(dw);if(m){const p=m.props.children,x=O.map(g=>g===m?y.Children.count(p)>1?y.Children.only(null):y.isValidElement(p)?p.props.children:null:g);return i.jsx(a,{...d,ref:o,children:y.isValidElement(p)?y.cloneElement(p,void 0,x):null})}return i.jsx(a,{...d,ref:o,children:u})});return s.displayName=`${t}.Slot`,s}function cw(t){const a=y.forwardRef((s,l)=>{const{children:o,...u}=s;if(y.isValidElement(o)){const d=fw(o),O=Ow(u,o.props);return o.type!==y.Fragment&&(O.ref=l?P0(l,d):d),y.cloneElement(o,O)}return y.Children.count(o)>1?y.Children.only(null):null});return a.displayName=`${t}.SlotClone`,a}var z0=Symbol("radix.slottable");function uw(t){const a=({children:s})=>i.jsx(i.Fragment,{children:s});return a.displayName=`${t}.Slottable`,a.__radixId=z0,a}function dw(t){return y.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===z0}function Ow(t,a){const s={...a};for(const l in a){const o=t[l],u=a[l];/^on[A-Z]/.test(l)?o&&u?s[l]=(...O)=>{const m=u(...O);return o(...O),m}:o&&(s[l]=o):l==="style"?s[l]={...o,...u}:l==="className"&&(s[l]=[o,u].filter(Boolean).join(" "))}return{...t,...s}}function fw(t){var l,o;let a=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?t.ref:(a=(o=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:o.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}var hw=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Be=hw.reduce((t,a)=>{const s=rc(`Primitive.${a}`),l=y.forwardRef((o,u)=>{const{asChild:d,...O}=o,m=d?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(m,{...O,ref:u})});return l.displayName=`Primitive.${a}`,{...t,[a]:l}},{});function mw(t,a){t&&S0.flushSync(()=>t.dispatchEvent(a))}function Rt(t){const a=y.useRef(t);return y.useEffect(()=>{a.current=t}),y.useMemo(()=>(...s)=>{var l;return(l=a.current)==null?void 0:l.call(a,...s)},[])}function pw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t);y.useEffect(()=>{const l=o=>{o.key==="Escape"&&s(o)};return a.addEventListener("keydown",l,{capture:!0}),()=>a.removeEventListener("keydown",l,{capture:!0})},[s,a])}var xw="DismissableLayer",af="dismissableLayer.update",gw="dismissableLayer.pointerDownOutside",bw="dismissableLayer.focusOutside",zg,R0=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),zf=y.forwardRef((t,a)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:l,onPointerDownOutside:o,onFocusOutside:u,onInteractOutside:d,onDismiss:O,...m}=t,p=y.useContext(R0),[x,g]=y.useState(null),b=(x==null?void 0:x.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=y.useState({}),Q=it(a,X=>g(X)),w=Array.from(p.layers),[N]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),k=w.indexOf(N),P=x?w.indexOf(x):-1,$=p.layersWithOutsidePointerEventsDisabled.size>0,_=P>=k,L=Sw(X=>{const T=X.target,G=[...p.branches].some(V=>V.contains(T));!_||G||(o==null||o(X),d==null||d(X),X.defaultPrevented||O==null||O())},b),C=Qw(X=>{const T=X.target;[...p.branches].some(V=>V.contains(T))||(u==null||u(X),d==null||d(X),X.defaultPrevented||O==null||O())},b);return pw(X=>{P===p.layers.size-1&&(l==null||l(X),!X.defaultPrevented&&O&&(X.preventDefault(),O()))},b),y.useEffect(()=>{if(x)return s&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(zg=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(x)),p.layers.add(x),Rg(),()=>{s&&p.layersWithOutsidePointerEventsDisabled.size===1&&(b.body.style.pointerEvents=zg)}},[x,b,s,p]),y.useEffect(()=>()=>{x&&(p.layers.delete(x),p.layersWithOutsidePointerEventsDisabled.delete(x),Rg())},[x,p]),y.useEffect(()=>{const X=()=>v({});return document.addEventListener(af,X),()=>document.removeEventListener(af,X)},[]),i.jsx(Be.div,{...m,ref:Q,style:{pointerEvents:$?_?"auto":"none":void 0,...t.style},onFocusCapture:Ee(t.onFocusCapture,C.onFocusCapture),onBlurCapture:Ee(t.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Ee(t.onPointerDownCapture,L.onPointerDownCapture)})});zf.displayName=xw;var vw="DismissableLayerBranch",yw=y.forwardRef((t,a)=>{const s=y.useContext(R0),l=y.useRef(null),o=it(a,l);return y.useEffect(()=>{const u=l.current;if(u)return s.branches.add(u),()=>{s.branches.delete(u)}},[s.branches]),i.jsx(Be.div,{...t,ref:o})});yw.displayName=vw;function Sw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t),l=y.useRef(!1),o=y.useRef(()=>{});return y.useEffect(()=>{const u=O=>{if(O.target&&!l.current){let m=function(){C0(gw,s,p,{discrete:!0})};const p={originalEvent:O};O.pointerType==="touch"?(a.removeEventListener("click",o.current),o.current=m,a.addEventListener("click",o.current,{once:!0})):m()}else a.removeEventListener("click",o.current);l.current=!1},d=window.setTimeout(()=>{a.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(d),a.removeEventListener("pointerdown",u),a.removeEventListener("click",o.current)}},[a,s]),{onPointerDownCapture:()=>l.current=!0}}function Qw(t,a=globalThis==null?void 0:globalThis.document){const s=Rt(t),l=y.useRef(!1);return y.useEffect(()=>{const o=u=>{u.target&&!l.current&&C0(bw,s,{originalEvent:u},{discrete:!1})};return a.addEventListener("focusin",o),()=>a.removeEventListener("focusin",o)},[a,s]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Rg(){const t=new CustomEvent(af);document.dispatchEvent(t)}function C0(t,a,s,{discrete:l}){const o=s.originalEvent.target,u=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:s});a&&o.addEventListener(t,a,{once:!0}),l?mw(o,u):o.dispatchEvent(u)}var la=globalThis!=null&&globalThis.document?y.useLayoutEffect:()=>{},jw=b0[" useId ".trim().toString()]||(()=>{}),ww=0;function kl(t){const[a,s]=y.useState(jw());return la(()=>{s(l=>l??String(ww++))},[t]),t||(a?`radix-${a}`:"")}const kw=["top","right","bottom","left"],Wa=Math.min,Dt=Math.max,ic=Math.round,Zo=Math.floor,Tn=t=>({x:t,y:t}),$w={left:"right",right:"left",bottom:"top",top:"bottom"};function sf(t,a,s){return Dt(t,Wa(a,s))}function ra(t,a){return typeof t=="function"?t(a):t}function ia(t){return t.split("-")[0]}function Ml(t){return t.split("-")[1]}function Rf(t){return t==="x"?"y":"x"}function Cf(t){return t==="y"?"height":"width"}function $n(t){const a=t[0];return a==="t"||a==="b"?"y":"x"}function Xf(t){return Rf($n(t))}function Tw(t,a,s){s===void 0&&(s=!1);const l=Ml(t),o=Xf(t),u=Cf(o);let d=o==="x"?l===(s?"end":"start")?"right":"left":l==="start"?"bottom":"top";return a.reference[u]>a.floating[u]&&(d=oc(d)),[d,oc(d)]}function Nw(t){const a=oc(t);return[lf(t),a,lf(a)]}function lf(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const Cg=["left","right"],Xg=["right","left"],Pw=["top","bottom"],zw=["bottom","top"];function Rw(t,a,s){switch(t){case"top":case"bottom":return s?a?Xg:Cg:a?Cg:Xg;case"left":case"right":return a?Pw:zw;default:return[]}}function Cw(t,a,s,l){const o=Ml(t);let u=Rw(ia(t),s==="start",l);return o&&(u=u.map(d=>d+"-"+o),a&&(u=u.concat(u.map(lf)))),u}function oc(t){const a=ia(t);return $w[a]+t.slice(a.length)}function Xw(t){return{top:0,right:0,bottom:0,left:0,...t}}function X0(t){return typeof t!="number"?Xw(t):{top:t,right:t,bottom:t,left:t}}function cc(t){const{x:a,y:s,width:l,height:o}=t;return{width:l,height:o,top:s,left:a,right:a+l,bottom:s+o,x:a,y:s}}function _g(t,a,s){let{reference:l,floating:o}=t;const u=$n(a),d=Xf(a),O=Cf(d),m=ia(a),p=u==="y",x=l.x+l.width/2-o.width/2,g=l.y+l.height/2-o.height/2,b=l[O]/2-o[O]/2;let v;switch(m){case"top":v={x,y:l.y-o.height};break;case"bottom":v={x,y:l.y+l.height};break;case"right":v={x:l.x+l.width,y:g};break;case"left":v={x:l.x-o.width,y:g};break;default:v={x:l.x,y:l.y}}switch(Ml(a)){case"start":v[d]-=b*(s&&p?-1:1);break;case"end":v[d]+=b*(s&&p?-1:1);break}return v}async function _w(t,a){var s;a===void 0&&(a={});const{x:l,y:o,platform:u,rects:d,elements:O,strategy:m}=t,{boundary:p="clippingAncestors",rootBoundary:x="viewport",elementContext:g="floating",altBoundary:b=!1,padding:v=0}=ra(a,t),Q=X0(v),N=O[b?g==="floating"?"reference":"floating":g],k=cc(await u.getClippingRect({element:(s=await(u.isElement==null?void 0:u.isElement(N)))==null||s?N:N.contextElement||await(u.getDocumentElement==null?void 0:u.getDocumentElement(O.floating)),boundary:p,rootBoundary:x,strategy:m})),P=g==="floating"?{x:l,y:o,width:d.floating.width,height:d.floating.height}:d.reference,$=await(u.getOffsetParent==null?void 0:u.getOffsetParent(O.floating)),_=await(u.isElement==null?void 0:u.isElement($))?await(u.getScale==null?void 0:u.getScale($))||{x:1,y:1}:{x:1,y:1},L=cc(u.convertOffsetParentRelativeRectToViewportRelativeRect?await u.convertOffsetParentRelativeRectToViewportRelativeRect({elements:O,rect:P,offsetParent:$,strategy:m}):P);return{top:(k.top-L.top+Q.top)/_.y,bottom:(L.bottom-k.bottom+Q.bottom)/_.y,left:(k.left-L.left+Q.left)/_.x,right:(L.right-k.right+Q.right)/_.x}}const Zw=50,Aw=async(t,a,s)=>{const{placement:l="bottom",strategy:o="absolute",middleware:u=[],platform:d}=s,O=d.detectOverflow?d:{...d,detectOverflow:_w},m=await(d.isRTL==null?void 0:d.isRTL(a));let p=await d.getElementRects({reference:t,floating:a,strategy:o}),{x,y:g}=_g(p,l,m),b=l,v=0;const Q={};for(let w=0;w<u.length;w++){const N=u[w];if(!N)continue;const{name:k,fn:P}=N,{x:$,y:_,data:L,reset:C}=await P({x,y:g,initialPlacement:l,placement:b,strategy:o,middlewareData:Q,rects:p,platform:O,elements:{reference:t,floating:a}});x=$??x,g=_??g,Q[k]={...Q[k],...L},C&&v<Zw&&(v++,typeof C=="object"&&(C.placement&&(b=C.placement),C.rects&&(p=C.rects===!0?await d.getElementRects({reference:t,floating:a,strategy:o}):C.rects),{x,y:g}=_g(p,b,m)),w=-1)}return{x,y:g,placement:b,strategy:o,middlewareData:Q}},Ew=t=>({name:"arrow",options:t,async fn(a){const{x:s,y:l,placement:o,rects:u,platform:d,elements:O,middlewareData:m}=a,{element:p,padding:x=0}=ra(t,a)||{};if(p==null)return{};const g=X0(x),b={x:s,y:l},v=Xf(o),Q=Cf(v),w=await d.getDimensions(p),N=v==="y",k=N?"top":"left",P=N?"bottom":"right",$=N?"clientHeight":"clientWidth",_=u.reference[Q]+u.reference[v]-b[v]-u.floating[Q],L=b[v]-u.reference[v],C=await(d.getOffsetParent==null?void 0:d.getOffsetParent(p));let X=C?C[$]:0;(!X||!await(d.isElement==null?void 0:d.isElement(C)))&&(X=O.floating[$]||u.floating[Q]);const T=_/2-L/2,G=X/2-w[Q]/2-1,V=Wa(g[k],G),ae=Wa(g[P],G),ce=V,oe=X-w[Q]-ae,ie=X/2-w[Q]/2+T,K=sf(ce,ie,oe),z=!m.arrow&&Ml(o)!=null&&ie!==K&&u.reference[Q]/2-(ie<ce?V:ae)-w[Q]/2<0,H=z?ie<ce?ie-ce:ie-oe:0;return{[v]:b[v]+H,data:{[v]:K,centerOffset:ie-K-H,...z&&{alignmentOffset:H}},reset:z}}}),qw=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(a){var s,l;const{placement:o,middlewareData:u,rects:d,initialPlacement:O,platform:m,elements:p}=a,{mainAxis:x=!0,crossAxis:g=!0,fallbackPlacements:b,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:Q="none",flipAlignment:w=!0,...N}=ra(t,a);if((s=u.arrow)!=null&&s.alignmentOffset)return{};const k=ia(o),P=$n(O),$=ia(O)===O,_=await(m.isRTL==null?void 0:m.isRTL(p.floating)),L=b||($||!w?[oc(O)]:Nw(O)),C=Q!=="none";!b&&C&&L.push(...Cw(O,w,Q,_));const X=[O,...L],T=await m.detectOverflow(a,N),G=[];let V=((l=u.flip)==null?void 0:l.overflows)||[];if(x&&G.push(T[k]),g){const ie=Tw(o,d,_);G.push(T[ie[0]],T[ie[1]])}if(V=[...V,{placement:o,overflows:G}],!G.every(ie=>ie<=0)){var ae,ce;const ie=(((ae=u.flip)==null?void 0:ae.index)||0)+1,K=X[ie];if(K&&(!(g==="alignment"?P!==$n(K):!1)||V.every(E=>$n(E.placement)===P?E.overflows[0]>0:!0)))return{data:{index:ie,overflows:V},reset:{placement:K}};let z=(ce=V.filter(H=>H.overflows[0]<=0).sort((H,E)=>H.overflows[1]-E.overflows[1])[0])==null?void 0:ce.placement;if(!z)switch(v){case"bestFit":{var oe;const H=(oe=V.filter(E=>{if(C){const le=$n(E.placement);return le===P||le==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(le=>le>0).reduce((le,ee)=>le+ee,0)]).sort((E,le)=>E[1]-le[1])[0])==null?void 0:oe[0];H&&(z=H);break}case"initialPlacement":z=O;break}if(o!==z)return{reset:{placement:z}}}return{}}}};function Zg(t,a){return{top:t.top-a.height,right:t.right-a.width,bottom:t.bottom-a.height,left:t.left-a.width}}function Ag(t){return kw.some(a=>t[a]>=0)}const Mw=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(a){const{rects:s,platform:l}=a,{strategy:o="referenceHidden",...u}=ra(t,a);switch(o){case"referenceHidden":{const d=await l.detectOverflow(a,{...u,elementContext:"reference"}),O=Zg(d,s.reference);return{data:{referenceHiddenOffsets:O,referenceHidden:Ag(O)}}}case"escaped":{const d=await l.detectOverflow(a,{...u,altBoundary:!0}),O=Zg(d,s.floating);return{data:{escapedOffsets:O,escaped:Ag(O)}}}default:return{}}}}},_0=new Set(["left","top"]);async function Yw(t,a){const{placement:s,platform:l,elements:o}=t,u=await(l.isRTL==null?void 0:l.isRTL(o.floating)),d=ia(s),O=Ml(s),m=$n(s)==="y",p=_0.has(d)?-1:1,x=u&&m?-1:1,g=ra(a,t);let{mainAxis:b,crossAxis:v,alignmentAxis:Q}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:g.mainAxis||0,crossAxis:g.crossAxis||0,alignmentAxis:g.alignmentAxis};return O&&typeof Q=="number"&&(v=O==="end"?Q*-1:Q),m?{x:v*x,y:b*p}:{x:b*p,y:v*x}}const Vw=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(a){var s,l;const{x:o,y:u,placement:d,middlewareData:O}=a,m=await Yw(a,t);return d===((s=O.offset)==null?void 0:s.placement)&&(l=O.arrow)!=null&&l.alignmentOffset?{}:{x:o+m.x,y:u+m.y,data:{...m,placement:d}}}}},Uw=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(a){const{x:s,y:l,placement:o,platform:u}=a,{mainAxis:d=!0,crossAxis:O=!1,limiter:m={fn:k=>{let{x:P,y:$}=k;return{x:P,y:$}}},...p}=ra(t,a),x={x:s,y:l},g=await u.detectOverflow(a,p),b=$n(ia(o)),v=Rf(b);let Q=x[v],w=x[b];if(d){const k=v==="y"?"top":"left",P=v==="y"?"bottom":"right",$=Q+g[k],_=Q-g[P];Q=sf($,Q,_)}if(O){const k=b==="y"?"top":"left",P=b==="y"?"bottom":"right",$=w+g[k],_=w-g[P];w=sf($,w,_)}const N=m.fn({...a,[v]:Q,[b]:w});return{...N,data:{x:N.x-s,y:N.y-l,enabled:{[v]:d,[b]:O}}}}}},Lw=function(t){return t===void 0&&(t={}),{options:t,fn(a){const{x:s,y:l,placement:o,rects:u,middlewareData:d}=a,{offset:O=0,mainAxis:m=!0,crossAxis:p=!0}=ra(t,a),x={x:s,y:l},g=$n(o),b=Rf(g);let v=x[b],Q=x[g];const w=ra(O,a),N=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(m){const $=b==="y"?"height":"width",_=u.reference[b]-u.floating[$]+N.mainAxis,L=u.reference[b]+u.reference[$]-N.mainAxis;v<_?v=_:v>L&&(v=L)}if(p){var k,P;const $=b==="y"?"width":"height",_=_0.has(ia(o)),L=u.reference[g]-u.floating[$]+(_&&((k=d.offset)==null?void 0:k[g])||0)+(_?0:N.crossAxis),C=u.reference[g]+u.reference[$]+(_?0:((P=d.offset)==null?void 0:P[g])||0)-(_?N.crossAxis:0);Q<L?Q=L:Q>C&&(Q=C)}return{[b]:v,[g]:Q}}}},Gw=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(a){var s,l;const{placement:o,rects:u,platform:d,elements:O}=a,{apply:m=()=>{},...p}=ra(t,a),x=await d.detectOverflow(a,p),g=ia(o),b=Ml(o),v=$n(o)==="y",{width:Q,height:w}=u.floating;let N,k;g==="top"||g==="bottom"?(N=g,k=b===(await(d.isRTL==null?void 0:d.isRTL(O.floating))?"start":"end")?"left":"right"):(k=g,N=b==="end"?"top":"bottom");const P=w-x.top-x.bottom,$=Q-x.left-x.right,_=Wa(w-x[N],P),L=Wa(Q-x[k],$),C=!a.middlewareData.shift;let X=_,T=L;if((s=a.middlewareData.shift)!=null&&s.enabled.x&&(T=$),(l=a.middlewareData.shift)!=null&&l.enabled.y&&(X=P),C&&!b){const V=Dt(x.left,0),ae=Dt(x.right,0),ce=Dt(x.top,0),oe=Dt(x.bottom,0);v?T=Q-2*(V!==0||ae!==0?V+ae:Dt(x.left,x.right)):X=w-2*(ce!==0||oe!==0?ce+oe:Dt(x.top,x.bottom))}await m({...a,availableWidth:T,availableHeight:X});const G=await d.getDimensions(O.floating);return Q!==G.width||w!==G.height?{reset:{rects:!0}}:{}}}};function zc(){return typeof window<"u"}function Yl(t){return Z0(t)?(t.nodeName||"").toLowerCase():"#document"}function Wt(t){var a;return(t==null||(a=t.ownerDocument)==null?void 0:a.defaultView)||window}function Pn(t){var a;return(a=(Z0(t)?t.ownerDocument:t.document)||window.document)==null?void 0:a.documentElement}function Z0(t){return zc()?t instanceof Node||t instanceof Wt(t).Node:!1}function pn(t){return zc()?t instanceof Element||t instanceof Wt(t).Element:!1}function ca(t){return zc()?t instanceof HTMLElement||t instanceof Wt(t).HTMLElement:!1}function Eg(t){return!zc()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Wt(t).ShadowRoot}function ii(t){const{overflow:a,overflowX:s,overflowY:l,display:o}=xn(t);return/auto|scroll|overlay|hidden|clip/.test(a+l+s)&&o!=="inline"&&o!=="contents"}function Dw(t){return/^(table|td|th)$/.test(Yl(t))}function Rc(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const Ww=/transform|translate|scale|rotate|perspective|filter/,Bw=/paint|layout|strict|content/,bs=t=>!!t&&t!=="none";let hO;function _f(t){const a=pn(t)?xn(t):t;return bs(a.transform)||bs(a.translate)||bs(a.scale)||bs(a.rotate)||bs(a.perspective)||!Zf()&&(bs(a.backdropFilter)||bs(a.filter))||Ww.test(a.willChange||"")||Bw.test(a.contain||"")}function Hw(t){let a=Ba(t);for(;ca(a)&&!Cl(a);){if(_f(a))return a;if(Rc(a))return null;a=Ba(a)}return null}function Zf(){return hO==null&&(hO=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),hO}function Cl(t){return/^(html|body|#document)$/.test(Yl(t))}function xn(t){return Wt(t).getComputedStyle(t)}function Cc(t){return pn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Ba(t){if(Yl(t)==="html")return t;const a=t.assignedSlot||t.parentNode||Eg(t)&&t.host||Pn(t);return Eg(a)?a.host:a}function A0(t){const a=Ba(t);return Cl(a)?t.ownerDocument?t.ownerDocument.body:t.body:ca(a)&&ii(a)?a:A0(a)}function Br(t,a,s){var l;a===void 0&&(a=[]),s===void 0&&(s=!0);const o=A0(t),u=o===((l=t.ownerDocument)==null?void 0:l.body),d=Wt(o);if(u){const O=rf(d);return a.concat(d,d.visualViewport||[],ii(o)?o:[],O&&s?Br(O):[])}else return a.concat(o,Br(o,[],s))}function rf(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function E0(t){const a=xn(t);let s=parseFloat(a.width)||0,l=parseFloat(a.height)||0;const o=ca(t),u=o?t.offsetWidth:s,d=o?t.offsetHeight:l,O=ic(s)!==u||ic(l)!==d;return O&&(s=u,l=d),{width:s,height:l,$:O}}function Af(t){return pn(t)?t:t.contextElement}function $l(t){const a=Af(t);if(!ca(a))return Tn(1);const s=a.getBoundingClientRect(),{width:l,height:o,$:u}=E0(a);let d=(u?ic(s.width):s.width)/l,O=(u?ic(s.height):s.height)/o;return(!d||!Number.isFinite(d))&&(d=1),(!O||!Number.isFinite(O))&&(O=1),{x:d,y:O}}const Iw=Tn(0);function q0(t){const a=Wt(t);return!Zf()||!a.visualViewport?Iw:{x:a.visualViewport.offsetLeft,y:a.visualViewport.offsetTop}}function Fw(t,a,s){return a===void 0&&(a=!1),!s||a&&s!==Wt(t)?!1:a}function js(t,a,s,l){a===void 0&&(a=!1),s===void 0&&(s=!1);const o=t.getBoundingClientRect(),u=Af(t);let d=Tn(1);a&&(l?pn(l)&&(d=$l(l)):d=$l(t));const O=Fw(u,s,l)?q0(u):Tn(0);let m=(o.left+O.x)/d.x,p=(o.top+O.y)/d.y,x=o.width/d.x,g=o.height/d.y;if(u){const b=Wt(u),v=l&&pn(l)?Wt(l):l;let Q=b,w=rf(Q);for(;w&&l&&v!==Q;){const N=$l(w),k=w.getBoundingClientRect(),P=xn(w),$=k.left+(w.clientLeft+parseFloat(P.paddingLeft))*N.x,_=k.top+(w.clientTop+parseFloat(P.paddingTop))*N.y;m*=N.x,p*=N.y,x*=N.x,g*=N.y,m+=$,p+=_,Q=Wt(w),w=rf(Q)}}return cc({width:x,height:g,x:m,y:p})}function Xc(t,a){const s=Cc(t).scrollLeft;return a?a.left+s:js(Pn(t)).left+s}function M0(t,a){const s=t.getBoundingClientRect(),l=s.left+a.scrollLeft-Xc(t,s),o=s.top+a.scrollTop;return{x:l,y:o}}function Kw(t){let{elements:a,rect:s,offsetParent:l,strategy:o}=t;const u=o==="fixed",d=Pn(l),O=a?Rc(a.floating):!1;if(l===d||O&&u)return s;let m={scrollLeft:0,scrollTop:0},p=Tn(1);const x=Tn(0),g=ca(l);if((g||!g&&!u)&&((Yl(l)!=="body"||ii(d))&&(m=Cc(l)),g)){const v=js(l);p=$l(l),x.x=v.x+l.clientLeft,x.y=v.y+l.clientTop}const b=d&&!g&&!u?M0(d,m):Tn(0);return{width:s.width*p.x,height:s.height*p.y,x:s.x*p.x-m.scrollLeft*p.x+x.x+b.x,y:s.y*p.y-m.scrollTop*p.y+x.y+b.y}}function Jw(t){return Array.from(t.getClientRects())}function ek(t){const a=Pn(t),s=Cc(t),l=t.ownerDocument.body,o=Dt(a.scrollWidth,a.clientWidth,l.scrollWidth,l.clientWidth),u=Dt(a.scrollHeight,a.clientHeight,l.scrollHeight,l.clientHeight);let d=-s.scrollLeft+Xc(t);const O=-s.scrollTop;return xn(l).direction==="rtl"&&(d+=Dt(a.clientWidth,l.clientWidth)-o),{width:o,height:u,x:d,y:O}}const qg=25;function tk(t,a){const s=Wt(t),l=Pn(t),o=s.visualViewport;let u=l.clientWidth,d=l.clientHeight,O=0,m=0;if(o){u=o.width,d=o.height;const x=Zf();(!x||x&&a==="fixed")&&(O=o.offsetLeft,m=o.offsetTop)}const p=Xc(l);if(p<=0){const x=l.ownerDocument,g=x.body,b=getComputedStyle(g),v=x.compatMode==="CSS1Compat"&&parseFloat(b.marginLeft)+parseFloat(b.marginRight)||0,Q=Math.abs(l.clientWidth-g.clientWidth-v);Q<=qg&&(u-=Q)}else p<=qg&&(u+=p);return{width:u,height:d,x:O,y:m}}function nk(t,a){const s=js(t,!0,a==="fixed"),l=s.top+t.clientTop,o=s.left+t.clientLeft,u=ca(t)?$l(t):Tn(1),d=t.clientWidth*u.x,O=t.clientHeight*u.y,m=o*u.x,p=l*u.y;return{width:d,height:O,x:m,y:p}}function Mg(t,a,s){let l;if(a==="viewport")l=tk(t,s);else if(a==="document")l=ek(Pn(t));else if(pn(a))l=nk(a,s);else{const o=q0(t);l={x:a.x-o.x,y:a.y-o.y,width:a.width,height:a.height}}return cc(l)}function Y0(t,a){const s=Ba(t);return s===a||!pn(s)||Cl(s)?!1:xn(s).position==="fixed"||Y0(s,a)}function ak(t,a){const s=a.get(t);if(s)return s;let l=Br(t,[],!1).filter(O=>pn(O)&&Yl(O)!=="body"),o=null;const u=xn(t).position==="fixed";let d=u?Ba(t):t;for(;pn(d)&&!Cl(d);){const O=xn(d),m=_f(d);!m&&O.position==="fixed"&&(o=null),(u?!m&&!o:!m&&O.position==="static"&&!!o&&(o.position==="absolute"||o.position==="fixed")||ii(d)&&!m&&Y0(t,d))?l=l.filter(x=>x!==d):o=O,d=Ba(d)}return a.set(t,l),l}function sk(t){let{element:a,boundary:s,rootBoundary:l,strategy:o}=t;const d=[...s==="clippingAncestors"?Rc(a)?[]:ak(a,this._c):[].concat(s),l],O=Mg(a,d[0],o);let m=O.top,p=O.right,x=O.bottom,g=O.left;for(let b=1;b<d.length;b++){const v=Mg(a,d[b],o);m=Dt(v.top,m),p=Wa(v.right,p),x=Wa(v.bottom,x),g=Dt(v.left,g)}return{width:p-g,height:x-m,x:g,y:m}}function lk(t){const{width:a,height:s}=E0(t);return{width:a,height:s}}function rk(t,a,s){const l=ca(a),o=Pn(a),u=s==="fixed",d=js(t,!0,u,a);let O={scrollLeft:0,scrollTop:0};const m=Tn(0);function p(){m.x=Xc(o)}if(l||!l&&!u)if((Yl(a)!=="body"||ii(o))&&(O=Cc(a)),l){const v=js(a,!0,u,a);m.x=v.x+a.clientLeft,m.y=v.y+a.clientTop}else o&&p();u&&!l&&o&&p();const x=o&&!l&&!u?M0(o,O):Tn(0),g=d.left+O.scrollLeft-m.x-x.x,b=d.top+O.scrollTop-m.y-x.y;return{x:g,y:b,width:d.width,height:d.height}}function mO(t){return xn(t).position==="static"}function Yg(t,a){if(!ca(t)||xn(t).position==="fixed")return null;if(a)return a(t);let s=t.offsetParent;return Pn(t)===s&&(s=s.ownerDocument.body),s}function V0(t,a){const s=Wt(t);if(Rc(t))return s;if(!ca(t)){let o=Ba(t);for(;o&&!Cl(o);){if(pn(o)&&!mO(o))return o;o=Ba(o)}return s}let l=Yg(t,a);for(;l&&Dw(l)&&mO(l);)l=Yg(l,a);return l&&Cl(l)&&mO(l)&&!_f(l)?s:l||Hw(t)||s}const ik=async function(t){const a=this.getOffsetParent||V0,s=this.getDimensions,l=await s(t.floating);return{reference:rk(t.reference,await a(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function ok(t){return xn(t).direction==="rtl"}const ck={convertOffsetParentRelativeRectToViewportRelativeRect:Kw,getDocumentElement:Pn,getClippingRect:sk,getOffsetParent:V0,getElementRects:ik,getClientRects:Jw,getDimensions:lk,getScale:$l,isElement:pn,isRTL:ok};function U0(t,a){return t.x===a.x&&t.y===a.y&&t.width===a.width&&t.height===a.height}function uk(t,a){let s=null,l;const o=Pn(t);function u(){var O;clearTimeout(l),(O=s)==null||O.disconnect(),s=null}function d(O,m){O===void 0&&(O=!1),m===void 0&&(m=1),u();const p=t.getBoundingClientRect(),{left:x,top:g,width:b,height:v}=p;if(O||a(),!b||!v)return;const Q=Zo(g),w=Zo(o.clientWidth-(x+b)),N=Zo(o.clientHeight-(g+v)),k=Zo(x),$={rootMargin:-Q+"px "+-w+"px "+-N+"px "+-k+"px",threshold:Dt(0,Wa(1,m))||1};let _=!0;function L(C){const X=C[0].intersectionRatio;if(X!==m){if(!_)return d();X?d(!1,X):l=setTimeout(()=>{d(!1,1e-7)},1e3)}X===1&&!U0(p,t.getBoundingClientRect())&&d(),_=!1}try{s=new IntersectionObserver(L,{...$,root:o.ownerDocument})}catch{s=new IntersectionObserver(L,$)}s.observe(t)}return d(!0),u}function dk(t,a,s,l){l===void 0&&(l={});const{ancestorScroll:o=!0,ancestorResize:u=!0,elementResize:d=typeof ResizeObserver=="function",layoutShift:O=typeof IntersectionObserver=="function",animationFrame:m=!1}=l,p=Af(t),x=o||u?[...p?Br(p):[],...a?Br(a):[]]:[];x.forEach(k=>{o&&k.addEventListener("scroll",s,{passive:!0}),u&&k.addEventListener("resize",s)});const g=p&&O?uk(p,s):null;let b=-1,v=null;d&&(v=new ResizeObserver(k=>{let[P]=k;P&&P.target===p&&v&&a&&(v.unobserve(a),cancelAnimationFrame(b),b=requestAnimationFrame(()=>{var $;($=v)==null||$.observe(a)})),s()}),p&&!m&&v.observe(p),a&&v.observe(a));let Q,w=m?js(t):null;m&&N();function N(){const k=js(t);w&&!U0(w,k)&&s(),w=k,Q=requestAnimationFrame(N)}return s(),()=>{var k;x.forEach(P=>{o&&P.removeEventListener("scroll",s),u&&P.removeEventListener("resize",s)}),g==null||g(),(k=v)==null||k.disconnect(),v=null,m&&cancelAnimationFrame(Q)}}const Ok=Vw,fk=Uw,hk=qw,mk=Gw,pk=Mw,Vg=Ew,xk=Lw,gk=(t,a,s)=>{const l=new Map,o={platform:ck,...s},u={...o.platform,_c:l};return Aw(t,a,{...o,platform:u})};var bk=typeof document<"u",vk=function(){},Ko=bk?y.useLayoutEffect:vk;function uc(t,a){if(t===a)return!0;if(typeof t!=typeof a)return!1;if(typeof t=="function"&&t.toString()===a.toString())return!0;let s,l,o;if(t&&a&&typeof t=="object"){if(Array.isArray(t)){if(s=t.length,s!==a.length)return!1;for(l=s;l--!==0;)if(!uc(t[l],a[l]))return!1;return!0}if(o=Object.keys(t),s=o.length,s!==Object.keys(a).length)return!1;for(l=s;l--!==0;)if(!{}.hasOwnProperty.call(a,o[l]))return!1;for(l=s;l--!==0;){const u=o[l];if(!(u==="_owner"&&t.$$typeof)&&!uc(t[u],a[u]))return!1}return!0}return t!==t&&a!==a}function L0(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Ug(t,a){const s=L0(t);return Math.round(a*s)/s}function pO(t){const a=y.useRef(t);return Ko(()=>{a.current=t}),a}function yk(t){t===void 0&&(t={});const{placement:a="bottom",strategy:s="absolute",middleware:l=[],platform:o,elements:{reference:u,floating:d}={},transform:O=!0,whileElementsMounted:m,open:p}=t,[x,g]=y.useState({x:0,y:0,strategy:s,placement:a,middlewareData:{},isPositioned:!1}),[b,v]=y.useState(l);uc(b,l)||v(l);const[Q,w]=y.useState(null),[N,k]=y.useState(null),P=y.useCallback(E=>{E!==C.current&&(C.current=E,w(E))},[]),$=y.useCallback(E=>{E!==X.current&&(X.current=E,k(E))},[]),_=u||Q,L=d||N,C=y.useRef(null),X=y.useRef(null),T=y.useRef(x),G=m!=null,V=pO(m),ae=pO(o),ce=pO(p),oe=y.useCallback(()=>{if(!C.current||!X.current)return;const E={placement:a,strategy:s,middleware:b};ae.current&&(E.platform=ae.current),gk(C.current,X.current,E).then(le=>{const ee={...le,isPositioned:ce.current!==!1};ie.current&&!uc(T.current,ee)&&(T.current=ee,S0.flushSync(()=>{g(ee)}))})},[b,a,s,ae,ce]);Ko(()=>{p===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,g(E=>({...E,isPositioned:!1})))},[p]);const ie=y.useRef(!1);Ko(()=>(ie.current=!0,()=>{ie.current=!1}),[]),Ko(()=>{if(_&&(C.current=_),L&&(X.current=L),_&&L){if(V.current)return V.current(_,L,oe);oe()}},[_,L,oe,V,G]);const K=y.useMemo(()=>({reference:C,floating:X,setReference:P,setFloating:$}),[P,$]),z=y.useMemo(()=>({reference:_,floating:L}),[_,L]),H=y.useMemo(()=>{const E={position:s,left:0,top:0};if(!z.floating)return E;const le=Ug(z.floating,x.x),ee=Ug(z.floating,x.y);return O?{...E,transform:"translate("+le+"px, "+ee+"px)",...L0(z.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:le,top:ee}},[s,O,z.floating,x.x,x.y]);return y.useMemo(()=>({...x,update:oe,refs:K,elements:z,floatingStyles:H}),[x,oe,K,z,H])}const Sk=t=>{function a(s){return{}.hasOwnProperty.call(s,"current")}return{name:"arrow",options:t,fn(s){const{element:l,padding:o}=typeof t=="function"?t(s):t;return l&&a(l)?l.current!=null?Vg({element:l.current,padding:o}).fn(s):{}:l?Vg({element:l,padding:o}).fn(s):{}}}},Qk=(t,a)=>{const s=Ok(t);return{name:s.name,fn:s.fn,options:[t,a]}},jk=(t,a)=>{const s=fk(t);return{name:s.name,fn:s.fn,options:[t,a]}},wk=(t,a)=>({fn:xk(t).fn,options:[t,a]}),kk=(t,a)=>{const s=hk(t);return{name:s.name,fn:s.fn,options:[t,a]}},$k=(t,a)=>{const s=mk(t);return{name:s.name,fn:s.fn,options:[t,a]}},Tk=(t,a)=>{const s=pk(t);return{name:s.name,fn:s.fn,options:[t,a]}},Nk=(t,a)=>{const s=Sk(t);return{name:s.name,fn:s.fn,options:[t,a]}};var Pk="Arrow",G0=y.forwardRef((t,a)=>{const{children:s,width:l=10,height:o=5,...u}=t;return i.jsx(Be.svg,{...u,ref:a,width:l,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?s:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});G0.displayName=Pk;var zk=G0;function Rk(t){const[a,s]=y.useState(void 0);return la(()=>{if(t){s({width:t.offsetWidth,height:t.offsetHeight});const l=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const u=o[0];let d,O;if("borderBoxSize"in u){const m=u.borderBoxSize,p=Array.isArray(m)?m[0]:m;d=p.inlineSize,O=p.blockSize}else d=t.offsetWidth,O=t.offsetHeight;s({width:d,height:O})});return l.observe(t,{box:"border-box"}),()=>l.unobserve(t)}else s(void 0)},[t]),a}var Ef="Popper",[D0,W0]=zs(Ef),[Ck,B0]=D0(Ef),H0=t=>{const{__scopePopper:a,children:s}=t,[l,o]=y.useState(null);return i.jsx(Ck,{scope:a,anchor:l,onAnchorChange:o,children:s})};H0.displayName=Ef;var I0="PopperAnchor",F0=y.forwardRef((t,a)=>{const{__scopePopper:s,virtualRef:l,...o}=t,u=B0(I0,s),d=y.useRef(null),O=it(a,d),m=y.useRef(null);return y.useEffect(()=>{const p=m.current;m.current=(l==null?void 0:l.current)||d.current,p!==m.current&&u.onAnchorChange(m.current)}),l?null:i.jsx(Be.div,{...o,ref:O})});F0.displayName=I0;var qf="PopperContent",[Xk,_k]=D0(qf),K0=y.forwardRef((t,a)=>{var Ce,Ot,Ze,nt,bt,yt;const{__scopePopper:s,side:l="bottom",sideOffset:o=0,align:u="center",alignOffset:d=0,arrowPadding:O=0,avoidCollisions:m=!0,collisionBoundary:p=[],collisionPadding:x=0,sticky:g="partial",hideWhenDetached:b=!1,updatePositionStrategy:v="optimized",onPlaced:Q,...w}=t,N=B0(qf,s),[k,P]=y.useState(null),$=it(a,Bt=>P(Bt)),[_,L]=y.useState(null),C=Rk(_),X=(C==null?void 0:C.width)??0,T=(C==null?void 0:C.height)??0,G=l+(u!=="center"?"-"+u:""),V=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},ae=Array.isArray(p)?p:[p],ce=ae.length>0,oe={padding:V,boundary:ae.filter(Ak),altBoundary:ce},{refs:ie,floatingStyles:K,placement:z,isPositioned:H,middlewareData:E}=yk({strategy:"fixed",placement:G,whileElementsMounted:(...Bt)=>dk(...Bt,{animationFrame:v==="always"}),elements:{reference:N.anchor},middleware:[Qk({mainAxis:o+T,alignmentAxis:d}),m&&jk({mainAxis:!0,crossAxis:!1,limiter:g==="partial"?wk():void 0,...oe}),m&&kk({...oe}),$k({...oe,apply:({elements:Bt,rects:St,availableWidth:Ul,availableHeight:Ll})=>{const{width:Ic,height:xi}=St.reference,da=Bt.floating.style;da.setProperty("--radix-popper-available-width",`${Ul}px`),da.setProperty("--radix-popper-available-height",`${Ll}px`),da.setProperty("--radix-popper-anchor-width",`${Ic}px`),da.setProperty("--radix-popper-anchor-height",`${xi}px`)}}),_&&Nk({element:_,padding:O}),Ek({arrowWidth:X,arrowHeight:T}),b&&Tk({strategy:"referenceHidden",...oe})]}),[le,ee]=tb(z),we=Rt(Q);la(()=>{H&&(we==null||we())},[H,we]);const ve=(Ce=E.arrow)==null?void 0:Ce.x,be=(Ot=E.arrow)==null?void 0:Ot.y,Re=((Ze=E.arrow)==null?void 0:Ze.centerOffset)!==0,[B,ue]=y.useState();return la(()=>{k&&ue(window.getComputedStyle(k).zIndex)},[k]),i.jsx("div",{ref:ie.setFloating,"data-radix-popper-content-wrapper":"",style:{...K,transform:H?K.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:B,"--radix-popper-transform-origin":[(nt=E.transformOrigin)==null?void 0:nt.x,(bt=E.transformOrigin)==null?void 0:bt.y].join(" "),...((yt=E.hide)==null?void 0:yt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:i.jsx(Xk,{scope:s,placedSide:le,onArrowChange:L,arrowX:ve,arrowY:be,shouldHideArrow:Re,children:i.jsx(Be.div,{"data-side":le,"data-align":ee,...w,ref:$,style:{...w.style,animation:H?void 0:"none"}})})})});K0.displayName=qf;var J0="PopperArrow",Zk={top:"bottom",right:"left",bottom:"top",left:"right"},eb=y.forwardRef(function(a,s){const{__scopePopper:l,...o}=a,u=_k(J0,l),d=Zk[u.placedSide];return i.jsx("span",{ref:u.onArrowChange,style:{position:"absolute",left:u.arrowX,top:u.arrowY,[d]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[u.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[u.placedSide],visibility:u.shouldHideArrow?"hidden":void 0},children:i.jsx(zk,{...o,ref:s,style:{...o.style,display:"block"}})})});eb.displayName=J0;function Ak(t){return t!==null}var Ek=t=>({name:"transformOrigin",options:t,fn(a){var N,k,P;const{placement:s,rects:l,middlewareData:o}=a,d=((N=o.arrow)==null?void 0:N.centerOffset)!==0,O=d?0:t.arrowWidth,m=d?0:t.arrowHeight,[p,x]=tb(s),g={start:"0%",center:"50%",end:"100%"}[x],b=(((k=o.arrow)==null?void 0:k.x)??0)+O/2,v=(((P=o.arrow)==null?void 0:P.y)??0)+m/2;let Q="",w="";return p==="bottom"?(Q=d?g:`${b}px`,w=`${-m}px`):p==="top"?(Q=d?g:`${b}px`,w=`${l.floating.height+m}px`):p==="right"?(Q=`${-m}px`,w=d?g:`${v}px`):p==="left"&&(Q=`${l.floating.width+m}px`,w=d?g:`${v}px`),{data:{x:Q,y:w}}}});function tb(t){const[a,s="center"]=t.split("-");return[a,s]}var qk=H0,Mk=F0,Yk=K0,Vk=eb,Uk="Portal",Mf=y.forwardRef((t,a)=>{var O;const{container:s,...l}=t,[o,u]=y.useState(!1);la(()=>u(!0),[]);const d=s||o&&((O=globalThis==null?void 0:globalThis.document)==null?void 0:O.body);return d?gj.createPortal(i.jsx(Be.div,{...l,ref:a}),d):null});Mf.displayName=Uk;function Lk(t,a){return y.useReducer((s,l)=>a[s][l]??s,t)}var bn=t=>{const{present:a,children:s}=t,l=Gk(a),o=typeof s=="function"?s({present:l.isPresent}):y.Children.only(s),u=it(l.ref,Dk(o));return typeof s=="function"||l.isPresent?y.cloneElement(o,{ref:u}):null};bn.displayName="Presence";function Gk(t){const[a,s]=y.useState(),l=y.useRef(null),o=y.useRef(t),u=y.useRef("none"),d=t?"mounted":"unmounted",[O,m]=Lk(d,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const p=Ao(l.current);u.current=O==="mounted"?p:"none"},[O]),la(()=>{const p=l.current,x=o.current;if(x!==t){const b=u.current,v=Ao(p);t?m("MOUNT"):v==="none"||(p==null?void 0:p.display)==="none"?m("UNMOUNT"):m(x&&b!==v?"ANIMATION_OUT":"UNMOUNT"),o.current=t}},[t,m]),la(()=>{if(a){let p;const x=a.ownerDocument.defaultView??window,g=v=>{const w=Ao(l.current).includes(CSS.escape(v.animationName));if(v.target===a&&w&&(m("ANIMATION_END"),!o.current)){const N=a.style.animationFillMode;a.style.animationFillMode="forwards",p=x.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=N)})}},b=v=>{v.target===a&&(u.current=Ao(l.current))};return a.addEventListener("animationstart",b),a.addEventListener("animationcancel",g),a.addEventListener("animationend",g),()=>{x.clearTimeout(p),a.removeEventListener("animationstart",b),a.removeEventListener("animationcancel",g),a.removeEventListener("animationend",g)}}else m("ANIMATION_END")},[a,m]),{isPresent:["mounted","unmountSuspended"].includes(O),ref:y.useCallback(p=>{l.current=p?getComputedStyle(p):null,s(p)},[])}}function Ao(t){return(t==null?void 0:t.animationName)||"none"}function Dk(t){var l,o;let a=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?t.ref:(a=(o=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:o.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}var Wk=b0[" useInsertionEffect ".trim().toString()]||la;function _c({prop:t,defaultProp:a,onChange:s=()=>{},caller:l}){const[o,u,d]=Bk({defaultProp:a,onChange:s}),O=t!==void 0,m=O?t:o;{const x=y.useRef(t!==void 0);y.useEffect(()=>{const g=x.current;g!==O&&console.warn(`${l} is changing from ${g?"controlled":"uncontrolled"} to ${O?"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.`),x.current=O},[O,l])}const p=y.useCallback(x=>{var g;if(O){const b=Hk(x)?x(t):x;b!==t&&((g=d.current)==null||g.call(d,b))}else u(x)},[O,t,u,d]);return[m,p]}function Bk({defaultProp:t,onChange:a}){const[s,l]=y.useState(t),o=y.useRef(s),u=y.useRef(a);return Wk(()=>{u.current=a},[a]),y.useEffect(()=>{var d;o.current!==s&&((d=u.current)==null||d.call(u,s),o.current=s)},[s,o]),[s,l,u]}function Hk(t){return typeof t=="function"}var Ik=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"}),Fk="VisuallyHidden",nb=y.forwardRef((t,a)=>i.jsx(Be.span,{...t,ref:a,style:{...Ik,...t.style}}));nb.displayName=Fk;var Kk=nb,[Zc]=zs("Tooltip",[W0]),Ac=W0(),ab="TooltipProvider",Jk=700,of="tooltip.open",[e$,Yf]=Zc(ab),sb=t=>{const{__scopeTooltip:a,delayDuration:s=Jk,skipDelayDuration:l=300,disableHoverableContent:o=!1,children:u}=t,d=y.useRef(!0),O=y.useRef(!1),m=y.useRef(0);return y.useEffect(()=>{const p=m.current;return()=>window.clearTimeout(p)},[]),i.jsx(e$,{scope:a,isOpenDelayedRef:d,delayDuration:s,onOpen:y.useCallback(()=>{window.clearTimeout(m.current),d.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>d.current=!0,l)},[l]),isPointerInTransitRef:O,onPointerInTransitChange:y.useCallback(p=>{O.current=p},[]),disableHoverableContent:o,children:u})};sb.displayName=ab;var Hr="Tooltip",[t$,oi]=Zc(Hr),lb=t=>{const{__scopeTooltip:a,children:s,open:l,defaultOpen:o,onOpenChange:u,disableHoverableContent:d,delayDuration:O}=t,m=Yf(Hr,t.__scopeTooltip),p=Ac(a),[x,g]=y.useState(null),b=kl(),v=y.useRef(0),Q=d??m.disableHoverableContent,w=O??m.delayDuration,N=y.useRef(!1),[k,P]=_c({prop:l,defaultProp:o??!1,onChange:X=>{X?(m.onOpen(),document.dispatchEvent(new CustomEvent(of))):m.onClose(),u==null||u(X)},caller:Hr}),$=y.useMemo(()=>k?N.current?"delayed-open":"instant-open":"closed",[k]),_=y.useCallback(()=>{window.clearTimeout(v.current),v.current=0,N.current=!1,P(!0)},[P]),L=y.useCallback(()=>{window.clearTimeout(v.current),v.current=0,P(!1)},[P]),C=y.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{N.current=!0,P(!0),v.current=0},w)},[w,P]);return y.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),i.jsx(qk,{...p,children:i.jsx(t$,{scope:a,contentId:b,open:k,stateAttribute:$,trigger:x,onTriggerChange:g,onTriggerEnter:y.useCallback(()=>{m.isOpenDelayedRef.current?C():_()},[m.isOpenDelayedRef,C,_]),onTriggerLeave:y.useCallback(()=>{Q?L():(window.clearTimeout(v.current),v.current=0)},[L,Q]),onOpen:_,onClose:L,disableHoverableContent:Q,children:s})})};lb.displayName=Hr;var cf="TooltipTrigger",rb=y.forwardRef((t,a)=>{const{__scopeTooltip:s,...l}=t,o=oi(cf,s),u=Yf(cf,s),d=Ac(s),O=y.useRef(null),m=it(a,O,o.onTriggerChange),p=y.useRef(!1),x=y.useRef(!1),g=y.useCallback(()=>p.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",g),[g]),i.jsx(Mk,{asChild:!0,...d,children:i.jsx(Be.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...l,ref:m,onPointerMove:Ee(t.onPointerMove,b=>{b.pointerType!=="touch"&&!x.current&&!u.isPointerInTransitRef.current&&(o.onTriggerEnter(),x.current=!0)}),onPointerLeave:Ee(t.onPointerLeave,()=>{o.onTriggerLeave(),x.current=!1}),onPointerDown:Ee(t.onPointerDown,()=>{o.open&&o.onClose(),p.current=!0,document.addEventListener("pointerup",g,{once:!0})}),onFocus:Ee(t.onFocus,()=>{p.current||o.onOpen()}),onBlur:Ee(t.onBlur,o.onClose),onClick:Ee(t.onClick,o.onClose)})})});rb.displayName=cf;var Vf="TooltipPortal",[n$,a$]=Zc(Vf,{forceMount:void 0}),ib=t=>{const{__scopeTooltip:a,forceMount:s,children:l,container:o}=t,u=oi(Vf,a);return i.jsx(n$,{scope:a,forceMount:s,children:i.jsx(bn,{present:s||u.open,children:i.jsx(Mf,{asChild:!0,container:o,children:l})})})};ib.displayName=Vf;var Xl="TooltipContent",ob=y.forwardRef((t,a)=>{const s=a$(Xl,t.__scopeTooltip),{forceMount:l=s.forceMount,side:o="top",...u}=t,d=oi(Xl,t.__scopeTooltip);return i.jsx(bn,{present:l||d.open,children:d.disableHoverableContent?i.jsx(cb,{side:o,...u,ref:a}):i.jsx(s$,{side:o,...u,ref:a})})}),s$=y.forwardRef((t,a)=>{const s=oi(Xl,t.__scopeTooltip),l=Yf(Xl,t.__scopeTooltip),o=y.useRef(null),u=it(a,o),[d,O]=y.useState(null),{trigger:m,onClose:p}=s,x=o.current,{onPointerInTransitChange:g}=l,b=y.useCallback(()=>{O(null),g(!1)},[g]),v=y.useCallback((Q,w)=>{const N=Q.currentTarget,k={x:Q.clientX,y:Q.clientY},P=o$(k,N.getBoundingClientRect()),$=c$(k,P),_=u$(w.getBoundingClientRect()),L=O$([...$,..._]);O(L),g(!0)},[g]);return y.useEffect(()=>()=>b(),[b]),y.useEffect(()=>{if(m&&x){const Q=N=>v(N,x),w=N=>v(N,m);return m.addEventListener("pointerleave",Q),x.addEventListener("pointerleave",w),()=>{m.removeEventListener("pointerleave",Q),x.removeEventListener("pointerleave",w)}}},[m,x,v,b]),y.useEffect(()=>{if(d){const Q=w=>{const N=w.target,k={x:w.clientX,y:w.clientY},P=(m==null?void 0:m.contains(N))||(x==null?void 0:x.contains(N)),$=!d$(k,d);P?b():$&&(b(),p())};return document.addEventListener("pointermove",Q),()=>document.removeEventListener("pointermove",Q)}},[m,x,d,p,b]),i.jsx(cb,{...t,ref:u})}),[l$,r$]=Zc(Hr,{isInside:!1}),i$=uw("TooltipContent"),cb=y.forwardRef((t,a)=>{const{__scopeTooltip:s,children:l,"aria-label":o,onEscapeKeyDown:u,onPointerDownOutside:d,...O}=t,m=oi(Xl,s),p=Ac(s),{onClose:x}=m;return y.useEffect(()=>(document.addEventListener(of,x),()=>document.removeEventListener(of,x)),[x]),y.useEffect(()=>{if(m.trigger){const g=b=>{const v=b.target;v!=null&&v.contains(m.trigger)&&x()};return window.addEventListener("scroll",g,{capture:!0}),()=>window.removeEventListener("scroll",g,{capture:!0})}},[m.trigger,x]),i.jsx(zf,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:g=>g.preventDefault(),onDismiss:x,children:i.jsxs(Yk,{"data-state":m.stateAttribute,...p,...O,ref:a,style:{...O.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:[i.jsx(i$,{children:l}),i.jsx(l$,{scope:s,isInside:!0,children:i.jsx(Kk,{id:m.contentId,role:"tooltip",children:o||l})})]})})});ob.displayName=Xl;var ub="TooltipArrow",db=y.forwardRef((t,a)=>{const{__scopeTooltip:s,...l}=t,o=Ac(s);return r$(ub,s).isInside?null:i.jsx(Vk,{...o,...l,ref:a})});db.displayName=ub;function o$(t,a){const s=Math.abs(a.top-t.y),l=Math.abs(a.bottom-t.y),o=Math.abs(a.right-t.x),u=Math.abs(a.left-t.x);switch(Math.min(s,l,o,u)){case u:return"left";case o:return"right";case s:return"top";case l:return"bottom";default:throw new Error("unreachable")}}function c$(t,a,s=5){const l=[];switch(a){case"top":l.push({x:t.x-s,y:t.y+s},{x:t.x+s,y:t.y+s});break;case"bottom":l.push({x:t.x-s,y:t.y-s},{x:t.x+s,y:t.y-s});break;case"left":l.push({x:t.x+s,y:t.y-s},{x:t.x+s,y:t.y+s});break;case"right":l.push({x:t.x-s,y:t.y-s},{x:t.x-s,y:t.y+s});break}return l}function u$(t){const{top:a,right:s,bottom:l,left:o}=t;return[{x:o,y:a},{x:s,y:a},{x:s,y:l},{x:o,y:l}]}function d$(t,a){const{x:s,y:l}=t;let o=!1;for(let u=0,d=a.length-1;u<a.length;d=u++){const O=a[u],m=a[d],p=O.x,x=O.y,g=m.x,b=m.y;x>l!=b>l&&s<(g-p)*(l-x)/(b-x)+p&&(o=!o)}return o}function O$(t){const a=t.slice();return a.sort((s,l)=>s.x<l.x?-1:s.x>l.x?1:s.y<l.y?-1:s.y>l.y?1:0),f$(a)}function f$(t){if(t.length<=1)return t.slice();const a=[];for(let l=0;l<t.length;l++){const o=t[l];for(;a.length>=2;){const u=a[a.length-1],d=a[a.length-2];if((u.x-d.x)*(o.y-d.y)>=(u.y-d.y)*(o.x-d.x))a.pop();else break}a.push(o)}a.pop();const s=[];for(let l=t.length-1;l>=0;l--){const o=t[l];for(;s.length>=2;){const u=s[s.length-1],d=s[s.length-2];if((u.x-d.x)*(o.y-d.y)>=(u.y-d.y)*(o.x-d.x))s.pop();else break}s.push(o)}return s.pop(),a.length===1&&s.length===1&&a[0].x===s[0].x&&a[0].y===s[0].y?a:a.concat(s)}var h$=sb,m$=lb,p$=rb,x$=ib,g$=ob,b$=db;function Ob(t){var a,s,l="";if(typeof t=="string"||typeof t=="number")l+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(a=0;a<o;a++)t[a]&&(s=Ob(t[a]))&&(l&&(l+=" "),l+=s)}else for(s in t)t[s]&&(l&&(l+=" "),l+=s);return l}function v$(){for(var t,a,s=0,l="",o=arguments.length;s<o;s++)(t=arguments[s])&&(a=Ob(t))&&(l&&(l+=" "),l+=a);return l}const y$=(t,a)=>{const s=new Array(t.length+a.length);for(let l=0;l<t.length;l++)s[l]=t[l];for(let l=0;l<a.length;l++)s[t.length+l]=a[l];return s},S$=(t,a)=>({classGroupId:t,validator:a}),fb=(t=new Map,a=null,s)=>({nextPart:t,validators:a,classGroupId:s}),dc="-",Lg=[],Q$="arbitrary..",j$=t=>{const a=k$(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:l}=t;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return w$(d);const O=d.split(dc),m=O[0]===""&&O.length>1?1:0;return hb(O,m,a)},getConflictingClassGroupIds:(d,O)=>{if(O){const m=l[d],p=s[d];return m?p?y$(p,m):m:p||Lg}return s[d]||Lg}}},hb=(t,a,s)=>{if(t.length-a===0)return s.classGroupId;const o=t[a],u=s.nextPart.get(o);if(u){const p=hb(t,a+1,u);if(p)return p}const d=s.validators;if(d===null)return;const O=a===0?t.join(dc):t.slice(a).join(dc),m=d.length;for(let p=0;p<m;p++){const x=d[p];if(x.validator(O))return x.classGroupId}},w$=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=t.slice(1,-1),s=a.indexOf(":"),l=a.slice(0,s);return l?Q$+l:void 0})(),k$=t=>{const{theme:a,classGroups:s}=t;return $$(s,a)},$$=(t,a)=>{const s=fb();for(const l in t){const o=t[l];Uf(o,s,l,a)}return s},Uf=(t,a,s,l)=>{const o=t.length;for(let u=0;u<o;u++){const d=t[u];T$(d,a,s,l)}},T$=(t,a,s,l)=>{if(typeof t=="string"){N$(t,a,s);return}if(typeof t=="function"){P$(t,a,s,l);return}z$(t,a,s,l)},N$=(t,a,s)=>{const l=t===""?a:mb(a,t);l.classGroupId=s},P$=(t,a,s,l)=>{if(R$(t)){Uf(t(l),a,s,l);return}a.validators===null&&(a.validators=[]),a.validators.push(S$(s,t))},z$=(t,a,s,l)=>{const o=Object.entries(t),u=o.length;for(let d=0;d<u;d++){const[O,m]=o[d];Uf(m,mb(a,O),s,l)}},mb=(t,a)=>{let s=t;const l=a.split(dc),o=l.length;for(let u=0;u<o;u++){const d=l[u];let O=s.nextPart.get(d);O||(O=fb(),s.nextPart.set(d,O)),s=O}return s},R$=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,C$=t=>{if(t<1)return{get:()=>{},set:()=>{}};let a=0,s=Object.create(null),l=Object.create(null);const o=(u,d)=>{s[u]=d,a++,a>t&&(a=0,l=s,s=Object.create(null))};return{get(u){let d=s[u];if(d!==void 0)return d;if((d=l[u])!==void 0)return o(u,d),d},set(u,d){u in s?s[u]=d:o(u,d)}}},uf="!",Gg=":",X$=[],Dg=(t,a,s,l,o)=>({modifiers:t,hasImportantModifier:a,baseClassName:s,maybePostfixModifierPosition:l,isExternal:o}),_$=t=>{const{prefix:a,experimentalParseClassName:s}=t;let l=o=>{const u=[];let d=0,O=0,m=0,p;const x=o.length;for(let w=0;w<x;w++){const N=o[w];if(d===0&&O===0){if(N===Gg){u.push(o.slice(m,w)),m=w+1;continue}if(N==="/"){p=w;continue}}N==="["?d++:N==="]"?d--:N==="("?O++:N===")"&&O--}const g=u.length===0?o:o.slice(m);let b=g,v=!1;g.endsWith(uf)?(b=g.slice(0,-1),v=!0):g.startsWith(uf)&&(b=g.slice(1),v=!0);const Q=p&&p>m?p-m:void 0;return Dg(u,v,b,Q)};if(a){const o=a+Gg,u=l;l=d=>d.startsWith(o)?u(d.slice(o.length)):Dg(X$,!1,d,void 0,!0)}if(s){const o=l;l=u=>s({className:u,parseClassName:o})}return l},Z$=t=>{const a=new Map;return t.orderSensitiveModifiers.forEach((s,l)=>{a.set(s,1e6+l)}),s=>{const l=[];let o=[];for(let u=0;u<s.length;u++){const d=s[u],O=d[0]==="[",m=a.has(d);O||m?(o.length>0&&(o.sort(),l.push(...o),o=[]),l.push(d)):o.push(d)}return o.length>0&&(o.sort(),l.push(...o)),l}},A$=t=>({cache:C$(t.cacheSize),parseClassName:_$(t),sortModifiers:Z$(t),...j$(t)}),E$=/\s+/,q$=(t,a)=>{const{parseClassName:s,getClassGroupId:l,getConflictingClassGroupIds:o,sortModifiers:u}=a,d=[],O=t.trim().split(E$);let m="";for(let p=O.length-1;p>=0;p-=1){const x=O[p],{isExternal:g,modifiers:b,hasImportantModifier:v,baseClassName:Q,maybePostfixModifierPosition:w}=s(x);if(g){m=x+(m.length>0?" "+m:m);continue}let N=!!w,k=l(N?Q.substring(0,w):Q);if(!k){if(!N){m=x+(m.length>0?" "+m:m);continue}if(k=l(Q),!k){m=x+(m.length>0?" "+m:m);continue}N=!1}const P=b.length===0?"":b.length===1?b[0]:u(b).join(":"),$=v?P+uf:P,_=$+k;if(d.indexOf(_)>-1)continue;d.push(_);const L=o(k,N);for(let C=0;C<L.length;++C){const X=L[C];d.push($+X)}m=x+(m.length>0?" "+m:m)}return m},M$=(...t)=>{let a=0,s,l,o="";for(;a<t.length;)(s=t[a++])&&(l=pb(s))&&(o&&(o+=" "),o+=l);return o},pb=t=>{if(typeof t=="string")return t;let a,s="";for(let l=0;l<t.length;l++)t[l]&&(a=pb(t[l]))&&(s&&(s+=" "),s+=a);return s},Y$=(t,...a)=>{let s,l,o,u;const d=m=>{const p=a.reduce((x,g)=>g(x),t());return s=A$(p),l=s.cache.get,o=s.cache.set,u=O,O(m)},O=m=>{const p=l(m);if(p)return p;const x=q$(m,s);return o(m,x),x};return u=d,(...m)=>u(M$(...m))},V$=[],ct=t=>{const a=s=>s[t]||V$;return a.isThemeGetter=!0,a},xb=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,gb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,U$=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,L$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,G$=/\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$/,D$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,W$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B$=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Aa=t=>U$.test(t),Qe=t=>!!t&&!Number.isNaN(Number(t)),Ea=t=>!!t&&Number.isInteger(Number(t)),xO=t=>t.endsWith("%")&&Qe(t.slice(0,-1)),Fn=t=>L$.test(t),bb=()=>!0,H$=t=>G$.test(t)&&!D$.test(t),Lf=()=>!1,I$=t=>W$.test(t),F$=t=>B$.test(t),K$=t=>!Oe(t)&&!fe(t),J$=t=>Ka(t,Sb,Lf),Oe=t=>xb.test(t),vs=t=>Ka(t,Qb,H$),Wg=t=>Ka(t,i5,Qe),e5=t=>Ka(t,wb,bb),t5=t=>Ka(t,jb,Lf),Bg=t=>Ka(t,vb,Lf),n5=t=>Ka(t,yb,F$),Eo=t=>Ka(t,kb,I$),fe=t=>gb.test(t),qr=t=>Rs(t,Qb),a5=t=>Rs(t,jb),Hg=t=>Rs(t,vb),s5=t=>Rs(t,Sb),l5=t=>Rs(t,yb),qo=t=>Rs(t,kb,!0),r5=t=>Rs(t,wb,!0),Ka=(t,a,s)=>{const l=xb.exec(t);return l?l[1]?a(l[1]):s(l[2]):!1},Rs=(t,a,s=!1)=>{const l=gb.exec(t);return l?l[1]?a(l[1]):s:!1},vb=t=>t==="position"||t==="percentage",yb=t=>t==="image"||t==="url",Sb=t=>t==="length"||t==="size"||t==="bg-size",Qb=t=>t==="length",i5=t=>t==="number",jb=t=>t==="family-name",wb=t=>t==="number"||t==="weight",kb=t=>t==="shadow",o5=()=>{const t=ct("color"),a=ct("font"),s=ct("text"),l=ct("font-weight"),o=ct("tracking"),u=ct("leading"),d=ct("breakpoint"),O=ct("container"),m=ct("spacing"),p=ct("radius"),x=ct("shadow"),g=ct("inset-shadow"),b=ct("text-shadow"),v=ct("drop-shadow"),Q=ct("blur"),w=ct("perspective"),N=ct("aspect"),k=ct("ease"),P=ct("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],_=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],L=()=>[..._(),fe,Oe],C=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto","contain","none"],T=()=>[fe,Oe,m],G=()=>[Aa,"full","auto",...T()],V=()=>[Ea,"none","subgrid",fe,Oe],ae=()=>["auto",{span:["full",Ea,fe,Oe]},Ea,fe,Oe],ce=()=>[Ea,"auto",fe,Oe],oe=()=>["auto","min","max","fr",fe,Oe],ie=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...T()],H=()=>[Aa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...T()],E=()=>[Aa,"screen","full","dvw","lvw","svw","min","max","fit",...T()],le=()=>[Aa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...T()],ee=()=>[t,fe,Oe],we=()=>[..._(),Hg,Bg,{position:[fe,Oe]}],ve=()=>["no-repeat",{repeat:["","x","y","space","round"]}],be=()=>["auto","cover","contain",s5,J$,{size:[fe,Oe]}],Re=()=>[xO,qr,vs],B=()=>["","none","full",p,fe,Oe],ue=()=>["",Qe,qr,vs],Ce=()=>["solid","dashed","dotted","double"],Ot=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Ze=()=>[Qe,xO,Hg,Bg],nt=()=>["","none",Q,fe,Oe],bt=()=>["none",Qe,fe,Oe],yt=()=>["none",Qe,fe,Oe],Bt=()=>[Qe,fe,Oe],St=()=>[Aa,"full",...T()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fn],breakpoint:[Fn],color:[bb],container:[Fn],"drop-shadow":[Fn],ease:["in","out","in-out"],font:[K$],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fn],shadow:[Fn],spacing:["px",Qe],text:[Fn],"text-shadow":[Fn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Aa,Oe,fe,N]}],container:["container"],columns:[{columns:[Qe,Oe,fe,O]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"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:L()}],overflow:[{overflow:C()}],"overflow-x":[{"overflow-x":C()}],"overflow-y":[{"overflow-y":C()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:G()}],"inset-x":[{"inset-x":G()}],"inset-y":[{"inset-y":G()}],start:[{"inset-s":G(),start:G()}],end:[{"inset-e":G(),end:G()}],"inset-bs":[{"inset-bs":G()}],"inset-be":[{"inset-be":G()}],top:[{top:G()}],right:[{right:G()}],bottom:[{bottom:G()}],left:[{left:G()}],visibility:["visible","invisible","collapse"],z:[{z:[Ea,"auto",fe,Oe]}],basis:[{basis:[Aa,"full","auto",O,...T()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Qe,Aa,"auto","initial","none",Oe]}],grow:[{grow:["",Qe,fe,Oe]}],shrink:[{shrink:["",Qe,fe,Oe]}],order:[{order:[Ea,"first","last","none",fe,Oe]}],"grid-cols":[{"grid-cols":V()}],"col-start-end":[{col:ae()}],"col-start":[{"col-start":ce()}],"col-end":[{"col-end":ce()}],"grid-rows":[{"grid-rows":V()}],"row-start-end":[{row:ae()}],"row-start":[{"row-start":ce()}],"row-end":[{"row-end":ce()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":oe()}],"auto-rows":[{"auto-rows":oe()}],gap:[{gap:T()}],"gap-x":[{"gap-x":T()}],"gap-y":[{"gap-y":T()}],"justify-content":[{justify:[...ie(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...ie()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":ie()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:T()}],px:[{px:T()}],py:[{py:T()}],ps:[{ps:T()}],pe:[{pe:T()}],pbs:[{pbs:T()}],pbe:[{pbe:T()}],pt:[{pt:T()}],pr:[{pr:T()}],pb:[{pb:T()}],pl:[{pl:T()}],m:[{m:z()}],mx:[{mx:z()}],my:[{my:z()}],ms:[{ms:z()}],me:[{me:z()}],mbs:[{mbs:z()}],mbe:[{mbe:z()}],mt:[{mt:z()}],mr:[{mr:z()}],mb:[{mb:z()}],ml:[{ml:z()}],"space-x":[{"space-x":T()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":T()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],"inline-size":[{inline:["auto",...E()]}],"min-inline-size":[{"min-inline":["auto",...E()]}],"max-inline-size":[{"max-inline":["none",...E()]}],"block-size":[{block:["auto",...le()]}],"min-block-size":[{"min-block":["auto",...le()]}],"max-block-size":[{"max-block":["none",...le()]}],w:[{w:[O,"screen",...H()]}],"min-w":[{"min-w":[O,"screen","none",...H()]}],"max-w":[{"max-w":[O,"screen","none","prose",{screen:[d]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",s,qr,vs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[l,r5,e5]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",xO,Oe]}],"font-family":[{font:[a5,t5,a]}],"font-features":[{"font-features":[Oe]}],"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:[o,fe,Oe]}],"line-clamp":[{"line-clamp":[Qe,"none",fe,Wg]}],leading:[{leading:[u,...T()]}],"list-image":[{"list-image":["none",fe,Oe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",fe,Oe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ee()}],"text-color":[{text:ee()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ce(),"wavy"]}],"text-decoration-thickness":[{decoration:[Qe,"from-font","auto",fe,vs]}],"text-decoration-color":[{decoration:ee()}],"underline-offset":[{"underline-offset":[Qe,"auto",fe,Oe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",fe,Oe]}],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",fe,Oe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:we()}],"bg-repeat":[{bg:ve()}],"bg-size":[{bg:be()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ea,fe,Oe],radial:["",fe,Oe],conic:[Ea,fe,Oe]},l5,n5]}],"bg-color":[{bg:ee()}],"gradient-from-pos":[{from:Re()}],"gradient-via-pos":[{via:Re()}],"gradient-to-pos":[{to:Re()}],"gradient-from":[{from:ee()}],"gradient-via":[{via:ee()}],"gradient-to":[{to:ee()}],rounded:[{rounded:B()}],"rounded-s":[{"rounded-s":B()}],"rounded-e":[{"rounded-e":B()}],"rounded-t":[{"rounded-t":B()}],"rounded-r":[{"rounded-r":B()}],"rounded-b":[{"rounded-b":B()}],"rounded-l":[{"rounded-l":B()}],"rounded-ss":[{"rounded-ss":B()}],"rounded-se":[{"rounded-se":B()}],"rounded-ee":[{"rounded-ee":B()}],"rounded-es":[{"rounded-es":B()}],"rounded-tl":[{"rounded-tl":B()}],"rounded-tr":[{"rounded-tr":B()}],"rounded-br":[{"rounded-br":B()}],"rounded-bl":[{"rounded-bl":B()}],"border-w":[{border:ue()}],"border-w-x":[{"border-x":ue()}],"border-w-y":[{"border-y":ue()}],"border-w-s":[{"border-s":ue()}],"border-w-e":[{"border-e":ue()}],"border-w-bs":[{"border-bs":ue()}],"border-w-be":[{"border-be":ue()}],"border-w-t":[{"border-t":ue()}],"border-w-r":[{"border-r":ue()}],"border-w-b":[{"border-b":ue()}],"border-w-l":[{"border-l":ue()}],"divide-x":[{"divide-x":ue()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ue()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ce(),"hidden","none"]}],"divide-style":[{divide:[...Ce(),"hidden","none"]}],"border-color":[{border:ee()}],"border-color-x":[{"border-x":ee()}],"border-color-y":[{"border-y":ee()}],"border-color-s":[{"border-s":ee()}],"border-color-e":[{"border-e":ee()}],"border-color-bs":[{"border-bs":ee()}],"border-color-be":[{"border-be":ee()}],"border-color-t":[{"border-t":ee()}],"border-color-r":[{"border-r":ee()}],"border-color-b":[{"border-b":ee()}],"border-color-l":[{"border-l":ee()}],"divide-color":[{divide:ee()}],"outline-style":[{outline:[...Ce(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Qe,fe,Oe]}],"outline-w":[{outline:["",Qe,qr,vs]}],"outline-color":[{outline:ee()}],shadow:[{shadow:["","none",x,qo,Eo]}],"shadow-color":[{shadow:ee()}],"inset-shadow":[{"inset-shadow":["none",g,qo,Eo]}],"inset-shadow-color":[{"inset-shadow":ee()}],"ring-w":[{ring:ue()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ee()}],"ring-offset-w":[{"ring-offset":[Qe,vs]}],"ring-offset-color":[{"ring-offset":ee()}],"inset-ring-w":[{"inset-ring":ue()}],"inset-ring-color":[{"inset-ring":ee()}],"text-shadow":[{"text-shadow":["none",b,qo,Eo]}],"text-shadow-color":[{"text-shadow":ee()}],opacity:[{opacity:[Qe,fe,Oe]}],"mix-blend":[{"mix-blend":[...Ot(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ot()}],"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":[Qe]}],"mask-image-linear-from-pos":[{"mask-linear-from":Ze()}],"mask-image-linear-to-pos":[{"mask-linear-to":Ze()}],"mask-image-linear-from-color":[{"mask-linear-from":ee()}],"mask-image-linear-to-color":[{"mask-linear-to":ee()}],"mask-image-t-from-pos":[{"mask-t-from":Ze()}],"mask-image-t-to-pos":[{"mask-t-to":Ze()}],"mask-image-t-from-color":[{"mask-t-from":ee()}],"mask-image-t-to-color":[{"mask-t-to":ee()}],"mask-image-r-from-pos":[{"mask-r-from":Ze()}],"mask-image-r-to-pos":[{"mask-r-to":Ze()}],"mask-image-r-from-color":[{"mask-r-from":ee()}],"mask-image-r-to-color":[{"mask-r-to":ee()}],"mask-image-b-from-pos":[{"mask-b-from":Ze()}],"mask-image-b-to-pos":[{"mask-b-to":Ze()}],"mask-image-b-from-color":[{"mask-b-from":ee()}],"mask-image-b-to-color":[{"mask-b-to":ee()}],"mask-image-l-from-pos":[{"mask-l-from":Ze()}],"mask-image-l-to-pos":[{"mask-l-to":Ze()}],"mask-image-l-from-color":[{"mask-l-from":ee()}],"mask-image-l-to-color":[{"mask-l-to":ee()}],"mask-image-x-from-pos":[{"mask-x-from":Ze()}],"mask-image-x-to-pos":[{"mask-x-to":Ze()}],"mask-image-x-from-color":[{"mask-x-from":ee()}],"mask-image-x-to-color":[{"mask-x-to":ee()}],"mask-image-y-from-pos":[{"mask-y-from":Ze()}],"mask-image-y-to-pos":[{"mask-y-to":Ze()}],"mask-image-y-from-color":[{"mask-y-from":ee()}],"mask-image-y-to-color":[{"mask-y-to":ee()}],"mask-image-radial":[{"mask-radial":[fe,Oe]}],"mask-image-radial-from-pos":[{"mask-radial-from":Ze()}],"mask-image-radial-to-pos":[{"mask-radial-to":Ze()}],"mask-image-radial-from-color":[{"mask-radial-from":ee()}],"mask-image-radial-to-color":[{"mask-radial-to":ee()}],"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":_()}],"mask-image-conic-pos":[{"mask-conic":[Qe]}],"mask-image-conic-from-pos":[{"mask-conic-from":Ze()}],"mask-image-conic-to-pos":[{"mask-conic-to":Ze()}],"mask-image-conic-from-color":[{"mask-conic-from":ee()}],"mask-image-conic-to-color":[{"mask-conic-to":ee()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:we()}],"mask-repeat":[{mask:ve()}],"mask-size":[{mask:be()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",fe,Oe]}],filter:[{filter:["","none",fe,Oe]}],blur:[{blur:nt()}],brightness:[{brightness:[Qe,fe,Oe]}],contrast:[{contrast:[Qe,fe,Oe]}],"drop-shadow":[{"drop-shadow":["","none",v,qo,Eo]}],"drop-shadow-color":[{"drop-shadow":ee()}],grayscale:[{grayscale:["",Qe,fe,Oe]}],"hue-rotate":[{"hue-rotate":[Qe,fe,Oe]}],invert:[{invert:["",Qe,fe,Oe]}],saturate:[{saturate:[Qe,fe,Oe]}],sepia:[{sepia:["",Qe,fe,Oe]}],"backdrop-filter":[{"backdrop-filter":["","none",fe,Oe]}],"backdrop-blur":[{"backdrop-blur":nt()}],"backdrop-brightness":[{"backdrop-brightness":[Qe,fe,Oe]}],"backdrop-contrast":[{"backdrop-contrast":[Qe,fe,Oe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Qe,fe,Oe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Qe,fe,Oe]}],"backdrop-invert":[{"backdrop-invert":["",Qe,fe,Oe]}],"backdrop-opacity":[{"backdrop-opacity":[Qe,fe,Oe]}],"backdrop-saturate":[{"backdrop-saturate":[Qe,fe,Oe]}],"backdrop-sepia":[{"backdrop-sepia":["",Qe,fe,Oe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":T()}],"border-spacing-x":[{"border-spacing-x":T()}],"border-spacing-y":[{"border-spacing-y":T()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",fe,Oe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Qe,"initial",fe,Oe]}],ease:[{ease:["linear","initial",k,fe,Oe]}],delay:[{delay:[Qe,fe,Oe]}],animate:[{animate:["none",P,fe,Oe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,fe,Oe]}],"perspective-origin":[{"perspective-origin":L()}],rotate:[{rotate:bt()}],"rotate-x":[{"rotate-x":bt()}],"rotate-y":[{"rotate-y":bt()}],"rotate-z":[{"rotate-z":bt()}],scale:[{scale:yt()}],"scale-x":[{"scale-x":yt()}],"scale-y":[{"scale-y":yt()}],"scale-z":[{"scale-z":yt()}],"scale-3d":["scale-3d"],skew:[{skew:Bt()}],"skew-x":[{"skew-x":Bt()}],"skew-y":[{"skew-y":Bt()}],transform:[{transform:[fe,Oe,"","none","gpu","cpu"]}],"transform-origin":[{origin:L()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:St()}],"translate-x":[{"translate-x":St()}],"translate-y":[{"translate-y":St()}],"translate-z":[{"translate-z":St()}],"translate-none":["translate-none"],accent:[{accent:ee()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ee()}],"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",fe,Oe]}],"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":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mbs":[{"scroll-mbs":T()}],"scroll-mbe":[{"scroll-mbe":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pbs":[{"scroll-pbs":T()}],"scroll-pbe":[{"scroll-pbe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"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",fe,Oe]}],fill:[{fill:["none",...ee()]}],"stroke-w":[{stroke:[Qe,qr,vs,Wg]}],stroke:[{stroke:["none",...ee()]}],"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"]}},c5=Y$(o5);function re(...t){return c5(v$(t))}function u5({children:t}){return i.jsx(h$,{delayDuration:300,children:t})}function Ig({children:t,content:a,side:s="top",className:l}){return a?i.jsxs(m$,{children:[i.jsx(p$,{asChild:!0,children:t}),i.jsx(x$,{children:i.jsxs(g$,{side:s,sideOffset:6,className:re("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",l),children:[a,i.jsx(b$,{className:"fill-surface-4"})]})})]}):t}/**
30
30
  * @license lucide-react v1.7.0 - ISC
31
31
  *
32
32
  * This source code is licensed under the ISC license.
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" type="image/png" href="/favicon.png" />
7
7
  <title>Groove GUI</title>
8
- <script type="module" crossorigin src="/assets/index-H_e3KvZp.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-B1FkEzF0.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/vendor-C0HXlhrU.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/reactflow-BQPfi37R.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/codemirror-BBL3i_JW.js">
@@ -197,13 +197,17 @@ export const useGrooveStore = create((set, get) => ({
197
197
  case 'agent:exit': {
198
198
  const agent = get().agents.find((a) => a.id === msg.agentId);
199
199
  const name = agent?.name || msg.agentId;
200
- // Exit 143 = SIGTERM (kill), exit 137 = SIGKILL — treat as intentional kill
201
200
  const isKill = msg.status === 'killed' || msg.code === 143 || msg.code === 137;
202
201
  const text = msg.status === 'completed' ? `${name} completed`
203
202
  : isKill ? `${name} stopped`
204
203
  : `${name} crashed (exit ${msg.code})`;
205
204
  const type = msg.status === 'completed' ? 'success' : isKill ? 'info' : 'warning';
206
- get().addToast(type, text);
205
+ get().addToast(type, text, msg.error ? msg.error.slice(0, 200) : undefined);
206
+
207
+ // Log crash error to agent chat so user can see what happened
208
+ if (msg.error && msg.agentId) {
209
+ get().addChatMessage(msg.agentId, 'system', `Crashed: ${msg.error}`);
210
+ }
207
211
  // Check for recommended team when planner completes
208
212
  if (agent?.role === 'planner' && msg.status === 'completed') {
209
213
  setTimeout(() => get().checkRecommendedTeam(), 1000);