tarsk 0.5.62 → 0.5.63

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 (78) hide show
  1. package/dist/index.js +1380 -785
  2. package/dist/public/assets/{account-view-D2h4wMCJ.js → account-view-DPMOlh3s.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-BpJafkQ6.js → alert-dialog-tR8jdoK3.js} +1 -1
  4. package/dist/public/assets/{api-DkhEo8tW.js → api-D3kM9pkY.js} +1 -1
  5. package/dist/public/assets/{async-error-boundary-DR57nNXL.js → async-error-boundary-D2YxNX8i.js} +1 -1
  6. package/dist/public/assets/{browser-tab-B15D-jTw.js → browser-tab-DBH__fWh.js} +2 -2
  7. package/dist/public/assets/{chat-dock-context-4ZMIlxAn.js → chat-dock-context-DX0woD8r.js} +1 -1
  8. package/dist/public/assets/{commit-dialog-CQH8QaWp.js → commit-dialog-vGBCFWUk.js} +1 -1
  9. package/dist/public/assets/{commit-method-fields-DYBEHZAP.js → commit-method-fields-CENlG_Jk.js} +1 -1
  10. package/dist/public/assets/{context-menu-cv7nzOcn.js → context-menu-D6nrl6uV.js} +1 -1
  11. package/dist/public/assets/{conversation-history-view-BnhR9dL8.js → conversation-history-view-D_Umzlgd.js} +1 -1
  12. package/dist/public/assets/{create-project-dialog-DCehjzue.js → create-project-dialog-IjrZazJK.js} +1 -1
  13. package/dist/public/assets/{create-repo-dialog-CVYlw8JI.js → create-repo-dialog-LRokjKAU.js} +1 -1
  14. package/dist/public/assets/{delete-confirm-dialog-DoRgqETX.js → delete-confirm-dialog-Tv1Y9rIn.js} +1 -1
  15. package/dist/public/assets/diff-view-BzR1KSU4.js +4 -0
  16. package/dist/public/assets/explorer-tab-view-BtQAqAoR.js +2 -0
  17. package/dist/public/assets/explorer-tree-gTgMdTOW.js +1 -0
  18. package/dist/public/assets/{explorer-view-B5nGnzAV.js → explorer-view-DhR2CWcz.js} +2 -2
  19. package/dist/public/assets/{git-history-dialog-De7D-B_f.js → git-history-dialog-Do8XlsHv.js} +1 -1
  20. package/dist/public/assets/git-ops-button-BIOoGOW9.js +2 -0
  21. package/dist/public/assets/index-BdDEzAzX.js +3307 -0
  22. package/dist/public/assets/index-zilB0ZSo.css +1 -0
  23. package/dist/public/assets/{mcp-server-card-DofWLHvo.js → mcp-server-card-9_PXQg51.js} +1 -1
  24. package/dist/public/assets/{merged-pr-dialog-CLaSLBzZ.js → merged-pr-dialog-U1CBegRj.js} +1 -1
  25. package/dist/public/assets/{model-list-controls-CRnIzfdp.js → model-list-controls-DGHp3GfD.js} +1 -1
  26. package/dist/public/assets/{monaco-setup-VhLB0diG.js → monaco-setup-Xkv0hjl5.js} +1 -1
  27. package/dist/public/assets/onboarding-_okRJRpU.js +46 -0
  28. package/dist/public/assets/{project-env-vars-view-wQPOiCa_.js → project-env-vars-view-CSk-mKm9.js} +1 -1
  29. package/dist/public/assets/{project-model-aliases-view-CMEFOKJj.js → project-model-aliases-view-D6gdA6SJ.js} +1 -1
  30. package/dist/public/assets/project-settings-view-soRLv3YG.js +1 -0
  31. package/dist/public/assets/{project-tools-view-C7rQgJBp.js → project-tools-view-Bm1kgBnS.js} +1 -1
  32. package/dist/public/assets/providers-list-view-C8euNoea.js +1 -0
  33. package/dist/public/assets/pull-request-dialog-Cy-OBkM4.js +1 -0
  34. package/dist/public/assets/{pull-with-changes-dialog-BIkrgGiK.js → pull-with-changes-dialog-p3MYq6XE.js} +1 -1
  35. package/dist/public/assets/{push-before-pr-dialog-CMGZ4nuF.js → push-before-pr-dialog-DHehHLoc.js} +1 -1
  36. package/dist/public/assets/{react-vendor-DgnPMVt4.js → react-vendor-DM3Nejio.js} +1 -1
  37. package/dist/public/assets/{settings-general-view-W0AXfWxp.js → settings-general-view-B9oGXpm4.js} +1 -1
  38. package/dist/public/assets/{settings-instructions-view-Dd3mwKFL.js → settings-instructions-view-Dgiq0-Fz.js} +1 -1
  39. package/dist/public/assets/{settings-list-Cyr7e0Le.js → settings-list-CdCYY9x_.js} +1 -1
  40. package/dist/public/assets/{settings-logs-view-CGbS3tw4.js → settings-logs-view-BCAw_cxd.js} +1 -1
  41. package/dist/public/assets/settings-mcp-servers-view-Br5owe39.js +5 -0
  42. package/dist/public/assets/settings-models-view--e7dI-H6.js +1 -0
  43. package/dist/public/assets/{settings-rules-view-BnOeQFrJ.js → settings-rules-view-DD0_kkS8.js} +1 -1
  44. package/dist/public/assets/{settings-skills-view-BvvWBK7C.js → settings-skills-view-DDIvFArL.js} +1 -1
  45. package/dist/public/assets/{settings-slack-view-CnCzVPQp.js → settings-slack-view-C0yGN7-a.js} +1 -1
  46. package/dist/public/assets/{settings-slash-commands-view-Ds7RbQGD.js → settings-slash-commands-view-B-Ehi4Vm.js} +1 -1
  47. package/dist/public/assets/{settings-statistics-view-BI6827hL.js → settings-statistics-view-BFsn_ndY.js} +1 -1
  48. package/dist/public/assets/{settings-storage-view-Dp1y_kDe.js → settings-storage-view-3J7APTHD.js} +1 -1
  49. package/dist/public/assets/{settings-subagents-view-Cco1I1-K.js → settings-subagents-view-YFveKNiL.js} +1 -1
  50. package/dist/public/assets/{settings-system-prompt-view-DZKKUgRY.js → settings-system-prompt-view-BR4bBXdt.js} +1 -1
  51. package/dist/public/assets/settings-view-Cg3qC1kg.js +2 -0
  52. package/dist/public/assets/{slug-utils-DVB1L0_r.js → slug-utils-DN3CLvnc.js} +1 -1
  53. package/dist/public/assets/tasks-view-COnDzVI9.js +2 -0
  54. package/dist/public/assets/{terminal-panel-B5SzvdGO.js → terminal-panel-rUTBECZC.js} +1 -1
  55. package/dist/public/assets/{ui-components-CuWavb_S.js → ui-components-BLrzr-Yo.js} +1 -1
  56. package/dist/public/assets/{use-active-dock-panel-instance-CKEkba2q.js → use-active-dock-panel-instance-HODVGwTg.js} +1 -1
  57. package/dist/public/assets/{use-installed-ai-files-CTaDJ775.js → use-installed-ai-files-D_mfpPto.js} +1 -1
  58. package/dist/public/assets/{web-Du8iyq0K.js → web-BGcPHAdQ.js} +1 -1
  59. package/dist/public/assets/{web-CaXKZtWk.js → web-D6UAh7QL.js} +1 -1
  60. package/dist/public/assets/{web-BNUbWWwf.js → web-DMLNawO_.js} +1 -1
  61. package/dist/public/assets/{web-CHZVpVHH.js → web-D_jEgLdF.js} +1 -1
  62. package/dist/public/index.html +7 -7
  63. package/dist/recommended-models.txt +11 -11
  64. package/package.json +2 -1
  65. package/dist/public/assets/diff-view-B1xi9U57.js +0 -4
  66. package/dist/public/assets/explorer-tab-view-DssrHe9f.js +0 -2
  67. package/dist/public/assets/explorer-tree-B2SnBNoL.js +0 -1
  68. package/dist/public/assets/git-ops-button-DJYzg_I5.js +0 -2
  69. package/dist/public/assets/index-3N_2bBI0.css +0 -1
  70. package/dist/public/assets/index-cAZJlfDA.js +0 -3307
  71. package/dist/public/assets/onboarding-Dy7KG3M5.js +0 -46
  72. package/dist/public/assets/project-settings-view-BeKBKcaZ.js +0 -1
  73. package/dist/public/assets/providers-list-view-DqSw6lqh.js +0 -1
  74. package/dist/public/assets/pull-request-dialog-CX10DwW3.js +0 -1
  75. package/dist/public/assets/settings-mcp-servers-view-C3IkdzkJ.js +0 -5
  76. package/dist/public/assets/settings-models-view-DV2YF3YN.js +0 -1
  77. package/dist/public/assets/settings-view-Ckzg0maK.js +0 -2
  78. package/dist/public/assets/tasks-view-tS75bdWk.js +0 -2
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,hn as i,i as a,nn as o,ut as s,v as c,wi as l,y as u}from"./interactive-WtOIgeV4.js";import{Wt as d}from"./react-vendor-DgnPMVt4.js";import{Bn as f,Fr as p,Ur as m,_n as h,mt as g,nt as _,rt as v,wo as y,xa as b}from"./onboarding-Dy7KG3M5.js";import{r as x}from"./store-CSyJjyNs.js";import{t as S}from"./use-toast-BFQ85Ly5.js";import{t as C}from"./skeleton-B_xdlo2b.js";import{t as w}from"./delete-confirm-dialog-DoRgqETX.js";var T=l(),E=e(r(),1),D=t();function O(e){let t=(0,T.c)(6),{title:n,description:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,D.jsx)(v,{title:n,description:r,sticky:!1}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,D.jsxs)(g,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function k(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(C,{className:`h-4 w-20`}),(0,D.jsx)(C,{className:`h-9 w-28`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[t,(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(C,{className:`h-4 w-24`}),(0,D.jsx)(C,{className:`h-6 w-32`}),(0,D.jsx)(C,{className:`h-4 w-full`})]})]}),e[1]=n):n=e[1],n}function A(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(C,{className:`h-5 w-28`}),(0,D.jsx)(C,{className:`h-4 w-64`})]}),(0,D.jsx)(C,{className:`h-9 w-28 shrink-0`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[t,(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(C,{className:`h-5 w-36`}),(0,D.jsx)(C,{className:`h-4 w-56`}),(0,D.jsx)(C,{className:`h-4 w-32`})]}),(0,D.jsx)(C,{className:`h-9 w-24 shrink-0`})]})]}),e[1]=n):n=e[1],n}function j(){let[e,t]=(0,E.useState)(null),[r,l]=(0,E.useState)(!0),[g,v]=(0,E.useState)(!1),[C,T]=(0,E.useState)(!1),j=d(),M=x(e=>e.projects),N=(0,E.useMemo)(()=>M.reduce((e,t)=>e+t.threads.length,0),[M]);(0,E.useEffect)(()=>{P();let e=()=>{document.visibilityState===`visible`&&P()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);async function P(){l(!0);try{t(await f())}catch(e){S({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{l(!1)}}function F(){p(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function I(){p(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}async function L(){T(!0);try{if(await h(),b())try{await m()}catch{}window.close()}catch(e){T(!1),v(!1),S({title:`Error`,description:e instanceof Error?e.message:`Failed to delete account`,variant:`destructive`})}}let R=e?.plan===`unlimited-pro`,z=r&&e===null,B=e===null?r:!R;return(0,D.jsxs)(`div`,{className:`frosted-scrollbar flex h-full min-h-0 flex-col overflow-auto`,children:[(0,D.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[(0,D.jsx)(O,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:z?(0,D.jsx)(k,{}):(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:a(n.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(s,{className:`h-4 w-4`}),`Balance`]}),(0,D.jsx)(`div`,{className:`flex items-end gap-2`,children:R?(0,D.jsx)(`span`,{className:n.stat,children:`Unlimited`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:n.stat,children:e?.promptsRemaining.toLocaleString()??0}),(0,D.jsx)(`span`,{className:`${n.caption} mb-1`,children:`prompts remaining`})]})})]}),(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:a(n.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(o,{className:`h-4 w-4`}),`Current Plan`]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{className:n.label,children:R?`Unlimited Pro`:`Pay as you go`}),R&&(0,D.jsx)(`span`,{className:a(n.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`})]}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:R?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`})]})]})}),B?(0,D.jsx)(O,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:z?(0,D.jsx)(A,{}):(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsx)(`span`,{className:n.label,children:`1,000 Prompts`}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),(0,D.jsx)(y,{onClick:F,className:`shrink-0`,children:`Top Up Balance`})]}),(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(o,{className:`h-4 w-4 text-primary`}),(0,D.jsx)(`span`,{className:n.label,children:`Unlimited Pro Plan`})]}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),(0,D.jsxs)(`ul`,{className:a(n.bodyMuted,`space-y-0.5`),children:[(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(i,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(i,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),(0,D.jsx)(y,{onClick:I,className:`shrink-0`,children:`Purchase`})]})]})}):null,(0,D.jsx)(O,{title:`Delete Account`,description:`Permanently delete the Tarsk database and any logs on this device.`,children:(0,D.jsxs)(`div`,{className:`space-y-4 px-6 pb-6 pt-6`,children:[N>0?(0,D.jsxs)(_,{variant:`error`,children:[(0,D.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(c,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,D.jsxs)(`span`,{children:[`You have `,N,` workspace`,` `,N===1?`folder`:`folders`,` listed in Storage. Clear`,` `,N===1?`it`:`them`,` first under Storage — deleting your account does not remove those folders.`]})]}),(0,D.jsx)(`div`,{className:`mt-3`,children:(0,D.jsx)(y,{variant:`outline`,size:`sm`,onClick:()=>j(`/settings/storage`),children:`Go to Storage`})})]}):null,(0,D.jsx)(`p`,{className:n.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),(0,D.jsxs)(y,{variant:`destructive`,onClick:()=>v(!0),children:[(0,D.jsx)(u,{className:`h-4 w-4`}),`Delete Account`]})]})})]}),(0,D.jsx)(w,{open:g,onOpenChange:e=>{!e&&!C&&v(!1)},title:`Delete account?`,description:`This permanently deletes the Tarsk database and any logs on this device. The app will close and you can relaunch it. This action cannot be undone.`,onConfirm:()=>void L(),confirming:C,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`})]})}export{j as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,hn as i,i as a,nn as o,ut as s,v as c,wi as l,y as u}from"./interactive-WtOIgeV4.js";import{Wt as d}from"./react-vendor-DM3Nejio.js";import{Bn as f,Fr as p,Ur as m,_n as h,mt as g,nt as _,rt as v,wo as y,xa as b}from"./onboarding-_okRJRpU.js";import{r as x}from"./store-CSyJjyNs.js";import{t as S}from"./use-toast-BFQ85Ly5.js";import{t as C}from"./skeleton-B_xdlo2b.js";import{t as w}from"./delete-confirm-dialog-Tv1Y9rIn.js";var T=l(),E=e(r(),1),D=t();function O(e){let t=(0,T.c)(6),{title:n,description:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,D.jsx)(v,{title:n,description:r,sticky:!1}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,D.jsxs)(g,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function k(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(C,{className:`h-4 w-20`}),(0,D.jsx)(C,{className:`h-9 w-28`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[t,(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(C,{className:`h-4 w-24`}),(0,D.jsx)(C,{className:`h-6 w-32`}),(0,D.jsx)(C,{className:`h-4 w-full`})]})]}),e[1]=n):n=e[1],n}function A(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(C,{className:`h-5 w-28`}),(0,D.jsx)(C,{className:`h-4 w-64`})]}),(0,D.jsx)(C,{className:`h-9 w-28 shrink-0`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[t,(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(C,{className:`h-5 w-36`}),(0,D.jsx)(C,{className:`h-4 w-56`}),(0,D.jsx)(C,{className:`h-4 w-32`})]}),(0,D.jsx)(C,{className:`h-9 w-24 shrink-0`})]})]}),e[1]=n):n=e[1],n}function j(){let[e,t]=(0,E.useState)(null),[r,l]=(0,E.useState)(!0),[g,v]=(0,E.useState)(!1),[C,T]=(0,E.useState)(!1),j=d(),M=x(e=>e.projects),N=(0,E.useMemo)(()=>M.reduce((e,t)=>e+t.threads.length,0),[M]);(0,E.useEffect)(()=>{P();let e=()=>{document.visibilityState===`visible`&&P()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);async function P(){l(!0);try{t(await f())}catch(e){S({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{l(!1)}}function F(){p(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function I(){p(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}async function L(){T(!0);try{if(await h(),b())try{await m()}catch{}window.close()}catch(e){T(!1),v(!1),S({title:`Error`,description:e instanceof Error?e.message:`Failed to delete account`,variant:`destructive`})}}let R=e?.plan===`unlimited-pro`,z=r&&e===null,B=e===null?r:!R;return(0,D.jsxs)(`div`,{className:`frosted-scrollbar flex h-full min-h-0 flex-col overflow-auto`,children:[(0,D.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[(0,D.jsx)(O,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:z?(0,D.jsx)(k,{}):(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:a(n.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(s,{className:`h-4 w-4`}),`Balance`]}),(0,D.jsx)(`div`,{className:`flex items-end gap-2`,children:R?(0,D.jsx)(`span`,{className:n.stat,children:`Unlimited`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:n.stat,children:e?.promptsRemaining.toLocaleString()??0}),(0,D.jsx)(`span`,{className:`${n.caption} mb-1`,children:`prompts remaining`})]})})]}),(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:a(n.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(o,{className:`h-4 w-4`}),`Current Plan`]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{className:n.label,children:R?`Unlimited Pro`:`Pay as you go`}),R&&(0,D.jsx)(`span`,{className:a(n.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`})]}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:R?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`})]})]})}),B?(0,D.jsx)(O,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:z?(0,D.jsx)(A,{}):(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsx)(`span`,{className:n.label,children:`1,000 Prompts`}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),(0,D.jsx)(y,{onClick:F,className:`shrink-0`,children:`Top Up Balance`})]}),(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(o,{className:`h-4 w-4 text-primary`}),(0,D.jsx)(`span`,{className:n.label,children:`Unlimited Pro Plan`})]}),(0,D.jsx)(`p`,{className:n.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),(0,D.jsxs)(`ul`,{className:a(n.bodyMuted,`space-y-0.5`),children:[(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(i,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(i,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),(0,D.jsx)(y,{onClick:I,className:`shrink-0`,children:`Purchase`})]})]})}):null,(0,D.jsx)(O,{title:`Delete Account`,description:`Permanently delete the Tarsk database and any logs on this device.`,children:(0,D.jsxs)(`div`,{className:`space-y-4 px-6 pb-6 pt-6`,children:[N>0?(0,D.jsxs)(_,{variant:`error`,children:[(0,D.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(c,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,D.jsxs)(`span`,{children:[`You have `,N,` workspace`,` `,N===1?`folder`:`folders`,` listed in Storage. Clear`,` `,N===1?`it`:`them`,` first under Storage — deleting your account does not remove those folders.`]})]}),(0,D.jsx)(`div`,{className:`mt-3`,children:(0,D.jsx)(y,{variant:`outline`,size:`sm`,onClick:()=>j(`/settings/storage`),children:`Go to Storage`})})]}):null,(0,D.jsx)(`p`,{className:n.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),(0,D.jsxs)(y,{variant:`destructive`,onClick:()=>v(!0),children:[(0,D.jsx)(u,{className:`h-4 w-4`}),`Delete Account`]})]})})]}),(0,D.jsx)(w,{open:g,onOpenChange:e=>{!e&&!C&&v(!1)},title:`Delete account?`,description:`This permanently deletes the Tarsk database and any logs on this device. The app will close and you can relaunch it. This action cannot be undone.`,onConfirm:()=>void L(),confirming:C,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`})]})}export{j as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,i,wi as a}from"./interactive-WtOIgeV4.js";import{$ as o,J as s,Q as c,X as l,Y as u,Z as d,et as f,tt as p}from"./react-vendor-DgnPMVt4.js";import{To as m,U as h}from"./onboarding-Dy7KG3M5.js";var g=a(),_=e(r(),1),v=t();function y(e){let t=(0,g.c)(14),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({open:i,defaultOpen:n,onOpenChange:r,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o;t[5]!==n||t[6]!==r||t[7]!==i?(o={open:i,defaultOpen:n,onOpenChange:r},t[5]=n,t[6]=r,t[7]=i,t[8]=o):o=t[8];let s=h(o),c;return t[9]!==n||t[10]!==s||t[11]!==i||t[12]!==a?(c=(0,v.jsx)(f,{open:i,defaultOpen:n,onOpenChange:s,...a}),t[9]=n,t[10]=s,t[11]=i,t[12]=a,t[13]=c):c=t[13],c}var b=o,x=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,v.jsx)(c,{className:o,...a,ref:t}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});x.displayName=c.displayName;var S=_.forwardRef((e,t)=>{let n=(0,g.c)(10),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,v.jsx)(x,{}),n[3]=o):o=n[3];let s;n[4]===r?s=n[5]:(s=i(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,r),n[4]=r,n[5]=s);let c;return n[6]!==a||n[7]!==t||n[8]!==s?(c=(0,v.jsxs)(b,{children:[o,(0,v.jsx)(l,{ref:t,className:s,...a})]}),n[6]=a,n[7]=t,n[8]=s,n[9]=c):c=n[9],c});S.displayName=l.displayName;var C=e=>{let t=(0,g.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,v.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};C.displayName=`AlertDialogHeader`;var w=e=>{let t=(0,g.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,v.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};w.displayName=`AlertDialogFooter`;var T=_.forwardRef((e,t)=>{let r=(0,g.c)(9),a,o;r[0]===e?(a=r[1],o=r[2]):({className:a,...o}=e,r[0]=e,r[1]=a,r[2]=o);let s;r[3]===a?s=r[4]:(s=i(n.dialogTitle,a),r[3]=a,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,v.jsx)(p,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});T.displayName=p.displayName;var E=_.forwardRef((e,t)=>{let r=(0,g.c)(9),a,o;r[0]===e?(a=r[1],o=r[2]):({className:a,...o}=e,r[0]=e,r[1]=a,r[2]=o);let s;r[3]===a?s=r[4]:(s=i(n.dialogDescription,a),r[3]=a,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,v.jsx)(d,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});E.displayName=d.displayName;var D=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(m(),r),n[3]=r,n[4]=o);let c;return n[5]!==a||n[6]!==t||n[7]!==o?(c=(0,v.jsx)(s,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=c):c=n[8],c});D.displayName=s.displayName;var O=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(m({variant:`outline`}),`mt-2 sm:mt-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,v.jsx)(u,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});O.displayName=u.displayName;export{E as a,T as c,S as i,D as n,w as o,O as r,C as s,y as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,i,wi as a}from"./interactive-WtOIgeV4.js";import{$ as o,J as s,Q as c,X as l,Y as u,Z as d,et as f,tt as p}from"./react-vendor-DM3Nejio.js";import{To as m,U as h}from"./onboarding-_okRJRpU.js";var g=a(),_=e(r(),1),v=t();function y(e){let t=(0,g.c)(14),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({open:i,defaultOpen:n,onOpenChange:r,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o;t[5]!==n||t[6]!==r||t[7]!==i?(o={open:i,defaultOpen:n,onOpenChange:r},t[5]=n,t[6]=r,t[7]=i,t[8]=o):o=t[8];let s=h(o),c;return t[9]!==n||t[10]!==s||t[11]!==i||t[12]!==a?(c=(0,v.jsx)(f,{open:i,defaultOpen:n,onOpenChange:s,...a}),t[9]=n,t[10]=s,t[11]=i,t[12]=a,t[13]=c):c=t[13],c}var b=o,x=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,v.jsx)(c,{className:o,...a,ref:t}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});x.displayName=c.displayName;var S=_.forwardRef((e,t)=>{let n=(0,g.c)(10),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,v.jsx)(x,{}),n[3]=o):o=n[3];let s;n[4]===r?s=n[5]:(s=i(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,r),n[4]=r,n[5]=s);let c;return n[6]!==a||n[7]!==t||n[8]!==s?(c=(0,v.jsxs)(b,{children:[o,(0,v.jsx)(l,{ref:t,className:s,...a})]}),n[6]=a,n[7]=t,n[8]=s,n[9]=c):c=n[9],c});S.displayName=l.displayName;var C=e=>{let t=(0,g.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,v.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};C.displayName=`AlertDialogHeader`;var w=e=>{let t=(0,g.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,v.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};w.displayName=`AlertDialogFooter`;var T=_.forwardRef((e,t)=>{let r=(0,g.c)(9),a,o;r[0]===e?(a=r[1],o=r[2]):({className:a,...o}=e,r[0]=e,r[1]=a,r[2]=o);let s;r[3]===a?s=r[4]:(s=i(n.dialogTitle,a),r[3]=a,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,v.jsx)(p,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});T.displayName=p.displayName;var E=_.forwardRef((e,t)=>{let r=(0,g.c)(9),a,o;r[0]===e?(a=r[1],o=r[2]):({className:a,...o}=e,r[0]=e,r[1]=a,r[2]=o);let s;r[3]===a?s=r[4]:(s=i(n.dialogDescription,a),r[3]=a,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,v.jsx)(d,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});E.displayName=d.displayName;var D=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(m(),r),n[3]=r,n[4]=o);let c;return n[5]!==a||n[6]!==t||n[7]!==o?(c=(0,v.jsx)(s,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=c):c=n[8],c});D.displayName=s.displayName;var O=_.forwardRef((e,t)=>{let n=(0,g.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(m({variant:`outline`}),`mt-2 sm:mt-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,v.jsx)(u,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});O.displayName=u.displayName;export{E as a,T as c,S as i,D as n,w as o,O as r,C as s,y as t};
@@ -1 +1 @@
1
- import{_a as e,da as t,fa as n,ga as r,ha as i,pa as a,va as o,ya as s}from"./onboarding-Dy7KG3M5.js";async function c(e,t,r=!1){return a(`api/threads/${n(e)}/explorer?path=${encodeURIComponent(t)}&recursive=${r}`)}async function l(e,t){return a(`api/threads/${n(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function u(e,t,r){return s(`api/threads/${n(e)}/ai-file`,{path:t,content:r})}async function d(e,r){return t(`api/threads/${n(e)}/explorer?path=${encodeURIComponent(r)}`)}async function f(e,t,i){return r(`api/threads/${n(e)}/explorer`,{path:t,newName:i})}async function p(t,r,i){return e(`api/threads/${n(t)}/explorer/file`,{dirPath:r,name:i})}async function m(e,t,r){let i=new URLSearchParams({dirPath:t,name:r.name});return o(`api/threads/${n(e)}/explorer/upload?${i.toString()}`,r)}async function h(e,t){return i(`api/threads/${n(e)}/explorer/media?path=${encodeURIComponent(t)}`)}async function g(t,r,i){return e(`api/threads/${n(t)}/explorer/folder`,{dirPath:r,name:i})}async function _(t,r){return e(`api/threads/${n(t)}/explorer/open`,{path:r})}async function v(t,r){return e(`api/threads/${n(t)}/explorer/print-markdown`,{path:r})}export{l as a,v as c,m as d,h as i,f as l,g as n,c as o,d as r,_ as s,p as t,u};
1
+ import{_a as e,da as t,fa as n,ga as r,ha as i,pa as a,va as o,ya as s}from"./onboarding-_okRJRpU.js";async function c(e,t,r=!1){return a(`api/threads/${n(e)}/explorer?path=${encodeURIComponent(t)}&recursive=${r}`)}async function l(e,t){return a(`api/threads/${n(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function u(e,t,r){return s(`api/threads/${n(e)}/ai-file`,{path:t,content:r})}async function d(e,r){return t(`api/threads/${n(e)}/explorer?path=${encodeURIComponent(r)}`)}async function f(e,t,i){return r(`api/threads/${n(e)}/explorer`,{path:t,newName:i})}async function p(t,r,i){return e(`api/threads/${n(t)}/explorer/file`,{dirPath:r,name:i})}async function m(e,t,r){let i=new URLSearchParams({dirPath:t,name:r.name});return o(`api/threads/${n(e)}/explorer/upload?${i.toString()}`,r)}async function h(e,t){return i(`api/threads/${n(e)}/explorer/media?path=${encodeURIComponent(t)}`)}async function g(t,r,i){return e(`api/threads/${n(t)}/explorer/folder`,{dirPath:r,name:i})}async function _(t,r){return e(`api/threads/${n(t)}/explorer/open`,{path:r})}async function v(t,r){return e(`api/threads/${n(t)}/explorer/print-markdown`,{path:r})}export{l as a,v as c,m as d,h as i,f as l,g as n,c as o,d as r,_ as s,p as t,u};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Jn as r,Ti as i}from"./interactive-WtOIgeV4.js";import{wo as a}from"./onboarding-Dy7KG3M5.js";import{i as o,n as s,r as c,t as l}from"./card-xQfAy2Rx.js";var u=e(i(),1),d=t(),f=r(`app.async-error-boundary.ui`),p=class extends u.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){f.error(`AsyncErrorBoundary caught an error`,{error:e,info:t})}handleRetry=()=>{this.setState({error:null}),this.props.onRetry?.()};render(){let{error:e}=this.state;return e?this.props.renderFallback?this.props.renderFallback(e,this.handleRetry):(0,d.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,d.jsxs)(l,{className:`max-w-md`,children:[(0,d.jsx)(c,{children:(0,d.jsx)(o,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,d.jsxs)(s,{className:`space-y-4`,children:[(0,d.jsx)(`p`,{className:n.body,children:e.message}),(0,d.jsx)(a,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{p as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Jn as r,Ti as i}from"./interactive-WtOIgeV4.js";import{wo as a}from"./onboarding-_okRJRpU.js";import{i as o,n as s,r as c,t as l}from"./card-xQfAy2Rx.js";var u=e(i(),1),d=t(),f=r(`app.async-error-boundary.ui`),p=class extends u.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){f.error(`AsyncErrorBoundary caught an error`,{error:e,info:t})}handleRetry=()=>{this.setState({error:null}),this.props.onRetry?.()};render(){let{error:e}=this.state;return e?this.props.renderFallback?this.props.renderFallback(e,this.handleRetry):(0,d.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,d.jsxs)(l,{className:`max-w-md`,children:[(0,d.jsx)(c,{children:(0,d.jsx)(o,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,d.jsxs)(s,{className:`space-y-4`,children:[(0,d.jsx)(`p`,{className:n.body,children:e.message}),(0,d.jsx)(a,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{p as t};
@@ -1,8 +1,8 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{C as t,Ci as n,Cn as r,Fr as i,H as a,Jn as o,Qt as s,Sn as c,Ti as l,i as u,it as d,k as f,ot as p,wi as m}from"./interactive-WtOIgeV4.js";import{Ct as h,Fr as g,G as _,St as v,Tt as ee,W as y,wt as b,x,xa as te}from"./onboarding-Dy7KG3M5.js";import{r as ne}from"./store-CSyJjyNs.js";import{t as re}from"./use-toast-BFQ85Ly5.js";import{K as ie,W as ae,c as oe,ht as se,l as ce,m as le,p as ue,z as de}from"./index-cAZJlfDA.js";import{t as fe}from"./use-active-dock-panel-instance-CKEkba2q.js";var S=e(l(),1),C=m();function w(e){if(!e)return null;if(typeof e==`string`)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}return typeof e==`object`?e:null}function pe(e){let t=w(e);if(!t||t.type!==`tarsk-browser-page-title`)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function me(e){return pe(e)}function T(e){return!e?.trim()}function he(e,t){return T(t)?e:t.trim()}var E=n(),ge=o(`app.browser-tab.ui`);function _e(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function ve(e){return e?e.querySelector(`electrobun-webview`):null}function ye(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function D(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function be(e,t){if(t){D(e);return}ye(e)}function xe(e){return e!=null&&e.getClientRects().length>0}function Se(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),be(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function O(e,t=!1){return`(function () {
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{C as t,Ci as n,Cn as r,Fr as i,H as a,Jn as o,Qt as s,Sn as c,Ti as l,i as u,it as d,k as f,ot as p,wi as m}from"./interactive-WtOIgeV4.js";import{Ct as h,Fr as g,G as _,St as v,Tt as ee,W as y,wt as b,x,xa as te}from"./onboarding-_okRJRpU.js";import{r as ne}from"./store-CSyJjyNs.js";import{t as re}from"./use-toast-BFQ85Ly5.js";import{B as ie,G as ae,gt as oe,h as se,l as ce,m as le,q as ue,u as de}from"./index-BdDEzAzX.js";import{t as fe}from"./use-active-dock-panel-instance-HODVGwTg.js";var S=e(l(),1),C=m();function w(e){if(!e)return null;if(typeof e==`string`)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}return typeof e==`object`?e:null}function pe(e){let t=w(e);if(!t||t.type!==`tarsk-browser-page-title`)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function me(e){return pe(e)}function T(e){return!e?.trim()}function he(e,t){return T(t)?e:t.trim()}var E=n(),ge=o(`app.browser-tab.ui`);function _e(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function ve(e){return e?e.querySelector(`electrobun-webview`):null}function ye(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function D(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function be(e,t){if(t){D(e);return}ye(e)}function xe(e){return e!=null&&e.getClientRects().length>0}function Se(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),be(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function O(e,t=!1){return`(function () {
2
2
  const api = window.__tarskBrowserPreview;
3
3
  if (!api || typeof api.setSelectMode !== "function") {
4
4
  log.error("[browser-preview] selection API is not available");
5
5
  return;
6
6
  }
7
7
  api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`});
8
- })();`}function Ce(e,t,n=!1){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(O(t,n))}catch(r){throw ge.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,src:e.src,webview_id:e.webviewId,error:r instanceof Error?r.message:String(r),stack:r instanceof Error?r.stack:void 0}),r}}function we(e,t,n=!1){let r=e.contentWindow;if(!r)throw Error(`Browser preview frame is not ready`);let i=r.__tarskBrowserPreview;if(!i?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);i.setSelectMode(t,n)}function k(e){let t=(0,C.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a===void 0?!1:a,l=o===void 0?!1:o,d=s===void 0?`elevated`:s,f=l&&`cursor-not-allowed text-muted-foreground/50`,p=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,m=!l&&c&&d===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,g=!l&&c&&d===`elevated`&&`bg-background text-foreground shadow-sm`,_;t[0]!==f||t[1]!==p||t[2]!==m||t[3]!==g?(_=u(`rounded p-1.5 transition-all`,f,p,m,g),t[0]=f,t[1]=p,t[2]=m,t[3]=g,t[4]=_):_=t[4];let y;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==_?(y=(0,E.jsx)(ee,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:_,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=_,t[10]=y):y=t[10];let b;t[11]===r?b=t[12]:(b=(0,E.jsx)(h,{children:r}),t[11]=r,t[12]=b);let x;return t[13]!==b||t[14]!==y?(x=(0,E.jsxs)(v,{children:[y,b]}),t[13]=b,t[14]=y,t[15]=x):x=t[15],x}function A({instanceId:e}){let n=fe(e,`browser`),{devServerUrl:o,devServerStopped:l}=ie(),{browserResetTrigger:m,setBrowserPageTitle:h,browserDeviceMode:v,setBrowserDeviceMode:ee,isSelectModeEnabled:C,setIsSelectModeEnabled:w,setSelectedBrowserElement:T,setIsSelectionPromptOpen:D,isSelectionPromptOpen:O,setBrowserAgentProcessingThreadId:A}=de(),j=ne(e=>e.selectedProjectId),Te=ne(e=>e.projects).find(e=>e.projectId===j),[Ee,M]=(0,S.useState)(``),[N,P]=(0,S.useState)(``),[F,I]=(0,S.useState)(``),[L,De]=(0,S.useState)(v),R=(0,S.useRef)(null),Oe=(0,S.useRef)(F),z=(0,S.useRef)(null),B=(0,S.useRef)(null),V=te(),ke=se(),H=V&&!!N,[U,Ae]=(0,S.useState)(H),[je,Me]=(0,S.useState)(!0),[W,G]=(0,S.useState)(null),Ne=(0,S.useSyncExternalStore)(ce,oe),Pe=(0,S.useSyncExternalStore)(_,y),K=n&&(je&&!Pe||Ne),Fe=(0,S.useRef)(K);Oe.current=F,Fe.current=K;let q=(0,S.useCallback)(function(){return Fe.current},[]),J=(0,S.useCallback)(function(){Me(xe(B.current))},[]);(0,S.useEffect)(()=>{De(v)},[v]);function Y(e){De(e),ee(e)}function X(){return R.current??ve(B.current)}(0,S.useLayoutEffect)(J),(0,S.useEffect)(()=>{let e=B.current;if(!e)return;let t=new ResizeObserver(J);return t.observe(e),function(){t.disconnect()}},[J,N,U]),(0,S.useLayoutEffect)(()=>{if(!V)return;if(H){Ae(!0);return}let e=X();e&&ye(e);let t=requestAnimationFrame(()=>{Ae(!1)});return function(){cancelAnimationFrame(t)}},[H,V,N]),(0,S.useEffect)(()=>{P(``),I(``),M(``),G(null),h(null),w(!1),T(null),D(!1),A(null);let e=R.current;e&&(e.src=``),z.current&&(z.current.src=``)},[m,A,h,w,D,T]);let Z=(0,S.useRef)(N),Q=(0,S.useRef)(null);Z.current=N,(0,S.useEffect)(()=>{if(l&&!o){P(``),I(``),M(``),G(null),n&&(w(!1),T(null),D(!1),A(null));let e=R.current;e&&(e.src=``),z.current&&(z.current.src=``);return}if(!o)return;let e=_e(o);M(e),(!Z.current||Z.current===Q.current)&&(P(e),I(e),Q.current=e),G(null),n&&(w(!1),T(null),D(!1),A(null))},[o,l,n,A,w,D,T]);let Ie=(0,S.useCallback)(e=>{R.current=e,e&&Se(e,Oe.current,q)},[q]);(0,S.useLayoutEffect)(()=>{if(!V||!U)return;let e=X();!e||e.webviewId==null||be(e,K)},[U,V,N,L,K]),(0,S.useEffect)(()=>{let e=X();if(!(!V||!e||!F||!U))return Se(e,F,q)},[F,V,N,U,q]),(0,S.useEffect)(()=>{let e=X();if(!V||!e||!U)return;function t(e){let t=typeof e.detail==`string`?e.detail:N;t&&(P(t),I(``),M(t))}function n(e){let t=typeof e.detail==`string`?e.detail:N;t&&(P(t),M(t))}function r(e){let t=e.detail,n=typeof t==`string`?t:typeof t==`object`&&t&&`url`in t?String(t.url):``;n&&g(n)}function i(e){let t=me(e.detail);if(t!=null){h(e=>he(e,t));return}let n=le(e.detail);n&&(G(null),ue(n))}return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,n),e.on(`new-window-open`,r),e.on(`host-message`,i),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,n),e.off(`new-window-open`,r),e.off(`host-message`,i)}},[N,V,U,h]),(0,S.useEffect)(()=>{if(!n)return;function e(e){let t=pe(e.data);t!=null&&h(e=>he(e,t))}return window.addEventListener(`message`,e),function(){window.removeEventListener(`message`,e)}},[n,h]),(0,S.useEffect)(()=>{if(n)return function(){h(null)}},[n,h]);function Le(e){let t=_e(e);t&&(M(t),P(t),I(t),G(null),w(!1),T(null),D(!1))}function Re(e){e.key===`Enter`&&Le(Ee)}function ze(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.reload();return}let e=z.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}function Be(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.executeJavascript(`history.back()`);return}He(-1)}function Ve(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.executeJavascript(`history.forward()`);return}He(1)}function He(e){let t=z.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}(0,S.useEffect)(()=>{if(!n)return;if(!N){C&&w(!1);return}let e=!1,t=!C&&O;function r(){try{if(V){let e=X();if(!e||e.webviewId==null||!U)return;Ce(e,C,t);return}let e=z.current;if(!e)return;we(e,C,t)}catch(t){if(e||!C)return;let n=t instanceof Error?t.message:`Could not enable element selection.`;ge.error(`Failed to toggle browser selection mode:`,t),G(n),w(!1),re({title:`Selection mode unavailable`,description:n,variant:`destructive`})}}return r(),function(){e=!0}},[N,n,C,O,U,w,V]);function Ue(){G(null),w(e=>!e)}let We={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}}[L];function $(){return V?U?(0,S.createElement)(`electrobun-webview`,{ref:Ie,src:N,preload:ke,renderer:`native`,className:`block h-full w-full bg-background`}):null:(0,E.jsx)(`iframe`,{ref:z,src:N,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`})}return n?(0,E.jsx)(b,{children:(0,E.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,E.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,E.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[N&&(0,E.jsx)(k,{onClick:Be,label:`Back`,children:(0,E.jsx)(r,{size:15})}),N&&(0,E.jsx)(k,{onClick:Ve,label:`Forward`,children:(0,E.jsx)(c,{size:15})}),(0,E.jsx)(x,{type:`text`,value:Ee,onChange:e=>M(e.target.value),onKeyDown:Re,placeholder:`Enter URL...`,className:u(`flex-1 rounded-full bg-muted font-mono`),spellCheck:!1}),N&&(0,E.jsx)(k,{onClick:ze,label:`Refresh page`,children:(0,E.jsx)(a,{size:15})}),N&&(0,E.jsx)(k,{onClick:Ue,label:W?`Select element unavailable: ${W}`:C?`Exit element selection`:`Select element from preview`,isActive:C,activeStyle:`depressed`,children:(0,E.jsx)(d,{size:15})}),N&&(0,E.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,E.jsx)(k,{onClick:()=>Y(`desktop`),label:`Desktop view`,isActive:L===`desktop`,children:(0,E.jsx)(p,{size:15})}),(0,E.jsx)(k,{onClick:()=>Y(`tablet`),label:`Tablet view`,isActive:L===`tablet`,children:(0,E.jsx)(t,{size:15})}),(0,E.jsx)(k,{onClick:()=>Y(`mobile`),label:`Mobile view`,isActive:L===`mobile`,children:(0,E.jsx)(f,{size:15})})]}),N&&(0,E.jsx)(k,{onClick:()=>void g(N),label:`Open in external browser`,children:(0,E.jsx)(s,{size:15})})]})}),N?(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[W&&(0,E.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,W]}),(0,E.jsx)(`div`,{ref:B,className:u(`flex min-h-0 flex-1 items-center justify-center bg-background`,C&&`cursor-crosshair`),children:(0,E.jsx)(`div`,{className:`overflow-hidden border border-border bg-background shadow-sm ${L===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,style:{width:We.width,height:We.height,maxWidth:`100%`,maxHeight:`100%`},children:$()})})]}):(0,E.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:l?(0,E.jsx)(`p`,{className:i.body,children:`Dev server stopped`}):j&&Te?.runCommand?(0,E.jsx)(ae,{projectId:j,runCommand:Te.runCommand,large:!0}):(0,E.jsx)(`p`,{className:i.body,children:`Enter a URL to browse`})})]})}):(0,E.jsx)(`div`,{className:`hidden`,"aria-hidden":`true`,children:(0,E.jsx)(`div`,{ref:B,children:$()})})}export{A as BrowserTab};
8
+ })();`}function Ce(e,t,n=!1){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(O(t,n))}catch(r){throw ge.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,src:e.src,webview_id:e.webviewId,error:r instanceof Error?r.message:String(r),stack:r instanceof Error?r.stack:void 0}),r}}function we(e,t,n=!1){let r=e.contentWindow;if(!r)throw Error(`Browser preview frame is not ready`);let i=r.__tarskBrowserPreview;if(!i?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);i.setSelectMode(t,n)}function k(e){let t=(0,C.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a===void 0?!1:a,l=o===void 0?!1:o,d=s===void 0?`elevated`:s,f=l&&`cursor-not-allowed text-muted-foreground/50`,p=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,m=!l&&c&&d===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,g=!l&&c&&d===`elevated`&&`bg-background text-foreground shadow-sm`,_;t[0]!==f||t[1]!==p||t[2]!==m||t[3]!==g?(_=u(`rounded p-1.5 transition-all`,f,p,m,g),t[0]=f,t[1]=p,t[2]=m,t[3]=g,t[4]=_):_=t[4];let y;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==_?(y=(0,E.jsx)(ee,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:_,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=_,t[10]=y):y=t[10];let b;t[11]===r?b=t[12]:(b=(0,E.jsx)(h,{children:r}),t[11]=r,t[12]=b);let x;return t[13]!==b||t[14]!==y?(x=(0,E.jsxs)(v,{children:[y,b]}),t[13]=b,t[14]=y,t[15]=x):x=t[15],x}function A({instanceId:e}){let n=fe(e,`browser`),{devServerUrl:o,devServerStopped:l}=ue(),{browserResetTrigger:m,setBrowserPageTitle:h,browserDeviceMode:v,setBrowserDeviceMode:ee,isSelectModeEnabled:C,setIsSelectModeEnabled:w,setSelectedBrowserElement:T,setIsSelectionPromptOpen:D,isSelectionPromptOpen:O,setBrowserAgentProcessingThreadId:A}=ie(),j=ne(e=>e.selectedProjectId),Te=ne(e=>e.projects).find(e=>e.projectId===j),[Ee,M]=(0,S.useState)(``),[N,P]=(0,S.useState)(``),[F,I]=(0,S.useState)(``),[L,De]=(0,S.useState)(v),R=(0,S.useRef)(null),Oe=(0,S.useRef)(F),z=(0,S.useRef)(null),B=(0,S.useRef)(null),V=te(),ke=oe(),H=V&&!!N,[U,Ae]=(0,S.useState)(H),[je,Me]=(0,S.useState)(!0),[W,G]=(0,S.useState)(null),Ne=(0,S.useSyncExternalStore)(de,ce),Pe=(0,S.useSyncExternalStore)(_,y),K=n&&(je&&!Pe||Ne),Fe=(0,S.useRef)(K);Oe.current=F,Fe.current=K;let q=(0,S.useCallback)(function(){return Fe.current},[]),J=(0,S.useCallback)(function(){Me(xe(B.current))},[]);(0,S.useEffect)(()=>{De(v)},[v]);function Y(e){De(e),ee(e)}function X(){return R.current??ve(B.current)}(0,S.useLayoutEffect)(J),(0,S.useEffect)(()=>{let e=B.current;if(!e)return;let t=new ResizeObserver(J);return t.observe(e),function(){t.disconnect()}},[J,N,U]),(0,S.useLayoutEffect)(()=>{if(!V)return;if(H){Ae(!0);return}let e=X();e&&ye(e);let t=requestAnimationFrame(()=>{Ae(!1)});return function(){cancelAnimationFrame(t)}},[H,V,N]),(0,S.useEffect)(()=>{P(``),I(``),M(``),G(null),h(null),w(!1),T(null),D(!1),A(null);let e=R.current;e&&(e.src=``),z.current&&(z.current.src=``)},[m,A,h,w,D,T]);let Z=(0,S.useRef)(N),Q=(0,S.useRef)(null);Z.current=N,(0,S.useEffect)(()=>{if(l&&!o){P(``),I(``),M(``),G(null),n&&(w(!1),T(null),D(!1),A(null));let e=R.current;e&&(e.src=``),z.current&&(z.current.src=``);return}if(!o)return;let e=_e(o);M(e),(!Z.current||Z.current===Q.current)&&(P(e),I(e),Q.current=e),G(null),n&&(w(!1),T(null),D(!1),A(null))},[o,l,n,A,w,D,T]);let Ie=(0,S.useCallback)(e=>{R.current=e,e&&Se(e,Oe.current,q)},[q]);(0,S.useLayoutEffect)(()=>{if(!V||!U)return;let e=X();!e||e.webviewId==null||be(e,K)},[U,V,N,L,K]),(0,S.useEffect)(()=>{let e=X();if(!(!V||!e||!F||!U))return Se(e,F,q)},[F,V,N,U,q]),(0,S.useEffect)(()=>{let e=X();if(!V||!e||!U)return;function t(e){let t=typeof e.detail==`string`?e.detail:N;t&&(P(t),I(``),M(t))}function n(e){let t=typeof e.detail==`string`?e.detail:N;t&&(P(t),M(t))}function r(e){let t=e.detail,n=typeof t==`string`?t:typeof t==`object`&&t&&`url`in t?String(t.url):``;n&&g(n)}function i(e){let t=me(e.detail);if(t!=null){h(e=>he(e,t));return}let n=se(e.detail);n&&(G(null),le(n))}return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,n),e.on(`new-window-open`,r),e.on(`host-message`,i),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,n),e.off(`new-window-open`,r),e.off(`host-message`,i)}},[N,V,U,h]),(0,S.useEffect)(()=>{if(!n)return;function e(e){let t=pe(e.data);t!=null&&h(e=>he(e,t))}return window.addEventListener(`message`,e),function(){window.removeEventListener(`message`,e)}},[n,h]),(0,S.useEffect)(()=>{if(n)return function(){h(null)}},[n,h]);function Le(e){let t=_e(e);t&&(M(t),P(t),I(t),G(null),w(!1),T(null),D(!1))}function Re(e){e.key===`Enter`&&Le(Ee)}function ze(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.reload();return}let e=z.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}function Be(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.executeJavascript(`history.back()`);return}He(-1)}function Ve(){if(G(null),w(!1),T(null),D(!1),V){let e=X();e&&e.executeJavascript(`history.forward()`);return}He(1)}function He(e){let t=z.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}(0,S.useEffect)(()=>{if(!n)return;if(!N){C&&w(!1);return}let e=!1,t=!C&&O;function r(){try{if(V){let e=X();if(!e||e.webviewId==null||!U)return;Ce(e,C,t);return}let e=z.current;if(!e)return;we(e,C,t)}catch(t){if(e||!C)return;let n=t instanceof Error?t.message:`Could not enable element selection.`;ge.error(`Failed to toggle browser selection mode:`,t),G(n),w(!1),re({title:`Selection mode unavailable`,description:n,variant:`destructive`})}}return r(),function(){e=!0}},[N,n,C,O,U,w,V]);function Ue(){G(null),w(e=>!e)}let We={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}}[L];function $(){return V?U?(0,S.createElement)(`electrobun-webview`,{ref:Ie,src:N,preload:ke,renderer:`native`,className:`block h-full w-full bg-background`}):null:(0,E.jsx)(`iframe`,{ref:z,src:N,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`})}return n?(0,E.jsx)(b,{children:(0,E.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,E.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,E.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[N&&(0,E.jsx)(k,{onClick:Be,label:`Back`,children:(0,E.jsx)(r,{size:15})}),N&&(0,E.jsx)(k,{onClick:Ve,label:`Forward`,children:(0,E.jsx)(c,{size:15})}),(0,E.jsx)(x,{type:`text`,value:Ee,onChange:e=>M(e.target.value),onKeyDown:Re,placeholder:`Enter URL...`,className:u(`flex-1 rounded-full bg-muted font-mono`),spellCheck:!1}),N&&(0,E.jsx)(k,{onClick:ze,label:`Refresh page`,children:(0,E.jsx)(a,{size:15})}),N&&(0,E.jsx)(k,{onClick:Ue,label:W?`Select element unavailable: ${W}`:C?`Exit element selection`:`Select element from preview`,isActive:C,activeStyle:`depressed`,children:(0,E.jsx)(d,{size:15})}),N&&(0,E.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,E.jsx)(k,{onClick:()=>Y(`desktop`),label:`Desktop view`,isActive:L===`desktop`,children:(0,E.jsx)(p,{size:15})}),(0,E.jsx)(k,{onClick:()=>Y(`tablet`),label:`Tablet view`,isActive:L===`tablet`,children:(0,E.jsx)(t,{size:15})}),(0,E.jsx)(k,{onClick:()=>Y(`mobile`),label:`Mobile view`,isActive:L===`mobile`,children:(0,E.jsx)(f,{size:15})})]}),N&&(0,E.jsx)(k,{onClick:()=>void g(N),label:`Open in external browser`,children:(0,E.jsx)(s,{size:15})})]})}),N?(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[W&&(0,E.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,W]}),(0,E.jsx)(`div`,{ref:B,className:u(`flex min-h-0 flex-1 items-center justify-center bg-background`,C&&`cursor-crosshair`),children:(0,E.jsx)(`div`,{className:`overflow-hidden border border-border bg-background shadow-sm ${L===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,style:{width:We.width,height:We.height,maxWidth:`100%`,maxHeight:`100%`},children:$()})})]}):(0,E.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:l?(0,E.jsx)(`p`,{className:i.body,children:`Dev server stopped`}):j&&Te?.runCommand?(0,E.jsx)(ae,{projectId:j,runCommand:Te.runCommand,large:!0}):(0,E.jsx)(`p`,{className:i.body,children:`Enter a URL to browse`})})]})}):(0,E.jsx)(`div`,{className:`hidden`,"aria-hidden":`true`,children:(0,E.jsx)(`div`,{ref:B,children:$()})})}export{A as BrowserTab};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Jn as n,Ti as r,Wn as i,dr as a,wi as o}from"./interactive-WtOIgeV4.js";import{dr as s,ti as c}from"./onboarding-Dy7KG3M5.js";import{i as ee,n as l,q as u,r as d}from"./store-CSyJjyNs.js";var f=e(r(),1),te=o();function p({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];!t||Object.keys(t.extraChatPanes).length===0||(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function m(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),i=n.size>0||r.size>0;function o(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=o(e.selectedWindowId)?e.selectedWindowId:a,c=null;return e.layout===`expanded`&&i&&(c=o(e.expandedWindowId)?e.expandedWindowId:a),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var h=n(`app.window-state`);function g(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function _({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=l(),o=d(e=>e.selectedProjectId),ee=d(e=>e.projects),te=d(e=>e.threadMultiPaneStates),m=ee.find(e=>e.projectId===o),_=(m?.threads.map(e=>e.threadId)??[]).join(`\0`),v=m!==void 0,[y,b]=(0,f.useState)(null),x=(0,f.useRef)(null),S=(0,f.useRef)(Promise.resolve()),ne=(0,f.useRef)(null),re=(0,f.useRef)(0),C=(0,f.useRef)(g(e,t,n));C.current=g(e,t,n),(0,f.useEffect)(()=>{let e=ne.current!==o;if(ne.current=o,!o||!v){r(),b(null),x.current=null;return}e&&(r(),b(null),x.current=null);let t=o,n=_?_.split(`\0`):[],c=C.current,ee=++re.current,l=!1;async function d(){try{let e=await s(t);if(l||ee!==re.current)return;if(a({type:u.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),C.current!==c){b(t);return}x.current=JSON.stringify(e),i(e),b(t)}catch(e){l||h.error(`Failed to restore project window state`,e)}}return d(),()=>{l=!0}},[a,v,i,r,_,o]),(0,f.useEffect)(()=>{if(!o||o!==y||!v)return;let r=p({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:_?_.split(`\0`):[],threadMultiPaneStates:te}),i=JSON.stringify(r);if(i===x.current)return;let a=o;x.current=i,S.current=S.current.catch(()=>void 0).then(()=>c(a,r)).catch(e=>{h.error(`Failed to save project window state`,e),x.current===i&&(x.current=null)})},[t,v,y,e,o,n,_,te])}var v=t(),y=(0,f.createContext)(null);function b(e){let t=(0,te.c)(67),{children:n}=e,r=l(),o=ee(),s=d(re),c=d(ne),p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=[],t[0]=p):p=t[0];let[h,g]=(0,f.useState)(p),[b,C]=(0,f.useState)(!0),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(a),[ie,O]=(0,f.useState)(null),k;t[1]===c?k=t[2]:(k=Object.keys(c).map(S),t[1]=c,t[2]=k);let ae=k,A;t[3]!==ae||t[4]!==h?(A=[...ae,...h],t[3]=ae,t[4]=h,t[5]=A):A=t[5];let j=A,M;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>{g([]),C(!0),T(null),D(a),O(null)},t[6]=M):M=t[6];let oe=M,N;t[7]===o?N=t[8]:(N=e=>{let t=m(e,o.getState().selectedThreadId);g(t.nonChatWindows),T(t.expandedWindowId),D(t.selectedWindowId),O(null)},t[7]=o,t[8]=N);let se=N,P;t[9]!==w||t[10]!==se||t[11]!==h||t[12]!==E?(P={nonChatWindows:h,expandedWindowId:w,selectedWindowId:E,onReset:oe,onHydrate:se},t[9]=w,t[10]=se,t[11]=h,t[12]=E,t[13]=P):P=t[13],_(P);let F,I;t[14]!==w||t[15]!==c||t[16]!==b||t[17]!==j?(F=()=>{if(w){if(w===`primary`){if(b)return;T(j.length>0?j[0].id:null);return}!j.some(e=>e.id===w)&&!c[w]&&T(b?a:j[0]?.id??null)}},I=[w,c,b,j],t[14]=w,t[15]=c,t[16]=b,t[17]=j,t[18]=F,t[19]=I):(F=t[18],I=t[19]),(0,f.useEffect)(F,I);let L,R;t[20]!==c||t[21]!==b||t[22]!==E||t[23]!==j?(R=()=>{if(E===`primary`){if(b||j.length===0)return;D(j[0].id);return}!j.some(e=>e.id===E)&&!c[E]&&D(b?a:j[0]?.id??`primary`)},L=[c,b,E,j],t[20]=c,t[21]=b,t[22]=E,t[23]=j,t[24]=L,t[25]=R):(L=t[24],R=t[25]),(0,f.useEffect)(R,L);let z,B;t[26]!==w||t[27]!==j.length?(z=()=>{j.length===0&&w!==null&&T(null)},B=[w,j.length],t[26]=w,t[27]=j.length,t[28]=z,t[29]=B):(z=t[28],B=t[29]),(0,f.useEffect)(z,B);let V;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>{D(e)},t[30]=V):V=t[30];let ce=V,H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{D(e),T(e)},t[31]=H):H=t[31];let le=H,U;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>{T(null)},t[32]=U):U=t[32];let ue=U,W;t[33]!==b||t[34]!==j.length?(W=e=>{e===`primary`&&C(!0),T(t=>t===null&&j.length>0||t===null&&b&&e!==`primary`?null:e),O(e)},t[33]=b,t[34]=j.length,t[35]=W):W=t[35];let G=W,K;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>{O(null)},t[36]=K):K=t[36];let de=K,q;t[37]!==r||t[38]!==G||t[39]!==s?(q=e=>{let t=i();return e===`chat`?s?(r({type:u.AddChatPane,paneId:t,conversationId:i()}),G(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),G(t),t)},t[37]=r,t[38]=G,t[39]=s,t[40]=q):q=t[40];let fe=q,J;t[41]!==r||t[42]!==b||t[43]!==j?(J=e=>{if(e===`primary`){C(!1);let e=j[0]?.id??null;T(t=>j.length===0?null:t===`primary`?e:t),D(t=>t===`primary`&&e?e:t);return}let t=j.find(t=>t.id===e);t&&(t.panelId===`chat`?r({type:u.RemoveChatPane,paneId:e}):g(t=>t.filter(t=>t.id!==e)),T(t=>{if(j.length===1)return null;if(t===e){let t=j.filter(t=>t.id!==e);return b?a:t[0]?.id??null}return t}),D(t=>{if(t!==e)return t;let n=j.filter(t=>t.id!==e);return b?a:n[0]?.id??`primary`}))},t[41]=r,t[42]=b,t[43]=j,t[44]=J):J=t[44];let Y=J,X;t[45]!==r||t[46]!==j?(X=()=>{T(null),D(a),C(!0);for(let e of j)e.panelId===`chat`&&r({type:u.RemoveChatPane,paneId:e.id});g([])},t[45]=r,t[46]=j,t[47]=X):X=t[47];let pe=X,Z;t[48]!==b||t[49]!==j?(Z=e=>e===`chat`?b||j.some(x):j.some(t=>t.panelId===e),t[48]=b,t[49]=j,t[50]=Z):Z=t[50];let me=Z,he=j.length>0,ge=w!==null,Q;t[51]!==fe||t[52]!==pe||t[53]!==Y||t[54]!==w||t[55]!==he||t[56]!==ge||t[57]!==me||t[58]!==ie||t[59]!==b||t[60]!==G||t[61]!==E||t[62]!==j?(Q={windows:j,addWindow:fe,closeWindow:Y,closeAllWindows:pe,isPrimaryChatOpen:b,isPanelOpen:me,hasOpenWindows:he,isLayoutExpanded:ge,expandedWindowId:w,expandWindow:le,collapseLayout:ue,selectedWindowId:E,selectWindow:ce,revealWindow:G,pendingScrollWindowId:ie,clearPendingScrollWindow:de},t[51]=fe,t[52]=pe,t[53]=Y,t[54]=w,t[55]=he,t[56]=ge,t[57]=me,t[58]=ie,t[59]=b,t[60]=G,t[61]=E,t[62]=j,t[63]=Q):Q=t[63];let _e=Q,$;return t[64]!==n||t[65]!==_e?($=(0,v.jsx)(y.Provider,{value:_e,children:n}),t[64]=n,t[65]=_e,t[66]=$):$=t[66],$}function x(e){return e.panelId===`chat`}function S(e){return{id:e,panelId:`chat`}}function ne(e){return e.extraChatPanes}function re(e){return e.selectedThreadId}function C(){let e=(0,f.useContext)(y);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{C as n,b as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Jn as n,Ti as r,Wn as i,dr as a,wi as o}from"./interactive-WtOIgeV4.js";import{dr as s,ti as c}from"./onboarding-_okRJRpU.js";import{i as ee,n as l,q as u,r as d}from"./store-CSyJjyNs.js";var f=e(r(),1),te=o();function p({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];!t||Object.keys(t.extraChatPanes).length===0||(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function m(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),i=n.size>0||r.size>0;function o(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=o(e.selectedWindowId)?e.selectedWindowId:a,c=null;return e.layout===`expanded`&&i&&(c=o(e.expandedWindowId)?e.expandedWindowId:a),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var h=n(`app.window-state`);function g(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function _({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=l(),o=d(e=>e.selectedProjectId),ee=d(e=>e.projects),te=d(e=>e.threadMultiPaneStates),m=ee.find(e=>e.projectId===o),_=(m?.threads.map(e=>e.threadId)??[]).join(`\0`),v=m!==void 0,[y,b]=(0,f.useState)(null),x=(0,f.useRef)(null),S=(0,f.useRef)(Promise.resolve()),ne=(0,f.useRef)(null),re=(0,f.useRef)(0),C=(0,f.useRef)(g(e,t,n));C.current=g(e,t,n),(0,f.useEffect)(()=>{let e=ne.current!==o;if(ne.current=o,!o||!v){r(),b(null),x.current=null;return}e&&(r(),b(null),x.current=null);let t=o,n=_?_.split(`\0`):[],c=C.current,ee=++re.current,l=!1;async function d(){try{let e=await s(t);if(l||ee!==re.current)return;if(a({type:u.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),C.current!==c){b(t);return}x.current=JSON.stringify(e),i(e),b(t)}catch(e){l||h.error(`Failed to restore project window state`,e)}}return d(),()=>{l=!0}},[a,v,i,r,_,o]),(0,f.useEffect)(()=>{if(!o||o!==y||!v)return;let r=p({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:_?_.split(`\0`):[],threadMultiPaneStates:te}),i=JSON.stringify(r);if(i===x.current)return;let a=o;x.current=i,S.current=S.current.catch(()=>void 0).then(()=>c(a,r)).catch(e=>{h.error(`Failed to save project window state`,e),x.current===i&&(x.current=null)})},[t,v,y,e,o,n,_,te])}var v=t(),y=(0,f.createContext)(null);function b(e){let t=(0,te.c)(67),{children:n}=e,r=l(),o=ee(),s=d(re),c=d(ne),p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=[],t[0]=p):p=t[0];let[h,g]=(0,f.useState)(p),[b,C]=(0,f.useState)(!0),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(a),[ie,O]=(0,f.useState)(null),k;t[1]===c?k=t[2]:(k=Object.keys(c).map(S),t[1]=c,t[2]=k);let ae=k,A;t[3]!==ae||t[4]!==h?(A=[...ae,...h],t[3]=ae,t[4]=h,t[5]=A):A=t[5];let j=A,M;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>{g([]),C(!0),T(null),D(a),O(null)},t[6]=M):M=t[6];let oe=M,N;t[7]===o?N=t[8]:(N=e=>{let t=m(e,o.getState().selectedThreadId);g(t.nonChatWindows),T(t.expandedWindowId),D(t.selectedWindowId),O(null)},t[7]=o,t[8]=N);let se=N,P;t[9]!==w||t[10]!==se||t[11]!==h||t[12]!==E?(P={nonChatWindows:h,expandedWindowId:w,selectedWindowId:E,onReset:oe,onHydrate:se},t[9]=w,t[10]=se,t[11]=h,t[12]=E,t[13]=P):P=t[13],_(P);let F,I;t[14]!==w||t[15]!==c||t[16]!==b||t[17]!==j?(F=()=>{if(w){if(w===`primary`){if(b)return;T(j.length>0?j[0].id:null);return}!j.some(e=>e.id===w)&&!c[w]&&T(b?a:j[0]?.id??null)}},I=[w,c,b,j],t[14]=w,t[15]=c,t[16]=b,t[17]=j,t[18]=F,t[19]=I):(F=t[18],I=t[19]),(0,f.useEffect)(F,I);let L,R;t[20]!==c||t[21]!==b||t[22]!==E||t[23]!==j?(R=()=>{if(E===`primary`){if(b||j.length===0)return;D(j[0].id);return}!j.some(e=>e.id===E)&&!c[E]&&D(b?a:j[0]?.id??`primary`)},L=[c,b,E,j],t[20]=c,t[21]=b,t[22]=E,t[23]=j,t[24]=L,t[25]=R):(L=t[24],R=t[25]),(0,f.useEffect)(R,L);let z,B;t[26]!==w||t[27]!==j.length?(z=()=>{j.length===0&&w!==null&&T(null)},B=[w,j.length],t[26]=w,t[27]=j.length,t[28]=z,t[29]=B):(z=t[28],B=t[29]),(0,f.useEffect)(z,B);let V;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>{D(e)},t[30]=V):V=t[30];let ce=V,H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{D(e),T(e)},t[31]=H):H=t[31];let le=H,U;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>{T(null)},t[32]=U):U=t[32];let ue=U,W;t[33]!==b||t[34]!==j.length?(W=e=>{e===`primary`&&C(!0),T(t=>t===null&&j.length>0||t===null&&b&&e!==`primary`?null:e),O(e)},t[33]=b,t[34]=j.length,t[35]=W):W=t[35];let G=W,K;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>{O(null)},t[36]=K):K=t[36];let de=K,q;t[37]!==r||t[38]!==G||t[39]!==s?(q=e=>{let t=i();return e===`chat`?s?(r({type:u.AddChatPane,paneId:t,conversationId:i()}),G(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),G(t),t)},t[37]=r,t[38]=G,t[39]=s,t[40]=q):q=t[40];let fe=q,J;t[41]!==r||t[42]!==b||t[43]!==j?(J=e=>{if(e===`primary`){C(!1);let e=j[0]?.id??null;T(t=>j.length===0?null:t===`primary`?e:t),D(t=>t===`primary`&&e?e:t);return}let t=j.find(t=>t.id===e);t&&(t.panelId===`chat`?r({type:u.RemoveChatPane,paneId:e}):g(t=>t.filter(t=>t.id!==e)),T(t=>{if(j.length===1)return null;if(t===e){let t=j.filter(t=>t.id!==e);return b?a:t[0]?.id??null}return t}),D(t=>{if(t!==e)return t;let n=j.filter(t=>t.id!==e);return b?a:n[0]?.id??`primary`}))},t[41]=r,t[42]=b,t[43]=j,t[44]=J):J=t[44];let Y=J,X;t[45]!==r||t[46]!==j?(X=()=>{T(null),D(a),C(!0);for(let e of j)e.panelId===`chat`&&r({type:u.RemoveChatPane,paneId:e.id});g([])},t[45]=r,t[46]=j,t[47]=X):X=t[47];let pe=X,Z;t[48]!==b||t[49]!==j?(Z=e=>e===`chat`?b||j.some(x):j.some(t=>t.panelId===e),t[48]=b,t[49]=j,t[50]=Z):Z=t[50];let me=Z,he=j.length>0,ge=w!==null,Q;t[51]!==fe||t[52]!==pe||t[53]!==Y||t[54]!==w||t[55]!==he||t[56]!==ge||t[57]!==me||t[58]!==ie||t[59]!==b||t[60]!==G||t[61]!==E||t[62]!==j?(Q={windows:j,addWindow:fe,closeWindow:Y,closeAllWindows:pe,isPrimaryChatOpen:b,isPanelOpen:me,hasOpenWindows:he,isLayoutExpanded:ge,expandedWindowId:w,expandWindow:le,collapseLayout:ue,selectedWindowId:E,selectWindow:ce,revealWindow:G,pendingScrollWindowId:ie,clearPendingScrollWindow:de},t[51]=fe,t[52]=pe,t[53]=Y,t[54]=w,t[55]=he,t[56]=ge,t[57]=me,t[58]=ie,t[59]=b,t[60]=G,t[61]=E,t[62]=j,t[63]=Q):Q=t[63];let _e=Q,$;return t[64]!==n||t[65]!==_e?($=(0,v.jsx)(y.Provider,{value:_e,children:n}),t[64]=n,t[65]=_e,t[66]=$):$=t[66],$}function x(e){return e.panelId===`chat`}function S(e){return{id:e,panelId:`chat`}}function ne(e){return e.extraChatPanes}function re(e){return e.selectedThreadId}function C(){let e=(0,f.useContext)(y);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{C as n,b as t};
@@ -1 +1 @@
1
- import{Ci as e,Fr as t,O as n,wi as r}from"./interactive-WtOIgeV4.js";import{A as i,Ct as a,D as o,O as s,St as c,T as l,Tt as u,b as d,j as f,k as p,s as m,wo as h,wt as g}from"./onboarding-Dy7KG3M5.js";import{G as _,bt as v}from"./index-cAZJlfDA.js";var y=r(),b=e();function x(e){let r=(0,y.c)(50),{open:x,onOpenChange:S,commitMessage:C,onCommitMessageChange:w,autoGenerateCommitMessage:T,onAutoGenerateChange:E,isGeneratingMessage:D,isLoading:O,onGenerateMessage:k,onCommit:A,currentBranch:j}=e,M;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,b.jsx)(f,{children:`Commit Changes`}),r[0]=M):M=r[0];let N;r[1]===j?N=r[2]:(N=(0,b.jsxs)(i,{children:[M,(0,b.jsxs)(s,{children:[`Enter a commit message for your changes on branch `,j]})]}),r[1]=j,r[2]=N);let P;r[3]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,b.jsx)(d,{htmlFor:`commit-message`,children:`Commit Message`}),r[3]=P):P=r[3];let F;r[4]===w?F=r[5]:(F=e=>w(e.target.value),r[4]=w,r[5]=F);let I;r[6]!==C||r[7]!==D||r[8]!==F?(I=(0,b.jsx)(_,{id:`commit-message`,placeholder:`Enter commit message...`,value:C,onChange:F,disabled:D,className:`pr-10 h-full min-h-[14rem] resize-none`}),r[6]=C,r[7]=D,r[8]=F,r[9]=I):I=r[9];let L=D||O,R;r[10]===D?R=r[11]:(R=D?(0,b.jsx)(v,{}):(0,b.jsx)(n,{className:`h-3.5 w-3.5`}),r[10]=D,r[11]=R);let z;r[12]!==k||r[13]!==L||r[14]!==R?(z=(0,b.jsx)(u,{asChild:!0,children:(0,b.jsx)(h,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:k,disabled:L,children:R})}),r[12]=k,r[13]=L,r[14]=R,r[15]=z):z=r[15];let B=D?`Generating commit message...`:`Generate commit message with AI`,V;r[16]===B?V=r[17]:(V=(0,b.jsx)(a,{children:B}),r[16]=B,r[17]=V);let H;r[18]!==V||r[19]!==z?(H=(0,b.jsx)(g,{children:(0,b.jsxs)(c,{children:[z,V]})}),r[18]=V,r[19]=z,r[20]=H):H=r[20];let U;r[21]!==H||r[22]!==I?(U=(0,b.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,b.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,b.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]})}),r[21]=H,r[22]=I,r[23]=U):U=r[23];let W;r[24]===E?W=r[25]:(W=e=>E(e===!0),r[24]=E,r[25]=W);let G;r[26]!==T||r[27]!==W?(G=(0,b.jsx)(m,{id:`auto-generate`,checked:T,onCheckedChange:W}),r[26]=T,r[27]=W,r[28]=G):G=r[28];let K;r[29]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,b.jsx)(d,{htmlFor:`auto-generate`,className:t.labelNormal,children:`Auto generate commit messages`}),r[29]=K):K=r[29];let q;r[30]===G?q=r[31]:(q=(0,b.jsxs)(`div`,{className:`mr-auto flex items-center gap-2`,children:[G,K]}),r[30]=G,r[31]=q);let J;r[32]!==C||r[33]!==O?(J=O||!C.trim(),r[32]=C,r[33]=O,r[34]=J):J=r[34];let Y=O?`Committing...`:`Commit`,X;r[35]!==A||r[36]!==J||r[37]!==Y?(X=(0,b.jsx)(h,{className:`ml-auto`,onClick:A,disabled:J,children:Y}),r[35]=A,r[36]=J,r[37]=Y,r[38]=X):X=r[38];let Z;r[39]!==q||r[40]!==X?(Z=(0,b.jsxs)(p,{className:`w-full items-end gap-4`,children:[q,X]}),r[39]=q,r[40]=X,r[41]=Z):Z=r[41];let Q;r[42]!==U||r[43]!==N||r[44]!==Z?(Q=(0,b.jsxs)(o,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[N,U,Z]}),r[42]=U,r[43]=N,r[44]=Z,r[45]=Q):Q=r[45];let $;return r[46]!==S||r[47]!==x||r[48]!==Q?($=(0,b.jsx)(l,{open:x,onOpenChange:S,children:Q}),r[46]=S,r[47]=x,r[48]=Q,r[49]=$):$=r[49],$}export{x as CommitDialog};
1
+ import{Ci as e,Fr as t,O as n,wi as r}from"./interactive-WtOIgeV4.js";import{A as i,Ct as a,D as o,O as s,St as c,T as l,Tt as u,b as d,j as f,k as p,s as m,wo as h,wt as g}from"./onboarding-_okRJRpU.js";import{K as _,xt as v}from"./index-BdDEzAzX.js";var y=r(),b=e();function x(e){let r=(0,y.c)(52),{open:x,onOpenChange:S,commitMessage:C,onCommitMessageChange:w,autoGenerateCommitMessage:T,onAutoGenerateChange:E,isGeneratingMessage:D,isLoading:O,onGenerateMessage:k,onCommit:A,currentBranch:j}=e,M;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,b.jsx)(f,{children:`Commit Changes`}),r[0]=M):M=r[0];let N;r[1]===j?N=r[2]:(N=(0,b.jsxs)(i,{children:[M,(0,b.jsxs)(s,{children:[`Enter a commit message for your changes on branch `,j]})]}),r[1]=j,r[2]=N);let P;r[3]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,b.jsx)(d,{htmlFor:`commit-message`,children:`Commit Message`}),r[3]=P):P=r[3];let F;r[4]===w?F=r[5]:(F=e=>w(e.target.value),r[4]=w,r[5]=F);let I;r[6]!==C||r[7]!==D||r[8]!==F?(I=(0,b.jsx)(_,{id:`commit-message`,placeholder:`Enter commit message...`,value:C,onChange:F,disabled:D,className:`pr-10 h-full min-h-[14rem] resize-none`}),r[6]=C,r[7]=D,r[8]=F,r[9]=I):I=r[9];let L=D||O,R;r[10]===D?R=r[11]:(R=D?(0,b.jsx)(v,{}):(0,b.jsx)(n,{className:`h-3.5 w-3.5`}),r[10]=D,r[11]=R);let z;r[12]!==k||r[13]!==L||r[14]!==R?(z=(0,b.jsx)(u,{asChild:!0,children:(0,b.jsx)(h,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:k,disabled:L,children:R})}),r[12]=k,r[13]=L,r[14]=R,r[15]=z):z=r[15];let B=D?`Generating commit message...`:`Generate commit message with AI`,V;r[16]===B?V=r[17]:(V=(0,b.jsx)(a,{children:B}),r[16]=B,r[17]=V);let H;r[18]!==V||r[19]!==z?(H=(0,b.jsx)(g,{children:(0,b.jsxs)(c,{children:[z,V]})}),r[18]=V,r[19]=z,r[20]=H):H=r[20];let U;r[21]!==H||r[22]!==I?(U=(0,b.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,b.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,b.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]})}),r[21]=H,r[22]=I,r[23]=U):U=r[23];let W;r[24]===E?W=r[25]:(W=e=>E(e===!0),r[24]=E,r[25]=W);let G;r[26]!==T||r[27]!==W?(G=(0,b.jsx)(m,{id:`auto-generate`,checked:T,onCheckedChange:W}),r[26]=T,r[27]=W,r[28]=G):G=r[28];let K;r[29]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,b.jsx)(d,{htmlFor:`auto-generate`,className:t.labelNormal,children:`Auto generate commit messages`}),r[29]=K):K=r[29];let q;r[30]===G?q=r[31]:(q=(0,b.jsxs)(`div`,{className:`mr-auto flex items-center gap-2`,children:[G,K]}),r[30]=G,r[31]=q);let J;r[32]!==C||r[33]!==O?(J=O||!C.trim(),r[32]=C,r[33]=O,r[34]=J):J=r[34];let Y;r[35]===O?Y=r[36]:(Y=O?(0,b.jsxs)(b.Fragment,{children:[`Commit`,(0,b.jsx)(v,{size:`sm`})]}):`Commit`,r[35]=O,r[36]=Y);let X;r[37]!==A||r[38]!==J||r[39]!==Y?(X=(0,b.jsx)(h,{className:`ml-auto`,onClick:A,disabled:J,children:Y}),r[37]=A,r[38]=J,r[39]=Y,r[40]=X):X=r[40];let Z;r[41]!==q||r[42]!==X?(Z=(0,b.jsxs)(p,{className:`w-full items-center gap-4`,children:[q,X]}),r[41]=q,r[42]=X,r[43]=Z):Z=r[43];let Q;r[44]!==U||r[45]!==N||r[46]!==Z?(Q=(0,b.jsxs)(o,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[N,U,Z]}),r[44]=U,r[45]=N,r[46]=Z,r[47]=Q):Q=r[47];let $;return r[48]!==S||r[49]!==x||r[50]!==Q?($=(0,b.jsx)(l,{open:x,onOpenChange:S,children:Q}),r[48]=S,r[49]=x,r[50]=Q,r[51]=$):$=r[51],$}export{x as CommitDialog};
@@ -1 +1 @@
1
- import{Ci as e,Fr as t,ei as n,i as r,wi as i}from"./interactive-WtOIgeV4.js";import{a,b as o,o as s}from"./onboarding-Dy7KG3M5.js";var c=i(),l=e(),u=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,d=`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`;function f(e){let i=(0,c.c)(11),{commitMethod:o,onCommitMethodChange:f,disabled:p,className:m}=e,h=p===void 0?!1:p,g;i[0]===f?g=i[1]:(g=e=>{(e===n.PullRequest||e===n.Direct)&&f(e)},i[0]=f,i[1]=g);let _;i[2]===m?_=i[3]:(_=r(u,m),i[2]=m,i[3]=_);let v;i[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(s,{value:n.PullRequest,"aria-label":`Pull Requests`,className:r(t.body,d),children:`Pull Requests`}),i[4]=v):v=i[4];let y;i[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(s,{value:n.Direct,"aria-label":`Direct Commits`,className:r(t.body,d),children:`Direct Commits`}),i[5]=y):y=i[5];let b;return i[6]!==o||i[7]!==h||i[8]!==g||i[9]!==_?(b=(0,l.jsxs)(a,{type:`single`,value:o,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),i[6]=o,i[7]=h,i[8]=g,i[9]=_,i[10]=b):b=i[10],b}function p(e){let r=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:a}=e,s;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(o,{children:`Commit method`}),r[0]=s):s=r[0];let u;r[1]!==i||r[2]!==a?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:a}),r[1]=i,r[2]=a,r[3]=u):u=r[3];let d=i===n.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`,p;r[4]===d?p=r[5]:(p=(0,l.jsx)(`p`,{className:t.bodyMuted,children:d}),r[4]=d,r[5]=p);let m;return r[6]!==u||r[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),r[6]=u,r[7]=p,r[8]=m):m=r[8],m}export{f as i,d as n,p as r,u as t};
1
+ import{Ci as e,Fr as t,ei as n,i as r,wi as i}from"./interactive-WtOIgeV4.js";import{a,b as o,o as s}from"./onboarding-_okRJRpU.js";var c=i(),l=e(),u=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,d=`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`;function f(e){let i=(0,c.c)(11),{commitMethod:o,onCommitMethodChange:f,disabled:p,className:m}=e,h=p===void 0?!1:p,g;i[0]===f?g=i[1]:(g=e=>{(e===n.PullRequest||e===n.Direct)&&f(e)},i[0]=f,i[1]=g);let _;i[2]===m?_=i[3]:(_=r(u,m),i[2]=m,i[3]=_);let v;i[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(s,{value:n.PullRequest,"aria-label":`Pull Requests`,className:r(t.body,d),children:`Pull Requests`}),i[4]=v):v=i[4];let y;i[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(s,{value:n.Direct,"aria-label":`Direct Commits`,className:r(t.body,d),children:`Direct Commits`}),i[5]=y):y=i[5];let b;return i[6]!==o||i[7]!==h||i[8]!==g||i[9]!==_?(b=(0,l.jsxs)(a,{type:`single`,value:o,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),i[6]=o,i[7]=h,i[8]=g,i[9]=_,i[10]=b):b=i[10],b}function p(e){let r=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:a}=e,s;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(o,{children:`Commit method`}),r[0]=s):s=r[0];let u;r[1]!==i||r[2]!==a?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:a}),r[1]=i,r[2]=a,r[3]=u):u=r[3];let d=i===n.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`,p;r[4]===d?p=r[5]:(p=(0,l.jsx)(`p`,{className:t.bodyMuted,children:d}),r[4]=d,r[5]=p);let m;return r[6]!==u||r[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),r[6]=u,r[7]=p,r[8]=m):m=r[8],m}export{f as i,d as n,p as r,u as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,fn as i,hn as a,i as o,on as s,wi as c}from"./interactive-WtOIgeV4.js";import{C as l,S as u,_ as d,b as f,g as p,h as m,m as h,p as g,v as _,w as v,x as y,y as b}from"./react-vendor-DgnPMVt4.js";var x=c(),S=e(r(),1),C=t(),w=f,T=v,E=S.forwardRef((e,t)=>{let r=(0,x.c)(14),a,s,c,u;r[0]===e?(a=r[1],s=r[2],c=r[3],u=r[4]):({className:s,inset:c,children:a,...u}=e,r[0]=e,r[1]=a,r[2]=s,r[3]=c,r[4]=u);let d;r[5]!==s||r[6]!==c?(d=o(o(n.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),c&&`pl-8`,s),r[5]=s,r[6]=c,r[7]=d):d=r[7];let f;r[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,C.jsx)(i,{className:`ml-auto h-4 w-4`}),r[8]=f):f=r[8];let p;return r[9]!==a||r[10]!==u||r[11]!==t||r[12]!==d?(p=(0,C.jsxs)(l,{ref:t,className:d,...u,children:[a,f]}),r[9]=a,r[10]=u,r[11]=t,r[12]=d,r[13]=p):p=r[13],p});E.displayName=l.displayName;var D=S.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=o(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 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`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(u,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});D.displayName=u.displayName;var O=S.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=o(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(_,{children:(0,C.jsx)(h,{ref:t,className:a,...i})}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});O.displayName=h.displayName;var k=S.forwardRef((e,t)=>{let r=(0,x.c)(11),i,a,s;r[0]===e?(i=r[1],a=r[2],s=r[3]):({className:i,inset:a,...s}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=s);let c;r[4]!==i||r[5]!==a?(c=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a&&`pl-8`,i),r[4]=i,r[5]=a,r[6]=c):c=r[6];let l;return r[7]!==s||r[8]!==t||r[9]!==c?(l=(0,C.jsx)(m,{ref:t,className:c,...s}),r[7]=s,r[8]=t,r[9]=c,r[10]=l):l=r[10],l});k.displayName=m.displayName;var A=S.forwardRef((e,t)=>{let r=(0,x.c)(14),i,s,c,l;r[0]===e?(i=r[1],s=r[2],c=r[3],l=r[4]):({className:c,children:s,checked:i,...l}=e,r[0]=e,r[1]=i,r[2]=s,r[3]=c,r[4]=l);let u;r[5]===c?u=r[6]:(u=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),c),r[5]=c,r[6]=u);let d;r[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(p,{children:(0,C.jsx)(a,{className:`h-4 w-4`})})}),r[7]=d):d=r[7];let f;return r[8]!==i||r[9]!==s||r[10]!==l||r[11]!==t||r[12]!==u?(f=(0,C.jsxs)(g,{ref:t,className:u,checked:i,...l,children:[d,s]}),r[8]=i,r[9]=s,r[10]=l,r[11]=t,r[12]=u,r[13]=f):f=r[13],f});A.displayName=g.displayName;var j=S.forwardRef((e,t)=>{let r=(0,x.c)(12),i,a,c;r[0]===e?(i=r[1],a=r[2],c=r[3]):({className:a,children:i,...c}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=c);let l;r[4]===a?l=r[5]:(l=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a),r[4]=a,r[5]=l);let u;r[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(p,{children:(0,C.jsx)(s,{className:`h-2 w-2 fill-current`})})}),r[6]=u):u=r[6];let d;return r[7]!==i||r[8]!==c||r[9]!==t||r[10]!==l?(d=(0,C.jsxs)(b,{ref:t,className:l,...c,children:[u,i]}),r[7]=i,r[8]=c,r[9]=t,r[10]=l,r[11]=d):d=r[11],d});j.displayName=b.displayName;var M=S.forwardRef((e,t)=>{let r=(0,x.c)(11),i,a,s;r[0]===e?(i=r[1],a=r[2],s=r[3]):({className:i,inset:a,...s}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=s);let c;r[4]!==i||r[5]!==a?(c=o(o(n.body,`px-2 py-1.5 font-semibold text-foreground`),a&&`pl-8`,i),r[4]=i,r[5]=a,r[6]=c):c=r[6];let l;return r[7]!==s||r[8]!==t||r[9]!==c?(l=(0,C.jsx)(d,{ref:t,className:c,...s}),r[7]=s,r[8]=t,r[9]=c,r[10]=l):l=r[10],l});M.displayName=d.displayName;var N=S.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=o(`-mx-1 my-1 h-px bg-divider`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(y,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});N.displayName=y.displayName;var P=e=>{let t=(0,x.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=o(n.compact,`ml-auto tracking-widest text-muted-foreground`,r),t[3]=r,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,C.jsx)(`span`,{className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s};P.displayName=`ContextMenuShortcut`;export{T as a,N as i,O as n,k as r,w as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,fn as i,hn as a,i as o,on as s,wi as c}from"./interactive-WtOIgeV4.js";import{C as l,S as u,_ as d,b as f,g as p,h as m,m as h,p as g,v as _,w as v,x as y,y as b}from"./react-vendor-DM3Nejio.js";var x=c(),S=e(r(),1),C=t(),w=f,T=v,E=S.forwardRef((e,t)=>{let r=(0,x.c)(14),a,s,c,u;r[0]===e?(a=r[1],s=r[2],c=r[3],u=r[4]):({className:s,inset:c,children:a,...u}=e,r[0]=e,r[1]=a,r[2]=s,r[3]=c,r[4]=u);let d;r[5]!==s||r[6]!==c?(d=o(o(n.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),c&&`pl-8`,s),r[5]=s,r[6]=c,r[7]=d):d=r[7];let f;r[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,C.jsx)(i,{className:`ml-auto h-4 w-4`}),r[8]=f):f=r[8];let p;return r[9]!==a||r[10]!==u||r[11]!==t||r[12]!==d?(p=(0,C.jsxs)(l,{ref:t,className:d,...u,children:[a,f]}),r[9]=a,r[10]=u,r[11]=t,r[12]=d,r[13]=p):p=r[13],p});E.displayName=l.displayName;var D=S.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=o(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 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`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(u,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});D.displayName=u.displayName;var O=S.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=o(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(_,{children:(0,C.jsx)(h,{ref:t,className:a,...i})}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});O.displayName=h.displayName;var k=S.forwardRef((e,t)=>{let r=(0,x.c)(11),i,a,s;r[0]===e?(i=r[1],a=r[2],s=r[3]):({className:i,inset:a,...s}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=s);let c;r[4]!==i||r[5]!==a?(c=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a&&`pl-8`,i),r[4]=i,r[5]=a,r[6]=c):c=r[6];let l;return r[7]!==s||r[8]!==t||r[9]!==c?(l=(0,C.jsx)(m,{ref:t,className:c,...s}),r[7]=s,r[8]=t,r[9]=c,r[10]=l):l=r[10],l});k.displayName=m.displayName;var A=S.forwardRef((e,t)=>{let r=(0,x.c)(14),i,s,c,l;r[0]===e?(i=r[1],s=r[2],c=r[3],l=r[4]):({className:c,children:s,checked:i,...l}=e,r[0]=e,r[1]=i,r[2]=s,r[3]=c,r[4]=l);let u;r[5]===c?u=r[6]:(u=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),c),r[5]=c,r[6]=u);let d;r[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(p,{children:(0,C.jsx)(a,{className:`h-4 w-4`})})}),r[7]=d):d=r[7];let f;return r[8]!==i||r[9]!==s||r[10]!==l||r[11]!==t||r[12]!==u?(f=(0,C.jsxs)(g,{ref:t,className:u,checked:i,...l,children:[d,s]}),r[8]=i,r[9]=s,r[10]=l,r[11]=t,r[12]=u,r[13]=f):f=r[13],f});A.displayName=g.displayName;var j=S.forwardRef((e,t)=>{let r=(0,x.c)(12),i,a,c;r[0]===e?(i=r[1],a=r[2],c=r[3]):({className:a,children:i,...c}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=c);let l;r[4]===a?l=r[5]:(l=o(o(n.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a),r[4]=a,r[5]=l);let u;r[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(p,{children:(0,C.jsx)(s,{className:`h-2 w-2 fill-current`})})}),r[6]=u):u=r[6];let d;return r[7]!==i||r[8]!==c||r[9]!==t||r[10]!==l?(d=(0,C.jsxs)(b,{ref:t,className:l,...c,children:[u,i]}),r[7]=i,r[8]=c,r[9]=t,r[10]=l,r[11]=d):d=r[11],d});j.displayName=b.displayName;var M=S.forwardRef((e,t)=>{let r=(0,x.c)(11),i,a,s;r[0]===e?(i=r[1],a=r[2],s=r[3]):({className:i,inset:a,...s}=e,r[0]=e,r[1]=i,r[2]=a,r[3]=s);let c;r[4]!==i||r[5]!==a?(c=o(o(n.body,`px-2 py-1.5 font-semibold text-foreground`),a&&`pl-8`,i),r[4]=i,r[5]=a,r[6]=c):c=r[6];let l;return r[7]!==s||r[8]!==t||r[9]!==c?(l=(0,C.jsx)(d,{ref:t,className:c,...s}),r[7]=s,r[8]=t,r[9]=c,r[10]=l):l=r[10],l});M.displayName=d.displayName;var N=S.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=o(`-mx-1 my-1 h-px bg-divider`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,C.jsx)(y,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});N.displayName=y.displayName;var P=e=>{let t=(0,x.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=o(n.compact,`ml-auto tracking-widest text-muted-foreground`,r),t[3]=r,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,C.jsx)(`span`,{className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s};P.displayName=`ContextMenuShortcut`;export{T as a,N as i,O as n,k as r,w as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,Ci as n,Fr as r,Ti as i,i as a,o,ut as s,wi as c,y as ee}from"./interactive-WtOIgeV4.js";import{_t as l,nt as u}from"./react-vendor-DgnPMVt4.js";import{Wa as d,bt as f,do as p,dt as te,gr as m,ja as h,nn as g,rt as _,wo as v}from"./onboarding-Dy7KG3M5.js";import{n as ne}from"./use-toast-BFQ85Ly5.js";import{At as y,Dt as b,Et as x,Mt as S,Ot as re,S as C,Tt as w,it as T,kt as E}from"./index-cAZJlfDA.js";import{t as D}from"./delete-confirm-dialog-DoRgqETX.js";import{i as O,r as k}from"./table-CYWF-RhQ.js";var A=e(i(),1),j=c(),M=25;function ie(){let e=(0,j.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:T.conversations.recent(),queryFn:N,initialPageParam:0,getNextPageParam(e){let t=e.offset+e.conversations.length;return t<e.total?t:void 0}},e[0]=t):t=e[0];let n=l(t),r;e[1]===n.data?.pages?r=e[2]:(r=n.data?.pages.flatMap(function(e){return e.conversations})??[],e[1]=n.data?.pages,e[2]=r);let i=r,a=n.data?.pages[0]?.total??0,o;return e[3]!==i||e[4]!==n.error||e[5]!==n.fetchNextPage||e[6]!==n.hasNextPage||e[7]!==n.isFetchingNextPage||e[8]!==n.isPending||e[9]!==n.refetch||e[10]!==a?(o={conversations:i,total:a,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=i,e[4]=n.error,e[5]=n.fetchNextPage,e[6]=n.hasNextPage,e[7]=n.isFetchingNextPage,e[8]=n.isPending,e[9]=n.refetch,e[10]=a,e[11]=o):o=e[11],o}function N(e){let{pageParam:t}=e;return m(M,t)}var P=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],F=new Set(P.map(function(e){return e.id}));function I(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&F.has(e)}):[]}catch{return[]}}function L(){return I(d(h.HISTORY_COLUMNS))}function R(){let e=(0,j.c)(6),[t,n]=(0,A.useState)(L),r;e[0]===t?r=e[1]:(r=function(e){return t.includes(e)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=function(e,t){n(function(n){let r=t?n.includes(e)?n:[...n,e]:n.filter(function(t){return t!==e});return p(h.HISTORY_COLUMNS,JSON.stringify(r)),r})},e[2]=a):a=e[2];let o=a,s;return e[3]!==i||e[4]!==t?(s={visibleColumns:t,isColumnVisible:i,setColumnVisible:o},e[3]=i,e[4]=t,e[5]=s):s=e[5],s}var z=n(),B=36,V=3,H=`table-fixed`,U=`h-9 w-48 bg-transparent py-2`,W=`h-9 bg-transparent py-2`,G=`h-9 w-20 bg-transparent py-2 text-right`,K=`h-9 w-28 bg-transparent py-2 text-right`,q=`h-9 w-28 bg-transparent py-2 text-right`,J=`h-9 w-40 bg-transparent py-2`,Y=`h-9 w-32 bg-transparent py-2`,ae=`h-9 w-24 bg-transparent py-2 text-right`,oe=a(r.bodyMuted,`w-48 truncate py-1.5`),se=`py-1.5`,X=a(r.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),Z=a(r.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),Q=a(r.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),ce=a(r.bodyMuted,`w-40 truncate py-1.5`),$=a(r.bodyMuted,`w-32 truncate py-1.5`),le=a(r.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function ue(e){let t=(0,j.c)(4),n;if(t[0]!==e){let{style:i,...o}=e,s;t[2]===i?s=t[3]:(s={...i,width:`100%`},t[2]=i,t[3]=s),n=(0,z.jsx)(`table`,{...o,style:s,className:a(`w-full caption-bottom select-text`,H,r.body,o.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function de(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function fe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function pe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function me(e){return function(){return(0,z.jsx)(`tr`,{children:(0,z.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,z.jsx)(f,{label:`Loading more…`,size:`sm`})})})}}function he(e){switch(e){case`turns`:return(0,z.jsx)(O,{className:G,children:`Turns`},e);case`inputTokens`:return(0,z.jsx)(O,{className:K,children:`Input Tokens`},e);case`outputTokens`:return(0,z.jsx)(O,{className:q,children:`Output Tokens`},e);case`model`:return(0,z.jsx)(O,{className:J,children:`Model`},e);case`branch`:return(0,z.jsx)(O,{className:Y,children:`Branch`},e)}}function ge(e,t){switch(t){case`turns`:return(0,z.jsx)(k,{className:X,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,z.jsx)(k,{className:Z,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,z.jsx)(k,{className:Q,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,z.jsx)(k,{className:ce,children:e.model??`—`},t);case`branch`:return(0,z.jsx)(k,{className:$,children:e.branch},t)}}function _e(){let{openConversation:e}=C(),{toast:n}=ne(),[i,c]=(0,A.useState)(!1),[l,d]=(0,A.useState)(!1),{visibleColumns:p,isColumnVisible:m,setColumnVisible:h}=R(),{conversations:T,isInitialLoading:j,isLoadingMore:M,error:N,hasNextPage:F,fetchNextPage:I,refetch:L}=ie(),G=V+p.length,K=(0,A.useCallback)(()=>{F&&!M&&I()},[I,F,M]);async function q(){d(!0);try{await g(),await L(),c(!1),n({title:`Conversation history cleared`})}catch(e){n({title:`Failed to clear conversation history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{d(!1)}}let J=(0,A.useMemo)(function(){return function({item:t,...n}){return(0,z.jsx)(`tr`,{...n,className:a(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,n.className),onClick:()=>{t&&e(t)}})}},[e]),Y=(0,A.useMemo)(function(){return{Table:ue,TableHead:de,TableBody:fe,TableRow:J,Scroller:pe,Footer:M?me(G):void 0}},[J,G,M]);function X(e,t){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(k,{className:oe,children:t.projectName}),(0,z.jsx)(k,{className:se,children:(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(s,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:a(r.body,`truncate`),children:t.title})]})}),P.map(function(e){return m(e.id)?ge(t,e.id):null}),(0,z.jsx)(k,{className:le,"aria-label":`Last updated ${o(t.lastMessageAt)} ago`,children:o(t.lastMessageAt)})]})}function Z(){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:U,children:`Project`}),(0,z.jsx)(O,{className:W,children:`Chat`}),P.map(function(e){return m(e.id)?he(e.id):null}),(0,z.jsx)(O,{className:ae,children:`Updated`})]})}let Q=(0,z.jsx)(`table`,{className:a(`w-full caption-bottom`,H,r.body),children:(0,z.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,z.jsx)(`tr`,{children:Z()})})});return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,z.jsxs)(te,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,z.jsx)(_,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:T.length>0?Q:void 0,action:(0,z.jsxs)(w,{children:[(0,z.jsx)(S,{asChild:!0,children:(0,z.jsx)(v,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,z.jsx)(t,{className:`h-4 w-4`})})}),(0,z.jsxs)(b,{align:`end`,className:`w-48`,children:[(0,z.jsx)(E,{className:r.body,children:`Columns`}),P.map(function(e){return(0,z.jsx)(x,{checked:m(e.id),onCheckedChange:t=>{h(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,z.jsx)(y,{}),(0,z.jsxs)(re,{className:a(r.body,`gap-2 text-destructive focus:text-destructive`),disabled:T.length===0,onSelect:()=>c(!0),children:[(0,z.jsx)(ee,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:j?(0,z.jsx)(f,{label:`Loading conversation history...`,size:`lg`}):N?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,z.jsx)(`p`,{className:r.body,children:N instanceof Error?N.message:`Failed to load conversation history`}),(0,z.jsx)(v,{onClick:()=>void L(),children:`Try again`})]})}):T.length===0?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,z.jsx)(`h3`,{className:r.emptyStateTitle,children:`No history`}),(0,z.jsx)(`p`,{className:r.bodyMuted,children:`No conversations found yet.`})]})}):(0,z.jsx)(u,{style:{height:`100%`},data:T,computeItemKey:(e,t)=>t.conversationId,itemContent:X,endReached:K,defaultItemHeight:B,increaseViewportBy:B*5,components:Y})})]}),(0,z.jsx)(D,{open:i,onOpenChange:c,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void q(),confirming:l,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{_e as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,Ci as n,Fr as r,Ti as i,i as a,o,ut as s,wi as c,y as ee}from"./interactive-WtOIgeV4.js";import{_t as l,nt as u}from"./react-vendor-DM3Nejio.js";import{Wa as d,bt as f,do as p,dt as te,gr as m,ja as h,nn as g,rt as _,wo as v}from"./onboarding-_okRJRpU.js";import{n as ne}from"./use-toast-BFQ85Ly5.js";import{At as y,C as b,Dt as x,Et as S,Nt as re,Ot as C,at as w,jt as T,kt as E}from"./index-BdDEzAzX.js";import{t as D}from"./delete-confirm-dialog-Tv1Y9rIn.js";import{i as O,r as k}from"./table-CYWF-RhQ.js";var A=e(i(),1),j=c(),M=25;function ie(){let e=(0,j.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:w.conversations.recent(),queryFn:N,initialPageParam:0,getNextPageParam(e){let t=e.offset+e.conversations.length;return t<e.total?t:void 0}},e[0]=t):t=e[0];let n=l(t),r;e[1]===n.data?.pages?r=e[2]:(r=n.data?.pages.flatMap(function(e){return e.conversations})??[],e[1]=n.data?.pages,e[2]=r);let i=r,a=n.data?.pages[0]?.total??0,o;return e[3]!==i||e[4]!==n.error||e[5]!==n.fetchNextPage||e[6]!==n.hasNextPage||e[7]!==n.isFetchingNextPage||e[8]!==n.isPending||e[9]!==n.refetch||e[10]!==a?(o={conversations:i,total:a,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=i,e[4]=n.error,e[5]=n.fetchNextPage,e[6]=n.hasNextPage,e[7]=n.isFetchingNextPage,e[8]=n.isPending,e[9]=n.refetch,e[10]=a,e[11]=o):o=e[11],o}function N(e){let{pageParam:t}=e;return m(M,t)}var P=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],F=new Set(P.map(function(e){return e.id}));function I(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&F.has(e)}):[]}catch{return[]}}function L(){return I(d(h.HISTORY_COLUMNS))}function R(){let e=(0,j.c)(6),[t,n]=(0,A.useState)(L),r;e[0]===t?r=e[1]:(r=function(e){return t.includes(e)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=function(e,t){n(function(n){let r=t?n.includes(e)?n:[...n,e]:n.filter(function(t){return t!==e});return p(h.HISTORY_COLUMNS,JSON.stringify(r)),r})},e[2]=a):a=e[2];let o=a,s;return e[3]!==i||e[4]!==t?(s={visibleColumns:t,isColumnVisible:i,setColumnVisible:o},e[3]=i,e[4]=t,e[5]=s):s=e[5],s}var z=n(),B=36,V=3,H=`table-fixed`,U=`h-9 w-48 bg-transparent py-2`,W=`h-9 bg-transparent py-2`,G=`h-9 w-20 bg-transparent py-2 text-right`,K=`h-9 w-28 bg-transparent py-2 text-right`,q=`h-9 w-28 bg-transparent py-2 text-right`,J=`h-9 w-40 bg-transparent py-2`,Y=`h-9 w-32 bg-transparent py-2`,ae=`h-9 w-24 bg-transparent py-2 text-right`,oe=a(r.bodyMuted,`w-48 truncate py-1.5`),se=`py-1.5`,X=a(r.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),Z=a(r.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),Q=a(r.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),ce=a(r.bodyMuted,`w-40 truncate py-1.5`),$=a(r.bodyMuted,`w-32 truncate py-1.5`),le=a(r.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function ue(e){let t=(0,j.c)(4),n;if(t[0]!==e){let{style:i,...o}=e,s;t[2]===i?s=t[3]:(s={...i,width:`100%`},t[2]=i,t[3]=s),n=(0,z.jsx)(`table`,{...o,style:s,className:a(`w-full caption-bottom select-text`,H,r.body,o.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function de(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function fe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function pe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=a(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function me(e){return function(){return(0,z.jsx)(`tr`,{children:(0,z.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,z.jsx)(f,{label:`Loading more…`,size:`sm`})})})}}function he(e){switch(e){case`turns`:return(0,z.jsx)(O,{className:G,children:`Turns`},e);case`inputTokens`:return(0,z.jsx)(O,{className:K,children:`Input Tokens`},e);case`outputTokens`:return(0,z.jsx)(O,{className:q,children:`Output Tokens`},e);case`model`:return(0,z.jsx)(O,{className:J,children:`Model`},e);case`branch`:return(0,z.jsx)(O,{className:Y,children:`Branch`},e)}}function ge(e,t){switch(t){case`turns`:return(0,z.jsx)(k,{className:X,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,z.jsx)(k,{className:Z,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,z.jsx)(k,{className:Q,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,z.jsx)(k,{className:ce,children:e.model??`—`},t);case`branch`:return(0,z.jsx)(k,{className:$,children:e.branch},t)}}function _e(){let{openConversation:e}=b(),{toast:n}=ne(),[i,c]=(0,A.useState)(!1),[l,d]=(0,A.useState)(!1),{visibleColumns:p,isColumnVisible:m,setColumnVisible:h}=R(),{conversations:w,isInitialLoading:j,isLoadingMore:M,error:N,hasNextPage:F,fetchNextPage:I,refetch:L}=ie(),G=V+p.length,K=(0,A.useCallback)(()=>{F&&!M&&I()},[I,F,M]);async function q(){d(!0);try{await g(),await L(),c(!1),n({title:`Conversation history cleared`})}catch(e){n({title:`Failed to clear conversation history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{d(!1)}}let J=(0,A.useMemo)(function(){return function({item:t,...n}){return(0,z.jsx)(`tr`,{...n,className:a(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,n.className),onClick:()=>{t&&e(t)}})}},[e]),Y=(0,A.useMemo)(function(){return{Table:ue,TableHead:de,TableBody:fe,TableRow:J,Scroller:pe,Footer:M?me(G):void 0}},[J,G,M]);function X(e,t){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(k,{className:oe,children:t.projectName}),(0,z.jsx)(k,{className:se,children:(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(s,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:a(r.body,`truncate`),children:t.title})]})}),P.map(function(e){return m(e.id)?ge(t,e.id):null}),(0,z.jsx)(k,{className:le,"aria-label":`Last updated ${o(t.lastMessageAt)} ago`,children:o(t.lastMessageAt)})]})}function Z(){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:U,children:`Project`}),(0,z.jsx)(O,{className:W,children:`Chat`}),P.map(function(e){return m(e.id)?he(e.id):null}),(0,z.jsx)(O,{className:ae,children:`Updated`})]})}let Q=(0,z.jsx)(`table`,{className:a(`w-full caption-bottom`,H,r.body),children:(0,z.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,z.jsx)(`tr`,{children:Z()})})});return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,z.jsxs)(te,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,z.jsx)(_,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:w.length>0?Q:void 0,action:(0,z.jsxs)(S,{children:[(0,z.jsx)(re,{asChild:!0,children:(0,z.jsx)(v,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,z.jsx)(t,{className:`h-4 w-4`})})}),(0,z.jsxs)(C,{align:`end`,className:`w-48`,children:[(0,z.jsx)(y,{className:r.body,children:`Columns`}),P.map(function(e){return(0,z.jsx)(x,{checked:m(e.id),onCheckedChange:t=>{h(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,z.jsx)(T,{}),(0,z.jsxs)(E,{className:a(r.body,`gap-2 text-destructive focus:text-destructive`),disabled:w.length===0,onSelect:()=>c(!0),children:[(0,z.jsx)(ee,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:j?(0,z.jsx)(f,{label:`Loading conversation history...`,size:`lg`}):N?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,z.jsx)(`p`,{className:r.body,children:N instanceof Error?N.message:`Failed to load conversation history`}),(0,z.jsx)(v,{onClick:()=>void L(),children:`Try again`})]})}):w.length===0?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,z.jsx)(`h3`,{className:r.emptyStateTitle,children:`No history`}),(0,z.jsx)(`p`,{className:r.bodyMuted,children:`No conversations found yet.`})]})}):(0,z.jsx)(u,{style:{height:`100%`},data:w,computeItemKey:(e,t)=>t.conversationId,itemContent:X,endReached:K,defaultItemHeight:B,increaseViewportBy:B*5,components:Y})})]}),(0,z.jsx)(D,{open:i,onOpenChange:c,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void q(),confirming:l,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{_e as default};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$r as t,Ci as n,Fr as r,Jn as i,Qt as a,Ti as o,ei as s,i as c,wi as l}from"./interactive-WtOIgeV4.js";import{A as u,D as d,O as f,T as p,_r as m,a as h,b as g,en as _,ht as v,j as y,jr as b,k as x,o as S,po as C,qa as w,so as T,to as E,wo as D,x as O,xo as k,za as A}from"./onboarding-Dy7KG3M5.js";import{x as j}from"./index-cAZJlfDA.js";import{r as ee}from"./commit-method-fields-DYBEHZAP.js";var M=e(o(),1),N=l(),P={"angular-standalone":`logo-angular.svg`,"custom-angular":`logo-angular.svg`,react:`logo-react.svg`,"vite-react":`logo-react.svg`,vue:`logo-vue.svg`,"vite-vue":`logo-vue.svg`,"custom-svelte":`logo-svelte.svg`,"custom-ionic-svelte":`logo-svelte.svg`,"vite-svelte":`logo-svelte.svg`,"vite-solid":`logo-solid.svg`,astro:`logo-astro.svg`,nextjs:`logo-nextjs.svg`,nuxt:`logo-nuxt.svg`,"vite-qwik":`logo-qwik.svg`,"vite-preact":`logo-preact.svg`,"vite-lit":`logo-lit.svg`,"vite-web":`logo-web.svg`,"tanstack-start":`logo-vite.svg`,waku:`logo-waku.svg`,hydrogen:`logo-hydrogen.svg`,plugin:`logo-capacitor.svg`};function te(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ne(e,t,n){return e===2&&t===`clone`?{title:`Clone Repository`,description:`Enter a git repository URL to clone.`}:e===2&&t===`webapp`?{title:`Create App`,description:`Choose a template type.`}:e===3&&t===`clone`?{title:`Clone Repository`,description:`Choose commit workflow.`}:e===3&&t===`folder`?{title:`Blank Starter`,description:`Enter a project name.`}:e===3&&t===`webapp`?{title:n===`Capacitor Plugin`?`Create Capacitor Plugin`:n?`Create ${n} App`:`Create App`,description:`Name your project and choose variation, package manager, and commit workflow.`}:{title:``,description:``}}var re=i(`app.create-project-dialog.ui`);async function ie(){try{if(await _())return!0;if(!window.confirm(`Vite Plus is required for this template but is not installed.
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$r as t,Ci as n,Fr as r,Jn as i,Qt as a,Ti as o,ei as s,i as c,wi as l}from"./interactive-WtOIgeV4.js";import{A as u,D as d,O as f,T as p,_r as m,a as h,b as g,en as _,ht as v,j as y,jr as b,k as x,o as S,po as C,qa as w,so as T,to as E,wo as D,x as O,xo as k,za as A}from"./onboarding-_okRJRpU.js";import{S as j}from"./index-BdDEzAzX.js";import{r as ee}from"./commit-method-fields-CENlG_Jk.js";var M=e(o(),1),N=l(),P={"angular-standalone":`logo-angular.svg`,"custom-angular":`logo-angular.svg`,react:`logo-react.svg`,"vite-react":`logo-react.svg`,vue:`logo-vue.svg`,"vite-vue":`logo-vue.svg`,"custom-svelte":`logo-svelte.svg`,"custom-ionic-svelte":`logo-svelte.svg`,"vite-svelte":`logo-svelte.svg`,"vite-solid":`logo-solid.svg`,astro:`logo-astro.svg`,nextjs:`logo-nextjs.svg`,nuxt:`logo-nuxt.svg`,"vite-qwik":`logo-qwik.svg`,"vite-preact":`logo-preact.svg`,"vite-lit":`logo-lit.svg`,"vite-web":`logo-web.svg`,"tanstack-start":`logo-vite.svg`,waku:`logo-waku.svg`,hydrogen:`logo-hydrogen.svg`,plugin:`logo-capacitor.svg`};function te(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ne(e,t,n){return e===2&&t===`clone`?{title:`Clone Repository`,description:`Enter a git repository URL to clone.`}:e===2&&t===`webapp`?{title:`Create App`,description:`Choose a template type.`}:e===3&&t===`clone`?{title:`Clone Repository`,description:`Choose commit workflow.`}:e===3&&t===`folder`?{title:`Blank Starter`,description:`Enter a project name.`}:e===3&&t===`webapp`?{title:n===`Capacitor Plugin`?`Create Capacitor Plugin`:n?`Create ${n} App`:`Create App`,description:`Name your project and choose variation, package manager, and commit workflow.`}:{title:``,description:``}}var re=i(`app.create-project-dialog.ui`);async function ie(){try{if(await _())return!0;if(!window.confirm(`Vite Plus is required for this template but is not installed.
2
2
 
3
3
  Is it ok to install Vite Plus using the following command?
4
4
 
@@ -1 +1 @@
1
- import{Ci as e,Fr as t,wi as n}from"./interactive-WtOIgeV4.js";import{A as r,D as i,O as a,T as o,b as s,j as c,k as l,s as u,wo as d,x as f}from"./onboarding-Dy7KG3M5.js";import{G as p}from"./index-cAZJlfDA.js";var m=n(),h=e();function g(e){let n=(0,m.c)(48),{open:g,onOpenChange:_,repoName:v,onRepoNameChange:y,repoDescription:b,onRepoDescriptionChange:x,isPrivateRepo:S,onPrivateRepoChange:C,isLoading:w,onCreateRepo:T}=e,E;n[0]!==_||n[1]!==x||n[2]!==y?(E=e=>{e||(y(``),x(``)),_(e)},n[0]=_,n[1]=x,n[2]=y,n[3]=E):E=n[3];let D;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsxs)(r,{children:[(0,h.jsx)(c,{children:`Create GitHub Repository`}),(0,h.jsx)(a,{children:`Create a new GitHub repository and push your local repository`})]}),n[4]=D):D=n[4];let O;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,h.jsx)(s,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),n[5]=O):O=n[5];let k;n[6]===y?k=n[7]:(k=e=>y(e.target.value),n[6]=y,n[7]=k);let A;n[8]!==v||n[9]!==k?(A=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[O,(0,h.jsx)(f,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:v,onChange:k})]}),n[8]=v,n[9]=k,n[10]=A):A=n[10];let j;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsx)(s,{htmlFor:`repo-description`,children:`Description (optional)`}),n[11]=j):j=n[11];let M;n[12]===x?M=n[13]:(M=e=>x(e.target.value),n[12]=x,n[13]=M);let N;n[14]!==b||n[15]!==M?(N=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,h.jsx)(p,{id:`repo-description`,placeholder:`Enter repository description...`,value:b,onChange:M,rows:3})]}),n[14]=b,n[15]=M,n[16]=N):N=n[16];let P;n[17]===C?P=n[18]:(P=e=>C(e===!0),n[17]=C,n[18]=P);let F;n[19]!==S||n[20]!==P?(F=(0,h.jsx)(u,{id:`repo-private`,checked:S,onCheckedChange:P}),n[19]=S,n[20]=P,n[21]=F):F=n[21];let I;n[22]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,h.jsx)(s,{htmlFor:`repo-private`,className:t.labelNormal,children:`Private repository`}),n[22]=I):I=n[22];let L;n[23]===F?L=n[24]:(L=(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F,I]}),n[23]=F,n[24]=L);let R;n[25]!==L||n[26]!==A||n[27]!==N?(R=(0,h.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[A,N,L]}),n[25]=L,n[26]=A,n[27]=N,n[28]=R):R=n[28];let z;n[29]===_?z=n[30]:(z=()=>_(!1),n[29]=_,n[30]=z);let B;n[31]!==w||n[32]!==z?(B=(0,h.jsx)(d,{variant:`outline`,onClick:z,disabled:w,children:`Cancel`}),n[31]=w,n[32]=z,n[33]=B):B=n[33];let V=w?`Creating...`:`Create & Push`,H;n[34]!==w||n[35]!==T||n[36]!==V?(H=(0,h.jsx)(d,{onClick:T,disabled:w,children:V}),n[34]=w,n[35]=T,n[36]=V,n[37]=H):H=n[37];let U;n[38]!==B||n[39]!==H?(U=(0,h.jsxs)(l,{children:[B,H]}),n[38]=B,n[39]=H,n[40]=U):U=n[40];let W;n[41]!==R||n[42]!==U?(W=(0,h.jsxs)(i,{children:[D,R,U]}),n[41]=R,n[42]=U,n[43]=W):W=n[43];let G;return n[44]!==g||n[45]!==E||n[46]!==W?(G=(0,h.jsx)(o,{open:g,onOpenChange:E,children:W}),n[44]=g,n[45]=E,n[46]=W,n[47]=G):G=n[47],G}export{g as CreateRepoDialog};
1
+ import{Ci as e,Fr as t,wi as n}from"./interactive-WtOIgeV4.js";import{A as r,D as i,O as a,T as o,b as s,j as c,k as l,s as u,wo as d,x as f}from"./onboarding-_okRJRpU.js";import{K as p}from"./index-BdDEzAzX.js";var m=n(),h=e();function g(e){let n=(0,m.c)(48),{open:g,onOpenChange:_,repoName:v,onRepoNameChange:y,repoDescription:b,onRepoDescriptionChange:x,isPrivateRepo:S,onPrivateRepoChange:C,isLoading:w,onCreateRepo:T}=e,E;n[0]!==_||n[1]!==x||n[2]!==y?(E=e=>{e||(y(``),x(``)),_(e)},n[0]=_,n[1]=x,n[2]=y,n[3]=E):E=n[3];let D;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsxs)(r,{children:[(0,h.jsx)(c,{children:`Create GitHub Repository`}),(0,h.jsx)(a,{children:`Create a new GitHub repository and push your local repository`})]}),n[4]=D):D=n[4];let O;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,h.jsx)(s,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),n[5]=O):O=n[5];let k;n[6]===y?k=n[7]:(k=e=>y(e.target.value),n[6]=y,n[7]=k);let A;n[8]!==v||n[9]!==k?(A=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[O,(0,h.jsx)(f,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:v,onChange:k})]}),n[8]=v,n[9]=k,n[10]=A):A=n[10];let j;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsx)(s,{htmlFor:`repo-description`,children:`Description (optional)`}),n[11]=j):j=n[11];let M;n[12]===x?M=n[13]:(M=e=>x(e.target.value),n[12]=x,n[13]=M);let N;n[14]!==b||n[15]!==M?(N=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,h.jsx)(p,{id:`repo-description`,placeholder:`Enter repository description...`,value:b,onChange:M,rows:3})]}),n[14]=b,n[15]=M,n[16]=N):N=n[16];let P;n[17]===C?P=n[18]:(P=e=>C(e===!0),n[17]=C,n[18]=P);let F;n[19]!==S||n[20]!==P?(F=(0,h.jsx)(u,{id:`repo-private`,checked:S,onCheckedChange:P}),n[19]=S,n[20]=P,n[21]=F):F=n[21];let I;n[22]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,h.jsx)(s,{htmlFor:`repo-private`,className:t.labelNormal,children:`Private repository`}),n[22]=I):I=n[22];let L;n[23]===F?L=n[24]:(L=(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F,I]}),n[23]=F,n[24]=L);let R;n[25]!==L||n[26]!==A||n[27]!==N?(R=(0,h.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[A,N,L]}),n[25]=L,n[26]=A,n[27]=N,n[28]=R):R=n[28];let z;n[29]===_?z=n[30]:(z=()=>_(!1),n[29]=_,n[30]=z);let B;n[31]!==w||n[32]!==z?(B=(0,h.jsx)(d,{variant:`outline`,onClick:z,disabled:w,children:`Cancel`}),n[31]=w,n[32]=z,n[33]=B):B=n[33];let V=w?`Creating...`:`Create & Push`,H;n[34]!==w||n[35]!==T||n[36]!==V?(H=(0,h.jsx)(d,{onClick:T,disabled:w,children:V}),n[34]=w,n[35]=T,n[36]=V,n[37]=H):H=n[37];let U;n[38]!==B||n[39]!==H?(U=(0,h.jsxs)(l,{children:[B,H]}),n[38]=B,n[39]=H,n[40]=U):U=n[40];let W;n[41]!==R||n[42]!==U?(W=(0,h.jsxs)(i,{children:[D,R,U]}),n[41]=R,n[42]=U,n[43]=W):W=n[43];let G;return n[44]!==g||n[45]!==E||n[46]!==W?(G=(0,h.jsx)(o,{open:g,onOpenChange:E,children:W}),n[44]=g,n[45]=E,n[46]=W,n[47]=G):G=n[47],G}export{g as CreateRepoDialog};
@@ -1 +1 @@
1
- import{Ci as e,wi as t}from"./interactive-WtOIgeV4.js";import{a as n,c as r,i,n as a,o,r as s,s as c,t as l}from"./alert-dialog-BpJafkQ6.js";var u=t(),d=e();function f(e){let t=(0,u.c)(19),{open:f,onOpenChange:p,title:m,description:h,onConfirm:g,confirming:_,confirmLabel:v,confirmingLabel:y}=e,b=_===void 0?!1:_,x=v===void 0?`Delete`:v,S=y===void 0?`Deleting...`:y,C;t[0]===m?C=t[1]:(C=(0,d.jsx)(r,{children:m}),t[0]=m,t[1]=C);let w;t[2]===h?w=t[3]:(w=(0,d.jsx)(n,{children:h}),t[2]=h,t[3]=w);let T;t[4]!==C||t[5]!==w?(T=(0,d.jsxs)(c,{children:[C,w]}),t[4]=C,t[5]=w,t[6]=T):T=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,d.jsx)(s,{children:`Cancel`}),t[7]=E):E=t[7];let D=b?S:x,O;t[8]!==b||t[9]!==g||t[10]!==D?(O=(0,d.jsxs)(o,{children:[E,(0,d.jsx)(a,{onClick:g,disabled:b,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:D})]}),t[8]=b,t[9]=g,t[10]=D,t[11]=O):O=t[11];let k;t[12]!==T||t[13]!==O?(k=(0,d.jsxs)(i,{children:[T,O]}),t[12]=T,t[13]=O,t[14]=k):k=t[14];let A;return t[15]!==p||t[16]!==f||t[17]!==k?(A=(0,d.jsx)(l,{open:f,onOpenChange:p,children:k}),t[15]=p,t[16]=f,t[17]=k,t[18]=A):A=t[18],A}export{f as t};
1
+ import{Ci as e,wi as t}from"./interactive-WtOIgeV4.js";import{a as n,c as r,i,n as a,o,r as s,s as c,t as l}from"./alert-dialog-tR8jdoK3.js";var u=t(),d=e();function f(e){let t=(0,u.c)(19),{open:f,onOpenChange:p,title:m,description:h,onConfirm:g,confirming:_,confirmLabel:v,confirmingLabel:y}=e,b=_===void 0?!1:_,x=v===void 0?`Delete`:v,S=y===void 0?`Deleting...`:y,C;t[0]===m?C=t[1]:(C=(0,d.jsx)(r,{children:m}),t[0]=m,t[1]=C);let w;t[2]===h?w=t[3]:(w=(0,d.jsx)(n,{children:h}),t[2]=h,t[3]=w);let T;t[4]!==C||t[5]!==w?(T=(0,d.jsxs)(c,{children:[C,w]}),t[4]=C,t[5]=w,t[6]=T):T=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,d.jsx)(s,{children:`Cancel`}),t[7]=E):E=t[7];let D=b?S:x,O;t[8]!==b||t[9]!==g||t[10]!==D?(O=(0,d.jsxs)(o,{children:[E,(0,d.jsx)(a,{onClick:g,disabled:b,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:D})]}),t[8]=b,t[9]=g,t[10]=D,t[11]=O):O=t[11];let k;t[12]!==T||t[13]!==O?(k=(0,d.jsxs)(i,{children:[T,O]}),t[12]=T,t[13]=O,t[14]=k):k=t[14];let A;return t[15]!==p||t[16]!==f||t[17]!==k?(A=(0,d.jsx)(l,{open:f,onOpenChange:p,children:k}),t[15]=p,t[16]=f,t[17]=k,t[18]=A):A=t[18],A}export{f as t};
@@ -0,0 +1,4 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ft as r,Jn as i,Mt as a,Nt as o,Ti as s,U as c,ct as l,f as u,fn as d,ft as f,i as p,nt as m,pn as h,tt as g,ut as _,wi as v}from"./interactive-WtOIgeV4.js";import{f as y}from"./react-vendor-DM3Nejio.js";import{A as b,Ct as x,D as S,In as C,Ji as w,Oi as T,St as E,T as D,Tt as O,Un as k,Xi as A,aa as j,bt as M,f as N,ht as P,j as F,k as I,wo as L,wr as R}from"./onboarding-_okRJRpU.js";import{c as z}from"./monaco-D1hpqXQ0.js";import{I as ee,L as te,n as B,q as ne,r as re}from"./store-CSyJjyNs.js";import{n as ie,t as ae}from"./use-suspense-resource-rX-GqyWi.js";import{n as oe}from"./utils-Rlf65JHq.js";import{A as se,H as V,J as H,K as U,M as ce,Pt as le,W as ue,j as de,k as W,ot as fe,wt as G}from"./index-BdDEzAzX.js";import{a as pe,n as me,r as K,t as q}from"./context-menu-D6nrl6uV.js";import{t as J}from"./async-error-boundary-D2YxNX8i.js";import"./monaco-setup-Xkv0hjl5.js";var Y=e(s(),1),X=v(),Z=t();function Q(e){let t=(0,X.c)(12),{children:r,title:i,subtitle:a,headerAction:o,footer:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==i?(c=(i||a||o)&&(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-b border-sidebar-border px-4 py-6`,children:[(i||o)&&(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`div`,{className:`flex items-center gap-2`,children:i&&(0,Z.jsx)(`span`,{className:n.sectionTitle,children:i})}),o&&(0,Z.jsx)(`div`,{className:`flex items-center gap-2 ml-auto`,children:o})]}),a]}),t[0]=o,t[1]=a,t[2]=i,t[3]=c):c=t[3];let l;t[4]===r?l=t[5]:(l=(0,Z.jsx)(P,{className:`min-h-0 flex-1`,children:r}),t[4]=r,t[5]=l);let u;t[6]===s?u=t[7]:(u=s&&(0,Z.jsx)(`div`,{className:`border-t border-sidebar-border`,children:s}),t[6]=s,t[7]=u);let d;return t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-col`,children:[c,l,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11],d}function $(e){let t=(0,X.c)(30),{node:n,level:r,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u}=e,d=!!(n.children&&n.children.length>0),f,p,m;if(t[0]!==a||t[1]!==u||t[2]!==d||t[3]!==r||t[4]!==n||t[5]!==l||t[6]!==c||t[7]!==i){f=u?.has(n.id)||(c[n.id]??a);let e;t[11]!==n.id||t[12]!==l?(e=()=>l(n.id),t[11]=n.id,t[12]=l,t[13]=e):e=t[13];let o=e;p=`min-w-0`,m=i(n,{isOpen:f,level:r,toggle:o,hasChildren:d}),t[0]=a,t[1]=u,t[2]=d,t[3]=r,t[4]=n,t[5]=l,t[6]=c,t[7]=i,t[8]=f,t[9]=p,t[10]=m}else f=t[8],p=t[9],m=t[10];let h;t[14]!==s||t[15]!==a||t[16]!==u||t[17]!==d||t[18]!==o||t[19]!==f||t[20]!==r||t[21]!==n.children||t[22]!==l||t[23]!==c||t[24]!==i?(h=d&&f&&(0,Z.jsx)(`div`,{style:{paddingLeft:o},className:s,children:n.children.map(e=>(0,Z.jsx)($,{node:e,level:r+1,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u},e.id))}),t[14]=s,t[15]=a,t[16]=u,t[17]=d,t[18]=o,t[19]=f,t[20]=r,t[21]=n.children,t[22]=l,t[23]=c,t[24]=i,t[25]=h):h=t[25];let g;return t[26]!==p||t[27]!==m||t[28]!==h?(g=(0,Z.jsxs)(`div`,{className:p,children:[m,h]}),t[26]=p,t[27]=m,t[28]=h,t[29]=g):g=t[29],g}function he(e){let t=(0,X.c)(31),{nodes:n,renderNode:r,resetKey:i,defaultOpen:a,forceOpenIds:o,initialOpenIds:s,indent:c,childContainerClassName:l,className:u}=e,d=a===void 0?!1:a,f=c===void 0?16:c,m;t[0]===s?m=t[1]:(m=()=>{let e={};if(s)for(let t of s)e[t]=!0;return e},t[0]=s,t[1]=m);let[h,g]=(0,Y.useState)(m),[_,v]=(0,Y.useState)(i);if(i!==_){v(i);let e={};if(s)for(let t of s)e[t]=!0;g(e)}let y;t[2]===o?y=t[3]:(y=o?new Set(o):void 0,t[2]=o,t[3]=y);let b=y,x,S;t[4]===o?(x=t[5],S=t[6]):(x=()=>{o?.length&&g(e=>{let t={...e},n=!1;for(let e of o)t[e]!==!0&&(t[e]=!0,n=!0);return n?t:e})},S=[o],t[4]=o,t[5]=x,t[6]=S),(0,Y.useEffect)(x,S);let C;t[7]===d?C=t[8]:(C=e=>{g(t=>({...t,[e]:!(t[e]??d)}))},t[7]=d,t[8]=C);let w=C,T;t[9]===u?T=t[10]:(T=p(`min-w-0`,u),t[9]=u,t[10]=T);let E;if(t[11]!==l||t[12]!==d||t[13]!==b||t[14]!==w||t[15]!==f||t[16]!==n||t[17]!==h||t[18]!==r){let e;t[20]!==l||t[21]!==d||t[22]!==b||t[23]!==w||t[24]!==f||t[25]!==h||t[26]!==r?(e=e=>(0,Z.jsx)($,{node:e,level:0,renderNode:r,defaultOpen:d,indent:f,childContainerClassName:l,openState:h,onToggle:w,forceOpenIds:b},e.id),t[20]=l,t[21]=d,t[22]=b,t[23]=w,t[24]=f,t[25]=h,t[26]=r,t[27]=e):e=t[27],E=n.map(e),t[11]=l,t[12]=d,t[13]=b,t[14]=w,t[15]=f,t[16]=n,t[17]=h,t[18]=r,t[19]=E}else E=t[19];let D;return t[28]!==T||t[29]!==E?(D=(0,Z.jsx)(`div`,{className:T,children:E}),t[28]=T,t[29]=E,t[30]=D):D=t[30],D}function ge(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 _e={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},ve={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function ye(e){return p(p(n.compact,`status-badge font-mono font-semibold`),_e[e]??`text-orange-500`)}function be(e){return ve[e]??`M`}function xe(e){let t=(0,X.c)(22),{treeData:i,files:s,error:l,selectedFileIndex:u,onFileSelect:f,onRevertFile:m}=e,{setStats:h}=V(),g;t[0]===s?g=t[1]:(g=s.reduce(Te,0),t[0]=s,t[1]=g);let _=g,v;t[2]===s?v=t[3]:(v=s.reduce(Se,0),t[2]=s,t[3]=v);let y=v,b,x;if(t[4]!==s.length||t[5]!==h||t[6]!==_||t[7]!==y?(b=()=>{h({fileCount:s.length,additions:_,deletions:y})},x=[s.length,_,y,h],t[4]=s.length,t[5]=h,t[6]=_,t[7]=y,t[8]=b,t[9]=x):(b=t[8],x=t[9]),(0,Y.useEffect)(b,x),l){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=p(n.compact,`text-destructive text-center`),t[10]=e):e=t[10];let r;return t[11]===l?r=t[12]:(r=(0,Z.jsx)(Q,{children:(0,Z.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Z.jsx)(`p`,{className:e,children:l})})}),t[11]=l,t[12]=r),r}if(s.length===0){let e;return t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(Q,{children:(0,Z.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Z.jsx)(`p`,{className:p(n.compact,n.bodyMuted,`text-center`),children:`No changes to review`})})}),t[13]=e):e=t[13],e}let S;t[14]!==s||t[15]!==f||t[16]!==m||t[17]!==u?(S=(e,t)=>{let{isOpen:i,toggle:l}=t,h=!!e.children,g=(0,Z.jsxs)(N,{onClick:()=>{h?l():e.fileIndex!==void 0&&f(e.fileIndex)},selected:!h&&e.fileIndex===u,className:p(n.conversationBody,`gap-1.5`),children:[h?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(d,{className:p(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,i&&`rotate-90`)}),i?(0,Z.jsx)(o,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,Z.jsx)(a,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,Z.jsx)(r,{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}),!h&&e.status&&(0,Z.jsx)(`span`,{className:ye(e.status),children:be(e.status)})]});return h?g:(0,Z.jsxs)(q,{children:[(0,Z.jsx)(pe,{asChild:!0,children:(0,Z.jsx)(`div`,{children:g})}),(0,Z.jsx)(me,{children:(0,Z.jsxs)(K,{onClick:()=>{e.fileIndex!==void 0&&m?.(s[e.fileIndex])},children:[(0,Z.jsx)(c,{className:`mr-2 h-3.5 w-3.5`}),`Revert Change`]})})]})},t[14]=s,t[15]=f,t[16]=m,t[17]=u,t[18]=S):S=t[18];let C;return t[19]!==S||t[20]!==i?(C=(0,Z.jsx)(Q,{children:(0,Z.jsx)(`div`,{className:`px-1 pt-3 pb-2`,children:(0,Z.jsx)(he,{nodes:i,defaultOpen:!0,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:S})})}),t[19]=S,t[20]=i,t[21]=C):C=t[21],C}function Se(e,t){return e+t.hunks.reduce(Ce,0)}function Ce(e,t){return e+t.changes.filter(we).length}function we(e){return e.type===`delete`}function Te(e,t){return e+t.hunks.reduce(Ee,0)}function Ee(e,t){return e+t.changes.filter(De).length}function De(e){return e.type===`add`}function Oe(e){let t=(0,X.c)(36),{open:r,lineNumber:i,lineContent:a,initialComment:o,isEditing:s,onSave:c,onDelete:l,onClose:u}=e,[d,f]=(0,Y.useState)((o===void 0?``:o)??``),m;t[0]!==c||t[1]!==d?(m=()=>{d.trim()&&c(d.trim())},t[0]=c,t[1]=d,t[2]=m):m=t[2];let h=m,g;t[3]===h?g=t[4]:(g=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),h())},t[3]=h,t[4]=g);let _=g,v;t[5]===u?v=t[6]:(v=e=>{e||u()},t[5]=u,t[6]=v);let y;t[7]===i?y=t[8]:(y=(0,Z.jsx)(b,{children:(0,Z.jsxs)(F,{children:[`Comment on line `,i]})}),t[7]=i,t[8]=y);let x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(x=p(n.compact,`font-mono rounded bg-muted px-3 py-2 text-muted-foreground overflow-x-auto whitespace-pre`),t[9]=x):x=t[9];let C=a||` `,w;t[10]===C?w=t[11]:(w=(0,Z.jsx)(`div`,{className:x,children:C}),t[10]=C,t[11]=w);let T;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>f(e.target.value),t[12]=T):T=t[12];let E;t[13]!==_||t[14]!==d?(E=(0,Z.jsx)(U,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:d,onChange:T,onKeyDown:_,rows:12,className:`resize-none text-base`}),t[13]=_,t[14]=d,t[15]=E):E=t[15];let O;t[16]!==s||t[17]!==l?(O=s&&l&&(0,Z.jsx)(L,{variant:`destructive`,size:`sm`,onClick:l,className:`mr-auto`,children:`Delete`}),t[16]=s,t[17]=l,t[18]=O):O=t[18];let k;t[19]===d?k=t[20]:(k=d.trim(),t[19]=d,t[20]=k);let A=!k,j;t[21]!==h||t[22]!==A?(j=(0,Z.jsx)(L,{size:`sm`,onClick:h,disabled:A,children:`Save`}),t[21]=h,t[22]=A,t[23]=j):j=t[23];let M;t[24]!==O||t[25]!==j?(M=(0,Z.jsxs)(I,{className:`gap-2 sm:gap-0`,children:[O,j]}),t[24]=O,t[25]=j,t[26]=M):M=t[26];let N;t[27]!==E||t[28]!==M||t[29]!==y||t[30]!==w?(N=(0,Z.jsxs)(S,{className:`max-w-2xl`,children:[y,w,E,M]}),t[27]=E,t[28]=M,t[29]=y,t[30]=w,t[31]=N):N=t[31];let P;return t[32]!==r||t[33]!==N||t[34]!==v?(P=(0,Z.jsx)(D,{open:r,onOpenChange:v,children:N}),t[32]=r,t[33]=N,t[34]=v,t[35]=P):P=t[35],P}function ke(e){let t=B(),n=re(e=>e.diffComments),r=(0,Y.useMemo)(()=>n[e]??[],[n,e]),i=(0,Y.useCallback)(r=>{let i=n[e]??[],a=typeof r==`function`?r(i):r;t({type:ne.SetDiffComments,threadId:e,comments:a})},[t,e,n]),a=(0,Y.useRef)(!1);return(0,Y.useEffect)(()=>{if((n[e]??[]).length>0){a.current=!0;return}R(e).then(n=>{n.diffComments&&n.diffComments.length>0&&t({type:ne.SetDiffComments,threadId:e,comments:n.diffComments}),a.current=!0}).catch(()=>{a.current=!0})},[e]),(0,Y.useEffect)(()=>{a.current&&T(e,{diffComments:r}).catch(()=>{})},[e,r]),{comments:r,setComments:i}}function Ae(e,t){return`git-diff:${e}:${t}`}function je(){return Error(`Loading review changes timed out. Please try again.`)}async function Me(e,t=15e3){return Promise.race([w(e),new Promise((e,n)=>{window.setTimeout(()=>n(je()),t)})])}var Ne=2;function Pe(e,t){return t<=0?{min:e,max:e}:{min:e,max:e+t-1}}function Fe(e,t){return{startLine:Math.max(1,e-Ne),endLine:t+Ne}}function Ie(e){if(e.hunks.length===0)return null;let t=1/0,n=0,r=1/0,i=0;for(let a of e.hunks){let e=Pe(a.oldStart,a.oldLines),o=Pe(a.newStart,a.newLines);t=Math.min(t,e.min),n=Math.max(n,e.max),r=Math.min(r,o.min),i=Math.max(i,o.max)}return t===1/0||r===1/0?null:{original:Fe(t,n),modified:Fe(r,i)}}function Le(e,t,n){if(e.length===0)return``;let r=e.endsWith(`
2
+ `),i=e.split(`
3
+ `);return r&&i.length>0&&i[i.length-1]===``&&i.pop(),i.slice(Math.max(0,t-1),Math.max(t-1,n)).join(`
4
+ `)}function Re(e){let t=Ie(e);return t?t.original.startLine<=1||t.modified.startLine<=1:!0}function ze(e,t){return t?e-t.startLine+1:e}function Be(e,t){return t?t.startLine+e-1:e}function Ve(e){return{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`}function He(e){let t=(0,X.c)(34),{comments:n,activeCommentIndex:r,isFullView:i,selectedFileIndex:a,files:o,selectedFile:s,onLineGutterClick:c}=e,l=(0,Y.useRef)(null),u=(0,Y.useRef)(n),d=(0,Y.useRef)(r),f;t[0]!==o||t[1]!==i||t[2]!==a?(f={isFullView:i,selectedFileIndex:a,files:o},t[0]=o,t[1]=i,t[2]=a,t[3]=f):f=t[3];let p=(0,Y.useRef)(f),m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m={original:[],modified:[]},t[4]=m):m=t[4];let h=(0,Y.useRef)(m),g=(0,Y.useRef)(null),_=(0,Y.useRef)(!0),v,y;t[5]===n?(v=t[6],y=t[7]):(v=()=>{u.current=n},y=[n],t[5]=n,t[6]=v,t[7]=y),(0,Y.useEffect)(v,y);let b,x;t[8]===r?(b=t[9],x=t[10]):(b=()=>{d.current=r},x=[r],t[8]=r,t[9]=b,t[10]=x),(0,Y.useEffect)(b,x);let S,C;t[11]!==o||t[12]!==i||t[13]!==a?(S=()=>{p.current={isFullView:i,selectedFileIndex:a,files:o}},C=[i,a,o],t[11]=o,t[12]=i,t[13]=a,t[14]=S,t[15]=C):(S=t[14],C=t[15]),(0,Y.useEffect)(S,C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{if(!_.current)return;let e=l.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=p.current,i=u.current,a=d.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:Ie(o),c=s?r===`original`?s.original:s.modified:null,l=i.filter(e=>e.fileIndex===n&&e.side===r),u=new Set(l.map(e=>ze(e.lineNumber,c))),d=e.getModel()?.getLineCount()??0,f=[];for(let e=1;e<=d;e++)u.has(e)||f.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},options:{isWholeLine:!0,glyphMarginClassName:`diff-gutter-add-comment`,glyphMarginHoverMessage:{value:`$(add) Click to add a comment`},stickiness:z.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}});let p=l.map(e=>{let t=ze(e.lineNumber,c);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`,glyphMarginClassName:n?`diff-comment-glyph-active`:`diff-comment-glyph`,glyphMarginHoverMessage:{value:e.comment},stickiness:z.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}}}).filter(We);f.push(...p);let m=r===`original`?h.current.original:h.current.modified,g=e.deltaDecorations(m,f);r===`original`?h.current.original=g:h.current.modified=g};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},t[16]=w):w=t[16];let T=w,E;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=g.current;g.current=null,e?.original?.dispose(),e?.modified?.dispose()},t[17]=E):E=t[17];let D=E,O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>{T()},t[18]=O):O=t[18];let k;t[19]!==r||t[20]!==n||t[21]!==i||t[22]!==s||t[23]!==a?(k=[T,n,r,a,i,s],t[19]=r,t[20]=n,t[21]=i,t[22]=s,t[23]=a,t[24]=k):k=t[24],(0,Y.useEffect)(O,k);let A;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>()=>{l.current=null,h.current={original:[],modified:[]},D()},t[25]=A):A=t[25];let j;t[26]===a?j=t[27]:(j=[a,D],t[26]=a,t[27]=j),(0,Y.useEffect)(A,j);let M,N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>()=>{_.current=!1,l.current=null,h.current={original:[],modified:[]},D()},N=[D],t[28]=M,t[29]=N):(M=t[28],N=t[29]),(0,Y.useEffect)(M,N);let P;t[30]===c?P=t[31]:(P=e=>{l.current=e;let t=e.getModel();g.current=t?{original:t.original,modified:t.modified}:null;let n=Ue,r=(e,t)=>{e.onMouseDown(r=>{if(!r.target?.position||!n(r.target.type))return;let i=r.target.position.lineNumber,{isFullView:a,selectedFileIndex:o,files:s}=p.current,l=s[o];if(!l)return;let d=a?null:Ie(l),f=Be(i,d?t===`original`?d.original:d.modified:null),m=e.getModel()?.getLineContent(i)??``;c({existing:u.current.find(e=>e.fileIndex===o&&e.lineNumber===f&&e.side===t),lineNumber:f,lineContent:m,side:t})})};r(e.getOriginalEditor(),`original`),r(e.getModifiedEditor(),`modified`),setTimeout(()=>{l.current===e&&T()},150)},t[30]=c,t[31]=P);let F=P,I;return t[32]===F?I=t[33]:(I={diffEditorRef:l,applyAllDecorations:T,handleEditorDidMount:F},t[32]=F,t[33]=I),I}function Ue(e){return e===z.MouseTargetType.GUTTER_GLYPH_MARGIN||e===z.MouseTargetType.GUTTER_LINE_NUMBERS||e===z.MouseTargetType.GUTTER_LINE_DECORATIONS||e===z.MouseTargetType.GUTTER_VIEW_ZONE}function We(e){return e!==null}function Ge(e){let t=(0,X.c)(6),{onRetry:r}=e,[i,a]=(0,Y.useState)(!1),o,s;if(t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=window.setTimeout(()=>{a(!0)},15e3);return()=>{window.clearTimeout(e)}},s=[],t[0]=o,t[1]=s):(o=t[0],s=t[1]),(0,Y.useEffect)(o,s),!i){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(M,{label:`Loading review changes...`}),t[2]=e):e=t[2],e}let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(`p`,{className:n.bodyMuted,children:`Loading review changes is taking longer than expected.`}),t[3]=c):c=t[3];let l;return t[4]===r?l=t[5]:(l=(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,Z.jsxs)(`div`,{className:`space-y-4 text-center`,children:[c,(0,Z.jsx)(L,{variant:`outline`,onClick:r,children:`Retry`})]})}),t[4]=r,t[5]=l),l}function Ke(e,t,n){return`git-media:${e}:${t}:${n}`}function qe(e,t,n){let r=(0,X.c)(13),i;r[0]!==t||r[1]!==e||r[2]!==n?(i=Ke(e,t,n),r[0]=t,r[1]=e,r[2]=n,r[3]=i):i=r[3];let a;r[4]!==t||r[5]!==e||r[6]!==n?(a=()=>A(e,t,n),r[4]=t,r[5]=e,r[6]=n,r[7]=a):a=r[7];let o=ae(i,a),s;r[8]===o?s=r[9]:(s=URL.createObjectURL(o),r[8]=o,r[9]=s);let c=s,l,u;return r[10]===c?(l=r[11],u=r[12]):(l=()=>()=>{URL.revokeObjectURL(c)},u=[c],r[10]=c,r[11]=l,r[12]=u),(0,Y.useEffect)(l,u),c}function Je(e){let t=(0,X.c)(9),{threadId:r,filePath:i,version:a,label:o}=e,s=qe(r,i,a),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=p(n.caption,`px-3 py-1.5 border-b text-muted-foreground bg-muted/30`),t[0]=c):c=t[0];let l;t[1]===o?l=t[2]:(l=(0,Z.jsx)(`div`,{className:c,children:o}),t[1]=o,t[2]=l);let u=`${o} - ${i}`,d;t[3]!==s||t[4]!==u?(d=(0,Z.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 overflow-auto bg-background`,children:(0,Z.jsx)(`img`,{src:s,alt:u,className:`max-w-full max-h-full object-contain`})}),t[3]=s,t[4]=u,t[5]=d):d=t[5];let f;return t[6]!==l||t[7]!==d?(f=(0,Z.jsxs)(`div`,{className:`flex flex-col h-full`,children:[l,d]}),t[6]=l,t[7]=d,t[8]=f):f=t[8],f}function Ye(e){let t=(0,X.c)(23),{threadId:n,file:r}=e,i=r.status===`modified`||r.status===`deleted`||r.status===`renamed`,a=r.status===`modified`||r.status===`added`||r.status===`untracked`||r.status===`renamed`;if(i&&a){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(M,{label:`Loading before...`}),t[0]=e):e=t[0];let i=r.status===`renamed`&&r.oldPath?r.oldPath:r.path,a;t[1]!==i||t[2]!==n?(a=(0,Z.jsx)(`div`,{className:`flex-1 border-r border-border`,children:(0,Z.jsx)(Y.Suspense,{fallback:e,children:(0,Z.jsx)(Je,{threadId:n,filePath:i,version:`old`,label:`Before`})})}),t[1]=i,t[2]=n,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Z.jsx)(M,{label:`Loading after...`}),t[4]=o):o=t[4];let s;t[5]!==r.path||t[6]!==n?(s=(0,Z.jsx)(`div`,{className:`flex-1`,children:(0,Z.jsx)(Y.Suspense,{fallback:o,children:(0,Z.jsx)(Je,{threadId:n,filePath:r.path,version:`new`,label:`After`})})}),t[5]=r.path,t[6]=n,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,Z.jsxs)(`div`,{className:`flex h-full`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}let o=a?`new`:`old`,s=a?`Added`:`Deleted`,c;t[11]===s?c=t[12]:(c=s.toLowerCase(),t[11]=s,t[12]=c);let l=`Loading ${c} image...`,u;t[13]===l?u=t[14]:(u=(0,Z.jsx)(M,{label:l}),t[13]=l,t[14]=u);let d;t[15]!==r.path||t[16]!==s||t[17]!==n||t[18]!==o?(d=(0,Z.jsx)(Je,{threadId:n,filePath:r.path,version:o,label:s}),t[15]=r.path,t[16]=s,t[17]=n,t[18]=o,t[19]=d):d=t[19];let f;return t[20]!==u||t[21]!==d?(f=(0,Z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,Z.jsx)(Y.Suspense,{fallback:u,children:d})}),t[20]=u,t[21]=d,t[22]=f):f=t[22],f}function Xe(e){let t=(0,X.c)(70),{threadId:r,selectedFile:i,selectedFileIndex:a,isImageFile:o,diffOriginal:s,diffModified:c,resolvedTheme:v,onEditorMount:b,diffEditorOptions:S,isPanelCollapsed:C,showTreeBackButton:w,onShowTree:T,onTogglePanel:D,isFullView:k,onToggleFullView:A,comments:j,activeCommentIndex:M,onPrevComment:N,onNextComment:P,onFixComments:F,isChatOpen:I,onOpenChat:R,onCloseChat:z}=e,B=re(Ze),ne;t[0]===B?ne=t[1]:(ne=e=>ee(e,B),t[0]=B,t[1]=ne);let ie=re(ne),ae;t[2]===B?ae=t[3]:(ae=e=>te(e,B),t[2]=B,t[3]=ae);let oe=re(ae),se=C&&`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`,V;t[4]===se?V=t[5]:(V=p(`bg-transparent`,se),t[4]=se,t[5]=V);let U;t[6]!==C||t[7]!==T||t[8]!==D||t[9]!==w?(U=w?(0,Z.jsxs)(L,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:T,children:[(0,Z.jsx)(g,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Show file tree`})]}):(0,Z.jsxs)(L,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:D,children:[C?(0,Z.jsx)(g,{className:`h-4 w-4`}):(0,Z.jsx)(m,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`})]}),t[6]=C,t[7]=T,t[8]=D,t[9]=w,t[10]=U):U=t[10];let ce;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(ce=p(n.label,`text-foreground`),t[11]=ce):ce=t[11];let de=i?i.path:`Review Changes`,W;t[12]===de?W=t[13]:(W=(0,Z.jsx)(`span`,{className:ce,children:de}),t[12]=de,t[13]=W);let G;t[14]!==U||t[15]!==W?(G=(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[U,W]}),t[14]=U,t[15]=W,t[16]=G):G=t[16];let pe=C&&`ml-0`,me=!C&&`ml-auto`,K;t[17]!==pe||t[18]!==me?(K=p(`flex items-center gap-2`,pe,me,`md:ml-auto`),t[17]=pe,t[18]=me,t[19]=K):K=t[19];let q;t[20]!==k||t[21]!==o||t[22]!==A||t[23]!==i?(q=!o&&(0,Z.jsx)(L,{variant:`ghost`,size:`sm`,onClick:A,disabled:!i,className:p(n.compact,`h-8 gap-1 px-2`),children:k?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(l,{className:`h-3 w-3`}),` Show changes only`]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f,{className:`h-3 w-3`}),` Show full file`]})}),t[20]=k,t[21]=o,t[22]=A,t[23]=i,t[24]=q):q=t[24];let J;t[25]!==M||t[26]!==j.length||t[27]!==P||t[28]!==N?(J=j.length>0&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsxs)(E,{children:[(0,Z.jsx)(O,{asChild:!0,children:(0,Z.jsx)(L,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:N,disabled:(M??0)===0,children:(0,Z.jsx)(h,{className:`h-3 w-3`})})}),(0,Z.jsx)(x,{children:`Previous comment`})]}),(0,Z.jsx)(`span`,{className:p(n.caption,`whitespace-nowrap`),children:j.length===1?`1 Comment`:`Comment ${(M??0)+1} of ${j.length}`}),(0,Z.jsxs)(E,{children:[(0,Z.jsx)(O,{asChild:!0,children:(0,Z.jsx)(L,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:P,disabled:(M??0)===j.length-1,children:(0,Z.jsx)(d,{className:`h-3 w-3`})})}),(0,Z.jsx)(x,{children:`Next comment`})]})]}),t[25]=M,t[26]=j.length,t[27]=P,t[28]=N,t[29]=J):J=t[29];let Y;t[30]!==j.length||t[31]!==F?(Y=j.length>0&&(0,Z.jsxs)(E,{children:[(0,Z.jsx)(O,{asChild:!0,children:(0,Z.jsxs)(L,{size:`sm`,onClick:F,className:p(n.compact,`h-8 gap-1 px-3 bg-foreground text-background hover:bg-foreground/90`),children:[(0,Z.jsx)(_,{className:`h-3 w-3`}),`Fix all comments`]})}),(0,Z.jsx)(x,{children:`Send all comments to Tarsk for resolution`})]}),t[30]=j.length,t[31]=F,t[32]=Y):Y=t[32];let Q;t[33]!==K||t[34]!==q||t[35]!==J||t[36]!==Y?(Q=(0,Z.jsxs)(`div`,{className:K,children:[q,J,Y]}),t[33]=K,t[34]=q,t[35]=J,t[36]=Y,t[37]=Q):Q=t[37];let $;t[38]!==Q||t[39]!==V||t[40]!==G?($=(0,Z.jsxs)(le,{className:V,children:[G,Q]}),t[38]=Q,t[39]=V,t[40]=G,t[41]=$):$=t[41];let he;t[42]!==S||t[43]!==c||t[44]!==s||t[45]!==o||t[46]!==b||t[47]!==v||t[48]!==i||t[49]!==a||t[50]!==r?(he=o&&i?(0,Z.jsx)(Ye,{threadId:r,file:i}):(0,Z.jsx)(y,{height:`100%`,language:Ve(i?.path||``),original:s,modified:c,keepCurrentOriginalModel:!0,keepCurrentModifiedModel:!0,theme:v===`dark`?`vs-dark`:`vs-light`,onMount:b,options:S},`diff-${a}`),t[42]=S,t[43]=c,t[44]=s,t[45]=o,t[46]=b,t[47]=v,t[48]=i,t[49]=a,t[50]=r,t[51]=he):he=t[51];let ge;t[52]!==ie||t[53]!==B||t[54]!==I||t[55]!==z||t[56]!==oe?(ge=I&&(0,Z.jsxs)(`div`,{className:`pointer-events-auto w-[min(100%,48rem)] rounded-2xl bg-background/50 p-4 backdrop-blur-md`,children:[(0,Z.jsx)(`div`,{className:`mb-3 flex items-center justify-end`,children:(0,Z.jsxs)(L,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:z,children:[(0,Z.jsx)(u,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Close chat`})]})}),(0,Z.jsx)(fe,{paneId:B,conversationId:ie,children:(0,Z.jsx)(H,{children:(0,Z.jsx)(ue,{messages:oe})})})]}),t[52]=ie,t[53]=B,t[54]=I,t[55]=z,t[56]=oe,t[57]=ge):ge=t[57];let _e;t[58]!==I||t[59]!==R?(_e=!I&&(0,Z.jsxs)(E,{children:[(0,Z.jsx)(O,{asChild:!0,children:(0,Z.jsxs)(L,{size:`icon`,className:`pointer-events-auto h-12 w-12 rounded-full shadow-lg`,onClick:R,children:[(0,Z.jsx)(_,{className:`h-5 w-5`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Open review chat`})]})}),(0,Z.jsx)(x,{children:`Chat about this diff`})]}),t[58]=I,t[59]=R,t[60]=_e):_e=t[60];let ve;t[61]!==ge||t[62]!==_e?(ve=(0,Z.jsxs)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 z-20 flex flex-col items-end gap-3`,children:[ge,_e]}),t[61]=ge,t[62]=_e,t[63]=ve):ve=t[63];let ye;t[64]!==he||t[65]!==ve?(ye=(0,Z.jsxs)(`div`,{className:`flex-1 bg-transparent relative`,children:[he,ve]}),t[64]=he,t[65]=ve,t[66]=ye):ye=t[66];let be;return t[67]!==$||t[68]!==ye?(be=(0,Z.jsxs)(`div`,{className:`diff-editor-panel flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden bg-transparent`,children:[$,ye]}),t[67]=$,t[68]=ye,t[69]=be):be=t[69],be}function Ze(e){return e.focusedPane}function Qe(){let e=(0,X.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(W,{withHandle:!0,className:`z-10 shrink-0`}),e[0]=t):t=e[0],t}function $e(e){let t=(0,X.c)(8),{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:a,onPanelExpand:o,fileTreePanel:s,diffEditorPanel:c}=e,l;return t[0]!==c||t[1]!==s||t[2]!==n||t[3]!==r||t[4]!==a||t[5]!==o||t[6]!==i?(l=(0,Z.jsx)(`div`,{className:`diff-body flex min-h-0 w-full flex-1 overflow-hidden`,children:n?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:p(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,!r&&`hidden`),children:s}),(0,Z.jsx)(`div`,{className:p(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,r&&`hidden`),children:c})]}):(0,Z.jsxs)(de,{direction:`horizontal`,children:[(0,Z.jsx)(se,{ref:i,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:a,onExpand:o,className:`overflow-hidden border-r border-transparent`,children:s}),(0,Z.jsx)(Qe,{}),(0,Z.jsx)(se,{className:`overflow-hidden border-l border-border bg-transparent`,children:c})]})}),t[0]=c,t[1]=s,t[2]=n,t[3]=r,t[4]=a,t[5]=o,t[6]=i,t[7]=l):l=t[7],l}var et=i(`app.diff-view.ui`);function tt({threadId:e,onExit:t,loadVersion:n,cachedState:r,onCachedStateChange:i}){let a=ae(Ae(e,n),()=>Me(e)),o=B(),s=re(e=>e.projectModelSelections),{resolvedTheme:c}=oe(),l=ce(),{fetchUnifiedStatus:u}=G(),[d,f]=(0,Y.useState)(r?.files??a.files??[]),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(r?.selectedFileIndex??0),[_,v]=(0,Y.useState)(!1),[y,b]=(0,Y.useState)(!1),[x,S]=(0,Y.useState)(!1),[T,E]=(0,Y.useState)(!0),D=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{f(a.files??[]),g(e=>{let t=r?.selectedFileIndex??e,n=Math.max((a.files?.length??1)-1,0);return Math.min(t,n)})},[r?.selectedFileIndex,a.files]),(0,Y.useEffect)(()=>{E(!0)},[e]);let O=(0,Y.useCallback)(e=>{g(e),l&&E(!1)},[l]);(0,Y.useEffect)(()=>{i&&i(e=>{let t=d,n=Math.max(t.length-1,0),r=Math.min(h,n);return e?.files===t&&e.selectedFileIndex===r?e:{files:t,selectedFileIndex:r}})},[d,i,h]);let A=(0,Y.useCallback)(()=>{E(!0)},[]),M=l&&!T,{comments:N,setComments:P}=ke(e),[F,I]=(0,Y.useState)(null),[L,R]=(0,Y.useState)(null),[z,ee]=(0,Y.useState)(null),te=(0,Y.useCallback)(()=>{D.current&&(y?D.current.expand():D.current.collapse())},[y]),ie=(0,Y.useCallback)(async()=>{if(e){m(null);try{let t=await w(e);f(t.files||[]),g(e=>{let n=t.files||[],r=Math.max(n.length-1,0);return Math.min(e,r)})}catch(e){m(e instanceof Error?e.message:`Failed to load diff`)}}},[e]),se=(0,Y.useCallback)(async t=>{try{await j(e,t.path),await Promise.all([ie(),u(!0)])}catch(e){m(e instanceof Error?e.message:`Failed to revert file`)}},[e,ie,u]),V=(0,Y.useMemo)(()=>ge(d),[d]),H=d[h],U=H?.isBinary??!1,le=H?_?H.oldContent:(()=>{let e=Ie(H);return e?Le(H.oldContent,e.original.startLine,e.original.endLine):H.oldContent})():``,ue=H?_?H.newContent:(()=>{let e=Ie(H);return e?Le(H.newContent,e.modified.startLine,e.modified.endLine):H.newContent})():``,{diffEditorRef:de,applyAllDecorations:W,handleEditorDidMount:fe}=He({comments:N,activeCommentIndex:F,isFullView:_,selectedFileIndex:h,files:d,selectedFile:H,onLineGutterClick:(0,Y.useCallback)(({existing:e,lineNumber:t,lineContent:n,side:r})=>{e?ee(e):R({lineNumber:t,lineContent:n,side:r})},[])}),pe=(0,Y.useCallback)(e=>{if(L&&H){let t={id:`comment-${Date.now()}`,filePath:H.path,fileIndex:h,lineNumber:L.lineNumber,lineContent:L.lineContent,comment:e,side:L.side};P(e=>[...e,t]),R(null)}else z&&(P(t=>t.map(t=>t.id===z.id?{...t,comment:e}:t)),ee(null))},[L,z,H,h,P]),me=(0,Y.useCallback)(()=>{z&&(P(e=>e.filter(e=>e.id!==z.id)),ee(null))},[z,P]),K=(0,Y.useCallback)(e=>{if(N.length===0)return;let t=(e%N.length+N.length)%N.length,n=N[t];I(t),g(n.fileIndex),l&&E(!1),setTimeout(()=>{let e=de.current;if(!e)return;let t=d[n.fileIndex];if(!t)return;let r=_?null:Ie(t),i=r?n.side===`original`?r.original:r.modified:null,a=ze(n.lineNumber,i);(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,a)),W()},100)},[N,d,_,W,l]),q=(0,Y.useCallback)(()=>{K((F??0)-1)},[K,F]),J=(0,Y.useCallback)(()=>{K((F??-1)+1)},[K,F]),X=(0,Y.useCallback)(async()=>{let n=s[e];if(!n)try{let e=await k(),t=Object.values(e).flat();if(t.length>0)n=t[0];else{et.error(`No models available to process comments`);return}}catch(e){et.error(`Failed to load models:`,e);return}let r=n.id,i=n.provider;try{let{prompt:n}=await C(e,N);P([]),o({type:ne.SetPendingChatMessage,message:{threadId:e,message:n,model:r,provider:i}}),t()}catch(e){et.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}},[N,s,o,e,t,P]),Q={readOnly:!0,renderSideBySide:!l,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,glyphMargin:!0,lineNumbers:H&&(_||Re(H))?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0};return(0,Z.jsxs)(`div`,{className:`diff-view-root flex h-full min-h-0 w-full flex-col`,children:[(0,Z.jsx)($e,{isMobile:l,mobileShowTree:T,panelRef:D,onPanelCollapse:()=>b(!0),onPanelExpand:()=>b(!1),fileTreePanel:(0,Z.jsx)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,children:(0,Z.jsx)(xe,{treeData:V,files:d,error:p,selectedFileIndex:h,onFileSelect:O,onRevertFile:se})}),diffEditorPanel:(0,Z.jsx)(Xe,{threadId:e,selectedFile:H,selectedFileIndex:h,isImageFile:U,diffOriginal:le,diffModified:ue,resolvedTheme:c,onEditorMount:fe,diffEditorOptions:Q,isPanelCollapsed:y,showTreeBackButton:M,onShowTree:A,onTogglePanel:te,isFullView:_,onToggleFullView:()=>v(e=>!e),comments:N,activeCommentIndex:F,onPrevComment:q,onNextComment:J,onFixComments:X,isChatOpen:x,onOpenChat:()=>S(!0),onCloseChat:()=>S(!1)})}),(0,Z.jsx)(Oe,{open:L!==null||z!==null,lineNumber:z?.lineNumber??L?.lineNumber??0,lineContent:z?.lineContent??L?.lineContent??``,initialComment:z?.comment,isEditing:z!==null,onSave:pe,onDelete:me,onClose:()=>{R(null),ee(null)}},`${z?.id??``}-${L?.lineNumber??``}-${L?.side??``}`)]})}function nt(e){let t=(0,X.c)(23),[n,r]=(0,Y.useState)(0),[i,a]=(0,Y.useState)(0),o=(0,Y.useRef)(0),s=!!e.cachedState,c;t[0]===e.threadId?c=t[1]:(c=()=>{r(t=>(ie(Ae(e.threadId,t)),t+1)),a(it)},t[0]=e.threadId,t[1]=c);let l=c,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{a(0),r(0),o.current=0},t[2]=u):u=t[2];let d;t[3]===e.threadId?d=t[4]:(d=[e.threadId],t[3]=e.threadId,t[4]=d),(0,Y.useEffect)(u,d);let f,p;t[5]!==e.refreshTrigger||t[6]!==e.threadId?(f=()=>{!e.refreshTrigger||e.refreshTrigger<=o.current||(o.current=e.refreshTrigger,r(t=>(ie(Ae(e.threadId,t)),t+1)),a(rt))},p=[e.refreshTrigger,e.threadId],t[5]=e.refreshTrigger,t[6]=e.threadId,t[7]=f,t[8]=p):(f=t[7],p=t[8]),(0,Y.useEffect)(f,p);let m=`${e.threadId}:${i}`,h;t[9]!==l||t[10]!==s?(h=s?null:(0,Z.jsx)(Ge,{onRetry:l}),t[9]=l,t[10]=s,t[11]=h):h=t[11];let g=`${e.threadId}:${n}`,_;t[12]!==n||t[13]!==e||t[14]!==g?(_=(0,Z.jsx)(tt,{...e,loadVersion:n},g),t[12]=n,t[13]=e,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==h||t[17]!==_?(v=(0,Z.jsx)(Y.Suspense,{fallback:h,children:_}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;return t[19]!==l||t[20]!==m||t[21]!==v?(y=(0,Z.jsx)(J,{fallbackTitle:`Failed to load review changes`,onRetry:l,children:v},m),t[19]=l,t[20]=m,t[21]=v,t[22]=y):y=t[22],y}function rt(e){return e+1}function it(e){return e+1}export{nt as DiffView,nt as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/explorer-tree-gTgMdTOW.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-BdDEzAzX.js","assets/monaco-D1hpqXQ0.js","assets/monaco-BQve5vfS.css","assets/api-D3kM9pkY.js","assets/onboarding-_okRJRpU.js","assets/interactive-WtOIgeV4.js","assets/alert-dialog-tR8jdoK3.js","assets/react-vendor-DM3Nejio.js","assets/use-toast-BFQ85Ly5.js","assets/chat-dock-context-DX0woD8r.js","assets/store-CSyJjyNs.js","assets/explorer-tab-context-8bs_tiCO.js","assets/main-tab-context-DHeKIUsf.js","assets/use-suspense-resource-rX-GqyWi.js","assets/local-tool-blocks-DlqmJ7__.js","assets/ndjson-stream-DeGpE5o5.js","assets/thread-tool-blocks-BfowiaTH.js","assets/utils-Rlf65JHq.js","assets/index-zilB0ZSo.css","assets/async-error-boundary-D2YxNX8i.js","assets/card-xQfAy2Rx.js","assets/context-menu-D6nrl6uV.js","assets/ui-components-BLrzr-Yo.js","assets/explorer-view-DhR2CWcz.js","assets/monaco-setup-Xkv0hjl5.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ti as r,_ as i,i as a}from"./interactive-WtOIgeV4.js";import{bt as o,ht as ee,xt as te}from"./onboarding-_okRJRpU.js";import{l as s}from"./monaco-D1hpqXQ0.js";import{r as c}from"./store-CSyJjyNs.js";import{t as l}from"./use-toast-BFQ85Ly5.js";import{n as u}from"./explorer-tab-context-8bs_tiCO.js";import{$ as d,A as f,Ct as p,M as m,Q as h,X as g,Z as _,et as v,j as y,k as b}from"./index-BdDEzAzX.js";import{t as x}from"./async-error-boundary-D2YxNX8i.js";var S=e(r(),1),C=t(),w=(0,S.lazy)(()=>s(()=>import(`./explorer-tree-gTgMdTOW.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]))),ne=(0,S.lazy)(()=>s(()=>import(`./explorer-view-DhR2CWcz.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26])));function T(){let e=c(e=>e.selectedThreadId),t=m(),[r,s]=(0,S.useState)(null),[T,E]=(0,S.useState)(!0),[D,O]=(0,S.useState)(null),[k,A]=(0,S.useState)(!1),[j,M]=(0,S.useState)(!1),N=(0,S.useRef)(0),{pendingExplorerPath:P,setPendingExplorerPath:F,explorerClearPath:I,setExplorerClearPath:L,triggerExplorerRefresh:R}=u();(0,S.useEffect)(()=>{function e(e){v(e.dataTransfer)&&e.preventDefault()}return window.addEventListener(`dragover`,e),window.addEventListener(`drop`,e),()=>{window.removeEventListener(`dragover`,e),window.removeEventListener(`drop`,e)}},[]),(0,S.useEffect)(()=>{E(!0)},[e]);let z=(0,S.useCallback)(e=>{s(e),t&&E(!1)},[t]),B=(0,S.useCallback)(()=>{E(!0)},[]),V=(0,S.useCallback)(e=>{s(e),t&&E(!1)},[t]);(0,S.useEffect)(()=>{P&&(s({name:P.split(`/`).pop()??P,path:P,type:`file`}),t&&E(!1),F(null))},[t,P,F]),(0,S.useEffect)(()=>{I&&(r&&(r.path===I||r.path.startsWith(I+`/`))&&(s(null),t&&E(!0)),L(null))},[I,t,r,L]);function H(){N.current=0,M(!1)}function U(e){v(e.dataTransfer)&&(N.current+=1,M(!0))}function W(e){v(e.dataTransfer)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}function G(e){v(e.dataTransfer)&&(N.current=Math.max(0,N.current-1),N.current===0&&M(!1))}function K(e){if(!v(e.dataTransfer))return;e.preventDefault(),H();let{files:t,skippedFolders:n}=d(e.dataTransfer);n>0&&l({title:`Folders skipped`,description:`Only files can be copied. Drop individual files instead of folders.`}),t.length!==0&&O({files:t,dirPath:``})}let q=(0,S.useCallback)((e,t)=>{N.current=0,M(!1),O({files:e,dirPath:t})},[]);async function J(){if(!(!D||!e||k)){A(!0);try{let{copied:t,failures:n}=await h(e,D.dirPath,D.files);t.length>0&&R(),l(_(D,t.length,n))}finally{A(!1),O(null)}}}let Y={onDragEnter:U,onDragOver:W,onDragLeave:G,onDrop:K},X=j?(0,C.jsx)(`div`,{className:`pointer-events-none absolute inset-0 z-50 flex items-center justify-center bg-background/70`,children:(0,C.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border-2 border-dashed border-primary bg-background px-6 py-4`,children:[(0,C.jsx)(i,{className:`h-4 w-4 text-primary`}),(0,C.jsx)(`span`,{className:n.label,children:`Drop files to copy them into the repository`})]})}):null,Z=(0,C.jsx)(ee,{className:`h-full`,children:e?(0,C.jsx)(p,{threadId:e,children:(0,C.jsx)(x,{fallbackTitle:`Failed to load files`,children:(0,C.jsx)(S.Suspense,{fallback:(0,C.jsx)(te,{}),children:(0,C.jsx)(w,{threadId:e,selectedPath:r?.path??null,onNodeSelect:z,onFilesDrop:q})})})}):(0,C.jsx)(`p`,{className:a(n.caption,`px-3 py-4 text-center`),children:`No thread selected.`})}),Q=(0,C.jsx)(S.Suspense,{fallback:(0,C.jsx)(o,{}),children:(0,C.jsx)(ne,{selectedFile:r,showTreeBackButton:t&&!T,onShowTree:B,onFileCreated:V})}),$=(0,C.jsx)(g,{pendingDrop:D,dropCopying:k,onConfirm:()=>{J()},onDismiss:()=>{O(null)}});return t?(0,C.jsxs)(`div`,{className:`relative flex h-full flex-col overflow-hidden`,...Y,children:[X,$,(0,C.jsx)(`div`,{className:a(`flex-1 min-h-0 overflow-hidden`,!T&&`hidden`),children:Z}),(0,C.jsx)(`div`,{className:a(`flex-1 min-h-0 overflow-hidden`,T&&`hidden`),children:Q})]}):(0,C.jsxs)(`div`,{className:`relative flex h-full flex-col overflow-hidden`,...Y,children:[X,$,(0,C.jsxs)(y,{direction:`horizontal`,className:`flex-1 overflow-hidden`,children:[(0,C.jsx)(f,{defaultSize:25,minSize:15,maxSize:50,className:`overflow-hidden border-r border-border`,children:Z}),(0,C.jsx)(b,{withHandle:!0}),(0,C.jsx)(f,{className:`overflow-hidden`,children:Q})]})]})}export{T as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Ft as r,Mt as i,Nt as a,Ti as o,fn as s,i as c,mn as l,wi as u,z as d}from"./interactive-WtOIgeV4.js";import{f,x as p,xt as m,yt as h}from"./onboarding-_okRJRpU.js";import{t as g}from"./use-toast-BFQ85Ly5.js";import{a as _,c as v,i as y,n as b,r as x,t as S}from"./alert-dialog-tR8jdoK3.js";import{n as C}from"./explorer-tab-context-8bs_tiCO.js";import{l as w,n as T,o as E,r as D,s as O,t as k}from"./api-D3kM9pkY.js";import{n as A,t as j}from"./use-suspense-resource-rX-GqyWi.js";import{$ as M,bt as N,et as P,it as ee,vt as te,wt as F,yt as I}from"./index-BdDEzAzX.js";import{a as L,i as R,n as z,r as B,t as ne}from"./context-menu-D6nrl6uV.js";import{t as re}from"./async-error-boundary-D2YxNX8i.js";import{t as V}from"./ui-components-BLrzr-Yo.js";var H=u(),U=e(o(),1),W=t(),G=U.forwardRef((e,t)=>{let n=(0,H.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=c(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,W.jsx)(V,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});G.displayName=V.displayName;var K=U.forwardRef((e,t)=>{let n=(0,H.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]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,W.jsx)(d,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),n[3]=a):a=n[3];let o;n[4]===r?o=n[5]:(o=c(`flex h-11 w-full rounded-md bg-transparent py-3 text-base outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,r),n[4]=r,n[5]=o);let s;return n[6]!==i||n[7]!==t||n[8]!==o?(s=(0,W.jsxs)(`div`,{className:`flex items-center border-b px-3`,"cmdk-input-wrapper":``,children:[a,(0,W.jsx)(V.Input,{ref:t,className:o,...i})]}),n[6]=i,n[7]=t,n[8]=o,n[9]=s):s=n[9],s});K.displayName=V.Input.displayName;var q=U.forwardRef((e,t)=>{let n=(0,H.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=c(`max-h-[300px] overflow-y-auto overflow-x-hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,W.jsx)(V.List,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});q.displayName=V.List.displayName;var J=U.forwardRef((e,t)=>{let r=(0,H.c)(4),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=c(n.bodyMuted,`py-6 text-center`),r[0]=i):i=r[0];let a;return r[1]!==e||r[2]!==t?(a=(0,W.jsx)(V.Empty,{ref:t,className:i,...e}),r[1]=e,r[2]=t,r[3]=a):a=r[3],a});J.displayName=V.Empty.displayName;var Y=U.forwardRef((e,t)=>{let n=(0,H.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=c(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,W.jsx)(V.Group,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Y.displayName=V.Group.displayName;var ie=U.forwardRef((e,t)=>{let n=(0,H.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=c(`-mx-1 h-px bg-divider`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,W.jsx)(V.Separator,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});ie.displayName=V.Separator.displayName;var ae=U.forwardRef((e,t)=>{let r=(0,H.c)(9),i,a;r[0]===e?(i=r[1],a=r[2]):({className:i,...a}=e,r[0]=e,r[1]=i,r[2]=a);let o;r[3]===i?o=r[4]:(o=c(c(n.body,`relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`),i),r[3]=i,r[4]=o);let s;return r[5]!==a||r[6]!==t||r[7]!==o?(s=(0,W.jsx)(V.Item,{ref:t,className:o,...a}),r[5]=a,r[6]=t,r[7]=o,r[8]=s):s=r[8],s});ae.displayName=V.Item.displayName;var oe=e=>{let t=(0,H.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=c(n.compact,`ml-auto tracking-widest text-muted-foreground`,r),t[3]=r,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,W.jsx)(`span`,{className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o};oe.displayName=`CommandShortcut`;var X=100,se=500;function Z(e){return e.trim().toLowerCase().split(/\s+/).filter(Boolean)}function ce(e,t){return t.length===0?!0:t.every(t=>e.haystack.includes(t))}function le(e,t,n){if(t.length===0)return[];let r=[];for(let n of e)if(ce(n,t)&&(r.push(n.node),r.length>=se))break;return r.sort((e,t)=>ue(e,t,n)).slice(0,X)}function ue(e,t,n){let r=n.trim().toLowerCase(),i=e.name.toLowerCase(),a=t.name.toLowerCase(),o=r?i.startsWith(r):!1;return o===(r?a.startsWith(r):!1)?e.type===t.type?e.path.localeCompare(t.path):e.type===`folder`?-1:1:o?-1:1}function de(e){let t=(0,H.c)(38),{items:r,isReady:a,onRequestIndex:o,onOpenChange:s,onSelect:l}=e,u=a===void 0?!1:a,d=(0,U.useRef)(null),f=(0,U.useRef)(!1),m=(0,U.useRef)(!1),[h,g]=(0,U.useState)(!1),[_,v]=(0,U.useState)(``),y=(0,U.useDeferredValue)(_),b;t[0]===o?b=t[1]:(b=function(){m.current||(m.current=!0,o())},t[0]=o,t[1]=b);let x=b,S;t[2]!==y||t[3]!==r?(S=le(r,Z(y),y),t[2]=y,t[3]=r,t[4]=S):S=t[4];let C=S,w,T;t[5]!==s||t[6]!==_?(w=()=>{let e=_.trim().length>0;g(e),f.current!==e&&(f.current=e,s(e))},T=[s,_],t[5]=s,t[6]=_,t[7]=w,t[8]=T):(w=t[7],T=t[8]),(0,U.useEffect)(w,T);let E;t[9]===s?E=t[10]:(E=function(e){e||v(``),g(e),s(e),e&&requestAnimationFrame(()=>d.current?.focus())},t[9]=s,t[10]=E);let D=E,O;t[11]!==s||t[12]!==l?(O=function(e){l(e),g(!1),s(!1),v(``)},t[11]=s,t[12]=l,t[13]=O):O=t[13];let k=O,A;t[14]===x?A=t[15]:(A=e=>{x(),v(e.target.value)},t[14]=x,t[15]=A);let j;t[16]!==_||t[17]!==x||t[18]!==A?(j=(0,W.jsx)(N,{asChild:!0,children:(0,W.jsx)(`div`,{className:`bg-transparent`,children:(0,W.jsx)(p,{ref:d,value:_,onPointerDown:x,onChange:A,placeholder:`Search files and folders`,className:`pr-[4px]`})})}),t[16]=_,t[17]=x,t[18]=A,t[19]=j):j=t[19];let M;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(M=c(n.compact,`py-4`),t[20]=M):M=t[20];let P=u?`No matches found.`:`Indexing files and folders...`,F;t[21]===P?F=t[22]:(F=(0,W.jsx)(J,{className:M,children:P}),t[21]=P,t[22]=F);let L;if(t[23]!==k||t[24]!==C){let e;t[26]===k?e=t[27]:(e=e=>(0,W.jsxs)(ae,{value:e.path,onSelect:()=>k(e),className:e.ignored?`opacity-50`:void 0,children:[e.type===`folder`?(0,W.jsx)(i,{className:`h-4 w-4 text-muted-foreground`}):(0,W.jsx)(ee,{filename:e.name}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`truncate`,children:e.name}),(0,W.jsx)(`div`,{className:c(n.compact,`truncate text-muted-foreground`),children:e.path})]})]},e.path),t[26]=k,t[27]=e),L=C.map(e),t[23]=k,t[24]=C,t[25]=L}else L=t[25];let R;t[28]===L?R=t[29]:(R=(0,W.jsx)(Y,{children:L}),t[28]=L,t[29]=R);let z;t[30]!==F||t[31]!==R?(z=(0,W.jsx)(I,{align:`start`,side:`bottom`,sideOffset:4,onOpenAutoFocus:Q,className:`w-[var(--radix-popover-trigger-width)] p-0`,children:(0,W.jsx)(G,{shouldFilter:!1,children:(0,W.jsxs)(q,{children:[F,R]})})}),t[30]=F,t[31]=R,t[32]=z):z=t[32];let B;return t[33]!==D||t[34]!==h||t[35]!==z||t[36]!==j?(B=(0,W.jsxs)(te,{open:h,onOpenChange:D,children:[j,z]}),t[33]=D,t[34]=h,t[35]=z,t[36]=j,t[37]=B):B=t[37],B}function Q(e){return e.preventDefault()}function fe(e,t,n){return`explorer-dir:${e}:${t}:${n}`}function pe(e){let t=(0,H.c)(12),{threadId:n,dirPath:r,version:i,children:a}=e,o;t[0]!==r||t[1]!==n||t[2]!==i?(o=fe(n,r,i),t[0]=r,t[1]=n,t[2]=i,t[3]=o):o=t[3];let s;t[4]!==r||t[5]!==n?(s=()=>E(n,r).then(me),t[4]=r,t[5]=n,t[6]=s):s=t[6];let c=j(o,s),l;t[7]!==a||t[8]!==c?(l=a(c),t[7]=a,t[8]=c,t[9]=l):l=t[9];let u;return t[10]===l?u=t[11]:(u=(0,W.jsx)(W.Fragment,{children:l}),t[10]=l,t[11]=u),u}function me(e){return e.entries}function he(e){let t=(0,H.c)(17),{defaultValue:r,onCommit:i,onCancel:a,level:o,basePadding:s,icon:c}=e,l=(0,U.useRef)(null),u,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{l.current?.focus(),l.current?.select()},d=[],t[0]=u,t[1]=d):(u=t[0],d=t[1]),(0,U.useEffect)(u,d);let p;t[2]!==a||t[3]!==i?(p=function(e){if(e.key===`Enter`){let e=l.current?.value.trim()??``;e?i(e):a()}else e.key===`Escape`&&a()},t[2]=a,t[3]=i,t[4]=p):p=t[4];let m=p,h;t[5]!==a||t[6]!==i?(h=function(){let e=l.current?.value.trim()??``;e?i(e):a()},t[5]=a,t[6]=i,t[7]=h):h=t[7];let g=h,_;t[8]!==r||t[9]!==g||t[10]!==m?(_=(0,W.jsx)(`input`,{ref:l,defaultValue:r,onKeyDown:m,onBlur:g,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-base`,onClick:$}),t[8]=r,t[9]=g,t[10]=m,t[11]=_):_=t[11];let v;return t[12]!==s||t[13]!==c||t[14]!==o||t[15]!==_?(v=(0,W.jsxs)(f,{level:o,basePadding:s,className:n.conversationBody,children:[c,_]}),t[12]=s,t[13]=c,t[14]=o,t[15]=_,t[16]=v):v=t[16],v}function $(e){return e.stopPropagation()}function ge(e){return e.map(e=>({node:e,haystack:`${e.name} ${e.path}`.toLowerCase()}))}function _e(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(0,t):``}var ve=(0,U.memo)(function e({node:t,level:o,threadId:u,selectedPath:d,expandedPaths:p,getDirVersion:m,renamingPath:_,newItemIn:v,onToggleFolder:y,onSelectNode:b,onStartRename:x,onCommitRename:S,onCancelRename:C,onDelete:w,onOpen:T,onCopyReference:E,onNewFile:D,onNewFolder:O,onCommitNewItem:k,onCancelNewItem:A,dropTargetPath:j,onFolderDropTargetChange:N,onFilesDrop:te}){let F=p.has(t.path),I=_===t.path,re=v?.dirPath===t.path&&F,V=j===t.path;return t.type===`folder`?(0,W.jsxs)(ne,{children:[(0,W.jsx)(L,{asChild:!0,children:(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(f,{level:o,basePadding:10,selected:d===t.path,className:c(n.conversationBody,t.ignored&&`opacity-50`,V&&`bg-sidebar-accent text-sidebar-accent-foreground ring-1 ring-primary`),onClick:e=>{e.stopPropagation(),y(t)},onDragOver:e=>{P(e.dataTransfer)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=`copy`,V||N(t.path))},onDragLeave:e=>{P(e.dataTransfer)&&(e.currentTarget.contains(e.relatedTarget)||V&&N(null))},onDrop:e=>{if(!P(e.dataTransfer))return;e.preventDefault(),e.stopPropagation(),N(null);let{files:n,skippedFolders:r}=M(e.dataTransfer);r>0&&g({title:`Folders skipped`,description:`Only files can be copied. Drop individual files instead of folders.`}),n.length>0&&te(n,t.path)},children:[(0,W.jsx)(`span`,{className:`text-muted-foreground w-3 flex-shrink-0`,children:F?(0,W.jsx)(l,{className:`h-3 w-3`}):(0,W.jsx)(s,{className:`h-3 w-3`})}),I?(0,W.jsxs)(W.Fragment,{children:[F?(0,W.jsx)(a,{className:`h-4 w-4 flex-shrink-0`}):(0,W.jsx)(i,{className:`h-4 w-4 flex-shrink-0`}),(0,W.jsx)(`input`,{autoFocus:!0,defaultValue:t.name,onKeyDown:e=>{if(e.key===`Enter`){let n=e.target.value.trim();n?S(t,n):C()}else e.key===`Escape`&&C()},onBlur:e=>{let n=e.target.value.trim();n?S(t,n):C()},onClick:e=>e.stopPropagation(),className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-base`})]}):(0,W.jsxs)(W.Fragment,{children:[F?(0,W.jsx)(a,{className:`h-4 w-4 flex-shrink-0`}):(0,W.jsx)(i,{className:`h-4 w-4 flex-shrink-0`}),(0,W.jsx)(`span`,{className:`flex-1 truncate`,children:t.name})]})]}),F&&(0,W.jsx)(`div`,{children:(0,W.jsx)(U.Suspense,{fallback:(0,W.jsx)(h,{}),children:(0,W.jsx)(pe,{threadId:u,dirPath:t.path,version:m(t.path),children:t=>(0,W.jsxs)(W.Fragment,{children:[re&&(0,W.jsx)(he,{defaultValue:``,level:o+1,basePadding:v.type===`folder`?10:22,icon:v.type===`folder`?(0,W.jsx)(i,{className:`h-4 w-4 flex-shrink-0`}):(0,W.jsx)(r,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:k,onCancel:A}),t.map(t=>(0,W.jsx)(e,{node:t,level:o+1,threadId:u,selectedPath:d,expandedPaths:p,getDirVersion:m,renamingPath:_,newItemIn:v,onToggleFolder:y,onSelectNode:b,onStartRename:x,onCommitRename:S,onCancelRename:C,onDelete:w,onOpen:T,onCopyReference:E,onNewFile:D,onNewFolder:O,onCommitNewItem:k,onCancelNewItem:A,dropTargetPath:j,onFolderDropTargetChange:N,onFilesDrop:te},t.path))]})})})})]})}),(0,W.jsxs)(z,{children:[(0,W.jsx)(B,{onSelect:()=>T(t),children:`Open`}),(0,W.jsx)(R,{}),(0,W.jsx)(B,{onSelect:()=>D(t.path),children:`New File...`}),(0,W.jsx)(B,{onSelect:()=>O(t.path),children:`New Folder...`}),(0,W.jsx)(R,{}),(0,W.jsx)(B,{onSelect:()=>E(t),children:`Copy Reference`}),(0,W.jsx)(B,{onSelect:()=>x(t),children:`Rename...`}),(0,W.jsx)(B,{onSelect:()=>w(t),className:`text-destructive focus:text-destructive`,children:`Delete`})]})]}):(0,W.jsxs)(ne,{children:[(0,W.jsx)(L,{asChild:!0,children:(0,W.jsxs)(f,{level:o,basePadding:22,selected:d===t.path,className:c(n.conversationBody,t.ignored&&`opacity-50`),onClick:()=>b(t),children:[(0,W.jsx)(ee,{filename:t.name}),I?(0,W.jsx)(`input`,{autoFocus:!0,defaultValue:t.name,onKeyDown:e=>{if(e.key===`Enter`){let n=e.target.value.trim();n?S(t,n):C()}else e.key===`Escape`&&C()},onBlur:e=>{let n=e.target.value.trim();n?S(t,n):C()},onClick:e=>e.stopPropagation(),className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-base`}):(0,W.jsx)(`span`,{className:`flex-1 truncate`,children:t.name})]})}),(0,W.jsxs)(z,{children:[(0,W.jsx)(B,{onSelect:()=>T(t),children:`Open`}),(0,W.jsx)(R,{}),(0,W.jsx)(B,{onSelect:()=>D(_e(t.path)),children:`New File...`}),(0,W.jsx)(B,{onSelect:()=>O(_e(t.path)),children:`New Folder...`}),(0,W.jsx)(R,{}),(0,W.jsx)(B,{onSelect:()=>E(t),children:`Copy Reference`}),(0,W.jsx)(B,{onSelect:()=>x(t),children:`Rename...`}),(0,W.jsx)(B,{onSelect:()=>w(t),className:`text-destructive focus:text-destructive`,children:`Delete`})]})]})}),ye=new Map;function be({threadId:e,selectedPath:t,onNodeSelect:n,onFilesDrop:a}){let[o,s]=(0,U.useState)(()=>new Map([[``,0]])),[c,l]=(0,U.useState)(new Set),[u,d]=(0,U.useState)(null),[f,p]=(0,U.useState)(null),[h,j]=(0,U.useState)(null),[M,N]=(0,U.useState)(null),[P,ee]=(0,U.useState)(!1),[te,I]=(0,U.useState)([]),[R,V]=(0,U.useState)(!1),[H,G]=(0,U.useState)(!1),K=(0,U.useRef)(null),q=(0,U.useRef)(0),J=(0,U.useRef)(null),{explorerRefreshTick:Y,pendingExplorerPath:ie,setExplorerClearPath:ae}=C(),{fetchUnifiedStatus:oe}=F(),X=(0,U.useMemo)(()=>`${e}:${Y}`,[Y,e]),se=(0,U.useCallback)(e=>{(0,U.startTransition)(()=>{ee(t=>t===e?t:e)})},[]),Z=(0,U.useCallback)(async()=>{if(!e)return;let t=ye.get(X);if(t){I(t),V(!0);return}if(K.current!==X){K.current=X,I([]),V(!1);try{let t=ge((await E(e,``,!0)).entries);ye.set(X,t),I(t),V(!0)}catch{I([]),V(!1)}finally{K.current===X&&(K.current=null)}}},[X,e]),ce=(0,U.useCallback)(()=>{G(!0)},[]),le=(0,U.useCallback)(()=>{ye.delete(X),I([]),V(!1)},[X]),ue=(0,U.useCallback)(()=>{le(),H&&Z()},[le,Z,H]),Q=(0,U.useCallback)(e=>o.get(e)??0,[o]),me=(0,U.useCallback)(e=>{s(t=>{let n=new Map(t);return n.set(e,(t.get(e)??0)+1),n})},[]),$=(0,U.useCallback)(t=>{e&&(A(fe(e,t,Q(t))),me(t))},[me,Q,e]),be=(0,U.useCallback)(t=>{if(!e)return;let n=t.path.split(`/`);t.type===`file`&&n.pop();let r=[],i=``;for(let e of n)i=i?`${i}/${e}`:e,r.push(i);l(e=>{let t=new Set(e);for(let e of r)t.add(e);return t})},[e]);(0,U.useEffect)(()=>{if(!e)return;let t=J.current!==null&&J.current!==e;J.current=e,t&&(s(new Map([[``,0]])),l(new Set),d(null),p(null),q.current=Y)},[Y,e]),(0,U.useEffect)(()=>{!e||Y<=q.current||(q.current=Y,s(t=>{let n=new Set([``]);for(let e of c)n.add(e);let r=new Map(t);for(let i of n){let n=t.get(i)??0;A(fe(e,i,n)),r.set(i,n+1)}return r}))},[Y,c,e]),(0,U.useEffect)(()=>{I([]),V(!1),G(!1),K.current=null},[X]),(0,U.useEffect)(()=>{!H||!e||Z()},[Z,H,e]),(0,U.useEffect)(()=>{if(!ie||!e)return;let t=ie.split(`/`);t.pop();let n=[],r=``;for(let e of t)r=r?`${r}/${e}`:e,n.push(r);if(n.length!==0){l(e=>{let t=new Set(e);for(let e of n)t.add(e);return t});for(let e of n)s(t=>{if(t.has(e))return t;let n=new Map(t);return n.set(e,0),n})}},[ie,e]);function xe(e){c.has(e.path)?l(t=>{let n=new Set(t);return n.delete(e.path),n}):(l(t=>new Set(t).add(e.path)),s(t=>{if(t.has(e.path))return t;let n=new Map(t);return n.set(e.path,0),n}))}function Se(e){j(e)}async function Ce(t){try{await O(e,t.path)}catch{g({title:`Error`,description:`Failed to open "${t.name}"`,variant:`destructive`})}}async function we(e){try{await navigator.clipboard.writeText(e.path);let t=g({title:`Copied`,description:`Reference copied to clipboard.`});window.setTimeout(()=>{t.dismiss()},2e3)}catch{g({title:`Error`,description:`Failed to copy reference for "${e.name}"`,variant:`destructive`})}}async function Te(){if(!h)return;let t=h;j(null);try{await D(e,t.path),ae(t.path),$(_e(t.path)),ue(),oe(!0),l(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),s(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n})}catch{g({title:`Error`,description:`Failed to move "${t.name}" to trash`,variant:`destructive`})}}function Ee(e){p(null),d(e.path)}async function De(t,n){if(n===t.name){d(null);return}d(null);try{await w(e,t.path,n),$(_e(t.path)),ue(),oe(!0),t.type===`folder`&&(l(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),s(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}))}catch{g({title:`Error`,description:`Failed to rename "${t.name}"`,variant:`destructive`})}}function Oe(e){d(null),c.has(e)||(l(t=>new Set(t).add(e)),s(t=>{if(t.has(e))return t;let n=new Map(t);return n.set(e,0),n})),p({dirPath:e,type:`file`})}function ke(e){d(null),c.has(e)||(l(t=>new Set(t).add(e)),s(t=>{if(t.has(e))return t;let n=new Map(t);return n.set(e,0),n})),p({dirPath:e,type:`folder`})}async function Ae(t){if(!f)return;let{dirPath:n,type:r}=f;p(null);try{r===`file`?await k(e,n,t):await T(e,n,t),$(n),ue(),oe(!0)}catch{g({title:`Error`,description:`Failed to create ${r} "${t}"`,variant:`destructive`})}}function je(){p(null)}let Me=(0,U.useCallback)((e,t)=>{a?.(e,t)},[a]);function Ne(e){be(e),e.type===`file`&&n(e)}let Pe=f?.dirPath===``?(0,W.jsx)(he,{defaultValue:``,level:0,basePadding:f.type===`folder`?10:22,icon:f.type===`folder`?(0,W.jsx)(i,{className:`h-4 w-4 flex-shrink-0`}):(0,W.jsx)(r,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:Ae,onCancel:je}):null;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(S,{open:h!==null,onOpenChange:e=>!e&&j(null),children:(0,W.jsxs)(y,{children:[(0,W.jsx)(v,{children:`Move to Trash`}),(0,W.jsxs)(_,{children:[`Move “`,h?.name,`” to trash?`]}),(0,W.jsxs)(`div`,{className:`flex gap-3 justify-end`,children:[(0,W.jsx)(x,{children:`Cancel`}),(0,W.jsx)(b,{onClick:()=>void Te(),children:`Move to Trash`})]})]})}),(0,W.jsx)(`div`,{className:`border-b border-border px-2 py-2`,children:(0,W.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,W.jsx)(de,{items:te,isReady:R,onRequestIndex:ce,onOpenChange:se,onSelect:e=>Ne(e)},X)})})}),(0,W.jsxs)(ne,{children:[(0,W.jsx)(L,{asChild:!0,disabled:P,children:(0,W.jsx)(`div`,{className:`py-2 min-h-full`,children:(0,W.jsx)(re,{fallbackTitle:`Failed to load files`,onRetry:()=>$(``),children:(0,W.jsx)(U.Suspense,{fallback:(0,W.jsx)(m,{}),children:(0,W.jsx)(pe,{threadId:e,dirPath:``,version:Q(``),children:r=>(0,W.jsxs)(W.Fragment,{children:[Pe,r.map(r=>(0,W.jsx)(ve,{node:r,level:0,threadId:e,selectedPath:t,expandedPaths:c,getDirVersion:Q,renamingPath:u,newItemIn:f,onToggleFolder:xe,onSelectNode:n,onStartRename:Ee,onCommitRename:De,onCancelRename:()=>d(null),onDelete:Se,onOpen:Ce,onCopyReference:we,onNewFile:Oe,onNewFolder:ke,onCommitNewItem:Ae,onCancelNewItem:je,dropTargetPath:M,onFolderDropTargetChange:N,onFilesDrop:Me},r.path))]})})})})})}),(0,W.jsxs)(z,{children:[(0,W.jsx)(B,{onSelect:()=>Oe(``),children:`New File...`}),(0,W.jsx)(B,{onSelect:()=>ke(``),children:`New Folder...`})]})]})]})}export{be as default};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Jn as r,Kt as i,Lt as a,Rt as o,Ti as s,Y as c,hn as l,hr as u,i as d,in as ee,mr as f,mt as p,q as te,tt as ne,wi as m}from"./interactive-WtOIgeV4.js";import{d as h}from"./react-vendor-DgnPMVt4.js";import{Jn as g,bt as _,wo as v,xa as re}from"./onboarding-Dy7KG3M5.js";import{r as ie}from"./store-CSyJjyNs.js";import{t as y}from"./use-toast-BFQ85Ly5.js";import{n as b}from"./explorer-tab-context-8bs_tiCO.js";import{a as x,c as S,i as C,o as w,s as T,t as ae,u as oe}from"./api-DkhEo8tW.js";import{n as E,t as D}from"./use-suspense-resource-rX-GqyWi.js";import{n as se}from"./utils-Rlf65JHq.js";import{Dt as ce,Mt as le,Nt as ue,Ot as de,Tt as fe,wt as pe}from"./index-cAZJlfDA.js";import{t as O}from"./async-error-boundary-DR57nNXL.js";import"./monaco-setup-VhLB0diG.js";var k=m(),A=e(s(),1),j=t(),M=r(`explorer.preview`),N=[{label:`Markdown`,ext:`md`,icon:o},{label:`TypeScript`,ext:`ts`,icon:i},{label:`Text`,ext:`txt`,icon:a}];async function P(e,t){try{let n=await w(e,``),r=new Set(n.entries.map(e=>e.name)),i=`untitled`,a=`${i}.${t}`,o=2;for(;r.has(a);)a=`${i}${o}.${t}`,o++;return a}catch{return`untitled.${t}`}}function F(e){return u(e)===`md`}function I(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,mdc:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[u(e)]??`plaintext`}function L(e,t){return`explorer-file:${e}:${t}`}function R(e){let t=(0,k.c)(11),{threadId:n,path:r,contentKey:i,onContentReady:a}=e,o;t[0]!==r||t[1]!==n?(o=L(n,r),t[0]=r,t[1]=n,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==n?(s=async()=>{try{return await x(n,r)}catch(e){let t=e;throw z(`Failed to load explorer file preview`,{threadId:n,path:r},t),t}},t[3]=r,t[4]=n,t[5]=s):s=t[5];let c=D(o,s),l,u;return t[6]!==i||t[7]!==a||t[8]!==c.content?(l=()=>{a({key:i,content:c.content,original:c.content})},u=[a,c.content,i],t[6]=i,t[7]=a,t[8]=c.content,t[9]=l,t[10]=u):(l=t[9],u=t[10]),(0,A.useLayoutEffect)(l,u),null}function z(e,t,n){M.error(e,{...t,error:n})}function B(e,t){return`explorer-media:${e}:${t}`}function V(e,t){let n=(0,k.c)(11),r;n[0]!==t||n[1]!==e?(r=B(e,t),n[0]=t,n[1]=e,n[2]=r):r=n[2];let i;n[3]!==t||n[4]!==e?(i=async()=>{try{return await C(e,t)}catch(n){let r=n;throw z(`Failed to load explorer media preview`,{threadId:e,path:t},r),r}},n[3]=t,n[4]=e,n[5]=i):i=n[5];let a=D(r,i),o;n[6]===a?o=n[7]:(o=URL.createObjectURL(a),n[6]=a,n[7]=o);let s=o,c,l;return n[8]===s?(c=n[9],l=n[10]):(c=()=>()=>{URL.revokeObjectURL(s)},l=[s],n[8]=s,n[9]=c,n[10]=l),(0,A.useEffect)(c,l),s}function me(e){let t=(0,k.c)(3),{threadId:n,path:r,alt:i}=e,a=V(n,r),o;return t[0]!==i||t[1]!==a?(o=(0,j.jsx)(`div`,{className:`flex items-center justify-center h-full p-4 overflow-auto`,children:(0,j.jsx)(`img`,{src:a,alt:i,className:`max-w-full max-h-full object-contain`})}),t[0]=i,t[1]=a,t[2]=o):o=t[2],o}function he(e){let t=(0,k.c)(2),{threadId:n,path:r}=e,i=V(n,r),a;return t[0]===i?a=t[1]:(a=(0,j.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,j.jsx)(`video`,{src:i,controls:!0,className:`max-w-full max-h-full`})}),t[0]=i,t[1]=a),a}function H({selectedFile:e,showTreeBackButton:t=!1,onShowTree:r,onFileCreated:i}){let{resolvedTheme:a}=se(),s=ie(e=>e.selectedThreadId),{triggerExplorerRefresh:u}=b(),m=(0,A.useRef)(null),x=(0,A.useRef)(null),C=(0,A.useRef)(!1),[w,D]=(0,A.useState)(null),[k,M]=(0,A.useState)(!1),[V,H]=(0,A.useState)(!1),[U,W]=(0,A.useState)(`edit`),[ge,_e]=(0,A.useState)(0),[G,ve]=(0,A.useState)(null),[K,q]=(0,A.useState)(!1),ye=e?.path??null;(0,A.useEffect)(()=>{s&&g(s).then(ve).catch(()=>{})},[s]);let be=async()=>{if(!(!G||K)){q(!0);try{await navigator.clipboard.writeText(G),y({title:`Copied`,description:`Repository folder path copied to clipboard.`})}catch(e){z(`Failed to copy explorer folder path`,{threadId:s,folderPath:G},e),y({title:`Error`,description:`Failed to copy path to clipboard.`,variant:`destructive`})}finally{q(!1)}}},xe=async()=>{if(s)try{await T(s,`.`)}catch(e){z(`Failed to open explorer repository folder`,{threadId:s,folderPath:G},e),y({title:`Error`,description:`Failed to open repository folder.`,variant:`destructive`})}},Se=(0,A.useCallback)(async e=>{if(s)try{let t=await P(s,e);await ae(s,``,t);let n={name:t,path:t,type:`file`};x.current=t,C.current=!0,i?.(n),u(),y({title:`Created`,description:`${t} created successfully.`})}catch(t){z(`Failed to create explorer file`,{threadId:s,extension:e},t),y({title:`Error`,description:`Failed to create file.`,variant:`destructive`})}},[s,i,u]),J=e?f(e.path,e.name):null,Y=e?.type===`file`&&s&&!J?e:null,X=Y?`${s}:${Y.path}:${ge}`:null,Z=w&&w.key===X?w:null,Q=Z?.content??``,Ce=Z?.original??``;(0,A.useEffect)(()=>()=>{m.current&&=(m.current.getModel()?.dispose(),m.current.dispose(),null)},[]),(0,A.useEffect)(()=>{e?.type===`file`?x.current===e.path?(x.current=null,W(`edit`)):W(F(e.path)?`view`:`edit`):W(`edit`)},[ye,s]);async function $(){if(!(!s||!e||!X)){M(!0);try{await oe(s,e.path,Q),D({key:X,content:Q,original:Q}),y({title:`Saved`,description:`${e.name} saved successfully.`})}catch(t){z(`Failed to save explorer file`,{threadId:s,path:e.path},t),y({title:`Error`,description:t instanceof Error?t.message:`Failed to save file`,variant:`destructive`})}finally{M(!1)}}}async function we(){if(!(!s||!e||V)){H(!0);try{if(!re()){if(typeof window>`u`)return;let t=document.querySelector(`[data-markdown-print-content]`);if(!(t instanceof HTMLElement)){y({title:`Print unavailable`,description:`Couldn't find the markdown preview to print.`,variant:`destructive`});return}let n=`<!doctype html>
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Jn as r,Kt as i,Lt as a,Rt as o,Ti as s,Y as c,hn as l,hr as u,i as d,in as ee,mr as f,mt as p,q as te,tt as ne,wi as m}from"./interactive-WtOIgeV4.js";import{d as h}from"./react-vendor-DM3Nejio.js";import{Jn as g,bt as _,wo as v,xa as re}from"./onboarding-_okRJRpU.js";import{r as ie}from"./store-CSyJjyNs.js";import{t as y}from"./use-toast-BFQ85Ly5.js";import{n as b}from"./explorer-tab-context-8bs_tiCO.js";import{a as x,c as S,i as C,o as w,s as T,t as ae,u as oe}from"./api-D3kM9pkY.js";import{n as E,t as D}from"./use-suspense-resource-rX-GqyWi.js";import{n as se}from"./utils-Rlf65JHq.js";import{Et as ce,Nt as le,Ot as ue,Pt as de,Tt as fe,kt as pe}from"./index-BdDEzAzX.js";import{t as O}from"./async-error-boundary-D2YxNX8i.js";import"./monaco-setup-Xkv0hjl5.js";var k=m(),A=e(s(),1),j=t(),M=r(`explorer.preview`),N=[{label:`Markdown`,ext:`md`,icon:o},{label:`TypeScript`,ext:`ts`,icon:i},{label:`Text`,ext:`txt`,icon:a}];async function P(e,t){try{let n=await w(e,``),r=new Set(n.entries.map(e=>e.name)),i=`untitled`,a=`${i}.${t}`,o=2;for(;r.has(a);)a=`${i}${o}.${t}`,o++;return a}catch{return`untitled.${t}`}}function F(e){return u(e)===`md`}function I(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,mdc:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[u(e)]??`plaintext`}function L(e,t){return`explorer-file:${e}:${t}`}function R(e){let t=(0,k.c)(11),{threadId:n,path:r,contentKey:i,onContentReady:a}=e,o;t[0]!==r||t[1]!==n?(o=L(n,r),t[0]=r,t[1]=n,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==n?(s=async()=>{try{return await x(n,r)}catch(e){let t=e;throw z(`Failed to load explorer file preview`,{threadId:n,path:r},t),t}},t[3]=r,t[4]=n,t[5]=s):s=t[5];let c=D(o,s),l,u;return t[6]!==i||t[7]!==a||t[8]!==c.content?(l=()=>{a({key:i,content:c.content,original:c.content})},u=[a,c.content,i],t[6]=i,t[7]=a,t[8]=c.content,t[9]=l,t[10]=u):(l=t[9],u=t[10]),(0,A.useLayoutEffect)(l,u),null}function z(e,t,n){M.error(e,{...t,error:n})}function B(e,t){return`explorer-media:${e}:${t}`}function V(e,t){let n=(0,k.c)(11),r;n[0]!==t||n[1]!==e?(r=B(e,t),n[0]=t,n[1]=e,n[2]=r):r=n[2];let i;n[3]!==t||n[4]!==e?(i=async()=>{try{return await C(e,t)}catch(n){let r=n;throw z(`Failed to load explorer media preview`,{threadId:e,path:t},r),r}},n[3]=t,n[4]=e,n[5]=i):i=n[5];let a=D(r,i),o;n[6]===a?o=n[7]:(o=URL.createObjectURL(a),n[6]=a,n[7]=o);let s=o,c,l;return n[8]===s?(c=n[9],l=n[10]):(c=()=>()=>{URL.revokeObjectURL(s)},l=[s],n[8]=s,n[9]=c,n[10]=l),(0,A.useEffect)(c,l),s}function me(e){let t=(0,k.c)(3),{threadId:n,path:r,alt:i}=e,a=V(n,r),o;return t[0]!==i||t[1]!==a?(o=(0,j.jsx)(`div`,{className:`flex items-center justify-center h-full p-4 overflow-auto`,children:(0,j.jsx)(`img`,{src:a,alt:i,className:`max-w-full max-h-full object-contain`})}),t[0]=i,t[1]=a,t[2]=o):o=t[2],o}function he(e){let t=(0,k.c)(2),{threadId:n,path:r}=e,i=V(n,r),a;return t[0]===i?a=t[1]:(a=(0,j.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,j.jsx)(`video`,{src:i,controls:!0,className:`max-w-full max-h-full`})}),t[0]=i,t[1]=a),a}function H({selectedFile:e,showTreeBackButton:t=!1,onShowTree:r,onFileCreated:i}){let{resolvedTheme:a}=se(),s=ie(e=>e.selectedThreadId),{triggerExplorerRefresh:u}=b(),m=(0,A.useRef)(null),x=(0,A.useRef)(null),C=(0,A.useRef)(!1),[w,D]=(0,A.useState)(null),[k,M]=(0,A.useState)(!1),[V,H]=(0,A.useState)(!1),[U,W]=(0,A.useState)(`edit`),[ge,_e]=(0,A.useState)(0),[G,ve]=(0,A.useState)(null),[K,q]=(0,A.useState)(!1),ye=e?.path??null;(0,A.useEffect)(()=>{s&&g(s).then(ve).catch(()=>{})},[s]);let be=async()=>{if(!(!G||K)){q(!0);try{await navigator.clipboard.writeText(G),y({title:`Copied`,description:`Repository folder path copied to clipboard.`})}catch(e){z(`Failed to copy explorer folder path`,{threadId:s,folderPath:G},e),y({title:`Error`,description:`Failed to copy path to clipboard.`,variant:`destructive`})}finally{q(!1)}}},xe=async()=>{if(s)try{await T(s,`.`)}catch(e){z(`Failed to open explorer repository folder`,{threadId:s,folderPath:G},e),y({title:`Error`,description:`Failed to open repository folder.`,variant:`destructive`})}},Se=(0,A.useCallback)(async e=>{if(s)try{let t=await P(s,e);await ae(s,``,t);let n={name:t,path:t,type:`file`};x.current=t,C.current=!0,i?.(n),u(),y({title:`Created`,description:`${t} created successfully.`})}catch(t){z(`Failed to create explorer file`,{threadId:s,extension:e},t),y({title:`Error`,description:`Failed to create file.`,variant:`destructive`})}},[s,i,u]),J=e?f(e.path,e.name):null,Y=e?.type===`file`&&s&&!J?e:null,X=Y?`${s}:${Y.path}:${ge}`:null,Z=w&&w.key===X?w:null,Q=Z?.content??``,Ce=Z?.original??``;(0,A.useEffect)(()=>()=>{m.current&&=(m.current.getModel()?.dispose(),m.current.dispose(),null)},[]),(0,A.useEffect)(()=>{e?.type===`file`?x.current===e.path?(x.current=null,W(`edit`)):W(F(e.path)?`view`:`edit`):W(`edit`)},[ye,s]);async function $(){if(!(!s||!e||!X)){M(!0);try{await oe(s,e.path,Q),D({key:X,content:Q,original:Q}),y({title:`Saved`,description:`${e.name} saved successfully.`})}catch(t){z(`Failed to save explorer file`,{threadId:s,path:e.path},t),y({title:`Error`,description:t instanceof Error?t.message:`Failed to save file`,variant:`destructive`})}finally{M(!1)}}}async function we(){if(!(!s||!e||V)){H(!0);try{if(!re()){if(typeof window>`u`)return;let t=document.querySelector(`[data-markdown-print-content]`);if(!(t instanceof HTMLElement)){y({title:`Print unavailable`,description:`Couldn't find the markdown preview to print.`,variant:`destructive`});return}let n=`<!doctype html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
@@ -72,4 +72,4 @@ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Fr as n,Jn as
72
72
  }, { once: true });
73
73
  <\/script>
74
74
  </body>
75
- </html>`,r=window.open(``,`_blank`,`noopener,noreferrer`);if(!r){y({title:`Print blocked`,description:`Allow pop-ups to print this file.`,variant:`destructive`});return}r.document.open(),r.document.write(n),r.document.close();return}y({title:`PDF created`,description:`Opened ${(await S(s,e.path)).outputPath.split(/[\\/]/).pop()??`the PDF`} in your default app.`})}catch(t){z(`Failed to print markdown file as PDF`,{threadId:s,path:e.path},t),y({title:`PDF export failed`,description:t instanceof Error?t.message:`Failed to convert this markdown file to PDF.`,variant:`destructive`})}finally{H(!1)}}}function Te(){!s||!Y||(E(L(s,Y.path)),_e(e=>e+1))}return s?(0,j.jsxs)(`div`,{className:`explorer-view-root flex flex-col h-full print:block print:h-auto`,children:[(0,j.jsxs)(ue,{className:`justify-between print:hidden`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[t&&r?(0,j.jsxs)(v,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground electrobun-webkit-app-region-no-drag`,onClick:r,children:[(0,j.jsx)(ne,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Show file tree`})]}):null,(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,j.jsx)(`span`,{className:d(n.label,`truncate leading-normal text-foreground`),children:e?e.name:`Select a file to edit`}),(0,j.jsx)(`span`,{className:d(n.compact,`truncate text-muted-foreground`),children:e?e.path:`Browse and edit repository files`})]})]}),(0,j.jsxs)(`div`,{className:`flex gap-2`,children:[Y&&Z?(0,j.jsxs)(j.Fragment,{children:[F(Y.path)&&U===`view`?(0,j.jsxs)(v,{size:`sm`,variant:`outline`,onClick:()=>void we(),disabled:V,children:[V?(0,j.jsx)(p,{className:`h-4 w-4 animate-spin`}):(0,j.jsx)(te,{className:`h-4 w-4`}),V?`Printing…`:`Print`]}):null,F(Y.path)?(0,j.jsxs)(`div`,{className:`flex rounded-full border border-input bg-background p-0.5`,children:[(0,j.jsx)(v,{size:`sm`,variant:U===`view`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>W(`view`),children:`View`}),(0,j.jsx)(v,{size:`sm`,variant:U===`edit`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>W(`edit`),children:`Edit`})]}):null,(0,j.jsxs)(v,{size:`sm`,onClick:()=>void $(),disabled:k||!Q||Q===Ce,children:[k?(0,j.jsx)(p,{className:`h-4 w-4 animate-spin`}):null,`Save`]})]}):null,e?null:(0,j.jsxs)(fe,{children:[(0,j.jsx)(le,{asChild:!0,children:(0,j.jsxs)(v,{size:`sm`,className:`gap-1.5`,children:[(0,j.jsx)(c,{className:`h-3.5 w-3.5`}),`New file`]})}),(0,j.jsx)(ce,{align:`end`,children:N.map(({label:e,ext:t,icon:n})=>(0,j.jsxs)(de,{onSelect:()=>void Se(t),children:[(0,j.jsx)(n,{className:`h-4 w-4`}),e]},t))})]})]})]}),(0,j.jsx)(`div`,{className:`flex-1 overflow-hidden print:overflow-visible print:flex-none`,children:(0,j.jsx)(`div`,{className:`h-full relative overflow-hidden print:h-auto print:overflow-visible`,children:Y?(0,j.jsxs)(O,{fallbackTitle:`Failed to load file`,onRetry:Te,children:[(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(R,{threadId:s,path:Y.path,contentKey:X??``,onContentReady:D},X??void 0)}),Z?F(Y.path)&&U===`view`?(0,j.jsx)(`div`,{className:`h-full overflow-auto p-6 print:h-auto print:overflow-visible print:p-0`,children:(0,j.jsx)(`div`,{className:`mx-auto max-w-4xl print:max-w-none`,"data-markdown-print-content":!0,children:(0,j.jsx)(pe,{content:Q,enableMermaid:!0})})}):(0,j.jsx)(h,{height:`100%`,language:I(Y.path),value:Q,onChange:e=>D(t=>t&&{...t,content:e??``}),onMount:e=>{m.current=e,C.current&&(C.current=!1,e.focus())},theme:a===`dark`?`vs-dark`:`vs-light`,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,fontSize:14,lineNumbers:`on`,renderLineHighlight:`line`,scrollbar:{vertical:`auto`,horizontal:`auto`}}}):(0,j.jsx)(_,{})]},X??void 0):e?.type===`file`&&J===`image`?(0,j.jsx)(O,{fallbackTitle:`Failed to load image`,onRetry:()=>{!s||!e||E(B(s,e.path))},children:(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(me,{threadId:s,path:e.path,alt:e.name})})},e.path):e?.type===`file`&&J===`video`?(0,j.jsx)(O,{fallbackTitle:`Failed to load video`,onRetry:()=>{!s||!e||E(B(s,e.path))},children:(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(he,{threadId:s,path:e.path})})},e.path):(0,j.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center p-8`,children:[(0,j.jsx)(`h2`,{className:d(n.pageTitle,`text-foreground`),children:`File Explorer`}),(0,j.jsx)(`p`,{className:d(n.pageSubtitle),children:`Browse and edit files`})]})})}),e?null:(0,j.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 px-4 py-2`,children:G?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void xe(),className:d(n.compact,`min-w-0 flex-1 truncate text-left font-mono text-muted-foreground hover:text-foreground hover:underline`),title:G,children:G}),(0,j.jsxs)(v,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0`,onClick:()=>void be(),disabled:K,children:[K?(0,j.jsx)(l,{className:`h-3.5 w-3.5`}):(0,j.jsx)(ee,{className:`h-3.5 w-3.5`}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Copy path`})]})]}):(0,j.jsx)(`p`,{className:d(n.compact,`text-muted-foreground/50 italic`),children:`Loading path...`})})]}):(0,j.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center`,children:[(0,j.jsx)(o,{className:`h-8 w-8 text-muted-foreground`}),(0,j.jsx)(`p`,{className:n.bodyMuted,children:`Select a thread to browse its files`})]})}export{H as default};
75
+ </html>`,r=window.open(``,`_blank`,`noopener,noreferrer`);if(!r){y({title:`Print blocked`,description:`Allow pop-ups to print this file.`,variant:`destructive`});return}r.document.open(),r.document.write(n),r.document.close();return}y({title:`PDF created`,description:`Opened ${(await S(s,e.path)).outputPath.split(/[\\/]/).pop()??`the PDF`} in your default app.`})}catch(t){z(`Failed to print markdown file as PDF`,{threadId:s,path:e.path},t),y({title:`PDF export failed`,description:t instanceof Error?t.message:`Failed to convert this markdown file to PDF.`,variant:`destructive`})}finally{H(!1)}}}function Te(){!s||!Y||(E(L(s,Y.path)),_e(e=>e+1))}return s?(0,j.jsxs)(`div`,{className:`explorer-view-root flex flex-col h-full print:block print:h-auto`,children:[(0,j.jsxs)(de,{className:`justify-between print:hidden`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[t&&r?(0,j.jsxs)(v,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground electrobun-webkit-app-region-no-drag`,onClick:r,children:[(0,j.jsx)(ne,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Show file tree`})]}):null,(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,j.jsx)(`span`,{className:d(n.label,`truncate leading-normal text-foreground`),children:e?e.name:`Select a file to edit`}),(0,j.jsx)(`span`,{className:d(n.compact,`truncate text-muted-foreground`),children:e?e.path:`Browse and edit repository files`})]})]}),(0,j.jsxs)(`div`,{className:`flex gap-2`,children:[Y&&Z?(0,j.jsxs)(j.Fragment,{children:[F(Y.path)&&U===`view`?(0,j.jsxs)(v,{size:`sm`,variant:`outline`,onClick:()=>void we(),disabled:V,children:[V?(0,j.jsx)(p,{className:`h-4 w-4 animate-spin`}):(0,j.jsx)(te,{className:`h-4 w-4`}),V?`Printing…`:`Print`]}):null,F(Y.path)?(0,j.jsxs)(`div`,{className:`flex rounded-full border border-input bg-background p-0.5`,children:[(0,j.jsx)(v,{size:`sm`,variant:U===`view`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>W(`view`),children:`View`}),(0,j.jsx)(v,{size:`sm`,variant:U===`edit`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>W(`edit`),children:`Edit`})]}):null,(0,j.jsxs)(v,{size:`sm`,onClick:()=>void $(),disabled:k||!Q||Q===Ce,children:[k?(0,j.jsx)(p,{className:`h-4 w-4 animate-spin`}):null,`Save`]})]}):null,e?null:(0,j.jsxs)(ce,{children:[(0,j.jsx)(le,{asChild:!0,children:(0,j.jsxs)(v,{size:`sm`,className:`gap-1.5`,children:[(0,j.jsx)(c,{className:`h-3.5 w-3.5`}),`New file`]})}),(0,j.jsx)(ue,{align:`end`,children:N.map(({label:e,ext:t,icon:n})=>(0,j.jsxs)(pe,{onSelect:()=>void Se(t),children:[(0,j.jsx)(n,{className:`h-4 w-4`}),e]},t))})]})]})]}),(0,j.jsx)(`div`,{className:`flex-1 overflow-hidden print:overflow-visible print:flex-none`,children:(0,j.jsx)(`div`,{className:`h-full relative overflow-hidden print:h-auto print:overflow-visible`,children:Y?(0,j.jsxs)(O,{fallbackTitle:`Failed to load file`,onRetry:Te,children:[(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(R,{threadId:s,path:Y.path,contentKey:X??``,onContentReady:D},X??void 0)}),Z?F(Y.path)&&U===`view`?(0,j.jsx)(`div`,{className:`h-full overflow-auto p-6 print:h-auto print:overflow-visible print:p-0`,children:(0,j.jsx)(`div`,{className:`mx-auto max-w-4xl print:max-w-none`,"data-markdown-print-content":!0,children:(0,j.jsx)(fe,{content:Q,enableMermaid:!0})})}):(0,j.jsx)(h,{height:`100%`,language:I(Y.path),value:Q,onChange:e=>D(t=>t&&{...t,content:e??``}),onMount:e=>{m.current=e,C.current&&(C.current=!1,e.focus())},theme:a===`dark`?`vs-dark`:`vs-light`,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,fontSize:14,lineNumbers:`on`,renderLineHighlight:`line`,scrollbar:{vertical:`auto`,horizontal:`auto`}}}):(0,j.jsx)(_,{})]},X??void 0):e?.type===`file`&&J===`image`?(0,j.jsx)(O,{fallbackTitle:`Failed to load image`,onRetry:()=>{!s||!e||E(B(s,e.path))},children:(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(me,{threadId:s,path:e.path,alt:e.name})})},e.path):e?.type===`file`&&J===`video`?(0,j.jsx)(O,{fallbackTitle:`Failed to load video`,onRetry:()=>{!s||!e||E(B(s,e.path))},children:(0,j.jsx)(A.Suspense,{fallback:(0,j.jsx)(_,{}),children:(0,j.jsx)(he,{threadId:s,path:e.path})})},e.path):(0,j.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center p-8`,children:[(0,j.jsx)(`h2`,{className:d(n.pageTitle,`text-foreground`),children:`File Explorer`}),(0,j.jsx)(`p`,{className:d(n.pageSubtitle),children:`Browse and edit files`})]})})}),e?null:(0,j.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 px-4 py-2`,children:G?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void xe(),className:d(n.compact,`min-w-0 flex-1 truncate text-left font-mono text-muted-foreground hover:text-foreground hover:underline`),title:G,children:G}),(0,j.jsxs)(v,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0`,onClick:()=>void be(),disabled:K,children:[K?(0,j.jsx)(l,{className:`h-3.5 w-3.5`}):(0,j.jsx)(ee,{className:`h-3.5 w-3.5`}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Copy path`})]})]}):(0,j.jsx)(`p`,{className:d(n.compact,`text-muted-foreground/50 italic`),children:`Loading path...`})})]}):(0,j.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center`,children:[(0,j.jsx)(o,{className:`h-8 w-8 text-muted-foreground`}),(0,j.jsx)(`p`,{className:n.bodyMuted,children:`Select a thread to browse its files`})]})}export{H as default};
@@ -1 +1 @@
1
- import{Ci as e,Fr as t,i as n,mt as r,wi as i}from"./interactive-WtOIgeV4.js";import{A as a,D as o,O as s,T as c,j as l,k as u,wo as d}from"./onboarding-Dy7KG3M5.js";var f=i(),p=e();function m(e){let i=(0,f.c)(28),{open:m,onOpenChange:g,commits:_,displayedCommits:v,isLoadingMore:y,onScroll:b,currentBranch:x}=e,S;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,p.jsx)(l,{children:`Commit History`}),i[0]=S):S=i[0];let C;i[1]===x?C=i[2]:(C=(0,p.jsxs)(a,{children:[S,(0,p.jsxs)(s,{children:[`Recent commits on branch `,x]})]}),i[1]=x,i[2]=C);let w;i[3]===v?w=i[4]:(w=v.length>0?v.map(h):(0,p.jsx)(`p`,{className:n(t.bodyMuted,`text-center py-8`),children:`No commits found`}),i[3]=v,i[4]=w);let T;i[5]===y?T=i[6]:(T=y&&(0,p.jsx)(`div`,{className:`p-3 text-center`,children:(0,p.jsx)(r,{className:`h-4 w-4 animate-spin inline`})}),i[5]=y,i[6]=T);let E;i[7]!==_.length||i[8]!==v.length||i[9]!==y?(E=v.length<_.length&&!y&&(0,p.jsx)(`div`,{className:n(t.caption,`p-3 text-center`),children:`Scroll to load more`}),i[7]=_.length,i[8]=v.length,i[9]=y,i[10]=E):E=i[10];let D;i[11]!==w||i[12]!==T||i[13]!==E?(D=(0,p.jsxs)(`div`,{className:`divide-y`,children:[w,T,E]}),i[11]=w,i[12]=T,i[13]=E,i[14]=D):D=i[14];let O;i[15]!==b||i[16]!==D?(O=(0,p.jsx)(`div`,{className:`flex-1 overflow-y-auto border rounded-lg`,onScroll:b,children:D}),i[15]=b,i[16]=D,i[17]=O):O=i[17];let k;i[18]===g?k=i[19]:(k=(0,p.jsx)(u,{children:(0,p.jsx)(d,{onClick:()=>g(!1),children:`Close`})}),i[18]=g,i[19]=k);let A;i[20]!==C||i[21]!==O||i[22]!==k?(A=(0,p.jsxs)(o,{className:`max-w-2xl max-h-[80vh] flex flex-col`,children:[C,O,k]}),i[20]=C,i[21]=O,i[22]=k,i[23]=A):A=i[23];let j;return i[24]!==g||i[25]!==m||i[26]!==A?(j=(0,p.jsx)(c,{open:m,onOpenChange:g,children:A}),i[24]=g,i[25]=m,i[26]=A,i[27]=j):j=i[27],j}function h(e){return(0,p.jsxs)(`div`,{className:`p-3 hover:bg-muted/50 transition-colors`,children:[(0,p.jsx)(`p`,{className:n(t.label,`break-words`),children:e.message}),(0,p.jsxs)(`p`,{className:n(t.bodyMuted,`mt-1`),children:[(0,p.jsx)(`span`,{className:t.mono,children:e.hash.substring(0,7)}),` •`,` `,e.author,` • `,new Date(e.date).toLocaleDateString()]})]},e.hash)}export{m as GitHistoryDialog};
1
+ import{Ci as e,Fr as t,i as n,mt as r,wi as i}from"./interactive-WtOIgeV4.js";import{A as a,D as o,O as s,T as c,j as l,k as u,wo as d}from"./onboarding-_okRJRpU.js";var f=i(),p=e();function m(e){let i=(0,f.c)(28),{open:m,onOpenChange:g,commits:_,displayedCommits:v,isLoadingMore:y,onScroll:b,currentBranch:x}=e,S;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,p.jsx)(l,{children:`Commit History`}),i[0]=S):S=i[0];let C;i[1]===x?C=i[2]:(C=(0,p.jsxs)(a,{children:[S,(0,p.jsxs)(s,{children:[`Recent commits on branch `,x]})]}),i[1]=x,i[2]=C);let w;i[3]===v?w=i[4]:(w=v.length>0?v.map(h):(0,p.jsx)(`p`,{className:n(t.bodyMuted,`text-center py-8`),children:`No commits found`}),i[3]=v,i[4]=w);let T;i[5]===y?T=i[6]:(T=y&&(0,p.jsx)(`div`,{className:`p-3 text-center`,children:(0,p.jsx)(r,{className:`h-4 w-4 animate-spin inline`})}),i[5]=y,i[6]=T);let E;i[7]!==_.length||i[8]!==v.length||i[9]!==y?(E=v.length<_.length&&!y&&(0,p.jsx)(`div`,{className:n(t.caption,`p-3 text-center`),children:`Scroll to load more`}),i[7]=_.length,i[8]=v.length,i[9]=y,i[10]=E):E=i[10];let D;i[11]!==w||i[12]!==T||i[13]!==E?(D=(0,p.jsxs)(`div`,{className:`divide-y`,children:[w,T,E]}),i[11]=w,i[12]=T,i[13]=E,i[14]=D):D=i[14];let O;i[15]!==b||i[16]!==D?(O=(0,p.jsx)(`div`,{className:`flex-1 overflow-y-auto border rounded-lg`,onScroll:b,children:D}),i[15]=b,i[16]=D,i[17]=O):O=i[17];let k;i[18]===g?k=i[19]:(k=(0,p.jsx)(u,{children:(0,p.jsx)(d,{onClick:()=>g(!1),children:`Close`})}),i[18]=g,i[19]=k);let A;i[20]!==C||i[21]!==O||i[22]!==k?(A=(0,p.jsxs)(o,{className:`max-w-2xl max-h-[80vh] flex flex-col`,children:[C,O,k]}),i[20]=C,i[21]=O,i[22]=k,i[23]=A):A=i[23];let j;return i[24]!==g||i[25]!==m||i[26]!==A?(j=(0,p.jsx)(c,{open:m,onOpenChange:g,children:A}),i[24]=g,i[25]=m,i[26]=A,i[27]=j):j=i[27],j}function h(e){return(0,p.jsxs)(`div`,{className:`p-3 hover:bg-muted/50 transition-colors`,children:[(0,p.jsx)(`p`,{className:n(t.label,`break-words`),children:e.message}),(0,p.jsxs)(`p`,{className:n(t.bodyMuted,`mt-1`),children:[(0,p.jsx)(`span`,{className:t.mono,children:e.hash.substring(0,7)}),` •`,` `,e.author,` • `,new Date(e.date).toLocaleDateString()]})]},e.hash)}export{m as GitHistoryDialog};