tarsk 0.4.7 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/index.js +254 -129
  2. package/dist/public/assets/account-view-D2dv34vY.js +1 -0
  3. package/dist/public/assets/{add-agent-view-B9IQjAwU.js → add-agent-view-DM__lVyy.js} +1 -1
  4. package/dist/public/assets/add-rule-view-BomwxNHB.js +7 -0
  5. package/dist/public/assets/{add-skill-view-Cuu6Z0fr.js → add-skill-view-JiUioTS0.js} +1 -1
  6. package/dist/public/assets/{add-slash-command-view-uW75Jvbh.js → add-slash-command-view--JU5d22L.js} +1 -1
  7. package/dist/public/assets/conversation-history-view-C2i3vP6t.js +1 -0
  8. package/dist/public/assets/{dialogs-config-DiFQjCeA.js → dialogs-config-CdogKQE6.js} +13 -13
  9. package/dist/public/assets/diff-view-BOokQeYx.js +3 -0
  10. package/dist/public/assets/file-tree-sidebar-BXedO8ZD.js +1 -0
  11. package/dist/public/assets/{files-view-CUZn7G0o.js → files-view-BK-J3s66.js} +1 -1
  12. package/dist/public/assets/history-view-DtTMEZIl.js +1 -0
  13. package/dist/public/assets/index-BR4u03pf.js +17 -0
  14. package/dist/public/assets/index-LCD_R39p.css +1 -0
  15. package/dist/public/assets/mcp-manager-BNA3V6Cy.js +1 -0
  16. package/dist/public/assets/{mcp-server-edit-view-BAwMNOAH.js → mcp-server-edit-view-B_xPUXV1.js} +3 -3
  17. package/dist/public/assets/mcp-servers-sidebar-Cv-D6sy7.js +1 -0
  18. package/dist/public/assets/{mcp-view-Cz7nelGQ.js → mcp-view-TSM0sRuR.js} +1 -1
  19. package/dist/public/assets/onboarding-dialog-C3veuByQ.js +1 -0
  20. package/dist/public/assets/onboarding-gO0dp5Em.js +1 -0
  21. package/dist/public/assets/project-settings-view-CwvIMmXu.js +1 -0
  22. package/dist/public/assets/provider-details-view-Dcm9ZdOm.js +1 -0
  23. package/dist/public/assets/{providers-sidebar-C4MF6i9d.js → providers-sidebar-B5hxgXyK.js} +1 -1
  24. package/dist/public/assets/radio-group-BQ7i054U.js +1 -0
  25. package/dist/public/assets/react-vendor-BNQTbRKd.js +17 -0
  26. package/dist/public/assets/settings-view-Di5K8IgA.js +2 -0
  27. package/dist/public/assets/{store-BVVGurzl.js → store-CB5vVIg-.js} +2 -2
  28. package/dist/public/assets/{use-toast-DEJkXPN4.js → use-toast-DCmq-wgl.js} +1 -1
  29. package/dist/public/assets/{utils-DY_quHB8.js → utils-B7eoN2Bj.js} +1 -1
  30. package/dist/public/index.html +10 -10
  31. package/package.json +1 -1
  32. package/dist/public/assets/add-rule-view-BdZHurB3.js +0 -7
  33. package/dist/public/assets/conversation-history-view-D0OBxJMC.js +0 -1
  34. package/dist/public/assets/diff-view-B5XBM5UZ.js +0 -3
  35. package/dist/public/assets/file-tree-sidebar-DMX7fHi7.js +0 -1
  36. package/dist/public/assets/history-view-B8HM78Wa.js +0 -1
  37. package/dist/public/assets/index-C-p81QYw.js +0 -17
  38. package/dist/public/assets/index-DhVMb7D6.css +0 -1
  39. package/dist/public/assets/mcp-manager-CEm1L3dn.js +0 -1
  40. package/dist/public/assets/mcp-servers-sidebar-Ncxq9Oj5.js +0 -1
  41. package/dist/public/assets/onboarding-CvpvkF3X.js +0 -1
  42. package/dist/public/assets/onboarding-dialog-CKJw0ULj.js +0 -1
  43. package/dist/public/assets/project-settings-view-DJ1uvrTL.js +0 -1
  44. package/dist/public/assets/provider-details-view-CkS6WbnK.js +0 -1
  45. package/dist/public/assets/radio-group-BItFbSTw.js +0 -1
  46. package/dist/public/assets/react-vendor-DkKo9QGO.js +0 -17
  47. package/dist/public/assets/settings-view-C45kmAGH.js +0 -2
  48. /package/dist/public/assets/{monaco-DvsnxTfD.js → monaco-DKN4dKR5.js} +0 -0
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mcp-view-TSM0sRuR.js","assets/rolldown-runtime-Dw2cE7zH.js","assets/index-BR4u03pf.js","assets/react-vendor-BNQTbRKd.js","assets/history-view-DtTMEZIl.js","assets/dialogs-config-CdogKQE6.js","assets/monaco-DKN4dKR5.js","assets/onboarding-gO0dp5Em.js","assets/use-toast-DCmq-wgl.js","assets/store-CB5vVIg-.js","assets/utils-B7eoN2Bj.js","assets/index-LCD_R39p.css","assets/mcp-manager-BNA3V6Cy.js","assets/mcp-server-edit-view-B_xPUXV1.js","assets/mcp-servers-sidebar-Cv-D6sy7.js","assets/project-settings-view-CwvIMmXu.js","assets/files-view-BK-J3s66.js","assets/file-tree-sidebar-BXedO8ZD.js","assets/add-skill-view-JiUioTS0.js","assets/radio-group-BQ7i054U.js","assets/add-slash-command-view--JU5d22L.js","assets/add-rule-view-BomwxNHB.js","assets/add-agent-view-DM__lVyy.js","assets/providers-sidebar-B5hxgXyK.js","assets/provider-details-view-Dcm9ZdOm.js","assets/account-view-D2dv34vY.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Fi as t,Ni as n,Rt as r,Xn as i,Zr as a,cr as o}from"./dialogs-config-CdogKQE6.js";import{$ as s,X as ee,Y as te,Z as ne}from"./react-vendor-BNQTbRKd.js";import{a as re}from"./store-CB5vVIg-.js";import"./use-toast-DCmq-wgl.js";import{c as ie,h as ae,i as oe,n as se,r as c,t as l}from"./index-BR4u03pf.js";var ce=n(),u=e(t(),1),d=i(),f=(0,u.forwardRef)(function(e,t){let n=(0,ce.c)(20),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:ee,collapsible:te,collapsedSize:ne,className:re,onCollapse:ie,onExpand:ae}=e,l=a===void 0?25:a,u=o===void 0?20:o,f=s===void 0?30:s,p=ee===void 0?40:ee,le=te===void 0?!1:te,ue=ne===void 0?0:ne,de=`h-full ${re===void 0?``:re}`,m;n[0]!==ue||n[1]!==le||n[2]!==l||n[3]!==f||n[4]!==u||n[5]!==ie||n[6]!==ae||n[7]!==t||n[8]!==r?(m=(0,d.jsx)(c,{ref:t,defaultSize:l,minSize:u,maxSize:f,collapsible:le,collapsedSize:ue,onCollapse:ie,onExpand:ae,className:`border-r border-transparent`,children:r}),n[0]=ue,n[1]=le,n[2]=l,n[3]=f,n[4]=u,n[5]=ie,n[6]=ae,n[7]=t,n[8]=r,n[9]=m):m=n[9];let h;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,d.jsx)(se,{withHandle:!0,className:`ml-[-40px]`}),n[10]=h):h=n[10];let g;n[11]!==i||n[12]!==p?(g=(0,d.jsx)(c,{minSize:p,className:`overflow-hidden`,children:i}),n[11]=i,n[12]=p,n[13]=g):g=n[13];let _;n[14]!==g||n[15]!==m?(_=(0,d.jsxs)(oe,{direction:`horizontal`,className:`h-full`,children:[m,h,g]}),n[14]=g,n[15]=m,n[16]=_):_=n[16];let v;return n[17]!==_||n[18]!==de?(v=(0,d.jsx)(`div`,{className:de,children:_}),n[17]=_,n[18]=de,n[19]=v):v=n[19],v}),p=(0,u.lazy)(()=>s(()=>import(`./mcp-view-TSM0sRuR.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),le=(0,u.lazy)(()=>s(()=>import(`./mcp-server-edit-view-B_xPUXV1.js`),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11,12]))),ue=(0,u.lazy)(()=>s(()=>import(`./mcp-servers-sidebar-Cv-D6sy7.js`),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11,12]))),de=(0,u.lazy)(()=>s(()=>import(`./project-settings-view-CwvIMmXu.js`),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))),m=(0,u.lazy)(()=>s(()=>import(`./files-view-BK-J3s66.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11]))),h=(0,u.lazy)(()=>s(()=>import(`./file-tree-sidebar-BXedO8ZD.js`),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))),g=(0,u.lazy)(()=>s(()=>import(`./add-skill-view-JiUioTS0.js`),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11,19]))),_=(0,u.lazy)(()=>s(()=>import(`./add-slash-command-view--JU5d22L.js`),__vite__mapDeps([20,1,3,4,5,6,19,8]))),v=(0,u.lazy)(()=>s(()=>import(`./add-rule-view-BomwxNHB.js`),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10,11,19]))),fe=(0,u.lazy)(()=>s(()=>import(`./add-agent-view-DM__lVyy.js`),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10,11,19]))),pe=(0,u.lazy)(()=>s(()=>import(`./providers-sidebar-B5hxgXyK.js`),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11]))),me=(0,u.lazy)(()=>s(()=>import(`./provider-details-view-Dcm9ZdOm.js`),__vite__mapDeps([24,1,4,5,7]))),he=(0,u.lazy)(()=>s(()=>import(`./account-view-D2dv34vY.js`),__vite__mapDeps([25,1,5,8]))),ge=[`project`,`account`,`mcp-servers`,`mcp-server-edit`,`skills`,`instructions`,`files`,`add-skill`,`add-command`,`add-rule`,`add-agent`,`providers`],_e=[{id:`project`,label:`Project`,icon:a},{id:`account`,label:`Account`,icon:o}];function y(e){let t=(0,ce.c)(5),{title:n}=e,r;t[0]===n?r=t[1]:(r=(0,d.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:n}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Content coming soon...`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,d.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,d.jsxs)(`div`,{className:`text-center`,children:[r,i]})}),t[3]=r,t[4]=a),a}function b(){let e=(0,ce.c)(116),{tab:t}=ne(),n=ee(),r=te(),{state:i}=re(),{refreshProjects:a}=l(),o=r.pathname.startsWith(`/settings/project/`),s=r.pathname===`/settings/add-skill`,oe=r.pathname===`/settings/add-command`,se=r.pathname===`/settings/add-rule`,c=r.pathname===`/settings/add-agent`,b=r.pathname===`/settings/mcp-server-edit`,x;e[0]===r.pathname?x=e[1]:(x=r.pathname.split(`/`),e[0]=r.pathname,e[1]=x);let we=x,Te=o&&we[3]?we[3]:null,S;e[2]===r.search?S=e[3]:(S=new URLSearchParams(r.search).get(`projectId`),e[2]=r.search,e[3]=S);let C=Te??S,w;e[4]===r.search?w=e[5]:(w=new URLSearchParams(r.search).get(`tab`),e[4]=r.search,e[5]=w);let Ee=w,T;if(e[6]!==i.projects||e[7]!==i.selectedProjectId){let t;e[9]===i.selectedProjectId?t=e[10]:(t=e=>e.projectId===i.selectedProjectId,e[9]=i.selectedProjectId,e[10]=t),T=i.projects.find(t),e[6]=i.projects,e[7]=i.selectedProjectId,e[8]=T}else T=e[8];let E=T,D=E?.projectId??C,O;e[11]!==D||e[12]!==c||e[13]!==oe||e[14]!==se||e[15]!==s||e[16]!==b||e[17]!==o||e[18]!==Ee||e[19]!==t?(O=Ee??(o?`project`:s?`add-skill`:oe?`add-command`:se?`add-rule`:c?`add-agent`:b?`mcp-server-edit`:t===`providers`?`providers`:ge.includes(t)?t:D?`project`:`providers`),e[11]=D,e[12]=c,e[13]=oe,e[14]=se,e[15]=s,e[16]=b,e[17]=o,e[18]=Ee,e[19]=t,e[20]=O):O=e[20];let k=O,[A,De]=(0,u.useState)(!1),Oe=(0,u.useRef)(null),[ke,j]=(0,u.useState)(0),[Ae,je]=(0,u.useState)(0),[M,Me]=(0,u.useState)(null),[N,Ne]=(0,u.useState)(null),P;e[21]===n?P=e[22]:(P=()=>{n(`/settings/mcp-servers`,{replace:!0})},e[21]=n,e[22]=P);let Pe=P,F;e[23]!==D||e[24]!==n?(F=e=>{n(`/settings/mcp-server-edit?serverName=${encodeURIComponent(e)}&projectId=${D}`,{replace:!0})},e[23]=D,e[24]=n,e[25]=F):F=e[25];let Fe=F,I;e[26]!==D||e[27]!==n?(I=()=>{n(`/settings/mcp-server-edit?projectId=${D}`,{replace:!0})},e[26]=D,e[27]=n,e[28]=I):I=e[28];let Ie=I,Le;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>{je(Ce)},e[29]=Le):Le=e[29];let Re=Le,L;e[30]!==D||e[31]!==n?(L=()=>{n(`/settings/add-command?projectId=${D}`,{replace:!0})},e[30]=D,e[31]=n,e[32]=L):L=e[32];let ze=L,R;e[33]!==D||e[34]!==n?(R=()=>{n(`/settings/add-rule?projectId=${D}`,{replace:!0})},e[33]=D,e[34]=n,e[35]=R):R=e[35];let Be=R,z;e[36]!==D||e[37]!==n?(z=()=>{n(`/settings/add-skill?projectId=${D}`,{replace:!0})},e[36]=D,e[37]=n,e[38]=z):z=e[38];let Ve=z,B;e[39]!==D||e[40]!==n?(B=()=>{n(`/settings/add-agent?projectId=${D}`,{replace:!0})},e[39]=D,e[40]=n,e[41]=B):B=e[41];let He=B,Ue;e[42]===r.search?Ue=e[43]:(Ue=new URLSearchParams(r.search).get(`serverName`),e[42]=r.search,e[43]=Ue);let We=Ue,Ge=Se,Ke;e[44]===n?Ke=e[45]:(Ke=()=>{n(`/`)},e[44]=n,e[45]=Ke);let qe=Ke,Je;e[46]!==n||e[47]!==C?(Je=e=>{e===`project`&&Ne(null),n(C&&e!==`project`?`/settings/${e}?projectId=${C}`:C&&e===`project`?`/settings/project/${C}`:`/settings/${e}`,{replace:!0})},e[46]=n,e[47]=C,e[48]=Je):Je=e[48];let V=Je,Ye,Xe;e[49]!==r.pathname||e[50]!==n||e[51]!==C?(Ye=()=>{r.pathname===`/settings/providers`&&n(C?`/settings/project/${C}`:`/settings/project`,{replace:!0})},Xe=[r.pathname,C,n],e[49]=r.pathname,e[50]=n,e[51]=C,e[52]=Ye,e[53]=Xe):(Ye=e[52],Xe=e[53]),(0,u.useEffect)(Ye,Xe);let Ze;e[54]!==D||e[55]!==n?(Ze=e=>{Me(e),n(D?`/settings?tab=providers&projectId=${D}`:`/settings?tab=providers`,{replace:!0})},e[54]=D,e[55]=n,e[56]=Ze):Ze=e[56];let Qe=Ze,H;e[57]===V?H=e[58]:(H=e=>{Ne(e),V(`files`)},e[57]=V,e[58]=H);let U=H,$e;e[59]!==k||e[60]!==D||e[61]!==ke||e[62]!==He||e[63]!==ze||e[64]!==Be||e[65]!==Ie||e[66]!==Ve||e[67]!==Fe||e[68]!==qe||e[69]!==U||e[70]!==Qe||e[71]!==Pe||e[72]!==Ae||e[73]!==N?.path||e[74]!==E?.projectPath||e[75]!==M||e[76]!==V||e[77]!==i.selectedThreadId?($e=()=>(0,d.jsx)(ie,{onTitleClose:qe,subtitle:`Settings`,onResetOnboarding:Ge,children:(0,d.jsxs)(`div`,{className:`px-2 py-2`,children:[(0,d.jsx)(`div`,{className:`space-y-1`,children:_e.filter(e=>D??e.id!==`project`).map(e=>(0,d.jsxs)(ae,{onClick:()=>V(e.id),selected:k===e.id,children:[(0,d.jsx)(e.icon,{className:`h-4 w-4 flex-shrink-0`}),(0,d.jsx)(`span`,{className:`flex-1 truncate`,children:e.label})]},e.id))}),(0,d.jsx)(`div`,{className:`mt-2`,children:(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,d.jsx)(pe,{selectedProvider:M,onProviderSelect:Qe,projectId:D})})}),D&&(0,d.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,d.jsx)(ue,{projectPath:E?.projectPath,onAddServer:Ie,onEditServer:Fe,onViewMCPServers:Pe,refreshKey:Ae})}),(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,d.jsx)(h,{threadId:i.selectedThreadId??``,selectedPath:N?.path??null,expandPath:N?.path??null,onFileSelect:U,onAddSkill:Ve,onAddCommand:ze,onAddRule:Be,onAddAgent:He},ke)})]})]})}),e[59]=k,e[60]=D,e[61]=ke,e[62]=He,e[63]=ze,e[64]=Be,e[65]=Ie,e[66]=Ve,e[67]=Fe,e[68]=qe,e[69]=U,e[70]=Qe,e[71]=Pe,e[72]=Ae,e[73]=N?.path,e[74]=E?.projectPath,e[75]=M,e[76]=V,e[77]=i.selectedThreadId,e[78]=$e):$e=e[78];let W=$e,G,K,q,J,Y,X,Z,Q;e[79]!==k||e[80]!==D||e[81]!==U||e[82]!==A||e[83]!==n||e[84]!==C||e[85]!==a||e[86]!==W||e[87]!==N||e[88]!==E?.projectPath||e[89]!==M||e[90]!==We||e[91]!==i.selectedProjectId||e[92]!==i.selectedThreadId?(G=f,J=Oe,Y=!0,e[101]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>De(!0),Z=()=>De(!1),e[101]=X,e[102]=Z):(X=e[101],Z=e[102]),e[103]===W?Q=e[104]:(Q=W(),e[103]=W,e[104]=Q),K=`h-full overflow-auto ${A?`ml-[40px]`:``}`,q=(()=>{switch(k){case`mcp-server-edit`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Edit MCP Server`}),children:(0,d.jsx)(le,{projectPath:E?.projectPath,serverName:We??void 0,onBack:()=>{Re(),n(`/settings/mcp-servers?projectId=${D}`,{replace:!0})}})});case`mcp-servers`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`MCP Servers`}),children:(0,d.jsx)(p,{sidebarRef:Oe,isSidebarCollapsed:A,onServersChange:Re})});case`project`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Project Settings`}),children:(0,d.jsx)(de,{projectId:C,onProjectUpdated:a})});case`account`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Account`}),children:(0,d.jsx)(he,{})});case`skills`:return(0,d.jsx)(y,{title:`Skills Settings`});case`instructions`:return(0,d.jsx)(y,{title:`Instructions Settings`});case`providers`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Provider Details`}),children:(0,d.jsx)(me,{selectedProviderName:M})});case`files`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Files`}),children:(0,d.jsx)(m,{selectedFile:N,onFileSelect:U})});case`add-skill`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Add Skill`}),children:(0,d.jsx)(g,{threadId:i.selectedThreadId,onSkillCreated:(e,t)=>{let n={id:e,name:t,type:`file`,path:e};j(xe),U(n)}})});case`add-command`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Add Command`}),children:(0,d.jsx)(_,{projectId:i.selectedProjectId,threadId:i.selectedThreadId,onCommandCreated:e=>{let t=`.agents/commands/${e}.md`,r={id:t,name:`${e}.md`,path:t,type:`file`,virtual:!1};j(be),U(r),n(`/settings/files?projectId=${D}`,{replace:!0})}})});case`add-rule`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Add Rule`}),children:(0,d.jsx)(v,{threadId:i.selectedThreadId,onRuleCreated:e=>{let t=`.agents/rules/${e}.md`,r={id:t,name:`${e}.md`,path:t,type:`file`,virtual:!1};j(ye),U(r),n(`/settings/files?projectId=${D}`,{replace:!0})}})});case`add-agent`:return(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(y,{title:`Add Agent`}),children:(0,d.jsx)(fe,{threadId:i.selectedThreadId,onAgentCreated:(e,t)=>{let n={id:e,name:t,type:`file`,path:e};j(ve),U(n)}})});default:return(0,d.jsx)(y,{title:`Settings`})}})(),e[79]=k,e[80]=D,e[81]=U,e[82]=A,e[83]=n,e[84]=C,e[85]=a,e[86]=W,e[87]=N,e[88]=E?.projectPath,e[89]=M,e[90]=We,e[91]=i.selectedProjectId,e[92]=i.selectedThreadId,e[93]=G,e[94]=K,e[95]=q,e[96]=J,e[97]=Y,e[98]=X,e[99]=Z,e[100]=Q):(G=e[93],K=e[94],q=e[95],J=e[96],Y=e[97],X=e[98],Z=e[99],Q=e[100]);let $;e[105]!==K||e[106]!==q?($=(0,d.jsx)(`div`,{className:K,children:q}),e[105]=K,e[106]=q,e[107]=$):$=e[107];let et;return e[108]!==G||e[109]!==J||e[110]!==Y||e[111]!==X||e[112]!==Z||e[113]!==Q||e[114]!==$?(et=(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(G,{ref:J,collapsible:Y,onCollapse:X,onExpand:Z,sidebar:Q,children:$})}),e[108]=G,e[109]=J,e[110]=Y,e[111]=X,e[112]=Z,e[113]=Q,e[114]=$,e[115]=et):et=e[115],et}function ve(e){return e+1}function ye(e){return e+1}function be(e){return e+1}function xe(e){return e+1}async function Se(){try{await r()}catch(e){let t=e;console.error(`Failed to reset onboarding:`,t)}}function Ce(e){return e+1}export{b as default};
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,Mi as n}from"./dialogs-config-DiFQjCeA.js";function r(e){return typeof e==`string`?e.replace(/\\n/g,`
2
- `).replace(/✅/g,`✓`):``}function i(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=[],r=0;for(;r<t.length;){let e=t.indexOf(`[`,r);if(e===-1){let e=t.slice(r).trim();e&&n.push({type:`reasoning`,text:e});break}let i=t.slice(r,e).trim();i&&n.push({type:`reasoning`,text:i});let a=0,o=-1;for(let n=e;n<t.length;n++)if(t[n]===`[`)a++;else if(t[n]===`]`&&(a--,a===0)){o=n;break}if(o===-1){let r=t.slice(e).trim();r&&n.push({type:`reasoning`,text:r});break}try{let r=JSON.parse(t.slice(e,o+1));if(Array.isArray(r)){for(let e of r)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&n.push(e)}}}catch{let r=t.slice(e,o+1).trim();r&&n.push({type:`reasoning`,text:r})}r=o+1}return n.length>0?n:null}function a(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function o(e){let t=[];e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function s(e){if(!e)return null;let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);if(Array.isArray(e))return a(e);if(typeof e==`object`&&e)return o(e)}catch{}let n=[],r=e.indexOf(`{`),i=e.indexOf(`[`),s=r===-1?i:i===-1?r:Math.min(r,i);if(s!==-1){let t=e.slice(s),r=Math.max(t.lastIndexOf(`]`),t.lastIndexOf(`}`));if(r!==-1){let e=t.substring(0,r+1);try{let i=JSON.parse(e);Array.isArray(i)?n.push(...a(i)):n.push(...o(i));let s=t.substring(r+1).trim();return s&&n.push({type:`text`,text:s}),n}catch{}}}return null}function c(e,t,n){let r=e[e.length-1];return r?.type===t?[...e.slice(0,-1),{type:t,chunks:[...r.chunks,n]}]:[...e,{type:t,chunks:[n]}]}function l(e,t){return e[e.length-1]?.type===`content`?[...e.slice(0,-1),{type:`content`,chunks:[t]}]:[...e,{type:`content`,chunks:[t]}]}function u(e){let t=[];for(let n of e){let e=n.chunks.join(``);if(n.type===`thinking`){let n=i(e)??[];t.push(...n)}else{let n=s(e)??(e.trim()?[{type:`text`,text:e}]:[]);t.push(...n)}}return t}function d(e){let t=u(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var f=t(),p=e(n(),1),m=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e}({}),h={projects:[],projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,projectModelSelections:{},sidebarOpen:!0,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],completedThreadIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},pendingChatMessage:null,diffComments:{}};function g(e,t){switch(t.type){case m.SetProjects:return{...e,projects:t.projects};case m.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case m.SelectThread:return{...e,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],focusChatInput:t.focusInput??!1};case m.SetMessages:return{...e,messages:t.messages};case m.AddMessage:return{...e,messages:[...e.messages,t.message]};case m.EnqueueChatMessage:return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]};case m.RemoveQueuedChatMessage:return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)};case m.SetStreaming:return{...e,isStreaming:t.isStreaming};case m.AppendStreamContent:return{...e,streamingContent:e.streamingContent+t.content};case m.SetStreamContent:{let n=l(e.streamingSegments,t.content);return{...e,streamingContent:t.content,streamingSegments:n}}case m.AppendStreamThinking:return{...e,streamingThinking:e.streamingThinking+t.content};case m.AppendStreamChunk:return{...e,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?e.streamingContent+t.content:e.streamingContent,streamingThinking:t.chunkType===`thinking`?e.streamingThinking+t.content:e.streamingThinking};case m.SetStreamModel:return{...e,streamingModel:t.model};case m.SetProjectModel:return{...e,projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model}};case m.ResetStream:return{...e,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,isStreaming:!1,toolCallProgress:{}};case m.StopStream:return{...e,isStreaming:!1};case m.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case m.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case m.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case m.SetProcessingThreads:return{...e,processingThreadIds:t.threadIds};case m.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case m.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId)};case m.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case m.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case m.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};case m.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case m.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId]};case m.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case m.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case m.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};case m.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case m.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case m.ClearCommandOutput:return{...e,commandOutput:``};case m.ToggleTerminal:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:!r.open}}}}case m.SetTerminalOpen:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case m.QueueTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case m.ClearQueuedTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:null}}}}case m.AppendTerminalLine:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case m.ClearTerminalOutput:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case m.SetTerminalHeight:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,height:t.height}}}}case m.SetTerminalCwd:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,cwd:t.cwd}}}}case m.SetTerminalRunning:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,isRunning:t.isRunning}}}}case m.SetTerminalHistory:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,history:t.history}}}}case m.SetTerminalHistoryIndex:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,historyIndex:t.index}}}}case m.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case m.ClearFocusChatInput:return{...e,focusChatInput:!1};case m.ClearMessages:return{...e,messages:[]};case m.UpdateToolCallProgress:return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:t.progress}};case m.SetPendingChatMessage:return{...e,pendingChatMessage:t.message};case m.ClearPendingChatMessage:return{...e,pendingChatMessage:null};case m.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};default:return e}}var _=(0,p.createContext)({state:h,dispatch:()=>{}});function v(){return(0,p.useContext)(_)}function y(e){let t=(0,f.c)(11),{state:n,dispatch:r}=v();if(!e){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0];let n;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={terminalState:{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:e,height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},dispatch:b},t[1]=n):n=t[1],n}let i;t[2]!==n.terminalStates||t[3]!==e?(i=n.terminalStates[e]||{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},t[2]=n.terminalStates,t[3]=e,t[4]=i):i=t[4];let a=i,o;t[5]!==r||t[6]!==e?(o=t=>{r({...t,threadId:e})},t[5]=r,t[6]=e,t[7]=o):o=t[7];let s=o,c;return t[8]!==s||t[9]!==a?(c={terminalState:a,dispatch:s},t[8]=s,t[9]=a,t[10]=c):c=t[10],c}function b(){}export{v as a,u as c,r as d,s as f,h as i,c as l,_ as n,y as o,i as p,g as r,d as s,m as t,l as u};
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Fi as t,Ni as n}from"./dialogs-config-CdogKQE6.js";function r(e){return typeof e==`string`?e.replace(/\\n/g,`
2
+ `).replace(/✅/g,`✓`):``}function i(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=[],r=0;for(;r<t.length;){let e=t.indexOf(`[`,r);if(e===-1){let e=t.slice(r).trim();e&&n.push({type:`reasoning`,text:e});break}let i=t.slice(r,e).trim();i&&n.push({type:`reasoning`,text:i});let a=0,o=-1;for(let n=e;n<t.length;n++)if(t[n]===`[`)a++;else if(t[n]===`]`&&(a--,a===0)){o=n;break}if(o===-1){let r=t.slice(e).trim();r&&n.push({type:`reasoning`,text:r});break}try{let r=JSON.parse(t.slice(e,o+1));if(Array.isArray(r)){for(let e of r)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&n.push(e)}}}catch{let r=t.slice(e,o+1).trim();r&&n.push({type:`reasoning`,text:r})}r=o+1}return n.length>0?n:null}function a(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function o(e){let t=[];e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function s(e){if(!e)return null;let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);if(Array.isArray(e))return a(e);if(typeof e==`object`&&e)return o(e)}catch{}let n=[],r=e.indexOf(`{`),i=e.indexOf(`[`),s=r===-1?i:i===-1?r:Math.min(r,i);if(s!==-1){let t=e.slice(s),r=Math.max(t.lastIndexOf(`]`),t.lastIndexOf(`}`));if(r!==-1){let e=t.substring(0,r+1);try{let i=JSON.parse(e);Array.isArray(i)?n.push(...a(i)):n.push(...o(i));let s=t.substring(r+1).trim();return s&&n.push({type:`text`,text:s}),n}catch{}}}return null}function c(e,t,n){let r=e[e.length-1];return r?.type===t?[...e.slice(0,-1),{type:t,chunks:[...r.chunks,n]}]:[...e,{type:t,chunks:[n]}]}function l(e,t){return e[e.length-1]?.type===`content`?[...e.slice(0,-1),{type:`content`,chunks:[t]}]:[...e,{type:`content`,chunks:[t]}]}function u(e){let t=[];for(let n of e){let e=n.chunks.join(``);if(n.type===`thinking`){let n=i(e)??[];t.push(...n)}else{let n=s(e)??(e.trim()?[{type:`text`,text:e}]:[]);t.push(...n)}}return t}function d(e){let t=u(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var f=n(),p=e(t(),1),m=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e}({}),h={projects:[],projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,projectModelSelections:{},sidebarOpen:!0,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],completedThreadIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},pendingChatMessage:null,diffComments:{}};function g(e,t){switch(t.type){case m.SetProjects:return{...e,projects:t.projects};case m.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case m.SelectThread:return{...e,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],focusChatInput:t.focusInput??!1};case m.SetMessages:return{...e,messages:t.messages};case m.AddMessage:return{...e,messages:[...e.messages,t.message]};case m.EnqueueChatMessage:return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]};case m.RemoveQueuedChatMessage:return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)};case m.SetStreaming:return{...e,isStreaming:t.isStreaming};case m.AppendStreamContent:return{...e,streamingContent:e.streamingContent+t.content};case m.SetStreamContent:{let n=l(e.streamingSegments,t.content);return{...e,streamingContent:t.content,streamingSegments:n}}case m.AppendStreamThinking:return{...e,streamingThinking:e.streamingThinking+t.content};case m.AppendStreamChunk:return{...e,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?e.streamingContent+t.content:e.streamingContent,streamingThinking:t.chunkType===`thinking`?e.streamingThinking+t.content:e.streamingThinking};case m.SetStreamModel:return{...e,streamingModel:t.model};case m.SetProjectModel:return{...e,projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model}};case m.ResetStream:return{...e,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,isStreaming:!1,toolCallProgress:{}};case m.StopStream:return{...e,isStreaming:!1};case m.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case m.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case m.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case m.SetProcessingThreads:return{...e,processingThreadIds:t.threadIds};case m.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case m.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId)};case m.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case m.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case m.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};case m.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case m.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId]};case m.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case m.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case m.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};case m.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case m.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case m.ClearCommandOutput:return{...e,commandOutput:``};case m.ToggleTerminal:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:!r.open}}}}case m.SetTerminalOpen:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case m.QueueTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case m.ClearQueuedTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:null}}}}case m.AppendTerminalLine:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case m.ClearTerminalOutput:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case m.SetTerminalHeight:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,height:t.height}}}}case m.SetTerminalCwd:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,cwd:t.cwd}}}}case m.SetTerminalRunning:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,isRunning:t.isRunning}}}}case m.SetTerminalHistory:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,history:t.history}}}}case m.SetTerminalHistoryIndex:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,historyIndex:t.index}}}}case m.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case m.ClearFocusChatInput:return{...e,focusChatInput:!1};case m.ClearMessages:return{...e,messages:[]};case m.UpdateToolCallProgress:return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:t.progress}};case m.SetPendingChatMessage:return{...e,pendingChatMessage:t.message};case m.ClearPendingChatMessage:return{...e,pendingChatMessage:null};case m.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};default:return e}}var _=(0,p.createContext)({state:h,dispatch:()=>{}});function v(){return(0,p.useContext)(_)}function y(e){let t=(0,f.c)(11),{state:n,dispatch:r}=v();if(!e){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0];let n;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={terminalState:{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:e,height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},dispatch:b},t[1]=n):n=t[1],n}let i;t[2]!==n.terminalStates||t[3]!==e?(i=n.terminalStates[e]||{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},t[2]=n.terminalStates,t[3]=e,t[4]=i):i=t[4];let a=i,o;t[5]!==r||t[6]!==e?(o=t=>{r({...t,threadId:e})},t[5]=r,t[6]=e,t[7]=o):o=t[7];let s=o,c;return t[8]!==s||t[9]!==a?(c={terminalState:a,dispatch:s},t[8]=s,t[9]=a,t[10]=c):c=t[10],c}function b(){}export{v as a,u as c,r as d,s as f,h as i,c as l,_ as n,y as o,i as p,g as r,d as s,m as t,l as u};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,Mi as n}from"./dialogs-config-DiFQjCeA.js";var r=t(),i=e(n(),1),a=1,o=1e6,s=0;function c(){return s=(s+1)%(2**53-1),s.toString()}var l=new Map,u=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),m({type:`REMOVE_TOAST`,toastId:e})},o);l.set(e,t)},d=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,a)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?u(n):e.toasts.forEach(e=>{u(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||n===void 0?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},f=[],p={toasts:[]};function m(e){p=d(p,e),f.forEach(e=>{e(p)})}function h({...e}){let t=c(),n=e=>m({type:`UPDATE_TOAST`,toast:{...e,id:t}}),r=()=>m({type:`DISMISS_TOAST`,toastId:t});return m({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||r()}}}),{id:t,dismiss:r,update:n}}function g(){let e=(0,r.c)(5),[t,n]=i.useState(p),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>(f.push(n),()=>{let e=f.indexOf(n);e>-1&&f.splice(e,1)}),e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),i.useEffect(a,o);let s;return e[3]===t?s=e[4]:(s={...t,toast:h,dismiss:_},e[3]=t,e[4]=s),s}function _(e){return m({type:`DISMISS_TOAST`,toastId:e})}export{g as n,h as t};
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Fi as t,Ni as n}from"./dialogs-config-CdogKQE6.js";var r=n(),i=e(t(),1),a=1,o=1e6,s=0;function c(){return s=(s+1)%(2**53-1),s.toString()}var l=new Map,u=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),m({type:`REMOVE_TOAST`,toastId:e})},o);l.set(e,t)},d=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,a)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?u(n):e.toasts.forEach(e=>{u(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||n===void 0?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},f=[],p={toasts:[]};function m(e){p=d(p,e),f.forEach(e=>{e(p)})}function h({...e}){let t=c(),n=e=>m({type:`UPDATE_TOAST`,toast:{...e,id:t}}),r=()=>m({type:`DISMISS_TOAST`,toastId:t});return m({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||r()}}}),{id:t,dismiss:r,update:n}}function g(){let e=(0,r.c)(5),[t,n]=i.useState(p),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>(f.push(n),()=>{let e=f.indexOf(n);e>-1&&f.splice(e,1)}),e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),i.useEffect(a,o);let s;return e[3]===t?s=e[4]:(s={...t,toast:h,dismiss:_},e[3]=t,e[4]=s),s}function _(e){return m({type:`DISMISS_TOAST`,toastId:e})}export{g as n,h as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Mi as t}from"./dialogs-config-DiFQjCeA.js";var n=e(t(),1),r=(e,t,n,r,i,a,o,s)=>{let c=document.documentElement,l=[`light`,`dark`];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n=e===`class`,r=n&&a?i.map(e=>a[e]||e):i;n?(c.classList.remove(...r),c.classList.add(a&&a[t]?a[t]:t)):c.setAttribute(e,t)}),d(t)}function d(e){s&&l.includes(e)&&(c.style.colorScheme=e)}function f(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}if(r)u(r);else try{let e=localStorage.getItem(t)||n;u(o&&e===`system`?f():e)}catch{}},i=[`light`,`dark`],a=`(prefers-color-scheme: dark)`,o=typeof window>`u`,s=n.createContext(void 0),c={setTheme:e=>{},themes:[]},l=()=>n.useContext(s)??c,u=e=>n.useContext(s)?n.createElement(n.Fragment,null,e.children):n.createElement(f,{...e}),d=[`light`,`dark`],f=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:r=!0,enableColorScheme:o=!0,storageKey:c=`theme`,themes:l=d,defaultTheme:u=r?`system`:`light`,attribute:f=`data-theme`,value:_,children:v,nonce:y,scriptProps:b})=>{let[x,S]=n.useState(()=>m(c,u)),[C,w]=n.useState(()=>x===`system`?g():x),T=_?Object.values(_):l,E=n.useCallback(e=>{let n=e;if(!n)return;e===`system`&&r&&(n=g());let a=_?_[n]:n,s=t?h(y):null,c=document.documentElement,l=e=>{e===`class`?(c.classList.remove(...T),a&&c.classList.add(a)):e.startsWith(`data-`)&&(a?c.setAttribute(e,a):c.removeAttribute(e))};if(Array.isArray(f)?f.forEach(l):l(f),o){let e=i.includes(u)?u:null,t=i.includes(n)?n:e;c.style.colorScheme=t}s?.()},[y]),D=n.useCallback(e=>{let t=typeof e==`function`?e(x):e;S(t);try{localStorage.setItem(c,t)}catch{}},[x]),O=n.useCallback(t=>{w(g(t)),x===`system`&&r&&!e&&E(`system`)},[x,e]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(O),O(e),()=>e.removeListener(O)},[O]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?S(e.newValue):D(u))};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[D]),n.useEffect(()=>{E(e??x)},[e,x]);let k=n.useMemo(()=>({theme:x,setTheme:D,forcedTheme:e,resolvedTheme:x===`system`?C:x,themes:r?[...l,`system`]:l,systemTheme:r?C:void 0}),[x,D,e,C,r,l]);return n.createElement(s.Provider,{value:k},n.createElement(p,{forcedTheme:e,storageKey:c,attribute:f,enableSystem:r,enableColorScheme:o,defaultTheme:u,value:_,themes:l,nonce:y,scriptProps:b}),v)},p=n.memo(({forcedTheme:e,storageKey:t,attribute:i,enableSystem:a,enableColorScheme:o,defaultTheme:s,value:c,themes:l,nonce:u,scriptProps:d})=>{let f=JSON.stringify([i,t,s,e,l,c,a,o]).slice(1,-1);return n.createElement(`script`,{...d,suppressHydrationWarning:!0,nonce:typeof window>`u`?u:``,dangerouslySetInnerHTML:{__html:`(${r.toString()})(${f})`}})}),m=(e,t)=>{if(o)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},h=e=>{let t=document.createElement(`style`);return e&&t.setAttribute(`nonce`,e),t.appendChild(document.createTextNode(`*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},g=e=>(e||=window.matchMedia(a),e.matches?`dark`:`light`);export{l as n,u as t};
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Fi as t}from"./dialogs-config-CdogKQE6.js";var n=e(t(),1),r=(e,t,n,r,i,a,o,s)=>{let c=document.documentElement,l=[`light`,`dark`];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n=e===`class`,r=n&&a?i.map(e=>a[e]||e):i;n?(c.classList.remove(...r),c.classList.add(a&&a[t]?a[t]:t)):c.setAttribute(e,t)}),d(t)}function d(e){s&&l.includes(e)&&(c.style.colorScheme=e)}function f(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}if(r)u(r);else try{let e=localStorage.getItem(t)||n;u(o&&e===`system`?f():e)}catch{}},i=[`light`,`dark`],a=`(prefers-color-scheme: dark)`,o=typeof window>`u`,s=n.createContext(void 0),c={setTheme:e=>{},themes:[]},l=()=>n.useContext(s)??c,u=e=>n.useContext(s)?n.createElement(n.Fragment,null,e.children):n.createElement(f,{...e}),d=[`light`,`dark`],f=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:r=!0,enableColorScheme:o=!0,storageKey:c=`theme`,themes:l=d,defaultTheme:u=r?`system`:`light`,attribute:f=`data-theme`,value:_,children:v,nonce:y,scriptProps:b})=>{let[x,S]=n.useState(()=>m(c,u)),[C,w]=n.useState(()=>x===`system`?g():x),T=_?Object.values(_):l,E=n.useCallback(e=>{let n=e;if(!n)return;e===`system`&&r&&(n=g());let a=_?_[n]:n,s=t?h(y):null,c=document.documentElement,l=e=>{e===`class`?(c.classList.remove(...T),a&&c.classList.add(a)):e.startsWith(`data-`)&&(a?c.setAttribute(e,a):c.removeAttribute(e))};if(Array.isArray(f)?f.forEach(l):l(f),o){let e=i.includes(u)?u:null,t=i.includes(n)?n:e;c.style.colorScheme=t}s?.()},[y]),D=n.useCallback(e=>{let t=typeof e==`function`?e(x):e;S(t);try{localStorage.setItem(c,t)}catch{}},[x]),O=n.useCallback(t=>{w(g(t)),x===`system`&&r&&!e&&E(`system`)},[x,e]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(O),O(e),()=>e.removeListener(O)},[O]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?S(e.newValue):D(u))};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[D]),n.useEffect(()=>{E(e??x)},[e,x]);let k=n.useMemo(()=>({theme:x,setTheme:D,forcedTheme:e,resolvedTheme:x===`system`?C:x,themes:r?[...l,`system`]:l,systemTheme:r?C:void 0}),[x,D,e,C,r,l]);return n.createElement(s.Provider,{value:k},n.createElement(p,{forcedTheme:e,storageKey:c,attribute:f,enableSystem:r,enableColorScheme:o,defaultTheme:u,value:_,themes:l,nonce:y,scriptProps:b}),v)},p=n.memo(({forcedTheme:e,storageKey:t,attribute:i,enableSystem:a,enableColorScheme:o,defaultTheme:s,value:c,themes:l,nonce:u,scriptProps:d})=>{let f=JSON.stringify([i,t,s,e,l,c,a,o]).slice(1,-1);return n.createElement(`script`,{...d,suppressHydrationWarning:!0,nonce:typeof window>`u`?u:``,dangerouslySetInnerHTML:{__html:`(${r.toString()})(${f})`}})}),m=(e,t)=>{if(o)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},h=e=>{let t=document.createElement(`style`);return e&&t.setAttribute(`nonce`,e),t.appendChild(document.createTextNode(`*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},g=e=>(e||=window.matchMedia(a),e.matches?`dark`:`light`);export{l as n,u as t};
@@ -19,17 +19,17 @@
19
19
  <meta name="apple-mobile-web-app-title" content="Tarsk" />
20
20
 
21
21
  <title>Tarsk</title>
22
- <script type="module" crossorigin src="/assets/index-C-p81QYw.js"></script>
22
+ <script type="module" crossorigin src="/assets/index-BR4u03pf.js"></script>
23
23
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dw2cE7zH.js">
24
- <link rel="modulepreload" crossorigin href="/assets/dialogs-config-DiFQjCeA.js">
25
- <link rel="modulepreload" crossorigin href="/assets/history-view-B8HM78Wa.js">
26
- <link rel="modulepreload" crossorigin href="/assets/monaco-DvsnxTfD.js">
27
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-DkKo9QGO.js">
28
- <link rel="modulepreload" crossorigin href="/assets/onboarding-CvpvkF3X.js">
29
- <link rel="modulepreload" crossorigin href="/assets/use-toast-DEJkXPN4.js">
30
- <link rel="modulepreload" crossorigin href="/assets/store-BVVGurzl.js">
31
- <link rel="modulepreload" crossorigin href="/assets/utils-DY_quHB8.js">
32
- <link rel="stylesheet" crossorigin href="/assets/index-DhVMb7D6.css">
24
+ <link rel="modulepreload" crossorigin href="/assets/dialogs-config-CdogKQE6.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/history-view-DtTMEZIl.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/monaco-DKN4dKR5.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-BNQTbRKd.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/onboarding-gO0dp5Em.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/use-toast-DCmq-wgl.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/store-CB5vVIg-.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/utils-B7eoN2Bj.js">
32
+ <link rel="stylesheet" crossorigin href="/assets/index-LCD_R39p.css">
33
33
  </head>
34
34
  <body class="font-sans antialiased">
35
35
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "description": "CLI for Tarsk - Project Threads Manager",
5
5
  "keywords": [
6
6
  "cli",
@@ -1,7 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,Jn as n,Lr as r,Mi as i,Vt as a,Wn as o,Zn as s,c,l,vi as u}from"./dialogs-config-DiFQjCeA.js";import{i as d,r as f}from"./react-vendor-DkKo9QGO.js";import"./history-view-B8HM78Wa.js";import{t as p}from"./use-toast-DEJkXPN4.js";import{d as m}from"./index-C-p81QYw.js";import{n as h,t as g}from"./radio-group-BItFbSTw.js";var _=t(),v=e(i(),1),y=n(),b=v.forwardRef((e,t)=>{let n=(0,_.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,y.jsx)(d,{className:s(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let c;return n[6]!==i||n[7]!==t||n[8]!==a?(c=(0,y.jsx)(f,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=c):c=n[9],c});b.displayName=f.displayName;function x({threadId:e,onRuleCreated:t}){let[n,i]=(0,v.useState)(``),[s,d]=(0,v.useState)(``),[f,_]=(0,v.useState)(!1),[x,S]=(0,v.useState)(`local`),[C,w]=(0,v.useState)(!1),T=n.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),E=T.length>0&&T.length<=64;return e?(0,y.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,y.jsxs)(`div`,{className:`mb-6`,children:[(0,y.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Rule`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new agent rule. The rule will be saved as a .md file in the .agents/rules folder.`})]}),(0,y.jsxs)(`div`,{className:`space-y-6`,children:[(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{htmlFor:`ruleName`,children:`Rule Name`}),(0,y.jsx)(c,{id:`ruleName`,value:n,onChange:e=>i(e.target.value),placeholder:`e.g. Code Style Guide`,disabled:C}),n&&(0,y.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`File name: `,(0,y.jsxs)(`span`,{className:`font-mono`,children:[T||`...`,`.md`]})]})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{htmlFor:`ruleDescription`,children:`Description`}),(0,y.jsx)(m,{id:`ruleDescription`,value:s,onChange:e=>d(e.target.value),placeholder:`Describe when Tarsk should apply this rule...`,className:`resize-none min-h-[120px]`,disabled:C})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,y.jsx)(l,{htmlFor:`alwaysApply`,children:`Always Apply`}),(0,y.jsx)(b,{id:`alwaysApply`,checked:f,onCheckedChange:_,disabled:C})]}),(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f?`This rule will be automatically added to context for all conversations.`:`Only the rule description will be added to context, allowing the agent to read the rule file when needed.`})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{children:`Scope`}),(0,y.jsxs)(g,{value:x,onValueChange:e=>S(e),className:`flex gap-4`,disabled:C,children:[(0,y.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,y.jsx)(h,{value:`local`,id:`scope-local`}),(0,y.jsx)(l,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,y.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,y.jsx)(h,{value:`global`,id:`scope-global`,disabled:!0}),(0,y.jsx)(l,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:x===`local`?`This rule will only be available for this project.`:`This rule will be available across all projects (coming soon).`})]}),(0,y.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,y.jsx)(o,{onClick:async()=>{if(!(!E||!e)){w(!0);try{let n=`---
2
- description: ${s.trim()}
3
- alwaysApply: ${f}
4
- ---
5
-
6
- Place your rule instructions here as markdown.
7
- `;await a(e,`.agents/rules/${T}.md`,n),p({title:`Rule created`,description:`Rule '${T}' was created successfully.`}),i(``),d(``),_(!1),S(`local`),t?.(T)}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to create rule`,variant:`destructive`})}finally{w(!1)}}},disabled:!E||!s.trim()||C,children:C?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(r,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,y.jsxs)(y.Fragment,{children:[`Continue`,(0,y.jsx)(u,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,y.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,y.jsxs)(`div`,{className:`text-center`,children:[(0,y.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add a rule.`})]})})}export{x as default};
@@ -1 +0,0 @@
1
- import"./dialogs-config-DiFQjCeA.js";import{t as e}from"./history-view-B8HM78Wa.js";export{e as ConversationHistoryView,e as default};
@@ -1,3 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,Dr as n,Er as r,Fr as i,Jn as a,K as o,Lr as s,Mi as c,Pr as l,Qr as u,Wn as d,Xr as f,Y as p,Yr as m,Zn as h,dn as g,gt as _,jr as v,ln as ee,nn as y,on as b,sn as x,tt as S,un as C,vi as w,yi as T}from"./dialogs-config-DiFQjCeA.js";import{n as E}from"./react-vendor-DkKo9QGO.js";import{a as D,t as O}from"./store-BVVGurzl.js";import{c as k,s as A,u as j}from"./history-view-B8HM78Wa.js";import{n as M}from"./utils-DY_quHB8.js";import"./onboarding-CvpvkF3X.js";import{d as N,f as P,g as te,h as F,i as ne,m as re,n as I,p as ie,r as ae}from"./index-C-p81QYw.js";import"./monaco-DvsnxTfD.js";var L=t(),R=e(c(),1),z=a();function oe(e){let t=[],n={};return e.forEach((e,r)=>{let i=e.path.split(`/`),a=t,o=``;for(let e=0;e<i.length-1;e++){if(o=o?`${o}/${i[e]}`:i[e],!n[o]){let t={id:`dir:${o}`,name:i[e],children:[]};n[o]=t,a.push(t)}a=n[o].children}a.push({id:`file:${e.path}`,name:i[i.length-1],fileIndex:r,status:e.status})}),t}var B={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},V={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function se(e){return h(`status-badge font-mono text-xs font-semibold`,B[e]??`text-orange-500`)}function H(e){return V[e]??`M`}function ce(e){let t=(0,L.c)(20),{treeData:n,files:r,isLoading:i,error:a,selectedFileIndex:o,onFileSelect:c,onExit:l}=e;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,z.jsx)(`div`,{className:`flex-1 flex items-center justify-center pt-3 pb-2`,children:(0,z.jsx)(s,{className:`h-6 w-6 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0];let n;return t[1]===l?n=t[2]:(n=(0,z.jsx)(F,{onTitleClose:l,subtitle:`Review Changes`,children:e}),t[1]=l,t[2]=n),n}if(a){let e;t[3]===a?e=t[4]:(e=(0,z.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,z.jsx)(`p`,{className:`text-destructive text-xs text-center`,children:a})}),t[3]=a,t[4]=e);let n;return t[5]!==l||t[6]!==e?(n=(0,z.jsx)(F,{onTitleClose:l,subtitle:`Review Changes`,children:e}),t[5]=l,t[6]=e,t[7]=n):n=t[7],n}if(r.length===0){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,z.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,z.jsx)(`p`,{className:`text-muted-foreground text-xs text-center`,children:`No changes to review`})}),t[8]=e):e=t[8];let n;return t[9]===l?n=t[10]:(n=(0,z.jsx)(F,{onTitleClose:l,subtitle:`Review Changes`,children:e}),t[9]=l,t[10]=n),n}let d;t[11]!==c||t[12]!==o?(d=(e,t)=>{let{isOpen:n,toggle:r}=t,i=!!e.children;return(0,z.jsxs)(re,{onClick:()=>{i?r():e.fileIndex!==void 0&&c(e.fileIndex)},selected:!i&&e.fileIndex===o,className:`gap-1.5`,children:[i?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(w,{className:h(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,n&&`rotate-90`)}),n?(0,z.jsx)(f,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,z.jsx)(m,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,z.jsx)(u,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate flex-1 min-w-0`,children:e.name}),!i&&e.status&&(0,z.jsx)(`span`,{className:se(e.status),children:H(e.status)})]})},t[11]=c,t[12]=o,t[13]=d):d=t[13];let p;t[14]!==d||t[15]!==n?(p=(0,z.jsx)(`div`,{className:`flex-1 overflow-y-auto pt-3 pb-2 px-1`,children:(0,z.jsx)(te,{nodes:n,defaultOpen:!0,resetKey:n,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:d})}),t[14]=d,t[15]=n,t[16]=p):p=t[16];let g;return t[17]!==l||t[18]!==p?(g=(0,z.jsx)(F,{onTitleClose:l,subtitle:`Review Changes`,children:p}),t[17]=l,t[18]=p,t[19]=g):g=t[19],g}function le(e){let t=(0,L.c)(2),{isOpen:n}=e,r=n===void 0||n?`ml-[-40px]`:``,i;return t[0]===r?i=t[1]:(i=(0,z.jsx)(I,{withHandle:!0,className:r}),t[0]=r,t[1]=i),i}function ue(e){let t=(0,L.c)(35),{open:n,lineNumber:r,lineContent:i,initialComment:a,isEditing:o,onSave:s,onDelete:c,onClose:l}=e,[u,f]=(0,R.useState)((a===void 0?``:a)??``),p;t[0]!==s||t[1]!==u?(p=()=>{u.trim()&&s(u.trim())},t[0]=s,t[1]=u,t[2]=p):p=t[2];let m=p,h;t[3]===m?h=t[4]:(h=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),m())},t[3]=m,t[4]=h);let _=h,v;t[5]===l?v=t[6]:(v=e=>{e||l()},t[5]=l,t[6]=v);let y;t[7]===r?y=t[8]:(y=(0,z.jsx)(C,{children:(0,z.jsxs)(g,{className:`text-sm font-medium`,children:[`Comment on line `,r]})}),t[7]=r,t[8]=y);let S=i||` `,w;t[9]===S?w=t[10]:(w=(0,z.jsx)(`div`,{className:`rounded bg-muted px-3 py-2 font-mono text-xs text-muted-foreground overflow-x-auto whitespace-pre`,children:S}),t[9]=S,t[10]=w);let T;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>f(e.target.value),t[11]=T):T=t[11];let E;t[12]!==_||t[13]!==u?(E=(0,z.jsx)(N,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:u,onChange:T,onKeyDown:_,rows:12,className:`resize-none text-sm`}),t[12]=_,t[13]=u,t[14]=E):E=t[14];let D;t[15]!==o||t[16]!==c?(D=o&&c&&(0,z.jsx)(d,{variant:`destructive`,size:`sm`,onClick:c,className:`mr-auto`,children:`Delete`}),t[15]=o,t[16]=c,t[17]=D):D=t[17];let O;t[18]===u?O=t[19]:(O=u.trim(),t[18]=u,t[19]=O);let k=!O,A;t[20]!==m||t[21]!==k?(A=(0,z.jsx)(d,{size:`sm`,onClick:m,disabled:k,children:`Save`}),t[20]=m,t[21]=k,t[22]=A):A=t[22];let j;t[23]!==D||t[24]!==A?(j=(0,z.jsxs)(ee,{className:`gap-2 sm:gap-0`,children:[D,A]}),t[23]=D,t[24]=A,t[25]=j):j=t[25];let M;t[26]!==j||t[27]!==y||t[28]!==w||t[29]!==E?(M=(0,z.jsxs)(x,{className:`max-w-2xl`,children:[y,w,E,j]}),t[26]=j,t[27]=y,t[28]=w,t[29]=E,t[30]=M):M=t[30];let P;return t[31]!==n||t[32]!==M||t[33]!==v?(P=(0,z.jsx)(b,{open:n,onOpenChange:v,children:M}),t[31]=n,t[32]=M,t[33]=v,t[34]=P):P=t[34],P}function U({threadId:e,onExit:t}){let{state:a,dispatch:s}=D(),{resolvedTheme:c}=M(),[u,f]=(0,R.useState)([]),[m,g]=(0,R.useState)(!0),[ee,b]=(0,R.useState)(null),[x,C]=(0,R.useState)(0),[N,te]=(0,R.useState)(!1),[F,re]=(0,R.useState)(!1),I=(0,R.useRef)(null),L=(0,R.useMemo)(()=>a.diffComments[e]??[],[a.diffComments,e]),B=(0,R.useCallback)(t=>{let n=a.diffComments[e]??[],r=typeof t==`function`?t(n):t;s({type:O.SetDiffComments,threadId:e,comments:r})},[s,e,a.diffComments]),[V,se]=(0,R.useState)(null),[H,U]=(0,R.useState)(null),[W,G]=(0,R.useState)(null),K=(0,R.useRef)(null),de=(0,R.useRef)(L),fe=(0,R.useRef)(V),pe=(0,R.useRef)({isFullView:N,selectedFileIndex:x,files:u}),q=(0,R.useRef)({original:[],modified:[]}),me=(0,R.useRef)(!0);(0,R.useEffect)(()=>{de.current=L},[L]),(0,R.useEffect)(()=>{fe.current=V},[V]),(0,R.useEffect)(()=>{pe.current={isFullView:N,selectedFileIndex:x,files:u}},[N,x,u]);let he=(0,R.useCallback)(()=>{I.current&&(F?I.current.expand():I.current.collapse())},[F]),ge=(0,R.useCallback)(async()=>{if(e){g(!0),b(null);try{f((await S(e)).files||[]),C(0)}catch(e){b(e instanceof Error?e.message:`Failed to load diff`)}finally{g(!1)}}},[e]);(0,R.useEffect)(()=>{ge()},[ge]);let J=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if((a.diffComments[e]??[]).length>0){J.current=!0;return}_(e).then(t=>{t.diffComments&&t.diffComments.length>0&&s({type:O.SetDiffComments,threadId:e,comments:t.diffComments}),J.current=!0}).catch(()=>{J.current=!0})},[e]),(0,R.useEffect)(()=>{J.current&&y(e,{diffComments:L}).catch(()=>{})},[e,L]);let _e=(0,R.useMemo)(()=>oe(u),[u]),Y=e=>{if(e.hunks.length===0)return null;let t=1/0,n=0;return e.hunks.forEach(e=>{let r=Math.min(e.oldStart,e.newStart),i=e.oldStart+e.oldLines,a=e.newStart+e.newLines,o=Math.max(i,a);t=Math.min(t,r),n=Math.max(n,o)}),t===1/0?null:{startLine:Math.max(1,t-2),endLine:n+2}},ve=(e,t,n)=>e.split(`
2
- `).slice(t-1,n).join(`
3
- `),ye=e=>{let t=Y(e);return t?t.startLine<=1:!0},be=e=>({ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,swift:`swift`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`})[e.split(`.`).pop()??``]||`plaintext`,X=(0,R.useMemo)(()=>u.map(e=>{let t=0,n=0;return e.hunks.forEach(e=>{e.changes.forEach(e=>{e.type===`add`&&t++,e.type===`delete`&&n++})}),{additions:t,deletions:n}}),[u]),Z=u[x],xe=Z?N?Z.oldContent:(()=>{let e=Y(Z);return e?ve(Z.oldContent,e.startLine,e.endLine):Z.oldContent})():``,Se=Z?N?Z.newContent:(()=>{let e=Y(Z);return e?ve(Z.newContent,e.startLine,e.endLine):Z.newContent})():``,Ce=(0,R.useMemo)(()=>X.reduce((e,t)=>e+t.additions,0),[X]),we=(0,R.useMemo)(()=>X.reduce((e,t)=>e+t.deletions,0),[X]),Q=(0,R.useCallback)(()=>{if(!me.current)return;let e=K.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=pe.current,i=de.current,a=fe.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:Y(o),c=i.filter(e=>e.fileIndex===n&&e.side===r).map(e=>{let t=s?e.lineNumber-s.startLine+1:e.lineNumber;if(t<1)return null;let n=i.indexOf(e)===a;return{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:n?`diff-comment-active-line`:`diff-comment-marked-line`,glyphMarginHoverMessage:{value:e.comment}}}}).filter(e=>e!==null),l=r===`original`?q.current.original:q.current.modified,u=e.deltaDecorations(l,c);r===`original`?q.current.original=u:q.current.modified=u};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},[]);(0,R.useEffect)(()=>{Q()},[Q,L,V,x,N,Z]),(0,R.useEffect)(()=>()=>{K.current=null,q.current={original:[],modified:[]}},[x]),(0,R.useEffect)(()=>()=>{me.current=!1,K.current=null,q.current={original:[],modified:[]}},[]);let Te=(0,R.useCallback)(e=>{K.current=e;let t=(e,t)=>{e.onMouseDown(n=>{if(!n.target?.position)return;let r=n.target.position.lineNumber,{isFullView:i,selectedFileIndex:a,files:o}=pe.current,s=o[a];if(!s)return;let c=i?null:Y(s),l=c?c.startLine+r-1:r,u=e.getModel()?.getLineContent(r)??``,d=de.current.find(e=>e.fileIndex===a&&e.lineNumber===l&&e.side===t);d?G(d):U({lineNumber:l,lineContent:u,side:t})})};t(e.getOriginalEditor(),`original`),t(e.getModifiedEditor(),`modified`),setTimeout(()=>{K.current===e&&Q()},150)},[Q]),Ee=(0,R.useCallback)(e=>{if(H&&Z){let t={id:`comment-${Date.now()}`,filePath:Z.path,fileIndex:x,lineNumber:H.lineNumber,lineContent:H.lineContent,comment:e,side:H.side};B(e=>[...e,t]),U(null)}else W&&(B(t=>t.map(t=>t.id===W.id?{...t,comment:e}:t)),G(null))},[H,W,Z,x,B]),De=(0,R.useCallback)(()=>{W&&(B(e=>e.filter(e=>e.id!==W.id)),G(null))},[W,B]),$=(0,R.useCallback)(e=>{if(L.length===0)return;let t=(e%L.length+L.length)%L.length,n=L[t];se(t),C(n.fileIndex),setTimeout(()=>{let e=K.current;if(!e)return;let t=u[n.fileIndex];if(!t)return;let r=N?null:Y(t),i=r?n.lineNumber-r.startLine+1:n.lineNumber;(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,i)),Q()},100)},[L,u,N,Q]),Oe=(0,R.useCallback)(()=>{$((V??0)-1)},[$,V]),ke=(0,R.useCallback)(()=>{$((V??-1)+1)},[$,V]),Ae=(0,R.useCallback)(async()=>{let n=a.projectModelSelections[e];if(!n)try{let e=await p(),t=Object.values(e).flat();if(t.length>0)n=t[0];else{console.error(`No models available to process comments`);return}}catch(e){console.error(`Failed to load models:`,e);return}let r=n.id,i=n.provider;try{let{prompt:n}=await o(e,L);B([]),s({type:O.SetPendingChatMessage,message:{threadId:e,message:n,model:r,provider:i}}),t()}catch(e){console.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}},[L,a.projectModelSelections,s,e,t,B]),je={readOnly:!0,renderSideBySide:!0,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,lineNumbers:Z&&(N||ye(Z))?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0,theme:c===`dark`?`vs-dark`:`vs-light`};return(0,z.jsxs)(`div`,{className:`diff-view-root flex h-full flex-col`,children:[(0,z.jsx)(`div`,{className:`diff-body flex flex-1 overflow-hidden`,children:(0,z.jsxs)(ne,{direction:`horizontal`,children:[(0,z.jsx)(ae,{ref:I,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:()=>re(!0),onExpand:()=>re(!1),className:`border-r border-transparent mr-[40px]`,children:(0,z.jsx)(`div`,{className:`h-full overflow-hidden`,children:(0,z.jsx)(ce,{treeData:_e,files:u,isLoading:m,error:ee,selectedFileIndex:x,onFileSelect:C,onExit:t})})}),(0,z.jsx)(le,{isOpen:!F}),(0,z.jsx)(ae,{minSize:40,className:`overflow-hidden bg-transparent ml-[-40px]`,children:(0,z.jsxs)(`div`,{className:`diff-editor-panel flex h-full bg-transparent flex-col overflow-hidden`,children:[(0,z.jsxs)(P,{className:h(`bg-transparent`,F&&`h-auto py-3 flex-col items-start gap-3 md:flex-row md:items-center md:h-[71px] md:py-0 md:gap-2 justify-between`),children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsxs)(d,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:he,children:[F?(0,z.jsx)(r,{className:`h-4 w-4`}):(0,z.jsx)(n,{className:`h-4 w-4`}),(0,z.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`})]}),(0,z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,z.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:Z?Z.path:`Review Changes`}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[u.length,` file`,u.length===1?``:`s`]}),(0,z.jsxs)(`span`,{className:`text-xs text-green-500`,children:[`+`,Ce]}),(0,z.jsxs)(`span`,{className:`text-xs text-red-500`,children:[`-`,we]})]})]})]}),(0,z.jsxs)(`div`,{className:h(`flex items-center gap-2`,F&&`ml-0`,!F&&`ml-auto`,`md:ml-auto`),children:[(0,z.jsx)(d,{variant:`ghost`,size:`sm`,onClick:()=>te(e=>!e),disabled:!Z,className:`h-8 gap-1 px-2 text-xs`,children:N?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(v,{className:`h-3 w-3`}),` Show changes only`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(i,{className:`h-3 w-3`}),` Show full file`]})}),L.length>0&&(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsxs)(A,{children:[(0,z.jsx)(j,{asChild:!0,children:(0,z.jsx)(d,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:Oe,disabled:(V??0)===0,children:(0,z.jsx)(T,{className:`h-3 w-3`})})}),(0,z.jsx)(k,{children:`Previous comment`})]}),(0,z.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap`,children:L.length===1?`1 Comment`:`Comment ${(V??0)+1} of ${L.length}`}),(0,z.jsxs)(A,{children:[(0,z.jsx)(j,{asChild:!0,children:(0,z.jsx)(d,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:ke,disabled:(V??0)===L.length-1,children:(0,z.jsx)(w,{className:`h-3 w-3`})})}),(0,z.jsx)(k,{children:`Next comment`})]})]}),L.length>0&&(0,z.jsxs)(A,{children:[(0,z.jsx)(j,{asChild:!0,children:(0,z.jsxs)(d,{size:`sm`,onClick:Ae,className:`h-8 gap-1 px-3 text-xs bg-foreground text-background hover:bg-foreground/90`,children:[(0,z.jsx)(l,{className:`h-3 w-3`}),`Fix all comments`]})}),(0,z.jsx)(k,{children:`Send all comments to Tarsk for resolution`})]})]})]}),(0,z.jsxs)(`div`,{className:`flex-1 bg-transparent ml-[40px] relative`,children:[(0,z.jsx)(E,{height:`100%`,language:be(Z?.path||``),original:xe,modified:Se,onMount:Te,options:je},`diff-${x}`),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0`,children:(0,z.jsx)(ie,{})})]})]})})]})}),(0,z.jsx)(ue,{open:H!==null||W!==null,lineNumber:W?.lineNumber??H?.lineNumber??0,lineContent:W?.lineContent??H?.lineContent??``,initialComment:W?.comment,isEditing:W!==null,onSave:Ee,onDelete:De,onClose:()=>{U(null),G(null)}},`${W?.id??``}-${H?.lineNumber??``}-${H?.side??``}`)]})}export{U as DiffView,U as default};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,H as n,Jn as r,Lr as i,Mi as a,Qr as o,Si as s,Sr as c,Wn as l,Xr as u,Yr as d,bi as f,ur as p,vi as m,vt as h}from"./dialogs-config-DiFQjCeA.js";import{X as g}from"./react-vendor-DkKo9QGO.js";import{c as _,l as v,s as y,u as b}from"./history-view-B8HM78Wa.js";import{t as x}from"./use-toast-DEJkXPN4.js";import{a as S,c as C,l as w,m as T,o as E,s as D,u as O}from"./index-C-p81QYw.js";var k=e(a(),1),A=t(),j=r();function M(e){let t=(0,A.c)(19),{open:r,onOpenChange:i,folderName:a,folderPath:o,threadId:s,onDeleteComplete:c}=e,l;t[0]!==a||t[1]!==o||t[2]!==c||t[3]!==i||t[4]!==s?(l=async()=>{try{await n(s,o),c(o),i(!1),x({title:`Success`,description:`Folder "${a}" deleted.`})}catch(e){let t=e;x({title:`Error`,description:t instanceof Error?t.message:`Failed to delete folder`,variant:`destructive`})}},t[0]=a,t[1]=o,t[2]=c,t[3]=i,t[4]=s,t[5]=l):l=t[5];let u=l,d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,j.jsx)(O,{children:`Delete Folder`}),t[6]=d):d=t[6];let f;t[7]===a?f=t[8]:(f=(0,j.jsxs)(w,{children:[`Are you sure you want to delete "`,a,`" and all files inside it? This action cannot be undone.`]}),t[7]=a,t[8]=f);let p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,j.jsx)(D,{children:`Cancel`}),t[9]=p):p=t[9];let m;t[10]===u?m=t[11]:(m=(0,j.jsxs)(`div`,{className:`flex gap-3 justify-end`,children:[p,(0,j.jsx)(E,{onClick:u,className:`bg-red-600 hover:bg-red-700`,children:`Delete`})]}),t[10]=u,t[11]=m);let h;t[12]!==f||t[13]!==m?(h=(0,j.jsxs)(C,{children:[d,f,m]}),t[12]=f,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==i||t[16]!==r||t[17]!==h?(g=(0,j.jsx)(S,{open:r,onOpenChange:i,children:h}),t[15]=i,t[16]=r,t[17]=h,t[18]=g):g=t[18],g}function N(e){let t=(0,A.c)(76),{node:n,selectedPath:r,level:i,openFolders:a,onToggleFolder:h,onSelectFile:g,onAddSkill:x,onAddRule:S,onAddCommand:C,onAddAgent:w,onDeleteFolder:E,onDeleteFile:D,threadId:O}=e,P;t[0]!==n.id||t[1]!==a?(P=a.has(n.id),t[0]=n.id,t[1]=a,t[2]=P):P=t[2];let F=P,I=r===n.path,[L,R]=(0,k.useState)(!1),z=n.path===`.agents/skills`,B=n.path===`.agents/rules`,V=n.path===`.agents/commands`,H=n.path===`.agents/agents`;if(n.type===`folder`){let e;t[3]!==n.id||t[4]!==h?(e=e=>{e.stopPropagation(),h(n.id)},t[3]=n.id,t[4]=h,t[5]=e):e=t[5];let o,s;t[6]===F?(o=t[7],s=t[8]):(o=(0,j.jsx)(`span`,{className:`text-muted-foreground w-3 flex-shrink-0`,children:F?(0,j.jsx)(f,{className:`h-3 w-3`}):(0,j.jsx)(m,{className:`h-3 w-3`})}),s=F?(0,j.jsx)(u,{className:`h-4 w-4 flex-shrink-0`}):(0,j.jsx)(d,{className:`h-4 w-4 flex-shrink-0`}),t[6]=F,t[7]=o,t[8]=s);let k=`flex-1 truncate ${n.virtual?`text-muted-foreground italic`:``}`,A;t[9]!==n.name||t[10]!==k?(A=(0,j.jsx)(`span`,{className:k,children:n.name}),t[9]=n.name,t[10]=k,t[11]=A):A=t[11];let P;t[12]!==H||t[13]!==V||t[14]!==B||t[15]!==z||t[16]!==w||t[17]!==C||t[18]!==S||t[19]!==x?(P=(z||B||V||H)&&(0,j.jsx)(v,{children:(0,j.jsxs)(y,{children:[(0,j.jsx)(b,{asChild:!0,children:(0,j.jsx)(l,{variant:`action`,size:`icon-sm`,className:`shrink-0 opacity-0 group-hover:opacity-100`,onClick:e=>{e.stopPropagation(),z?x():B?S():V?C():H&&w()},children:(0,j.jsx)(c,{})})}),(0,j.jsx)(_,{children:z?`Add skill`:B?`Add rule`:V?`Add command`:`Add agent`})]})}),t[12]=H,t[13]=V,t[14]=B,t[15]=z,t[16]=w,t[17]=C,t[18]=S,t[19]=x,t[20]=P):P=t[20];let I;t[21]!==H||t[22]!==V||t[23]!==B||t[24]!==z?(I=!z&&!B&&!V&&!H&&(0,j.jsx)(v,{children:(0,j.jsxs)(y,{children:[(0,j.jsx)(b,{asChild:!0,children:(0,j.jsx)(l,{variant:`action`,size:`icon-sm`,className:`shrink-0 opacity-0 group-hover:opacity-100`,onClick:e=>{e.stopPropagation(),R(!0)},children:(0,j.jsx)(p,{})})}),(0,j.jsx)(_,{children:`Delete folder`})]})}),t[21]=H,t[22]=V,t[23]=B,t[24]=z,t[25]=I):I=t[25];let U;t[26]!==i||t[27]!==e||t[28]!==o||t[29]!==s||t[30]!==A||t[31]!==P||t[32]!==I?(U=(0,j.jsxs)(T,{level:i,basePadding:10,onClick:e,children:[o,s,A,P,I]}),t[26]=i,t[27]=e,t[28]=o,t[29]=s,t[30]=A,t[31]=P,t[32]=I,t[33]=U):U=t[33];let W;t[34]!==F||t[35]!==i||t[36]!==n.children||t[37]!==w||t[38]!==C||t[39]!==S||t[40]!==x||t[41]!==D||t[42]!==E||t[43]!==g||t[44]!==h||t[45]!==a||t[46]!==r||t[47]!==O?(W=F&&n.children&&(0,j.jsx)(`div`,{className:`ml-8 border-l border-sidebar-border`,children:n.children.map(e=>(0,j.jsx)(N,{node:e,selectedPath:r,level:i+1,openFolders:a,onToggleFolder:h,onSelectFile:g,onAddSkill:x,onAddRule:S,onAddCommand:C,onAddAgent:w,onDeleteFolder:E,onDeleteFile:D,threadId:O},e.id))}),t[34]=F,t[35]=i,t[36]=n.children,t[37]=w,t[38]=C,t[39]=S,t[40]=x,t[41]=D,t[42]=E,t[43]=g,t[44]=h,t[45]=a,t[46]=r,t[47]=O,t[48]=W):W=t[48];let G;t[49]!==n.name||t[50]!==n.path||t[51]!==E||t[52]!==L||t[53]!==O?(G=(0,j.jsx)(M,{open:L,onOpenChange:R,folderName:n.name,folderPath:n.path,threadId:O,onDeleteComplete:E}),t[49]=n.name,t[50]=n.path,t[51]=E,t[52]=L,t[53]=O,t[54]=G):G=t[54];let K;return t[55]!==W||t[56]!==G||t[57]!==U?(K=(0,j.jsxs)(`div`,{children:[U,W,G]}),t[55]=W,t[56]=G,t[57]=U,t[58]=K):K=t[58],K}let U;t[59]!==n||t[60]!==g?(U=e=>{e.stopPropagation(),g(n)},t[59]=n,t[60]=g,t[61]=U):U=t[61];let W;t[62]===n.path?W=t[63]:(W=n.path===`AGENTS.md`?(0,j.jsx)(s,{className:`h-4 w-4 flex-shrink-0`}):(0,j.jsx)(o,{className:`h-4 w-4 flex-shrink-0`}),t[62]=n.path,t[63]=W);let G=n.path===`AGENTS.md`?`Instructions`:n.name,K;t[64]===G?K=t[65]:(K=(0,j.jsx)(`span`,{className:`flex-1 truncate`,children:G}),t[64]=G,t[65]=K);let q;t[66]!==n||t[67]!==D?(q=n.path.endsWith(`.md`)&&(0,j.jsx)(v,{children:(0,j.jsxs)(y,{children:[(0,j.jsx)(b,{asChild:!0,children:(0,j.jsx)(l,{variant:`action`,size:`icon-sm`,className:`shrink-0 opacity-0 group-hover:opacity-100`,onClick:e=>{e.stopPropagation(),D(n)},children:(0,j.jsx)(p,{})})}),(0,j.jsx)(_,{children:`Delete file`})]})}),t[66]=n,t[67]=D,t[68]=q):q=t[68];let J;return t[69]!==I||t[70]!==i||t[71]!==U||t[72]!==W||t[73]!==K||t[74]!==q?(J=(0,j.jsxs)(T,{level:i,basePadding:22,selected:I,onClick:U,children:[W,K,q]}),t[69]=I,t[70]=i,t[71]=U,t[72]=W,t[73]=K,t[74]=q,t[75]=J):J=t[75],J}function P({threadId:e,selectedPath:t,onFileSelect:r,className:a,expandPath:o,onAddSkill:s,onAddCommand:c,onAddRule:l,onAddAgent:u}){let d=g(),[f,p]=(0,k.useState)([]),[m,_]=(0,k.useState)(!1),[v,y]=(0,k.useState)(new Set),[b,S]=(0,k.useState)(!1),C=(0,k.useCallback)(async()=>{if(e){_(!0);try{p(await h(e)),y(new Set),S(!0)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to load files`,variant:`destructive`})}finally{_(!1)}}},[e]);(0,k.useEffect)(()=>{C()},[C]),(0,k.useEffect)(()=>{!b||!o||!f.length||y(e=>{let t=new Set(e),n=o.substring(0,o.lastIndexOf(`/`));if(n){let e=n.split(`/`),r=``;for(let n of e){r=r?`${r}/${n}`:n;let e=f.find(e=>e.path===r&&e.type===`folder`);e&&t.add(e.id)}}return t})},[o,b,f]);let w=(0,k.useCallback)(e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),T=(0,k.useCallback)(()=>{s?s():d(`/settings/add-skill`)},[d,s]),E=(0,k.useCallback)(()=>{l?l():d(`/settings/add-rule?threadId=${e}`,{replace:!0})},[d,e,l]),D=(0,k.useCallback)(()=>{c?c():d(`/settings/add-command`)},[d,c]),O=(0,k.useCallback)(()=>{u?u():d(`/settings/add-agent`)},[d,u]),A=(0,k.useCallback)(e=>{C()},[C]),M=(0,k.useCallback)(async t=>{try{await n(e,t.path),x({title:`File deleted`,description:`${t.path===`AGENTS.md`?`Instructions`:t.name} has been deleted successfully.`}),C()}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to delete file`,variant:`destructive`})}},[e,C]);return(0,j.jsx)(j.Fragment,{children:(0,j.jsx)(`div`,{className:`h-full overflow-y-auto py-2 ${a}`,children:m?(0,j.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,j.jsx)(i,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):f.map(n=>(0,j.jsx)(N,{node:n,selectedPath:t,level:0,openFolders:v,onToggleFolder:w,onSelectFile:r,onAddSkill:T,onAddRule:E,onAddCommand:D,onAddAgent:O,onDeleteFolder:A,onDeleteFile:M,threadId:e},n.id))})})}export{P as default};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{$ as t,Ai as n,An as r,Bn as i,Cn as a,Dn as o,En as s,Fn as c,Hn as l,In as u,Jn as d,Ln as f,Mi as p,Mn as m,Nn as h,On as g,Pn as _,Rn as v,Sn as y,Tn as b,Un as x,Wn as S,Xn as C,Zn as w,_i as T,a as E,bi as D,fi as O,i as k,ir as A,ji as j,m as M,o as N,s as P,si as ee,vi as te,wn as ne,xi as re,yi as ie,zn as F}from"./dialogs-config-DiFQjCeA.js";var ae=[`top`,`right`,`bottom`,`left`],I=Math.min,L=Math.max,oe=Math.round,se=Math.floor,R=e=>({x:e,y:e}),ce={left:`right`,right:`left`,bottom:`top`,top:`bottom`},le={start:`end`,end:`start`};function ue(e,t,n){return L(e,I(t,n))}function z(e,t){return typeof e==`function`?e(t):e}function B(e){return e.split(`-`)[0]}function de(e){return e.split(`-`)[1]}function fe(e){return e===`x`?`y`:`x`}function pe(e){return e===`y`?`height`:`width`}var me=new Set([`top`,`bottom`]);function V(e){return me.has(B(e))?`y`:`x`}function he(e){return fe(V(e))}function ge(e,t,n){n===void 0&&(n=!1);let r=de(e),i=he(e),a=pe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Te(o)),[o,Te(o)]}function _e(e){let t=Te(e);return[ve(e),t,ve(t)]}function ve(e){return e.replace(/start|end/g,e=>le[e])}var ye=[`left`,`right`],be=[`right`,`left`],xe=[`top`,`bottom`],Se=[`bottom`,`top`];function Ce(e,t,n){switch(e){case`top`:case`bottom`:return n?t?be:ye:t?ye:be;case`left`:case`right`:return t?xe:Se;default:return[]}}function we(e,t,n,r){let i=de(e),a=Ce(B(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ve)))),a}function Te(e){return e.replace(/left|right|bottom|top/g,e=>ce[e])}function Ee(e){return{top:0,right:0,bottom:0,left:0,...e}}function De(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Ee(e)}function Oe(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ke(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=he(t),s=pe(o),c=B(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(de(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Ae(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=z(t,e),p=De(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Oe(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Oe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var je=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=a.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ke(l,r,c),f=r,p={},m=0;for(let n=0;n<s.length;n++){let{name:a,fn:h}=s[n],{x:g,y:_,data:v,reset:y}=await h({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:p,rects:l,platform:{...o,detectOverflow:o.detectOverflow??Ae},elements:{reference:e,floating:t}});u=g??u,d=_??d,p={...p,[a]:{...p[a],...v}},y&&m<=50&&(m++,typeof y==`object`&&(y.placement&&(f=y.placement),y.rects&&(l=y.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):y.rects),{x:u,y:d}=ke(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:p}},Me=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=z(e,t)||{};if(l==null)return{};let d=De(u),f={x:n,y:r},p=he(i),m=pe(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=I(d[_],T),D=I(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=ue(O,A,k),M=!c.arrow&&de(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,N=M?A<O?A-O:A-k:0;return{[p]:f[p]+N,data:{[p]:j,centerOffset:A-j-N,...M&&{alignmentOffset:N}},reset:M}}}),Ne=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=B(r),_=V(o),v=B(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Te(o)]:_e(o)),x=p!==`none`;!d&&x&&b.push(...we(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ge(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==V(t))||T.every(e=>V(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=V(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Pe(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Fe(e){return ae.some(t=>e[t]>=0)}var Ie=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=z(e,t);switch(i){case`referenceHidden`:{let e=Pe(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Fe(e)}}}case`escaped`:{let e=Pe(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Fe(e)}}}default:return{}}}}},Le=new Set([`left`,`top`]);async function Re(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=B(n),s=de(n),c=V(n)===`y`,l=Le.has(o)?-1:1,u=a&&c?-1:1,d=z(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var ze=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Re(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Be=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=z(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=V(B(i)),p=fe(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=ue(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=ue(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ve=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=z(e,t),u={x:n,y:r},d=V(i),f=fe(d),p=u[f],m=u[d],h=z(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Le.has(B(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},He=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=z(e,t),u=await o.detectOverflow(t,l),d=B(i),f=de(i),p=V(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=I(h-u[g],v),x=I(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=L(u.left,0),t=L(u.right,0),n=L(u.top,0),r=L(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:L(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:L(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function Ue(){return typeof window<`u`}function We(e){return Ge(e)?(e.nodeName||``).toLowerCase():`#document`}function H(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function U(e){return((Ge(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ge(e){return Ue()?e instanceof Node||e instanceof H(e).Node:!1}function W(e){return Ue()?e instanceof Element||e instanceof H(e).Element:!1}function G(e){return Ue()?e instanceof HTMLElement||e instanceof H(e).HTMLElement:!1}function Ke(e){return!Ue()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof H(e).ShadowRoot}var qe=new Set([`inline`,`contents`]);function Je(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=K(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!qe.has(i)}var Ye=new Set([`table`,`td`,`th`]);function Xe(e){return Ye.has(We(e))}var Ze=[`:popover-open`,`:modal`];function Qe(e){return Ze.some(t=>{try{return e.matches(t)}catch{return!1}})}var $e=[`transform`,`translate`,`scale`,`rotate`,`perspective`],et=[`transform`,`translate`,`scale`,`rotate`,`perspective`,`filter`],tt=[`paint`,`layout`,`strict`,`content`];function nt(e){let t=it(),n=W(e)?K(e):e;return $e.some(e=>n[e]?n[e]!==`none`:!1)||(n.containerType?n.containerType!==`normal`:!1)||!t&&(n.backdropFilter?n.backdropFilter!==`none`:!1)||!t&&(n.filter?n.filter!==`none`:!1)||et.some(e=>(n.willChange||``).includes(e))||tt.some(e=>(n.contain||``).includes(e))}function rt(e){let t=q(e);for(;G(t)&&!ot(t);){if(nt(t))return t;if(Qe(t))return null;t=q(t)}return null}function it(){return typeof CSS>`u`||!CSS.supports?!1:CSS.supports(`-webkit-backdrop-filter`,`none`)}var at=new Set([`html`,`body`,`#document`]);function ot(e){return at.has(We(e))}function K(e){return H(e).getComputedStyle(e)}function st(e){return W(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function q(e){if(We(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Ke(e)&&e.host||U(e);return Ke(t)?t.host:t}function ct(e){let t=q(e);return ot(t)?e.ownerDocument?e.ownerDocument.body:e.body:G(t)&&Je(t)?t:ct(t)}function lt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=ct(e),i=r===e.ownerDocument?.body,a=H(r);if(i){let e=ut(a);return t.concat(a,a.visualViewport||[],Je(r)?r:[],e&&n?lt(e):[])}return t.concat(r,lt(r,[],n))}function ut(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function dt(e){let t=K(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=G(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=oe(n)!==a||oe(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ft(e){return W(e)?e:e.contextElement}function pt(e){let t=ft(e);if(!G(t))return R(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=dt(t),o=(a?oe(n.width):n.width)/r,s=(a?oe(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var mt=R(0);function ht(e){let t=H(e);return!it()||!t.visualViewport?mt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function gt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==H(e)?!1:t}function _t(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ft(e),o=R(1);t&&(r?W(r)&&(o=pt(r)):o=pt(e));let s=gt(a,n,r)?ht(a):R(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=H(a),t=r&&W(r)?H(r):r,n=e,i=ut(n);for(;i&&r&&t!==n;){let e=pt(i),t=i.getBoundingClientRect(),r=K(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=H(i),i=ut(n)}}return Oe({width:u,height:d,x:c,y:l})}function vt(e,t){let n=st(e).scrollLeft;return t?t.left+n:_t(U(e)).left+n}function yt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-vt(e,n),y:n.top+t.scrollTop}}function bt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=U(r),s=t?Qe(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=R(1),u=R(0),d=G(r);if((d||!d&&!a)&&((We(r)!==`body`||Je(o))&&(c=st(r)),G(r))){let e=_t(r);l=pt(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?yt(o,c):R(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function xt(e){return Array.from(e.getClientRects())}function St(e){let t=U(e),n=st(e),r=e.ownerDocument.body,i=L(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=L(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+vt(e),s=-n.scrollTop;return K(r).direction===`rtl`&&(o+=L(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Ct=25;function wt(e,t){let n=H(e),r=U(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=it();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=vt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Ct&&(a-=o)}else l<=Ct&&(a+=l);return{width:a,height:o,x:s,y:c}}var Tt=new Set([`absolute`,`fixed`]);function Et(e,t){let n=_t(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=G(e)?pt(e):R(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Dt(e,t,n){let r;if(t===`viewport`)r=wt(e,n);else if(t===`document`)r=St(U(e));else if(W(t))r=Et(t,n);else{let n=ht(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Oe(r)}function Ot(e,t){let n=q(e);return n===t||!W(n)||ot(n)?!1:K(n).position===`fixed`||Ot(n,t)}function kt(e,t){let n=t.get(e);if(n)return n;let r=lt(e,[],!1).filter(e=>W(e)&&We(e)!==`body`),i=null,a=K(e).position===`fixed`,o=a?q(e):e;for(;W(o)&&!ot(o);){let t=K(o),n=nt(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&Tt.has(i.position)||Je(o)&&!n&&Ot(e,o))?r=r.filter(e=>e!==o):i=t,o=q(o)}return t.set(e,r),r}function At(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Qe(t)?[]:kt(t,this._c):[].concat(n),r],o=a[0],s=a.reduce((e,n)=>{let r=Dt(t,n,i);return e.top=L(r.top,e.top),e.right=I(r.right,e.right),e.bottom=I(r.bottom,e.bottom),e.left=L(r.left,e.left),e},Dt(t,o,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function jt(e){let{width:t,height:n}=dt(e);return{width:t,height:n}}function Mt(e,t,n){let r=G(t),i=U(t),a=n===`fixed`,o=_t(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=R(0);function l(){c.x=vt(i)}if(r||!r&&!a)if((We(t)!==`body`||Je(i))&&(s=st(t)),r){let e=_t(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?yt(i,s):R(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function Nt(e){return K(e).position===`static`}function Pt(e,t){if(!G(e)||K(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return U(e)===n&&(n=n.ownerDocument.body),n}function Ft(e,t){let n=H(e);if(Qe(e))return n;if(!G(e)){let t=q(e);for(;t&&!ot(t);){if(W(t)&&!Nt(t))return t;t=q(t)}return n}let r=Pt(e,t);for(;r&&Xe(r)&&Nt(r);)r=Pt(r,t);return r&&ot(r)&&Nt(r)&&!nt(r)?n:r||rt(e)||n}var It=async function(e){let t=this.getOffsetParent||Ft,n=this.getDimensions,r=await n(e.floating);return{reference:Mt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Lt(e){return K(e).direction===`rtl`}var Rt={convertOffsetParentRelativeRectToViewportRelativeRect:bt,getDocumentElement:U,getClippingRect:At,getOffsetParent:Ft,getElementRects:It,getClientRects:xt,getDimensions:jt,getScale:pt,isElement:W,isRTL:Lt};function zt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Bt(e,t){let n=null,r,i=U(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=se(d),h=se(i.clientWidth-(u+f)),g=se(i.clientHeight-(d+p)),_=se(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:L(0,I(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!zt(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function Vt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ft(e),u=i||a?[...l?lt(l):[],...lt(t)]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Bt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),p.observe(t));let m,h=c?_t(e):null;c&&g();function g(){let t=_t(e);h&&!zt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ht=ze,Ut=Be,Wt=Ne,Gt=He,Kt=Ie,qt=Me,Jt=Ve,Yt=(e,t,n)=>{let r=new Map,i={platform:Rt,...n},a={...i.platform,_c:r};return je(e,t,{...i,platform:a})},J=e(p(),1),Xt=e(j(),1),Zt=typeof document<`u`?J.useLayoutEffect:function(){};function Qt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Qt(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Qt(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function $t(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function en(e,t){let n=$t(e);return Math.round(t*n)/n}function tn(e){let t=J.useRef(e);return Zt(()=>{t.current=e}),t}function nn(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=J.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=J.useState(r);Qt(f,r)||p(r);let[m,h]=J.useState(null),[g,_]=J.useState(null),v=J.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=J.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=J.useRef(null),C=J.useRef(null),w=J.useRef(u),T=c!=null,E=tn(c),D=tn(i),O=tn(l),k=J.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),Yt(S.current,C.current,e).then(e=>{let t={...e,isPositioned:O.current!==!1};A.current&&!Qt(w.current,t)&&(w.current=t,Xt.flushSync(()=>{d(t)}))})},[f,t,n,D,O]);Zt(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=J.useRef(!1);Zt(()=>(A.current=!0,()=>{A.current=!1}),[]),Zt(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,k);k()}},[b,x,k,E,T]);let j=J.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),M=J.useMemo(()=>({reference:b,floating:x}),[b,x]),N=J.useMemo(()=>{let e={position:n,left:0,top:0};if(!M.floating)return e;let t=en(M.floating,u.x),r=en(M.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...$t(M.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,M.floating,u.x,u.y]);return J.useMemo(()=>({...u,update:k,refs:j,elements:M,floatingStyles:N}),[u,k,j,M,N])}var rn=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:qt({element:r.current,padding:i}).fn(n):r?qt({element:r,padding:i}).fn(n):{}}}},an=(e,t)=>({...Ht(e),options:[e,t]}),on=(e,t)=>({...Ut(e),options:[e,t]}),sn=(e,t)=>({...Jt(e),options:[e,t]}),cn=(e,t)=>({...Wt(e),options:[e,t]}),ln=(e,t)=>({...Gt(e),options:[e,t]}),un=(e,t)=>({...Kt(e),options:[e,t]}),dn=(e,t)=>({...rn(e),options:[e,t]}),Y=d(),fn=`Arrow`,pn=J.forwardRef((e,t)=>{let{children:n,width:r=10,height:a=5,...o}=e;return(0,Y.jsx)(i.svg,{...o,ref:t,width:r,height:a,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,Y.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});pn.displayName=fn;var mn=pn;function hn(e){let[t,n]=J.useState(void 0);return F(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var gn=`Popper`,[_n,vn]=f(gn),[yn,bn]=_n(gn),xn=e=>{let{__scopePopper:t,children:n}=e,[r,i]=J.useState(null);return(0,Y.jsx)(yn,{scope:t,anchor:r,onAnchorChange:i,children:n})};xn.displayName=gn;var Sn=`PopperAnchor`,Cn=J.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...a}=e,o=bn(Sn,n),s=J.useRef(null),c=C(t,s),l=J.useRef(null);return J.useEffect(()=>{let e=l.current;l.current=r?.current||s.current,e!==l.current&&o.onAnchorChange(l.current)}),r?null:(0,Y.jsx)(i.div,{...a,ref:c})});Cn.displayName=Sn;var wn=`PopperContent`,[Tn,En]=_n(wn),Dn=J.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:a=0,align:o=`center`,alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:p=`partial`,hideWhenDetached:m=!1,updatePositionStrategy:h=`optimized`,onPlaced:g,..._}=e,v=bn(wn,n),[y,b]=J.useState(null),x=C(t,e=>b(e)),[S,w]=J.useState(null),T=hn(S),E=T?.width??0,D=T?.height??0,O=r+(o===`center`?``:`-`+o),k=typeof f==`number`?f:{top:0,right:0,bottom:0,left:0,...f},A=Array.isArray(d)?d:[d],j=A.length>0,M={padding:k,boundary:A.filter(jn),altBoundary:j},{refs:N,floatingStyles:P,placement:ee,isPositioned:te,middlewareData:ne}=nn({strategy:`fixed`,placement:O,whileElementsMounted:(...e)=>Vt(...e,{animationFrame:h===`always`}),elements:{reference:v.anchor},middleware:[an({mainAxis:a+D,alignmentAxis:s}),l&&on({mainAxis:!0,crossAxis:!1,limiter:p===`partial`?sn():void 0,...M}),l&&cn({...M}),ln({...M,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),S&&dn({element:S,padding:c}),Mn({arrowWidth:E,arrowHeight:D}),m&&un({strategy:`referenceHidden`,...M})]}),[re,ie]=Nn(ee),ae=u(g);F(()=>{te&&ae?.()},[te,ae]);let I=ne.arrow?.x,L=ne.arrow?.y,oe=ne.arrow?.centerOffset!==0,[se,R]=J.useState();return F(()=>{y&&R(window.getComputedStyle(y).zIndex)},[y]),(0,Y.jsx)(`div`,{ref:N.setFloating,"data-radix-popper-content-wrapper":``,style:{...P,transform:te?P.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:se,"--radix-popper-transform-origin":[ne.transformOrigin?.x,ne.transformOrigin?.y].join(` `),...ne.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,Y.jsx)(Tn,{scope:n,placedSide:re,onArrowChange:w,arrowX:I,arrowY:L,shouldHideArrow:oe,children:(0,Y.jsx)(i.div,{"data-side":re,"data-align":ie,..._,ref:x,style:{..._.style,animation:te?void 0:`none`}})})})});Dn.displayName=wn;var On=`PopperArrow`,kn={top:`bottom`,right:`left`,bottom:`top`,left:`right`},An=J.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=En(On,n),a=kn[i.placedSide];return(0,Y.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,Y.jsx)(mn,{...r,ref:t,style:{...r.style,display:`block`}})})});An.displayName=On;function jn(e){return e!==null}var Mn=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Nn(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function Nn(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var Pn=xn,Fn=Cn,In=Dn,Ln=An,Rn=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),zn=`VisuallyHidden`,Bn=J.forwardRef((e,t)=>(0,Y.jsx)(i.span,{...e,ref:t,style:{...Rn,...e.style}}));Bn.displayName=zn;var Vn=Bn,[Hn,Un]=f(`Tooltip`,[vn]),Wn=vn(),Gn=`TooltipProvider`,Kn=700,qn=`tooltip.open`,[Jn,Yn]=Hn(Gn),Xn=e=>{let{__scopeTooltip:t,delayDuration:n=Kn,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=J.useRef(!0),s=J.useRef(!1),c=J.useRef(0);return J.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,Y.jsx)(Jn,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:J.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:J.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:J.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Xn.displayName=Gn;var Zn=`Tooltip`,[Qn,$n]=Hn(Zn),er=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:c}=e,l=Yn(Zn,e.__scopeTooltip),u=Wn(t),[d,f]=J.useState(null),p=g(),m=J.useRef(0),h=o??l.disableHoverableContent,_=c??l.delayDuration,v=J.useRef(!1),[y,b]=s({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(qn))):l.onClose(),a?.(e)},caller:Zn}),x=J.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=J.useCallback(()=>{window.clearTimeout(m.current),m.current=0,v.current=!1,b(!0)},[b]),C=J.useCallback(()=>{window.clearTimeout(m.current),m.current=0,b(!1)},[b]),w=J.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{v.current=!0,b(!0),m.current=0},_)},[_,b]);return J.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,Y.jsx)(Pn,{...u,children:(0,Y.jsx)(Qn,{scope:t,contentId:p,open:y,stateAttribute:x,trigger:d,onTriggerChange:f,onTriggerEnter:J.useCallback(()=>{l.isOpenDelayedRef.current?w():S()},[l.isOpenDelayedRef,w,S]),onTriggerLeave:J.useCallback(()=>{h?C():(window.clearTimeout(m.current),m.current=0)},[C,h]),onOpen:S,onClose:C,disableHoverableContent:h,children:n})})};er.displayName=Zn;var tr=`TooltipTrigger`,nr=J.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=$n(tr,n),o=Yn(tr,n),s=Wn(n),c=C(t,J.useRef(null),a.onTriggerChange),l=J.useRef(!1),u=J.useRef(!1),d=J.useCallback(()=>l.current=!1,[]);return J.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,Y.jsx)(Fn,{asChild:!0,...s,children:(0,Y.jsx)(i.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:h(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:h(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:h(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:h(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:h(e.onBlur,a.onClose),onClick:h(e.onClick,a.onClose)})})});nr.displayName=tr;var rr=`TooltipPortal`,[ir,ar]=Hn(rr,{forceMount:void 0}),or=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=$n(rr,t);return(0,Y.jsx)(ir,{scope:t,forceMount:n,children:(0,Y.jsx)(v,{present:n||a.open,children:(0,Y.jsx)(o,{asChild:!0,container:i,children:r})})})};or.displayName=rr;var sr=`TooltipContent`,cr=J.forwardRef((e,t)=>{let n=ar(sr,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=$n(sr,e.__scopeTooltip);return(0,Y.jsx)(v,{present:r||o.open,children:o.disableHoverableContent?(0,Y.jsx)(pr,{side:i,...a,ref:t}):(0,Y.jsx)(lr,{side:i,...a,ref:t})})}),lr=J.forwardRef((e,t)=>{let n=$n(sr,e.__scopeTooltip),r=Yn(sr,e.__scopeTooltip),i=J.useRef(null),a=C(t,i),[o,s]=J.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=J.useCallback(()=>{s(null),d(!1)},[d]),p=J.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=_r(r,gr(r,n.getBoundingClientRect())),a=vr(t.getBoundingClientRect());s(br([...i,...a])),d(!0)},[d]);return J.useEffect(()=>()=>f(),[f]),J.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),J.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!yr(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,Y.jsx)(pr,{...e,ref:a})}),[ur,dr]=Hn(Zn,{isInside:!1}),fr=x(`TooltipContent`),pr=J.forwardRef((e,t)=>{let{__scopeTooltip:n,children:i,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=$n(sr,n),u=Wn(n),{onClose:d}=l;return J.useEffect(()=>(document.addEventListener(qn,d),()=>document.removeEventListener(qn,d)),[d]),J.useEffect(()=>{if(l.trigger){let e=e=>{e.target?.contains(l.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]),(0,Y.jsx)(r,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,Y.jsxs)(In,{"data-state":l.stateAttribute,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,Y.jsx)(fr,{children:i}),(0,Y.jsx)(ur,{scope:n,isInside:!0,children:(0,Y.jsx)(Vn,{id:l.contentId,role:`tooltip`,children:a||i})})]})})});cr.displayName=sr;var mr=`TooltipArrow`,hr=J.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Wn(n);return dr(mr,n).isInside?null:(0,Y.jsx)(Ln,{...i,...r,ref:t})});hr.displayName=mr;function gr(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function _r(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function vr(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function yr(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function br(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),xr(t)}function xr(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Sr=Xn,Cr=er,wr=nr,Tr=cr,X=n(),Er=Sr,Dr=Cr,Or=wr,kr=J.forwardRef((e,t)=>{let n=(0,X.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,sideOffset:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?4:a,s;n[4]===r?s=n[5]:(s=w(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[4]=r,n[5]=s);let c;return n[6]!==i||n[7]!==t||n[8]!==o||n[9]!==s?(c=(0,Y.jsx)(Tr,{ref:t,sideOffset:o,className:s,...i}),n[6]=i,n[7]=t,n[8]=o,n[9]=s,n[10]=c):c=n[10],c});kr.displayName=Tr.displayName;function Ar(e){let t=J.useRef({value:e,previous:e});return J.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var jr=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`w-full caption-bottom text-sm`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,Y.jsx)(`table`,{ref:t,className:a,...i})}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});jr.displayName=`Table`;var Mr=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`[&_tr]:border-b`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`thead`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Mr.displayName=`TableHeader`;var Nr=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`[&_tr:last-child]:border-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`tbody`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Nr.displayName=`TableBody`;var Pr=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`border-t bg-muted/50 font-medium [&>tr]:last:border-b-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`tfoot`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Pr.displayName=`TableFooter`;var Fr=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`tr`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Fr.displayName=`TableRow`;var Z=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`th`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Z.displayName=`TableHead`;var Q=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`td`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Q.displayName=`TableCell`;var Ir=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`mt-4 text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(`caption`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ir.displayName=`TableCaption`;var Lr=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Rr=[` `,`Enter`],zr=`Select`,[Br,Vr,Hr]=M(zr),[Ur,Wr]=f(zr,[Hr,vn]),Gr=vn(),[Kr,qr]=Ur(zr),[Jr,Yr]=Ur(zr),Xr=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:l,onValueChange:u,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:_}=e,v=Gr(t),[y,b]=J.useState(null),[x,S]=J.useState(null),[C,w]=J.useState(!1),T=c(d),[E,D]=s({prop:r,defaultProp:i??!1,onChange:a,caller:zr}),[O,k]=s({prop:o,defaultProp:l,onChange:u,caller:zr}),A=J.useRef(null),j=y?_||!!y.closest(`form`):!0,[M,N]=J.useState(new Set),P=Array.from(M).map(e=>e.props.value).join(`;`);return(0,Y.jsx)(Pn,{...v,children:(0,Y.jsxs)(Kr,{required:h,scope:t,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:g(),value:O,onValueChange:k,open:E,onOpenChange:D,dir:T,triggerPointerDownPosRef:A,disabled:m,children:[(0,Y.jsx)(Br.Provider,{scope:t,children:(0,Y.jsx)(Jr,{scope:e.__scopeSelect,onNativeOptionAdd:J.useCallback(e=>{N(t=>new Set(t).add(e))},[]),onNativeOptionRemove:J.useCallback(e=>{N(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),j?(0,Y.jsxs)(Wi,{"aria-hidden":!0,required:h,tabIndex:-1,name:f,autoComplete:p,value:O,onChange:e=>k(e.target.value),disabled:m,form:_,children:[O===void 0?(0,Y.jsx)(`option`,{value:``}):null,Array.from(M)]},P):null]})})};Xr.displayName=zr;var Zr=`SelectTrigger`,Qr=J.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...a}=e,o=Gr(n),s=qr(Zr,n),c=s.disabled||r,l=C(t,s.onTriggerChange),u=Vr(n),d=J.useRef(`touch`),[f,p,m]=Ki(e=>{let t=u().filter(e=>!e.disabled),n=qi(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=e=>{c||(s.onOpenChange(!0),m()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,Y.jsx)(Fn,{asChild:!0,...o,children:(0,Y.jsx)(i.button,{type:`button`,role:`combobox`,"aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":Gi(s.value)?``:void 0,...a,ref:l,onClick:h(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:h(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:h(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&Lr.includes(e.key)&&(g(),e.preventDefault())})})})});Qr.displayName=Zr;var $r=`SelectValue`,ei=J.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,children:o,placeholder:s=``,...c}=e,l=qr($r,n),{onValueNodeHasChildrenChange:u}=l,d=o!==void 0,f=C(t,l.onValueNodeChange);return F(()=>{u(d)},[u,d]),(0,Y.jsx)(i.span,{...c,ref:f,style:{pointerEvents:`none`},children:Gi(l.value)?(0,Y.jsx)(Y.Fragment,{children:s}):o})});ei.displayName=$r;var ti=`SelectIcon`,ni=J.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...a}=e;return(0,Y.jsx)(i.span,{"aria-hidden":!0,...a,ref:t,children:r||`▼`})});ni.displayName=ti;var ri=`SelectPortal`,ii=e=>(0,Y.jsx)(o,{asChild:!0,...e});ii.displayName=ri;var ai=`SelectContent`,oi=J.forwardRef((e,t)=>{let n=qr(ai,e.__scopeSelect),[r,i]=J.useState();if(F(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?Xt.createPortal((0,Y.jsx)(si,{scope:e.__scopeSelect,children:(0,Y.jsx)(Br.Slot,{scope:e.__scopeSelect,children:(0,Y.jsx)(`div`,{children:e.children})})}),t):null}return(0,Y.jsx)(di,{...e,ref:t})});oi.displayName=ai;var $=10,[si,ci]=Ur(ai),li=`SelectContentImpl`,ui=l(`SelectContent.RemoveScroll`),di=J.forwardRef((e,t)=>{let{__scopeSelect:n,position:i=`item-aligned`,onCloseAutoFocus:o,onEscapeKeyDown:s,onPointerDownOutside:c,side:l,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:g,sticky:_,hideWhenDetached:v,avoidCollisions:x,...S}=e,w=qr(ai,n),[T,E]=J.useState(null),[D,O]=J.useState(null),k=C(t,e=>E(e)),[A,j]=J.useState(null),[M,N]=J.useState(null),P=Vr(n),[ee,te]=J.useState(!1),re=J.useRef(!1);J.useEffect(()=>{if(T)return a(T)},[T]),b();let ie=J.useCallback(e=>{let[t,...n]=P().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&D&&(D.scrollTop=0),n===r&&D&&(D.scrollTop=D.scrollHeight),n?.focus(),document.activeElement!==i))return},[P,D]),F=J.useCallback(()=>ie([A,T]),[ie,A,T]);J.useEffect(()=>{ee&&F()},[ee,F]);let{onOpenChange:ae,triggerPointerDownPosRef:I}=w;J.useEffect(()=>{if(T){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(I.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(I.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():T.contains(n.target)||ae(!1),document.removeEventListener(`pointermove`,t),I.current=null};return I.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[T,ae,I]),J.useEffect(()=>{let e=()=>ae(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[ae]);let[L,oe]=Ki(e=>{let t=P().filter(e=>!e.disabled),n=qi(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),se=J.useCallback((e,t,n)=>{let r=!re.current&&!n;(w.value!==void 0&&w.value===t||r)&&(j(e),r&&(re.current=!0))},[w.value]),R=J.useCallback(()=>T?.focus(),[T]),ce=J.useCallback((e,t,n)=>{let r=!re.current&&!n;(w.value!==void 0&&w.value===t||r)&&N(e)},[w.value]),le=i===`popper`?hi:pi,ue=le===hi?{side:l,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:g,sticky:_,hideWhenDetached:v,avoidCollisions:x}:{};return(0,Y.jsx)(si,{scope:n,content:T,viewport:D,onViewportChange:O,itemRefCallback:se,selectedItem:A,onItemLeave:R,itemTextRefCallback:ce,focusSelectedItem:F,selectedItemText:M,position:i,isPositioned:ee,searchRef:L,children:(0,Y.jsx)(y,{as:ui,allowPinchZoom:!0,children:(0,Y.jsx)(ne,{asChild:!0,trapped:w.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:h(o,e=>{w.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,Y.jsx)(r,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>w.onOpenChange(!1),children:(0,Y.jsx)(le,{role:`listbox`,id:w.contentId,"data-state":w.open?`open`:`closed`,dir:w.dir,onContextMenu:e=>e.preventDefault(),...S,...ue,onPlaced:()=>te(!0),ref:k,style:{display:`flex`,flexDirection:`column`,outline:`none`,...S.style},onKeyDown:h(S.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&oe(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=P().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>ie(t)),e.preventDefault()}})})})})})})});di.displayName=li;var fi=`SelectItemAlignedPosition`,pi=J.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...a}=e,o=qr(ai,n),s=ci(ai,n),[c,l]=J.useState(null),[u,d]=J.useState(null),f=C(t,e=>d(e)),p=Vr(n),m=J.useRef(!1),h=J.useRef(!0),{viewport:g,selectedItem:v,selectedItemText:y,focusSelectedItem:b}=s,x=J.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&u&&g&&v&&y){let e=o.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=y.getBoundingClientRect();if(o.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-$,d=_(a,[$,Math.max($,u-l)]);c.style.minWidth=s+`px`,c.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-$,d=_(a,[$,Math.max($,u-l)]);c.style.minWidth=s+`px`,c.style.right=d+`px`}let a=p(),s=window.innerHeight-$*2,l=g.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),b=parseInt(d.borderBottomWidth,10),x=parseInt(d.paddingBottom,10),S=f+h+l+x+b,C=Math.min(v.offsetHeight*5,S),w=window.getComputedStyle(g),T=parseInt(w.paddingTop,10),E=parseInt(w.paddingBottom,10),D=e.top+e.height/2-$,O=s-D,k=v.offsetHeight/2,A=v.offsetTop+k,j=f+h+A,M=S-j;if(j<=D){let e=a.length>0&&v===a[a.length-1].ref.current;c.style.bottom=`0px`;let t=u.clientHeight-g.offsetTop-g.offsetHeight,n=j+Math.max(O,k+(e?E:0)+t+b);c.style.height=n+`px`}else{let e=a.length>0&&v===a[0].ref.current;c.style.top=`0px`;let t=Math.max(D,f+g.offsetTop+(e?T:0)+k)+M;c.style.height=t+`px`,g.scrollTop=j-D+g.offsetTop}c.style.margin=`${$}px 0`,c.style.minHeight=C+`px`,c.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,o.trigger,o.valueNode,c,u,g,v,y,o.dir,r]);F(()=>x(),[x]);let[S,w]=J.useState();return F(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]),(0,Y.jsx)(gi,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:J.useCallback(e=>{e&&h.current===!0&&(x(),b?.(),h.current=!1)},[x,b]),children:(0,Y.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,Y.jsx)(i.div,{...a,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})});pi.displayName=fi;var mi=`SelectPopperPosition`,hi=J.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=$,...a}=e,o=Gr(n);return(0,Y.jsx)(In,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});hi.displayName=mi;var[gi,_i]=Ur(ai,{}),vi=`SelectViewport`,yi=J.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...a}=e,o=ci(vi,n),s=_i(vi,n),c=C(t,o.onViewportChange),l=J.useRef(0);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,Y.jsx)(Br.Slot,{scope:n,children:(0,Y.jsx)(i.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:h(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-$*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});yi.displayName=vi;var bi=`SelectGroup`,[xi,Si]=Ur(bi),Ci=J.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=g();return(0,Y.jsx)(xi,{scope:n,id:a,children:(0,Y.jsx)(i.div,{role:`group`,"aria-labelledby":a,...r,ref:t})})});Ci.displayName=bi;var wi=`SelectLabel`,Ti=J.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=Si(wi,n);return(0,Y.jsx)(i.div,{id:a.id,...r,ref:t})});Ti.displayName=wi;var Ei=`SelectItem`,[Di,Oi]=Ur(Ei),ki=J.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...s}=e,c=qr(Ei,n),l=ci(Ei,n),u=c.value===r,[d,f]=J.useState(o??``),[p,m]=J.useState(!1),_=C(t,e=>l.itemRefCallback?.(e,r,a)),v=g(),y=J.useRef(`touch`),b=()=>{a||(c.onValueChange(r),c.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,Y.jsx)(Di,{scope:n,value:r,disabled:a,textId:v,isSelected:u,onItemTextChange:J.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,Y.jsx)(Br.ItemSlot,{scope:n,value:r,disabled:a,textValue:d,children:(0,Y.jsx)(i.div,{role:`option`,"aria-labelledby":v,"data-highlighted":p?``:void 0,"aria-selected":u&&p,"data-state":u?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...s,ref:_,onFocus:h(s.onFocus,()=>m(!0)),onBlur:h(s.onBlur,()=>m(!1)),onClick:h(s.onClick,()=>{y.current!==`mouse`&&b()}),onPointerUp:h(s.onPointerUp,()=>{y.current===`mouse`&&b()}),onPointerDown:h(s.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:h(s.onPointerMove,e=>{y.current=e.pointerType,a?l.onItemLeave?.():y.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:h(s.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:h(s.onKeyDown,e=>{l.searchRef?.current!==``&&e.key===` `||(Rr.includes(e.key)&&b(),e.key===` `&&e.preventDefault())})})})})});ki.displayName=Ei;var Ai=`SelectItemText`,ji=J.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,...o}=e,s=qr(Ai,n),c=ci(Ai,n),l=Oi(Ai,n),u=Yr(Ai,n),[d,f]=J.useState(null),p=C(t,e=>f(e),l.onItemTextChange,e=>c.itemTextRefCallback?.(e,l.value,l.disabled)),m=d?.textContent,h=J.useMemo(()=>(0,Y.jsx)(`option`,{value:l.value,disabled:l.disabled,children:m},l.value),[l.disabled,l.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=u;return F(()=>(g(h),()=>_(h)),[g,_,h]),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(i.span,{id:l.textId,...o,ref:p}),l.isSelected&&s.valueNode&&!s.valueNodeHasChildren?Xt.createPortal(o.children,s.valueNode):null]})});ji.displayName=Ai;var Mi=`SelectItemIndicator`,Ni=J.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Oi(Mi,n).isSelected?(0,Y.jsx)(i.span,{"aria-hidden":!0,...r,ref:t}):null});Ni.displayName=Mi;var Pi=`SelectScrollUpButton`,Fi=J.forwardRef((e,t)=>{let n=ci(Pi,e.__scopeSelect),r=_i(Pi,e.__scopeSelect),[i,a]=J.useState(!1),o=C(t,r.onScrollButtonChange);return F(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,Y.jsx)(Ri,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Fi.displayName=Pi;var Ii=`SelectScrollDownButton`,Li=J.forwardRef((e,t)=>{let n=ci(Ii,e.__scopeSelect),r=_i(Ii,e.__scopeSelect),[i,a]=J.useState(!1),o=C(t,r.onScrollButtonChange);return F(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,Y.jsx)(Ri,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Li.displayName=Ii;var Ri=J.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...a}=e,o=ci(`SelectScrollButton`,n),s=J.useRef(null),c=Vr(n),l=J.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return J.useEffect(()=>()=>l(),[l]),F(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,Y.jsx)(i.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:h(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:h(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:h(a.onPointerLeave,()=>{l()})})}),zi=`SelectSeparator`,Bi=J.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,Y.jsx)(i.div,{"aria-hidden":!0,...r,ref:t})});Bi.displayName=zi;var Vi=`SelectArrow`,Hi=J.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Gr(n),a=qr(Vi,n),o=ci(Vi,n);return a.open&&o.position===`popper`?(0,Y.jsx)(Ln,{...i,...r,ref:t}):null});Hi.displayName=Vi;var Ui=`SelectBubbleInput`,Wi=J.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let a=J.useRef(null),o=C(r,a),s=Ar(t);return J.useEffect(()=>{let e=a.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(s!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[s,t]),(0,Y.jsx)(i.select,{...n,style:{...Rn,...n.style},ref:o,defaultValue:t})});Wi.displayName=Ui;function Gi(e){return e===``||e===void 0}function Ki(e){let t=u(e),n=J.useRef(``),r=J.useRef(0),i=J.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=J.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return J.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function qi(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Ji(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Ji(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Yi=Xr,Xi=Qr,Zi=ei,Qi=ni,$i=ii,ea=oi,ta=yi,na=Ti,ra=ki,ia=ji,aa=Ni,oa=Fi,sa=Li,ca=Bi,la=Yi,ua=Zi,da=J.forwardRef((e,t)=>{let n=(0,X.c)(12),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=w(`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,i),n[4]=i,n[5]=o);let s;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Y.jsx)(Qi,{asChild:!0,children:(0,Y.jsx)(D,{className:`h-4 w-4 opacity-50`})}),n[6]=s):s=n[6];let c;return n[7]!==r||n[8]!==a||n[9]!==t||n[10]!==o?(c=(0,Y.jsxs)(Xi,{ref:t,className:o,...a,children:[r,s]}),n[7]=r,n[8]=a,n[9]=t,n[10]=o,n[11]=c):c=n[11],c});da.displayName=Xi.displayName;var fa=J.forwardRef((e,t)=>{let n=(0,X.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`flex cursor-default items-center justify-center py-1`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Y.jsx)(T,{className:`h-4 w-4`}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,Y.jsx)(oa,{ref:t,className:a,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});fa.displayName=oa.displayName;var pa=J.forwardRef((e,t)=>{let n=(0,X.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`flex cursor-default items-center justify-center py-1`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Y.jsx)(D,{className:`h-4 w-4`}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,Y.jsx)(sa,{ref:t,className:a,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});pa.displayName=sa.displayName;var ma=J.forwardRef((e,t)=>{let n=(0,X.c)(21),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:i,children:r,position:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=o===void 0?`popper`:o,c=s===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,l;n[5]!==i||n[6]!==c?(l=w(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,c,i),n[5]=i,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Y.jsx)(fa,{}),n[8]=u):u=n[8];let d=s===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`,f;n[9]===d?f=n[10]:(f=w(`p-1`,d),n[9]=d,n[10]=f);let p;n[11]!==r||n[12]!==f?(p=(0,Y.jsx)(ta,{className:f,children:r}),n[11]=r,n[12]=f,n[13]=p):p=n[13];let m;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Y.jsx)(pa,{}),n[14]=m):m=n[14];let h;return n[15]!==s||n[16]!==a||n[17]!==t||n[18]!==l||n[19]!==p?(h=(0,Y.jsx)($i,{children:(0,Y.jsxs)(ea,{ref:t,className:l,position:s,...a,children:[u,p,m]})}),n[15]=s,n[16]=a,n[17]=t,n[18]=l,n[19]=p,n[20]=h):h=n[20],h});ma.displayName=ea.displayName;var ha=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`py-1.5 pl-8 pr-2 text-sm font-semibold`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(na,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});ha.displayName=na.displayName;var ga=J.forwardRef((e,t)=>{let n=(0,X.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=w(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,i),n[4]=i,n[5]=o);let s;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Y.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,Y.jsx)(aa,{children:(0,Y.jsx)(re,{className:`h-4 w-4`})})}),n[6]=s):s=n[6];let c;n[7]===r?c=n[8]:(c=(0,Y.jsx)(ia,{children:r}),n[7]=r,n[8]=c);let l;return n[9]!==a||n[10]!==t||n[11]!==o||n[12]!==c?(l=(0,Y.jsxs)(ra,{ref:t,className:o,...a,children:[s,c]}),n[9]=a,n[10]=t,n[11]=o,n[12]=c,n[13]=l):l=n[13],l});ga.displayName=ra.displayName;var _a=J.forwardRef((e,t)=>{let n=(0,X.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=w(`-mx-1 my-1 h-px bg-muted`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Y.jsx)(ca,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});_a.displayName=ca.displayName;var va=`__ALL_PROJECTS__`;function ya(e){let t=(0,X.c)(8),{text:n,maxLength:r}=e,i=r===void 0?100:r;if(n.length<=i){let e;return t[0]===n?e=t[1]:(e=(0,Y.jsx)(Y.Fragment,{children:n}),t[0]=n,t[1]=e),e}let a;t[2]!==i||t[3]!==n?(a=n.substring(0,i),t[2]=i,t[3]=n,t[4]=a):a=t[4];let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Y.jsx)(`span`,{className:`text-muted-foreground ml-2`,children:`...`}),t[5]=o):o=t[5];let s;return t[6]===a?s=t[7]:(s=(0,Y.jsxs)(Y.Fragment,{children:[a,o]}),t[6]=a,t[7]=s),s}function ba(e,t){let n=`${t} - `,r=e.title??e.threadId;return r.startsWith(n)?r.slice(n.length):r}async function xa(e){let n=[],r=new Set,i=``;for(let a of e)try{let e=await t(a.threadId);e?.messages&&(n.push(...e.messages),e.conversationIds&&e.conversationIds.forEach(e=>r.add(e)),e.lastUpdated>i&&(i=e.lastUpdated))}catch(e){console.warn(`Failed to load history for thread ${a.threadId}:`,e)}return n.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime()),{messages:n,conversationIds:Array.from(r),lastUpdated:i??new Date().toISOString()}}function Sa({isOpen:e,onClose:n,initialFilter:r,projects:i}){let[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(null),[d,f]=(0,J.useState)(0),[p,h]=(0,J.useState)(``),[g,_]=(0,J.useState)(``),v=(0,J.useCallback)(async e=>{c(!0),u(null);try{o(await t(e))}catch(e){u(e instanceof Error?e.message:`Failed to load conversation history`)}finally{c(!1)}},[]),y=(0,J.useCallback)(async e=>{if(e){c(!0),u(null);try{let t=i.find(t=>t.projectId===e);if(!t||t.threads.length===0){o({threadId:e,messages:[],lastUpdated:new Date().toISOString(),conversationIds:[]});return}o({threadId:e,...await xa(t.threads)})}catch(e){u(e instanceof Error?e.message:`Failed to load project history`)}finally{c(!1)}}},[i]),b=(0,J.useCallback)(async()=>{c(!0),u(null);try{o({threadId:va,...await xa(i.flatMap(e=>e.threads))})}catch(e){u(e instanceof Error?e.message:`Failed to load all projects history`)}finally{c(!1)}},[i]);(0,J.useEffect)(()=>{e&&r?r.type===`thread`?(_(r.id),h(``),f(0),v(r.id)):r.type===`project`&&(h(r.id),_(``),f(0),y(r.id)):e||(o(null),_(``),h(``),f(0),u(null))},[e,r,v,y]);let x=e=>{_(e),h(``),f(0),v(e)},C=e=>{h(e),_(``),f(0),e===va?b():y(e)},w=e=>new Date(e).toLocaleString(),T=(e,t)=>{let n=new Date(e),r=new Date(t).getTime()-n.getTime();if(r<0)return{display:`0:00`,tooltip:`0 seconds`};let i=Math.floor(r/1e3),a=Math.floor(i/60),o=i%60,s=`${a}:${o.toString().padStart(2,`0`)}`,c;return c=a===0?`${o} second${o===1?``:`s`}`:o===0?`${a} minute${a===1?``:`s`}`:`${a} minute${a===1?``:`s`} ${o} second${o===1?``:`s`}`,{display:s,tooltip:c}},D=e=>({inputTokens:e.inputTokens??0,outputTokens:e.outputTokens??0});return e?(0,Y.jsx)(`div`,{className:`fixed inset-0 z-50 bg-background`,children:(0,Y.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Y.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Conversation History`}),r?.type===`thread`&&(0,Y.jsxs)(la,{value:g,onValueChange:x,children:[(0,Y.jsx)(da,{className:`w-48`,children:(0,Y.jsx)(ua,{placeholder:`Select thread`})}),(0,Y.jsx)(ma,{children:i.flatMap(e=>e.threads.map(t=>(0,Y.jsx)(ga,{value:t.threadId,children:ba(t,e.name??e.projectId)},t.threadId)))})]}),(0,Y.jsxs)(la,{value:p,onValueChange:C,children:[(0,Y.jsx)(da,{className:`w-48`,children:(0,Y.jsx)(ua,{placeholder:`Select project`})}),(0,Y.jsxs)(ma,{children:[(0,Y.jsx)(ga,{value:va,children:`All Projects`}),i.map(e=>(0,Y.jsx)(ga,{value:e.projectId,children:e.name??e.projectId},e.projectId))]})]})]}),(0,Y.jsx)(S,{variant:`action`,size:`icon-sm`,onClick:n,children:(0,Y.jsx)(A,{})})]}),a?.messages.length&&a.messages.length>0&&(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(S,{variant:`outline`,size:`sm`,onClick:()=>{d>0&&f(d-1)},disabled:d===0,children:(0,Y.jsx)(ie,{className:`h-4 w-4 mr-1`})}),(0,Y.jsx)(S,{variant:`outline`,size:`sm`,onClick:()=>{a?.messages&&d<a.messages.length-1&&f(d+1)},disabled:!a||d>=a.messages.length-1,children:(0,Y.jsx)(te,{className:`h-4 w-4 ml-1`})})]}),(0,Y.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[d+1,` of `,a?.messages.length??0,` messages`]})]}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-hidden`,children:s?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Y.jsxs)(`div`,{className:`text-center`,children:[(0,Y.jsx)(O,{className:`h-8 w-8 animate-spin mx-auto mb-2`}),(0,Y.jsx)(`p`,{children:`Loading conversation history...`})]})}):l?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Y.jsxs)(k,{className:`max-w-md`,children:[(0,Y.jsx)(N,{children:(0,Y.jsx)(P,{className:`text-destructive`,children:`Error`})}),(0,Y.jsxs)(E,{children:[(0,Y.jsx)(`p`,{children:l}),(0,Y.jsx)(S,{onClick:n,className:`mt-4`,children:`Close`})]})]})}):a?.messages?.length&&a.messages.length>0?(0,Y.jsx)(m,{className:`h-full`,children:(0,Y.jsx)(`div`,{className:`p-4`,children:(0,Y.jsxs)(jr,{children:[(0,Y.jsx)(Mr,{children:(0,Y.jsxs)(Fr,{children:[(0,Y.jsx)(Z,{children:`Prompt`}),(0,Y.jsx)(Z,{children:`Answer`}),(0,Y.jsx)(Z,{className:`w-24`,children:`Model`}),(0,Y.jsx)(Z,{className:`w-24 text-right`,children:`Duration`}),(0,Y.jsx)(Z,{className:`w-20 text-right`,children:`Input Tokens`}),(0,Y.jsx)(Z,{className:`w-20 text-right`,children:`Output Tokens`}),(0,Y.jsx)(Z,{className:`w-32 text-right`,children:`Timestamp`})]})}),(0,Y.jsx)(Nr,{children:a.messages.map((e,t)=>{let{inputTokens:n,outputTokens:r}=D(e);return(0,Y.jsxs)(Fr,{className:t===d?`bg-muted/50`:``,children:[(0,Y.jsx)(Q,{className:`max-w-md`,children:(0,Y.jsx)(`div`,{className:`text-sm`,children:(0,Y.jsx)(ya,{text:e.request.message})})}),(0,Y.jsx)(Q,{className:`max-w-md`,children:e.response?(0,Y.jsx)(`div`,{className:`text-sm`,children:(0,Y.jsx)(ya,{text:e.response.content})}):(0,Y.jsx)(`span`,{className:`text-muted-foreground italic`,children:`No response`})}),(0,Y.jsx)(Q,{className:`text-sm`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(ee,{className:`h-3 w-3 text-muted-foreground`}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:e.request.model})]})}),(0,Y.jsx)(Q,{className:`text-sm text-right`,children:e.response?(0,Y.jsx)(Er,{children:(0,Y.jsxs)(Dr,{children:[(0,Y.jsx)(Or,{asChild:!0,children:(0,Y.jsx)(`div`,{className:`cursor-help`,children:T(e.timestamp,e.response.completedAt).display})}),(0,Y.jsx)(kr,{children:(0,Y.jsx)(`p`,{children:T(e.timestamp,e.response.completedAt).tooltip})})]})}):(0,Y.jsx)(`span`,{className:`text-muted-foreground italic`,children:`-`})}),(0,Y.jsx)(Q,{className:`text-sm text-muted-foreground text-right`,children:n>0?n.toLocaleString():`-`}),(0,Y.jsx)(Q,{className:`text-sm text-muted-foreground text-right`,children:r>0?r.toLocaleString():`-`}),(0,Y.jsx)(Q,{className:`text-sm text-muted-foreground text-right`,children:w(e.timestamp)})]},e.id)})})]})})}):(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Y.jsxs)(k,{className:`max-w-md`,children:[(0,Y.jsx)(N,{children:(0,Y.jsx)(P,{children:`No History`})}),(0,Y.jsxs)(E,{children:[(0,Y.jsx)(`p`,{children:`No conversation history found for this thread.`}),(0,Y.jsx)(S,{onClick:n,className:`mt-4`,children:`Close`})]})]})})})]})}):null}export{hn as _,da as a,kr as c,Bn as d,Fn as f,vn as g,Pn as h,ga as i,Er as l,In as m,la as n,Ar as o,Ln as p,ma as r,Dr as s,Sa as t,Or as u};