@mrpatronz/nexusflow 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +15 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +66 -21
- package/dist/commands/open.js.map +1 -1
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +31 -0
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +34 -13
- package/dist/core/workspace.js.map +1 -1
- package/dist/gui/antigravity-logo.png +0 -0
- package/dist/gui/assets/AgentsPage-BNHR9qux.js +3 -0
- package/dist/gui/assets/CSPContext-BG7no5S_.js +1 -0
- package/dist/gui/assets/DashboardPage-BScH3Cxp.js +1 -0
- package/dist/gui/assets/{GettingStartedPage-BJvrh67p.js → GettingStartedPage-AWlI-176.js} +1 -1
- package/dist/gui/assets/ProjectsPage-Bojj7gxI.js +1 -0
- package/dist/gui/assets/ScaffoldRepoInline-DJMbeHVM.js +1 -0
- package/dist/gui/assets/SettingsPage-BAdXO8X0.js +1 -0
- package/dist/gui/assets/SkillsPage-CF6Db1FA.js +6 -0
- package/dist/gui/assets/StartWorkPage-BQid3uIw.js +1 -0
- package/dist/gui/assets/{StrategiesPage-CWMrYI29.js → StrategiesPage-nGbR9TAc.js} +2 -2
- package/dist/gui/assets/WorkspacesPage-7XRtVJNF.js +2 -0
- package/dist/gui/assets/{alert-dialog-CroDe9HW.js → alert-dialog-67uzXJi4.js} +1 -1
- package/dist/gui/assets/antigravity-logo-DRKQga2U.png +0 -0
- package/dist/gui/assets/{badge-BnkhqVEF.js → badge-CAohJGj6.js} +1 -1
- package/dist/gui/assets/{bot-wH0FKlic.js → bot-C2HWrAft.js} +1 -1
- package/dist/gui/assets/{button-cPldH5S4.js → button-BDDZnIHx.js} +1 -1
- package/dist/gui/assets/card-BKXzd_5L.js +1 -0
- package/dist/gui/assets/chevron-down-qTL8HPug.js +1 -0
- package/dist/gui/assets/{circle-plus-C0PNc7h4.js → circle-plus-lmU1yNJd.js} +1 -1
- package/dist/gui/assets/{code-xml-Chu1p81J.js → code-xml-jFAa3-TT.js} +1 -1
- package/dist/gui/assets/{cpu-CPUNnHRM.js → cpu-Cdwd84Jz.js} +1 -1
- package/dist/gui/assets/{empty-DWyDwDYB.js → empty-BdlgbifD.js} +1 -1
- package/dist/gui/assets/{git-branch-Dw55pQWa.js → git-branch-Cfj9D8yW.js} +1 -1
- package/dist/gui/assets/index-CZoZQkeC.css +2 -0
- package/dist/gui/assets/index-V1dDX1O_.js +50 -0
- package/dist/gui/assets/isElementDisabled-D_fu2zfc.js +1 -0
- package/dist/gui/assets/{label-JFgMNsTn.js → label-CG5exjag.js} +1 -1
- package/dist/gui/assets/square-DlIYnlSq.js +1 -0
- package/dist/gui/assets/store-D7ixdVck.js +3 -0
- package/dist/gui/assets/styles-CVwNuFCx.js +1 -0
- package/dist/gui/assets/textarea-BNRuIXNs.js +1 -0
- package/dist/gui/assets/{trash-2-Da8F2gKd.js → trash-2-CtR35_eF.js} +1 -1
- package/dist/gui/assets/useAriaLabelledBy-DfRdwH8a.js +1 -0
- package/dist/gui/assets/useValueChanged-CStSGSsD.js +1 -0
- package/dist/gui/assets/vsc-Di05BTNr.js +1 -0
- package/dist/gui/assets/{zap-FQrDnrgb.js → zap-CWG_Lvki.js} +1 -1
- package/dist/gui/index.html +9 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +129 -22
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +178 -6
- package/dist/server.test.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/detect-editors.d.ts +1 -7
- package/dist/utils/detect-editors.d.ts.map +1 -1
- package/dist/utils/detect-editors.js +12 -10
- package/dist/utils/detect-editors.js.map +1 -1
- package/dist/utils/detect-editors.test.js +58 -25
- package/dist/utils/detect-editors.test.js.map +1 -1
- package/dist/utils/open-editor.d.ts +1 -1
- package/dist/utils/open-editor.d.ts.map +1 -1
- package/dist/utils/open-editor.js +11 -2
- package/dist/utils/open-editor.js.map +1 -1
- package/dist/utils/prompts.d.ts +5 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +16 -0
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/session-finder.d.ts +9 -0
- package/dist/utils/session-finder.d.ts.map +1 -1
- package/dist/utils/session-finder.js +108 -48
- package/dist/utils/session-finder.js.map +1 -1
- package/dist/utils/session-finder.test.js +105 -1
- package/dist/utils/session-finder.test.js.map +1 -1
- package/dist/utils/terminal-launch.d.ts +39 -0
- package/dist/utils/terminal-launch.d.ts.map +1 -0
- package/dist/utils/terminal-launch.js +205 -0
- package/dist/utils/terminal-launch.js.map +1 -0
- package/dist/utils/terminal-launch.test.d.ts +2 -0
- package/dist/utils/terminal-launch.test.d.ts.map +1 -0
- package/dist/utils/terminal-launch.test.js +117 -0
- package/dist/utils/terminal-launch.test.js.map +1 -0
- package/dist/utils/workspace-launch.d.ts.map +1 -1
- package/dist/utils/workspace-launch.js +3 -1
- package/dist/utils/workspace-launch.js.map +1 -1
- package/package.json +1 -1
- package/dist/gui/assets/AgentsPage-C7wGK7q-.js +0 -3
- package/dist/gui/assets/DashboardPage-DqZRdOF3.js +0 -1
- package/dist/gui/assets/ProjectsPage-B0VFV1vX.js +0 -1
- package/dist/gui/assets/ScaffoldRepoInline-DSt_6QLb.js +0 -1
- package/dist/gui/assets/Separator-Chx6O62Y.js +0 -1
- package/dist/gui/assets/SettingsPage-DO5HasvS.js +0 -1
- package/dist/gui/assets/SkillsPage-CvRIKdsQ.js +0 -6
- package/dist/gui/assets/StartWorkPage-CK5QF6Oa.js +0 -1
- package/dist/gui/assets/WorkspaceLauncher-EIY_u44S.js +0 -1
- package/dist/gui/assets/WorkspacesPage-CHUfqrA6.js +0 -6
- package/dist/gui/assets/card-82INhRRE.js +0 -1
- package/dist/gui/assets/chevron-down-DDmhvRLr.js +0 -1
- package/dist/gui/assets/index-Bq5NL5AJ.css +0 -2
- package/dist/gui/assets/index-CcIOIZ24.js +0 -52
- package/dist/gui/assets/search-ChVovkOL.js +0 -1
- package/dist/gui/assets/skeleton-CCPbfn1L.js +0 -1
- package/dist/gui/assets/spinner-BCEaGbib.js +0 -1
- package/dist/gui/assets/terminal-gK6BMl3E.js +0 -1
- package/dist/gui/assets/textarea-D3-elOAa.js +0 -1
- package/dist/gui/assets/useAriaLabelledBy-DmwmZIqb.js +0 -1
- package/dist/gui/assets/useCompositeListItem-CZnlZ-eF.js +0 -1
- package/dist/gui/assets/useValueChanged-BfI2s7NX.js +0 -1
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{_ as e,b as t,g as n,h as r,m as i,t as a}from"./button-cPldH5S4.js";import{t as ee,xt as o}from"./spinner-BCEaGbib.js";import{t as te}from"./chevron-down-DDmhvRLr.js";import{n as ne,r as re,t as s}from"./terminal-gK6BMl3E.js";import{t as ie}from"./code-xml-Chu1p81J.js";import{t as ae}from"./cpu-CPUNnHRM.js";import{t as oe}from"./search-ChVovkOL.js";import{t as c}from"./trash-2-Da8F2gKd.js";import{t as l}from"./zap-FQrDnrgb.js";import{At as se,B as ce,Ct as le,Et as ue,J as de,_ as u,at as fe,bt as pe,d,dt as me,f,ft as he,g as p,h as m,it as ge,jt as h,mt as _e,nt as ve,p as g,q as ye,tt as be,u as _,vt as xe}from"./index-CcIOIZ24.js";import{t as v}from"./badge-BnkhqVEF.js";import{t as y}from"./card-82INhRRE.js";import{a as Se,i as Ce,n as we,r as Te,t as Ee}from"./empty-DWyDwDYB.js";import{t as b}from"./label-JFgMNsTn.js";import{t as De}from"./textarea-D3-elOAa.js";var Oe=r(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]),x=r(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),ke=r(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ae=r(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),S=r(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),C=r(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),je=r(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Me=r(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),w=r(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),Ne=r(`pen`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),T=r(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Pe=r(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Fe=r(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),E=t(e(),1),D=n(),O={"git-pull-request":C,"flask-conical":S,package:w,database:x,"shield-check":T,terminal:s,zap:l,cpu:ae,layers:Me,boxes:h,code:ie},Ie=[{label:`Blue`,value:`#3b82f6`},{label:`Green`,value:`#10b981`},{label:`Purple`,value:`#8b5cf6`},{label:`Amber`,value:`#f59e0b`},{label:`Red`,value:`#ef4444`},{label:`Cyan`,value:`#06b6d4`},{label:`Pink`,value:`#ec4899`},{label:`Emerald`,value:`#059669`}];function k({showToast:e}){let[t,n]=(0,E.useState)(`global`),[r,s]=(0,E.useState)(``),[ie,ae]=(0,E.useState)({}),[l,x]=(0,E.useState)(!1),[S,C]=(0,E.useState)(null),[Me,w]=(0,E.useState)(!1),[T,k]=(0,E.useState)(null),[Le,A]=(0,E.useState)(!1),[j,M]=(0,E.useState)(`edit`),[Re,N]=(0,E.useState)(!1),[P,F]=(0,E.useState)(null),[ze,I]=(0,E.useState)(!1),[L,R]=(0,E.useState)(null),[Be,Ve]=(0,E.useState)(null),[z,B]=(0,E.useState)(null),{data:V=[],isLoading:He}=ge(),{data:H=[],isLoading:Ue}=fe(t===`global`?void 0:t),{data:We=[]}=he(),{data:U,isLoading:Ge,isError:Ke}=me(t===`global`?``:t),[W,G]=(0,E.useState)(null),qe=ve(),Je=de(),K=be(),Ye=ye(),q=ce(),J=t!==`global`,Y=new Set(W??U?.enabledSkills??[]),X=!J||!Ge&&!Ke&&!!U;(0,E.useEffect)(()=>{if(!J){G(null);return}U&&G([...U.enabledSkills])},[J,t,U]);let Xe=e=>{ae(t=>({...t,[e]:!t[e]}))},Z=H.filter(e=>{if(!r.trim())return!0;let t=r.toLowerCase();return e.title?.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t)||e.tags?.some(e=>e.toLowerCase().includes(t))}),Ze=V.reduce((e,t)=>(e[t.id]=Z.filter(e=>e.category===t.id),e),{}),Q=Z.filter(e=>!e.category||!V.some(t=>t.id===e.category)),Qe=e=>{C(e||{name:``,description:``,icon:`boxes`,color:`#3b82f6`,custom:!0}),x(!0)},$e=async()=>{if(!(!S||!S.name?.trim()))try{await qe.mutateAsync({id:S.id,name:S.name.trim(),description:S.description,icon:S.icon,color:S.color}),e?.(`Category saved successfully`,`success`),x(!1),C(null)}catch(t){e?.(`Failed to save category`,`error`),console.error(t)}},et=(e,t)=>{t.stopPropagation(),R({type:`category`,id:e.id,title:e.name}),I(!0)},$=(e,t)=>{k(e||{name:``,title:``,category:t||(V[0]?.id??`pull-requests`),description:``,tags:[],allowedTools:[],content:`# Skill Title
|
|
2
|
-
|
|
3
|
-
Instructions and playbook for the AI assistant.
|
|
4
|
-
`,custom:!0}),A(!!e),M(`edit`),w(!0)},tt=e=>{if(!T)return;let t={...T,title:e};!Le&&!T.id&&(t.name=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)),k(t)},nt=async()=>{if(!T||!T.name?.trim()||!T.description?.trim()||!T.content?.trim()){e?.(`Skill name, trigger description, and content are required`,`error`);return}try{await K.mutateAsync({id:T.id,name:T.name.trim(),title:T.title||T.name,category:T.category||`general`,description:T.description||``,tags:T.tags||[],allowedTools:T.allowedTools||[],content:T.content}),e?.(`Skill package saved successfully`,`success`),w(!1),k(null)}catch(t){e?.(`Failed to save skill`,`error`),console.error(t)}},rt=(e,t)=>{t.stopPropagation(),R({type:`skill`,id:e.id,title:e.title||e.name}),I(!0)},it=async()=>{if(L)try{L.type===`category`?(await Je.mutateAsync(L.id),e?.(`Category deleted`,`info`)):(await Ye.mutateAsync(L.id),e?.(`Skill package deleted`,`info`)),I(!1),R(null)}catch(t){e?.(`Failed to delete item`,`error`),console.error(t)}},at=e=>{if(!J||!X||W===null)return;let t=new Set(W);t.has(e)?t.delete(e):t.add(e),G(Array.from(t))},ot=()=>{if(!T||T.custom!==!1)return;let e=`${T.name}-copy`;k({...T,id:void 0,name:e,title:`${T.title||T.name} Copy`,allowedTools:[],custom:!0,sourcePath:void 0,references:void 0,scripts:void 0}),A(!0)},st=(e,t)=>{if(!J||!X||W===null)return;let n=Ze[e]||[],r=new Set(W);for(let e of n)t?r.add(e.id):r.delete(e.id);G(Array.from(r))},ct=async()=>{if(!(!U||W===null||!J))try{await q.mutateAsync({workspaceId:t,expectedRevision:U.revision??0,enabledSkills:W,enabledAgents:U.enabledAgents??[],enabledCategories:V.map(e=>e.id)}),e?.(`Skill selection saved. Refresh the workspace to apply it.`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save skill selection`,`error`)}},lt=(e,t)=>{e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`move`,Ve(t)},ut=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,z!==t&&B(t)},dt=()=>{B(null)},ft=async(t,n)=>{t.preventDefault(),B(null);let r=t.dataTransfer.getData(`text/plain`)||Be;if(Ve(null),!r)return;let i=H.find(e=>e.id===r);!i||!i.custom||J||i.category===n||(await K.mutateAsync({id:i.id,name:i.name,title:i.title,description:i.description,tags:i.tags,allowedTools:i.allowedTools,content:i.content,category:n}),e?.(`Skill re-categorized`,`success`))},pt=(e,t)=>{t.stopPropagation(),F(e),N(!0)},mt=async t=>{if(!P||P.category===t){N(!1),F(null);return}await K.mutateAsync({id:P.id,name:P.name,title:P.title,description:P.description,tags:P.tags,allowedTools:P.allowedTools,content:P.content,category:t}),e?.(`Skill moved to category`,`success`),N(!1),F(null)};return(0,D.jsxs)(`div`,{className:`flex-1 flex flex-col h-full overflow-hidden bg-background text-foreground`,children:[(0,D.jsxs)(`div`,{className:`p-6 border-b border-border flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-card/40 backdrop-blur-sm`,children:[(0,D.jsx)(`div`,{children:(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsx)(`div`,{className:`p-2 rounded-xl bg-primary/10 text-primary`,children:(0,D.jsx)(h,{className:`h-6 w-6`})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h1`,{className:`text-xl font-bold tracking-tight`,children:`Skill Library`}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create, organize, and assign reusable Agent Skill packages.`})]})]})}),(0,D.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,D.jsx)(a,{render:(0,D.jsx)(_e,{to:`/agents`}),variant:`outline`,size:`sm`,children:`Codex Agents`}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/50 rounded-lg px-3 py-1.5 border border-border`,children:[(0,D.jsx)(ue,{className:`h-4 w-4 text-muted-foreground`}),(0,D.jsx)(b,{htmlFor:`skill-scope`,className:`text-xs font-medium text-muted-foreground`,children:`Scope:`}),(0,D.jsxs)(`select`,{id:`skill-scope`,value:t,onChange:e=>n(e.target.value),className:`bg-transparent text-xs font-semibold focus:outline-none cursor-pointer text-foreground`,children:[(0,D.jsx)(`option`,{value:`global`,className:`bg-popover text-popover-foreground`,children:`🌐 Global Skills Catalog`}),We.map(e=>(0,D.jsxs)(`option`,{value:e.id,className:`bg-popover text-popover-foreground`,children:[`📁 `,e.id,` (`,e.branchName,`)`]},e.id))]})]}),J&&(0,D.jsx)(a,{size:`sm`,onClick:ct,disabled:!X||q.isPending||W===null,children:q.isPending?`Saving…`:`Save selection`}),!J&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(a,{variant:`outline`,size:`sm`,onClick:()=>Qe(),className:`flex items-center gap-1.5`,children:[(0,D.jsx)(le,{className:`h-3.5 w-3.5`}),(0,D.jsx)(`span`,{children:`New Category`})]}),(0,D.jsxs)(a,{variant:`default`,size:`sm`,onClick:()=>$(),className:`flex items-center gap-1.5`,children:[(0,D.jsx)(pe,{className:`h-3.5 w-3.5`}),(0,D.jsx)(`span`,{children:`New Skill`})]})]})]})]}),(0,D.jsxs)(`div`,{className:`px-6 py-3 border-b border-border/60 bg-muted/20 flex items-center justify-between gap-4`,children:[(0,D.jsxs)(`div`,{className:`relative flex-1 max-w-md`,children:[(0,D.jsx)(oe,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,D.jsx)(o,{value:r,onChange:e=>s(e.target.value),placeholder:`Search skills by keyword, tag, or tool...`,className:`pl-9 pr-8 h-9 text-xs`}),r&&(0,D.jsx)(`button`,{onClick:()=>s(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,children:(0,D.jsx)(xe,{className:`h-3.5 w-3.5`})})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,D.jsxs)(`span`,{children:[`Showing `,(0,D.jsx)(`strong`,{className:`text-foreground`,children:Z.length}),` of`,` `,(0,D.jsx)(`strong`,{className:`text-foreground`,children:H.length}),` skills`]}),J&&(0,D.jsxs)(v,{variant:`secondary`,className:`text-[10px] uppercase font-mono`,children:[`Workspace Mode (`,Y.size,` active)`]})]})]}),(0,D.jsx)(u,{className:`flex-1 p-6`,children:He||Ue||J&&Ge?(0,D.jsxs)(`div`,{className:`flex items-center justify-center p-12 gap-3 text-muted-foreground`,children:[(0,D.jsx)(ee,{}),(0,D.jsx)(`span`,{className:`text-sm`,children:`Loading skills catalog...`})]}):J&&Ke?(0,D.jsx)(Ee,{className:`py-12 border border-dashed rounded-xl`,children:(0,D.jsxs)(Te,{children:[(0,D.jsx)(Se,{children:`Workspace resources could not be loaded`}),(0,D.jsx)(we,{children:`Assignment controls are disabled so an existing selection cannot be overwritten.`})]})}):Z.length===0&&r?(0,D.jsxs)(Ee,{className:`py-12 border border-dashed rounded-xl`,children:[(0,D.jsx)(Ce,{children:(0,D.jsx)(oe,{className:`h-8 w-8 text-muted-foreground/60`})}),(0,D.jsxs)(Te,{children:[(0,D.jsx)(Se,{children:`No matching skills found`}),(0,D.jsxs)(we,{children:[`No skills matched your search query "`,r,`".`]})]}),(0,D.jsx)(a,{variant:`outline`,size:`sm`,onClick:()=>s(``),children:`Clear Search`})]}):(0,D.jsxs)(`div`,{className:`space-y-6 max-w-7xl mx-auto pb-12`,children:[V.map(e=>{let t=O[e.icon||`boxes`]||h,n=Ze[e.id]||[],r=!!ie[e.id],ee=z===e.id,o=n.length>0&&n.every(e=>Y.has(e.id));return(0,D.jsxs)(`div`,{onDragOver:t=>ut(t,e.id),onDragLeave:dt,onDrop:t=>ft(t,e.id),className:i(`border rounded-xl transition-all duration-150 overflow-hidden bg-card/60`,ee?`border-primary ring-2 ring-primary/20 bg-primary/5`:`border-border`),children:[(0,D.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-expanded":!r,onClick:()=>Xe(e.id),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),Xe(e.id))},className:`p-4 flex items-center justify-between cursor-pointer hover:bg-muted/40 transition-colors border-b border-border/40 select-none`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsx)(`div`,{className:`p-2 rounded-lg text-white shadow-sm flex items-center justify-center`,style:{backgroundColor:e.color||`#3b82f6`},children:(0,D.jsx)(t,{className:`h-4 w-4`})}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`h2`,{className:`font-semibold text-sm tracking-tight`,children:e.name}),(0,D.jsxs)(v,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[n.length,` `,n.length===1?`skill`:`skills`]}),e.isTemplate&&!e.custom&&(0,D.jsx)(v,{variant:`secondary`,className:`text-[9px] px-1 py-0 uppercase`,children:`Template`})]}),e.description&&(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e.description})]})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[J&&n.length>0&&(0,D.jsxs)(a,{variant:`ghost`,size:`xs`,onClick:()=>st(e.id,!o),className:`h-7 text-xs mr-2 text-muted-foreground hover:text-foreground`,title:o?`Deselect all in category`:`Select all in category`,children:[o?(0,D.jsx)(Pe,{className:`h-3.5 w-3.5 mr-1 text-primary`}):(0,D.jsx)(ne,{className:`h-3.5 w-3.5 mr-1`}),(0,D.jsx)(`span`,{children:o?`Deselect All`:`Select All`})]}),!J&&(0,D.jsx)(a,{variant:`ghost`,size:`icon-xs`,onClick:()=>$(void 0,e.id),title:`Add skill to this category`,children:(0,D.jsx)(le,{className:`h-3.5 w-3.5`})}),!J&&(0,D.jsx)(a,{variant:`ghost`,size:`icon-xs`,onClick:()=>Qe(e),title:`Edit category`,children:(0,D.jsx)(Ne,{className:`h-3 w-3`})}),!J&&e.custom&&(0,D.jsx)(a,{variant:`ghost`,size:`icon-xs`,onClick:t=>et(e,t),title:`Delete category`,className:`text-destructive hover:text-destructive`,children:(0,D.jsx)(c,{className:`h-3 w-3`})}),(0,D.jsx)(`div`,{className:`p-1 text-muted-foreground`,children:r?(0,D.jsx)(re,{className:`h-4 w-4`}):(0,D.jsx)(te,{className:`h-4 w-4`})})]})]}),!r&&(0,D.jsx)(`div`,{className:`p-4 bg-background/50`,children:n.length===0?(0,D.jsxs)(`div`,{className:`border border-dashed border-border/80 rounded-lg p-6 text-center text-xs text-muted-foreground`,children:[`No skills in this category.`,!J&&(0,D.jsxs)(D.Fragment,{children:[` `,`Drag a custom skill here, or click`,` `,(0,D.jsx)(`button`,{onClick:()=>$(void 0,e.id),className:`text-primary underline font-medium`,children:`+ Add Skill`})]})]}):(0,D.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:n.map(e=>{let t=Y.has(e.id);return(0,D.jsxs)(y,{draggable:!J&&!!e.custom,onDragStart:t=>{!J&&e.custom&<(t,e.id)},onClick:()=>$(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e))},className:i(`group relative cursor-pointer hover:border-primary/60 transition-all p-3.5 flex flex-col justify-between select-none shadow-sm`,J&&!t&&`opacity-60 bg-muted/20`,Be===e.id&&`opacity-40 border-dashed`),children:[(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-2`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground group-hover:text-foreground cursor-grab active:cursor-grabbing`,title:`Drag to reorder or re-categorize`,"aria-label":`Drag handle`,children:[(0,D.jsx)(je,{className:`h-3.5 w-3.5`}),(0,D.jsx)(`span`,{className:`font-mono text-xs font-bold text-foreground`,children:e.title||e.name})]}),J?(0,D.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),at(e.id)},disabled:!X||q.isPending,className:i(`h-5 px-2 rounded-md flex items-center gap-1 text-[10px] font-semibold transition-colors`,t?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-muted/80`),children:[(0,D.jsx)(se,{className:i(`h-3 w-3`,!t&&`opacity-0`)}),(0,D.jsx)(`span`,{children:t?`Enabled`:`Disabled`})]}):(0,D.jsx)(v,{variant:`outline`,className:`text-[10px] font-mono`,children:e.custom?`Custom`:`Template`})]}),(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground line-clamp-2 mb-3 leading-relaxed`,children:e.description||`No description provided.`})]}),(0,D.jsxs)(`div`,{className:`pt-2 border-t border-border/40 flex items-center justify-between gap-2`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap overflow-hidden`,children:[e.tags?.slice(0,2).map(e=>(0,D.jsxs)(`span`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded text-muted-foreground`,children:[`#`,e]},e)),e.allowedTools&&e.allowedTools.length>0&&(0,D.jsxs)(`span`,{className:`text-[10px] text-muted-foreground flex items-center gap-0.5 font-mono`,children:[(0,D.jsx)(Fe,{className:`h-2.5 w-2.5`}),e.allowedTools.length]})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[!J&&e.custom&&(0,D.jsx)(a,{variant:`ghost`,size:`icon-xs`,onClick:t=>pt(e,t),title:`Move to another category`,className:`h-6 w-6 text-muted-foreground hover:text-foreground`,children:(0,D.jsx)(Oe,{className:`h-3 w-3`})}),!J&&e.custom&&(0,D.jsx)(a,{variant:`ghost`,size:`icon-xs`,onClick:t=>rt(e,t),title:`Delete skill`,className:`h-6 w-6 text-destructive hover:text-destructive`,children:(0,D.jsx)(c,{className:`h-3 w-3`})})]})]})]},e.id)})})})]},e.id)}),Q.length>0&&(0,D.jsxs)(`div`,{className:`border border-border/80 rounded-xl overflow-hidden bg-card/60`,children:[(0,D.jsx)(`div`,{className:`p-4 bg-muted/30 border-b border-border/40 flex items-center justify-between`,children:(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(h,{className:`h-4 w-4 text-muted-foreground`}),(0,D.jsx)(`h2`,{className:`font-semibold text-sm`,children:`Uncategorized Skills`}),(0,D.jsx)(v,{variant:`outline`,className:`text-[10px]`,children:Q.length})]})}),(0,D.jsx)(`div`,{className:`p-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:Q.map(e=>(0,D.jsxs)(y,{onClick:()=>$(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e))},className:`p-3.5 cursor-pointer hover:border-primary/60`,children:[(0,D.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,D.jsx)(`div`,{className:`font-mono text-xs font-bold`,children:e.title||e.name}),J&&(0,D.jsx)(a,{size:`xs`,variant:Y.has(e.id)?`default`:`outline`,disabled:!X||q.isPending,onClick:t=>{t.stopPropagation(),at(e.id)},children:Y.has(e.id)?`Enabled`:`Disabled`})]}),(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground line-clamp-2`,children:e.description})]},e.id))})]})]})}),(0,D.jsx)(_,{open:l,onOpenChange:x,children:(0,D.jsxs)(m,{className:`sm:max-w-lg`,children:[(0,D.jsxs)(g,{children:[(0,D.jsx)(p,{children:S?.id?`Edit Skill Category`:`Create Skill Category`}),(0,D.jsx)(d,{children:`Categories group related procedural skills and agent tools into clean visual boxes.`})]}),(0,D.jsxs)(`div`,{className:`space-y-4 py-2`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`cat-name`,className:`text-xs font-medium`,children:`Category Name`}),(0,D.jsx)(o,{id:`cat-name`,value:S?.name||``,onChange:e=>C(t=>t?{...t,name:e.target.value}:null),placeholder:`e.g. Pull Requests & Review`,className:`mt-1 text-xs`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`cat-desc`,className:`text-xs font-medium`,children:`Description`}),(0,D.jsx)(o,{id:`cat-desc`,value:S?.description||``,onChange:e=>C(t=>t?{...t,description:e.target.value}:null),placeholder:`Brief summary of what skills belong in this box...`,className:`mt-1 text-xs`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{className:`text-xs font-medium`,children:`Icon`}),(0,D.jsx)(`div`,{className:`grid grid-cols-6 gap-2 mt-1.5`,children:Object.keys(O).map(e=>{let t=O[e];return(0,D.jsx)(`button`,{type:`button`,onClick:()=>C(t=>t?{...t,icon:e}:null),className:i(`p-2.5 rounded-lg border flex items-center justify-center transition-colors`,(S?.icon||`boxes`)===e?`border-primary bg-primary/10 text-primary`:`border-border hover:bg-muted text-muted-foreground`),children:(0,D.jsx)(t,{className:`h-4 w-4`})},e)})})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{className:`text-xs font-medium`,children:`Color Accent`}),(0,D.jsx)(`div`,{className:`flex items-center gap-2 mt-1.5 flex-wrap`,children:Ie.map(e=>{let t=S?.color===e.value;return(0,D.jsx)(`button`,{type:`button`,"aria-label":`Select color ${e.label}`,onClick:()=>C(t=>t?{...t,color:e.value}:null),className:i(`w-7 h-7 rounded-full transition-transform flex items-center justify-center shadow-sm`,t?`scale-110 ring-2 ring-primary ring-offset-2`:`hover:scale-105`),style:{backgroundColor:e.value},children:t&&(0,D.jsx)(se,{className:`h-3.5 w-3.5 text-white`})},e.value)})})]})]}),(0,D.jsxs)(f,{children:[(0,D.jsx)(a,{variant:`outline`,size:`sm`,onClick:()=>x(!1),children:`Cancel`}),(0,D.jsx)(a,{variant:`default`,size:`sm`,onClick:$e,disabled:!S?.name?.trim(),children:`Save Category`})]})]})}),(0,D.jsx)(_,{open:Me,onOpenChange:w,children:(0,D.jsxs)(m,{className:`sm:max-w-3xl max-h-[90vh] flex flex-col`,children:[(0,D.jsx)(g,{children:(0,D.jsxs)(`div`,{className:`flex items-center justify-between pr-6`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(p,{children:T?.id?`Edit Skill Package`:`Create New Skill`}),(0,D.jsx)(d,{children:`Configure SKILL.md metadata triggers and markdown playbook instructions.`})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted/60 p-1 rounded-lg border border-border text-xs`,children:[(0,D.jsxs)(`button`,{type:`button`,onClick:()=>M(`edit`),className:i(`px-2.5 py-1 rounded-md flex items-center gap-1 font-medium transition-colors`,j===`edit`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`),children:[(0,D.jsx)(Ae,{className:`h-3.5 w-3.5`}),(0,D.jsx)(`span`,{children:`Edit`})]}),(0,D.jsxs)(`button`,{type:`button`,onClick:()=>M(`preview`),className:i(`px-2.5 py-1 rounded-md flex items-center gap-1 font-medium transition-colors`,j===`preview`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`),children:[(0,D.jsx)(ke,{className:`h-3.5 w-3.5`}),(0,D.jsx)(`span`,{children:`Preview`})]})]})]})}),(0,D.jsx)(u,{className:`flex-1 pr-4 py-2`,children:j===`edit`?(0,D.jsxs)(`div`,{className:`space-y-4`,children:[(0,D.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-title`,className:`text-xs font-medium`,children:`Display Title`}),(0,D.jsx)(o,{id:`skill-title`,value:T?.title||``,onChange:e=>tt(e.target.value),placeholder:`e.g. Pull Request Reviewer`,className:`mt-1 text-xs`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-name`,className:`text-xs font-medium`,children:`Identifier (Slug)`}),(0,D.jsx)(o,{id:`skill-name`,value:T?.name||``,disabled:!!T?.id,onChange:e=>{A(!0),k(t=>t?{...t,name:e.target.value}:null)},placeholder:`e.g. pr-review-toolkit`,className:`mt-1 text-xs font-mono`})]})]}),(0,D.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-cat`,className:`text-xs font-medium`,children:`Category Box`}),(0,D.jsx)(`select`,{id:`skill-cat`,value:T?.category||``,onChange:e=>k(t=>t?{...t,category:e.target.value}:null),className:`mt-1 w-full bg-background border border-border rounded-md px-3 py-2 text-xs focus:outline-none focus:ring-1 focus:ring-primary`,children:V.map(e=>(0,D.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-tags`,className:`text-xs font-medium`,children:`Tags (comma separated)`}),(0,D.jsx)(o,{id:`skill-tags`,value:T?.tags?.join(`, `)||``,onChange:e=>k(t=>t?{...t,tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)}:null),placeholder:`e.g. git, pr, quality`,className:`mt-1 text-xs font-mono`})]})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-desc`,className:`text-xs font-medium`,children:`Trigger Description (for AI Autonomous Discovery)`}),(0,D.jsx)(o,{id:`skill-desc`,value:T?.description||``,onChange:e=>k(t=>t?{...t,description:e.target.value}:null),placeholder:`e.g. Use when reviewing PR diffs or when user asks for a PR audit...`,className:`mt-1 text-xs`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(b,{htmlFor:`skill-content`,className:`text-xs font-medium`,children:`Playbook Instructions (Markdown)`}),(0,D.jsx)(De,{id:`skill-content`,value:T?.content||``,onChange:e=>k(t=>t?{...t,content:e.target.value}:null),rows:12,placeholder:`# Playbook Title
|
|
5
|
-
|
|
6
|
-
Detailed instructions for the AI assistant...`,className:`mt-1 font-mono text-xs leading-relaxed`})]})]}):(0,D.jsxs)(`div`,{className:`p-4 border rounded-xl bg-card/40 prose prose-sm dark:prose-invert max-w-none`,children:[(0,D.jsxs)(`div`,{className:`mb-4 pb-3 border-b`,children:[(0,D.jsx)(`h2`,{className:`text-lg font-bold m-0`,children:T?.title||T?.name}),(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground m-0 mt-1`,children:T?.description})]}),(0,D.jsx)(`pre`,{className:`text-xs whitespace-pre-wrap font-sans bg-transparent p-0 border-0`,children:T?.content||`*(No playbook markdown provided)*`})]})}),(0,D.jsxs)(f,{className:`mt-4 pt-3 border-t`,children:[(0,D.jsx)(a,{variant:`outline`,size:`sm`,onClick:()=>w(!1),children:`Cancel`}),(0,D.jsx)(a,{variant:`default`,size:`sm`,onClick:T?.custom===!1?ot:nt,disabled:!T?.name?.trim()||!T?.description?.trim()||!T?.content?.trim(),children:T?.custom===!1?`Create editable copy`:`Save Skill`})]})]})}),(0,D.jsx)(_,{open:Re,onOpenChange:N,children:(0,D.jsxs)(m,{className:`sm:max-w-md`,children:[(0,D.jsxs)(g,{children:[(0,D.jsx)(p,{children:`Move Skill to Category`}),(0,D.jsxs)(d,{children:[`Select the destination category box for "`,P?.title||P?.name,`".`]})]}),(0,D.jsx)(`div`,{className:`space-y-2 py-2`,children:V.map(e=>{let t=O[e.icon||`boxes`]||h,n=P?.category===e.id;return(0,D.jsxs)(`button`,{type:`button`,onClick:()=>mt(e.id),className:i(`w-full p-3 rounded-lg border text-left flex items-center justify-between transition-colors`,n?`border-primary bg-primary/10`:`border-border hover:bg-muted/50 text-foreground`),children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsx)(`div`,{className:`p-1.5 rounded text-white flex items-center justify-center`,style:{backgroundColor:e.color||`#3b82f6`},children:(0,D.jsx)(t,{className:`h-4 w-4`})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`font-semibold text-xs`,children:e.name}),e.description&&(0,D.jsx)(`div`,{className:`text-[11px] text-muted-foreground line-clamp-1`,children:e.description})]})]}),n&&(0,D.jsx)(v,{variant:`secondary`,className:`text-[10px]`,children:`Current`})]},e.id)})}),(0,D.jsx)(f,{children:(0,D.jsx)(a,{variant:`outline`,size:`sm`,onClick:()=>N(!1),children:`Cancel`})})]})}),(0,D.jsx)(_,{open:ze,onOpenChange:I,children:(0,D.jsxs)(m,{className:`sm:max-w-md`,children:[(0,D.jsxs)(g,{children:[(0,D.jsxs)(p,{className:`text-destructive`,children:[`Delete `,L?.type===`category`?`Category`:`Skill`]}),(0,D.jsxs)(d,{children:[`Are you sure you want to delete "`,L?.title,`"? This action cannot be undone.`]})]}),(0,D.jsxs)(f,{className:`mt-4`,children:[(0,D.jsx)(a,{variant:`outline`,size:`sm`,onClick:()=>I(!1),children:`Cancel`}),(0,D.jsx)(a,{variant:`destructive`,size:`sm`,onClick:it,children:`Delete Permanently`})]})]})})]})}export{k as SkillsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,b as t,g as n,m as r,t as i}from"./button-cPldH5S4.js";import{t as a,xt as o}from"./spinner-BCEaGbib.js";import{t as s}from"./WorkspaceLauncher-EIY_u44S.js";import{t as ee}from"./chevron-down-DDmhvRLr.js";import{n as c,r as te,t as ne}from"./ScaffoldRepoInline-DSt_6QLb.js";import{t as l}from"./git-branch-Dw55pQWa.js";import{t as u}from"./zap-FQrDnrgb.js";import{$ as re,A as d,At as f,Et as ie,M as p,N as m,Pt as h,Q as g,W as ae,Z as oe,_t as se,bt as _,gt as ce,i as le,j as v,k as y,kt as b,mt as ue,n as de,pt as fe,r as pe,s as me,st as he,z as ge}from"./index-CcIOIZ24.js";import{t as x}from"./textarea-D3-elOAa.js";var S=t(e(),1),C={status:`idle`,steps:[]};function _e(){let[e,t]=(0,S.useState)(C),n=(0,S.useRef)(null),r=h(),i=(0,S.useCallback)(()=>{n.current?.close(),n.current=null},[]);return(0,S.useEffect)(()=>i,[i]),{progress:e,start:(0,S.useCallback)(e=>{i(),t({status:`running`,steps:[]});let a=new EventSource(`/api/workspace/create-stream/${encodeURIComponent(e)}`);n.current=a;let o=0;a.addEventListener(`progress`,n=>{o=0;try{let a=JSON.parse(n.data);t({status:a.status===`completed`||a.status===`failed`?a.status:`running`,steps:a.steps??[],error:a.error,workspacePath:a.workspacePath,workspaceId:a.feature?.id??e}),(a.status===`completed`||a.status===`failed`)&&(i(),r.invalidateQueries({queryKey:[`workspaces`]}),r.invalidateQueries({queryKey:[`workspaces-status`]}))}catch{}}),a.onerror=()=>{o+=1,!(a.readyState!==EventSource.CLOSED&&o<5)&&(t(e=>e.status===`running`?{...e,status:`failed`,error:e.error??`Lost connection to the creation stream.`}:e),i())}},[i,r]),reset:(0,S.useCallback)(()=>{i(),t(C)},[i])}}var w=n(),T=`__ad-hoc__`,ve=new URLSearchParams(window.location.search).get(`env`)===`vscode`,ye=[{value:`in-place`,icon:u,title:`In-place`,body:`Work directly in the source repos. No branches or worktrees — fastest start.`},{value:`worktree`,icon:l,title:`Isolated worktrees`,body:`A feature branch and worktree per repo. Your source checkouts stay untouched.`}];function be({repo:e,value:t,onChange:n,enabled:r}){let i=g(e.path,r),a=(0,S.useMemo)(()=>[...new Set([...i.data?.local??[],...i.data?.remote??[]])],[i.data]),s=`branches-${e.path.replace(/[^a-zA-Z0-9]/g,`-`)}`;return(0,w.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{className:`w-40 shrink-0 truncate text-xs`,children:e.name}),(0,w.jsx)(o,{list:s,value:t,onChange:e=>n(e.target.value),placeholder:`existing branch (must exist)`,className:`h-7 font-mono text-xs`}),(0,w.jsx)(`datalist`,{id:s,children:a.map(e=>(0,w.jsx)(`option`,{value:e},e))})]})}function xe({step:e}){return(0,w.jsxs)(`li`,{className:`flex items-center gap-3 py-2`,children:[(0,w.jsx)(`span`,{className:r(`grid size-5 shrink-0 place-items-center rounded-full border`,e.status===`completed`&&`border-success bg-success/15 text-success-foreground`,e.status===`running`&&`border-primary text-primary`,e.status===`failed`&&`border-destructive bg-destructive/15 text-destructive-foreground`,e.status===`pending`&&`border-border text-muted-foreground`),children:e.status===`completed`?(0,w.jsx)(f,{className:`size-3`}):e.status===`running`?(0,w.jsx)(a,{className:`size-3`}):e.status===`failed`?(0,w.jsx)(b,{className:`size-3`}):null}),(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`p`,{className:`text-sm font-medium`,children:e.name}),(0,w.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:e.message})]})]})}function E(){let e=ce(),[t]=se(),n=oe(),l=re(),u=ge(),f=he(),h=ae(),{progress:g,start:b}=_e(),[C,E]=(0,S.useState)(t.get(`project`)??T),[D,O]=(0,S.useState)(`in-place`),[k,Se]=(0,S.useState)(``),[A,j]=(0,S.useState)(``),[M,Ce]=(0,S.useState)(``),[N,P]=(0,S.useState)([]),[F,we]=(0,S.useState)(!1),[I,L]=(0,S.useState)([]),[R,z]=(0,S.useState)(``),[B,V]=(0,S.useState)(``),[H,U]=(0,S.useState)(!1),[W,G]=(0,S.useState)(null),[K,Te]=(0,S.useState)({}),[Ee,De]=(0,S.useState)(!1),[q,J]=(0,S.useState)(null),Y=(0,S.useRef)(!1);(0,S.useEffect)(()=>{!Y.current&&u.data&&(Y.current=!0,L(u.data.filter(e=>e.detected).map(e=>e.name)))},[u.data]);let X=(0,S.useMemo)(()=>(n.data??[]).find(e=>e.id===C)??null,[n.data,C]),Z=(0,S.useMemo)(()=>X?X.repos.map(e=>({name:me(e.path),path:e.path,defaultBranch:e.defaultBranch})):(l.data??[]).filter(e=>N.includes(e.path)),[X,l.data,N]),Q=D===`in-place`,Oe=(Q?A.trim().length>0:k.trim().length>0)&&Z.length>0&&M.trim().length>0,ke=e=>{z(e),G(null);let t=(f.data??[]).find(t=>t.id===e);V(t?.content??``)},Ae=async()=>{if(!M.trim()){J(`Describe what you are building first — the suggestion is based on it.`);return}J(null),U(!0);try{let e=await fe(`/api/workspace/suggest-workflow`,{method:`POST`,body:JSON.stringify({description:M,repos:Z})});z(e.suggestedWorkflowId),V(e.customInstructions),G(e.difficulty)}catch(e){J(e instanceof Error?e.message:String(e))}finally{U(!1)}},je=async()=>{J(null);let e={mode:D,projectId:X?.id,...Q?{name:A.trim()}:{branchName:k.trim()},description:M.trim(),repos:Z.map(e=>({...e,existingBranch:!Q&&K[e.path]?.trim()?K[e.path].trim():void 0})),assistants:I,teamworkInstructions:B.trim()||void 0};try{let{jobId:t}=await h.mutateAsync(e);b(t)}catch(e){J(e instanceof Error?e.message:String(e))}},$=I.find(e=>le(e)!==null);if(g.status!==`idle`){let t=g.steps.find(e=>e.status===`failed`);return(0,w.jsxs)(`div`,{className:`mx-auto max-w-xl animate-fade-in`,children:[(0,w.jsx)(`h1`,{className:`text-xl font-semibold`,children:g.status===`running`?`Setting up your workspace…`:g.status===`completed`?`Workspace ready`:`Workspace creation failed`}),(0,w.jsx)(`ul`,{className:`mt-6 divide-y divide-border rounded-xl border border-border bg-card px-4`,children:g.steps.map(e=>(0,w.jsx)(xe,{step:e},e.id))}),g.status===`failed`&&(0,w.jsx)(`p`,{className:`mt-4 text-sm text-destructive-foreground`,children:t?.message??g.error??`Something went wrong.`}),g.status===`completed`&&g.workspacePath&&(0,w.jsx)(`p`,{className:`mt-4 truncate font-mono text-xs text-muted-foreground`,children:g.workspacePath}),g.status===`completed`&&$&&(0,w.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:`Embedded start allows edits inside this workspace; you can switch to Review only in chat.`}),q&&(0,w.jsx)(`p`,{className:`mt-2 text-sm text-destructive-foreground`,children:q}),(0,w.jsxs)(`div`,{"data-testid":`workspace-ready-actions`,className:`mt-6 flex min-w-0 flex-col gap-2 sm:flex-row sm:flex-wrap`,children:[g.status===`completed`&&g.workspaceId&&(0,w.jsxs)(w.Fragment,{children:[$&&(0,w.jsxs)(i,{className:`w-full min-w-0 whitespace-normal sm:w-auto`,onClick:()=>e(`/workspaces/${encodeURIComponent(g.workspaceId)}`,{state:{chatLaunch:pe($,{kickoff:`Read the workspace instructions and implementation plan, inspect the repository state, then begin the task described for this workspace. Ask before making a decision that materially changes scope.`,executionProfile:`workspace-write`})}}),children:[(0,w.jsx)(_,{}),`Start editing with `,de($)]}),(0,w.jsx)(i,{className:`w-full min-w-0 whitespace-normal sm:w-auto`,variant:$?`outline`:void 0,onClick:()=>e(`/workspaces/${encodeURIComponent(g.workspaceId)}`),children:`Open workspace`}),g.workspacePath&&(0,w.jsx)(s,{workspaceId:g.workspaceId,workspacePath:g.workspacePath,isVsCode:ve,className:`w-full min-w-0 whitespace-normal sm:w-auto`})]}),g.status===`failed`&&(0,w.jsx)(i,{variant:`outline`,onClick:()=>window.location.reload(),children:`Start over`}),g.status===`running`&&(0,w.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This can take a moment for large repositories.`})]})]})}return(0,w.jsxs)(`div`,{className:`mx-auto max-w-xl animate-fade-in`,children:[(0,w.jsxs)(`header`,{className:`mb-6`,children:[(0,w.jsx)(`h1`,{className:`text-xl font-semibold`,children:`Start work`}),(0,w.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Pick where the work happens and how isolated it should be.`})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,w.jsxs)(`section`,{children:[(0,w.jsx)(`span`,{className:`mb-1.5 block text-sm font-medium`,children:`Project`}),(0,w.jsxs)(y,{value:C,onValueChange:e=>typeof e==`string`&&E(e),children:[(0,w.jsx)(p,{className:`w-full`,"aria-label":`Project`,children:(0,w.jsx)(m,{children:X?X.name:`Ad-hoc — pick repositories manually`})}),(0,w.jsxs)(v,{alignItemWithTrigger:!1,children:[(n.data??[]).map(e=>(0,w.jsx)(d,{value:e.id,children:e.name},e.id)),(0,w.jsx)(d,{value:T,children:`Ad-hoc — pick repositories manually`})]})]}),X?(0,w.jsx)(`ul`,{className:`mt-2 flex flex-col gap-0.5`,children:X.repos.map(e=>(0,w.jsx)(`li`,{className:`truncate font-mono text-xs text-muted-foreground`,children:e.path},e.path))}):(0,w.jsxs)(`div`,{className:`mt-2`,children:[(0,w.jsx)(c,{repos:l.data??[],selectedPaths:N,onToggle:e=>P(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path]),loading:l.isLoading}),(0,w.jsx)(ne,{onCreated:e=>P(t=>[...t,e.path])})]}),(n.data??[]).length===0&&!n.isLoading&&(0,w.jsxs)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:[`Tip: `,(0,w.jsx)(ue,{to:`/projects`,className:`text-primary hover:underline`,children:`register a project`}),` to skip repo picking next time.`]})]}),(0,w.jsxs)(`section`,{children:[(0,w.jsx)(`span`,{className:`mb-1.5 block text-sm font-medium`,children:`How do you want to work?`}),(0,w.jsx)(`div`,{role:`radiogroup`,"aria-label":`Work mode`,className:`grid gap-3 sm:grid-cols-2`,onKeyDown:e=>{if([`ArrowRight`,`ArrowDown`,`ArrowLeft`,`ArrowUp`].includes(e.key)){e.preventDefault();let t=D===`in-place`?`worktree`:`in-place`;O(t),document.getElementById(`mode-${t}`)?.focus()}},children:ye.map(e=>(0,w.jsxs)(`button`,{id:`mode-${e.value}`,type:`button`,role:`radio`,"aria-checked":D===e.value,tabIndex:D===e.value?0:-1,onClick:()=>O(e.value),className:r(`cursor-pointer rounded-xl border p-4 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring`,D===e.value?`border-primary bg-primary/5 ring-1 ring-primary`:`border-border bg-card hover:border-foreground/20`),children:[(0,w.jsx)(e.icon,{className:r(`size-4`,D===e.value?`text-primary`:`text-muted-foreground`)}),(0,w.jsx)(`p`,{className:`mt-2 text-sm font-semibold`,children:e.title}),(0,w.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.body})]},e.value))})]}),(0,w.jsx)(`section`,{children:Q?(0,w.jsxs)(`label`,{className:`block`,children:[(0,w.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Workspace name`}),(0,w.jsx)(o,{value:A,onChange:e=>j(e.target.value),placeholder:`e.g. Fix invoice rounding`})]}):(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsxs)(`label`,{className:`block`,children:[(0,w.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Feature branch`}),(0,w.jsx)(o,{value:k,onChange:e=>Se(e.target.value),placeholder:`e.g. feature/invoice-rounding`,className:`font-mono`})]}),Z.length>0&&(0,w.jsxs)(`details`,{className:`rounded-lg border border-border px-3 py-2`,onToggle:e=>De(e.target.open),children:[(0,w.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-muted-foreground`,children:`Use an existing branch for specific repos (optional)`}),(0,w.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:Z.map(e=>(0,w.jsx)(be,{repo:e,enabled:Ee,value:K[e.path]??``,onChange:t=>Te(n=>({...n,[e.path]:t}))},e.path))})]})]})}),(0,w.jsx)(`section`,{children:(0,w.jsxs)(`label`,{className:`block`,children:[(0,w.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`What are you building?`}),(0,w.jsx)(x,{value:M,onChange:e=>Ce(e.target.value),placeholder:`A short description — your AI assistant reads this to plan the work.`,rows:3})]})}),(0,w.jsxs)(`section`,{className:`rounded-xl border border-border`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>we(e=>!e),className:`flex w-full items-center justify-between px-4 py-3 text-sm font-medium hover:bg-accent`,"aria-expanded":F,children:[`Advanced`,(0,w.jsx)(ee,{className:r(`size-4 text-muted-foreground transition-transform`,F&&`rotate-180`)})]}),F&&(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 border-t border-border p-4`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{className:`mb-1.5 block text-sm font-medium`,children:`AI assistants`}),(0,w.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(u.data??[]).map(e=>(0,w.jsxs)(`label`,{className:r(`flex cursor-pointer items-center gap-2 rounded-lg border border-border px-3 py-1.5 text-sm`,!e.detected&&`opacity-50`),children:[(0,w.jsx)(te,{checked:I.includes(e.name),onCheckedChange:()=>L(t=>t.includes(e.name)?t.filter(t=>t!==e.name):[...t,e.name])}),e.displayName]},e.name))})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`mb-1.5 flex items-center justify-between`,children:[(0,w.jsx)(`span`,{className:`text-sm font-medium`,children:`Teamwork strategy`}),(0,w.jsxs)(i,{size:`xs`,variant:`outline`,onClick:Ae,disabled:H,children:[H?(0,w.jsx)(a,{}):(0,w.jsx)(_,{}),`Suggest with AI`]})]}),(0,w.jsxs)(y,{value:R,onValueChange:e=>typeof e==`string`&&ke(e),children:[(0,w.jsx)(p,{className:`w-full`,"aria-label":`Teamwork strategy`,children:(0,w.jsx)(m,{children:(f.data??[]).find(e=>e.id===R)?.name??`None`})}),(0,w.jsxs)(v,{alignItemWithTrigger:!1,children:[(0,w.jsx)(d,{value:``,children:`None`}),(f.data??[]).map(e=>(0,w.jsx)(d,{value:e.id,children:e.name},e.id))]})]}),W&&(0,w.jsxs)(`p`,{className:`mt-1.5 text-xs text-muted-foreground`,children:[`AI classified this task as `,(0,w.jsx)(`span`,{className:`font-medium`,children:W}),` difficulty.`]}),(0,w.jsx)(x,{value:B,onChange:e=>V(e.target.value),placeholder:`Cooperation instructions for the agent team (editable — prefilled by the strategy pick or AI suggestion).`,rows:4,className:`mt-2 font-mono text-xs`})]})]})]}),q&&(0,w.jsx)(`p`,{className:`text-sm text-destructive-foreground`,children:q}),(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-4 border-t border-border pt-4`,children:[(0,w.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,w.jsx)(ie,{className:`size-3.5`}),Z.length,` repositor`,Z.length===1?`y`:`ies`,` selected`]}),(0,w.jsxs)(i,{onClick:je,disabled:!Oe||h.isPending,children:[h.isPending?(0,w.jsx)(a,{}):null,Q?`Start working`:`Create workspace`]})]})]})]})}export{E as StartWorkPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,b as t,g as n,h as r,m as i,t as a}from"./button-cPldH5S4.js";import{t as o}from"./spinner-BCEaGbib.js";import{t as s}from"./code-xml-Chu1p81J.js";import{Dt as c,Ot as l,St as u,V as d,ct as ee,d as f,g as te,h as ne,lt as p,m,p as h,pt as g,u as _}from"./index-CcIOIZ24.js";import{t as v}from"./badge-BnkhqVEF.js";import{a as y,i as re,n as b,r as x,t as S}from"./empty-DWyDwDYB.js";var C=r(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),w=r(`orbit`,[[`path`,{d:`M20.341 6.484A10 10 0 0 1 10.266 21.85`,key:`1enhxb`}],[`path`,{d:`M3.659 17.516A10 10 0 0 1 13.74 2.152`,key:`1crzgf`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`circle`,{cx:`19`,cy:`5`,r:`2`,key:`mhkx31`}],[`circle`,{cx:`5`,cy:`19`,r:`2`,key:`v8kfzx`}]]),T=r(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),E=t(e(),1),D={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},O=E.createContext&&E.createContext(D),k=[`attr`,`size`,`title`];function A(e,t){if(e==null)return{};var n,r,i=j(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function j(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function M(){return M=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},M.apply(null,arguments)}function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?N(Object(n),!0).forEach(function(t){F(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function F(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I(e){var t=L(e,`string`);return typeof t==`symbol`?t:t+``}function L(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function R(e){return e&&e.map((e,t)=>E.createElement(e.tag,P({key:t},e.attr),R(e.child)))}function z(e){return t=>E.createElement(B,M({attr:P({},e.attr)},t),R(e.child))}function B(e){var t=t=>{var n=e.attr,r=e.size,i=e.title,a=A(e,k),o=r||t.size||`1em`,s;return t.className&&(s=t.className),e.className&&(s=(s?s+` `:``)+e.className),E.createElement(`svg`,M({stroke:`currentColor`,fill:`currentColor`,strokeWidth:`0`},t.attr,n,a,{className:s,style:P(P({color:e.color||t.color},t.style),e.style),height:o,width:o,xmlns:`http://www.w3.org/2000/svg`}),i&&E.createElement(`title`,null,i),e.children)};return O===void 0?t(D):E.createElement(O.Consumer,null,e=>t(e))}function V(e){return z({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z`},child:[]}]})(e)}function H(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M2.25 1.5a.75.75 0 0 0-.75.75v16.5H0V2.25A2.25 2.25 0 0 1 2.25 0h20.095c1.002 0 1.504 1.212.795 1.92L10.764 14.298h3.486V12.75h1.5v1.922a1.125 1.125 0 0 1-1.125 1.125H9.264l-2.578 2.578h11.689V9h1.5v9.375a1.5 1.5 0 0 1-1.5 1.5H5.185L2.562 22.5H21.75a.75.75 0 0 0 .75-.75V5.25H24v16.5A2.25 2.25 0 0 1 21.75 24H1.655C.653 24 .151 22.788.86 22.08L13.19 9.75H9.75v1.5h-1.5V9.375A1.125 1.125 0 0 1 9.375 8.25h5.314l2.625-2.625H5.625V15h-1.5V5.625a1.5 1.5 0 0 1 1.5-1.5h13.19L21.438 1.5z`},child:[]}]})(e)}function U(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M23.55 5.067c-1.2038-.002-2.1806.973-2.1806 2.1765v4.8676c0 .972-.8035 1.7594-1.7597 1.7594-.568 0-1.1352-.286-1.4718-.7659l-4.9713-7.1003c-.4125-.5896-1.0837-.941-1.8103-.941-1.1334 0-2.1533.9635-2.1533 2.153v4.8957c0 .972-.7969 1.7594-1.7596 1.7594-.57 0-1.1363-.286-1.4728-.7658L.4076 5.1598C.2822 4.9798 0 5.0688 0 5.2882v4.2452c0 .2147.0656.4228.1884.599l5.4748 7.8183c.3234.462.8006.8052 1.3509.9298 1.3771.313 2.6446-.747 2.6446-2.0977v-4.893c0-.972.7875-1.7593 1.7596-1.7593h.003a1.798 1.798 0 0 1 1.4718.7658l4.9723 7.0994c.4135.5905 1.05.941 1.8093.941 1.1587 0 2.1515-.9645 2.1515-2.153v-4.8948c0-.972.7875-1.7594 1.7596-1.7594h.194a.22.22 0 0 0 .2204-.2202v-4.622a.22.22 0 0 0-.2203-.2203Z`},child:[]}]})(e)}function W(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M0 0v24h24V0H0zm17.889 2.889c1.444 0 2.667.444 3.667 1.278l-1.111 1.667c-.889-.611-1.722-1-2.556-1s-1.278.389-1.278.889v.056c0 .667.444.889 2.111 1.333 2 .556 3.111 1.278 3.111 3v.056c0 2-1.5 3.111-3.611 3.111-1.5-.056-3-.611-4.167-1.667l1.278-1.556c.889.722 1.833 1.222 2.944 1.222.889 0 1.389-.333 1.389-.944v-.056c0-.556-.333-.833-2-1.278-2-.5-3.222-1.056-3.222-3.056v-.056c0-1.833 1.444-3 3.444-3zm-16.111.222h2.278l1.5 5.778 1.722-5.778h1.667l1.667 5.778 1.5-5.778h2.333l-2.833 9.944H9.723L8.112 7.277l-1.667 5.778H4.612L1.779 3.111zm.5 16.389h9V21h-9v-1.5z`},child:[]}]})(e)}function G(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M20.953.004a.397.397 0 0 0-.18.017L3.225 5.585c-.175.055-.323.214-.402.398a.42.42 0 0 0-.06.22v5.726a.42.42 0 0 0 .06.22c.079.183.227.341.402.397l7.454 2.364-7.454 2.363c-.255.08-.463.374-.463.655v5.688c0 .282.208.444.463.363l17.55-5.565c.237-.075.426-.336.452-.6.003-.022.013-.04.013-.065V12.06c0-.281-.208-.575-.463-.656L13.4 9.065l7.375-2.339c.255-.08.462-.375.462-.656V.384c0-.211-.117-.355-.283-.38z`},child:[]}]})(e)}function K(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M7.833 6.666v-.055c0-1-.667-1.5-1.778-1.5H4.389v3.055h1.723c1.111 0 1.721-.666 1.721-1.5zM0 0v24h24V0H0zm2.223 3.167h4c2.389 0 3.833 1.389 3.833 3.445v.055c0 2.278-1.778 3.5-4.001 3.5H4.389v2.945H2.223V3.167zM11.277 21h-9v-1.5h9V21zm4.779-7.777c-2.944.055-5.111-2.223-5.111-5.057C10.944 5.333 13.056 3 16.111 3c1.889 0 3 .611 3.944 1.556l-1.389 1.61c-.778-.722-1.556-1.111-2.556-1.111-1.658 0-2.873 1.375-2.887 3.084.014 1.709 1.174 3.083 2.887 3.083 1.111 0 1.833-.445 2.61-1.167l1.39 1.389c-.999 1.112-2.166 1.779-4.054 1.779z`},child:[]}]})(e)}function q(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M0 0v24h24V0zm3.723 3.111h5v1.834h-1.39v6.277h1.39v1.834h-5v-1.834h1.444V4.945H3.723zm11.055 0H17v6.5c0 .612-.055 1.111-.222 1.556-.167.444-.39.777-.723 1.11-.277.279-.666.557-1.11.668a3.933 3.933 0 0 1-1.445.278c-.778 0-1.444-.167-1.944-.445a4.81 4.81 0 0 1-1.279-1.056l1.39-1.555c.277.334.555.555.833.722.277.167.611.278.945.278.389 0 .721-.111 1-.389.221-.278.333-.667.333-1.278zM2.222 19.5h9V21h-9z`},child:[]}]})(e)}function J(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23`},child:[]}]})(e)}function Y(e){return z({tag:`svg`,attr:{role:`img`,viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z`},child:[]}]})(e)}function ie(e){return z({tag:`svg`,attr:{viewBox:`0 0 16 16`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M15.434 1.72887L12.14 0.144875C12.002 0.078875 11.855 0.046875 11.709 0.046875C11.353 0.046875 11.18 0.211875 11.155 0.228875C11.073 0.270875 11.005 0.337875 11.004 0.338875L4.698 6.08888L1.951 4.00488C1.832 3.91388 1.69 3.86987 1.548 3.86987C1.387 3.86987 1.226 3.92788 1.1 4.04288L0.219 4.84387C0.074 4.97587 0.001 5.15688 0.001 5.33687C0.001 5.51687 0.073 5.69688 0.218 5.82888L2.6 8.00088L0.217 10.1719C0.072 10.3039 0 10.4839 0 10.6639C0 10.8439 0.073 11.0249 0.218 11.1569L1.099 11.9579C1.226 12.0729 1.386 12.1309 1.547 12.1309C1.688 12.1309 1.83 12.0859 1.95 11.9959L4.697 9.91187L11.003 15.6619C11.003 15.6619 11.072 15.7299 11.155 15.7719C11.179 15.7889 11.353 15.9529 11.709 15.9529C11.855 15.9529 12.003 15.9209 12.141 15.8549L15.435 14.2709C15.781 14.1049 16.001 13.7539 16.001 13.3699V2.62888C16.001 2.24487 15.781 1.89488 15.435 1.72787L15.434 1.72887ZM7.217 7.99988L12.002 4.36987V11.6299L7.217 7.99988Z`},child:[]}]})(e)}function ae(e){return z({tag:`svg`,attr:{viewBox:`0 0 16 16`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M8.045 7.37722L5.449 5.40722L10.636 0.676223C10.685 0.631223 10.735 0.617223 10.778 0.617223C10.786 0.617223 10.999 0.627223 10.999 0.837223V5.13222L8.044 7.37622L8.045 7.37722ZM0.217 10.1762C0.072 10.3082 0 10.4882 0 10.6682C0 10.8482 0.073 11.0292 0.218 11.1612L1.099 11.9622C1.226 12.0772 1.386 12.1352 1.547 12.1352C1.688 12.1352 1.83 12.0902 1.95 12.0002L3.887 10.5312L1.858 8.68122L0.218 10.1762H0.217ZM1.95 4.00822C1.83 3.91722 1.689 3.87322 1.547 3.87322C1.386 3.87322 1.225 3.93122 1.099 4.04622L0.218 4.84722C0.073 4.97922 0 5.16022 0 5.34022C0 5.52022 0.072 5.70022 0.217 5.83222L2.202 7.64222L10.634 15.3332C10.684 15.3792 10.735 15.3922 10.779 15.3922C10.888 15.3922 11 15.3142 11 15.1752V10.8762L1.95 4.00822ZM15.434 1.73322L12.14 0.149223C12.002 0.0832227 11.855 0.0532227 11.709 0.0532227H11.704C11.888 0.268223 12.003 0.537223 12.003 0.837223V15.1752C12.004 15.4702 11.894 15.7342 11.716 15.9472H11.734C11.748 15.9472 11.761 15.9472 11.775 15.9472C11.962 15.9472 12.123 15.8682 12.14 15.8602L15.434 14.2762C15.78 14.1102 16 13.7592 16 13.3752V2.63422C16 2.25022 15.78 1.90022 15.434 1.73322Z`},child:[]}]})(e)}var X=n(),Z=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,oe={codex:V,claude:Y,vscode:ie,"vscode-insiders":ae,cursor:J,antigravity:w,intellij:q,webstorm:W,pycharm:K,sublime:G,zed:H,windsurf:U},se={codex:`bg-foreground text-background`,claude:`bg-[#D97757] text-white`,vscode:`bg-[#007ACC] text-white`,"vscode-insiders":`bg-[#24A148] text-white`,cursor:`bg-zinc-950 text-white dark:bg-white dark:text-zinc-950`,antigravity:`bg-violet-600 text-white`,intellij:`bg-fuchsia-600 text-white`,webstorm:`bg-cyan-600 text-white`,pycharm:`bg-lime-600 text-zinc-950`,sublime:`bg-orange-500 text-white`,zed:`bg-red-600 text-white`,windsurf:`bg-teal-600 text-white`};function Q({icon:e}){let t=oe[e]??s;return(0,X.jsx)(`span`,{className:i(`grid size-10 shrink-0 place-items-center rounded-xl shadow-sm`,se[e]),"aria-hidden":`true`,children:(0,X.jsx)(t,{className:`size-5`})})}function $({target:e,busy:t,launching:n,preferred:r,onLaunch:a}){return(0,X.jsxs)(`button`,{type:`button`,disabled:!e.available||t,onClick:()=>a(e),"aria-label":`Open workspace in ${e.name}`,className:i(`flex min-h-20 w-full items-center gap-3 rounded-xl border p-3 text-left outline-none transition-colors`,`focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background`,`cursor-pointer border-border bg-card hover:border-primary/40 hover:bg-accent/60`),children:[(0,X.jsx)(Q,{icon:e.icon}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),n?(0,X.jsx)(o,{className:`size-4`}):r?(0,X.jsx)(v,{size:`sm`,variant:`secondary`,children:`Preferred`}):null]}),(0,X.jsx)(`span`,{className:`mt-0.5 block text-xs leading-relaxed text-muted-foreground`,children:e.description})]})]})}function ce({session:e,busy:t,launching:n,onResume:r}){let a=e.desktopHandoff.method===`direct`,s=a?`Codex Desktop`:`Claude Desktop`;return(0,X.jsxs)(`button`,{type:`button`,disabled:t,onClick:()=>r(e),"aria-label":a?`Resume ${e.title} in Codex Desktop`:`Move ${e.title} to Claude Desktop`,className:i(`flex min-h-20 w-full cursor-pointer items-center gap-3 rounded-xl border border-primary/25 bg-primary/5 p-3 text-left outline-none transition-colors`,`hover:border-primary/45 hover:bg-primary/10 focus-visible:ring-2 focus-visible:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-65`),children:[(0,X.jsx)(Q,{icon:a?`codex`:`claude`}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`span`,{className:`truncate font-medium text-foreground`,title:e.title,children:e.title}),n?(0,X.jsx)(o,{className:`size-4 shrink-0`}):a?(0,X.jsx)(c,{className:`size-4 shrink-0 text-muted-foreground`}):(0,X.jsx)(l,{className:`size-4 shrink-0 text-muted-foreground`})]}),(0,X.jsxs)(`span`,{className:`mt-0.5 block text-xs leading-relaxed text-muted-foreground`,children:[a?`Open this existing task in ${s}`:`Resume in Claude Code, then type /desktop`,` · `,new Date(e.updatedAt).toLocaleString()]})]})]})}function le({workspaceId:e,workspacePath:t,isVsCode:n=!1,className:r}){let[i,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),[v,w]=(0,E.useState)(null),[D,O]=(0,E.useState)(null),k=(0,E.useRef)(!1),A=ee(),j=p(e,i),M=d().data?.config,N=A.data?.filter(e=>e.available)??[],P=N.filter(e=>e.kind===`ai-app`),F=M?.defaultEditor?{code:`vscode`,"code-insiders":`vscode-insiders`,cursor:`cursor`,antigravity:`antigravity`,idea:`intellij`,webstorm:`webstorm`,charm:`pycharm`,subl:`sublime`,zed:`zed`,windsurf:`windsurf`}[M.defaultEditor]:void 0,I=N.filter(e=>e.kind===`editor`).toSorted((e,t)=>Number(t.id===F)-Number(e.id===F)),L=new Set(N.map(e=>e.id)),R=(j.data??[]).filter(e=>e.desktopHandoff&&L.has(e.desktopHandoff.targetId)),z=n||N.length>0,B=async t=>{if(!k.current){k.current=!0,w(null),O(null),l(t.id);try{await g(`/api/workspace/${encodeURIComponent(e)}/launch`,{method:`POST`,body:JSON.stringify({targetId:t.id})}),s(!1)}catch(e){w(e instanceof Error?e.message:String(e)),await A.refetch()}finally{l(null),k.current=!1}}},V=async t=>{if(!(k.current||!t.desktopHandoff||!Z.test(t.id))){k.current=!0,w(null),O(null),l(`session:${t.id}`);try{if(t.desktopHandoff.method===`guided`){await navigator.clipboard.writeText(`claude --resume ${t.id}`),O(`Claude resume command copied. With a Claude subscription login, run it in this workspace, then type /desktop in Claude to move the session into Claude Desktop.`);return}await g(`/api/workspace/${encodeURIComponent(e)}/launch`,{method:`POST`,body:JSON.stringify({targetId:t.desktopHandoff.targetId,action:`resume`,sessionId:t.id})}),s(!1)}catch(e){w(e instanceof Error?e.message:String(e)),await Promise.all([A.refetch(),j.refetch()])}finally{l(null),k.current=!1}}},H=()=>{window.parent.postMessage({type:`openWorkspaceFolder`,workspacePath:t},`*`),s(!1)},U=()=>Promise.all([A.refetch(),j.refetch()]),W=A.isFetching||j.isFetching;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(a,{variant:`outline`,className:r,onClick:()=>s(!0),children:[(0,X.jsx)(T,{}),`Open with…`]}),(0,X.jsx)(_,{open:i,onOpenChange:e=>{s(e),e||(w(null),O(null))},children:(0,X.jsxs)(ne,{className:`max-w-2xl`,"aria-busy":c!==null,children:[(0,X.jsxs)(h,{children:[(0,X.jsx)(te,{children:`Open workspace with…`}),(0,X.jsx)(f,{children:`Continue recent AI work or start in an installed coding app or editor. AI apps may use their own online services.`})]}),(0,X.jsxs)(m,{className:`space-y-5`,children:[v&&(0,X.jsx)(`div`,{role:`alert`,className:`rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive-foreground`,children:v}),D&&(0,X.jsx)(`div`,{role:`status`,className:`rounded-lg border border-primary/25 bg-primary/5 px-3 py-2 text-sm text-foreground`,children:D}),j.isLoading?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,"aria-live":`polite`,children:[(0,X.jsx)(o,{className:`size-4`}),` Checking recent sessions…`]}):R.length>0?(0,X.jsxs)(`section`,{"aria-labelledby":`recent-sessions-heading`,children:[(0,X.jsx)(`h3`,{id:`recent-sessions-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Continue recent work`}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:R.map(e=>(0,X.jsx)(ce,{session:e,busy:c!==null,launching:c===`session:${e.id}`,onResume:V},`${e.assistant}:${e.id}`))})]}):j.isError?(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Recent sessions could not be checked. Starting new work is still available.`}):null,n&&(0,X.jsxs)(`section`,{"aria-labelledby":`current-editor-heading`,children:[(0,X.jsx)(`h3`,{id:`current-editor-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Current window`}),(0,X.jsxs)(`button`,{type:`button`,disabled:c!==null,onClick:H,className:`flex min-h-20 w-full cursor-pointer items-center gap-3 rounded-xl border border-primary/30 bg-primary/5 p-3 text-left outline-none transition-colors hover:bg-primary/10 focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-65`,children:[(0,X.jsx)(Q,{icon:`vscode`}),(0,X.jsxs)(`span`,{children:[(0,X.jsx)(`span`,{className:`block font-medium`,children:`Current VS Code window`}),(0,X.jsx)(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`,children:`Open through the installed NexusFlow extension.`})]})]})]}),A.isLoading?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-sm text-muted-foreground`,"aria-live":`polite`,children:[(0,X.jsx)(o,{}),` Checking apps on this computer…`]}):A.isError?(0,X.jsx)(`div`,{role:`alert`,className:`rounded-lg border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive-foreground`,children:A.error instanceof Error?A.error.message:`Could not check available apps.`}):(0,X.jsxs)(X.Fragment,{children:[P.length>0&&(0,X.jsxs)(`section`,{"aria-labelledby":`ai-apps-heading`,children:[(0,X.jsx)(`h3`,{id:`ai-apps-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`AI coding apps`}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:P.map(e=>(0,X.jsx)($,{target:e,busy:c!==null,launching:c===e.id,onLaunch:B},e.id))})]}),I.length>0&&(0,X.jsxs)(`section`,{"aria-labelledby":`editors-heading`,children:[(0,X.jsx)(`h3`,{id:`editors-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:`Code editors`}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:I.map(e=>(0,X.jsx)($,{target:e,busy:c!==null,launching:c===e.id,preferred:e.id===F,onLaunch:B},e.id))})]}),!z&&(0,X.jsx)(S,{className:`rounded-xl border border-dashed py-8 md:p-8`,children:(0,X.jsxs)(x,{children:[(0,X.jsx)(re,{variant:`icon`,children:(0,X.jsx)(C,{})}),(0,X.jsx)(y,{className:`text-base`,children:`No compatible apps detected`}),(0,X.jsx)(b,{children:`Install a supported coding app or add its command to PATH, then recheck.`})]})})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-3`,children:[(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,"aria-live":`polite`,children:W?`Checking recent sessions and apps…`:`Can’t find your app or session? Recheck detection.`}),(0,X.jsxs)(a,{size:`sm`,variant:`ghost`,onClick:()=>void U(),disabled:W||c!==null,children:[(0,X.jsx)(u,{className:W?`animate-spin`:``}),`Recheck`]})]})]})]})})]})}export{le as t};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,d as r,g as i,h as a,i as o,l as s,m as c,o as l,p as u,s as d,t as f,u as p,v as m}from"./button-cPldH5S4.js";import{$ as h,$t as g,An as _,At as v,B as y,Bn as b,C as x,Ct as S,D as C,Dn as w,E as T,Et as E,F as D,Gt as O,H as k,Hn as A,Ht as j,I as M,It as N,J as P,Jt as F,K as I,Kt as L,L as ee,Lt as te,M as ne,Mn as R,N as re,Nt as ie,O as z,Ot as ae,P as oe,Pt as se,Q as B,Qt as V,R as ce,Rt as H,S as le,U as ue,Un as de,Ut as fe,V as pe,W as me,Wn as he,Wt as ge,X as _e,Xn as U,Xt as ve,Y as ye,Yt as W,Z as be,Zn as xe,Zt as Se,_n as G,_t as K,a as Ce,b as we,bn as q,c as Te,cn as Ee,ct as De,d as Oe,en as ke,et as Ae,f as je,fn as Me,g as Ne,gt as J,h as Pe,hn as Fe,ht as Ie,i as Le,in as Re,it as ze,jt as Be,kn as Ve,kt as He,lt as Ue,m as We,mn as Ge,mt as Ke,n as qe,nn as Je,nr as Y,o as Ye,on as Xe,ot as Ze,p as Qe,pt as $e,q as et,qt as tt,r as nt,rn as rt,rr as it,rt as at,s as ot,sn as st,st as ct,t as lt,tn as ut,tr as X,tt as dt,u as ft,ut as pt,vn as mt,w as ht,wt as gt,x as _t,xn as vt,xt as yt,y as bt,yn as xt,z as St,zn as Ct}from"./spinner-BCEaGbib.js";import{t as wt}from"./WorkspaceLauncher-EIY_u44S.js";import{t as Tt}from"./bot-wH0FKlic.js";import{t as Et}from"./chevron-down-DDmhvRLr.js";import{n as Dt,r as Ot,t as kt}from"./terminal-gK6BMl3E.js";import{t as At}from"./cpu-CPUNnHRM.js";import{t as jt}from"./search-ChVovkOL.js";import{t as Mt}from"./trash-2-Da8F2gKd.js";import{_ as Nt,a as Pt,c as Ft,d as It,f as Lt,i as Rt,l as zt,m as Bt,n as Vt,o as Ht,p as Ut,r as Wt,s as Gt,u as Kt,v as qt,x as Jt,y as Yt}from"./useCompositeListItem-CZnlZ-eF.js";import{t as Xt}from"./Separator-Chx6O62Y.js";import{At as Zt,Ct as Qt,Dt as $t,Et as en,F as tn,I as nn,L as rn,Mt as an,O as on,Ot as sn,P as cn,St as ln,Tt as un,X as dn,a as fn,c as pn,ct as mn,g as hn,gt as gn,h as _n,ht as vn,i as yn,l as bn,m as xn,o as Sn,p as Cn,rt as wn,s as Tn,u as En,ut as Dn,wt as On,yt as kn}from"./index-CcIOIZ24.js";import{t as An}from"./card-82INhRRE.js";import{a as jn,i as Mn,n as Nn,r as Pn,t as Fn}from"./empty-DWyDwDYB.js";import{t as In}from"./textarea-D3-elOAa.js";import{t as Ln}from"./skeleton-CCPbfn1L.js";var Rn=a(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),zn=a(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),Bn=a(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),Vn=a(`layout-template`,[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]),Hn=a(`list-ordered`,[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]),Un=a(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Wn=a(`message-square-code`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`m10 8-3 3 3 3`,key:`fp6dz7`}],[`path`,{d:`m14 14 3-3-3-3`,key:`1yrceu`}]]),Gn=a(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),Kn=a(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),qn=a(`panel-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]]),Jn=a(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Yn=a(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),Xn=a(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),Zn=a(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),Qn=a(`square-play`,[[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z`,key:`kmsa83`}]]),Z=n(e(),1);function $n(){let[,e]=Z.useState({});return Z.useCallback(()=>{e({})},[])}function er(e,t){return t!=null&&!Ee(t)?0:typeof e==`function`?e():e}function tr(e,t,n){let r=er(e,n);return typeof r==`number`?r:r?.[t]}function nr(e){return typeof e==`function`?e():e}function rr(e,t){return t||e===`click`||e===`mousedown`}function ir(e){return e?.includes(`mouse`)&&e!==`mousedown`}var ar=Ve&&w;function or(e,t={}){let{enabled:n=!0,delay:r}=t,i=`rootStore`in e?e.rootStore:e,{events:a,dataRef:o}=i.context,s=Z.useRef(!1),c=Z.useRef(null),l=Z.useRef(!0),u=ve();Z.useEffect(()=>{let e=i.select(`domReferenceElement`);if(!n)return;let t=b(e);function r(){let e=i.select(`domReferenceElement`);!i.select(`open`)&&de(e)&&e===xt(_(e))&&(s.current=!0)}function a(){l.current=!0}function o(){l.current=!1}return Ue(De(t,`blur`,r),ar&&De(t,`keydown`,a,!0),ar&&De(t,`pointerdown`,o,!0))},[i,n]),Z.useEffect(()=>{if(!n)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=i.select(`domReferenceElement`);A(e)&&(c.current=e,s.current=!0)}}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[a,n,i]);let d=Z.useMemo(()=>{function e(){s.current=!1,c.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(s.current){if(c.current===n)return;e()}let a=vt(t.nativeEvent);if(A(a)){if(ar&&!t.relatedTarget){if(!l.current&&!G(a))return}else if(!mt(a))return}let o=Fe(t.relatedTarget,i.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof r==`function`?r():r;if(i.select(`open`)&&o||p===0||p===void 0){i.setOpen(!0,S(te,d,f));return}u.start(p,()=>{s.current||i.setOpen(!0,S(te,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,a=A(n)&&n.hasAttribute(Ze(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;u.start(0,()=>{let e=i.select(`domReferenceElement`),t=xt(_(e));!n&&t===e||q(o.current.floatingContext?.refs.floating.current,t)||q(e,t)||a||Fe(n??t,i.context.triggerElements)||i.setOpen(!1,S(te,r))})}}},[o,r,i,u]);return Z.useMemo(()=>n?{reference:d,trigger:d}:{},[n,d])}var sr=class e{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new W,this.restTimeout=new W,this.handleCloseOptions=void 0}static create(){return new e}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose},cr=new WeakMap;function lr(e){if(!e.performedPointerEventsMutation)return;let t=e.pointerEventsScopeElement;t&&cr.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty(`pointer-events`),e.pointerEventsReferenceElement?.style.removeProperty(`pointer-events`),e.pointerEventsFloatingElement?.style.removeProperty(`pointer-events`),cr.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function ur(e,t){let{scopeElement:n,referenceElement:r,floatingElement:i}=t,a=cr.get(n);a&&a!==e&&lr(a),lr(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=n,e.pointerEventsReferenceElement=r,e.pointerEventsFloatingElement=i,cr.set(n,e),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,i.style.pointerEvents=`auto`}function dr(e){let t=e.context.dataRef.current,n=p(()=>t.hoverInteractionState??sr.create()).current;return t.hoverInteractionState||=n,Se(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function fr(e,t={}){let{enabled:n=!0,closeDelay:r=0,nodeId:i}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),{dataRef:l}=a.context,u=B(),d=be(),f=dr(a),p=ve(),m=X(()=>rr(l.current.openEvent?.type,f.interactedInside)),h=X(()=>ir(l.current.openEvent?.type)),g=X(()=>{lr(f)});Y(()=>{o||(f.pointerType=void 0,f.restTimeoutPending=!1,f.interactedInside=!1,g())},[o,f,g]),Z.useEffect(()=>g,[g]),Y(()=>{if(n&&o&&f.handleCloseOptions?.blockPointerEvents&&h()&&A(c)&&s){let e=c,t=s,n=_(s),r=u?.nodesRef.current.find(e=>e.id===d)?.context?.elements.floating;r&&(r.style.pointerEvents=``);let i=f.pointerEventsScopeElement===t?null:f.pointerEventsScopeElement,a=r===t?null:r,o=f.handleCloseOptions?.getScope?.()??i??a??e.closest(`[data-rootownerid]`)??n.body;return ur(f,{scopeElement:o,referenceElement:e,floatingElement:t}),()=>{g()}}},[n,o,c,s,f,h,u,d,g]),Z.useEffect(()=>{if(!n)return;function e(){return!!(u&&d&&Me(u.nodesRef.current,d).length>0)}function t(e){let t=tr(r,`close`,f.pointerType),n=()=>{a.setOpen(!1,S(H,e)),u?.events.emit(`floating.closed`,e)};t?f.openChangeTimeout.start(t,n):(f.openChangeTimeout.clear(),n())}function o(e){let t=vt(e);if(!Ge(t)){f.interactedInside=!1;return}f.interactedInside=t?.closest(`[aria-haspopup]`)!=null}function c(){f.openChangeTimeout.clear(),p.clear(),u?.events.off(`floating.closed`,v),g()}function _(n){if(e()&&u){u.events.on(`floating.closed`,v);return}if(Fe(n.relatedTarget,a.context.triggerElements))return;let r=l.current.floatingContext?.nodeId??i,o=n.relatedTarget;if(!(u&&r&&A(o)&&Me(u.nodesRef.current,r,!1).some(e=>q(e.context?.elements.floating,o)))){if(f.handler){f.handler(n);return}g(),h()&&!m()&&t(n)}}function v(t){!u||!d||e()||p.start(0,()=>{u.events.off(`floating.closed`,v),a.setOpen(!1,S(H,t)),u.events.emit(`floating.closed`,t)})}let y=s;return Ue(y&&De(y,`mouseenter`,c),y&&De(y,`mouseleave`,_),y&&De(y,`pointerdown`,o,!0),()=>{u?.events.off(`floating.closed`,v)})},[n,s,a,l,r,i,h,m,g,f,u,d,p])}var pr=n(it(),1),mr={current:null};function hr(e,t={}){let{enabled:n=!0,delay:r=0,handleClose:i=null,mouseOnly:a=!1,restMs:o=0,move:s=!0,triggerElementRef:c=mr,externalTree:l,isActiveTrigger:u=!0,getHandleCloseContext:d,isClosing:f,shouldOpen:p}=t,m=`rootStore`in e?e.rootStore:e,{dataRef:h,events:g}=m.context,v=B(l),y=dr(m),b=Z.useRef(!1),x=K(i),C=K(r),w=K(o),T=K(n),E=K(p),D=K(f),O=X(()=>rr(h.current.openEvent?.type,y.interactedInside)),k=X(()=>E.current?.()!==!1),j=X((e,t,n)=>{let r=m.context.triggerElements;if(r.hasElement(t))return!e||!q(e,t);if(!A(n))return!1;let i=n;return r.hasMatchingElement(e=>q(e,i))&&(!e||!q(e,i))}),M=X(()=>{y.handler&&=(_(m.select(`domReferenceElement`)).removeEventListener(`mousemove`,y.handler),void 0)}),N=X(()=>{lr(y)});return u&&(y.handleCloseOptions=x.current?.__options),Z.useEffect(()=>M,[M]),Z.useEffect(()=>{if(!n)return;function e(e){e.open?b.current=!1:(b.current=e.reason===H,M(),y.openChangeTimeout.clear(),y.restTimeout.clear(),y.blockMouseMove=!0,y.restTimeoutPending=!1)}return g.on(`openchange`,e),()=>{g.off(`openchange`,e)}},[n,g,y,M]),Z.useEffect(()=>{if(!n)return;function e(e,t=!0){let n=tr(C.current,`close`,y.pointerType);n?y.openChangeTimeout.start(n,()=>{m.setOpen(!1,S(H,e)),v?.events.emit(`floating.closed`,e)}):t&&(y.openChangeTimeout.clear(),m.setOpen(!1,S(H,e)),v?.events.emit(`floating.closed`,e))}let t=c.current??(u?m.select(`domReferenceElement`):null);if(!A(t))return;function r(e){if(y.openChangeTimeout.clear(),y.blockMouseMove=!1,a&&!Ee(y.pointerType))return;let t=nr(w.current),n=tr(C.current,`open`,y.pointerType),r=vt(e),i=e.currentTarget??null,o=m.select(`domReferenceElement`),s=i;if(A(r)&&!m.context.triggerElements.hasElement(r)){for(let e of m.context.triggerElements.elements())if(q(e,r)){s=e;break}}A(i)&&A(o)&&!m.context.triggerElements.hasElement(i)&&q(i,o)&&(s=o);let c=s!=null&&j(o,s,r),l=m.select(`open`),u=D.current?.()??m.select(`transitionStatus`)===`ending`,d=!l&&u&&b.current,f=!c&&A(s)&&A(o)&&q(o,s)&&d,p=t>0&&!n,h=c&&(l||d)||f,g=!l||c;if(h){k()&&m.setOpen(!0,S(H,e,s));return}p||(n?y.openChangeTimeout.start(n,()=>{g&&k()&&m.setOpen(!0,S(H,e,s))}):g&&k()&&m.setOpen(!0,S(H,e,s)))}function i(t){if(O()){N();return}M();let n=_(m.select(`domReferenceElement`));y.restTimeout.clear(),y.restTimeoutPending=!1;let r=h.current.floatingContext??d?.();if(!Fe(t.relatedTarget,m.context.triggerElements)){if(x.current&&r){m.select(`open`)||y.openChangeTimeout.clear();let i=c.current;y.handler=x.current({...r,tree:v,x:t.clientX,y:t.clientY,onClose(){N(),M(),T.current&&!O()&&i===m.select(`domReferenceElement`)&&e(t,!0)}}),n.addEventListener(`mousemove`,y.handler),y.handler(t);return}(y.pointerType!==`touch`||!q(m.select(`floatingElement`),t.relatedTarget))&&e(t)}}return s?Ue(De(t,`mousemove`,r,{once:!0}),De(t,`mouseenter`,r),De(t,`mouseleave`,i)):Ue(De(t,`mouseenter`,r),De(t,`mouseleave`,i))},[M,N,h,C,m,n,x,y,u,j,O,a,s,w,c,v,T,d,D,k]),Z.useMemo(()=>{if(!n)return;function e(e){y.pointerType=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e,n=e.currentTarget,r=m.select(`domReferenceElement`),i=m.select(`open`),o=j(r,n,e.target);if(a&&!Ee(y.pointerType))return;if(i&&o&&y.handleCloseOptions?.blockPointerEvents){let e=m.select(`floatingElement`);if(e){let t=y.handleCloseOptions?.getScope?.()??n.ownerDocument.body;ur(y,{scopeElement:t,referenceElement:n,floatingElement:e})}}let s=nr(w.current);if(i&&!o||s===0||!o&&y.restTimeoutPending&&e.movementX**2+e.movementY**2<2)return;y.restTimeout.clear();function c(){if(y.restTimeoutPending=!1,O())return;let e=m.select(`open`);!y.blockMouseMove&&(!e||o)&&k()&&m.setOpen(!0,S(H,t,n))}y.pointerType===`touch`?pr.flushSync(()=>{c()}):o&&i?c():(y.restTimeoutPending=!0,y.restTimeout.start(s,c))}}},[n,y,O,j,a,m,w,k])}var gr=.1,_r=gr*gr,Q=.5;function vr(e,t,n,r,i,a){return r>=t!=a>=t&&e<=(i-n)*(t-r)/(a-r)+n}function yr(e,t,n,r,i,a,o,s,c,l){let u=!1;return vr(e,t,n,r,i,a)&&(u=!u),vr(e,t,i,a,o,s)&&(u=!u),vr(e,t,o,s,c,l)&&(u=!u),vr(e,t,c,l,n,r)&&(u=!u),u}function br(e,t,n){return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height}function xr(e,t,n,r,i,a){return e>=Math.min(n,i)&&e<=Math.max(n,i)&&t>=Math.min(r,a)&&t<=Math.max(r,a)}function Sr(e={}){let{blockPointerEvents:t=!1}=e,n=new W,r=({x:e,y:t,placement:r,elements:i,onClose:a,nodeId:o,tree:s})=>{let c=r?.split(`-`)[0],l=!1,u=null,d=null,f=typeof performance<`u`?performance.now():0;function p(e,t){let n=performance.now(),r=n-f;if(u===null||d===null||r===0)return u=e,d=t,f=n,!1;let i=e-u,a=t-d,o=i*i+a*a,s=r*r*_r;return u=e,d=t,f=n,o<s}function m(){n.clear(),a()}return function(r){n.clear();let a=i.domReference,u=i.floating;if(!a||!u||c==null||e==null||t==null)return;let{clientX:d,clientY:f}=r,h=vt(r),g=r.type===`mouseleave`,_=q(u,h),v=q(a,h);if(_&&(l=!0,!g))return;if(v&&(l=!1,!g)){l=!0;return}if(g&&A(r.relatedTarget)&&q(u,r.relatedTarget))return;function y(){return!!(s&&Me(s.nodesRef.current,o).length>0)}function b(){y()||m()}if(y())return;let x=a.getBoundingClientRect(),S=u.getBoundingClientRect(),C=e>S.right-S.width/2,w=t>S.bottom-S.height/2,T=S.width>x.width,E=S.height>x.height,D=(T?x:S).left,O=(T?x:S).right,k=(E?x:S).top,j=(E?x:S).bottom;if(c===`top`&&t>=x.bottom-1||c===`bottom`&&t<=x.top+1||c===`left`&&e>=x.right-1||c===`right`&&e<=x.left+1){b();return}let M=!1;switch(c){case`top`:M=xr(d,f,D,x.top+1,O,S.bottom-1);break;case`bottom`:M=xr(d,f,D,S.top+1,O,x.bottom-1);break;case`left`:M=xr(d,f,S.right-1,j,x.left+1,k);break;case`right`:M=xr(d,f,x.right-1,j,S.left+1,k);break;default:}if(M)return;if(l&&!br(d,f,x)){b();return}if(!g&&p(d,f)){b();return}let N=!1;switch(c){case`top`:{let n=T?Q/2:Q*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t+Q+1,o=C||T?S.bottom-Q:S.top,s=C?T?S.bottom-Q:S.top:S.bottom-Q;N=yr(d,f,r,a,i,a,S.left,o,S.right,s);break}case`bottom`:{let n=T?Q/2:Q*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t-Q,o=C||T?S.top+Q:S.bottom,s=C?T?S.top+Q:S.bottom:S.top+Q;N=yr(d,f,r,a,i,a,S.left,o,S.right,s);break}case`left`:{let n=E?Q/2:Q*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e+Q+1,o=w||E?S.right-Q:S.left,s=w?E?S.right-Q:S.left:S.right-Q;N=yr(d,f,o,S.top,s,S.bottom,a,r,a,i);break}case`right`:{let n=E?Q/2:Q*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e-Q,o=w||E?S.left+Q:S.right,s=w?E?S.left+Q:S.right:S.left+Q;N=yr(d,f,a,r,a,i,o,S.top,s,S.bottom);break}default:}N?l||n.start(40,b):b()}};return r.__options={...e,blockPointerEvents:t},r}var Cr=Z.createContext(void 0);function wr(e){let t=Z.useContext(Cr);if(t===void 0&&!e)throw Error(r(33));return t}var Tr=Z.createContext(void 0);function Er(e){let t=Z.useContext(Tr);if(t===void 0&&!e)throw Error(r(36));return t}var Dr=Z.createContext(void 0);function Or(e=!0){let t=Z.useContext(Dr);if(t===void 0&&!e)throw Error(r(25));return t}function kr(e){let{closeOnClick:t,highlighted:n,id:r,nodeId:i,store:a,typingRef:o,itemRef:s,itemMetadata:c}=e,{events:l}=a.useState(`floatingTreeRoot`),u=a.useState(`open`),d=Or(!0),f=d!==void 0;return Z.useMemo(()=>({id:r,role:`menuitem`,tabIndex:u&&n?0:-1,onKeyDown(e){e.key===` `&&o?.current&&e.preventDefault()},onMouseMove(e){i&&l.emit(`itemhover`,{nodeId:i,target:e.currentTarget})},onClick(e){t&&l.emit(`close`,{domEvent:e,reason:Be})},onMouseUp(e){if(d){let t=d.initialCursorPointRef.current;if(d.initialCursorPointRef.current=null,f&&t&&Math.abs(e.clientX-t.x)<=1&&Math.abs(e.clientY-t.y)<=1||f&&!Ve&&e.button===2)return}s.current&&a.context.allowMouseUpTriggerRef.current&&(!f||e.button===2)&&(!c||c.type===`regular-item`)&&s.current.click()}}),[t,n,r,l,i,u,a,o,s,d,f,c])}var Ar={type:`regular-item`};function jr(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:i,store:a,typingRef:o=a.context.typingRef,nativeButton:c,itemMetadata:l,nodeId:d}=e,f=a.useState(`disabled`),p=n||f,m=Z.useRef(null),{getButtonProps:h,buttonRef:g}=le({disabled:p,focusableWhenDisabled:!0,native:c,composite:!0}),_=kr({closeOnClick:t,highlighted:r,id:i,nodeId:d,store:a,typingRef:o,itemRef:m,itemMetadata:l}),v=Z.useCallback(e=>u(_,{onMouseEnter(){l.type===`submenu-trigger`&&l.setActive()}},e,h),[_,h,l]),y=s(m,g);return Z.useMemo(()=>({getItemProps:v,itemRef:y}),[v,y])}var Mr=Z.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:s=!1,disabled:c=!1,closeOnClick:l=!0,style:u,...d}=e,f=Vt({label:a}),p=wr(!0),m=U(i),{store:h}=Er(),g=h.useState(`isActive`,f.index),_=h.useState(`itemProps`),{getItemProps:v,itemRef:y}=jr({closeOnClick:l,disabled:c,highlighted:g,id:m,store:h,nativeButton:s,nodeId:p?.context.nodeId,itemMetadata:Ar});return o(`div`,e,{state:{disabled:c,highlighted:g},props:[_,d,v],ref:[y,t,f.ref]})}),$=i(),Nr={...T,...tt},Pr=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,...s}=e,{store:c}=Er(),{side:l,align:u}=wr(),d=Wt(!0)!=null,f=c.useState(`open`),p=c.useState(`transitionStatus`),m=c.useState(`popupProps`),h=c.useState(`mounted`),g=c.useState(`instantType`),_=c.useState(`activeTriggerElement`),v=c.useState(`parent`),y=c.useState(`lastOpenChangeReason`),b=c.useState(`rootId`),x=c.useState(`floatingRootContext`),C=c.useState(`floatingTreeRoot`),w=c.useState(`closeDelay`),T=c.useState(`activeTriggerElement`),E=c.useState(`hoverEnabled`),D=c.useState(`disabled`),O=c.useState(`openMethod`),k=v.type===`context-menu`;ge({open:f,ref:c.context.popupRef,onComplete(){f&&c.context.onOpenChangeComplete?.(!0)}}),Z.useEffect(()=>{function e(e){c.setOpen(!1,S(e.reason,e.domEvent))}return C.events.on(`close`,e),()=>{C.events.off(`close`,e)}},[C.events,c]),fr(x,{enabled:E&&!D&&!k&&v.type!==`menubar`,closeDelay:w});let A=Z.useCallback(e=>{c.set(`popupElement`,e)},[c]),j=o(`div`,e,{state:{transitionStatus:p,side:l,align:u,open:f,nested:v.type===`menu`,instant:g},ref:[t,c.context.popupRef,A],stateAttributesMapping:Nr,props:[m,{onKeyDown(e){d&&Te.has(e.key)&&e.stopPropagation()}},Ht(p),s,{"data-rootownerid":b}]}),M=v.type===void 0||k;return(_||v.type===`menubar`&&y!==`outside-press`)&&(M=!0),(0,$.jsx)(et,{context:x,openInteractionType:O,modal:k,disabled:!h,returnFocus:a===void 0?M:a,initialFocus:v.type!==`menu`,restoreFocus:!0,externalTree:v.type===`menubar`?void 0:C,previousFocusableElement:T,nextFocusableElement:v.type===void 0?c.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:v.type===void 0?c.context.beforeContentFocusGuardRef:void 0,children:j})}),Fr=Z.createContext(void 0);function Ir(){let e=Z.useContext(Fr);if(e===void 0)throw Error(r(32));return e}var Lr=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=Er();return i.useState(`mounted`)||n?(0,$.jsx)(Fr.Provider,{value:n,children:(0,$.jsx)(Ae,{ref:t,...r})}):null}),Rr=Z.forwardRef(function(e,t){let{anchor:n,positionMethod:r=`absolute`,className:i,render:a,side:o,align:s,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=at,style:g,..._}=e,{store:v}=Er(),y=Ir(),b=Or(!0),x=v.useState(`parent`),C=v.useState(`floatingRootContext`),w=v.useState(`floatingTreeRoot`),T=v.useState(`mounted`),E=v.useState(`open`),D=v.useState(`modal`),k=v.useState(`openMethod`),A=v.useState(`activeTriggerElement`),j=v.useState(`transitionStatus`),M=v.useState(`positionerElement`),F=v.useState(`instantType`),I=v.useState(`hasViewport`),L=v.useState(`lastOpenChangeReason`),ee=v.useState(`floatingNodeId`),te=v.useState(`floatingParentNodeId`),ne=C.useState(`domReferenceElement`),R=Z.useRef(null),re=O(M,!1,!1),ie=n,z=c,ae=l,oe=s,se=h;x.type===`context-menu`&&(ie=n??x.context?.anchor,oe??=`start`,!o&&oe!==`center`&&(ae=e.alignOffset??2,z=e.sideOffset??-5));let B=o,V=oe;x.type===`menu`?(B??=`inline-end`,V??=`start`,se=e.collisionAvoidance??ze):x.type===`menubar`&&(B??=x.context.orientation===`vertical`?`inline-end`:`bottom`,V??=`start`);let ce=x.type===`context-menu`,H=Gt({anchor:ie,floatingRootContext:C,positionMethod:b?`fixed`:r,mounted:T,side:B,sideOffset:z,align:V,alignOffset:ae,arrowPadding:ce?0:f,collisionBoundary:u,collisionPadding:d,sticky:p,nodeId:ee,keepMounted:y,disableAnchorTracking:m,collisionAvoidance:se,shiftCrossAxis:ce&&!(`side`in se&&se.side===`flip`),externalTree:w,adaptiveOrigin:I?Ft:void 0});Z.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===ee&&v.set(`hoverEnabled`,!1),e.nodeId!==ee&&e.parentNodeId===v.select(`floatingParentNodeId`)&&v.setOpen(!1,S(N)))}return w.events.on(`menuopenchange`,e),()=>{w.events.off(`menuopenchange`,e)}},[v,w.events,ee]),Z.useEffect(()=>{if(v.select(`floatingParentNodeId`)==null)return;function e(e){if(e.open||e.nodeId!==v.select(`floatingParentNodeId`))return;let t=e.reason??`sibling-open`;v.setOpen(!1,S(t))}return w.events.on(`menuopenchange`,e),()=>{w.events.off(`menuopenchange`,e)}},[w.events,v]);let le=ve();Z.useEffect(()=>{E||le.clear()},[E,le]),Z.useEffect(()=>{function e(e){if(!(!E||e.nodeId!==v.select(`floatingParentNodeId`)))if(e.target&&A&&A!==e.target){let e=v.select(`closeDelay`);e>0?le.isStarted()||le.start(e,()=>{v.setOpen(!1,S(N))}):v.setOpen(!1,S(N))}else le.clear()}return w.events.on(`itemhover`,e),()=>{w.events.off(`itemhover`,e)}},[w.events,E,A,v,le]),Z.useEffect(()=>{let e={open:E,nodeId:ee,parentNodeId:te,reason:v.select(`lastOpenChangeReason`)};w.events.emit(`menuopenchange`,e)},[w.events,E,v,ee,te]),Y(()=>{let e=ne,t=R.current;if(e&&(R.current=e),t&&e&&e!==t){v.set(`instantType`,void 0);let e=new AbortController;return re(()=>{v.set(`instantType`,`trigger-change`)},e.signal),()=>{e.abort()}}},[ne,re,v]);let ue={open:E,side:H.side,align:H.align,anchorHidden:H.anchorHidden,nested:x.type===`menu`,instant:F},de=x.type===`menubar`&&x.context.modal;Rt(E&&(de||D&&L!==`trigger-hover`),k===`touch`,M,A);let fe=Pt(e,ue,{styles:H.positionerStyles,transitionStatus:j,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!T,inert:!E}),pe=T&&x.type!==`menu`&&(x.type!==`menubar`&&D&&L!==`trigger-hover`||x.type===`menubar`&&x.context.modal),me=null;return x.type===`menubar`?me=x.context.contentElement:x.type===void 0&&(me=A),(0,$.jsxs)(Cr.Provider,{value:H,children:[pe&&(0,$.jsx)(bt,{ref:x.type===`context-menu`||x.type===`nested-context-menu`?x.context.internalBackdropRef:null,inert:_t(!E),cutout:me}),(0,$.jsx)(P,{id:ee,children:(0,$.jsx)(zt,{elementsRef:v.context.itemDomElements,labelsRef:v.context.itemLabels,children:fe})})]})}),zr=Z.createContext(null);function Br(e){let t=Z.useContext(zr);if(t===null&&!e)throw Error(r(5));return t}var Vr={...nn,disabled:J(e=>e.parent.type===`menubar`&&e.parent.context.disabled||e.disabled),modal:J(e=>(e.parent.type===void 0||e.parent.type===`context-menu`)&&(e.modal??!0)),openMethod:J(e=>e.openMethod),allowMouseEnter:J(e=>e.allowMouseEnter),highlightItemOnHover:J(e=>e.highlightItemOnHover),stickIfOpen:J(e=>e.stickIfOpen),parent:J(e=>e.parent),rootId:J(e=>e.parent.type===`menu`?e.parent.store.select(`rootId`):e.parent.type===void 0?e.rootId:e.parent.context.rootId),activeIndex:J(e=>e.activeIndex),isActive:J((e,t)=>e.activeIndex===t),hoverEnabled:J(e=>e.hoverEnabled),instantType:J(e=>e.instantType),lastOpenChangeReason:J(e=>e.openChangeReason),floatingTreeRoot:J(e=>e.parent.type===`menu`?e.parent.store.select(`floatingTreeRoot`):e.floatingTreeRoot),floatingNodeId:J(e=>e.floatingNodeId),floatingParentNodeId:J(e=>e.floatingParentNodeId),itemProps:J(e=>e.itemProps),closeDelay:J(e=>e.closeDelay),hasViewport:J(e=>e.hasViewport),keyboardEventRelay:J(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type===`menu`)return e.parent.store.select(`keyboardEventRelay`)})},Hr=class e extends pt{constructor(e){super({...Ur(),...e},{positionerRef:Z.createRef(),popupRef:Z.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:Z.createRef(),beforeContentFocusGuardRef:Z.createRef(),onOpenChangeComplete:void 0,triggerElements:new ne},Vr),this.unsubscribeParentListener=this.observe(`parent`,e=>{if(this.unsubscribeParentListener?.(),e.type===`menu`){let t=e.store.select(`rootId`),n=e.store.select(`floatingTreeRoot`),r=e.store.select(`keyboardEventRelay`);this.unsubscribeParentListener=e.store.subscribe(()=>{let i=e.store.select(`rootId`),a=e.store.select(`floatingTreeRoot`),o=e.store.select(`keyboardEventRelay`);t===i&&n===a&&r===o||(t=i,n=a,r=o,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}e.type!==void 0&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit(`setOpen`,{open:e,eventDetails:t})}static useStore(t,n){let r=p(()=>new e(n)).current;return t??r}unsubscribeParentListener=null};function Ur(){return{...cn(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new h,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:l,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}var Wr=Z.createContext(void 0);function Gr(){return Z.useContext(Wr)}var Kr=$e(function(e){let{children:n,open:r,onOpenChange:i,onOpenChangeComplete:a,defaultOpen:o=!1,disabled:s=!1,modal:c,loopFocus:d=!0,orientation:f=`vertical`,actionsRef:p,closeParentOnEsc:m=!1,handle:h,triggerId:g,defaultTriggerId:_=null,highlightItemOnHover:v=!0}=e,b=Or(!0),x=Er(!0),C=Br(!0),w=Gr(),T=Z.useMemo(()=>w&&x?{type:`menu`,store:x.store}:C?{type:`menubar`,context:C}:b&&!x?{type:`context-menu`,context:b}:{type:void 0},[b,x,C,w]),E=Hr.useStore(h?.store,{open:o,openProp:r,activeTriggerId:_,triggerIdProp:g,parent:T});ce(E,r,o,_),E.useControlledProp(`openProp`,r),E.useControlledProp(`triggerIdProp`,g),E.useContextCallback(`onOpenChangeComplete`,a);let D=xe(),O=xe(),k=E.useState(`floatingTreeRoot`),A=_e(k),j=be(),N=E.useState(`open`),P=E.useState(`activeTriggerElement`),F=E.useState(`positionerElement`),L=E.useState(`hoverEnabled`),te=E.useState(`disabled`),ne=E.useState(`lastOpenChangeReason`),R=E.useState(`parent`),ie=E.useState(`activeIndex`),z=E.useState(`payload`),ae=E.useState(`floatingParentNodeId`),se=Z.useRef(null),B=Z.useRef(R.type!==`context-menu`),V=ve(),H=Z.useRef(!0),le=ve(),ue=ae!=null,{openMethod:de,triggerProps:fe}=It(N);E.useSyncedValues({disabled:s,highlightItemOnHover:v,modal:R.type===void 0?c:void 0,openMethod:de,rootId:D}),ee(E);let{forceUnmount:pe}=St(N,E,()=>{E.update({allowMouseEnter:!1,stickIfOpen:!0})});Y(()=>{b&&!x?E.update({parent:{type:`context-menu`,context:b},floatingNodeId:A,floatingParentNodeId:j}):x&&E.update({floatingNodeId:A,floatingParentNodeId:j})},[b,x,A,j,E]),Z.useEffect(()=>{if(N||(se.current=null),R.type===`context-menu`){if(!N){V.clear(),B.current=!1;return}V.start(500,()=>{B.current=!0})}},[V,N,R.type]),Y(()=>{!N&&!L&&E.set(`hoverEnabled`,!0)},[N,L,E]);let he=X((e,t)=>{let n=t.reason;if(N===e&&t.trigger===P&&ne===n)return;let r=oe(t);if(!e&&t.trigger==null&&(t.trigger=P??void 0),i?.(e,t),t.isCanceled)return;E.state.floatingRootContext.dispatchOpenChange(e,t);let a=t.event;if(e===!1&&a?.type===`click`&&a.pointerType===`touch`&&!H.current)return;e&&n===`trigger-focus`?(H.current=!1,le.start(300,()=>{H.current=!0})):(H.current=!0,le.clear());let o=(n===`trigger-press`||n===`item-press`)&&a.detail===0&&a?.isTrusted,s=!e&&(n===`escape-key`||n==null),c={open:e,openChangeReason:n};se.current=t.event??null,M(c,e,t.trigger,r()),E.update(c),R.type===`menubar`&&(n===`trigger-focus`||n===`focus-out`||n===`trigger-hover`||n===`list-navigation`||n===`sibling-open`)?E.set(`instantType`,`group`):o||s?E.set(`instantType`,o?`click`:`dismiss`):E.set(`instantType`,void 0)}),ge=me({popupStore:E,floatingId:O,nested:j!=null,onOpenChange:he}),U=ge.context.events;Z.useEffect(()=>{let e=({open:e,eventDetails:t})=>he(e,t);return U.on(`setOpen`,e),()=>{U?.off(`setOpen`,e)}},[U,he]);let W=Z.useCallback(()=>{E.setOpen(!1,S(He))},[E]);Z.useImperativeHandle(p,()=>({unmount:pe,close:W}),[pe,W]);let Se;R.type===`context-menu`&&(Se=R.context),Z.useImperativeHandle(Se?.positionerRef,()=>F,[F]),Z.useImperativeHandle(Se?.actionsRef,()=>({setOpen:he}),[he]);let G=I(ge,{enabled:!te,bubbles:{escapeKey:m&&R.type===`menu`},outsidePress(){return R.type!==`context-menu`||se.current?.type===`contextmenu`||B.current},externalTree:ue?k:void 0}),K=we(),Ce=Z.useCallback(e=>{E.select(`activeIndex`)!==e&&E.set(`activeIndex`,e)},[E]),q=Bt(ge,{enabled:!te,listRef:E.context.itemDomElements,activeIndex:ie,nested:R.type!==void 0,loopFocus:d,orientation:f,parentOrientation:R.type===`menubar`?R.context.orientation:void 0,rtl:K===`rtl`,disabledIndices:t,onNavigate:Ce,openOnArrowKeyDown:R.type!==`context-menu`,externalTree:ue?k:void 0,focusItemOnHover:v}),Te=Z.useCallback(e=>{E.context.typingRef.current=e},[E]),Ee=Ut(ge,{enabled:!te,listRef:E.context.itemLabels,elementsRef:E.context.itemDomElements,activeIndex:ie,resetMs:500,onMatch:e=>{N&&e!==ie&&E.set(`activeIndex`,e)},onTyping:Te});y(E,{floatingRootContext:ge,activeTriggerProps:Z.useMemo(()=>{let e=u(Ee.reference,q.reference,G.reference,{onMouseMove(){E.set(`allowMouseEnter`,!0)}},fe);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=N,e},[E,Ee.reference,q.reference,G.reference,fe,N]),inactiveTriggerProps:Z.useMemo(()=>{let e=u(q.trigger,G.trigger,fe);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=!1,e},[q.trigger,G.trigger,fe]),popupProps:Z.useMemo(()=>u(re,{id:O,role:`menu`,"aria-labelledby":P?.id,onMouseMove(){E.set(`allowMouseEnter`,!0),R.type===`menu`&&E.set(`hoverEnabled`,!1)},onClick(){E.select(`hoverEnabled`)&&E.set(`hoverEnabled`,!1)},onKeyDown(e){let t=E.select(`keyboardEventRelay`);t&&!e.isPropagationStopped()&&t(e)}},Ee.floating,q.floating,G.floating),[P,O,R.type,E,Ee.floating,q.floating,G.floating]),itemProps:q.item??l});let De=Z.useMemo(()=>({store:E,parent:T}),[E,T]),Oe=(0,$.jsx)(Tr.Provider,{value:De,children:typeof n==`function`?n({payload:z}):n});return R.type===void 0||R.type===`context-menu`?(0,$.jsx)(ye,{externalTree:k,children:Oe}):Oe});function qr(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=ht(),{ref:i,index:a}=Vt(e),o=n===a,c=Z.useRef(null),l=s(i,c);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=c.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:l,index:a}}function Jr(e){let{render:n,className:r,style:i,state:a=l,props:s=t,refs:c=t,metadata:u,stateAttributesMapping:d,tag:f=`div`,...p}=e,{compositeProps:m,compositeRef:h}=qr({metadata:u});return o(f,e,{state:a,ref:[...c,h],props:[m,...s,p],stateAttributesMapping:d})}function Yr(e){if(de(e)&&e.hasAttribute(`data-rootownerid`))return e.getAttribute(`data-rootownerid`)??void 0;if(!he(e))return Yr(Ct(e))}function Xr(e,t){let n=Z.useRef(null);function r(t){pr.flushSync(()=>{e.setOpen(!1,S(ae,t.nativeEvent,t.currentTarget))}),ke(n.current)?.focus()}function i(n){let r=e.select(`positionerElement`);if(r&&ut(n,r))e.context.beforeContentFocusGuardRef.current?.focus();else{pr.flushSync(()=>{e.setOpen(!1,S(ae,n.nativeEvent,n.currentTarget))});let i=g(e.context.triggerFocusTargetRef.current||t.current);for(;i!==null&&q(r,i);){let e=i;if(i=V(i),i===e)break}i?.focus()}}return{preFocusGuardRef:n,handlePreFocusGuardFocus:r,handleFocusTargetFocus:i}}function Zr(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,i=Z.useRef(!1);return Z.useMemo(()=>t?{onMouseDown:e=>{(n===`open`&&!r||n===`close`&&r)&&(i.current=!0,_(e.currentTarget).addEventListener(`click`,()=>{i.current=!1},{once:!0}))},onClick:e=>{i.current&&(i.current=!1,e.preventBaseUIHandler())}}:l,[t,n,r])}var Qr=2,$r=Ke(function(e,t){let{render:n,className:i,style:a,disabled:s=!1,nativeButton:c=!0,id:d,openOnHover:f,delay:p=100,closeDelay:m=0,handle:g,payload:v,...y}=e,b=Er(!0),x=g?.store??b?.store;if(!x)throw Error(r(85));let S=U(d),w=x.useState(`isTriggerActive`,S),T=x.useState(`floatingRootContext`),E=x.useState(`isOpenedByTrigger`,S),D=x.useState(`triggerPopupId`,S),O=Z.useRef(null),k=ti(),A=ht(!0),j=B(),M=Z.useMemo(()=>j??new h,[j]),{registerTrigger:N,isMountedByThisTrigger:P}=ue(S,O,x,{payload:v,closeDelay:m,parent:k,floatingTreeRoot:M,floatingNodeId:_e(M),floatingParentNodeId:be(),keyboardEventRelay:A?.relayKeyboardEvent}),F=k.type===`menubar`,I=x.useState(`disabled`),L=s||I||F&&k.context.disabled,{getButtonProps:ee,buttonRef:te}=le({disabled:L,native:c});Z.useEffect(()=>{!E&&k.type===void 0&&(x.context.allowMouseUpTriggerRef.current=!1)},[x,E,k.type]);let ne=Z.useRef(null),R=ve(),re=X(e=>{if(!ne.current)return;R.clear(),x.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if(q(ne.current,t)||q(x.select(`positionerElement`),t)||t===ne.current||t!=null&&Yr(t)===x.select(`rootId`))return;let n=Kt(ne.current);e.clientX>=n.left-Qr&&e.clientX<=n.right+Qr&&e.clientY>=n.top-Qr&&e.clientY<=n.bottom+Qr||M.events.emit(`close`,{domEvent:e,reason:gt})});Z.useEffect(()=>{E&&x.select(`lastOpenChangeReason`)===`trigger-hover`&&_(ne.current).addEventListener(`mouseup`,re,{once:!0})},[E,re,x]);let ie=F&&k.context.hasSubmenuOpen,z=hr(T,{enabled:(f??ie)&&!L&&k.type!==`context-menu`&&(!F||ie&&!P),handleClose:Sr({blockPointerEvents:!F}),mouseOnly:!0,move:!1,restMs:k.type===void 0?p:void 0,delay:{close:m},triggerElementRef:O,externalTree:M,isActiveTrigger:w,isClosing:()=>x.select(`transitionStatus`)===`ending`}),ae=ei(E,x.select(`lastOpenChangeReason`)),oe=Nt(T,{enabled:!L&&k.type!==`context-menu`,event:E&&F?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:k.type===void 0&&ae}),se=or(T,{enabled:!L&&ie}),V=Zr({open:E,enabled:F,mouseDownAction:`open`}),ce=Z.useMemo(()=>u(se.reference,oe.reference),[se.reference,oe.reference]),H=x.useState(`triggerProps`,P),{preFocusGuardRef:de,handlePreFocusGuardFocus:fe,handleFocusTargetFocus:pe}=Xr(x,O),me={disabled:L,open:E},he=[ne,t,te,N,O],ge=[ce,z??l,H,{"aria-haspopup":`menu`,"aria-controls":D,id:S,onMouseDown:e=>{x.select(`open`)||(R.start(200,()=>{x.context.allowMouseUpTriggerRef.current=!0}),_(e.currentTarget).addEventListener(`mouseup`,re,{once:!0}))}},F?{role:`menuitem`}:{},V,y,ee],ye=o(`button`,e,{enabled:!F,stateAttributesMapping:C,state:me,ref:he,props:ge});return F?(0,$.jsx)(Jr,{tag:`button`,render:n,className:i,style:a,state:me,refs:he,props:ge,stateAttributesMapping:C}):E?(0,$.jsxs)(Z.Fragment,{children:[(0,$.jsx)(ct,{ref:de,onFocus:fe},`${S}-pre-focus-guard`),(0,$.jsx)(Z.Fragment,{children:ye},S),(0,$.jsx)(ct,{ref:x.context.triggerFocusTargetRef,onFocus:pe},`${S}-post-focus-guard`)]}):(0,$.jsx)(Z.Fragment,{children:ye},S)});function ei(e,t){let n=ve(),[r,i]=Z.useState(!1);return Y(()=>{e&&t===`trigger-hover`?(i(!0),n.start(500,()=>{i(!1)})):e||(n.clear(),i(!1))},[e,t,n]),r}function ti(){let e=Or(!0),t=Er(!0),n=Br(!0);return Z.useMemo(()=>n?{type:`menubar`,context:n}:e&&!t?{type:`context-menu`,context:e}:{type:void 0},[e,t,n])}function ni(e){let t=R(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=de(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r;return(Jt(n)!==a||Jt(r)!==o)&&(n=a,r=o),{width:n,height:r}}function ri(e){let{popupElement:t,positionerElement:n,content:r,mounted:i,onMeasureLayout:a,onMeasureLayoutComplete:o,side:s,direction:c}=e,u=O(t,!0,!1),f=F(),p=Z.useRef(null),m=Z.useRef(!0),h=Z.useRef(d),g=X(a),_=X(o),v=Z.useMemo(()=>{let e=s===`top`,t=s===`left`;return c===`rtl`?(e||=s===`inline-end`,t||=s===`inline-end`):(e||=s===`inline-start`,t||=s===`inline-start`),e?{position:`absolute`,[s===`top`?`bottom`:`top`]:`0`,[t?`right`:`left`]:`0`}:l},[s,c]);Y(()=>{if(!i){h.current=d,m.current=!0,p.current=null;return}if(!t||!n)return;h.current=ai(t,v),oi(t,`auto`);let e=ii(t,`position`,`static`),r=ii(t,`transform`,`none`),a=ii(t,`scale`,`1`),o=ai(n,{"--available-width":`max-content`,"--available-height":`max-content`});function s(){e(),r(),o()}function c(){s(),a()}if(g?.(),m.current||p.current===null){si(n,`max-content`);let e=ni(t);return p.current=e,si(n,e),c(),_?.(null,e),m.current=!1,()=>{h.current(),h.current=d}}si(n,`max-content`);let l=p.current,y=ni(t);p.current=y,oi(t,l),c(),_?.(l,y),si(n,y);let b=new AbortController;return f.request(()=>{oi(t,y),u(()=>{t.style.setProperty(`--popup-width`,`auto`),t.style.setProperty(`--popup-height`,`auto`)},b.signal)}),()=>{b.abort(),f.cancel(),h.current(),h.current=d}},[r,t,n,u,f,i,g,_,v])}function ii(e,t,n){let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{e.style.setProperty(t,r)}}function ai(e,t){let n=[];for(let[r,i]of Object.entries(t))n.push(ii(e,r,i));return n.length?()=>{n.forEach(e=>e())}:d}function oi(e,t){let n=t===`auto`?`auto`:`${t.width}px`,r=t===`auto`?`auto`:`${t.height}px`;e.style.setProperty(`--popup-width`,n),e.style.setProperty(`--popup-height`,r)}function si(e,t){let n=t===`max-content`?`max-content`:`${t.width}px`,r=t===`max-content`?`max-content`:`${t.height}px`;e.style.setProperty(`--positioner-width`,n),e.style.setProperty(`--positioner-height`,r)}function ci(e){let{store:t,side:n,cssVars:r,children:i}=e,a=we(),o=t.useState(`activeTriggerElement`),s=t.useState(`activeTriggerId`),c=t.useState(`open`),l=t.useState(`payload`),u=t.useState(`mounted`),d=t.useState(`popupElement`),f=t.useState(`positionerElement`),p=Yt(c?o:null),m=fi(s,l),h=Z.useRef(null),[g,v]=Z.useState(null),[y,b]=Z.useState(null),x=Z.useRef(null),S=Z.useRef(null),C=O(x,!0,!1),w=F(),[T,E]=Z.useState(null),[D,k]=Z.useState(!1);Y(()=>(t.set(`hasViewport`,!0),()=>{t.set(`hasViewport`,!1)}),[t]);let A=X(()=>{x.current?.style.setProperty(`animation`,`none`),x.current?.style.setProperty(`transition`,`none`),S.current?.style.setProperty(`display`,`none`)}),j=X(e=>{x.current?.style.removeProperty(`animation`),x.current?.style.removeProperty(`transition`),S.current?.style.removeProperty(`display`),e&&E(e)}),M=Z.useRef(null);Y(()=>{(!c||!u)&&(M.current=null)},[c,u]),Y(()=>{if(o&&p&&o!==p&&M.current!==o&&h.current){v(h.current),k(!0);let e=di(p,o);b(e),w.request(()=>{pr.flushSync(()=>{k(!1)}),C(()=>{v(null),E(null),h.current=null})}),M.current=o}},[o,p,g,C,w]),Y(()=>{let e=x.current;if(!e)return;let t=_(e).createElement(`div`);for(let n of Array.from(e.childNodes))t.appendChild(n.cloneNode(!0));h.current=t});let N=g!=null,P;P=N?(0,$.jsxs)(Z.Fragment,{children:[(0,$.jsx)(`div`,{"data-previous":!0,inert:_t(!0),ref:S,style:{...T?{[r.popupWidth]:`${T.width}px`,[r.popupHeight]:`${T.height}px`}:null,position:`absolute`},"data-ending-style":D?void 0:``},`previous`),(0,$.jsx)(`div`,{"data-current":!0,ref:x,"data-starting-style":D?``:void 0,children:i},m)]}):(0,$.jsx)(`div`,{"data-current":!0,ref:x,children:i},m),Y(()=>{let e=S.current;!e||!g||e.replaceChildren(...Array.from(g.childNodes))},[g]),ri({popupElement:d,positionerElement:f,mounted:u,content:l,onMeasureLayout:A,onMeasureLayoutComplete:j,side:n,direction:a});let I={activationDirection:li(y),transitioning:N};return{children:P,state:I}}function li(e){if(e)return`${ui(e.horizontal,5,`right`,`left`)} ${ui(e.vertical,5,`down`,`up`)}`}function ui(e,t,n,r){return e>t?n:e<-t?r:``}function di(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i={x:n.left+n.width/2,y:n.top+n.height/2},a={x:r.left+r.width/2,y:r.top+r.height/2};return{horizontal:a.x-i.x,vertical:a.y-i.y}}function fi(e,t){let[n,r]=Z.useState(0),i=Z.useRef(e),a=Z.useRef(t),o=Z.useRef(!1);return Y(()=>{let n=i.current,s=a.current,c=e!==n,l=t!==s;c?(r(e=>e+1),o.current=!l):o.current&&l&&(r(e=>e+1),o.current=!1),i.current=e,a.current=t},[e,t]),`${e??`current`}-${n}`}var pi=Kr;function mi({className:e,children:t,...n}){return(0,$.jsx)($r,{className:e,"data-slot":`menu-trigger`,...n,children:t})}function hi({children:e,className:t,sideOffset:n=4,align:r=`center`,alignOffset:i,side:a=`bottom`,anchor:o,...s}){return(0,$.jsx)(Lr,{children:(0,$.jsx)(Rr,{align:r,alignOffset:i,anchor:o,className:`z-50`,"data-slot":`menu-positioner`,side:a,sideOffset:n,children:(0,$.jsx)(Pr,{className:c(`relative flex not-[class*='w-']:min-w-32 origin-(--transform-origin) rounded-lg border bg-popover not-dark:bg-clip-padding shadow-lg/5 outline-none before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] focus:outline-none dark:before:shadow-[0_-1px_--theme(--color-white/6%)]`,t),"data-slot":`menu-popup`,...s,children:(0,$.jsx)(`div`,{className:`max-h-(--available-height) w-full overflow-y-auto p-1`,children:e})})})})}function gi({className:e,inset:t,variant:n=`default`,...r}){return(0,$.jsx)(Mr,{className:c(`[&>svg]:-mx-0.5 flex min-h-8 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-base text-foreground outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-inset:ps-8 data-[variant=destructive]:text-destructive-foreground data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&>svg:not([class*='opacity-'])]:opacity-80 [&>svg:not([class*='size-'])]:size-4.5 sm:[&>svg:not([class*='size-'])]:size-4 [&>svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:[&>svg:not([class*='text-'])]:text-current [&>svg]:pointer-events-none [&>svg]:shrink-0`,e),"data-inset":t,"data-slot":`menu-item`,"data-variant":n,...r})}function _i({className:e,...t}){return(0,$.jsx)(Xt,{className:c(`mx-2 my-1 h-px bg-border`,e),"data-slot":`menu-separator`,...t})}var vi=Z.createContext(void 0);function yi(){let e=Z.useContext(vi);if(e===void 0)throw Error(r(64));return e}var bi=function(e){return e.activationDirection=`data-activation-direction`,e.orientation=`data-orientation`,e}({}),xi={tabActivationDirection:e=>({[bi.activationDirection]:e})},Si=Z.forwardRef(function(e,t){let{className:n,defaultValue:r=0,onValueChange:i,orientation:a=`horizontal`,render:s,value:c,style:l,...u}=e,d=e.defaultValue!==void 0,f=Z.useRef([]),[p,m]=Z.useState(()=>new Map),[h,g]=j({controlled:c,default:r,name:`Tabs`,state:`value`}),_=c!==void 0,[y,b]=Z.useState(()=>new Map),x=Z.useRef(void 0),C=Z.useCallback(e=>{if(e===void 0)return null;for(let[t,n]of y.entries())if(n!=null&&e===(n.value??n.index))return t;return null},[y]),[w,T]=Z.useState(()=>({previousValue:h,tabActivationDirection:`none`})),{previousValue:D,tabActivationDirection:O}=w,k=O,A=!1;D!==h&&(k=Ci(D,h,a,y),A=D!=null&&h!=null&&C(h)==null);let M=A?D:h,N=D!==M||O!==k;Y(()=>{N&&T({previousValue:M,tabActivationDirection:k})},[M,N,k]);let P=X((e,t)=>{t.activationDirection=Ci(h,e,a,y),i?.(e,t),!t.isCanceled&&g(e)}),F=X((e,t)=>{i?.(e,S(t,void 0,void 0,{activationDirection:`none`}))}),I=X((e,t)=>{m(n=>{if(n.get(e)===t)return n;let r=new Map(n);return r.set(e,t),r})}),L=X((e,t)=>{m(n=>{if(!n.has(e)||n.get(e)!==t)return n;let r=new Map(n);return r.delete(e),r})}),ee=Z.useCallback(e=>p.get(e),[p]),te=Z.useCallback(e=>{for(let t of y.values())if(e===t?.value)return t?.id},[y]),ne=Z.useMemo(()=>({getTabElementBySelectedValue:C,getTabIdByPanelValue:te,getTabPanelIdByValue:ee,onValueChange:P,orientation:a,registerMountedTabPanel:I,setTabMap:b,unregisterMountedTabPanel:L,tabActivationDirection:k,value:h}),[C,te,ee,P,a,I,b,L,k,h]),R=Z.useMemo(()=>{for(let e of y.values())if(e!=null&&e.value===h)return e},[y,h]),re=Z.useMemo(()=>{for(let e of y.values())if(e!=null&&!e.disabled)return e.value},[y]),z=Z.useRef(!d),ae=Z.useRef(r),oe=Z.useRef(d),se=Z.useRef(!1);Y(()=>{if(_)return;function e(e,t){g(e),T(t=>t.previousValue===e&&t.tabActivationDirection===`none`?t:{previousValue:e,tabActivationDirection:`none`}),F(e,t),z.current=!1}if(y.size===0){se.current&&h!==null&&!x.current?.isConnected&&e(null,ie);return}se.current=!0,x.current=y.keys().next().value;let t=R?.disabled,n=R==null&&h!==null;if(!t&&h===ae.current&&(oe.current=!1),oe.current&&t&&h===ae.current)return;let r=z.current;if(t||n){let n=re??null;if(h===n){z.current=!1;return}let i=ie;r?i=v:t&&(i=E),e(n,i);return}r&&R!=null&&(F(h,v),z.current=!1)},[re,_,F,R,g,y,h]);let B=o(`div`,e,{state:{orientation:a,tabActivationDirection:k},ref:t,props:u,stateAttributesMapping:xi});return(0,$.jsx)(vi.Provider,{value:ne,children:(0,$.jsx)(zt,{elementsRef:f,children:B})})});function Ci(e,t,n,r){if(e==null||t==null)return`none`;let i=null,a=null;for(let[n,o]of r.entries()){if(o==null)continue;let r=o.value??o.index;if(e===r&&(i=n),t===r&&(a=n),i!=null&&a!=null)break}if(i==null||a==null)return i!==a&&(typeof e==`number`||typeof e==`string`)&&typeof e==typeof t?n===`horizontal`?t>e?`right`:`left`:t>e?`down`:`up`:`none`;let o=i.getBoundingClientRect(),s=a.getBoundingClientRect();if(n===`horizontal`){if(s.left<o.left)return`left`;if(s.left>o.left)return`right`}else{if(s.top<o.top)return`up`;if(s.top>o.top)return`down`}return`none`}var wi=`data-composite-item-active`,Ti=Z.createContext(void 0);function Ei(){let e=Z.useContext(Ti);if(e===void 0)throw Error(r(65));return e}var Di=Z.forwardRef(function(e,t){let{className:n,disabled:r=!1,render:i,value:a,id:s,nativeButton:c=!0,style:l,...u}=e,{value:d,getTabPanelIdByValue:f,orientation:p,tabActivationDirection:m}=yi(),{activateOnFocus:h,highlightedTabIndex:g,onTabActivation:v,registerTabResizeObserverElement:y,setHighlightedTabIndex:b,tabsListElement:x}=Ei(),C=U(s),{compositeProps:w,compositeRef:T,index:E}=qr({metadata:Z.useMemo(()=>({disabled:r,id:C,value:a}),[r,C,a])}),D=a===d,O=Z.useRef(!1),k=Z.useRef(null);Y(()=>{let e=k.current;if(e)return y(e)},[y]),Y(()=>{if(O.current){O.current=!1;return}if(!(D&&E>-1&&g!==E))return;let e=x;if(e!=null){let t=xt(_(e));if(t&&q(e,t))return}r||b(E)},[D,E,g,b,r,x]);let{getButtonProps:A,buttonRef:j}=le({disabled:r,native:c,focusableWhenDisabled:!0}),M=f(a),N=Z.useRef(!1),P=Z.useRef(!1);function F(e){D||r||v(a,S(se,e.nativeEvent,void 0,{activationDirection:`none`}))}function I(e){D||(E>-1&&!r&&b(E),!r&&h&&(!N.current||N.current&&P.current)&&v(a,S(se,e.nativeEvent,void 0,{activationDirection:`none`})))}function L(e){if(D||r)return;N.current=!0;function t(){N.current=!1,P.current=!1}(!e.button||e.button===0)&&(P.current=!0,_(e.currentTarget).addEventListener(`pointerup`,t,{once:!0}))}return o(`button`,e,{state:{disabled:r,active:D,orientation:p,tabActivationDirection:m},ref:[t,j,T,k],props:[w,{role:`tab`,"aria-controls":M,"aria-selected":D,id:C,onClick:F,onFocus:I,onPointerDown:L,[wi]:D?``:void 0,onKeyDownCapture(){O.current=!0}},u,A],stateAttributesMapping:xi})}),Oi=Ie();function ki(){return d}function Ai(){return!1}function ji(){return!0}function Mi(){return(0,Oi.useSyncExternalStore)(ki,Ai,ji)}var Ni=function(e){return e.activeTabLeft=`--active-tab-left`,e.activeTabRight=`--active-tab-right`,e.activeTabTop=`--active-tab-top`,e.activeTabBottom=`--active-tab-bottom`,e.activeTabWidth=`--active-tab-width`,e.activeTabHeight=`--active-tab-height`,e}({}),Pi={...xi,activeTabPosition:()=>null,activeTabSize:()=>null},Fi=Z.forwardRef(function(e,t){let{className:n,render:r,renderBeforeHydration:i=!1,style:a,...s}=e,{nonce:c}=qe(),{getTabElementBySelectedValue:l,orientation:u,tabActivationDirection:d,value:f}=yi(),{tabsListElement:p,registerIndicatorUpdateListener:m}=Ei(),h=Mi(),g=$n();Z.useEffect(()=>m(g),[m,g]);let _=0,v=0,y=0,b=0,x=0,S=0,C=!1;if(f!=null&&p!=null){let e=l(f);if(e!=null){C=!0;let{width:t,height:n}=ni(e),{width:r,height:i}=ni(p),a=e.getBoundingClientRect(),o=p.getBoundingClientRect(),s=r>0?o.width/r:1,c=i>0?o.height/i:1;if(Math.abs(s)>2**-52&&Math.abs(c)>2**-52){let e=a.left-o.left,t=a.top-o.top;_=e/s+p.scrollLeft-p.clientLeft,y=t/c+p.scrollTop-p.clientTop}else _=e.offsetLeft,y=e.offsetTop;x=t,S=n,v=p.scrollWidth-_-x,b=p.scrollHeight-y-S}}let w=C?{left:_,right:v,top:y,bottom:b}:null,T=C?{width:x,height:S}:null,E=C?{[Ni.activeTabLeft]:`${_}px`,[Ni.activeTabRight]:`${v}px`,[Ni.activeTabTop]:`${y}px`,[Ni.activeTabBottom]:`${b}px`,[Ni.activeTabWidth]:`${x}px`,[Ni.activeTabHeight]:`${S}px`}:void 0,D=o(`span`,e,{state:{orientation:u,activeTabPosition:w,activeTabSize:T,tabActivationDirection:d},ref:t,props:[{role:`presentation`,style:E,hidden:!(C&&x>0&&S>0)},s,{suppressHydrationWarning:!0}],stateAttributesMapping:Pi});return f==null?null:(0,$.jsxs)(Z.Fragment,{children:[D,h&&i&&(0,$.jsx)(`script`,{nonce:c,dangerouslySetInnerHTML:{__html:'!function(){const t=document.currentScript.previousElementSibling;if(!t)return;const e=t.closest(\'[role="tablist"]\');if(!e)return;const i=e.querySelector("[data-active]");if(!i)return;if(0===i.offsetWidth||0===e.offsetWidth)return;let o=0,n=0,h=0,l=0,r=0,f=0;function s(t){const e=getComputedStyle(t);let i=parseFloat(e.width)||0,o=parseFloat(e.height)||0;return(Math.round(i)!==t.offsetWidth||Math.round(o)!==t.offsetHeight)&&(i=t.offsetWidth,o=t.offsetHeight),{width:i,height:o}}if(null!=i&&null!=e){const{width:t,height:c}=s(i),{width:u,height:d}=s(e),a=i.getBoundingClientRect(),g=e.getBoundingClientRect(),p=u>0?g.width/u:1,b=d>0?g.height/d:1;if(Math.abs(p)>Number.EPSILON&&Math.abs(b)>Number.EPSILON){const t=a.left-g.left,i=a.top-g.top;o=t/p+e.scrollLeft-e.clientLeft,h=i/b+e.scrollTop-e.clientTop}else o=i.offsetLeft,h=i.offsetTop;r=t,f=c,n=e.scrollWidth-o-r,l=e.scrollHeight-h-f}function c(e,i){t.style.setProperty(`--active-tab-${e}`,`${i}px`)}c("left",o),c("right",n),c("top",h),c("bottom",l),c("width",r),c("height",f),r>0&&f>0&&t.removeAttribute("hidden")}();'},suppressHydrationWarning:!0})]})}),Ii=function(e){return e.index=`data-index`,e.activationDirection=`data-activation-direction`,e.orientation=`data-orientation`,e.hidden=`data-hidden`,e[e.startingStyle=L.startingStyle]=`startingStyle`,e[e.endingStyle=L.endingStyle]=`endingStyle`,e}({}),Li={...xi,...tt},Ri=Z.forwardRef(function(e,t){let{className:n,value:r,render:i,keepMounted:a=!1,style:s,...c}=e,{value:l,getTabIdByPanelValue:u,orientation:d,tabActivationDirection:f,registerMountedTabPanel:p,unregisterMountedTabPanel:m}=yi(),h=U(),{ref:g,index:_}=Vt({metadata:Z.useMemo(()=>({id:h,value:r}),[h,r])}),v=r===l,{mounted:y,transitionStatus:b,setMounted:x}=fe(v),S=!y,C=u(r),w={hidden:S,orientation:d,tabActivationDirection:f,transitionStatus:b},T=Z.useRef(null),E=o(`div`,e,{state:w,ref:[t,g,T],props:[{"aria-labelledby":C,hidden:S,id:h,role:`tabpanel`,tabIndex:v?0:-1,inert:_t(!v),[Ii.index]:_},c],stateAttributesMapping:Li});return ge({open:v,ref:T,onComplete(){v||x(!1)}}),Y(()=>{if(!(S&&!a)&&h!=null)return p(r,h),()=>{m(r,h)}},[S,a,r,h,p,m]),a||y?E:null}),zi=[];function Bi(e){let{loopFocus:t=!0,orientation:n=`both`,grid:r,onLoop:i,direction:a,highlightedIndex:o,onHighlightedIndexChange:c,rootRef:l,enableHomeAndEndKeys:u=!1,stopEventPropagation:d=!1,disabledIndices:f,modifierKeys:p=zi}=e,[m,h]=Z.useState(0),g=r!=null,_=Z.useRef(null),v=s(_,l),y=Z.useRef([]),b=Z.useRef(!1),x=o??m,S=X((e,t=!1)=>{if((c??h)(e),t){let t=y.current[e];Ne(_.current,t,a,n)}}),C=X(e=>{if(e.size===0||b.current)return;b.current=!0;let t=Array.from(e.keys()),r=t.find(e=>e?.hasAttribute(`data-composite-item-active`))??null,i=r?t.indexOf(r):-1;if(i!==-1)S(i);else if(st(t,x,f)){let e=Je(t,{disabledIndices:f});Xe(t,e)||S(e)}Ne(_.current,r,a,n)});Y(()=>{if(f==null||o!=null||!b.current)return;let e=y.current;if(st(e,x,f)){let t=Je(e,{disabledIndices:f});Xe(e,t)||S(t)}},[f,o,x,y,S]);let w=X((e,t,n)=>i?i(e,t,n,y):n),T=X(e=>{let o=u?Te:Le;if(!o.has(e.key)||Vi(e,p)||!_.current)return;let s=a===`rtl`,c=s?Ce:Ye,l={horizontal:c,vertical:nt,both:c}[n],m=s?Ye:Ce,h={horizontal:m,vertical:ot,both:m}[n],v=vt(e.nativeEvent);if(v!=null&&Pe(v)&&!qt(v)){let t=v.selectionStart,n=v.selectionEnd,r=v.value??``;if(t==null||e.shiftKey||t!==n||e.key!==h&&t<r.length||e.key!==l&&t>0)return}let b=x,C=Re(y,f),T=rt(y,f);r!=null&&(b=r({disabledIndices:f,elementsRef:y,event:e,highlightedIndex:x,loopFocus:t,maxIndex:T,minIndex:C,onLoop:w,orientation:n,rtl:s}));let E={horizontal:[c],vertical:[nt],both:[c,nt]}[n],D={horizontal:[m],vertical:[ot],both:[m,ot]}[n],O=g?o:{horizontal:u?Oe:ft,vertical:u?We:Qe,both:o}[n];u&&(e.key===`Home`?b=C:e.key===`End`&&(b=T)),b===x&&(E.includes(e.key)||D.includes(e.key))&&(t&&b===T&&E.includes(e.key)?(b=C,i&&(b=i(e,x,b,y))):t&&b===C&&D.includes(e.key)?(b=T,i&&(b=i(e,x,b,y))):b=Je(y.current,{startingIndex:b,decrement:D.includes(e.key),disabledIndices:f})),b!==x&&!Xe(y.current,b)&&(d&&e.stopPropagation(),O.has(e.key)&&e.preventDefault(),S(b,!0),queueMicrotask(()=>{y.current[b]?.focus()}))});return{props:{ref:v,onFocus(e){let t=_.current,n=vt(e.nativeEvent);!t||n==null||!Pe(n)||n.setSelectionRange(0,n.value.length??0)},onKeyDown:T},highlightedIndex:x,onHighlightedIndexChange:S,elementsRef:y,disabledIndices:f,onMapChange:C,relayKeyboardEvent:T}}function Vi(e,t){for(let n of je.values())if(!t.includes(n)&&e.getModifierState(n))return!0;return!1}function Hi(e){let{render:n,className:r,style:i,refs:a=t,props:s=t,state:c=l,stateAttributesMapping:u,highlightedIndex:d,onHighlightedIndexChange:f,orientation:p,grid:m,loopFocus:h,onLoop:g,enableHomeAndEndKeys:_,onMapChange:v,stopEventPropagation:y=!0,rootRef:b,disabledIndices:S,modifierKeys:C,highlightItemOnHover:w=!1,tag:T=`div`,...E}=e,{props:D,highlightedIndex:O,onHighlightedIndexChange:k,elementsRef:A,onMapChange:j,relayKeyboardEvent:M}=Bi({grid:m,loopFocus:h,onLoop:g,orientation:p,highlightedIndex:d,onHighlightedIndexChange:f,rootRef:b,stopEventPropagation:y,enableHomeAndEndKeys:_,direction:we(),disabledIndices:S,modifierKeys:C}),N=o(T,e,{state:c,ref:a,props:[D,...s,E],stateAttributesMapping:u}),P=Z.useMemo(()=>({highlightedIndex:O,onHighlightedIndexChange:k,highlightItemOnHover:w,relayKeyboardEvent:M}),[O,k,w,M]);return(0,$.jsx)(x.Provider,{value:P,children:(0,$.jsx)(zt,{elementsRef:A,onMapChange:e=>{v?.(e),j(e)},children:N})})}var Ui=Z.forwardRef(function(e,n){let{activateOnFocus:r=!1,className:i,loopFocus:a=!0,render:o,style:s,...c}=e,{onValueChange:l,orientation:u,value:d,setTabMap:f,tabActivationDirection:p}=yi(),[m,h]=Z.useState(0),[g,_]=Z.useState(null),v=Z.useRef(new Set),y=Z.useRef(new Set),b=Z.useRef(null);Y(()=>{if(typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>{v.current.forEach(e=>{e()})});return b.current=e,g&&e.observe(g),y.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),b.current=null}},[g]);let x=X(e=>(v.current.add(e),()=>{v.current.delete(e)})),S=X(e=>(y.current.add(e),b.current?.observe(e),()=>{y.current.delete(e),b.current?.unobserve(e)})),C=X((e,t)=>{e!==d&&l(e,t)}),w={orientation:u,tabActivationDirection:p},T={"aria-orientation":u===`vertical`?`vertical`:void 0,role:`tablist`},E=Z.useMemo(()=>({activateOnFocus:r,highlightedTabIndex:m,registerIndicatorUpdateListener:x,registerTabResizeObserverElement:S,onTabActivation:C,setHighlightedTabIndex:h,tabsListElement:g}),[r,m,x,S,C,h,g]);return(0,$.jsx)(Ti.Provider,{value:E,children:(0,$.jsx)(Hi,{render:o,className:i,style:s,state:w,refs:[n,_],props:[T,c],stateAttributesMapping:xi,highlightedIndex:m,enableHomeAndEndKeys:!0,loopFocus:a,orientation:u,onHighlightedIndexChange:h,onMapChange:f,disabledIndices:t})})});function Wi({className:e,...t}){return(0,$.jsx)(Si,{className:c(`flex flex-col gap-4`,e),"data-slot":`tabs`,...t})}function Gi({className:e,...t}){return(0,$.jsxs)(Ui,{className:c(`relative z-0 flex w-fit items-center gap-1 rounded-lg bg-muted p-1`,e),"data-slot":`tabs-list`,...t,children:[t.children,(0,$.jsx)(Fi,{className:`absolute top-1/2 left-0 z-[-1] h-[calc(100%-0.5rem)] w-(--active-tab-width) -translate-y-1/2 translate-x-(--active-tab-left) rounded-md bg-background shadow-xs transition-all duration-150`,"data-slot":`tabs-indicator`})]})}function Ki({className:e,...t}){return(0,$.jsx)(Di,{className:c(`flex h-7 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-transparent px-2.5 font-medium text-muted-foreground text-sm outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring data-selected:text-foreground`,e),"data-slot":`tabs-tab`,...t})}function qi({className:e,...t}){return(0,$.jsx)(Ri,{className:c(`flex-1 outline-none`,e),"data-slot":`tabs-panel`,...t})}var Ji=Z.createContext(void 0);function Yi(e){let t=Z.useContext(Ji);if(t===void 0&&!e)throw Error(r(47));return t}function Xi(){return{...cn(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1}}var Zi={...nn,disabled:J(e=>e.disabled),instantType:J(e=>e.instantType),openMethod:J(e=>e.openMethod),openChangeReason:J(e=>e.openChangeReason),modal:J(e=>e.modal),focusManagerModal:J(e=>e.focusManagerModal),stickIfOpen:J(e=>e.stickIfOpen),titleElementId:J(e=>e.titleElementId),descriptionElementId:J(e=>e.descriptionElementId),openOnHover:J(e=>e.openOnHover),closeDelay:J(e=>e.closeDelay),hasViewport:J(e=>e.hasViewport)},Qi=class e extends pt{constructor(e,t,n=!1){let r={...Xi(),...e},i=new ne;r.open&&e?.mounted===void 0&&(r.mounted=!0),r.floatingRootContext=tn(i,t,n),super(r,{popupRef:Z.createRef(),backdropRef:Z.createRef(),internalBackdropRef:Z.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:Z.createRef(),beforeContentFocusGuardRef:Z.createRef(),stickIfOpenTimeout:new W,triggerElements:i},Zi)}setOpen=(e,t)=>{let n=t.reason===H,r=t.reason===`trigger-press`&&t.event.detail===0,i=!e&&(t.reason===`escape-key`||t.reason==null),a=oe(t),o=this.select(`activeTriggerId`);if(!e&&t.reason===`close-press`&&t.trigger==null&&o!=null&&(t.trigger=this.context.triggerElements.getById(o)??this.select(`activeTriggerElement`)??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let s=()=>{let n={open:e,openChangeReason:t.reason};M(n,e,t.trigger,a()),this.update(n)};n?(this.set(`stickIfOpen`,!0),this.context.stickIfOpenTimeout.start(500,()=>{this.set(`stickIfOpen`,!1)}),pr.flushSync(s)):s(),r||i?this.set(`instantType`,r?`click`:`dismiss`):t.reason===`focus-out`?this.set(`instantType`,`focus`):this.set(`instantType`,void 0)};static useStore(t,n){let{store:r,internalStore:i}=k(t,(t,r)=>new e(n,t,r));return Z.useEffect(()=>i?.disposeEffect(),[i]),r}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()};function $i({props:e}){let{children:t,open:n,defaultOpen:r=!1,onOpenChange:i,onOpenChangeComplete:a,modal:o=!1,handle:s,triggerId:c,defaultTriggerId:l=null}=e,u=Qi.useStore(s?.store,{modal:o,open:r,openProp:n,activeTriggerId:l,triggerIdProp:c});ce(u,n,r,l),u.useControlledProp(`openProp`,n),u.useControlledProp(`triggerIdProp`,c);let d=u.useState(`open`),f=u.useState(`mounted`),p=u.useState(`payload`),m=be()!=null;u.useContextCallback(`onOpenChange`,i),u.useContextCallback(`onOpenChangeComplete`,a),pe(u,d),ee(u);let{forceUnmount:h}=St(d,u,()=>{u.update({stickIfOpen:!0,openChangeReason:null})});u.useSyncedValues({modal:o,nested:m}),Z.useEffect(()=>{d||u.context.stickIfOpenTimeout.clear()},[u,d]);let g=Z.useCallback(()=>{u.setOpen(!1,S(He))},[u]);Z.useImperativeHandle(e.actionsRef,()=>({unmount:h,close:g}),[h,g]);let _=d||f,v=Z.useMemo(()=>({store:u}),[u]);return(0,$.jsxs)(Ji.Provider,{value:v,children:[_&&(0,$.jsx)(ta,{store:u,modal:o}),typeof t==`function`?t({payload:p}):t]})}function ea(e){return Yi(!0)?(0,$.jsx)($i,{props:e}):(0,$.jsx)(ye,{children:(0,$.jsx)($i,{props:e})})}function ta({store:e,modal:t}){let n=I(e.useState(`floatingRootContext`),{outsidePressEvent:{mouse:t===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}});return y(e,{activeTriggerProps:n.reference??l,inactiveTriggerProps:n.trigger??l,popupProps:Z.useMemo(()=>u(re,n.floating),[n.floating])}),null}var na=Z.forwardRef(function(e,t){let{render:n,className:i,style:a,disabled:s=!1,nativeButton:c=!0,handle:l,payload:u,openOnHover:d=!1,delay:f=300,closeDelay:p=0,id:m,...h}=e,g=Yi(!0),_=l?.store??g?.store;if(!_)throw Error(r(74));let v=U(m),y=_.useState(`isTriggerActive`,v),b=_.useState(`floatingRootContext`),x=_.useState(`isOpenedByTrigger`,v),S=_.useState(`triggerPopupId`,v),w=Z.useRef(null),{registerTrigger:T,isMountedByThisTrigger:E}=ue(v,w,_,{payload:u,disabled:s,openOnHover:d,closeDelay:p}),D=_.useState(`openChangeReason`),O=_.useState(`stickIfOpen`),k=_.useState(`openMethod`),A=_.useState(`focusManagerModal`),j=hr(b,{enabled:!s&&b!=null&&d&&(k!==`touch`||D!==`trigger-press`),mouseOnly:!0,move:!1,handleClose:Sr(),restMs:f,delay:{close:p},triggerElementRef:w,isActiveTrigger:y,isClosing:()=>_.select(`transitionStatus`)===`ending`}),M=Nt(b,{enabled:b!=null,stickIfOpen:O}),N=Lt(()=>_.select(`open`),e=>{_.set(`openMethod`,e)}),P=_.useState(`triggerProps`,E),{getButtonProps:F,buttonRef:I}=le({disabled:s,native:c}),L={open(e){return e&&D===`trigger-press`?C.open(e):z.open(e)}},{preFocusGuardRef:ee,handlePreFocusGuardFocus:te,handleFocusTargetFocus:ne}=Xr(_,w),R=o(`button`,e,{state:{disabled:s,open:x},ref:[I,t,T,w],props:[M.reference,j,P,N,{[dt]:``,id:v,"aria-haspopup":`dialog`,"aria-expanded":x,"aria-controls":S},h,F],stateAttributesMapping:L});return E&&!A?(0,$.jsxs)(Z.Fragment,{children:[(0,$.jsx)(ct,{ref:ee,onFocus:te}),(0,$.jsx)(Z.Fragment,{children:R},v),(0,$.jsx)(ct,{ref:_.context.triggerFocusTargetRef,onFocus:ne})]}):(0,$.jsx)(Z.Fragment,{children:R},v)}),ra=Z.createContext(void 0);function ia(){let e=Z.useContext(ra);if(e===void 0)throw Error(r(45));return e}var aa=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=Yi();return i.useState(`mounted`)||n?(0,$.jsx)(ra.Provider,{value:n,children:(0,$.jsx)(Ae,{ref:t,...r})}):null}),oa=Z.createContext(void 0);function sa(){let e=Z.useContext(oa);if(!e)throw Error(r(46));return e}var ca=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,anchor:a,positionMethod:o=`absolute`,side:s=`bottom`,align:c=`center`,sideOffset:l=0,alignOffset:u=0,collisionBoundary:d=`clipping-ancestors`,collisionPadding:f=5,arrowPadding:p=5,sticky:m=!1,disableAnchorTracking:h=!1,collisionAvoidance:g=ze,..._}=e,{store:v}=Yi(),y=ia(),b=_e(),x=v.useState(`floatingRootContext`),S=v.useState(`mounted`),C=v.useState(`open`),w=v.useState(`openChangeReason`),T=v.useState(`activeTriggerElement`),E=v.useState(`modal`),D=v.useState(`openMethod`),k=v.useState(`positionerElement`),A=v.useState(`instantType`),j=v.useState(`transitionStatus`),M=v.useState(`hasViewport`),N=Z.useRef(null),F=O(k,!1,!1),I=Gt({anchor:a,floatingRootContext:x,positionMethod:o,mounted:S,side:s,sideOffset:l,align:c,alignOffset:u,arrowPadding:p,collisionBoundary:d,collisionPadding:f,sticky:m,disableAnchorTracking:h,keepMounted:y,nodeId:b,collisionAvoidance:g,adaptiveOrigin:M?Ft:void 0}),L=x.useState(`domReferenceElement`);Y(()=>{let e=L,t=N.current;if(e&&(N.current=e),t&&e&&e!==t){v.set(`instantType`,void 0);let e=new AbortController;return F(()=>{v.set(`instantType`,`trigger-change`)},e.signal),()=>{e.abort()}}},[L,F,v]),Rt(C&&E===!0&&w!==`trigger-hover`,D===`touch`,k,T);let ee=Z.useCallback(e=>{v.set(`positionerElement`,e)},[v]),te=Pt(e,{open:C,side:I.side,align:I.align,anchorHidden:I.anchorHidden,instant:A},{styles:I.positionerStyles,transitionStatus:j,props:_,refs:[t,ee],hidden:!S,inert:!C});return(0,$.jsxs)(oa.Provider,{value:I,children:[S&&E===!0&&w!==`trigger-hover`&&(0,$.jsx)(bt,{ref:v.context.internalBackdropRef,inert:_t(!C),cutout:T}),(0,$.jsx)(P,{id:b,children:te})]})}),la=Z.createContext(void 0);function ua(){let[e,t]=Z.useState(0),n=X(()=>(t(e=>e+1),()=>{t(e=>Math.max(0,e-1))}));return{context:Z.useMemo(()=>({register:n}),[n]),hasClosePart:e>0}}function da(e){let{value:t,children:n}=e;return(0,$.jsx)(la.Provider,{value:t,children:n})}var fa={...T,...tt},pa=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,initialFocus:a,finalFocus:s,...c}=e,{store:l}=Yi(),u=sa(),d=Wt(!0)!=null,{context:f,hasClosePart:p}=ua(),m=l.useState(`open`),h=l.useState(`openMethod`),g=l.useState(`instantType`),_=l.useState(`transitionStatus`),v=l.useState(`popupProps`),y=l.useState(`titleElementId`),b=l.useState(`descriptionElementId`),x=l.useState(`modal`),S=l.useState(`mounted`),C=l.useState(`openChangeReason`),w=l.useState(`activeTriggerElement`),T=l.useState(`floatingRootContext`),E=T.useState(`floatingId`),O=l.useState(`disabled`),k=l.useState(`openOnHover`),A=l.useState(`closeDelay`),j=c.id??E;ge({open:m,ref:l.context.popupRef,onComplete(){m&&l.context.onOpenChangeComplete?.(!0)}}),fr(T,{enabled:k&&!O,closeDelay:A});let M=a===void 0?D(l.context.popupRef):a,N=x!==!1&&p;l.useSyncedValue(`focusManagerModal`,N);let P=Z.useCallback(e=>{l.set(`popupElement`,e)},[l]),F=o(`div`,e,{state:{open:m,side:u.side,align:u.align,instant:g,transitionStatus:_},ref:[t,l.context.popupRef,P],props:[v,{id:j,role:`dialog`,...re,"aria-labelledby":y,"aria-describedby":b,onKeyDown(e){d&&Te.has(e.key)&&e.stopPropagation()}},Ht(_),c],stateAttributesMapping:fa});return(0,$.jsx)(et,{context:T,openInteractionType:h,modal:N,disabled:!S||C===`trigger-hover`,initialFocus:M,returnFocus:s,restoreFocus:`popup`,previousFocusableElement:de(w)?w:void 0,nextFocusableElement:l.context.triggerFocusTargetRef,beforeContentFocusGuardRef:l.context.beforeContentFocusGuardRef,children:(0,$.jsx)(da,{value:f,children:F})})}),ma=function(e){return e.popupWidth=`--popup-width`,e.popupHeight=`--popup-height`,e}({}),ha={activationDirection:e=>e?{"data-activation-direction":e}:null},ga=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...s}=e,{store:c}=Yi(),{side:l}=sa(),u=c.useState(`instantType`),{children:d,state:f}=ci({store:c,side:l,cssVars:ma,children:a});return o(`div`,e,{state:{activationDirection:f.activationDirection,transitioning:f.transitioning,instant:u},ref:t,props:[s,{children:d}],stateAttributesMapping:ha})}),_a=ea;function va({className:e,children:t,...n}){return(0,$.jsx)(na,{className:e,"data-slot":`popover-trigger`,...n,children:t})}function ya({children:e,className:t,viewportClassName:n,side:r=`bottom`,align:i=`center`,sideOffset:a=4,alignOffset:o=0,tooltipStyle:s=!1,anchor:l,...u}){return(0,$.jsx)(aa,{children:(0,$.jsx)(ca,{align:i,alignOffset:o,anchor:l,className:`z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom,transform] data-instant:transition-none`,"data-slot":`popover-positioner`,side:r,sideOffset:a,children:(0,$.jsx)(pa,{className:c(`relative flex h-(--popup-height,auto) w-(--popup-width,auto) origin-(--transform-origin) rounded-lg border bg-popover not-dark:bg-clip-padding text-popover-foreground shadow-lg/5 outline-none transition-[width,height,scale,opacity] before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] has-data-[slot=calendar]:rounded-xl has-data-[slot=calendar]:before:rounded-[calc(var(--radius-xl)-1px)] data-starting-style:scale-98 data-starting-style:opacity-0 dark:before:shadow-[0_-1px_--theme(--color-white/6%)]`,s&&`w-fit text-balance rounded-md text-xs shadow-md/5 before:rounded-[calc(var(--radius-md)-1px)]`,t),"data-slot":`popover-popup`,...u,children:(0,$.jsx)(ga,{className:c(`relative size-full max-h-(--available-height) overflow-clip px-(--viewport-inline-padding) py-4 [--viewport-inline-padding:--spacing(4)] has-data-[slot=calendar]:p-2 data-instant:transition-none **:data-current:data-ending-style:opacity-0 **:data-current:data-starting-style:opacity-0 **:data-previous:data-ending-style:opacity-0 **:data-previous:data-starting-style:opacity-0 **:data-current:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-previous:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-current:opacity-100 **:data-previous:opacity-100 **:data-current:transition-opacity **:data-previous:transition-opacity`,s?`py-1 [--viewport-inline-padding:--spacing(2)]`:`not-data-transitioning:overflow-y-auto`,n),"data-slot":`popover-viewport`,children:e})})})})}function ba({repos:e,disabled:t,onAdd:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(``),s=(0,Z.useMemo)(()=>{let t=a.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)):e},[e,a]);return(0,$.jsxs)(_a,{open:r,onOpenChange:e=>{e&&o(``),i(e)},children:[(0,$.jsx)(va,{render:(0,$.jsxs)(f,{variant:`outline`,size:`sm`,disabled:t,className:`h-8 text-xs text-muted-foreground`,children:[(0,$.jsx)(Qt,{size:14}),` Add repository`]})}),(0,$.jsxs)(ya,{align:`end`,className:`w-[320px]`,viewportClassName:`p-0`,children:[(0,$.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(jt,{className:`absolute top-1/2 left-2.5 size-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(yt,{autoFocus:!0,value:a,onChange:e=>o(e.target.value),placeholder:`Search repositories`,className:`pl-8`,"aria-label":`Search repositories`})]})}),(0,$.jsx)(`div`,{role:`listbox`,className:`max-h-64 overflow-y-auto py-1`,children:s.length===0?(0,$.jsx)(`div`,{className:`px-3 py-4 text-center text-sm text-muted-foreground`,children:`No repositories found.`}):s.map(e=>(0,$.jsxs)(`button`,{role:`option`,"aria-selected":!1,onClick:()=>{i(!1),n(e.path)},className:`flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-accent`,children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.name}),(0,$.jsx)(`span`,{className:`block truncate font-mono text-xs text-muted-foreground`,children:e.path})]}),(0,$.jsx)(`span`,{className:`shrink-0 font-mono text-xs text-muted-foreground`,children:e.defaultBranch})]},e.path))})]})]})}var xa=e=>e===`antigravity`?`Antigravity`:e===`claude`?`Claude Code`:e===`codex`?`OpenAI Codex`:`GitHub Copilot`,Sa=e=>e===`claude`?`warning`:e===`codex`?`success`:e===`antigravity`?`accent`:`info`,Ca=({ws:e,sessions:t,sessionsLoading:n,setActiveSession:r,setTranscript:i,fetchSessionTranscript:a,handleResumeSession:o,handleOpenDesktopSession:s})=>{let c=mn(),l=c.data?.find(e=>e.id===`codex-desktop`),u=l?.available===!0,d=c.isLoading?`Checking whether Codex Desktop is available…`:c.isError?`Could not check whether Codex Desktop is available.`:l?.unavailableReason??`Codex Desktop is not available on this computer.`,p=(0,Z.useRef)(null),[m,h]=(0,Z.useState)(null),g=async t=>{if(!(!u||p.current)){p.current=t,h(t);try{await s(e,t,`codex`)}finally{p.current=null,h(null)}}};return(0,$.jsx)(`div`,{children:n?(0,$.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,$.jsx)(lt,{className:`size-5 text-primary`})}):t.length===0?(0,$.jsx)(Fn,{className:`rounded-xl border border-border bg-card`,children:(0,$.jsxs)(Pn,{children:[(0,$.jsx)(Mn,{variant:`icon`,children:(0,$.jsx)(Wn,{})}),(0,$.jsx)(jn,{children:`No Past AI Sessions Found`}),(0,$.jsxs)(Nn,{children:[`Start a conversation with your AI assistant (e.g. running `,(0,$.jsx)(`code`,{children:`claude`}),`, `,(0,$.jsx)(`code`,{children:`agy`}),`, `,(0,$.jsx)(`code`,{children:`codex`}),`, or `,(0,$.jsx)(`code`,{children:`copilot`}),` inside this directory) to track session history here.`]})]})}):(0,$.jsx)(`div`,{className:`space-y-3 mb-6`,children:t.map(t=>(0,$.jsxs)(`div`,{className:`flex flex-col justify-between gap-4 rounded-xl border border-border bg-card p-4 transition-colors hover:border-foreground/15 md:flex-row md:items-center`,children:[(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2.5 mb-1.5`,children:[(0,$.jsx)(bn,{tone:Sa(t.assistant),children:xa(t.assistant)}),(0,$.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`Updated: `,new Date(t.updatedAt).toLocaleString()]}),(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`•`}),(0,$.jsxs)(`span`,{className:`text-[10px] font-medium text-muted-foreground`,children:[t.messageCount,` messages`]})]}),(0,$.jsx)(`h4`,{className:`truncate pr-4 text-xs font-semibold text-foreground`,title:t.title,children:t.title})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,$.jsxs)(f,{variant:`outline`,size:`sm`,onClick:()=>{r(t),i([]),a(t.assistant,t.id)},children:[(0,$.jsx)(Gn,{size:13}),` View Chat Log`]}),yn(t.assistant)&&(0,$.jsxs)(f,{size:`sm`,onClick:()=>o(e,t.id,t.assistant),children:[(0,$.jsx)(On,{size:11}),` Resume in NexusFlow`]}),t.assistant===`codex`&&(0,$.jsxs)(f,{variant:`outline`,size:`sm`,disabled:!u||m!==null,title:u?`Open this exact thread in Codex Desktop`:d,"aria-label":u?`Open in Codex Desktop`:`Codex Desktop unavailable: ${d}`,onClick:()=>void g(t.id),children:[m===t.id?(0,$.jsx)(lt,{className:`size-3`}):(0,$.jsx)($t,{size:12}),m===t.id?`Opening…`:`Open in Codex Desktop`]})]})]},t.id))})})};function wa({ws:e}){let t=e.branchName,n=Dn(t),r=wn(t),i=dn(t),a=n.data,o=(0,Z.useMemo)(()=>a?.services??[],[a]),s=(0,Z.useMemo)(()=>a?.runningState??[],[a]),l=a?.orchestrationTools??[],u=(0,Z.useMemo)(()=>a?.runningOrchestrators??[],[a]),d=(0,Z.useMemo)(()=>u.filter(e=>e.mode===`pm2`&&e.logName),[u]),[p,m]=(0,Z.useState)(`classic`),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{let e=[...o.map(e=>e.name),...d.map(e=>e.logName)];e.length===0?_!==null&&v(null):(!_||!e.includes(_))&&v(e[0])},[o,d]);let{logs:y,connected:b,clear:x}=rn(t,_,!0),S=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{S.current?.scrollIntoView({behavior:`smooth`})},[y]);let C=(0,Z.useMemo)(()=>new Set(s.filter(e=>e.pid>0).map(e=>e.name)),[s]),w=(0,Z.useMemo)(()=>new Set(u.map(e=>e.id)),[u]),T=C.size>0,E=p===`matrix`?`term-matrix`:p===`dracula`?`term-dracula`:`term-classic`,D=r.isPending||i.isPending;return(0,$.jsxs)(`div`,{className:`animate-fade-in`,children:[n.isLoading&&(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 text-[10px] text-primary`,children:[(0,$.jsx)(lt,{className:`size-3`}),(0,$.jsx)(`span`,{className:`font-semibold tracking-wider uppercase`,children:`Scanning service configurations...`})]}),l.length>0&&(0,$.jsxs)(`div`,{className:`mb-5 rounded-xl border border-border bg-card p-4`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 text-[10px] font-bold uppercase tracking-wider text-muted-foreground`,children:[(0,$.jsx)(kn,{size:12,className:`text-info`}),` Orchestration tools`]}),(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:l.map(e=>{let t=w.has(e.id);return(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border bg-muted/30 p-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`h-2 w-2 rounded-full ${t?`bg-success`:`bg-muted-foreground/40`}`}),(0,$.jsx)(`span`,{className:`text-xs font-bold text-foreground`,children:e.tool}),(0,$.jsx)(bn,{tone:`idle`,dot:!1,children:e.mode})]}),(0,$.jsx)(`code`,{className:`mt-1 block truncate font-mono text-[9px] text-muted-foreground`,children:e.configPath})]}),(0,$.jsx)(`div`,{className:`shrink-0`,children:t?(0,$.jsxs)(f,{size:`xs`,variant:`destructive`,"aria-label":`Stop ${e.tool}`,disabled:D,onClick:()=>i.mutate({action:`stop`,id:e.id}),children:[(0,$.jsx)(Dt,{size:12}),` Stop`]}):(0,$.jsxs)(f,{size:`xs`,"aria-label":`Start ${e.tool}`,disabled:D,onClick:()=>i.mutate({action:`start`,id:e.id}),children:[(0,$.jsx)(On,{size:12}),` Start`]})})]},e.id)})})]}),(0,$.jsxs)(`div`,{className:`mb-6 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex items-center justify-between text-xs font-semibold text-muted-foreground`,children:[(0,$.jsx)(`span`,{children:`Workspace Status`}),(0,$.jsx)(bn,{tone:T?`running`:`idle`,children:T?`Active`:`Standby`})]}),(0,$.jsx)(`div`,{className:`mb-4 text-xs font-semibold text-foreground`,children:T?`${C.size} process${C.size===1?``:`es`} active`:`All processes offline`}),(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(f,{disabled:T||D,onClick:()=>r.mutate({action:`start`}),children:[(0,$.jsx)(On,{size:14}),` Start All Services`]}),(0,$.jsxs)(f,{variant:`destructive`,disabled:!T||D,onClick:()=>r.mutate({action:`stop`}),children:[(0,$.jsx)(Dt,{size:14}),` Stop All`]})]})]}),(o.length>0||d.length>0)&&(0,$.jsxs)(`div`,{className:`grid grid-cols-1 overflow-hidden rounded-xl border border-border bg-card shadow-sm lg:grid-cols-12`,children:[(0,$.jsxs)(`div`,{className:`border-b border-border bg-muted/30 p-5 lg:col-span-4 lg:border-b-0 lg:border-r`,children:[(0,$.jsxs)(`h4`,{className:`mb-4 flex items-center gap-1.5 border-b border-border pb-2 text-[10px] font-bold uppercase tracking-wider text-muted-foreground`,children:[(0,$.jsx)(kt,{size:12,className:`text-primary`}),` Background Services`]}),(0,$.jsxs)(`div`,{className:`flex max-h-[400px] flex-col gap-2 overflow-y-auto pr-1`,children:[o.map(e=>{let t=_===e.name,n=C.has(e.name);return(0,$.jsxs)(`div`,{className:c(`flex cursor-pointer flex-col rounded-xl border p-3 transition-colors`,t?`border-primary/40 bg-primary/10 text-foreground`:`border-border bg-card text-muted-foreground hover:border-foreground/15 hover:bg-accent/50 hover:text-foreground`),onClick:()=>v(e.name),children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full ${n?`bg-success`:`bg-destructive`}`}),(0,$.jsx)(`span`,{className:`truncate text-xs font-bold`,children:e.name})]}),(0,$.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,onClick:e=>e.stopPropagation(),children:n?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(f,{size:`icon-xs`,variant:`ghost`,"aria-label":`Restart ${e.name}`,disabled:D,onClick:()=>r.mutate({action:`restart`,service:e.name}),children:(0,$.jsx)(Jn,{})}),(0,$.jsx)(f,{size:`icon-xs`,variant:`ghost`,"aria-label":`Stop ${e.name}`,disabled:D,onClick:()=>r.mutate({action:`stop`,service:e.name}),children:(0,$.jsx)(Dt,{})})]}):(0,$.jsx)(f,{size:`icon-xs`,variant:`ghost`,"aria-label":`Start ${e.name}`,disabled:D,onClick:()=>r.mutate({action:`start`,service:e.name}),children:(0,$.jsx)(On,{})})})]}),e.port?(0,$.jsxs)(`span`,{className:`mt-2 w-fit rounded border border-border bg-background px-2 py-0.5 font-mono text-[9px] text-muted-foreground`,children:[`Port: `,e.port]}):null,(0,$.jsxs)(`code`,{className:`mt-2 block truncate rounded border border-border bg-muted/40 p-1.5 font-mono text-[9px] text-muted-foreground`,children:[e.command,` `,e.args.join(` `)]})]},e.name)}),d.length>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`mt-2 border-t border-border pt-3 text-[9px] font-bold uppercase tracking-wider text-muted-foreground`,children:`Orchestrators`}),d.map(e=>{let t=e.logName;return(0,$.jsxs)(`div`,{className:c(`flex cursor-pointer items-center gap-2 rounded-xl border p-3 transition-colors`,_===t?`border-primary/40 bg-primary/10 text-foreground`:`border-border bg-card text-muted-foreground hover:border-foreground/15 hover:bg-accent/50 hover:text-foreground`),onClick:()=>v(t),children:[(0,$.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full bg-success`}),(0,$.jsx)(`span`,{className:`truncate text-xs font-bold`,children:e.tool}),(0,$.jsx)(bn,{tone:`idle`,dot:!1,children:e.mode})]},e.id)})]})]})]}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col bg-background lg:col-span-8`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-border bg-muted/40 px-5 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-xs font-bold text-primary`,children:_||`no-service`}),(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`|`}),(0,$.jsx)(bn,{tone:b?`running`:`idle`,children:b?`streaming`:`idle`})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-3 self-end sm:self-auto`,children:[(0,$.jsx)(`div`,{className:`flex rounded-lg border border-border bg-card p-0.5 text-[9px] font-semibold text-muted-foreground`,children:[`classic`,`matrix`,`dracula`].map(e=>(0,$.jsx)(`button`,{className:c(`cursor-pointer rounded-md px-2 py-1 capitalize transition-colors`,p===e?`bg-primary/10 font-bold text-primary`:`hover:text-foreground`),onClick:()=>m(e),children:e},e))}),(0,$.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,$.jsx)(`button`,{onClick:x,className:`cursor-pointer rounded-lg border border-border bg-card p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:`Clear Console`,children:(0,$.jsx)(Mt,{size:13})}),(0,$.jsx)(`button`,{onClick:()=>g(!h),className:`cursor-pointer rounded-lg border border-border bg-card p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:h?`Minimize Console`:`Expand Console`,children:h?(0,$.jsx)(Kn,{size:13}):(0,$.jsx)(Un,{size:13})})]})]})]}),(0,$.jsxs)(`div`,{className:c(`relative overflow-y-auto whitespace-pre-wrap p-5 font-mono text-[10.5px] leading-relaxed selection:bg-primary/20`,E,h?`h-[520px]`:`h-80`),children:[y.trim()?y:(0,$.jsx)(`span`,{className:`font-mono italic text-muted-foreground`,children:`(no log content yet)`}),(0,$.jsx)(`div`,{ref:S})]})]})]})]})}var Ta=({ws:e,gitChanges:t,gitChangesLoading:n,syncLoading:r,syncResults:i,commitMessage:a,showCommitModal:o,commitLoading:s,commitResults:c,setSyncResults:l,setCommitResults:u,setCommitMessage:d,setShowCommitModal:p,fetchGitChanges:m,handleSyncAll:h,handleCommitAll:g})=>{let[_,v]=(0,Z.useState)({}),[y,b]=(0,Z.useState)({}),[x,S]=(0,Z.useState)({}),[C,w]=(0,Z.useState)({}),[T,E]=(0,Z.useState)(``),D=async(t,n)=>{let r=`${t}/${n}`,i=!_[r];if(v(e=>({...e,[r]:i})),i&&!y[r]){S(e=>({...e,[r]:!0})),w(e=>({...e,[r]:``}));try{let i=encodeURIComponent(e.branchName),a=await fetch(`/api/workspace/${i}/changes/diff?repo=${encodeURIComponent(t)}&file=${encodeURIComponent(n)}`);if(!a.ok)throw Error(`Failed to load diff: ${a.statusText}`);let o=await a.json();b(e=>({...e,[r]:o.diff||``}))}catch(e){w(t=>({...t,[r]:e.message||`Unknown error`}))}finally{S(e=>({...e,[r]:!1}))}}},O=e=>!e||!e.trim()?(0,$.jsx)(`div`,{className:`p-3 font-mono text-[11px] italic text-muted-foreground`,children:`No diff details available.`}):(0,$.jsx)(`pre`,{className:`custom-scrollbar max-h-[450px] overflow-x-auto overflow-y-auto rounded-xl border border-border bg-muted/40 p-4 font-mono text-[11px] leading-relaxed text-muted-foreground select-text`,children:e.split(`
|
|
2
|
-
`).map((e,t)=>{let n;return n=e.startsWith(`+`)&&!e.startsWith(`+++`)?`block w-full rounded-sm bg-success/10 px-1 text-success-foreground`:e.startsWith(`-`)&&!e.startsWith(`---`)?`block w-full rounded-sm bg-destructive/10 px-1 text-destructive-foreground`:e.startsWith(`@@`)?`block w-full bg-info/10 px-1 font-semibold italic text-info-foreground`:e.startsWith(`diff`)||e.startsWith(`index`)||e.startsWith(`---`)||e.startsWith(`+++`)?`block w-full font-bold text-muted-foreground`:`block w-full px-1 text-foreground`,(0,$.jsx)(`code`,{className:n,children:e},t)})});return(0,$.jsxs)(`div`,{className:`animate-fade-in`,children:[(0,$.jsxs)(`header`,{className:`flex justify-between items-center mb-6 flex-wrap gap-3`,children:[(0,$.jsxs)(`h4`,{className:`flex items-center gap-2 text-sm font-bold text-foreground`,children:[(0,$.jsx)(en,{size:16,className:`text-primary`}),` Active Workspace Git Diffs`]}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(f,{variant:`outline`,size:`sm`,onClick:()=>m(e.branchName),disabled:n,children:[(0,$.jsx)(ln,{size:11,className:n?`animate-spin text-primary`:``}),` Refresh Changes`]}),e.mode!==`in-place`&&(0,$.jsxs)(f,{variant:`outline`,size:`sm`,onClick:()=>h(e.branchName),disabled:r,children:[r?(0,$.jsx)(lt,{className:`size-3`}):(0,$.jsx)(ln,{size:11}),` Sync All`]}),(0,$.jsx)(f,{size:`sm`,onClick:()=>p(!0),disabled:t.every(e=>e.files.length===0)||s,children:`Commit & Push All`})]})]}),i&&e.mode!==`in-place`&&(0,$.jsxs)(`div`,{className:`relative mb-5 rounded-xl border border-info/25 bg-info/10 p-5 text-info-foreground shadow-sm`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex items-center justify-between border-b border-info/20 pb-2`,children:[(0,$.jsx)(`h5`,{className:`font-mono text-xs font-bold text-foreground`,children:`Rebase / Sync Action Logs`}),(0,$.jsx)(`button`,{className:`cursor-pointer text-[10px] font-bold text-info-foreground hover:text-foreground`,onClick:()=>l(null),children:`Dismiss`})]}),(0,$.jsx)(`div`,{className:`space-y-2`,children:i.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border bg-card p-2 font-mono text-[10px]`,children:[(0,$.jsx)(`span`,{className:`font-semibold text-foreground`,children:e.repoName}),(0,$.jsx)(`span`,{className:e.success?`font-bold text-success-foreground`:`font-bold text-destructive-foreground`,children:e.success?`✓ Synced (${e.message})`:`✗ Conflict: ${e.message}`})]},e.repoName))})]}),c&&(0,$.jsxs)(`div`,{className:`relative mb-5 rounded-xl border border-success/25 bg-success/10 p-5 text-success-foreground shadow-sm`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex items-center justify-between border-b border-success/20 pb-2`,children:[(0,$.jsx)(`h5`,{className:`font-mono text-xs font-bold text-foreground`,children:`Commit & Push Results`}),(0,$.jsx)(`button`,{className:`cursor-pointer text-[10px] font-bold text-success-foreground hover:text-foreground`,onClick:()=>u(null),children:`Dismiss`})]}),(0,$.jsx)(`div`,{className:`space-y-2`,children:c.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border bg-card p-2 font-mono text-[10px]`,children:[(0,$.jsx)(`span`,{className:`font-semibold text-foreground`,children:e.repoName}),(0,$.jsx)(`span`,{className:e.success?`font-bold text-success-foreground`:`font-bold text-destructive-foreground`,children:e.success?`✓ Committed ${e.filesChanged} file(s) (${e.commitHash?e.commitHash.slice(0,7):`no hash`})`:`✗ Error: ${e.message}`})]},e.repoName))})]}),o&&(0,$.jsxs)(`div`,{className:`relative mb-6 rounded-xl border border-border bg-card p-6 shadow-sm animate-rise`,children:[(0,$.jsxs)(`h5`,{className:`mb-3 flex items-center gap-1.5 text-xs font-bold text-foreground`,children:[(0,$.jsx)(Yn,{size:13,className:`text-primary`}),` Enter Commit Message`]}),(0,$.jsx)(yt,{type:`text`,className:`mb-4 font-mono text-xs`,placeholder:`feat: implement multi-repo logic...`,value:a,onChange:e=>d(e.target.value),onKeyDown:t=>{t.key===`Enter`&&a.trim()&&g(e.branchName)}}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2.5`,children:[(0,$.jsx)(f,{variant:`outline`,size:`sm`,onClick:()=>{p(!1),d(``)},disabled:s,children:`Cancel`}),(0,$.jsxs)(f,{size:`sm`,onClick:()=>g(e.branchName),disabled:s||!a.trim(),children:[s?(0,$.jsx)(lt,{className:`size-3`}):null,s?`Committing...`:`Commit & Push All`]})]})]}),n?(0,$.jsx)(`div`,{className:`flex justify-center py-20`,children:(0,$.jsx)(lt,{className:`size-6 text-primary`})}):(0,$.jsx)(`div`,{className:`space-y-6`,children:t.every(e=>e.files.length===0)?(0,$.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-xl border border-border bg-card py-16 text-center`,children:[(0,$.jsx)(`div`,{className:`mb-3 flex h-10 w-10 items-center justify-center rounded-full border border-success/25 bg-success/10 text-success-foreground shadow-sm`,children:(0,$.jsx)(Zt,{size:20})}),(0,$.jsx)(`h5`,{className:`text-sm font-bold text-foreground`,children:`No Uncommitted Changes`}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Workspace repositories are completely in sync with Git feature branches.`})]}):t.map(e=>{if(e.files.length===0)return null;let t=e.files.length,n=e.files.reduce((e,t)=>e+(t.additions||0),0),r=e.files.reduce((e,t)=>e+(t.deletions||0),0);return(0,$.jsxs)(`div`,{className:`relative rounded-xl border border-border bg-card p-6 transition-colors`,children:[(0,$.jsxs)(`div`,{className:`flex justify-between items-center mb-4 flex-wrap gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,$.jsx)(`h5`,{className:`font-mono text-sm font-bold text-foreground`,children:e.repoName}),(0,$.jsxs)(bn,{tone:`warning`,dot:!1,children:[t,` file`,t===1?``:`s`,` changed`]}),(n>0||r>0)&&(0,$.jsxs)(`span`,{className:`rounded border border-border bg-muted/40 px-2 py-0.5 font-mono text-[10px] font-bold`,children:[(0,$.jsxs)(`span`,{className:`font-bold text-success-foreground`,children:[`+`,n]}),` `,(0,$.jsxs)(`span`,{className:`font-bold text-destructive-foreground`,children:[`-`,r]})]})]}),(0,$.jsx)(`span`,{className:`max-w-[280px] truncate font-mono text-[10px] text-muted-foreground`,title:e.repoPath,children:e.repoPath})]}),(0,$.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.files.map(t=>{let n=`${e.repoName}/${t.file}`,r=!!_[n],i=!!x[n],a=y[n]||``,o=C[n]||``;return(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-border bg-muted/20 transition-colors hover:border-foreground/15`,children:[(0,$.jsxs)(`div`,{className:`flex cursor-pointer select-none items-center justify-between px-4 py-3 transition-colors hover:bg-accent/50`,onClick:()=>D(e.repoName,t.file),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:[r?(0,$.jsx)(Et,{size:14,className:`shrink-0 text-primary`}):(0,$.jsx)(Ot,{size:14,className:`shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:`max-w-[240px] truncate font-mono text-[11px] text-foreground sm:max-w-[480px]`,title:t.file,children:t.file}),(t.additions>0||t.deletions>0)&&(0,$.jsxs)(`span`,{className:`ml-1 shrink-0 font-mono text-[9px] font-bold text-muted-foreground`,children:[(0,$.jsxs)(`span`,{className:`text-success-foreground`,children:[`+`,t.additions]}),` /`,` `,(0,$.jsxs)(`span`,{className:`text-destructive-foreground`,children:[`-`,t.deletions]})]})]}),(0,$.jsx)(`div`,{className:`flex items-center gap-2.5 shrink-0`,children:(0,$.jsx)(`span`,{className:`rounded border px-2 py-0.5 text-[8px] font-bold uppercase tracking-wider ${t.type===`added`?`border-success/25 bg-success/10 text-success-foreground`:t.type===`deleted`?`border-destructive/25 bg-destructive/10 text-destructive-foreground`:`border-warning/25 bg-warning/10 text-warning-foreground`}`,children:t.type})})]}),r&&(0,$.jsx)(`div`,{className:`border-t border-border bg-background p-3`,children:i?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 p-2 font-mono text-[10px] text-primary`,children:[(0,$.jsx)(lt,{className:`size-3`}),` Loading diff...`]}):o?(0,$.jsxs)(`div`,{className:`p-2 font-mono text-[10px] text-destructive-foreground`,children:[`Error: `,o]}):(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`div`,{className:`absolute top-2 right-2 z-10`,children:(0,$.jsx)(`button`,{onClick:e=>{e.stopPropagation(),navigator.clipboard.writeText(a),E(n),setTimeout(()=>E(``),2e3)},className:`cursor-pointer rounded-lg border border-border bg-card p-1.5 text-muted-foreground shadow-sm transition-colors hover:bg-accent hover:text-foreground`,title:`Copy Diff`,children:T===n?(0,$.jsx)(Zt,{size:12,className:`text-success-foreground`}):(0,$.jsx)(sn,{size:12})})}),O(a)]})})]},t.file)})})]},e.repoName)})})]})},Ea=({ws:e,knowledgeContent:t,knowledgeLoading:n,isEditingKnowledge:r,editedKnowledge:i,saveKnowledgeLoading:a,setEditedKnowledge:o,setIsEditingKnowledge:s,handleSaveKnowledge:c})=>(0,$.jsxs)(`div`,{className:`rounded-xl border border-border bg-card p-4`,children:[(0,$.jsxs)(`header`,{className:`flex justify-between items-center mb-4`,children:[(0,$.jsxs)(`h4`,{className:`flex items-center gap-2 text-sm font-bold text-foreground`,children:[(0,$.jsx)(an,{size:16,className:`text-info`}),` Persistent Knowledge Memory (nexusflow-knowledge.md)`]}),(0,$.jsx)(`div`,{className:`flex gap-2`,children:r?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(f,{variant:`outline`,size:`xs`,onClick:()=>{o(t),s(!1)},disabled:a,children:`Cancel`}),(0,$.jsxs)(f,{size:`xs`,onClick:()=>c(e.branchName),disabled:a,children:[a?(0,$.jsx)(lt,{className:`size-3`}):(0,$.jsx)(Yn,{size:10}),` Save`]})]}):(0,$.jsxs)(f,{variant:`outline`,size:`xs`,onClick:()=>s(!0),disabled:n,children:[(0,$.jsx)(Zn,{size:10}),` Edit Knowledge`]})})]}),n?(0,$.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,$.jsx)(ln,{className:`animate-spin text-primary`,size:20})}):r?(0,$.jsx)(In,{className:`[&_[data-slot=textarea]]:h-96 [&_[data-slot=textarea]]:resize-y [&_[data-slot=textarea]]:font-mono [&_[data-slot=textarea]]:text-xs`,value:i,onChange:e=>o(e.target.value)}):(0,$.jsx)(`div`,{className:`max-h-96 overflow-auto whitespace-pre-wrap rounded-xl border border-border bg-muted/40 p-4 font-mono text-xs leading-relaxed text-muted-foreground`,children:t||`No knowledge file generated yet.`})]}),Da=({planContent:e,planLoading:t})=>(0,$.jsxs)(`div`,{className:`rounded-xl border border-border bg-card p-4`,children:[(0,$.jsx)(`header`,{className:`flex justify-between items-center mb-4`,children:(0,$.jsxs)(`h4`,{className:`flex items-center gap-2 text-sm font-bold text-foreground`,children:[(0,$.jsx)(Hn,{size:16,className:`text-info`}),` Inter-Repo Implementation Plan (nexusflow-plan.md)`]})}),t?(0,$.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,$.jsx)(ln,{className:`animate-spin text-primary`,size:20})}):(0,$.jsx)(`div`,{className:`max-h-96 overflow-auto whitespace-pre-wrap rounded-xl border border-border bg-muted/40 p-4 font-mono text-xs leading-relaxed text-muted-foreground`,children:e||`No implementation plan generated yet.`})]}),Oa=e=>`nexusflow_chat_${e}`,ka=()=>({v:4,sessions:{},providerId:null,profilesByProvider:{"claude-cli":`review`,"codex-cli":`review`},messages:[]});function Aa(e){try{let t=localStorage.getItem(Oa(e));if(!t)return ka();let n=JSON.parse(t);if(Array.isArray(n))return{...ka(),messages:n.filter(e=>e&&typeof e.content==`string`&&(e.role===`user`||e.role===`assistant`)).map(e=>({role:e.role,content:e.content}))};if(n&&n.v===4&&n.sessions&&Array.isArray(n.messages)){let e=Object.fromEntries(Object.entries(n.profilesByProvider??{}).filter(e=>Sn(e[1])));return{...ka(),sessions:n.sessions,providerId:typeof n.providerId==`string`?n.providerId:null,profilesByProvider:{...ka().profilesByProvider,...e},messages:n.messages}}if(n&&n.v===3&&n.sessions&&Array.isArray(n.messages))return{...ka(),sessions:n.sessions,providerId:typeof n.providerId==`string`?n.providerId:null,messages:n.messages};if(n&&n.v===2&&Array.isArray(n.messages)){let e={};return typeof n.sessionId==`string`&&n.sessionId&&(e[`claude-cli`]={id:n.sessionId,started:!!n.sessionStarted}),{v:4,sessions:e,providerId:typeof n.providerId==`string`?n.providerId:null,profilesByProvider:ka().profilesByProvider,messages:n.messages}}return ka()}catch{return ka()}}var ja=500;function Ma(e,t){try{let n=t.messages.length>ja?{...t,messages:t.messages.slice(-500)}:t;localStorage.setItem(Oa(e),JSON.stringify(n))}catch(e){console.error(`Failed to save chat to localStorage`,e)}}function Na(e){try{localStorage.removeItem(Oa(e))}catch{}}function Pa({open:e,onClose:t,ws:n,onPick:r,error:i,pending:a=!1}){let[o,s]=(0,Z.useState)([]),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{e&&(l(!0),d(null),fetch(`/api/workspace/${encodeURIComponent(n.branchName)}/sessions`).then(e=>e.json()).then(e=>{let t=(e.sessions||[]).filter(e=>e.assistant===`claude`||e.assistant===`codex`||e.assistant===`antigravity`||e.assistant===`copilot`);s(t)}).catch(()=>d(`Failed to load sessions.`)).finally(()=>l(!1)))},[e,n.branchName]);let f=e=>{switch(e){case`codex`:return`Codex`;case`antigravity`:return`Antigravity`;case`copilot`:return`Copilot`;default:return`Claude`}};return(0,$.jsx)(En,{open:e,onOpenChange:e=>!e&&t(),children:(0,$.jsxs)(_n,{className:`max-w-lg`,children:[(0,$.jsx)(Cn,{children:(0,$.jsx)(hn,{children:`Resume a past session`})}),(0,$.jsxs)(xn,{className:`flex max-h-[60vh] flex-col gap-2`,children:[(i||u)&&(0,$.jsx)(`div`,{className:`rounded-lg border border-destructive/25 bg-destructive/10 px-3 py-2 text-xs text-destructive-foreground`,children:i||u}),c?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ln,{className:`h-14`}),(0,$.jsx)(Ln,{className:`h-14`}),(0,$.jsx)(Ln,{className:`h-14`})]}):o.length===0?(0,$.jsx)(Fn,{children:(0,$.jsxs)(Pn,{children:[(0,$.jsx)(Mn,{variant:`icon`,children:(0,$.jsx)(Bn,{})}),(0,$.jsx)(jn,{children:`No resumable sessions found`}),(0,$.jsx)(Nn,{children:`Past conversations for this workspace will show up here.`})]})}):o.map(e=>(0,$.jsxs)(`button`,{onClick:()=>r(e),disabled:a,className:`cursor-pointer rounded-lg border border-border bg-card p-3 text-left transition-colors hover:border-foreground/15 hover:bg-accent/50 disabled:cursor-wait disabled:opacity-60`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase text-muted-foreground`,children:f(e.assistant)}),(0,$.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,title:e.title,children:e.title})]}),(0,$.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-[11px] text-muted-foreground`,children:[(0,$.jsx)(`span`,{children:a?`Loading transcript…`:new Date(e.updatedAt).toLocaleString()}),(0,$.jsx)(`span`,{children:`·`}),(0,$.jsx)(Gn,{size:11}),(0,$.jsxs)(`span`,{children:[e.messageCount,` messages`]})]})]},e.id))]})]})})}var Fa=m(((e,t)=>{var n=[[{color:`0, 0, 0`,class:`ansi-black`},{color:`187, 0, 0`,class:`ansi-red`},{color:`0, 187, 0`,class:`ansi-green`},{color:`187, 187, 0`,class:`ansi-yellow`},{color:`0, 0, 187`,class:`ansi-blue`},{color:`187, 0, 187`,class:`ansi-magenta`},{color:`0, 187, 187`,class:`ansi-cyan`},{color:`255,255,255`,class:`ansi-white`}],[{color:`85, 85, 85`,class:`ansi-bright-black`},{color:`255, 85, 85`,class:`ansi-bright-red`},{color:`0, 255, 0`,class:`ansi-bright-green`},{color:`255, 255, 85`,class:`ansi-bright-yellow`},{color:`85, 85, 255`,class:`ansi-bright-blue`},{color:`255, 85, 255`,class:`ansi-bright-magenta`},{color:`85, 255, 255`,class:`ansi-bright-cyan`},{color:`255, 255, 255`,class:`ansi-bright-white`}]],r=/(https?:\/\/(?:[A-Za-z0-9#;/?:@=+$',_.!~*()[\]-]|&|%[A-Fa-f0-9]{2})+)/gm;t.exports=class e{static escapeForHtml(t){return new e().escapeForHtml(t)}static linkify(t){return new e().linkify(t)}static ansiToHtml(t,n){return new e().ansiToHtml(t,n)}static ansiToJson(t,n){return new e().ansiToJson(t,n)}static ansiToText(t){return new e().ansiToText(t)}constructor(){this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0,this.decorations=[]}setupPalette(){this.PALETTE_COLORS=[];for(let e=0;e<2;++e)for(let t=0;t<8;++t)this.PALETTE_COLORS.push(n[e][t].color);let e=[0,95,135,175,215,255],t=(t,n,r)=>e[t]+`, `+e[n]+`, `+e[r];for(let e=0;e<6;++e)for(let n=0;n<6;++n)for(let r=0;r<6;++r)this.PALETTE_COLORS.push(t(e,n,r));let r=8;for(let e=0;e<24;++e,r+=10)this.PALETTE_COLORS.push(r+`, `+r+`, `+r)}escapeForHtml(e){return e.replace(/[&<>\"]/gm,e=>e==`&`?`&`:e==`"`?`"`:e==`<`?`<`:e==`>`?`>`:``)}linkify(e){return e.replace(r,e=>`<a href="${e}">${e}</a>`)}ansiToHtml(e,t){return this.process(e,t,!0)}ansiToJson(e,t){return t||={},t.json=!0,t.clearLine=!1,this.process(e,t,!0)}ansiToText(e){return this.process(e,{},!1)}process(e,t,n){let r=this,i=e.split(/\033\[/),a=i.shift();t??={},t.clearLine=/\r/.test(e);let o=i.map(e=>this.processChunk(e,t,n));if(t&&t.json){let e=r.processChunkJson(``);return e.content=a,e.clearLine=t.clearLine,o.unshift(e),t.remove_empty&&(o=o.filter(e=>!e.isEmpty())),o}else o.unshift(a);return o.join(``)}processChunkJson(e,t,r){t=t===void 0?{}:t;let i=t.use_classes=t.use_classes!==void 0&&t.use_classes,a=t.key=i?`class`:`color`,o={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,isInverted:!1,clearLine:t.clearLine,decoration:null,decorations:[],was_processed:!1,isEmpty:()=>!o.content},s=e.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!s)return o;o.content=s[4];let c=s[2].split(`;`);if(s[1]!==``||s[3]!==`m`||!r)return o;let l=this;for(;c.length>0;){let e=c.shift(),t=parseInt(e);if(isNaN(t)||t===0)l.fg=l.bg=null,l.decorations=[];else if(t===1)l.decorations.push(`bold`);else if(t===2)l.decorations.push(`dim`);else if(t===3)l.decorations.push(`italic`);else if(t===4)l.decorations.push(`underline`);else if(t===5)l.decorations.push(`blink`);else if(t===7)l.decorations.push(`reverse`);else if(t===8)l.decorations.push(`hidden`);else if(t===9)l.decorations.push(`strikethrough`);else if(t===21)l.removeDecoration(`bold`);else if(t===22)l.removeDecoration(`bold`),l.removeDecoration(`dim`);else if(t===23)l.removeDecoration(`italic`);else if(t===24)l.removeDecoration(`underline`);else if(t===25)l.removeDecoration(`blink`);else if(t===27)l.removeDecoration(`reverse`);else if(t===28)l.removeDecoration(`hidden`);else if(t===29)l.removeDecoration(`strikethrough`);else if(t===39)l.fg=null;else if(t===49)l.bg=null;else if(t>=30&&t<38)l.fg=n[0][t%10][a];else if(t>=90&&t<98)l.fg=n[1][t%10][a];else if(t>=40&&t<48)l.bg=n[0][t%10][a];else if(t>=100&&t<108)l.bg=n[1][t%10][a];else if(t===38||t===48){let e=t===38;if(c.length>=1){let t=c.shift();if(t===`5`&&c.length>=1){let t=parseInt(c.shift());if(t>=0&&t<=255)if(!i)this.PALETTE_COLORS||l.setupPalette(),e?l.fg=this.PALETTE_COLORS[t]:l.bg=this.PALETTE_COLORS[t];else{let r=t>=16?`ansi-palette-`+t:n[+(t>7)][t%8].class;e?l.fg=r:l.bg=r}}else if(t===`2`&&c.length>=3){let t=parseInt(c.shift()),n=parseInt(c.shift()),r=parseInt(c.shift());if(t>=0&&t<=255&&n>=0&&n<=255&&r>=0&&r<=255){let a=t+`, `+n+`, `+r;i?e?(l.fg=`ansi-truecolor`,l.fg_truecolor=a):(l.bg=`ansi-truecolor`,l.bg_truecolor=a):e?l.fg=a:l.bg=a}}}}}return l.fg===null&&l.bg===null&&l.decorations.length===0?o:(o.fg=l.fg,o.bg=l.bg,o.fg_truecolor=l.fg_truecolor,o.bg_truecolor=l.bg_truecolor,o.decorations=l.decorations,o.decoration=l.decorations.slice(-1).pop()||null,o.was_processed=!0,o)}processChunk(e,t,r){t||={};let i=this.processChunkJson(e,t,r),a=t.use_classes;if(i.decorations=i.decorations.filter(e=>{if(e===`reverse`){i.fg||=n[0][7][a?`class`:`color`],i.bg||=n[0][0][a?`class`:`color`];let e=i.fg;i.fg=i.bg,i.bg=e;let t=i.fg_truecolor;return i.fg_truecolor=i.bg_truecolor,i.bg_truecolor=t,i.isInverted=!0,!1}return!0}),t.json)return i;if(i.isEmpty())return``;if(!i.was_processed)return i.content;let o=[],s=[],c=[],l={},u=e=>{let t=[],n;for(n in e)e.hasOwnProperty(n)&&t.push(`data-`+n+`="`+this.escapeForHtml(e[n])+`"`);return t.length>0?` `+t.join(` `):``};return i.isInverted&&(l[`ansi-is-inverted`]=`true`),i.fg&&(a?(o.push(i.fg+`-fg`),i.fg_truecolor!==null&&(l[`ansi-truecolor-fg`]=i.fg_truecolor,i.fg_truecolor=null)):o.push(`color:rgb(`+i.fg+`)`)),i.bg&&(a?(o.push(i.bg+`-bg`),i.bg_truecolor!==null&&(l[`ansi-truecolor-bg`]=i.bg_truecolor,i.bg_truecolor=null)):o.push(`background-color:rgb(`+i.bg+`)`)),i.decorations.forEach(e=>{if(a){s.push(`ansi-`+e);return}e===`bold`?s.push(`font-weight:bold`):e===`dim`?s.push(`opacity:0.5`):e===`italic`?s.push(`font-style:italic`):e===`hidden`?s.push(`visibility:hidden`):e===`strikethrough`?c.push(`line-through`):c.push(e)}),c.length&&s.push(`text-decoration:`+c.join(` `)),a?`<span class="`+o.concat(s).join(` `)+`"`+u(l)+`>`+i.content+`</span>`:`<span style="`+o.concat(s).join(`;`)+`"`+u(l)+`>`+i.content+`</span>`}removeDecoration(e){let t=this.decorations.indexOf(e);t>=0&&this.decorations.splice(t,1)}}})),Ia=m(((e,t)=>{function n(e){if(!e)return``;if(!/\r/.test(e))return e;for(e=e.replace(/\r+\n/gm,`
|
|
3
|
-
`);/\r./.test(e);)e=e.replace(/^([^\r\n]*)\r+([^\r\n]+)/gm,function(e,t,n){return n+t.slice(n.length)});return e}function r(e){for(var t=0,n=0;n<e.length;n++)e[t].length<=e[n].length&&(t=n);return t}function i(e){if(!/\r/.test(e))return e;for(var t=e.split(`\r`),n=[];t.length>0;){var i=r(t);n.push(t[i]),t=t.slice(i+1)}return n.join(`\r`)}function a(e){if(!e)return``;if(!/\r/.test(e))return e;if(!/\n/.test(e))return i(e);e=e.replace(/\r+\n/gm,`
|
|
4
|
-
`);var t=e.lastIndexOf(`
|
|
5
|
-
`);return n(e.slice(0,t))+`
|
|
6
|
-
`+i(e.slice(t+1))}t.exports=n,t.exports.escapeCarriageReturn=n,t.exports.escapeCarriageReturnSafe=a})),La=m(((e,t)=>{t.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/})),Ra=m(((e,t)=>{t.exports=/[\0-\x1F\x7F-\x9F]/})),za=m(((e,t)=>{t.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/})),Ba=m(((e,t)=>{t.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/})),Va=m(((e,t)=>{t.exports=function(e){var t={};t.src_Any=La().source,t.src_Cc=Ra().source,t.src_Z=za().source,t.src_P=Ba().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join(`|`),t.src_ZCc=[t.src_Z,t.src_Cc].join(`|`);var n=`[><|]`;return t.src_pseudo_letter=`(?:(?!`+n+`|`+t.src_ZPCc+`)`+t.src_Any+`)`,t.src_ip4=`(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)`,t.src_auth=`(?:(?:(?!`+t.src_ZCc+`|[@/\\[\\]()]).)+@)?`,t.src_port=`(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?`,t.src_host_terminator=`(?=$|`+n+`|`+t.src_ZPCc+`)(?!-|_|:\\d|\\.-|\\.(?!$|`+t.src_ZPCc+`))`,t.src_path=`(?:[/?#](?:(?!`+t.src_ZCc+`|`+n+`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!`+t.src_ZCc+`|\\]).)*\\]|\\((?:(?!`+t.src_ZCc+`|[)]).)*\\)|\\{(?:(?!`+t.src_ZCc+`|[}]).)*\\}|\\"(?:(?!`+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+`|[']).)+\\'|\\'(?=`+t.src_pseudo_letter+`|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!`+t.src_ZCc+`|[.]).|`+(e&&e[`---`]?`\\-(?!--(?:[^-]|$))(?:-*)|`:`\\-+|`)+`,(?!`+t.src_ZCc+`).|;(?!`+t.src_ZCc+`).|\\!+(?!`+t.src_ZCc+`|[!]).|\\?(?!`+t.src_ZCc+`|[?]).)+|\\/)?`,t.src_email_name=`[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*`,t.src_xn=`xn--[a-z0-9\\-]{1,59}`,t.src_domain_root=`(?:`+t.src_xn+`|`+t.src_pseudo_letter+`{1,63})`,t.src_domain=`(?:`+t.src_xn+`|(?:`+t.src_pseudo_letter+`)|(?:`+t.src_pseudo_letter+`(?:-|`+t.src_pseudo_letter+`){0,61}`+t.src_pseudo_letter+`))`,t.src_host=`(?:(?:(?:(?:`+t.src_domain+`)\\.)*`+t.src_domain+`))`,t.tpl_host_fuzzy=`(?:`+t.src_ip4+`|(?:(?:(?:`+t.src_domain+`)\\.)+(?:%TLDS%)))`,t.tpl_host_no_ip_fuzzy=`(?:(?:(?:`+t.src_domain+`)\\.)+(?:%TLDS%))`,t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test=`localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:`+t.src_ZPCc+`|>|$))`,t.tpl_email_fuzzy=`(^|`+n+`|"|\\(|`+t.src_ZCc+`)(`+t.src_email_name+`@`+t.tpl_host_fuzzy_strict+`)`,t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+`)`,t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+`)`,t}})),Ha=m(((e,t)=>{function n(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}function r(e){return Object.prototype.toString.call(e)}function i(e){return r(e)===`[object String]`}function a(e){return r(e)===`[object Object]`}function o(e){return r(e)===`[object RegExp]`}function s(e){return r(e)===`[object Function]`}function c(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,`\\$&`)}var l={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function u(e){return Object.keys(e||{}).reduce(function(e,t){return e||l.hasOwnProperty(t)},!1)}var d={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=RegExp(`^\\/\\/`+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,`i`)),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":`http:`,"ftp:":`http:`,"//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=RegExp(`^`+n.re.src_auth+`(?:localhost|(?:(?:`+n.re.src_domain+`)\\.)+`+n.re.src_domain_root+`)`+n.re.src_port+n.re.src_host_terminator+n.re.src_path,`i`)),n.re.no_http.test(r)?t>=3&&e[t-3]===`:`||t>=3&&e[t-3]===`/`?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=RegExp(`^`+n.re.src_email_name+`@`+n.re.src_host_strict,`i`)),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},f=`a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]`,p=`biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф`.split(`|`);function m(e){e.__index__=-1,e.__text_cache__=``}function h(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function g(){return function(e,t){t.normalize(e)}}function _(e){var t=e.re=Va()(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(f),n.push(t.src_xn),t.src_tlds=n.join(`|`);function r(e){return e.replace(`%TLDS%`,t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),`i`),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),`i`),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),`i`),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),`i`);var l=[];e.__compiled__={};function u(e,t){throw Error(`(LinkifyIt) Invalid schema "`+e+`": `+t)}Object.keys(e.__schemas__).forEach(function(t){var n=e.__schemas__[t];if(n!==null){var r={validate:null,link:null};if(e.__compiled__[t]=r,a(n)){o(n.validate)?r.validate=h(n.validate):s(n.validate)?r.validate=n.validate:u(t,n),s(n.normalize)?r.normalize=n.normalize:n.normalize?u(t,n):r.normalize=g();return}if(i(n)){l.push(t);return}u(t,n)}}),l.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)}),e.__compiled__[``]={validate:null,normalize:g()};var d=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(c).join(`|`);e.re.schema_test=RegExp(`(^|(?!_)(?:[><|]|`+t.src_ZPCc+`))(`+d+`)`,`i`),e.re.schema_search=RegExp(`(^|(?!_)(?:[><|]|`+t.src_ZPCc+`))(`+d+`)`,`ig`),e.re.pretest=RegExp(`(`+e.re.schema_test.source+`)|(`+e.re.host_fuzzy_test.source+`)|@`,`i`),m(e)}function v(e,t){var n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function y(e,t){var n=new v(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function b(e,t){if(!(this instanceof b))return new b(e,t);t||u(e)&&(t=e,e={}),this.__opts__=n({},l,t),this.__index__=-1,this.__last_index__=-1,this.__schema__=``,this.__text_cache__=``,this.__schemas__=n({},d,e),this.__compiled__={},this.__tlds__=p,this.__tlds_replaced__=!1,this.re={},_(this)}b.prototype.add=function(e,t){return this.__schemas__[e]=t,_(this),this},b.prototype.set=function(e){return this.__opts__=n(this.__opts__,e),this},b.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,i,a,o,s,c,l;if(this.re.schema_test.test(e)){for(s=this.re.schema_search,s.lastIndex=0;(t=s.exec(e))!==null;)if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}}return this.__opts__.fuzzyLink&&this.__compiled__[`http:`]&&(c=e.search(this.re.host_fuzzy_test),c>=0&&(this.__index__<0||c<this.__index__)&&(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(a=n.index+n[1].length,(this.__index__<0||a<this.__index__)&&(this.__schema__=``,this.__index__=a,this.__last_index__=n.index+n[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__[`mailto:`]&&(l=e.indexOf(`@`),l>=0&&(r=e.match(this.re.email_fuzzy))!==null&&(a=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||a<this.__index__||a===this.__index__&&o>this.__last_index__)&&(this.__schema__=`mailto:`,this.__index__=a,this.__last_index__=o))),this.__index__>=0},b.prototype.pretest=function(e){return this.re.pretest.test(e)},b.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},b.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(y(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(y(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},b.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),_(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,_(this),this)},b.prototype.normalize=function(e){e.schema||(e.url=`http://`+e.url),e.schema===`mailto:`&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:`+e.url)},b.prototype.onCompile=function(){},t.exports=b})),Ua=n(m((t=>{var n=t&&t.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=t&&t.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),i=t&&t.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var a=e(t),o=0;o<a.length;o++)a[o]!=="default"&&n(i,t,a[o]);return r(i,t),i}})(),a=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=g;var o=a(Fa()),s=Ia(),c=a(Ha()),l=i(e());function u(e,t=!1){return e=(0,s.escapeCarriageReturn)(_(e)),o.default.ansiToJson(e,{json:!0,remove_empty:!0,use_classes:t})}function d(e){let t=``;return e.bg&&(t+=`${e.bg}-bg `),e.fg&&(t+=`${e.fg}-fg `),e.decoration&&(t+=`ansi-${e.decoration} `),t===``?null:(t=t.substring(0,t.length-1),t)}function f(e){let t={};switch(e.bg&&(t.backgroundColor=`rgb(${e.bg})`),e.fg&&(t.color=`rgb(${e.fg})`),e.decoration){case`bold`:t.fontWeight=`bold`;break;case`dim`:t.opacity=`0.5`;break;case`italic`:t.fontStyle=`italic`;break;case`hidden`:t.visibility=`hidden`;break;case`strikethrough`:t.textDecoration=`line-through`;break;case`underline`:t.textDecoration=`underline`;break;case`blink`:t.textDecoration=`blink`;break;default:break}return t}function p(e,t,n,r){let i=t?null:f(n),a=t?d(n):null;return e?e===`fuzzy`?h(n,r,i,a):m(n,r,i,a):l.createElement(`span`,{style:i,key:r,className:a},n.content)}function m(e,t,n,r){let i=[],a=/(\s|^)(https?:\/\/(?:www\.|(?!www))[^\s.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/g,o=0,s;for(;(s=a.exec(e.content))!==null;){let[,t,n]=s,r=s.index+t.length;r>o&&i.push(e.content.substring(o,r));let c=n.startsWith(`www.`)?`http://${n}`:n;i.push(l.createElement(`a`,{key:o,href:c,target:`_blank`},`${n}`)),o=a.lastIndex}return o<e.content.length&&i.push(e.content.substring(o)),l.createElement(`span`,{style:n,key:t,className:r},i)}function h(e,t,n,r){let i=(0,c.default)({fuzzyEmail:!1}).tlds([`io`],!0);if(!i.pretest(e.content))return l.createElement(`span`,{style:n,key:t,className:r},e.content);let a=i.match(e.content);if(!a)return l.createElement(`span`,{style:n,key:t,className:r},e.content);let o=[e.content.substring(0,a[0]?.index)];return a.forEach((t,n)=>{o.push(l.createElement(`a`,{href:t.url,target:`_blank`,key:n},e.content.substring(t.index,t.lastIndex))),a[n+1]&&o.push(e.content.substring(a[n].lastIndex,a[n+1]?.index))}),a[a.length-1].lastIndex!==e.content.length&&o.push(e.content.substring(a[a.length-1].lastIndex,e.content.length)),l.createElement(`span`,{style:n,key:t,className:r},o)}function g(e){let{className:t,useClasses:n,children:r,linkify:i}=e;return l.createElement(`code`,{className:t},u(r??``,n??!1).map(p.bind(null,i??!1,n??!1)))}function _(e){let t=e;do e=t,t=e.replace(/[^\n]\x08/gm,``);while(t.length<e.length);return e}}))(),1),Wa=Ua.default.default||Ua.default,Ga={"claude-cli":new Set([`npm install -g @anthropic-ai/claude-code`,`claude auth login`,`claude auth status --json`]),"codex-cli":new Set([`npm install -g @openai/codex`,`codex login`,`codex login status`])},Ka=new Set([`native-api`,`cli-print`,`acp`]),qa=new Set([`none`,`client-assigned`,`provider-assigned`]),Ja=new Set([`read-only`,`workspace-write`,`harness-managed`]),Ya=new Set([`uuid`,`opaque`]),Xa=new Set([`missing-cli`,`signed-out`,`probe-failed`]);function Za(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function Qa(e){return e===void 0||typeof e==`string`}function $a(e){return!Za(e)||typeof e.transport!=`string`||!Ka.has(e.transport)||typeof e.sessionIdentity!=`string`||!qa.has(e.sessionIdentity)||typeof e.workspaceAccess!=`string`||!Ja.has(e.workspaceAccess)||e.sessionIdFormat!==void 0&&(typeof e.sessionIdFormat!=`string`||!Ya.has(e.sessionIdFormat))?null:{transport:e.transport,sessionIdentity:e.sessionIdentity,workspaceAccess:e.workspaceAccess,...e.sessionIdFormat===void 0?{}:{sessionIdFormat:e.sessionIdFormat}}}function eo(e){if(!Za(e)||typeof e.id!=`string`||typeof e.name!=`string`||typeof e.isConfigured!=`boolean`||!Qa(e.icon)||!Qa(e.accessLabel)||!Qa(e.message)||!Qa(e.recoveryCommand)||!Qa(e.recoveryLabel)||e.setupIssue!==void 0&&(typeof e.setupIssue!=`string`||!Xa.has(e.setupIssue)))return null;let t=$a(e.capabilities);if(!t)return null;let n;if(e.executionProfiles!==void 0){if(!Array.isArray(e.executionProfiles)||e.executionProfiles.length===0)return null;n=[];let t=new Set;for(let r of e.executionProfiles){if(!Za(r)||!Sn(r.id)||typeof r.label!=`string`||typeof r.description!=`string`||t.has(r.id))return null;t.add(r.id),n.push({id:r.id,label:r.label,description:r.description})}}if(e.defaultExecutionProfile!==void 0&&(!Sn(e.defaultExecutionProfile)||!n?.some(t=>t.id===e.defaultExecutionProfile))||n&&e.defaultExecutionProfile===void 0||!n&&e.defaultExecutionProfile!==void 0)return null;let r=e.setupIssue!==void 0||e.recoveryCommand!==void 0||e.recoveryLabel!==void 0,i=e.setupIssue!==void 0&&e.recoveryCommand!==void 0&&e.recoveryLabel!==void 0;return r&&!i||e.isConfigured&&r?null:{id:e.id,name:e.name,isConfigured:e.isConfigured,capabilities:t,...e.icon===void 0?{}:{icon:e.icon},...e.accessLabel===void 0?{}:{accessLabel:e.accessLabel},...e.message===void 0?{}:{message:e.message},...e.setupIssue===void 0?{}:{setupIssue:e.setupIssue},...e.recoveryCommand===void 0?{}:{recoveryCommand:e.recoveryCommand},...e.recoveryLabel===void 0?{}:{recoveryLabel:e.recoveryLabel},...n===void 0?{}:{executionProfiles:n},...e.defaultExecutionProfile===void 0?{}:{defaultExecutionProfile:e.defaultExecutionProfile}}}function to(e){if(!Array.isArray(e))return null;let t=[];for(let n of e){let e=eo(n);if(!e)return null;t.push(e)}return t}function no(e){return!e.recoveryCommand||!Ga[e.id]?.has(e.recoveryCommand)?null:{command:e.recoveryCommand,label:e.recoveryLabel??`Copy recovery command`}}var ro=e=>e?new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):null,io=(0,Z.memo)(function({msg:e,idx:t,copied:n,onCopy:r}){if(e.role===`system`)return(0,$.jsx)(`div`,{className:`flex justify-center`,children:(0,$.jsx)(`span`,{className:c(`rounded-full border px-3 py-1 text-center text-[11px]`,e.kind===`error`?`border-destructive/25 bg-destructive/10 text-destructive-foreground`:`border-border bg-muted text-muted-foreground`),children:e.content})});let i=e.role===`user`,a=!i&&e.content.includes(`\x1B`);return(0,$.jsxs)(`div`,{className:`flex flex-col ${i?`items-end`:`items-start`}`,children:[(0,$.jsx)(`div`,{className:`group relative max-w-[85%] rounded-lg p-3 ${i?`bg-primary text-primary-foreground`:`border border-border bg-card text-foreground`}`,children:i?(0,$.jsx)(`div`,{className:`whitespace-pre-wrap text-sm`,children:e.content}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a?(0,$.jsx)(`div`,{className:`overflow-x-auto whitespace-pre-wrap rounded-md bg-muted/50 p-2 font-mono text-xs text-foreground`,children:(0,$.jsx)(Wa,{children:e.content})}):(0,$.jsx)(on,{content:e.content}),(0,$.jsx)(`button`,{onClick:()=>r(t,e.content),className:`absolute -right-2.5 -top-2.5 hidden h-6 w-6 cursor-pointer place-items-center rounded-md border border-border bg-card text-muted-foreground shadow-sm hover:text-foreground group-hover:grid`,title:`Copy message`,children:n?(0,$.jsx)(Zt,{size:12,className:`text-success-foreground`}):(0,$.jsx)(sn,{size:12})})]})}),i&&e.executionProfile&&(0,$.jsx)(`span`,{className:`mt-1 rounded border border-border px-1.5 py-0.5 text-[9px] font-medium uppercase tracking-wide text-muted-foreground`,children:e.executionProfile===`workspace-write`?`Edit`:`Review`}),e.ts&&(0,$.jsx)(`span`,{className:`mt-1 text-[10px] text-muted-foreground`,children:ro(e.ts)})]})});function ao({ws:e}){let t=vn(),n=gn(),[r,i]=(0,Z.useState)([]),[a,o]=(0,Z.useState)(!1),[s]=(0,Z.useState)(()=>Aa(e.branchName)),[l,u]=(0,Z.useState)(s.messages),[d,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(!1),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(``),[S,C]=(0,Z.useState)(s.profilesByProvider),[w,T]=(0,Z.useState)(null),[E,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(0),[A,j]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(null),[P,F]=(0,Z.useState)(!1),[I,L]=(0,Z.useState)(null),[ee,te]=(0,Z.useState)(!1),[ne,R]=(0,Z.useState)(null),[re,ie]=(0,Z.useState)(null),z=(0,Z.useRef)(null),ae=(0,Z.useRef)(null),oe=(0,Z.useRef)(null),se=(0,Z.useRef)(!0),B=(0,Z.useRef)(s.sessions),V=(0,Z.useRef)([]),ce=(0,Z.useRef)(!1),H=(0,Z.useRef)(!1),le=(0,Z.useRef)({messages:l,agentName:b,profilesByProvider:S}),ue=(0,Z.useRef)(S),de=(0,Z.useRef)(null),fe=(0,Z.useRef)(null),pe=(0,Z.useRef)(!0),me=(0,Z.useRef)(0),he=(0,Z.useRef)(null),ge=(0,Z.useRef)(!1),_e=(0,Z.useRef)({id:0,controller:null}),U=(0,Z.useMemo)(()=>fn(t.state),[t.state]);(0,Z.useEffect)(()=>{le.current={messages:l,agentName:b,profilesByProvider:S},ue.current=S},[l,b,S]);let ve=(0,Z.useCallback)(()=>{de.current=null,Ma(e.branchName,{v:4,sessions:B.current,providerId:le.current.agentName||s.providerId,profilesByProvider:le.current.profilesByProvider,messages:le.current.messages})},[e.branchName,s.providerId]);(0,Z.useEffect)(()=>{let e=l[l.length-1];(se.current||e?.role===`user`)&&oe.current?.scrollIntoView({behavior:e?.role===`user`?`smooth`:`auto`}),de.current&&clearTimeout(de.current),de.current=setTimeout(ve,400)},[l,b,S,O,ve]),(0,Z.useEffect)(()=>{let e=()=>ve();return window.addEventListener(`pagehide`,e),()=>{window.removeEventListener(`pagehide`,e),de.current&&clearTimeout(de.current),ve()}},[ve]),(0,Z.useEffect)(()=>{let e=++me.current,t=new AbortController,n=!0;return fetch(`/api/adapters/status`,{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`,signal:t.signal}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(t=>{if(!n||e!==me.current)return;let r=to(t);if(!r)throw Error(`Invalid provider status response`);i(r),C(e=>{let t=!1,n={...e};for(let i of r)!i.executionProfiles?.length||!i.defaultExecutionProfile||i.executionProfiles.some(t=>t.id===e[i.id])||(n[i.id]=i.defaultExecutionProfile,t=!0);return t?n:e});let a=(s.providerId?r.find(e=>e.id===s.providerId):void 0)||r.find(e=>e.isConfigured)||r[0];a&&x(e=>e||a.id)}).catch(e=>{n&&e?.name!==`AbortError`&&console.error(`Failed to fetch agent data`,e)}).finally(()=>{n&&e===me.current&&o(!0)}),()=>{n=!1,t.abort()}},[s.providerId]),(0,Z.useEffect)(()=>(pe.current=!0,()=>{pe.current=!1,_e.current.id+=1,_e.current.controller?.abort(),z.current&&z.current.close()}),[e.branchName,e.workspacePath]);let ye=w??b,W=r.find(e=>e.id===ye),be=W?.executionProfiles?.find(e=>e.id===S[W.id])??W?.executionProfiles?.find(e=>e.id===W.defaultExecutionProfile),xe=!!b&&!!W?.isConfigured&&(!W?.executionProfiles||!!be)&&!E&&!A,Se=(0,Z.useCallback)((e,t)=>{let n=t??r.find(t=>t.id===e);if(!n?.executionProfiles?.length)return;let i=ue.current[e];return n.executionProfiles.some(e=>e.id===i)?i:n.defaultExecutionProfile},[r]),G=(0,Z.useCallback)(()=>{ce.current=!1,y(!1)},[]),K=(0,Z.useCallback)((e,t)=>{u(n=>[...n,{role:`system`,content:e,kind:t,ts:Date.now()}])},[]),Ce=(0,Z.useCallback)((e,t,n)=>{let r=crypto.randomUUID(),i={role:`user`,content:t,ts:Date.now(),...n?{executionProfile:n}:{}};V.current.push({turnId:r,text:t,message:i});try{e.send(JSON.stringify({type:`input`,input:t,turnId:r,...n?{executionProfile:n}:{}}))}catch(e){throw V.current=V.current.filter(e=>e.turnId!==r),e}u(e=>[...e,i]),p(``),_(!0),G()},[G]),we=(0,Z.useCallback)(()=>{H.current||(H.current=!0,K(`Session ended`,`note`))},[K]),q=(0,Z.useCallback)(()=>{let e=z.current;if(e){if(e.readyState===WebSocket.OPEN)try{e.send(JSON.stringify({type:`stop`}))}catch{}z.current=null,he.current=null,T(null),D(!1),e.close(),h(!1),_(!1),G(),we()}},[G,we]),Te=(0,Z.useCallback)((t=b,n={})=>{if(z.current)return n.onFailure?.(),!1;let i=n.provider??r.find(e=>e.id===t);if(x(t),!i?.isConfigured)return K(i?.message??`The ${t} provider is unavailable. Check its local CLI installation and login.`,`error`),n.onFailure?.(),!1;let a=n.executionProfile??Se(t,i),o=a!==void 0&&i.executionProfiles?.some(e=>e.id===a)===!0;if((n.executionProfile!==void 0||i.executionProfiles?.length)&&!o)return K(`Select a supported execution profile before starting this local CLI.`,`error`),n.onFailure?.(),!1;let s=``;s=s.startsWith(`http`)?s.replace(`http`,`ws`):window.location.origin.replace(`http`,`ws`),s+=`/ws`,H.current=!1;let c=!1,l=!1,f,m=()=>{l||c||!pe.current||(l=!0,K(`Could not open the local agent connection. Your current chat was preserved; retry explicitly when ready.`,`error`),n.onFailure?.())};try{f=new WebSocket(s)}catch{return m(),!1}return f.onopen=()=>{if(!pe.current||z.current!==f){f.close();return}let r={type:`start`,command:t,cwd:e.workspacePath},o={...B.current};if(n.resetSession&&delete o[t],n.session&&(o[t]=n.session),i.capabilities.sessionIdentity===`client-assigned`){let e=o[t]??{id:crypto.randomUUID(),started:!1};o[t]=e,r.sessionId=e.id,r.resume=e.started}else if(i.capabilities.sessionIdentity===`provider-assigned`){let e=o[t];e?.started&&(r.sessionId=e.id,r.resume=!0)}let s=n.firstMessage===null?``:(n.firstMessage??d).trim(),l;try{if(f.send(JSON.stringify(r)),s){let e=crypto.randomUUID();l={turnId:e,text:s,message:{role:`user`,content:s,ts:Date.now(),...a?{executionProfile:a}:{}}},V.current.push(l),f.send(JSON.stringify({type:`input`,input:s,turnId:e,...a?{executionProfile:a}:{}}))}}catch{l&&(V.current=V.current.filter(e=>e.turnId!==l?.turnId)),m(),z.current=null,he.current=null,T(null),D(!1),f.close();return}B.current=o,c=!0,D(!1),h(!0),n.resetMessagesOnDispatch&&u([]),s&&(u(e=>[...n.resetMessagesOnDispatch?[]:e,l?.message??{role:`user`,content:s,ts:Date.now(),...a?{executionProfile:a}:{}}]),p(``),_(!0),G()),n.onDispatched?.()},f.onmessage=e=>{if(z.current===f)try{let n=JSON.parse(e.data);if(n.type===`stream`){let e=ce.current;ce.current=!0,y(!0),u(t=>{let r=t[t.length-1];if(e&&r?.role===`assistant`){let e=[...t];return e[e.length-1]={...r,content:r.content+n.text},e}return[...t,{role:`assistant`,content:n.text,ts:Date.now()}]})}else if(n.type===`session`&&typeof n.id==`string`){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(n.id),r=B.current[t],a=i.capabilities.sessionIdentity!==`client-assigned`||r?.id.toLowerCase()===n.id.toLowerCase();if(e&&a){let e=i.capabilities.sessionIdentity===`client-assigned`?r.id:n.id;B.current={...B.current,[t]:{id:e,started:!0}},k(e=>e+1)}else K(`The local CLI returned an unexpected session identity. This turn will not be resumed automatically.`,`error`)}else if(n.type===`accepted`&&typeof n.turnId==`string`)V.current=V.current.filter(e=>e.turnId!==n.turnId);else if(n.type===`status`)_(n.state===`busy`),n.state!==`busy`&&G();else if(n.type===`system`)K(n.message,`note`),G();else if(n.type===`rejected`&&n.reason===`busy`){let e=V.current.findIndex(e=>e.turnId===n.turnId),t=e===-1?void 0:V.current.splice(e,1)[0];t&&(u(e=>e.filter(e=>e!==t.message)),p(e=>e?`${t.text}\n\n${e}`:t.text)),K(typeof n.message==`string`?n.message:`The agent is still processing the current turn.`,`error`)}else n.type===`error`?(V.current=[],K(n.message,`error`),_(!1),G()):n.type===`close`&&(V.current=[],h(!1),_(!1),G(),we(),f.close(),z.current=null)}catch(e){console.error(`Failed to parse WS message`,e)}},f.onclose=()=>{z.current===f&&(c||m(),h(!1),D(!1),_(!1),G(),c&&we(),z.current=null,he.current=null,T(null))},f.onerror=()=>{z.current===f&&(m(),c||(z.current=null,he.current=null,T(null),D(!1),h(!1),f.close()))},z.current=f,he.current=t,T(t),D(!0),!0},[b,K,G,d,we,Se,r,e.repos,e.workspacePath]),Ee=(0,Z.useCallback)(()=>{let e=d.trim(),t=he.current;if(!e||!z.current||!t||g||ge.current)return;let n=r.find(e=>e.id===t),i=Se(t,n);n?.executionProfiles?.length&&!i||Ce(z.current,e,i)},[g,d,Se,r,Ce]),De=(0,Z.useCallback)((e,t)=>{navigator.clipboard.writeText(t).then(()=>{ie(e),setTimeout(()=>ie(t=>t===e?null:t),1500)}).catch(()=>{})},[]),Oe=(0,Z.useCallback)(e=>{_e.current.id===e&&(_e.current.controller=null,ge.current=!1,pe.current&&j(!1))},[]),ke=(0,Z.useCallback)(async(e,t=!1)=>{let n=_e.current.id+1;_e.current.controller?.abort();let i=new AbortController;_e.current={id:n,controller:i},ge.current=!0,j(!0),R(null);let a=yn(e.assistant);if(!a)return K(`This session cannot resume in embedded chat.`,`error`),Oe(n),!1;let o=r.find(e=>e.id===a);if(!o?.isConfigured)return K(o?.message??`The ${a} provider is unavailable. Check its local CLI installation and login.`,`error`),Oe(n),!1;let s=()=>pe.current&&_e.current.id===n&&!i.signal.aborted;try{let r=await fetch(`/api/session/${encodeURIComponent(e.assistant)}/${encodeURIComponent(e.id)}/transcript`,{signal:i.signal});if(!r.ok)throw Error(`HTTP ${r.status}`);let o=await r.json();if(!s())return!1;let c=(Array.isArray(o.messages)?o.messages:[]).filter(e=>(e.role===`user`||e.role===`assistant`)&&typeof e.content==`string`&&e.content.trim()).map(e=>({role:e.role,content:e.content,ts:e.timestamp&&Date.parse(e.timestamp)||void 0}));if(z.current&&!window.confirm(`Stop the current chat and resume this session?`))return Oe(n),!1;z.current&&q(),x(a);let l=()=>{s()&&(C(e=>({...e,[a]:`review`})),u([...c,{role:`system`,kind:`note`,content:`Loaded session — your next message resumes it.`,ts:Date.now()}]),p(``),te(!1),Oe(n))};return t?Te(a,{firstMessage:null,session:{id:e.id,started:!0},onDispatched:l,onFailure:()=>{s()&&(R(`Failed to connect to the selected session.`),Oe(n))}}):(B.current={...B.current,[a]:{id:e.id,started:!0}},l(),!0)}catch(e){return!s()||e instanceof DOMException&&e.name===`AbortError`?!1:(R(`Failed to load the session transcript.`),K(`Failed to load the session transcript. Your current chat was preserved.`,`error`),Oe(n),!1)}},[K,Oe,r,Te,q]),Ae=(0,Z.useCallback)(e=>{ke(e)},[ke]),je=(0,Z.useCallback)(async(e,t=!1,n=!1)=>{N(e);let r;if(t){F(!0);try{let t=await fetch(`/api/adapters/status/refresh`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({providerId:e.providerId})});if(!t.ok)throw Error(`HTTP ${t.status}`);let a=to(await t.json());if(!a)throw Error(`Invalid provider status response`);if(!pe.current)return!1;i(a),r=a.find(t=>t.id===e.providerId);let o=n&&(r?.setupIssue===`signed-out`||r?.setupIssue===`probe-failed`);if(!r||!r.isConfigured&&!o)return K(r?.message??`The selected local CLI is still unavailable. Install it and sign in, then retry.`,`error`),!1}catch{return pe.current&&K(`Could not refresh the local CLI status. The task handoff was not dispatched.`,`error`),!1}finally{pe.current&&F(!1)}}return Te(e.providerId,{firstMessage:e.kickoff,executionProfile:e.executionProfile,provider:r&&n&&(r.setupIssue===`signed-out`||r.setupIssue===`probe-failed`)?{...r,isConfigured:!0}:r,resetSession:!0,resetMessagesOnDispatch:!0,onDispatched:()=>{pe.current&&N(null)},onFailure:()=>{pe.current&&N(e)}})},[K,Te]);(0,Z.useEffect)(()=>{if(!a||!U)return;let e=fe.current===U.nonce;try{e||=sessionStorage.getItem(`nexusflow.chatLaunch.consumed`)===U.nonce,sessionStorage.setItem(`nexusflow.chatLaunch.consumed`,U.nonce)}catch{}fe.current=U.nonce;let i=t.state&&typeof t.state==`object`?{...t.state}:{};if(delete i.chatLaunch,n(`${t.pathname}${t.search}`,{replace:!0,state:Object.keys(i).length>0?i:null}),e)return;let o=r.find(e=>e.id===U.providerId);if(x(U.providerId),C(e=>({...e,[U.providerId]:U.executionProfile})),!o?.isConfigured){K(o?.message??`The selected local CLI is unavailable. Install it and sign in, then try again.`,`error`),U.kickoff&&N({providerId:U.providerId,kickoff:U.kickoff,executionProfile:U.executionProfile});return}if(U.sessionId&&U.assistant){ke({id:U.sessionId,assistant:U.assistant,title:``,createdAt:``,updatedAt:``,messageCount:0},!0);return}z.current&&!window.confirm(`Stop the current chat and continue with the selected local CLI?`)||(z.current&&q(),U.kickoff?je({providerId:U.providerId,kickoff:U.kickoff,executionProfile:U.executionProfile}):Te(U.providerId,{firstMessage:null}))},[K,je,U,ke,t.pathname,t.search,t.state,n,r,a,Te,q]);let Me=()=>{if(window.confirm(`Are you sure you want to clear this chat history? This also starts a new agent session.`)){z.current&&q();let t={...B.current};delete t[b],B.current=t,H.current=!1,u([]),Na(e.branchName)}},Ne=g&&!v,J=W?no(W):null;return(0,$.jsxs)(`div`,{className:`flex h-full flex-col bg-card`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border bg-card px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,$.jsx)(`h3`,{className:`font-semibold text-foreground`,children:`Chat`}),(0,$.jsx)(bn,{tone:m?`running`:`idle`,dot:!0,children:m?W?.name||`Connected`:`Disconnected`})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[l.length>0&&(0,$.jsx)(`button`,{onClick:Me,className:`cursor-pointer text-xs text-muted-foreground transition-colors hover:text-destructive-foreground`,children:`Clear`}),(0,$.jsx)(`button`,{onClick:()=>{R(null),te(!0)},className:`grid h-7 w-7 cursor-pointer place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:`Resume a past session`,children:(0,$.jsx)(Bn,{size:14})}),m&&(0,$.jsxs)(f,{size:`sm`,variant:`outline`,onClick:q,children:[(0,$.jsx)(Dt,{size:14,className:`text-destructive-foreground`}),`Stop`]})]})]}),(0,$.jsx)(Pa,{open:ee,onClose:()=>te(!1),ws:e,onPick:Ae,error:ne,pending:A}),(0,$.jsxs)(`div`,{ref:ae,onScroll:()=>{let e=ae.current;e&&(se.current=e.scrollHeight-e.scrollTop-e.clientHeight<80)},className:`flex-1 space-y-4 overflow-y-auto p-4`,children:[l.length===0&&!Ne&&(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:`No messages yet. Start the agent and say hello.`}),l.map((e,t)=>(0,$.jsx)(io,{msg:e,idx:t,copied:re===t,onCopy:De},t)),Ne&&(0,$.jsx)(`div`,{className:`flex justify-start`,children:(0,$.jsx)(`div`,{className:`rounded-lg border border-border bg-card px-4 py-3 text-muted-foreground`,children:(0,$.jsx)(ln,{size:14,className:`animate-spin`})})}),(0,$.jsx)(`div`,{ref:oe})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border bg-card p-3`,children:[W&&!W.isConfigured&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-destructive/25 bg-destructive/10 px-3 py-2 text-xs text-destructive-foreground`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`shrink-0 font-semibold`,children:[W.name,` provider status:`]}),(0,$.jsx)(`span`,{children:W.message})]}),J&&(0,$.jsx)(`code`,{className:`w-fit rounded bg-background/70 px-2 py-1 font-mono text-[11px] text-foreground`,children:J.command})]}),J&&(0,$.jsxs)(f,{size:`sm`,variant:`outline`,onClick:()=>{if(!W||!J)return;let e=()=>K(`Could not copy the recovery command. Copy the command shown above manually.`,`error`);try{let t=navigator.clipboard?.writeText;if(!t){e();return}t.call(navigator.clipboard,J.command).then(()=>{L(W.id),setTimeout(()=>{pe.current&&L(e=>e===W.id?null:e)},1500)}).catch(e)}catch{e()}},className:`shrink-0`,children:[I===W.id?(0,$.jsx)(Zt,{size:12}):(0,$.jsx)(sn,{size:12}),I===W.id?`Copied`:J.label]})]}),M&&!E&&!m&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-warning/25 bg-warning/10 px-3 py-2 text-xs text-foreground`,children:[(0,$.jsxs)(`span`,{children:[`The workspace kickoff was not dispatched (`,M.executionProfile===`workspace-write`?`Edit workspace`:`Review only`,`).`]}),(0,$.jsx)(f,{size:`sm`,variant:`outline`,onClick:()=>void je(M,!0),disabled:A||P,children:P?`Checking CLI…`:`Recheck & retry`}),W?.setupIssue&&W.setupIssue!==`missing-cli`&&(0,$.jsx)(f,{size:`sm`,variant:`outline`,onClick:()=>void je(M,!0,!0),disabled:A||P,children:`Try with existing CLI auth`})]}),(0,$.jsxs)(`div`,{className:`flex w-full flex-col rounded-xl border border-border bg-card shadow-sm`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/50 p-2`,children:[(0,$.jsxs)(pi,{children:[(0,$.jsxs)(mi,{"aria-label":`Select Provider`,className:c(`flex cursor-pointer items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors hover:bg-accent`,m?`pointer-events-none opacity-50`:`text-foreground`),children:[W?.icon===`Bot`?(0,$.jsx)(Tt,{size:14,className:`text-primary`}):(0,$.jsx)(At,{size:14,className:`text-primary`}),W?.name||`Select Agent`]}),(0,$.jsx)(hi,{align:`start`,side:`top`,children:r.map(e=>(0,$.jsxs)(gi,{onClick:()=>{m||x(e.id)},children:[e.icon===`Bot`?(0,$.jsx)(Tt,{size:14}):(0,$.jsx)(At,{size:14}),e.name]},e.id))})]}),(0,$.jsx)(`div`,{className:`h-4 w-px bg-border`}),W?.executionProfiles?.length&&be?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(pi,{children:[(0,$.jsx)(mi,{"aria-label":`Select execution profile`,disabled:E||g||A||!!M,className:`flex cursor-pointer items-center rounded-md px-2 py-1 text-xs font-medium text-foreground transition-colors hover:bg-accent disabled:pointer-events-none disabled:opacity-50`,children:be.label}),(0,$.jsx)(hi,{align:`start`,side:`top`,className:`max-w-80`,children:W.executionProfiles.map(e=>(0,$.jsx)(gi,{onClick:()=>C(t=>({...t,[W.id]:e.id})),children:(0,$.jsxs)(`span`,{className:`flex flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.description})]})},e.id))})]}),(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs text-muted-foreground`,title:be.description,children:be.description})]}):(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:W?.accessLabel??`Harness-managed access`})]}),(0,$.jsxs)(`div`,{className:`flex items-end gap-2 p-2`,children:[(0,$.jsx)(In,{value:d,disabled:A,onChange:e=>{p(e.target.value);let t=e.target;t.style.height=`auto`,t.style.height=`${Math.min(t.scrollHeight,200)}px`},onKeyDown:e=>{if(e.key===`Enter`&&!e.shiftKey){if(e.preventDefault(),g||E||ge.current)return;m?Ee():Te();let t=e.currentTarget;t.style.height=`auto`}},placeholder:m?`Message the agent... (Shift+Enter for new line)`:`Start the agent or press Enter...`,unstyled:!0,className:`flex-1 [&_[data-slot=textarea]]:max-h-[200px] [&_[data-slot=textarea]]:min-h-11 [&_[data-slot=textarea]]:resize-none [&_[data-slot=textarea]]:text-sm`,rows:1}),m?(0,$.jsxs)(f,{className:`h-11 shrink-0 rounded-lg`,onClick:Ee,disabled:!d.trim()||g||A,children:[g?(0,$.jsx)(ln,{size:14,className:`animate-spin`}):(0,$.jsx)(Xn,{size:14}),`Send`]}):(0,$.jsxs)(f,{className:`h-11 shrink-0 rounded-lg`,onClick:()=>Te(),disabled:!xe,children:[(0,$.jsx)(Qn,{size:14}),`Start`]})]})]})]})]})}var oo=[{value:`overview`,label:`Overview`},{value:`changes`,label:`Changes`},{value:`services`,label:`Services`},{value:`sessions`,label:`Sessions`},{value:`knowledge`,label:`Knowledge`},{value:`plan`,label:`Plan`}],so=[`all`,`changes`,`running`],co=new URLSearchParams(window.location.search).get(`env`)===`vscode`;function lo(e){let{workspaces:t,workspaceStatuses:n,workspacesLoading:r,fetchWorkspaces:i,selectedId:a,subTab:o,onSelect:s,onSelectTab:l,resumingWs:u,handleResumeSession:d,handleCopyPrompt:p,handleDeleteWorkspace:m,deleteWsLoading:h,repos:g,addRepoLoading:_,handleAddRepo:v,sessionProps:y,changesProps:b,knowledgeProps:x,planProps:S}=e,[C,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(`all`),[D,O]=(0,Z.useState)(()=>{try{let e=localStorage.getItem(`nexusflow:workspaces:layoutMode`);if(e===`cockpit`||e===`split`||e===`chat-only`||e===`inspector-only`)return e}catch{}return`cockpit`}),[k,A]=(0,Z.useState)(()=>{try{return localStorage.getItem(`nexusflow:workspaces:sidebarCollapsed`)===`true`}catch{}return!1});(0,Z.useEffect)(()=>{try{localStorage.setItem(`nexusflow:workspaces:layoutMode`,D)}catch{}},[D]),(0,Z.useEffect)(()=>{try{localStorage.setItem(`nexusflow:workspaces:sidebarCollapsed`,String(k))}catch{}},[k]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.target;if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&t.isContentEditable)return;let n=e.ctrlKey||e.metaKey;n&&e.key===`\\`?(e.preventDefault(),O(e=>e===`cockpit`?`split`:e===`split`?`chat-only`:e===`chat-only`?`inspector-only`:`cockpit`)):n&&(e.key===`j`||e.key===`J`)?(e.preventDefault(),O(e=>e===`chat-only`?`cockpit`:`chat-only`)):n&&(e.key===`b`||e.key===`B`)&&(e.preventDefault(),A(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let j=t.find(e=>e.branchName===a)??null,M=j?.mode??`worktree`,N=Dn(j?.branchName??null).data?.services??[],P=(0,Z.useMemo)(()=>{let e=C.trim().toLowerCase();return t.filter(t=>{let r=n[t.branchName];return!(e&&!`${t.branchName} ${t.description}`.toLowerCase().includes(e)||T===`changes`&&!(r&&r.changedFiles>0)||T===`running`&&!(r&&r.runningServices>0))})},[t,n,C,T]),F=j?j.repos.map(e=>{let t=Tn(e),n=b.gitChanges?.find(e=>e.repoName===t),r=n?n.files?.length??0:null,i=N.filter(e=>(e.cwd??``).split(/[\\/]/).includes(t));return{name:t,changedCount:r,ports:Array.from(new Set(i.map(e=>e.port).filter(e=>typeof e==`number`))),serviceCount:i.length}}):[],I=j?g.filter(e=>!j.repos.includes(e.path)):[];return(0,$.jsxs)(`div`,{className:`flex flex-col h-full animate-fade-in`,children:[(0,$.jsxs)(`header`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:`Workspaces`}),(0,$.jsx)(`p`,{className:`mt-0.5 text-sm text-muted-foreground`,children:`Inspect workspace changes, services, context, and collaborate with embedded agents.`})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`div`,{role:`group`,"aria-label":`Workspace layout`,className:`flex items-center gap-1 rounded-lg border border-border bg-muted/60 p-1`,children:[(0,$.jsx)(`button`,{onClick:()=>A(!k),className:c(`rounded-md p-1.5 text-xs font-medium transition-colors cursor-pointer`,k?`text-muted-foreground hover:text-foreground hover:bg-accent`:`bg-background text-foreground shadow-sm`),title:k?`Show workspaces sidebar (Ctrl+B)`:`Hide workspaces sidebar (Ctrl+B)`,"aria-label":`Toggle sidebar`,"aria-expanded":!k,children:(0,$.jsx)(qn,{size:15})}),(0,$.jsx)(`div`,{className:`h-3.5 w-px bg-border my-auto mx-0.5`}),(0,$.jsxs)(`button`,{onClick:()=>O(`cockpit`),"aria-label":`Cockpit layout`,"aria-pressed":D===`cockpit`,className:c(`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors cursor-pointer`,D===`cockpit`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:`Cockpit mode: Spacious chat canvas with contextual inspector (Ctrl+\\)`,children:[(0,$.jsx)(Vn,{size:13}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:`Cockpit`})]}),(0,$.jsxs)(`button`,{onClick:()=>O(`split`),"aria-label":`Split layout`,"aria-pressed":D===`split`,className:c(`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors cursor-pointer`,D===`split`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:`Dual-Split mode: 50/50 side-by-side chat and inspector (Ctrl+\\)`,children:[(0,$.jsx)(Rn,{size:13}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:`Split`})]}),(0,$.jsxs)(`button`,{onClick:()=>O(`chat-only`),"aria-label":`Chat-only layout`,"aria-pressed":D===`chat-only`,className:c(`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors cursor-pointer`,D===`chat-only`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:`Chat focus mode: Full width chat canvas (Ctrl+J)`,children:[(0,$.jsx)(Gn,{size:13}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:`Chat`})]}),(0,$.jsxs)(`button`,{onClick:()=>O(`inspector-only`),"aria-label":`Inspector-only layout`,"aria-pressed":D===`inspector-only`,className:c(`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors cursor-pointer`,D===`inspector-only`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:`Inspector focus mode: Full width inspector`,children:[(0,$.jsx)(un,{size:13}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:`Inspector`})]})]}),(0,$.jsxs)(f,{variant:`outline`,onClick:i,disabled:r,children:[(0,$.jsx)(ln,{size:14,className:r?`animate-spin text-primary`:``}),`Refresh`]})]})]}),(0,$.jsxs)(`div`,{className:`flex gap-4 h-[calc(100vh-125px)] overflow-hidden pb-3`,children:[!k&&(0,$.jsxs)(`div`,{className:`w-60 shrink-0 flex flex-col overflow-y-auto pr-1`,children:[(0,$.jsxs)(`div`,{className:`relative mb-3`,children:[(0,$.jsx)(jt,{size:14,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(yt,{value:C,onChange:e=>w(e.target.value),placeholder:`Search workspaces`,className:`[&_[data-slot=input]]:pl-8`})]}),(0,$.jsx)(`div`,{className:`mb-3 flex items-center gap-1 rounded-lg border border-border bg-muted p-1`,children:so.map(e=>(0,$.jsx)(`button`,{onClick:()=>E(e),"aria-pressed":T===e,className:c(`flex-1 rounded-md px-2.5 py-1 text-xs font-medium capitalize transition-colors cursor-pointer text-center`,T===e?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-accent`),children:e},e))}),r?(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:[0,1,2,3].map(e=>(0,$.jsx)(Ln,{className:`h-14`},e))}):P.length===0?(0,$.jsx)(An,{className:`p-6 text-center text-sm text-muted-foreground`,children:`No workspaces match.`}):(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:P.map(e=>{let t=n[e.branchName],r=e.branchName===a,i=e.mode===`in-place`?null:t?pn(t.syncStatus):null;return(0,$.jsxs)(`button`,{onClick:()=>s(e.branchName),className:c(`rounded-lg border p-3 text-left transition-colors cursor-pointer`,r?`border-primary/50 bg-primary/10`:`border-border bg-card hover:border-foreground/15 hover:bg-accent/50`),children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate font-mono text-sm font-semibold text-foreground`,children:e.branchName}),(0,$.jsxs)(`span`,{className:`shrink-0 text-[11px] text-muted-foreground`,children:[e.repos.length,` repos`]})]}),(0,$.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:c(`h-1.5 w-1.5 rounded-full`,t?.changedFiles?`bg-warning`:`bg-success`),title:t?.changedFiles?`${t.changedFiles} uncommitted`:`Clean`}),t?.runningServices?(0,$.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-running`,title:`Running services`}):null,i&&(0,$.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:i.label})]})]},e.id)})})]}),j?(0,$.jsxs)(`div`,{className:c(`flex-1 min-w-0 h-full gap-4`,(D===`cockpit`||D===`split`)&&`flex flex-col overflow-y-auto xl:grid xl:overflow-hidden`,D===`cockpit`&&`xl:grid-cols-[minmax(440px,960px)_minmax(380px,640px)]`,D===`split`&&`xl:grid-cols-2`,D===`chat-only`&&`flex justify-center overflow-hidden`,D===`inspector-only`&&`overflow-y-auto pr-1`),children:[(0,$.jsx)(`div`,{className:c(`min-w-0 flex flex-col overflow-hidden rounded-xl border border-border bg-card shadow-sm`,(D===`cockpit`||D===`split`)&&`w-full min-h-[420px] flex-none xl:h-full xl:min-h-0`,D===`chat-only`&&`w-full max-w-5xl h-full`,D===`inspector-only`&&`hidden`),children:j?(0,$.jsx)(ao,{ws:j},j.branchName):(0,$.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-10 text-center text-sm text-muted-foreground`,children:`Select a workspace to start chatting.`})}),(0,$.jsx)(`div`,{className:c(`min-w-0`,(D===`cockpit`||D===`split`)&&`w-full flex-none overflow-visible xl:h-full xl:overflow-y-auto xl:pr-1`,D===`chat-only`&&`hidden`,D===`inspector-only`&&`h-full overflow-y-auto`),children:(0,$.jsx)(`div`,{className:c(D===`inspector-only`&&`mx-auto flex w-full max-w-6xl flex-col`),children:j?(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(An,{className:`p-5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h2`,{className:`truncate text-xl font-bold text-foreground`,title:j.branchName,children:j.branchName}),(0,$.jsx)(bn,{tone:M,children:M===`in-place`?`In-place`:`Worktree`})]}),(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,$.jsxs)(`span`,{children:[`Created `,new Date(j.createdAt).toLocaleDateString()]}),(0,$.jsx)(`span`,{children:`·`}),(0,$.jsxs)(`span`,{children:[j.repos.length,` repos`]})]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(f,{disabled:u===j.branchName,onClick:()=>d(j),children:[(0,$.jsx)(On,{size:13,className:u===j.branchName?`animate-spin`:``}),u===j.branchName?`Opening…`:`Continue in Chat`]}),(0,$.jsx)(wt,{workspaceId:j.branchName,workspacePath:j.workspacePath,isVsCode:co}),(0,$.jsxs)(pi,{children:[(0,$.jsx)(mi,{"aria-label":`More actions`,className:`grid h-9 w-9 shrink-0 place-items-center rounded-md border border-border bg-card text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,$.jsx)(zn,{size:16})}),(0,$.jsxs)(hi,{align:`end`,children:[(0,$.jsxs)(gi,{onClick:()=>p(j),children:[(0,$.jsx)(sn,{size:14}),` Copy AI Context`]}),(0,$.jsx)(_i,{}),(0,$.jsxs)(gi,{variant:`destructive`,disabled:h===j.branchName,onClick:()=>void m(j.branchName),children:[(0,$.jsx)(Mt,{size:14}),h===j.branchName?`Deleting…`:`Delete Workspace`]})]})]})]})]}),(0,$.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(()=>{let e=n[j.branchName];if(!e)return null;let t=M===`in-place`?null:pn(e.syncStatus);return(0,$.jsxs)($.Fragment,{children:[e.changedFiles>0?(0,$.jsxs)(bn,{tone:`warning`,dot:!0,children:[e.changedFiles,` uncommitted`]}):(0,$.jsx)(bn,{tone:`idle`,dot:!0,children:`Clean`}),e.runningServices>0?(0,$.jsxs)(bn,{tone:`running`,dot:!0,children:[e.runningServices,` running`]}):(0,$.jsx)(bn,{tone:`idle`,dot:!0,children:`No services`}),t&&(0,$.jsxs)(bn,{tone:t.tone,children:[(0,$.jsx)(ln,{size:11}),` `,t.label]}),e.pendingValidation&&(0,$.jsx)(bn,{tone:`warning`,children:`Needs validation`})]})})()})]}),(0,$.jsxs)(Wi,{value:o,onValueChange:e=>typeof e==`string`&&l(j.branchName,e),className:`mb-4`,children:[(0,$.jsx)(Gi,{className:`max-w-full overflow-x-auto`,children:oo.map(e=>(0,$.jsx)(Ki,{value:e.value,children:e.label},e.value))}),(0,$.jsxs)(qi,{value:o,className:`animate-fade-in pt-3`,children:[o===`overview`&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(An,{className:`p-5`,children:[(0,$.jsx)(`h3`,{className:`mb-2 text-sm font-semibold text-foreground`,children:`Description`}),j.description?(0,$.jsx)(`p`,{className:`whitespace-pre-line text-sm leading-relaxed text-muted-foreground`,children:j.description}):(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No description provided.`})]}),(0,$.jsxs)(An,{className:`p-5`,children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`h3`,{className:`text-sm font-semibold text-foreground`,children:[`Repositories `,(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,j.repos.length,`)`]})]}),I.length>0&&(0,$.jsx)(ba,{repos:I,disabled:_,onAdd:e=>{window.confirm(`Add repository "${Tn(e)}" to this workspace?\nThis creates a new git worktree and re-runs analysis.`)&&v(j.branchName,e)}})]}),(0,$.jsx)(`div`,{className:`divide-y divide-border`,children:F.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center gap-3 py-2.5 first:pt-0 last:pb-0`,children:[(0,$.jsx)(`span`,{className:c(`h-2 w-2 shrink-0 rounded-full`,e.changedCount===null?`bg-muted-foreground`:e.changedCount>0?`bg-warning`:`bg-success`),title:e.changedCount===null?`Status unknown`:e.changedCount>0?`Uncommitted changes`:`Clean`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-sm text-foreground`,children:e.name}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e.ports.map(e=>(0,$.jsxs)(`span`,{className:`rounded border border-border bg-background px-1.5 py-0.5 font-mono text-[11px] text-running-foreground`,children:[`:`,e]},e)),(0,$.jsx)(`span`,{className:`w-24 text-right text-xs text-muted-foreground`,children:e.changedCount===null?`—`:e.changedCount>0?`${e.changedCount} changed`:`clean`})]})]},e.name))}),(0,$.jsx)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:`Per-repo git state and detected service ports.`})]})]}),o===`sessions`&&(0,$.jsx)(Ca,{ws:j,...y}),o===`services`&&(0,$.jsx)(wa,{ws:j}),o===`changes`&&(0,$.jsx)(Ta,{ws:j,...b}),o===`knowledge`&&(0,$.jsx)(Ea,{ws:j,...x}),o===`plan`&&(0,$.jsx)(Da,{...S})]})]})]}):null})})]}):(0,$.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,$.jsx)(`div`,{className:`max-w-md w-full`,children:(0,$.jsx)(An,{className:`border-dashed p-0 shadow-sm`,children:(0,$.jsx)(Fn,{children:(0,$.jsxs)(Pn,{children:[(0,$.jsx)(Mn,{variant:`icon`,children:(0,$.jsx)(en,{})}),(0,$.jsx)(jn,{children:`No workspace selected`}),(0,$.jsx)(Nn,{children:`Pick a workspace from the list to see its status, repositories, changes, services, sessions and chat.`})]})})})})})]})]})}export{lo as WorkspacesPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e,m as t,p as n,r}from"./button-cPldH5S4.js";var i=e();function a({className:e,render:i,...a}){return r({defaultTagName:`div`,props:n({className:t(`relative flex flex-col rounded-2xl border bg-card not-dark:bg-clip-padding text-card-foreground shadow-xs/5 before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-2xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)]`,e),"data-slot":`card`},a),render:i})}function o({className:e,...n}){return(0,i.jsx)(a,{className:t(`flex-row items-center`,e),...n})}export{o as n,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./button-cPldH5S4.js";var t=e(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]);export{t};
|