tarsk 0.5.83 → 0.6.84

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 (114) hide show
  1. package/dist/index.js +3505 -1220
  2. package/dist/public/assets/account-view-3IQai5GD.js +1 -0
  3. package/dist/public/assets/{alert-dialog-Dq9tEk9t.js → alert-dialog-L9wWQsMo.js} +1 -1
  4. package/dist/public/assets/api-BPfzuuZQ.js +2 -0
  5. package/dist/public/assets/{async-error-boundary-BS6v_PGo.js → async-error-boundary-CaqfvYIw.js} +1 -1
  6. package/dist/public/assets/browser-tab-VPXEbJGQ.js +12 -0
  7. package/dist/public/assets/{button-zYjzm__g.js → button-BRUlmKU9.js} +1 -1
  8. package/dist/public/assets/{card-CpchkvHM.js → card-m4ducAvD.js} +1 -1
  9. package/dist/public/assets/{chat-dock-context-DQmDS2i8.js → chat-dock-context-Br2lSNOf.js} +1 -1
  10. package/dist/public/assets/{commit-dialog-D6hchKSJ.js → commit-dialog-Ck94WauZ.js} +1 -1
  11. package/dist/public/assets/{commit-error-dialog-f7e8Qzpk.js → commit-error-dialog-B3Ba-TT-.js} +1 -1
  12. package/dist/public/assets/{commit-method-fields-6Ag-XY8a.js → commit-method-fields-BPRRj550.js} +1 -1
  13. package/dist/public/assets/conversation-history-view-Db-FOQwf.js +1 -0
  14. package/dist/public/assets/{create-project-dialog-DkxC6wM-.js → create-project-dialog-Chy1ooEs.js} +2 -2
  15. package/dist/public/assets/{create-repo-dialog-Y8dcOitj.js → create-repo-dialog-B8xz3jgU.js} +1 -1
  16. package/dist/public/assets/{delete-confirm-dialog-DvJ5VuAy.js → delete-confirm-dialog-Dg-9HMkY.js} +1 -1
  17. package/dist/public/assets/diff-view-CvrpMMk8.js +4 -0
  18. package/dist/public/assets/{dist-B-I0i8QZ.js → dist--8XEk-cL.js} +1 -1
  19. package/dist/public/assets/{dist-CX9ud_WC.js → dist-B_pwyFAz.js} +1 -1
  20. package/dist/public/assets/{dist-CPtOAqwP.js → dist-BrF4sqHu.js} +1 -1
  21. package/dist/public/assets/dist-C99qsdM0.js +2 -0
  22. package/dist/public/assets/{dist-lnsB93_y.js → dist-Cw2XrcBQ.js} +1 -1
  23. package/dist/public/assets/{dist-B6u0s1jB.js → dist-DPNQj0XL.js} +1 -1
  24. package/dist/public/assets/{dist-BJaGHz0F.js → dist-Dje5NBVh.js} +1 -1
  25. package/dist/public/assets/{dist-BhdiICUV.js → dist-DrOhoOxi.js} +1 -1
  26. package/dist/public/assets/{es2015-D67vh4rt.js → es2015-CkF7yGpJ.js} +1 -1
  27. package/dist/public/assets/{explorer-monaco-editor-C9uTsYgh.js → explorer-monaco-editor-mJ5cqcNE.js} +1 -1
  28. package/dist/public/assets/explorer-tab-view-CEWqpsav.js +2 -0
  29. package/dist/public/assets/explorer-tree-8N74JCtr.js +1 -0
  30. package/dist/public/assets/{explorer-view-5wUektaN.js → explorer-view-BdDHnhdp.js} +3 -3
  31. package/dist/public/assets/{git-history-dialog-CgH_0Ho0.js → git-history-dialog-DT0imFFW.js} +1 -1
  32. package/dist/public/assets/index-BlKnosL1.css +1 -0
  33. package/dist/public/assets/index-CU6xcKiy.js +114 -0
  34. package/dist/public/assets/{lucide-react-CMzSV2MP.js → lucide-react-DW-FYOQd.js} +1 -1
  35. package/dist/public/assets/{model-list-controls-ueD5Yk6B.js → model-list-controls-CfF-PN1k.js} +1 -1
  36. package/dist/public/assets/onboarding-dialog-CcTILQuy.js +1 -0
  37. package/dist/public/assets/{pill-tabs-CVcpOO4f.js → pill-tabs-C_XjoE72.js} +1 -1
  38. package/dist/public/assets/{progress-indicator-_fEKurQg.js → progress-indicator-EuomTuL6.js} +1 -1
  39. package/dist/public/assets/project-coding-view-37T_EVWc.js +1 -0
  40. package/dist/public/assets/{project-danger-zone-view-CtOeSKHP.js → project-danger-zone-view-B639X16E.js} +1 -1
  41. package/dist/public/assets/{project-env-vars-view-D8zFtC0r.js → project-env-vars-view-BB1ffcba.js} +1 -1
  42. package/dist/public/assets/project-model-aliases-view-CWhc457F.js +1 -0
  43. package/dist/public/assets/project-settings-view-BRTta676.js +1 -0
  44. package/dist/public/assets/{project-tools-view-DrwiTff5.js → project-tools-view-Ce73nfbH.js} +1 -1
  45. package/dist/public/assets/providers-list-view-DXk_pD4Y.js +1 -0
  46. package/dist/public/assets/pull-request-dialog-Cbg7Nmcx.js +1 -0
  47. package/dist/public/assets/{pull-with-changes-dialog-Mrdm4wbB.js → pull-with-changes-dialog-DZeHGFhc.js} +1 -1
  48. package/dist/public/assets/{push-before-pr-dialog-Ce8MMKT-.js → push-before-pr-dialog-D5fWfVUs.js} +1 -1
  49. package/dist/public/assets/{query-keys-C2vEjHA1.js → query-keys-C4ROIgnU.js} +1 -1
  50. package/dist/public/assets/{scroll-area-BTpvIsIG.js → scroll-area-jzW_lBt7.js} +1 -1
  51. package/dist/public/assets/{settings-general-tabs-view-Cg4sWryU.js → settings-general-tabs-view-DC6f8G1d.js} +2 -2
  52. package/dist/public/assets/settings-general-view-6TVzZ21Z.js +1 -0
  53. package/dist/public/assets/{settings-list-DajPoFxt.js → settings-list-DkQ2w1jX.js} +1 -1
  54. package/dist/public/assets/settings-logs-view-TPz2vcaO.js +5 -0
  55. package/dist/public/assets/settings-mcp-servers-view-CBGrusEF.js +5 -0
  56. package/dist/public/assets/settings-models-view-HZlhD_SR.js +1 -0
  57. package/dist/public/assets/{settings-plugins-view-CJvYXOb6.js → settings-plugins-view-B0FAYlr5.js} +2 -2
  58. package/dist/public/assets/settings-providers-view-sqm5pUAH.js +2 -0
  59. package/dist/public/assets/{settings-setup-view-0NvbMts_.js → settings-setup-view-C73a21hF.js} +2 -2
  60. package/dist/public/assets/settings-skills-view-BRYzGHT0.js +2 -0
  61. package/dist/public/assets/{settings-slack-view-DH7r2apv.js → settings-slack-view-By7cLQ_l.js} +1 -1
  62. package/dist/public/assets/settings-slash-commands-view-DFBRrsy5.js +1 -0
  63. package/dist/public/assets/{settings-statistics-view-mlcoR26Q.js → settings-statistics-view-C5e27kYx.js} +1 -1
  64. package/dist/public/assets/{settings-storage-view-DuN42zRw.js → settings-storage-view-qZyKd-8X.js} +1 -1
  65. package/dist/public/assets/{settings-subagents-view-C1r3Jtpe.js → settings-subagents-view-DpFwkfvX.js} +2 -2
  66. package/dist/public/assets/{settings-system-prompt-view-DcbUbDfa.js → settings-system-prompt-view-cMKBgBkJ.js} +1 -1
  67. package/dist/public/assets/{settings-tab-bar-T8v2_Dfk.js → settings-tab-bar-e6L6Mkoe.js} +1 -1
  68. package/dist/public/assets/{settings-view-Bv5QDh0H.js → settings-view-DHejRFnv.js} +2 -2
  69. package/dist/public/assets/{slug-utils-DhQjuU2J.js → slug-utils-CuSw2LoU.js} +1 -1
  70. package/dist/public/assets/store-HOyKbtQR.js +9 -0
  71. package/dist/public/assets/{table-DuD2DtkR.js → table-BIZvZqu5.js} +1 -1
  72. package/dist/public/assets/tasks-view-B0giBUuf.js +1 -0
  73. package/dist/public/assets/{terminal-panel-BmphDRj0.js → terminal-panel-dKlWiwk4.js} +3 -3
  74. package/dist/public/assets/{toggle-group-D0gDKZ9x.js → toggle-group-DP7rfPQH.js} +1 -1
  75. package/dist/public/assets/{tooltip-6qlOE6WT.js → tooltip-C0Zn4uFr.js} +1 -1
  76. package/dist/public/assets/{use-active-dock-panel-instance-CDcYJhbD.js → use-active-dock-panel-instance-CKfR28OB.js} +1 -1
  77. package/dist/public/assets/{use-git-check-CZxYYnQ8.js → use-git-check-B94BHSs1.js} +1 -1
  78. package/dist/public/assets/use-installed-ai-files-CkWgs7ki.js +1 -0
  79. package/dist/public/assets/{useBaseQuery-DqLwB2Sq.js → useBaseQuery-LTUHnxp5.js} +1 -1
  80. package/dist/public/assets/{utils-uGptTPGm.js → utils-DIi62oP7.js} +1 -1
  81. package/dist/public/assets/{web-D8PJDFGq.js → web-C8RXkvWV.js} +1 -1
  82. package/dist/public/assets/{web-CutQ8Xsm.js → web-CTvU5lBF.js} +1 -1
  83. package/dist/public/assets/{web-Us0pibUb.js → web-DfgvqvRM.js} +1 -1
  84. package/dist/public/assets/{web-B5i03FJP.js → web-DjiMWZNY.js} +1 -1
  85. package/dist/public/index.html +23 -23
  86. package/dist/vosk-worker.js.gz +0 -0
  87. package/package.json +9 -7
  88. package/dist/public/assets/account-view-CJyN7iRT.js +0 -1
  89. package/dist/public/assets/api-CX0sFbpL.js +0 -2
  90. package/dist/public/assets/browser-tab-Cj4ztL1i.js +0 -12
  91. package/dist/public/assets/conversation-history-view-Dd6vfz4F.js +0 -1
  92. package/dist/public/assets/diff-view-L1jxq-Ig.js +0 -4
  93. package/dist/public/assets/dist-FJzwWcMv.js +0 -2
  94. package/dist/public/assets/explorer-tab-view-BD924tmt.js +0 -2
  95. package/dist/public/assets/explorer-tree-Cn6lp8jD.js +0 -1
  96. package/dist/public/assets/index-DCWejG57.css +0 -1
  97. package/dist/public/assets/index-DpDgcOE9.js +0 -114
  98. package/dist/public/assets/onboarding-dialog-pDK_d92N.js +0 -1
  99. package/dist/public/assets/project-coding-view-CCT83rVv.js +0 -1
  100. package/dist/public/assets/project-model-aliases-view-t1nijA2C.js +0 -1
  101. package/dist/public/assets/project-settings-view-C4kg3nDX.js +0 -1
  102. package/dist/public/assets/providers-list-view-DXRbYpKr.js +0 -1
  103. package/dist/public/assets/pull-request-dialog-D4JEkCWC.js +0 -1
  104. package/dist/public/assets/settings-general-view-Cl1qPgIX.js +0 -1
  105. package/dist/public/assets/settings-logs-view-C2SUOaIF.js +0 -5
  106. package/dist/public/assets/settings-mcp-servers-view-BuGFdY9u.js +0 -5
  107. package/dist/public/assets/settings-models-view-Dh8eZR6v.js +0 -1
  108. package/dist/public/assets/settings-providers-view-CxZnVxuu.js +0 -2
  109. package/dist/public/assets/settings-skills-view-DT6Ldvfn.js +0 -2
  110. package/dist/public/assets/settings-slash-commands-view-DxlXk7eT.js +0 -1
  111. package/dist/public/assets/store-DCnnNgwq.js +0 -9
  112. package/dist/public/assets/tasks-view-D_TwmLgM.js +0 -1
  113. package/dist/public/assets/use-installed-ai-files-uH9h6W5v.js +0 -1
  114. package/dist/public/assets/vosk-speech-Fi-g2v8n.js +0 -2
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{tn as a}from"./dist-C99qsdM0.js";import{r as o}from"./store-HOyKbtQR.js";import{t as s}from"./utils-DIi62oP7.js";import{at as c,d as l,rn as u,u as d,yn as f}from"./lucide-react-DW-FYOQd.js";import{t as p}from"./button-BRUlmKU9.js";import{$ as m,D as h,en as g,ri as _,un as v}from"./api-BPfzuuZQ.js";import{t as y}from"./use-toast-xpb5jNtN.js";import{At as b,Ht as x,jt as S,mr as C}from"./index-CU6xcKiy.js";import{t as w}from"./delete-confirm-dialog-Dg-9HMkY.js";var T=t(),E=e(n(),1),D=r(),O=500;function k(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)(S,{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)(x,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function A(){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 j(){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 M(e){let t=(0,T.c)(20),{isPro:n,promptsRemaining:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsxs)(`div`,{className:s(a.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(c,{className:`h-4 w-4`}),`Balance`]}),t[0]=i):i=t[0];let o;t[1]!==n||t[2]!==r?(o=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[i,(0,D.jsx)(`div`,{className:`flex items-end gap-2`,children:n?(0,D.jsx)(`span`,{className:a.stat,children:`Unlimited`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:a.stat,children:r.toLocaleString()}),(0,D.jsx)(`span`,{className:`${a.caption} mb-1`,children:`prompts remaining`})]})})]}),t[1]=n,t[2]=r,t[3]=o):o=t[3];let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,D.jsxs)(`div`,{className:s(a.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(u,{className:`h-4 w-4`}),`Current Plan`]}),t[4]=l):l=t[4];let d=n?`Unlimited Pro`:`Pay as you go`,f;t[5]===d?f=t[6]:(f=(0,D.jsx)(`span`,{className:a.label,children:d}),t[5]=d,t[6]=f);let p;t[7]===n?p=t[8]:(p=n?(0,D.jsx)(`span`,{className:s(a.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`}):null,t[7]=n,t[8]=p);let m;t[9]!==f||t[10]!==p?(m=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[f,p]}),t[9]=f,t[10]=p,t[11]=m):m=t[11];let h=n?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`,g;t[12]===h?g=t[13]:(g=(0,D.jsx)(`p`,{className:a.bodyMuted,children:h}),t[12]=h,t[13]=g);let _;t[14]!==m||t[15]!==g?(_=(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[l,m,g]}),t[14]=m,t[15]=g,t[16]=_):_=t[16];let v;return t[17]!==_||t[18]!==o?(v=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[o,_]}),t[17]=_,t[18]=o,t[19]=v):v=t[19],v}function N(e){let t=(0,T.c)(13),{onPurchasePrompts:n,onUpgradeToPro:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsx)(`span`,{className:a.label,children:`1,000 Prompts`}),(0,D.jsx)(`p`,{className:a.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),t[0]=i):i=t[0];let o;t[1]===n?o=t[2]:(o=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[i,(0,D.jsx)(p,{onClick:n,className:`shrink-0`,children:`Top Up Balance`})]}),t[1]=n,t[2]=o);let c,l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(u,{className:`h-4 w-4 text-primary`}),(0,D.jsx)(`span`,{className:a.label,children:`Unlimited Pro Plan`})]}),l=(0,D.jsx)(`p`,{className:a.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),d=s(a.bodyMuted,`space-y-0.5`),t[3]=c,t[4]=l,t[5]=d):(c=t[3],l=t[4],d=t[5]);let m;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(f,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),t[6]=m):m=t[6];let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,D.jsxs)(`div`,{className:`space-y-1`,children:[c,l,(0,D.jsxs)(`ul`,{className:d,children:[m,(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(f,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),t[7]=h):h=t[7];let g;t[8]===r?g=t[9]:(g=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[h,(0,D.jsx)(p,{onClick:r,className:`shrink-0`,children:`Purchase`})]}),t[8]=r,t[9]=g);let _;return t[10]!==o||t[11]!==g?(_=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[o,g]}),t[10]=o,t[11]=g,t[12]=_):_=t[12],_}function P(){let[e,t]=(0,E.useState)(null),[n,r]=(0,E.useState)(!0),[s,c]=(0,E.useState)(!1),[u,f]=(0,E.useState)(!1),x=i(),S=o(e=>e.projects),C=(0,E.useRef)(!1),T=(0,E.useMemo)(()=>S.reduce((e,t)=>e+t.threads.length,0),[S]);(0,E.useEffect)(()=>{P();let e=0;function t(){if(document.visibilityState!==`visible`)return;let t=Date.now();t-e<O||(e=t,P())}return document.addEventListener(`visibilitychange`,t),window.addEventListener(`focus`,t),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`focus`,t)}},[]);async function P(){if(!C.current){C.current=!0,r(!0);try{t(await m())}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{C.current=!1,r(!1)}}}function F(){g(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function I(){g(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}async function L(){f(!0);try{if(await h(),_())try{await v()}catch{}window.close()}catch(e){f(!1),c(!1),y({title:`Error`,description:e instanceof Error?e.message:`Failed to delete account`,variant:`destructive`})}}let R=e?.plan===`unlimited-pro`,z=n&&e===null,B=e===null?n:!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)(k,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:z?(0,D.jsx)(A,{}):(0,D.jsx)(M,{isPro:R,promptsRemaining:e?.promptsRemaining??0})}),B?(0,D.jsx)(k,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:z?(0,D.jsx)(j,{}):(0,D.jsx)(N,{onPurchasePrompts:F,onUpgradeToPro:I})}):null,(0,D.jsx)(k,{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:[T>0?(0,D.jsxs)(b,{variant:`error`,children:[(0,D.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,D.jsxs)(`span`,{children:[`You have `,T,` workspace`,` `,T===1?`folder`:`folders`,` listed in Storage. Clear`,` `,T===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)(p,{variant:`outline`,size:`sm`,onClick:()=>x(`/settings/storage`),children:`Go to Storage`})})]}):null,(0,D.jsx)(`p`,{className:a.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),(0,D.jsxs)(p,{variant:`destructive`,onClick:()=>c(!0),children:[(0,D.jsx)(l,{className:`h-4 w-4`}),`Delete Account`]})]})})]}),(0,D.jsx)(w,{open:s,onOpenChange:e=>{!e&&!u&&c(!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:u,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`})]})}export{P as default};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{s as a,t as o}from"./utils-uGptTPGm.js";import{n as s}from"./button-zYjzm__g.js";import{g as c,h as l,p as u}from"./dist-BhdiICUV.js";import{a as d,c as ee,i as te,l as ne,n as re,o as ie,r as f,s as ae,t as p,u as m}from"./dist-CPtOAqwP.js";import{n as oe}from"./use-browser-overlay-block-DyprQSIG.js";var h=t(),g=e(n(),1),_=r(),v=`AlertDialog`,[se,ce]=l(v,[m]),y=m(),b=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(ie,{...r,...n,modal:!0})};b.displayName=v;var x=`AlertDialogTrigger`,S=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ee,{...i,...r,ref:t})});S.displayName=x;var C=`AlertDialogPortal`,w=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(d,{...r,...n})};w.displayName=C;var T=`AlertDialogOverlay`,E=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(te,{...i,...r,ref:t})});E.displayName=T;var D=`AlertDialogContent`,[le,ue]=se(D),de=u(`AlertDialogContent`),O=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...i}=e,o=y(n),s=g.useRef(null),l=a(t,s),u=g.useRef(null);return(0,_.jsx)(ne,{contentName:D,titleName:k,docsSlug:`alert-dialog`,children:(0,_.jsx)(le,{scope:n,cancelRef:u,children:(0,_.jsxs)(re,{role:`alertdialog`,...o,...i,ref:l,onOpenAutoFocus:c(i.onOpenAutoFocus,e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,_.jsx)(de,{children:r}),(0,_.jsx)(I,{contentRef:s})]})})})});O.displayName=D;var k=`AlertDialogTitle`,A=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ae,{...i,...r,ref:t})});A.displayName=k;var j=`AlertDialogDescription`,M=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(f,{...i,...r,ref:t})});M.displayName=j;var fe=`AlertDialogAction`,N=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(p,{...i,...r,ref:t})});N.displayName=fe;var P=`AlertDialogCancel`,F=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=ue(P,n),o=y(n),s=a(t,i);return(0,_.jsx)(p,{...o,...r,ref:s})});F.displayName=P;var I=({contentRef:e})=>{let t=`\`${D}\` requires a description for the component to be accessible for screen reader users.
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{tn as i}from"./dist-C99qsdM0.js";import{s as a,t as o}from"./utils-DIi62oP7.js";import{n as s}from"./button-BRUlmKU9.js";import{g as c,h as l,p as u}from"./dist-DrOhoOxi.js";import{a as d,c as ee,i as te,l as ne,n as re,o as ie,r as f,s as ae,t as p,u as m}from"./dist-BrF4sqHu.js";import{n as oe}from"./use-browser-overlay-block-DyprQSIG.js";var h=t(),g=e(n(),1),_=r(),v=`AlertDialog`,[se,ce]=l(v,[m]),y=m(),b=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(ie,{...r,...n,modal:!0})};b.displayName=v;var x=`AlertDialogTrigger`,S=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ee,{...i,...r,ref:t})});S.displayName=x;var C=`AlertDialogPortal`,w=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(d,{...r,...n})};w.displayName=C;var T=`AlertDialogOverlay`,E=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(te,{...i,...r,ref:t})});E.displayName=T;var D=`AlertDialogContent`,[le,ue]=se(D),de=u(`AlertDialogContent`),O=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...i}=e,o=y(n),s=g.useRef(null),l=a(t,s),u=g.useRef(null);return(0,_.jsx)(ne,{contentName:D,titleName:k,docsSlug:`alert-dialog`,children:(0,_.jsx)(le,{scope:n,cancelRef:u,children:(0,_.jsxs)(re,{role:`alertdialog`,...o,...i,ref:l,onOpenAutoFocus:c(i.onOpenAutoFocus,e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,_.jsx)(de,{children:r}),(0,_.jsx)(I,{contentRef:s})]})})})});O.displayName=D;var k=`AlertDialogTitle`,A=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ae,{...i,...r,ref:t})});A.displayName=k;var j=`AlertDialogDescription`,M=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(f,{...i,...r,ref:t})});M.displayName=j;var fe=`AlertDialogAction`,N=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(p,{...i,...r,ref:t})});N.displayName=fe;var P=`AlertDialogCancel`,F=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=ue(P,n),o=y(n),s=a(t,i);return(0,_.jsx)(p,{...o,...r,ref:s})});F.displayName=P;var I=({contentRef:e})=>{let t=`\`${D}\` requires a description for the component to be accessible for screen reader users.
2
2
 
3
3
  You can add a description to the \`${D}\` by passing a \`${j}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
4
 
@@ -0,0 +1,2 @@
1
+ import{$ as e,Bn as t,_ as n,an as r,at as i,h as a,m as o,ot as s,rn as c,v as l,vn as u,xn as d,z as f}from"./dist-C99qsdM0.js";var p=function(e){return e.PACKAGE_MANAGER=`tarsk.create-project.packageManager`,e.COMMIT_METHOD=`tarsk.create-project.commitMethod`,e.TEMPLATE_ID=`tarsk.create-project.templateId`,e.CREATE_BRANCH_AFTER_PR=`createBranchAfterPR`,e.CREATE_WORKSPACE_AFTER_PR=`createWorkspaceAfterPR`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.NEW_CHAT_ON_NEW_BRANCH=`newChatOnNewBranch`,e.FONT_SCALE=`tarsk.general.fontScale`,e.FROSTED_PANEL_OPACITY=`tarsk.general.frostedPanelOpacity`,e.IMAGE_BACKGROUND=`tarsk.general.imageBackground`,e.WALLPAPER_MODE=`tarsk.general.wallpaperMode`,e.WALLPAPER_COLOR=`tarsk.general.wallpaperColor`,e.BRAND_COLOR=`tarsk.general.brandColor`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.SERVER_URL=`tarsk.server.url`,e.SERVER_BIND_MODE=`tarsk.general.serverBindMode`,e.HISTORY_COLUMNS=`tarsk.settings.historyColumns`,e.TASK_LIST_VIEW_MODE=`tarsk.tasks.viewMode`,e.AUTOMATION_LIST_VIEW_MODE=`tarsk.automations.viewMode`,e.LAST_TASK_TAG=`tarsk.tasks.lastTag`,e.CONVERSATION_LEVEL=`tarsk.general.conversationLevel`,e}({}),m=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e.BASH_COMMAND_DURATIONS=`tarsk.bash-command-durations`,e.SKILL_CATALOG_PREFIX=`tarsk.skills.catalog.`,e.SKILL_SOURCE_SELECTION=`tarsk.skills.selectedSource`,e.PROJECT_SESSION_OPEN_PREFIX=`tarsk.project-session-open.`,e}({});function h(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function g(e,t){typeof localStorage>`u`||localStorage.setItem(e,t)}function _(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function v(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function y(e=`npm`){return h(p.PACKAGE_MANAGER)??e}function b(e){g(p.PACKAGE_MANAGER,e)}function ee(e=`pull-request`){return h(p.COMMIT_METHOD)??e}function te(e){g(p.COMMIT_METHOD,e)}function ne(e=``){return h(p.TEMPLATE_ID)??e}function re(e){g(p.TEMPLATE_ID,e)}function ie(e=!1){let t=h(p.CREATE_BRANCH_AFTER_PR);return t===null?e:t===`true`}function ae(e){g(p.CREATE_BRANCH_AFTER_PR,e.toString())}function oe(e=!1){let t=h(p.CREATE_WORKSPACE_AFTER_PR);return t===null?e:t===`true`}function se(e){g(p.CREATE_WORKSPACE_AFTER_PR,e.toString())}function ce(e=!1){let t=h(p.PRIVATE_REPOSITORY_DEFAULT);return t===null?e:t===`true`}function le(e){g(p.PRIVATE_REPOSITORY_DEFAULT,e.toString())}function ue(e=!1){let t=h(p.NEW_CHAT_ON_NEW_BRANCH);return t===null?e:t===`true`}function de(e){g(p.NEW_CHAT_ON_NEW_BRANCH,e.toString())}function x(){let e=_(m.MESSAGE_HISTORY);return e?JSON.parse(e):[]}function fe(e){let t=x();e.trim()&&t[t.length-1]!==e&&(t.push(e),v(m.MESSAGE_HISTORY,JSON.stringify(t)))}function pe(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function me(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function he(e=`default`){return pe(m.SKILL_SOURCE_SELECTION)??e}function ge(e){me(m.SKILL_SOURCE_SELECTION,e)}function S(e){return`${m.SKILL_CATALOG_PREFIX}${e}`}function _e(e){let t=pe(S(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function ve(e,t){me(S(e),JSON.stringify(t))}function ye(e){typeof sessionStorage>`u`||sessionStorage.removeItem(S(e))}var be=`tarsk.skills.customSources`;function xe(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(be);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function Se(){typeof localStorage>`u`||localStorage.removeItem(be)}var C=new Set;function w(){return h(p.CONVERSATION_LEVEL)===`minimal`?`minimal`:`full`}function Ce(e){g(p.CONVERSATION_LEVEL,e);for(let t of C)t(e)}function we(e){return C.add(e),function(){C.delete(e)}}function Te(e=100){let t=h(p.FONT_SCALE);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function Ee(e){g(p.FONT_SCALE,String(e))}function De(e=80){let t=h(p.FROSTED_PANEL_OPACITY);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=60&&e<=100)return e}return e}function Oe(e){g(p.FROSTED_PANEL_OPACITY,String(e))}var ke=new Set([`image`,`background`,`color`]),T=/^#[0-9a-fA-F]{6}$/,E=`#1f2937`,Ae=`#82c309`;function je(e){return e!==null&&ke.has(e)}function Me(e=`background`){let t=h(p.WALLPAPER_MODE);if(je(t))return t;if(t===`brand`)return`background`;let n=h(p.IMAGE_BACKGROUND);return n===`false`?`background`:n===`true`?`image`:e}function Ne(e){g(p.WALLPAPER_MODE,e)}function Pe(e=E){let t=h(p.WALLPAPER_COLOR);return t!==null&&T.test(t)?t:e}function Fe(e){T.test(e)&&g(p.WALLPAPER_COLOR,e.toLowerCase())}function Ie(e=Ae){let t=h(p.BRAND_COLOR);return t!==null&&T.test(t)?t:e}function Le(e){T.test(e)&&g(p.BRAND_COLOR,e.toLowerCase())}var Re=new Set([`summary`,`list`]);function ze(e){return e===`automations`?p.AUTOMATION_LIST_VIEW_MODE:p.TASK_LIST_VIEW_MODE}function Be(e){let t=h(ze(e));return t!==null&&Re.has(t)?t:null}function Ve(e=`tasks`,t=`summary`){let n=Be(e);return n===null?e===`automations`?Be(`tasks`)??t:t:n}function He(e,t){g(ze(e),t)}function Ue(){return h(p.LAST_TASK_TAG)}function We(e){g(p.LAST_TASK_TAG,e)}function Ge(e=`VS Code`){return h(p.OPEN_WITH_PROGRAM)??e}function Ke(e){g(p.OPEN_WITH_PROGRAM,e)}function qe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fetchedAt==`number`&&(t.serverBindMode===`local`||t.serverBindMode===`network`)&&Array.isArray(t.networkAddresses)&&t.networkAddresses.every(e=>typeof e==`string`)}function Je(){let e=h(p.SERVER_BIND_MODE);if(!e)return null;try{let t=JSON.parse(e);return qe(t)?t:null}catch{return null}}function Ye(e){g(p.SERVER_BIND_MODE,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}var Xe=`641`;function Ze(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function Qe(){return O()&&Ze()===`ios`}function $e(){return h(p.SERVER_URL)}function et(e){g(p.SERVER_URL,e)}function tt(e){try{return new URL(e).hostname}catch{return``}}function D(e){let t=e.trim();if(!t)return``;let r=/^https?:\/\//i.test(t)?t:`https://${t}`;try{let e=new URL(r);if(o(e.hostname))return``;if(a(e.hostname)){let t=n(e.hostname);return t?l(t)??``:``}}catch{return``}if(/^https?:\/\//i.test(t))try{let e=new URL(t);return e.protocol!==`http:`&&e.protocol!==`https:`||!e.hostname?``:e.origin}catch{return``}let i=(t.split(`/`)[0]??``).replace(/:\d+$/,``);return i?`http://${i}:${Xe}`:``}function O(){if(typeof window>`u`)return!1;if(window.Capacitor?.isNativePlatform?.())return!0;let e=window.location.protocol;return e===`capacitor:`||e===`ionic:`||e===`file:`}function nt(){let e=$e();if(e){let t=tt(e);if(t)return t}return O()?``:document.location.hostname}async function rt(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function it(e){let t=D(e);if(t){if(O()){et(t),window.location.reload();return}window.location.assign(t)}}function k(){return typeof window<`u`&&`__electrobunWebviewId`in window}function at(){return typeof document<`u`&&document.location.port===`8100`}function A(){if(typeof document>`u`)return null;let{protocol:e,hostname:t,port:r,host:i,origin:o}=document.location;if(e!==`http:`&&e!==`https:`)return null;if(o&&t&&a(t)){let e=n(t);if(e)return l(e)??o}return o||`${e}//${i??(r?`${t}:${r}`:t)}`}function j(){if(typeof document>`u`)return`http://localhost:641`;let{hostname:e,port:t}=document.location;return t===`8100`?`http://${e}:462`:A()||`http://${e}:641`}function M(){if(k()){let e=A();if(e)return e}if(!O())return j();let e=$e();return e?e.replace(/\/$/,``):j()}function N(e){let t=e.startsWith(`/`)?e:`/${e}`;return`${M()}${t}`}function P(e){if(!e)return`Unknown error`;if(typeof e.error==`string`)return e.error.trim()||`Unknown error`;if(e.error&&typeof e.error==`object`){let t=e.error.message;if(typeof t==`string`&&t.trim())return t.trim();let n=e.error.details;return typeof n==`string`&&n.trim()?n.trim():`Unknown error`}return`Unknown error`}async function F(e){try{return P(await e.json())}catch{}return e.statusText||`Unknown error`}function I(e,t,n){let r=Error(e);return n?.error&&typeof n.error==`object`&&(r.details=n.error.details,r.code=n.error.code),r}async function ot(e){let t;try{t=await e.json()}catch{}throw I(P(t)||e.statusText||`Unknown error`,e,t)}async function L(e,t,n,r){let i=await fetch(N(t),{...r,method:e,headers:{"Content-Type":`application/json`,...r?.headers},body:n?JSON.stringify(n):void 0});if(!i.ok){let e=await F(i);throw Error(e)}return i}async function R(e,t){let n=await fetch(N(e),{...t,method:`GET`});if(!n.ok){let e=await F(n);throw Error(e)}return n.blob()}async function z(e,t){let n=await fetch(N(e),{...t,method:`GET`});if(!n.ok){let e=await F(n);throw Error(e)}return n.json()}async function B(e,t,n){return(await L(`POST`,e,t,n)).json()}async function st(e,t,n){return(await L(`POST`,e,t,n)).blob()}async function ct(e,t,n){let r=await fetch(N(e),{...n,method:`POST`,headers:{"Content-Type":`application/octet-stream`,...n?.headers},body:t});if(!r.ok){let e=await F(r);throw Error(e)}return r.json()}async function V(e,t,n){return(await L(`PUT`,e,t,n)).json()}async function H(e,t,n){return(await L(`PATCH`,e,t,n)).json()}async function lt(e,t,n){return(await L(`PUT`,e,t,n)).body}async function U(e,t){let n=await fetch(N(e),{...t,method:`DELETE`});if(!n.ok){let e=await F(n);throw Error(e)}if(n.status!==204)return n.json()}async function ut(e,t){let n=await fetch(N(e),{...t,method:`DELETE`});if(!n.ok){let e=await F(n);throw Error(e)}return n.body}async function W(e,t,n){let r=await fetch(N(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});return r.ok||await ot(r),r.body}async function G(e,t){let n=await fetch(N(e),{...t,method:`GET`});return n.ok||await ot(n),n.body}async function K(e,t,n){let r=await fetch(N(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw I(P(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function dt(e,t,n){let r=await fetch(N(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw I(P(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function q(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var J=e(`gitops.ttl-cache`),Y=new class{cache=new Map;inFlightRequests=new Map;generations=new Map;async get(e,t,n){let r=e.startsWith(`unified-git-status-`),i=r?performance.now():0,a=this.inFlightRequests.get(e);if(a)return r&&J.debug(`in-flight-reuse`,{key:e}),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);J.debug(`cache hit`,{key:e,duration:t})}return o.data}r&&J.debug(`cache miss, fetching`,{key:e});let s=this.generations.get(e)??0,c=t().then(t=>{if((this.generations.get(e)??0)===s){if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);J.debug(`stored in cache`,{key:e,duration:t})}}else r&&J.debug(`skipped stale cache write`,{key:e});return t}).finally(()=>{this.inFlightRequests.get(e)===c&&this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,c),c}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}bumpGeneration(e){this.generations.set(e,(this.generations.get(e)??0)+1)}invalidate(e){this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);for(let n of this.inFlightRequests.keys())e.test(n)&&!t.includes(n)&&t.push(n);for(let e of t)this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}clear(){for(let e of new Set([...this.cache.keys(),...this.inFlightRequests.keys(),...this.generations.keys()]))this.bumpGeneration(e);this.cache.clear(),this.inFlightRequests.clear()}};function ft(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function pt(e,t=`image/png`){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})}function mt(e){let t=e.indexOf(`,`),n=e.slice(0,t);return pt(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function ht(e){if(e.imageData)return pt(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return mt(e.imageUrl);let t=r(e.imageUrl,M()),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch image: ${n.status}`);return n.blob()}throw Error(`imageUrl or imageData is required`)}function gt(e){return!e.imageUrl||c(e.imageUrl)?e:{...e,imageUrl:r(e.imageUrl,M())}}async function _t(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return ft(await ht(e),t),{path:t}}catch{if(!e.imageUrl||e.imageUrl.startsWith(`data:`))throw Error(`imageUrl or imageData is required`);let n=document.createElement(`a`);return n.href=e.imageUrl,n.download=t,n.target=`_blank`,n.rel=`noopener noreferrer`,document.body.appendChild(n),n.click(),document.body.removeChild(n),{path:t}}}async function vt(e){let t=await ht(e);if(!navigator.clipboard?.write)throw Error(`Clipboard API not available`);let n=t.type||`image/png`,r=t.type?t:new Blob([t],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:r})])}async function yt(e){return k()?B(`api/image/save`,gt(e)):_t(e)}async function bt(e){if(k()){await B(`api/image/clipboard`,gt(e));return}await vt(e)}function xt(e){let t=e.trim().toLowerCase();return t===`load failed`||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`network connection was lost`)||t.includes(`networkrequestfailed`)||t.includes(`networkrequest failed`)||t.includes(`socket is not connected`)}function St(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function Ct(e){if(St(e)===`THREAD_BUSY`)return!0;if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`already processing a message`)||t.includes(`already being processed`)||t.includes(`multiple chat windows are processing`)}function wt(e,t){return Ct(e)?t?.trim()?!0:e instanceof Error?!e.message.toLowerCase().includes(`multiple chat windows`):!1:!1}var Tt=50;function Et(e,t,n,r,i){let a=e.getReader(),o=!1;function s(){o=!0,a.cancel().catch(()=>{})}let c=new TextDecoder,l=``,u=0;function d(e){let t=e.content?.trim();if(t)return f(t);let n=e.error?.message?.trim();if(n)return f(n);let r=e.message?.trim();return r?f(r):`Unknown error`}function p(e){if(!e)return!1;let t=e.trim();return t.length>200?!1:[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/^forbidden/i,/^unauthorized/i].some(e=>e.test(t))}async function m(){u+=1,!(u<Tt)&&(u=0,await new Promise(e=>{setTimeout(e,0)}))}async function h(e){return e.type===`ping`?`continue`:e.type===`error`?(r(d(e)),n(),`stop`):e.type===`message`?(i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}),`continue`):e.type===`complete`?(n(),`stop`):e.type===`result`&&p(e.content)?(r(f(e.content??`Unknown error`)),n(),`stop`):(t(e),await m(),`continue`)}async function g(){if(!l.trim())return`continue`;try{return await h(JSON.parse(l))}catch{return l.trim()&&t({type:`result`,content:l}),`continue`}}async function _(e){let t=e.trim();if(!t)return`continue`;try{return await h(JSON.parse(t))}catch{return`continue`}}async function v(){return o||await g()===`stop`?`stop`:(n(),`continue`)}async function y(e){l+=c.decode(e,{stream:!0});let t=l.split(`
2
+ `);l=t.pop()??``;for(let e of t)if(o||await _(e)===`stop`)return`stop`;return`continue`}async function b(){try{for(;!o;){let{done:e,value:t}=await a.read();if(e||o){e&&await v();break}if(await y(t)===`stop`)return}}catch(e){o||(r(e instanceof Error?e.message:`Stream error`),n())}}return b(),s}var Dt=e(`gitops.api`);async function Ot(e,t=!1,n=!1){let r=new URLSearchParams;t&&r.set(`fresh`,`true`),n&&r.set(`asyncRefresh`,`true`);let i=r.toString(),a=i?`api/git/unified-status/${q(e)}?${i}`:`api/git/unified-status/${q(e)}`,o=performance.now();Dt.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await z(a)}finally{let n=Math.round(performance.now()-o);Dt.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function kt(e,t,n){return(await B(`api/git/generate-commit-message/${q(e)}`,{model:t,provider:n})).message}async function At(e,t){await B(`api/git/commit/${q(e)}`,{message:t})}async function jt(e){await B(`api/git/push/${q(e)}`)}async function Mt(e){await B(`api/git/pull/${q(e)}`)}async function Nt(e){return B(`api/git/sync-branch/${q(e)}`,{})}async function Pt(e,t,n){return B(`api/git/generate-pr-info/${q(e)}`,{model:t,provider:n})}async function Ft(e,t,n,r){return B(`api/git/create-pr/${q(e)}`,{title:t,description:n,baseBranch:r})}async function It(e){await B(`api/git/fetch/${q(e)}`)}async function Lt(e,t,n){return B(`api/git/create-branch/${q(e)}`,{baseBranch:t,branchName:n})}async function Rt(e,t){return B(`api/git/revert-file/${q(e)}`,{filePath:t})}async function zt(e,t=50){return(await z(`api/git/log/${q(e)}?limit=${t}`)).commits}async function Bt(e){return z(`api/git/pr-status/${q(e)}`)}async function Vt(e,t,n,r){return B(`api/git/create-repo/${q(e)}`,{repoName:t,description:n,isPrivate:r})}async function Ht(e,t){return B(`api/git/checkpoint/${q(e)}`,{messageId:t})}async function Ut(e,t){return B(`api/git/checkpoint-restore/${q(e)}`,{checkpointRef:t})}async function Wt(e){return z(`api/git/diff/${q(e)}`)}async function Gt(e,t,n){return R(`api/git/media/${q(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function Kt(e){return B(`api/git/cleanup-deleted-branches/${q(e)}`)}async function qt(e){return Y.get(`workspace-changes-${e}`,async()=>z(`api/git/workspace-changes/${q(e)}`),1e4)}async function Jt(){return(await z(`api/skills/popular`)).skills??[]}async function Yt(){return(await z(`api/skills/sources`)).sources??[]}async function Xt(e){return(await z(`api/skills/catalog?${new URLSearchParams({sourceId:e}).toString()}`)).skills??[]}async function Zt(e,t){return B(`api/skills/sources/verify`,{title:e,url:t})}async function Qt(e,t,n){return V(`api/skills/sources/${q(e)}`,{title:t,url:n})}async function $t(e){await U(`api/skills/sources/${q(e)}`)}async function en(e){return(await B(`api/skills/sources/import`,{sources:e})).sources??[]}async function tn(e,t){return z(`api/skills/catalog/files?${new URLSearchParams({sourceId:e,skillId:t}).toString()}`)}async function nn(e,t,n){return z(`api/skills/catalog/file?${new URLSearchParams({sourceId:e,skillId:t,relativePath:n}).toString()}`)}async function rn(){return(await z(`api/agents/popular`)).agents??[]}async function an(){return(await z(`api/slash-commands/popular`)).commands??[]}async function on(e,t,n,r,i){return B(`api/threads/${q(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r,gitHubRef:i})}async function sn(e,t,n,r){return B(`api/threads/${q(e)}/ai-files/catalog-skill`,{sourceId:t,skillId:n,destPath:r})}var cn=e(`gitops.api`),X=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}},ln=50;async function Z(){let{plan:e,promptsRemaining:t}=await En();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=ln,promptsRemaining:t}}var un=null,Q=!1;function dn(e){un=e}function fn(e){Q||(Q=!0,un?.(e))}async function pn(){return z(`api/scaffold/templates`)}async function mn(){return(await z(`api/scaffold/check-vp`)).installed}async function hn(){return B(`api/scaffold/install-vp`,{})}async function gn(e,t,n,r){return W(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function _n(){return Y.get(`providers`,async()=>z(`api/providers`),6e4)}function vn(e){return`${M()}/api/providers/${q(e)}/logo`}function yn(e){return`https://models.tarsk.io/svg/${q(e)}.svg`}async function bn(e){return Y.get(`provider-credits-${e}`,async()=>z(`api/providers/${q(e)}/credits`),3e4)}async function xn(){return(await z(`api/providers/openrouter/oauth/start`)).url}async function Sn(e,t){await B(`api/providers/keys`,{providerName:e,apiKey:t}),Y.invalidate(`providers`)}async function Cn(e){await B(`api/providers/env`,{values:e}),Y.invalidate(`providers`)}function wn(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function Tn(e){if(typeof window<`u`&&!k()){wn(e);return}try{await B(`api/providers/open-external`,{url:e})}catch(t){if(wn(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function En(){return z(`api/account/info`)}async function Dn(){return B(`api/account/delete`,{})}async function On(){return B(`api/account/quit`,{})}async function kn(){return z(`api/account/spend`)}async function An(){return z(`api/account/statistics`)}async function jn(){return U(`api/account/statistics`)}async function Mn(){return z(`api/account/settings`)}async function Nn(){return z(`api/slack/settings`)}async function Pn(){await U(`api/logs`)}async function Fn(e){return G(`api/logs/stream`,e)}async function In(e){try{await B(`api/logs`,e)}catch(e){cn.debug(`Failed to post client log entry`,e)}}async function Ln(){return z(`api/slack/manifest`)}async function Rn(e){return V(`api/slack/tokens`,e)}async function zn(){await U(`api/slack/tokens`)}async function Bn(e){return B(`api/slack/bindings`,e)}async function Vn(e,t){await U(`api/slack/bindings/${q(e)}/${q(t)}`)}async function Hn(e){return V(`api/account/settings`,e)}async function Un(){return z(`api/voice-model/status`)}async function Wn(e,t){return(await B(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function Gn(){return Y.get(`available-programs`,async()=>(await z(`api/programs`)).programs??[],3e5)}async function Kn(){return(await z(`api/processes`)).processes}async function qn(e){await B(`api/processes/${q(e)}/kill`)}async function Jn(){return Y.get(`processing-threads`,async()=>{let e=await z(`api/threads/processing`);return{processingThreadIds:e.processingThreadIds??[],processingRuns:e.processingRuns??[]}},0)}async function Yn(){return(await Jn()).processingThreadIds}async function Xn(e){let t=new URLSearchParams({since:e.since});return e.ids&&t.set(`ids`,e.ids),Y.get(`processing-roster:${t.toString()}`,async()=>(await z(`api/conversations/processing-roster?${t.toString()}`)).conversations??[],0)}async function Zn(){return Y.get(`git-user`,async()=>{try{let e=await z(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function Qn(){return(await Zn()).name}async function $n(){return Y.get(`projects`,async()=>{let e=await z(`api/projects`),n=Array.isArray(e)?e:e.projects??[],r=Array.isArray(e)?null:e.cloneRootPath??null;return{projects:(n||[]).map(e=>{let n=e;return{projectId:n.projectId??n.id,name:n.name,gitUrl:n.gitUrl,projectPath:n.projectPath??n.path,threads:n.threads??[],commands:n.commands??[],setupScript:n.setupScript,runCommand:n.runCommand,planPrompt:n.planPrompt,testPrompt:n.testPrompt,reviewPrompt:n.reviewPrompt,customSystemPrompt:n.customSystemPrompt,useCustomSystemPrompt:!!n.useCustomSystemPrompt,allowAllCommands:n.allowAllCommands!==!1,allowedCommandPatterns:n.allowedCommandPatterns??[],defaultChatMode:t(n.defaultChatMode)?n.defaultChatMode:void 0,disabledTools:n.disabledTools??void 0,useBuiltInBrowser:n.useBuiltInBrowser!==!1,projectIcon:n.projectIcon,tasksModifiedCount:Number(n.tasksModifiedCount)||0,type:n.type===`bot`?`bot`:`standard`,builtIn:n.builtIn===!0}}).map(e=>{let t=(e.threads||[]).map(e=>{let t=e,n=t.threadId??t.id;return{threadId:n,title:t.title??n,path:t.path??``,currentBranch:t.currentBranch??``,isSelected:!!t.isSelected,model:t.model??void 0,modelProvider:t.modelProvider??void 0,gitStatusDot:i(t.gitStatusDot),prNumber:s(t.prNumber)}});return{...e,threads:t}}),cloneRootPath:r}},3e4)}async function er(e){await B(`api/projects/${q(e)}/tasks/clear-modifications`)}async function tr(e,t,n){return W(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function nr(e,t){await B(`api/projects/git-auth/${encodeURIComponent(e)}`,t)}async function rr(e){return W(`api/projects/open-folder`,{},{signal:e})}async function ir(e,t){return W(`api/projects/open-path`,{path:e},{signal:t})}async function ar(e,t){return W(`api/projects/new-folder`,{projectName:e},{signal:t})}async function or(e,t){return W(`api/projects/new-bot`,{projectName:e},{signal:t})}function sr(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function cr(e,t,n,r){return W(`api/projects/from-zip`,{data:await sr(e),name:t,overrideProjectId:n},{signal:r})}async function lr(e){return Y.get(`project-${e}`,async()=>{let t=await z(`api/projects/${q(e)}`);return{...t,projectPath:t.projectPath??t.path}},3e4)}async function ur(e){return z(`api/projects/${q(e)}/env-vars`)}async function dr(e){return(await z(`api/projects/${q(e)}/window-state`)).state}async function fr(e,t){await dt(`api/projects/${q(e)}/window-state`,{state:t})}async function pr(e,t,n){return B(`api/projects/${q(e)}/replace-unique-text`,{oldText:t,newText:n})}async function mr(e,t){await V(`api/projects/${q(e)}/env-vars`,{vars:t})}async function hr(e){await U(`api/projects/${q(e)}`),Y.invalidate(`projects`)}function gr(e){Y.invalidate(`projects`),e&&Y.invalidate(`project-${e}`)}async function _r(e,t,n){return W(`api/threads`,{projectId:e,title:t,sourceThreadId:n?.sourceThreadId})}async function vr(e,t){let n=await ut(`api/threads/${q(t)}?stream=true`);return Y.invalidate(`projects`),n}async function yr(e,t){await H(`api/threads/${q(e)}`,t),Y.invalidate(`thread-${e}`),(`model`in t||`modelProvider`in t||`chatTitles`in t||`diffComments`in t)&&Y.invalidate(`projects`)}async function br(e,t,n){return(await B(`api/threads/${q(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function xr(e,t){return B(`api/threads/${q(e)}/fix-comments`,{comments:t})}async function Sr(e,t){await B(`api/threads/${q(t)}/select`)}function Cr(e,t,n){let r=new URLSearchParams;t&&r.set(`conversationId`,t),n===`minimal`&&r.set(`view`,`final`);let i=r.toString(),a=`api/threads/${q(e)}/messages`;return i.length>0?`${a}?${i}`:a}async function wr(e,t){return{threadId:e,messages:await z(Cr(e,t,w()))}}async function Tr(e,t,n=1,r=u){let i=new URLSearchParams({offset:String(n),limit:String(r)});return z(`api/threads/${q(e)}/observations/${q(t)}?${i}`)}async function Er(e){return(await z(`api/threads/${q(e)}/conversation-folder-path`)).path}async function Dr(e,t,n,r=[],i,a,o,s,c,l,u,d,f){let{isEmpty:p,isLow:m,promptsRemaining:h}=await Z();if(p)throw new X;return m?fn(h):Q=!1,W(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,orchestrateMode:u,autoRoute:d,checkpointRef:c,conversationId:l,goal:f,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))},{signal:i})}async function Or(e,t,n,r=[],i,a,o,s,c){let{isEmpty:l,isLow:u,promptsRemaining:d}=await Z();if(l)throw new X;return u?fn(d):Q=!1,B(`api/chat`,{threadId:e,content:t,model:n,provider:i,planMode:a,ralphMode:o,orchestrateMode:s,autoRoute:c,runInBackground:!0,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function kr(e,t,n,r,i,a){await B(`api/chat/${q(e)}/steer`,{messageId:t,content:n,conversationId:r,model:i,attachments:a.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function Ar(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),G(`api/chat/subscribe/${q(e)}?${r.toString()}`,{signal:t})}async function jr(e){let t=await U(`api/chat/${q(e)}`);return Y.invalidate(`thread-${e}`),t?.conversationId||``}async function Mr(e,t,n){return B(`api/chat/${q(e)}/agent-note`,{content:t,...n})}async function Nr(e,t){return K(`api/chat/${q(e)}/compact`,t)}async function Pr(e,t){let n=await B(`api/chat/${q(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function Fr(e,t){try{let n=new URLSearchParams,r=t?.conversationId?.trim();r&&n.set(`conversationId`,r),t?.all&&n.set(`all`,`1`);let i=n.size>0?`?${n.toString()}`:``;await B(`api/chat/stop/${q(e)}${i}`)}catch{}}async function $(e,t){return t.runNow&&t.setupScript?lt(`api/projects/${q(e)}`,t):(await dt(`api/projects/${q(e)}`,t),gr(e),null)}async function Ir(e,t){await K(`api/projects/${q(e)}/open`,{program:t})}async function Lr(e,t){await K(`api/threads/${q(e)}/open`,{program:t})}async function Rr(e,t){await $(e,{program:t})}async function zr(e,t,n){return $(e,{setupScript:t,runNow:n})}async function Br(e,t){await $(e,{name:t})}async function Vr(e,t){let n=new URLSearchParams({provider:e});t!==void 0&&n.set(`supportedTools`,t?`true`:`false`),n.set(`useCase`,`coding`);let r=`available-models-${n.toString()}`;return Y.get(r,async()=>{let e=await z(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function Hr(e){let t=new URLSearchParams({useCase:e}),n=`available-models-all-${e}`;return Y.get(n,async()=>(await z(`api/models/all?${t.toString()}`)).providers??{},12e4)}async function Ur(e,t){await B(`api/models/${q(e,t)}/enable`),Y.invalidate(`enabled-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function Wr(e,t){await B(`api/models/${q(e,t)}/disable`),Y.invalidate(`enabled-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function Gr(e,t,n){await B(`api/models/${q(e,t)}/settings`,n),Y.invalidatePattern(/^available-models-/),Y.invalidate(`enabled-models`)}async function Kr(){return Y.get(`enabled-models`,async()=>(await z(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function qr(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return Y.get(n,async()=>{let e=await z(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function Jr(){return Y.get(`enabled-image-models`,async()=>(await z(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Yr(e,t){await B(`api/models/${q(e,t)}/enable?useCase=image`),Y.invalidate(`enabled-image-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function Xr(e,t){await B(`api/models/${q(e,t)}/disable?useCase=image`),Y.invalidate(`enabled-image-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function Zr(e,t,n,r){return B(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function Qr(e){await bt(e)}async function $r(e){return yt(e)}async function ei(e,t){return st(`api/projects/${q(e)}/plugin-export`,t)}async function ti(e,t){return B(`api/projects/${q(e)}/plugin-import/preview`,{url:t})}async function ni(e,t){return B(`api/projects/${q(e)}/plugin-import`,t)}async function ri(e,t){return B(`api/projects/${q(e)}/plugin-upload`,t)}async function ii(e){let t=await B(`api/models/${q(e)}/refresh`);return Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/),Y.invalidate(`enabled-models`),Y.invalidate(`enabled-image-models`),t.modelCount??0}async function ai(e,t){await B(`api/projects/${q(e)}/commands`,t)}async function oi(e,t){await U(`api/projects/${q(e)}/commands/${q(t)}`)}async function si(e){return z(`api/projects/${q(e)}/package-scripts`)}async function ci(e){return z(`api/threads/${q(e)}/files`)}async function li(e){return(await z(`api/threads/${q(e)}/project-scripts`)).scripts}async function ui(e,t,n,r){let{relativeFolder:i,...a}=r??{},o={scriptName:t,command:n};return i&&(o.relativeFolder=i),W(`api/threads/${q(e)}/project-scripts/run`,o,a)}async function di(e,t){return B(`api/threads/${q(e)}/project-scripts/stop`,{scriptName:t})}async function fi(e){return Y.get(`thread-${e}`,async()=>z(`api/threads/${e}`),45e3)}async function pi(e){return B(`api/projects/${q(e)}/run-suggest`,{})}async function mi(e){return B(`api/projects/${q(e)}/setup-suggest`,{})}async function hi(e,t,n){return cn.info(`Start dev server requested`,{projectId:e,threadId:t}),Y.invalidate(`dev-server-running-${e}`),W(`api/projects/${q(e)}/run`,{threadId:t},{signal:n})}async function gi(e){return Y.invalidate(`dev-server-running-${e}`),B(`api/projects/${q(e)}/stop`,{})}async function _i(e,t){return B(`api/projects/${q(e)}/free-port`,{port:t})}async function vi(e){return Y.get(`dev-server-running-${e}`,async()=>z(`api/projects/${q(e)}/running`),3e3)}async function yi(e){return z(`api/projects/${q(e)}/system-prompt`)}async function bi(){return z(`api/onboarding/status`)}async function xi(){return z(`api/onboarding/git-check`)}async function Si(){return B(`api/onboarding/complete`,{})}async function Ci(){return B(`api/onboarding/reset`,{})}async function wi(){return z(`api/onboarding/recommended-models`)}async function Ti(e){return(await z(`api/slash-commands?threadId=${q(e)}`)).commands??[]}async function Ei(e){let t=await z(`api/slash-commands?threadId=${q(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function Di(e,t,n,r,i){return B(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function Oi(e,t){let n=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,threadId:t})});if(!n.ok)throw Error(`Failed to delete slash command: ${n.statusText}`);return n.json()}async function ki(e){let t=new URLSearchParams;e?.threadId?t.set(`threadId`,e.threadId):e?.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();await U(`api/conversations${n?`?${n}`:``}`)}async function Ai(e=20,t=0,n,r){return z(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}${n?`&projectId=${encodeURIComponent(n)}`:``}${r?.unreadOnly?`&unreadOnly=1`:``}${r?.archivedOnly?`&archivedOnly=1`:``}&${d}=${r?.order??`updated`}`)}async function ji(e,t){await K(`api/conversations/${q(e)}/${q(t)}/read`,{})}async function Mi(e){return(await z(`api/conversations/${q(e)}/completions`)).conversationIds??[]}async function Ni(e){await U(`api/conversations/${q(e)}/complete`)}async function Pi(e,t){await U(`api/conversations/${q(e)}/${q(t)}/read`)}async function Fi(e,t){await K(`api/conversations/${q(e)}/${q(t)}/archive`,{})}async function Ii(e,t){await U(`api/conversations/${q(e)}/${q(t)}/archive`)}async function Li(e,t){return(await z(`api/conversations/${q(e)}/${q(t)}/sibling`)).hasSibling}async function Ri(e,t,n){await H(`api/conversations/${q(e)}/${q(t)}/title`,{title:n})}async function zi(e,t,n){await H(`api/conversations/${q(e)}/${q(t)}/model`,{model:n.model,modelProvider:n.modelProvider})}async function Bi(e){return z(`api/goals?conversationId=${encodeURIComponent(e)}`)}async function Vi(e){return B(`api/goals/${q(e)}/pause`,{})}async function Hi(e){return B(`api/goals/${q(e)}/resume`,{})}async function Ui(e){return B(`api/goals/${q(e)}/end`,{})}async function Wi(e,t){return z(`api/conversations/${q(e)}/${q(t)}/usage`)}async function Gi(e,t,n){let r=`context-breakdown-${e}-${t}`;return n?.forceRefresh&&Y.invalidate(r),Y.get(r,async()=>z(`api/conversations/${q(e)}/${q(t)}/context`),45e3)}async function Ki(e,t){return z(`api/conversations/${q(e)}/${q(t)}/context/tool-definitions`)}async function qi(){try{return await z(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function Ji(){return B(`api/update/apply`)}async function Yi(){return(await z(`api/ask-user/pending`)).questions??[]}async function Xi(e,t){await B(`api/ask-user/respond`,typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t})}async function Zi(e,t,n){await B(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId})}async function Qi(e,t){await B(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0})}async function $i(e,t){await B(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t})}async function ea(e,t){await B(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function ta(e,t){await B(`api/browser/action-result`,{toolCallId:e,result:t})}async function na(e){return z(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function ra(e,t,n){return V(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function ia(e,t){return U(`api/mcp/config/${q(t)}?projectPath=${encodeURIComponent(e)}`)}async function aa(e,t){return B(`api/mcp/discover`,{projectPath:e,serverName:t})}async function oa(){return(await z(`api/mcp/popular`)).servers??[]}async function sa(e,t){return B(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function ca(e,t){return z(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function la(e,t){return U(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function ua(e){return(await z(`api/projects/${q(e)}/ai-files`)).nodes??[]}async function da(e,t){return U(`api/projects/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function fa(e,t){return z(`api/projects/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function pa(e,t,n){return V(`api/projects/${q(e)}/ai-file`,{path:t,content:n})}async function ma(e,t,n){return V(`api/projects/${q(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function ha(e){return(await z(`api/threads/${q(e)}/ai-files`)).nodes??[]}async function ga(e,t,n){return V(`api/threads/${q(e)}/ai-file`,{path:t,content:n})}async function _a(e,t,n){return B(`api/threads/${q(e)}/ai-files/skill`,{name:t,description:n})}async function va(e,t,n){return V(`api/threads/${q(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function ya(e,t,n,r){return B(`api/threads/${q(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function ba(e,t){return U(`api/threads/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}export{En as $,le as $i,mr as $n,B as $r,ji as $t,hr as A,y as Ai,ga as An,qt as Ar,bn as At,Ur as B,Me as Bi,xn as Bn,Nt as Br,Ei as Bt,Di as C,Te as Ci,$r as Cn,Vt as Cr,fa as Ct,Dn as D,h as Di,fr as Dn,zt as Dr,yi as Dt,_a as E,xe as Ei,pa as En,Wt as Er,li as Et,ba as F,_ as Fi,dn as Fn,Ft as Fr,wi as Ft,Vr as G,se as Gi,Fn as Gn,ft as Gr,Ki as Gt,ei as H,te as Hi,Fr as Hn,xt as Hr,fi as Ht,Xr as I,_e as Ii,ma as In,It as Ir,pn as It,xr as J,We as Ji,Zi as Jn,q as Jr,ni as Jt,Mi as K,Ee as Ki,Xi as Kn,Y as Kr,Un as Kt,Wr as L,Ve as Li,Rn as Ln,Mt as Lr,Ln as Lt,Vn as M,ce as Mi,Dr as Mn,Kt as Mr,vn as Mt,Oi as N,he as Ni,Or as Nn,At as Nr,_n as Nt,oi as O,x as Oi,Cn as On,Gt as Or,dr as Ot,vr as P,Je as Pi,zi as Pn,Lt as Pr,Ai as Pt,Pr as Q,Ke as Qi,mi as Qn,H as Qr,qn as Qt,aa as R,ne as Ri,va as Rn,jt as Rr,Nn as Rt,Bn as S,oe as Si,ai as Sn,Ht as Sr,lr as St,ya as T,Ue as Ti,Gr as Tn,Pt as Tr,ur as Tt,Hr as U,Ce as Ui,gi as Un,Et as Ur,ha as Ut,Ui as V,Le as Vi,kr as Vn,Ut as Vr,kn as Vt,qr as W,ae as Wi,di as Wn,wt as Wr,ci as Wt,Zr as X,de as Xi,Ar as Xn,M as Xr,gr as Xt,_i as Y,g as Yi,$i as Yn,z as Yr,hn as Yt,br as Z,b as Zi,pi as Zn,R as Zr,vi as Zt,or as _,ye as _i,Ci as _n,en as _r,si as _t,qi as a,re as aa,it as ai,Vi as an,Rr as ar,Kn as at,cr as b,w as bi,la as bn,Qt as br,Jn as bt,jr as c,we as ca,Qe as ci,ti as cn,ri as cr,Wi as ct,er as d,Ae as di,ii as dn,tn as dr,Bi as dt,ge as ea,ct as ei,Tn as en,Ii as er,Mn as et,zn as f,E as fi,Ri as fn,rn as fr,An as ft,Qr as g,Se as gi,jn as gn,Yt as gr,bi as gt,Si as h,fe as hi,ea as hn,Xt as hr,Tr as ht,sa as i,He as ia,D as ii,Lr as in,Br as ir,wr as it,da as j,Ge as ji,Sr as jn,Ot as jr,yn as jt,ia as k,ue as ki,Sn as kn,Bt as kr,$n as kt,ki as l,O as li,Wn as ln,$t as lr,Zn as lt,Nr as m,m as mi,ta as mn,an as mr,ca as mt,Ji as n,v as na,at as ni,ir as nn,Hn as nr,Kr as nt,xi as o,Fe as oa,nt as oi,Mr as on,zr as or,Gi as ot,Ni as p,p as pi,pr as pn,Jt as pr,na as pt,Yi as q,Oe as qi,Qi as qn,U as qr,Li as qt,Fi as r,ve as ra,k as ri,Ir as rn,$ as rr,Gn as rt,mn as s,Ne as sa,Ze as si,In as sn,yr as sr,Er as st,X as t,Ye as ta,V as ti,rr as tn,Pi as tr,Jr as tt,Pn as u,rt as ui,On as un,nn as ur,Qn as ut,ar as v,Ie as vi,nr as vn,sn as vr,oa as vt,_r as w,De as wi,ra as wn,kt as wr,ua as wt,gn as x,ie as xi,ui as xn,Zt as xr,Yn as xt,tr as y,ee as yi,Hi as yn,on as yr,Xn as yt,Yr as z,Pe as zi,hi as zn,Rt as zr,Ti as zt};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{W as r,Wt as i}from"./dist-FJzwWcMv.js";import{t as a}from"./button-zYjzm__g.js";import{on as o}from"./api-CX0sFbpL.js";import{i as s,n as c,r as l,t as u}from"./card-CpchkvHM.js";var d=e(t(),1),f=n(),p=r(`app.async-error-boundary.ui`),m=class extends d.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){p.error(`AsyncErrorBoundary caught an error`,{error:e,info:t}),o({level:`ERROR`,context:`app.async-error-boundary.ui`,message:`AsyncErrorBoundary caught an error`,data:{message:e.message,stack:e.stack,componentStack:t.componentStack}})}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,f.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,f.jsxs)(u,{className:`max-w-md`,children:[(0,f.jsx)(l,{children:(0,f.jsx)(s,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,f.jsxs)(c,{className:`space-y-4`,children:[(0,f.jsx)(`p`,{className:i.body,children:e.message}),(0,f.jsx)(a,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{m as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{$ as r,tn as i}from"./dist-C99qsdM0.js";import{t as a}from"./button-BRUlmKU9.js";import{sn as o}from"./api-BPfzuuZQ.js";import{i as s,n as c,r as l,t as u}from"./card-m4ducAvD.js";var d=e(t(),1),f=n(),p=r(`app.async-error-boundary.ui`),m=class extends d.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){p.error(`AsyncErrorBoundary caught an error`,{error:e,info:t}),o({level:`ERROR`,context:`app.async-error-boundary.ui`,message:`AsyncErrorBoundary caught an error`,data:{message:e.message,stack:e.stack,componentStack:t.componentStack}})}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,f.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,f.jsxs)(u,{className:`max-w-md`,children:[(0,f.jsx)(l,{children:(0,f.jsx)(s,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,f.jsxs)(c,{className:`space-y-4`,children:[(0,f.jsx)(`p`,{className:i.body,children:e.message}),(0,f.jsx)(a,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{m as t};
@@ -0,0 +1,12 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{$ as i,tn as a}from"./dist-C99qsdM0.js";import{n as o,nt as s,r as c}from"./store-HOyKbtQR.js";import{t as l}from"./utils-DIi62oP7.js";import{$ as u,Dn as d,En as f,P as p,S as m,Zt as h,h as g,l as _,tt as v}from"./lucide-react-DW-FYOQd.js";import{t as y}from"./button-BRUlmKU9.js";import{i as b,n as x,r as S,t as C}from"./tooltip-C0Zn4uFr.js";import{en as w,pn as T,ri as E}from"./api-BPfzuuZQ.js";import{i as D,r as O}from"./browser-overlay-block-CiDtkfup.js";import{n as k}from"./chat-dock-context-Br2lSNOf.js";import{t as A}from"./use-toast-xpb5jNtN.js";import{A as j,C as M,D as N,E as P,G as F,Ir as I,M as L,O as R,S as z,T as B,V,en as H,k as U,l as W,nn as G,tn as K,u as q,un as J,w as ee}from"./index-CU6xcKiy.js";import{t as Y}from"./use-active-dock-panel-instance-CKfR28OB.js";var X=e(n(),1),Z=t();async function te(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=T}=e;if(n===r)return{kind:`unchanged`};try{let e=await a(t,n,r);if(e.applied&&e.path)return{kind:`replaced`,path:e.path}}catch{}return{kind:`prompt`,prompt:B(i,n,r)}}var Q=r();function ne(e){let t=(0,Z.c)(43),{onCommit:n,onCancelPreview:r}=e,i=o(),a=c(ae),l=c(ie),u=c(re),d;t[0]===a?d=t[1]:(d=e=>a?e.projectModelSelections[a]:void 0,t[0]=a,t[1]=d);let f=c(d),{selectedBrowserElement:p,setSelectedBrowserElement:m,setIsEditModeEnabled:h,setBrowserAgentProcessingThreadId:g}=L(),{handleSend:_}=K(),{paneId:v,conversationId:b}=H(),[x,S]=(0,X.useState)(!1),C;if(t[2]!==u||t[3]!==l){let e;t[5]===l?e=t[6]:(e=e=>e.projectId===l,t[5]=l,t[6]=e),C=u.find(e),t[2]=u,t[3]=l,t[4]=C}else C=t[4];let w=C,T;t[7]===p?T=t[8]:(T=N(p),t[7]=p,t[8]=T);let E=T,D;t[9]!==h||t[10]!==m?(D=()=>{S(!1),h(!1),m(null)},t[9]=h,t[10]=m,t[11]=D):D=t[11];let O=D,k;t[12]!==b||t[13]!==i||t[14]!==O||t[15]!==_||t[16]!==v||t[17]!==w?.lastSelectedModel||t[18]!==w?.lastSelectedModelProvider||t[19]!==l||t[20]!==a||t[21]!==g||t[22]!==f?.id||t[23]!==f?.provider?(k=async e=>{if(!l){A({title:`No project selected`,description:`Open a project to apply text edits.`,variant:`destructive`}),O();return}S(!0);let t=await te({projectId:l,oldText:e.originalText,newText:e.currentText,selection:e.selection});if(t.kind===`unchanged`){A({title:`No text changes detected`}),O();return}if(t.kind===`replaced`){A({title:`Text updated`,description:`Replaced in ${t.path}`}),O();return}let n=f?.id??w?.lastSelectedModel,r=f?.provider??w?.lastSelectedModelProvider;if(!a||!n){A({title:`Could not apply text change`,description:`Select a chat thread and model to send this change as a prompt.`,variant:`destructive`}),S(!1);return}_(v,b,t.prompt,n,[],r),i({type:s.SetChatInputDraft,threadId:v===`primary`?a:`${a}:${v}`,draft:``}),g(a),O()},t[12]=b,t[13]=i,t[14]=O,t[15]=_,t[16]=v,t[17]=w?.lastSelectedModel,t[18]=w?.lastSelectedModelProvider,t[19]=l,t[20]=a,t[21]=g,t[22]=f?.id,t[23]=f?.provider,t[24]=k):k=t[24],w?.lastSelectedModel,w?.lastSelectedModelProvider,f?.id,f?.provider;let j=k,M,F;t[25]===E?(M=t[26],F=t[27]):(M=()=>{E||S(!1)},F=[E],t[25]=E,t[26]=M,t[27]=F),(0,X.useEffect)(M,F);let I,B;t[28]===j?(I=t[29],B=t[30]):(I=()=>{let e=function(e){let t=e.detail;P(t)&&j(t)},t=function(e){let t=R(e.data);t&&j(t)};return window.addEventListener(z,e),window.addEventListener(`message`,t),function(){window.removeEventListener(z,e),window.removeEventListener(`message`,t)}},B=[j],t[28]=j,t[29]=I,t[30]=B),(0,X.useEffect)(I,B);let V;t[31]!==O||t[32]!==r?(V=function(){r(),O()},t[31]=O,t[32]=r,t[33]=V):V=t[33];let U=V;if(!E)return null;let W;t[34]!==x||t[35]!==n?(W=(0,Q.jsx)(y,{type:`button`,size:`sm`,onClick:n,disabled:x,children:`Apply Changes`}),t[34]=x,t[35]=n,t[36]=W):W=t[36];let G;t[37]!==U||t[38]!==x?(G=(0,Q.jsx)(y,{type:`button`,size:`sm`,variant:`outline`,onClick:U,disabled:x,children:`Cancel`}),t[37]=U,t[38]=x,t[39]=G):G=t[39];let q;return t[40]!==W||t[41]!==G?(q=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[W,G]}),t[40]=W,t[41]=G,t[42]=q):q=t[42],q}function re(e){return e.projects}function ie(e){return e.selectedProjectId}function ae(e){return e.selectedThreadId}function oe(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function se(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}var ce=`tarsk-browser-page-title`;function le(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 ue(e){let t=le(e);if(!t||t.type!==ce)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function de(e){return ue(e)}function fe(e){return!e?.trim()}function pe(e,t){return fe(t)?e:t.trim()}function me(e){return e?e.querySelector(`electrobun-webview`):null}function he(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function ge(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function _e(e,t){if(t){ge(e);return}he(e)}function ve(e){return e!=null&&e.getClientRects().length>0}function ye(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),_e(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function be(e){let t=(0,Z.c)(8),{useNativeWebview:n,shouldRenderNativeWebview:r,currentUrl:i,resolveWebview:a}=e,[o,s]=(0,X.useState)(r),c;t[0]!==a||t[1]!==r||t[2]!==n?(c=()=>{if(!n)return;if(r){s(!0);return}let e=a();e&&he(e);let t=requestAnimationFrame(()=>{s(!1)});return function(){cancelAnimationFrame(t)}},t[0]=a,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l;return t[4]!==i||t[5]!==r||t[6]!==n?(l=[r,n,i],t[4]=i,t[5]=r,t[6]=n,t[7]=l):l=t[7],(0,X.useLayoutEffect)(c,l),o}var xe=i(`browser.preview-scripting`);function Se(e,t=!1,n=`select`){return`(function () {
2
+ const api = window.__tarskBrowserPreview;
3
+ if (!api || typeof api.setSelectMode !== "function") {
4
+ log.error("[browser-preview] selection API is not available");
5
+ return;
6
+ }
7
+ api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`}, ${JSON.stringify(n)});
8
+ })();`}function Ce(e){let t=e===`commit`?`commitTextEdit`:`cancelTextEdit`;return`(function () {
9
+ const api = window.__tarskBrowserPreview;
10
+ if (!api || typeof api.${t} !== "function") return;
11
+ api.${t}();
12
+ })();`}function we(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(Se(t,n,r))}catch(i){throw xe.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,interaction:r,src:e.src,webview_id:e.webviewId,error:i instanceof Error?i.message:String(i),stack:i instanceof Error?i.stack:void 0}),i}}function Te(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function Ee(e,t,n=!1,r=`select`){let i=e.contentWindow;if(!i)throw Error(`Browser preview frame is not ready`);let a=i.__tarskBrowserPreview;if(!a?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);a.setSelectMode(t,n,r)}function De(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){xe.warn(`[browser-preview] Preview text-edit API unavailable; action ignored`,{action:t,src:e.src});return}if(t===`commit`){n.commitTextEdit?.();return}n.cancelTextEdit?.()}var Oe=i(`app.browser-tab.ui`),ke=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]),Ae=new Set([`INPUT`,`TEXTAREA`,`SELECT`]),je=new Set([`combobox`,`listbox`,`menu`,`menubar`,`menuitem`,`option`,`radiogroup`,`tablist`,`tab`,`grid`,`slider`,`spinbutton`]);function Me(e){if(Ae.has(e.tagName)||e.isContentEditable)return!0;let t=e.getAttribute(`role`);return t!==null&&je.has(t)}function Ne(e){return e instanceof HTMLElement&&Me(e)}function Pe(e,t,n){let[r,i]=(0,X.useState)(!0),a=(0,X.useSyncExternalStore)(q,W),o=(0,X.useSyncExternalStore)(D,O),s=t&&(r&&!o||a),c=(0,X.useRef)(s);c.current=s;let l=(0,X.useCallback)(function(){return c.current},[]),u=(0,X.useCallback)(function(){i(ve(e.current))},[]);return(0,X.useLayoutEffect)(u),(0,X.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(u);return n.observe(t),function(){n.disconnect()}},[u,n]),{shouldShowWebview:s,readWebviewVisibility:l}}function Fe({devServerUrl:e,devServerStopped:t,isBrowserActive:n,currentUrl:r,browserResetTrigger:i,webviewRef:a,iframeRef:o,setCurrentUrl:s,setPendingUrl:c,setInputUrl:l,setSelectionModeError:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectedBrowserElement:p,setIsSelectionPromptOpen:m,setBrowserAgentProcessingThreadId:h,setBrowserPageTitle:g}){let _=(0,X.useRef)(r),v=(0,X.useRef)(null);_.current=r,(0,X.useEffect)(()=>{s(``),c(``),l(``),u(null),g(null),d(!1),f(!1),p(null),m(!1),h(null);let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``)},[i,h,g,d,f,m,p]),(0,X.useEffect)(()=>{if(t&&!e){s(``),c(``),l(``),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null));let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``);return}if(!e)return;let r=oe(e);l(r),(!_.current||_.current===v.current)&&(s(r),c(r),v.current=r),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null))},[e,t,n,h,d,f,m,p])}function Ie(e,t,n,r){let i=(0,Z.c)(9),a;i[0]!==n||i[1]!==e||i[2]!==r||i[3]!==t?(a=()=>{if(!e||!t)return;let i=function(e){ke.has(e.key)&&(Ne(e.target)||r.current?.contains(e.target)||(e.preventDefault(),n()))};return document.addEventListener(`keydown`,i,!0),function(){document.removeEventListener(`keydown`,i,!0)}},i[0]=n,i[1]=e,i[2]=r,i[3]=t,i[4]=a):a=i[4];let o;i[5]!==n||i[6]!==e||i[7]!==t?(o=[e,t,n],i[5]=n,i[6]=e,i[7]=t,i[8]=o):o=i[8],(0,X.useEffect)(a,o)}function Le(e){let t=(0,Z.c)(15),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,resolveWebview:a,setCurrentUrl:o,setPendingUrl:s,setInputUrl:c,setSelectionModeError:l,setBrowserPageTitle:u}=e,d;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==u||t[4]!==o||t[5]!==c||t[6]!==s||t[7]!==l||t[8]!==n?(d=()=>{let e=a();if(!n||!e||!r)return;let t=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),s(``),c(t))},d=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),c(t))},f=function(e){let t=se(e.detail);t&&w(t)},p=function(e){let t=de(e.detail);if(t!=null){u(e=>pe(e,t));return}let n=j(e.detail);if(n){ee(n);return}let r=U(e.detail);r&&(l(null),M(r))};return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,d),e.on(`new-window-open`,f),e.on(`host-message`,p),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,d),e.off(`new-window-open`,f),e.off(`host-message`,p)}},t[0]=i,t[1]=r,t[2]=a,t[3]=u,t[4]=o,t[5]=c,t[6]=s,t[7]=l,t[8]=n,t[9]=d):d=t[9];let f;t[10]!==i||t[11]!==r||t[12]!==u||t[13]!==n?(f=[i,n,r,u],t[10]=i,t[11]=r,t[12]=u,t[13]=n,t[14]=f):f=t[14],(0,X.useEffect)(d,f)}function Re(e){let t=(0,Z.c)(23),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,deviceMode:a,shouldShowWebview:o,pendingUrl:s,readWebviewVisibility:c,resolveWebview:l}=e,u;t[0]!==r||t[1]!==l||t[2]!==o||t[3]!==n?(u=()=>{if(!n||!r)return;let e=l();!e||e.webviewId==null||_e(e,o)},t[0]=r,t[1]=l,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==r||t[8]!==o||t[9]!==n?(d=[r,n,i,a,o],t[5]=i,t[6]=a,t[7]=r,t[8]=o,t[9]=n,t[10]=d):d=t[10],(0,X.useLayoutEffect)(u,d);let f;t[11]!==r||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==n?(f=()=>{let e=l();if(!(!n||!e||!s||!r))return ye(e,s,c)},t[11]=r,t[12]=s,t[13]=c,t[14]=l,t[15]=n,t[16]=f):f=t[16];let p;t[17]!==i||t[18]!==r||t[19]!==s||t[20]!==c||t[21]!==n?(p=[s,n,i,r,c],t[17]=i,t[18]=r,t[19]=s,t[20]=c,t[21]=n,t[22]=p):p=t[22],(0,X.useEffect)(f,p)}function ze(e){let t=(0,Z.c)(23),{isBrowserActive:n,currentUrl:r,isSelectModeEnabled:i,isEditModeEnabled:a,isSelectionPromptOpen:o,nativeWebviewMounted:s,useNativeWebview:c,resolveWebview:l,iframeRef:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectionModeError:p}=e,m;t[0]!==r||t[1]!==u||t[2]!==n||t[3]!==a||t[4]!==i||t[5]!==o||t[6]!==s||t[7]!==l||t[8]!==f||t[9]!==d||t[10]!==p||t[11]!==c?(m=()=>{if(!n)return;if(!r){i&&d(!1),a&&f(!1);return}let e=!1,t=i||a,m=a?`edit`:`select`,h=!t&&o;return(function(){try{if(c){let e=l();if(!e||e.webviewId==null||!s)return;we(e,t,h,m);return}let e=u.current;if(!e)return;Ee(e,t,h,m)}catch(n){let r=n;if(e||!t)return;let i=r instanceof Error?r.message:`Could not enable element selection.`;Oe.error(`Failed to toggle browser selection mode:`,r),p(i),d(!1),f(!1),A({title:`Selection mode unavailable`,description:i,variant:`destructive`})}})(),function(){e=!0}},t[0]=r,t[1]=u,t[2]=n,t[3]=a,t[4]=i,t[5]=o,t[6]=s,t[7]=l,t[8]=f,t[9]=d,t[10]=p,t[11]=c,t[12]=m):m=t[12];let h;t[13]!==r||t[14]!==n||t[15]!==a||t[16]!==i||t[17]!==o||t[18]!==s||t[19]!==f||t[20]!==d||t[21]!==c?(h=[r,n,a,i,o,s,f,d,c],t[13]=r,t[14]=n,t[15]=a,t[16]=i,t[17]=o,t[18]=s,t[19]=f,t[20]=d,t[21]=c,t[22]=h):h=t[22],(0,X.useEffect)(m,h)}function Be(e,t){let n=(0,Z.c)(8),r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!e)return;let n=function(e){let n=ue(e.data);n!=null&&t(e=>pe(e,n))};return window.addEventListener(`message`,n),function(){window.removeEventListener(`message`,n)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),(0,X.useEffect)(r,i);let a,o;n[4]!==e||n[5]!==t?(a=()=>{if(e)return function(){t(null)}},o=[e,t],n[4]=e,n[5]=t,n[6]=a,n[7]=o):(a=n[6],o=n[7]),(0,X.useEffect)(a,o)}function Ve(e){let t=(0,Z.c)(24),n=Y(e,`browser`),{devServerUrl:r,devServerStopped:i}=F(),{browserResetTrigger:a,setBrowserPageTitle:o,browserDeviceMode:s,setBrowserDeviceMode:l,isSelectModeEnabled:u,setIsSelectModeEnabled:d,isEditModeEnabled:f,setIsEditModeEnabled:p,selectedBrowserElement:m,setSelectedBrowserElement:h,setIsSelectionPromptOpen:g,isSelectionPromptOpen:_,setBrowserAgentProcessingThreadId:v}=L(),y=c(Ue),b=c(He),x;if(t[0]!==b||t[1]!==y){let e;t[3]===y?e=t[4]:(e=e=>e.projectId===y,t[3]=y,t[4]=e),x=b.find(e),t[0]=b,t[1]=y,t[2]=x}else x=t[2];let S=x,C;return t[5]!==s||t[6]!==a||t[7]!==i||t[8]!==r||t[9]!==n||t[10]!==f||t[11]!==u||t[12]!==_||t[13]!==m||t[14]!==S||t[15]!==y||t[16]!==v||t[17]!==l||t[18]!==o||t[19]!==p||t[20]!==d||t[21]!==g||t[22]!==h?(C={isBrowserActive:n,devServerUrl:r,devServerStopped:i,browserResetTrigger:a,setBrowserPageTitle:o,browserDeviceMode:s,setBrowserDeviceMode:l,isSelectModeEnabled:u,setIsSelectModeEnabled:d,isEditModeEnabled:f,setIsEditModeEnabled:p,selectedBrowserElement:m,setSelectedBrowserElement:h,setIsSelectionPromptOpen:g,isSelectionPromptOpen:_,setBrowserAgentProcessingThreadId:v,selectedProjectId:y,selectedProject:S},t[5]=s,t[6]=a,t[7]=i,t[8]=r,t[9]=n,t[10]=f,t[11]=u,t[12]=_,t[13]=m,t[14]=S,t[15]=y,t[16]=v,t[17]=l,t[18]=o,t[19]=p,t[20]=d,t[21]=g,t[22]=h,t[23]=C):C=t[23],C}function He(e){return e.projects}function Ue(e){return e.selectedProjectId}function We(e){let t=(0,Z.c)(33),n=Ve(e),r=Je(n),i=n.selectedProject?.runCommand,a;t[0]!==n.isEditModeEnabled||t[1]!==n.selectedBrowserElement?(a=n.isEditModeEnabled||N(n.selectedBrowserElement),t[0]=n.isEditModeEnabled,t[1]=n.selectedBrowserElement,t[2]=a):a=t[2];let o=n.isSelectModeEnabled||n.isEditModeEnabled,s;t[3]===r.currentUrl?s=t[4]:(s=()=>void w(r.currentUrl),t[3]=r.currentUrl,t[4]=s);let c;return t[5]!==r.currentUrl||t[6]!==r.deviceMode||t[7]!==r.handleWebviewRef||t[8]!==r.iframeRef||t[9]!==r.inputUrl||t[10]!==r.nativeWebviewMounted||t[11]!==r.previewActions.goBack||t[12]!==r.previewActions.goForward||t[13]!==r.previewActions.handleKeyDown||t[14]!==r.previewActions.refresh||t[15]!==r.previewActions.runPreviewTextEdit||t[16]!==r.previewActions.toggleEditMode||t[17]!==r.previewActions.toggleSelectMode||t[18]!==r.previewActions.updateDeviceMode||t[19]!==r.previewContainerRef||t[20]!==r.previewRpcPreload||t[21]!==r.selectionModeError||t[22]!==r.setInputUrl||t[23]!==r.useNativeWebview||t[24]!==n.devServerStopped||t[25]!==n.isBrowserActive||t[26]!==n.isSelectModeEnabled||t[27]!==n.selectedProjectId||t[28]!==i||t[29]!==a||t[30]!==o||t[31]!==s?(c={isBrowserActive:n.isBrowserActive,devServerStopped:n.devServerStopped,selectedProjectId:n.selectedProjectId,runCommand:i,currentUrl:r.currentUrl,inputUrl:r.inputUrl,setInputUrl:r.setInputUrl,handleKeyDown:r.previewActions.handleKeyDown,deviceMode:r.deviceMode,updateDeviceMode:r.previewActions.updateDeviceMode,selectionModeError:r.selectionModeError,isSelectModeEnabled:n.isSelectModeEnabled,isEditModeActive:a,isSurfaceSelectInteraction:o,toggleSelectMode:r.previewActions.toggleSelectMode,toggleEditMode:r.previewActions.toggleEditMode,refresh:r.previewActions.refresh,goBack:r.previewActions.goBack,goForward:r.previewActions.goForward,openExternal:s,runPreviewTextEdit:r.previewActions.runPreviewTextEdit,previewContainerRef:r.previewContainerRef,iframeRef:r.iframeRef,handleWebviewRef:r.handleWebviewRef,useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,previewRpcPreload:r.previewRpcPreload},t[5]=r.currentUrl,t[6]=r.deviceMode,t[7]=r.handleWebviewRef,t[8]=r.iframeRef,t[9]=r.inputUrl,t[10]=r.nativeWebviewMounted,t[11]=r.previewActions.goBack,t[12]=r.previewActions.goForward,t[13]=r.previewActions.handleKeyDown,t[14]=r.previewActions.refresh,t[15]=r.previewActions.runPreviewTextEdit,t[16]=r.previewActions.toggleEditMode,t[17]=r.previewActions.toggleSelectMode,t[18]=r.previewActions.updateDeviceMode,t[19]=r.previewContainerRef,t[20]=r.previewRpcPreload,t[21]=r.selectionModeError,t[22]=r.setInputUrl,t[23]=r.useNativeWebview,t[24]=n.devServerStopped,t[25]=n.isBrowserActive,t[26]=n.isSelectModeEnabled,t[27]=n.selectedProjectId,t[28]=i,t[29]=a,t[30]=o,t[31]=s,t[32]=c):c=t[32],c}function Ge(e,t,n){return(0,X.useCallback)(function(){if(e){t()?.focus();return}n.current?.contentWindow?.focus()},[e])}function Ke(e,t,n){return(0,X.useCallback)(function(r){e.current=r,r&&ye(r,t.current,n)},[n])}function qe(e){let[t,n]=(0,X.useState)(``),[r,i]=(0,X.useState)(``),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(e),[l,u]=(0,X.useState)(null),d=(0,X.useRef)(null),f=(0,X.useRef)(a),p=(0,X.useRef)(null),m=(0,X.useRef)(null);return f.current=a,(0,X.useEffect)(()=>{c(e)},[e]),{inputUrl:t,setInputUrl:n,currentUrl:r,setCurrentUrl:i,pendingUrl:a,setPendingUrl:o,deviceMode:s,setDeviceMode:c,selectionModeError:l,setSelectionModeError:u,webviewRef:d,pendingUrlRef:f,iframeRef:p,previewContainerRef:m}}function Je(e){let t=(0,Z.c)(82),{isBrowserActive:n,devServerUrl:r,devServerStopped:i,browserResetTrigger:a,setBrowserPageTitle:o,browserDeviceMode:s,setBrowserDeviceMode:c,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=e,{inputUrl:v,setInputUrl:y,currentUrl:b,setCurrentUrl:x,pendingUrl:S,setPendingUrl:C,deviceMode:w,setDeviceMode:T,selectionModeError:D,setSelectionModeError:O,webviewRef:k,pendingUrlRef:A,iframeRef:j,previewContainerRef:M}=qe(s),N;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(N=E(),t[0]=N):N=t[0];let P=N,F;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(F=G(),t[1]=F):F=t[1];let I=F,L=P&&!!b,R;t[2]!==M||t[3]!==k?(R=function(){return k.current??me(M.current)},t[2]=M,t[3]=k,t[4]=R):R=t[4];let z=R,{shouldShowWebview:B,readWebviewVisibility:V}=Pe(M,n,b),H;t[5]!==b||t[6]!==z||t[7]!==L?(H={useNativeWebview:P,shouldRenderNativeWebview:L,currentUrl:b,resolveWebview:z},t[5]=b,t[6]=z,t[7]=L,t[8]=H):H=t[8];let U=be(H),W;t[9]!==a||t[10]!==b||t[11]!==i||t[12]!==r||t[13]!==j||t[14]!==n||t[15]!==_||t[16]!==o||t[17]!==x||t[18]!==y||t[19]!==f||t[20]!==u||t[21]!==h||t[22]!==C||t[23]!==m||t[24]!==O||t[25]!==k?(W={devServerUrl:r,devServerStopped:i,isBrowserActive:n,currentUrl:b,browserResetTrigger:a,webviewRef:k,iframeRef:j,setCurrentUrl:x,setPendingUrl:C,setInputUrl:y,setSelectionModeError:O,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setBrowserAgentProcessingThreadId:_,setBrowserPageTitle:o},t[9]=a,t[10]=b,t[11]=i,t[12]=r,t[13]=j,t[14]=n,t[15]=_,t[16]=o,t[17]=x,t[18]=y,t[19]=f,t[20]=u,t[21]=h,t[22]=C,t[23]=m,t[24]=O,t[25]=k,t[26]=W):W=t[26],Fe(W),Ie(n,P,Ge(P,z,j),M);let K;t[27]!==b||t[28]!==U||t[29]!==z||t[30]!==o||t[31]!==x||t[32]!==y||t[33]!==C||t[34]!==O?(K={useNativeWebview:P,nativeWebviewMounted:U,currentUrl:b,resolveWebview:z,setCurrentUrl:x,setPendingUrl:C,setInputUrl:y,setSelectionModeError:O,setBrowserPageTitle:o},t[27]=b,t[28]=U,t[29]=z,t[30]=o,t[31]=x,t[32]=y,t[33]=C,t[34]=O,t[35]=K):K=t[35],Le(K),Be(n,o);let q;t[36]!==b||t[37]!==w||t[38]!==U||t[39]!==S||t[40]!==V||t[41]!==z||t[42]!==B?(q={useNativeWebview:P,nativeWebviewMounted:U,currentUrl:b,deviceMode:w,shouldShowWebview:B,pendingUrl:S,readWebviewVisibility:V,resolveWebview:z},t[36]=b,t[37]=w,t[38]=U,t[39]=S,t[40]=V,t[41]=z,t[42]=B,t[43]=q):q=t[43],Re(q);let J;t[44]!==b||t[45]!==j||t[46]!==n||t[47]!==d||t[48]!==l||t[49]!==g||t[50]!==U||t[51]!==z||t[52]!==f||t[53]!==u||t[54]!==O?(J={isBrowserActive:n,currentUrl:b,isSelectModeEnabled:l,isEditModeEnabled:d,isSelectionPromptOpen:g,nativeWebviewMounted:U,useNativeWebview:P,resolveWebview:z,iframeRef:j,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectionModeError:O},t[44]=b,t[45]=j,t[46]=n,t[47]=d,t[48]=l,t[49]=g,t[50]=U,t[51]=z,t[52]=f,t[53]=u,t[54]=O,t[55]=J):J=t[55],ze(J);let ee=Ke(k,A,V),Y;t[56]!==j||t[57]!==v||t[58]!==z||t[59]!==p||t[60]!==c||t[61]!==x||t[62]!==T||t[63]!==y||t[64]!==f||t[65]!==u||t[66]!==h||t[67]!==C||t[68]!==m||t[69]!==O?(Y={useNativeWebview:P,inputUrl:v,selectedBrowserElement:p,resolveWebview:z,iframeRef:j,setDeviceMode:T,setBrowserDeviceMode:c,setSelectionModeError:O,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setInputUrl:y,setCurrentUrl:x,setPendingUrl:C},t[56]=j,t[57]=v,t[58]=z,t[59]=p,t[60]=c,t[61]=x,t[62]=T,t[63]=y,t[64]=f,t[65]=u,t[66]=h,t[67]=C,t[68]=m,t[69]=O,t[70]=Y):Y=t[70];let X=Ye(Y),te;return t[71]!==b||t[72]!==w||t[73]!==ee||t[74]!==j||t[75]!==v||t[76]!==U||t[77]!==X||t[78]!==M||t[79]!==D||t[80]!==y?(te={currentUrl:b,inputUrl:v,setInputUrl:y,deviceMode:w,selectionModeError:D,previewContainerRef:M,iframeRef:j,handleWebviewRef:ee,useNativeWebview:P,nativeWebviewMounted:U,previewRpcPreload:I,previewActions:X},t[71]=b,t[72]=w,t[73]=ee,t[74]=j,t[75]=v,t[76]=U,t[77]=X,t[78]=M,t[79]=D,t[80]=y,t[81]=te):te=t[81],te}function Ye({useNativeWebview:e,inputUrl:t,selectedBrowserElement:n,resolveWebview:r,iframeRef:i,setDeviceMode:a,setBrowserDeviceMode:o,setSelectionModeError:s,setIsSelectModeEnabled:c,setIsEditModeEnabled:l,setSelectedBrowserElement:u,setIsSelectionPromptOpen:d,setInputUrl:f,setCurrentUrl:p,setPendingUrl:m}){function h(e){a(e),o(e)}function g(){s(null),c(!1),l(!1),u(null),d(!1)}function _(t){try{if(e){let e=r();if(!e)return;Te(e,Ce(t));return}let n=i.current;if(!n)return;De(n,t)}catch(e){Oe.error(`Failed to run preview text edit action:`,e)}}function v(e){let t=oe(e);t&&(f(t),p(t),m(t),g())}function y(e){e.key===`Enter`&&v(t)}function b(){if(g(),e){let e=r();e&&e.reload();return}let t=i.current;if(!t)return;let n=t.src;t.src=``,requestAnimationFrame(()=>{t.src=n})}function x(){if(g(),e){let e=r();e&&e.executeJavascript(`history.back()`);return}C(-1)}function S(){if(g(),e){let e=r();e&&e.executeJavascript(`history.forward()`);return}C(1)}function C(e){let t=i.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function w(){s(null),l(!1),N(n)&&(_(`cancel`),u(null)),c(e=>!e)}function T(){if(s(null),c(!1),d(!1),N(n)){_(`cancel`),u(null),l(!1);return}l(e=>!e)}return{handleKeyDown:y,updateDeviceMode:h,toggleSelectMode:w,toggleEditMode:T,refresh:b,goBack:x,goForward:S,runPreviewTextEdit:_}}var Xe={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function Ze(e){let t=(0,Z.c)(7),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,previewRpcPreload:a,handleWebviewRef:o,iframeRef:s}=e;if(n){if(!r)return null;let e;return t[0]!==i||t[1]!==o||t[2]!==a?(e=(0,X.createElement)(`electrobun-webview`,{ref:o,src:i,preload:a,renderer:`native`,className:`block h-full w-full bg-background`}),t[0]=i,t[1]=o,t[2]=a,t[3]=e):e=t[3],e}let c;return t[4]!==i||t[5]!==s?(c=(0,Q.jsx)(`iframe`,{ref:s,src:i,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`}),t[4]=i,t[5]=s,t[6]=c):c=t[6],c}function Qe(e){let t=(0,Z.c)(18),{selectionModeError:n,isSelectModeEnabled:r,deviceMode:i,currentDeviceConfig:a,previewContainerRef:o,children:s}=e,c;t[0]===n?c=t[1]:(c=n&&(0,Q.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,n]}),t[0]=n,t[1]=c);let u=r&&`cursor-crosshair`,d;t[2]===u?d=t[3]:(d=l(`flex min-h-0 flex-1 items-center justify-center bg-background`,u),t[2]=u,t[3]=d);let f=`overflow-hidden border border-border bg-background shadow-sm ${i===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,p;t[4]!==a.height||t[5]!==a.width?(p={width:a.width,height:a.height,maxWidth:`100%`,maxHeight:`100%`},t[4]=a.height,t[5]=a.width,t[6]=p):p=t[6];let m;t[7]!==s||t[8]!==f||t[9]!==p?(m=(0,Q.jsx)(`div`,{className:f,style:p,children:s}),t[7]=s,t[8]=f,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==o||t[12]!==d||t[13]!==m?(h=(0,Q.jsx)(`div`,{ref:o,className:d,children:m}),t[11]=o,t[12]=d,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==c||t[16]!==h?(g=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[c,h]}),t[15]=c,t[16]=h,t[17]=g):g=t[17],g}function $e(e){let t=(0,Z.c)(3),{previewContainerRef:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,Q.jsx)(`div`,{className:`hidden`,"aria-hidden":`true`,children:(0,Q.jsx)(`div`,{ref:n,children:r})}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function $(e){let t=(0,Z.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a===void 0?!1:a,u=o===void 0?!1:o,d=s===void 0?`elevated`:s,f=u&&`cursor-not-allowed text-muted-foreground/50`,p=!u&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,m=!u&&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)]`,h=!u&&c&&d===`elevated`&&`bg-background text-foreground shadow-sm`,g;t[0]!==f||t[1]!==p||t[2]!==m||t[3]!==h?(g=l(`rounded p-1.5 transition-all`,f,p,m,h),t[0]=f,t[1]=p,t[2]=m,t[3]=h,t[4]=g):g=t[4];let _;t[5]!==i||t[6]!==u||t[7]!==c||t[8]!==n||t[9]!==g?(_=(0,Q.jsx)(b,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,onClick:n,disabled:u,"aria-pressed":c,className:g,children:i})}),t[5]=i,t[6]=u,t[7]=c,t[8]=n,t[9]=g,t[10]=_):_=t[10];let v;t[11]===r?v=t[12]:(v=(0,Q.jsx)(x,{children:r}),t[11]=r,t[12]=v);let y;return t[13]!==v||t[14]!==_?(y=(0,Q.jsxs)(C,{children:[_,v]}),t[13]=v,t[14]=_,t[15]=y):y=t[15],y}function et(e){let t=(0,Z.c)(43),{controller:n,urlInputRef:r}=e,{currentUrl:i,inputUrl:a,setInputUrl:o,handleKeyDown:s,goBack:c,goForward:y,refresh:b,toggleSelectMode:x,toggleEditMode:S,openExternal:C,updateDeviceMode:w,selectionModeError:T,isSelectModeEnabled:E,isEditModeActive:D,deviceMode:O}=n,k;t[0]!==i||t[1]!==c?(k=i&&(0,Q.jsx)($,{onClick:c,label:`Back`,children:(0,Q.jsx)(d,{size:15})}),t[0]=i,t[1]=c,t[2]=k):k=t[2];let A;t[3]!==i||t[4]!==y?(A=i&&(0,Q.jsx)($,{onClick:y,label:`Forward`,children:(0,Q.jsx)(f,{size:15})}),t[3]=i,t[4]=y,t[5]=A):A=t[5];let j;t[6]===o?j=t[7]:(j=e=>o(e.target.value),t[6]=o,t[7]=j);let M;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(M=l(`flex-1 rounded-full bg-muted font-mono`),t[8]=M):M=t[8];let N;t[9]!==s||t[10]!==a||t[11]!==j||t[12]!==r?(N=(0,Q.jsx)(I,{ref:r,type:`text`,value:a,onChange:j,onKeyDown:s,placeholder:`Enter URL...`,className:M,spellCheck:!1}),t[9]=s,t[10]=a,t[11]=j,t[12]=r,t[13]=N):N=t[13];let P;t[14]!==i||t[15]!==b?(P=i&&(0,Q.jsx)($,{onClick:b,label:`Refresh page`,children:(0,Q.jsx)(p,{size:15})}),t[14]=i,t[15]=b,t[16]=P):P=t[16];let F;t[17]!==i||t[18]!==E||t[19]!==T||t[20]!==x?(F=i&&(0,Q.jsx)($,{onClick:x,label:T?`Select element unavailable: ${T}`:E?`Exit element selection`:`Select element from preview`,isActive:E,activeStyle:`depressed`,children:(0,Q.jsx)(u,{size:15})}),t[17]=i,t[18]=E,t[19]=T,t[20]=x,t[21]=F):F=t[21];let L;t[22]!==i||t[23]!==D||t[24]!==T||t[25]!==S?(L=i&&(0,Q.jsx)($,{onClick:S,label:T?`Edit text unavailable: ${T}`:D?`Exit text editing`:`Edit text from preview`,isActive:D,activeStyle:`depressed`,children:(0,Q.jsx)(_,{size:15})}),t[22]=i,t[23]=D,t[24]=T,t[25]=S,t[26]=L):L=t[26];let R;t[27]!==i||t[28]!==O||t[29]!==w?(R=i&&(0,Q.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,Q.jsx)($,{onClick:()=>w(`desktop`),label:`Desktop view`,isActive:O===`desktop`,children:(0,Q.jsx)(v,{size:15})}),(0,Q.jsx)($,{onClick:()=>w(`tablet`),label:`Tablet view`,isActive:O===`tablet`,children:(0,Q.jsx)(g,{size:15})}),(0,Q.jsx)($,{onClick:()=>w(`mobile`),label:`Mobile view`,isActive:O===`mobile`,children:(0,Q.jsx)(m,{size:15})})]}),t[27]=i,t[28]=O,t[29]=w,t[30]=R):R=t[30];let z;t[31]!==i||t[32]!==C?(z=i&&(0,Q.jsx)($,{onClick:C,label:`Open in external browser`,children:(0,Q.jsx)(h,{size:15})}),t[31]=i,t[32]=C,t[33]=z):z=t[33];let B;return t[34]!==k||t[35]!==z||t[36]!==A||t[37]!==N||t[38]!==P||t[39]!==F||t[40]!==L||t[41]!==R?(B=(0,Q.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[k,A,N,P,F,L,R,z]})}),t[34]=k,t[35]=z,t[36]=A,t[37]=N,t[38]=P,t[39]=F,t[40]=L,t[41]=R,t[42]=B):B=t[42],B}function tt(e){let t=(0,Z.c)(6),{devServerStopped:n,selectedProjectId:r,runCommand:i}=e,o=J(),s=c(nt),l;return t[0]!==n||t[1]!==i||t[2]!==r||t[3]!==s||t[4]!==o?(l=(0,Q.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:n?(0,Q.jsx)(`p`,{className:a.body,children:`Dev server stopped`}):r&&s&&i&&!o?(0,Q.jsx)(V,{projectId:r,runCommand:i,large:!0}):(0,Q.jsx)(`p`,{className:a.body,children:`Enter a URL to browse`})}),t[0]=n,t[1]=i,t[2]=r,t[3]=s,t[4]=o,t[5]=l):l=t[5],l}function nt(e){return e.selectedThreadId}function rt(e){let t=(0,Z.c)(23),{instanceId:n}=e,r=We(n),i=Xe[r.deviceMode],{registerPanelFocus:a}=k(),o=(0,X.useRef)(null),s,c;t[0]!==n||t[1]!==a?(s=()=>a(n,()=>o.current?.focus()),c=[n,a],t[0]=n,t[1]=a,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,X.useEffect)(s,c);let l;t[4]!==r.currentUrl||t[5]!==r.handleWebviewRef||t[6]!==r.iframeRef||t[7]!==r.nativeWebviewMounted||t[8]!==r.previewRpcPreload||t[9]!==r.useNativeWebview?(l=(0,Q.jsx)(Ze,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[4]=r.currentUrl,t[5]=r.handleWebviewRef,t[6]=r.iframeRef,t[7]=r.nativeWebviewMounted,t[8]=r.previewRpcPreload,t[9]=r.useNativeWebview,t[10]=l):l=t[10];let u=l;if(!r.isBrowserActive){let e;return t[11]!==r.previewContainerRef||t[12]!==u?(e=(0,Q.jsx)($e,{previewContainerRef:r.previewContainerRef,children:u}),t[11]=r.previewContainerRef,t[12]=u,t[13]=e):e=t[13],e}let d;t[14]===r?d=t[15]:(d=(0,Q.jsx)(et,{controller:r,urlInputRef:o}),t[14]=r,t[15]=d);let f;t[16]!==r||t[17]!==i||t[18]!==u?(f=r.currentUrl?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ne,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}),(0,Q.jsx)(Qe,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:i,previewContainerRef:r.previewContainerRef,children:u})]}):(0,Q.jsx)(tt,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}),t[16]=r,t[17]=i,t[18]=u,t[19]=f):f=t[19];let p;return t[20]!==d||t[21]!==f?(p=(0,Q.jsx)(S,{children:(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[d,f]})}),t[20]=d,t[21]=f,t[22]=p):p=t[22],p}export{rt as BrowserTab};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{a,o,t as s}from"./utils-uGptTPGm.js";var c=t(),l=e(n(),1),u=r(),d=Symbol.for(`react.lazy`),f=l.use;function p(e){return typeof e==`object`&&!!e&&`then`in e}function m(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===d&&`_payload`in e&&p(e._payload)}function h(e){let t=_(e),n=l.forwardRef((e,n)=>{let{children:r,...i}=e;m(r)&&typeof f==`function`&&(r=f(r._payload));let a=l.Children.toArray(r),o=a.find(y);if(o){let e=o.props.children,r=a.map(t=>t===o?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t);return(0,u.jsx)(t,{...i,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,u.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var g=h(`Slot`);function _(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(m(n)&&typeof f==`function`&&(n=f(n._payload)),l.isValidElement(n)){let e=x(n),i=b(r,n.props);return n.type!==l.Fragment&&(i.ref=t?o(t,e):e),l.cloneElement(n,i)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var v=Symbol(`radix.slottable`);function y(e){return l.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===v}function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var S=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,C=a,w=(e,t)=>n=>{if(t?.variants==null)return C(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=S(t)||S(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return C(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},T=w(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full ${i.body} font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-foreground hover:text-background transition-colors`,action:`text-muted-foreground hover:bg-foreground hover:text-background transition-colors`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-6 py-3`,sm:`h-9 rounded-full px-4`,lg:`h-11 rounded-full px-10`,icon:`h-10 w-10 [&_svg]:size-5`,"icon-md":`h-8 w-8 [&_svg]:size-4`,"icon-sm":`h-7 w-7 [&_svg]:size-4`,"icon-xs":`h-5 w-5 [&_svg]:size-3`}},defaultVariants:{variant:`default`,size:`default`}}),E=l.forwardRef((e,t)=>{let n=(0,c.c)(15),r,i,a,o,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],l=n[5]):({className:r,variant:l,size:a,asChild:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=l);let d=o!==void 0&&o?g:`button`,f;n[6]!==r||n[7]!==a||n[8]!==l?(f=s(T({variant:l,size:a,className:r})),n[6]=r,n[7]=a,n[8]=l,n[9]=f):f=n[9];let p;return n[10]!==d||n[11]!==i||n[12]!==t||n[13]!==f?(p=(0,u.jsx)(d,{className:f,ref:t,...i}),n[10]=d,n[11]=i,n[12]=t,n[13]=f,n[14]=p):p=n[14],p});E.displayName=`Button`;export{h as a,g as i,T as n,w as r,E as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{tn as i}from"./dist-C99qsdM0.js";import{a,o,t as s}from"./utils-DIi62oP7.js";var c=t(),l=e(n(),1),u=r(),d=Symbol.for(`react.lazy`),f=l.use;function p(e){return typeof e==`object`&&!!e&&`then`in e}function m(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===d&&`_payload`in e&&p(e._payload)}function h(e){let t=_(e),n=l.forwardRef((e,n)=>{let{children:r,...i}=e;m(r)&&typeof f==`function`&&(r=f(r._payload));let a=l.Children.toArray(r),o=a.find(y);if(o){let e=o.props.children,r=a.map(t=>t===o?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t);return(0,u.jsx)(t,{...i,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,u.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var g=h(`Slot`);function _(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(m(n)&&typeof f==`function`&&(n=f(n._payload)),l.isValidElement(n)){let e=x(n),i=b(r,n.props);return n.type!==l.Fragment&&(i.ref=t?o(t,e):e),l.cloneElement(n,i)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var v=Symbol(`radix.slottable`);function y(e){return l.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===v}function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var S=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,C=a,w=(e,t)=>n=>{if(t?.variants==null)return C(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=S(t)||S(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return C(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},T=w(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full ${i.body} font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-foreground hover:text-background transition-colors`,action:`text-muted-foreground hover:bg-foreground hover:text-background transition-colors`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-6 py-3`,sm:`h-9 rounded-full px-4`,lg:`h-11 rounded-full px-10`,icon:`h-10 w-10 [&_svg]:size-5`,"icon-md":`h-8 w-8 [&_svg]:size-4`,"icon-sm":`h-7 w-7 [&_svg]:size-4`,"icon-xs":`h-5 w-5 [&_svg]:size-3`}},defaultVariants:{variant:`default`,size:`default`}}),E=l.forwardRef((e,t)=>{let n=(0,c.c)(15),r,i,a,o,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],l=n[5]):({className:r,variant:l,size:a,asChild:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=l);let d=o!==void 0&&o?g:`button`,f;n[6]!==r||n[7]!==a||n[8]!==l?(f=s(T({variant:l,size:a,className:r})),n[6]=r,n[7]=a,n[8]=l,n[9]=f):f=n[9];let p;return n[10]!==d||n[11]!==i||n[12]!==t||n[13]!==f?(p=(0,u.jsx)(d,{className:f,ref:t,...i}),n[10]=d,n[11]=i,n[12]=t,n[13]=f,n[14]=p):p=n[14],p});E.displayName=`Button`;export{h as a,g as i,T as n,w as r,E as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{t as a}from"./utils-uGptTPGm.js";var o=t(),s=e(n(),1),c=r(),l=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});l.displayName=`Card`;var u=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});u.displayName=`CardHeader`;var d=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.sectionTitle,`leading-none tracking-tight`,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});d.displayName=`CardTitle`;var f=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.bodyMuted,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});f.displayName=`CardDescription`;var p=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});p.displayName=`CardContent`;var m=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});m.displayName=`CardFooter`;export{d as i,p as n,u as r,l as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{tn as i}from"./dist-C99qsdM0.js";import{t as a}from"./utils-DIi62oP7.js";var o=t(),s=e(n(),1),c=r(),l=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});l.displayName=`Card`;var u=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});u.displayName=`CardHeader`;var d=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.sectionTitle,`leading-none tracking-tight`,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});d.displayName=`CardTitle`;var f=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.bodyMuted,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});f.displayName=`CardDescription`;var p=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});p.displayName=`CardContent`;var m=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});m.displayName=`CardFooter`;export{d as i,p as n,u as r,l as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{B as i,W as a,at as o}from"./dist-FJzwWcMv.js";import{i as s,n as c,r as l,tt as u}from"./store-DCnnNgwq.js";import{En as d,Ot as f}from"./api-CX0sFbpL.js";var p=e(n(),1),m=t();function h({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 g(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 a(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=a(e.selectedWindowId)?e.selectedWindowId:o,c=null;return e.layout===`expanded`&&i&&(c=a(e.expandedWindowId)?e.expandedWindowId:o),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var _=a(`app.window-state`);function v(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function y({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=c(),o=l(e=>e.selectedProjectId),s=l(e=>e.projects),m=l(e=>e.threadMultiPaneStates),g=s.find(e=>e.projectId===o),y=(g?.threads.map(e=>e.threadId)??[]).join(`\0`),b=g!==void 0,[x,S]=(0,p.useState)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(Promise.resolve()),T=(0,p.useRef)(null),E=(0,p.useRef)(0),D=(0,p.useRef)(v(e,t,n));D.current=v(e,t,n),(0,p.useEffect)(()=>{let e=T.current!==o;if(T.current=o,!o||!b){r(),S(null),C.current=null;return}e&&(r(),S(null),C.current=null);let t=o,n=y?y.split(`\0`):[],s=D.current,c=++E.current,l=!1;async function d(){try{let e=await f(t);if(l||c!==E.current)return;if(a({type:u.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),D.current!==s){S(t);return}C.current=JSON.stringify(e),i(e),S(t)}catch(e){l||_.error(`Failed to restore project window state`,e)}}return d(),()=>{l=!0}},[a,b,i,r,y,o]),(0,p.useEffect)(()=>{if(!o||o!==x||!b)return;let r=h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:y?y.split(`\0`):[],threadMultiPaneStates:m}),i=JSON.stringify(r);if(i===C.current)return;let a=o;C.current=i,w.current=w.current.catch(()=>void 0).then(()=>d(a,r)).catch(e=>{_.error(`Failed to save project window state`,e),C.current===i&&(C.current=null)})},[t,b,x,e,o,n,y,m])}var b=r(),x=(0,p.createContext)(null);function S(e){let t=(0,m.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:i,expandedWindowId:a,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==c||t[4]!==n?(u=()=>{if(a){if(a===`primary`){if(i)return;c(n.length>0?n[0].id:null);return}!n.some(e=>e.id===a)&&!r[a]&&c(i?o:n[0]?.id??null)}},d=[a,r,i,n,c],t[0]=a,t[1]=r,t[2]=i,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,p.useEffect)(u,d);let f,h;t[7]!==r||t[8]!==i||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(i||n.length===0)return;l(n[0].id);return}!n.some(e=>e.id===s)&&!r[s]&&l(i?o:n[0]?.id??`primary`)},h=[r,i,s,n,l],t[7]=r,t[8]=i,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=h):(f=t[12],h=t[13]),(0,p.useEffect)(f,h);let g,_;t[14]!==a||t[15]!==c||t[16]!==n.length?(g=()=>{n.length===0&&a!==null&&c(null)},_=[a,n.length,c],t[14]=a,t[15]=c,t[16]=n.length,t[17]=g,t[18]=_):(g=t[17],_=t[18]),(0,p.useEffect)(g,_)}function C(e){return e.filter(e=>e.panelId!==`tasks`)}function w(e,t,n,r){t.panelId===`chat`?n({type:u.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}function T(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??null}function E(e,t,n,r){if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??`primary`}function D(e,t,n){return t.length===0?null:e===`primary`?n:e}function O(e,t){return e===`primary`&&t?t:e}function k(){let e=(0,m.c)(24),t=l(N),n=l(M),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0];let[i,a]=(0,p.useState)(r),[s,c]=(0,p.useState)(!0),[u,d]=(0,p.useState)(null),[f,h]=(0,p.useState)(`half`),[g,_]=(0,p.useState)(`tasks`),[v,y]=(0,p.useState)(o),[b,x]=(0,p.useState)(null),S;e[1]===n?S=e[2]:(S=Object.keys(n).map(j),e[1]=n,e[2]=S);let w=S,T;e[3]!==i||e[4]!==t?(T=t?C(i):i,e[3]=i,e[4]=t,e[5]=T):T=e[5];let E=T,D;e[6]!==w||e[7]!==E?(D=[...w,...E],e[6]=w,e[7]=E,e[8]=D):D=e[8];let O=D,k,P;e[9]===t?(k=e[10],P=e[11]):(k=()=>{t&&a(A)},P=[t],e[9]=t,e[10]=k,e[11]=P),(0,p.useEffect)(k,P);let F;return e[12]!==w||e[13]!==f||e[14]!==u||e[15]!==n||e[16]!==i||e[17]!==b||e[18]!==s||e[19]!==t||e[20]!==v||e[21]!==g||e[22]!==O?(F={selectedThreadId:t,extraChatPanes:n,nonChatWindows:i,setNonChatWindows:a,primaryChatOpen:s,setPrimaryChatOpen:c,expandedWindowId:u,setExpandedWindowId:d,columnWidth:f,setColumnWidth:h,tasksView:g,setTasksView:_,selectedWindowId:v,setSelectedWindowId:y,pendingScrollWindowId:b,setPendingScrollWindowId:x,chatWindows:w,windows:O},e[12]=w,e[13]=f,e[14]=u,e[15]=n,e[16]=i,e[17]=b,e[18]=s,e[19]=t,e[20]=v,e[21]=g,e[22]=O,e[23]=F):F=e[23],F}function A(e){let t=C(e);return t.length===e.length?e:t}function j(e){return{id:e,panelId:`chat`}}function M(e){return e.extraChatPanes}function N(e){return e.selectedThreadId}function P(e,t,n){let r=(0,m.c)(11),i=c(),a;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=new Map,r[0]=a):a=r[0];let o=(0,p.useRef)(a),s=(0,p.useRef)(null),l;r[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=(e,t)=>(o.current.set(e,t),()=>{o.current.delete(e)}),r[1]=l):l=r[1];let d=l,f;r[2]!==i||r[3]!==e?(f=t=>{if(t===`primary`){i({type:u.SetFocusedPane,paneId:`primary`}),i({type:u.FocusChatInput});return}if(e.find(e=>e.id===t)?.panelId===`chat`){i({type:u.SetFocusedPane,paneId:t}),i({type:u.FocusChatInput});return}o.current.get(t)?.()},r[2]=i,r[3]=e,r[4]=f):f=r[4];let h=f,g,_;r[5]!==t||r[6]!==h||r[7]!==n?(g=()=>{let e=t??n;if(e===null)return;let r=s.current;s.current=e,!(r===null||r===e)&&h(e)},_=[t,n,h],r[5]=t,r[6]=h,r[7]=n,r[8]=g,r[9]=_):(g=r[8],_=r[9]),(0,p.useEffect)(g,_);let v;return r[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={registerPanelFocus:d,prevActiveWindowRef:s},r[10]=v):v=r[10],v}function F(e){let t=(0,m.c)(53),{dispatch:n,selectedThreadId:r,windows:a,chatWindows:s,nonChatWindows:c,primaryChatOpen:l,setPrimaryChatOpen:d,setExpandedWindowId:f,setSelectedWindowId:p,setPendingScrollWindowId:h,setNonChatWindows:g}=e,_;t[0]===p?_=t[1]:(_=e=>{p(e)},t[0]=p,t[1]=_);let v=_,y;t[2]!==f||t[3]!==d||t[4]!==p?(y=e=>{e===`primary`&&d(!0),p(e),f(e)},t[2]=f,t[3]=d,t[4]=p,t[5]=y):y=t[5];let b=y,x;t[6]===f?x=t[7]:(x=()=>{f(null)},t[6]=f,t[7]=x);let S=x,C;t[8]!==l||t[9]!==f||t[10]!==h||t[11]!==d||t[12]!==a.length?(C=e=>{e===`primary`&&d(!0),f(t=>t===null&&a.length>0||t===null&&l&&e!==`primary`?null:e),h(e)},t[8]=l,t[9]=f,t[10]=h,t[11]=d,t[12]=a.length,t[13]=C):C=t[13];let k=C,A;t[14]===h?A=t[15]:(A=()=>{h(null)},t[14]=h,t[15]=A);let j=A,M;t[16]!==n||t[17]!==k||t[18]!==r||t[19]!==g?(M=e=>{let t=i();return e===`chat`?r?(n({type:u.AddChatPane,paneId:t,conversationId:i()}),k(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),k(t),t)},t[16]=n,t[17]=k,t[18]=r,t[19]=g,t[20]=M):M=t[20];let N=M,P;t[21]!==n||t[22]!==l||t[23]!==f||t[24]!==g||t[25]!==d||t[26]!==p||t[27]!==a?(P=e=>{if(e===`primary`){d(!1);let e=a[0]?.id??null;f(t=>D(t,a,e)),p(t=>O(t,e));return}let t=a.find(t=>t.id===e);t&&(t.panelId===`chat`&&!l&&!a.some(t=>t.panelId===`chat`&&t.id!==e)||(w(e,t,n,g),f(t=>T(t,e,a,l)),p(t=>E(t,e,a,l))))},t[21]=n,t[22]=l,t[23]=f,t[24]=g,t[25]=d,t[26]=p,t[27]=a,t[28]=P):P=t[28];let F=P,L;t[29]!==n||t[30]!==f||t[31]!==g||t[32]!==d||t[33]!==p||t[34]!==a?(L=()=>{f(null),p(o),d(!0);for(let e of a)e.panelId===`chat`&&n({type:u.RemoveChatPane,paneId:e.id});g([])},t[29]=n,t[30]=f,t[31]=g,t[32]=d,t[33]=p,t[34]=a,t[35]=L):L=t[35];let R=L,z;t[36]!==s||t[37]!==c?(z=e=>e===`chat`?s[0]:c.find(t=>t.panelId===e),t[36]=s,t[37]=c,t[38]=z):z=t[38];let B=z,V;t[39]!==l||t[40]!==a?(V=e=>e===`chat`?l||a.some(I):a.some(t=>t.panelId===e),t[39]=l,t[40]=a,t[41]=V):V=t[41];let H=V,U;return t[42]!==N||t[43]!==j||t[44]!==R||t[45]!==F||t[46]!==S||t[47]!==b||t[48]!==B||t[49]!==H||t[50]!==k||t[51]!==v?(U={selectWindow:v,expandWindow:b,collapseLayout:S,revealWindow:k,clearPendingScrollWindow:j,addWindow:N,closeWindow:F,closeAllWindows:R,findWindowByPanel:B,isPanelOpen:H},t[42]=N,t[43]=j,t[44]=R,t[45]=F,t[46]=S,t[47]=b,t[48]=B,t[49]=H,t[50]=k,t[51]=v,t[52]=U):U=t[52],U}function I(e){return e.panelId===`chat`}function L(e){let t=(0,m.c)(3),{children:n}=e,r=R(),i;return t[0]!==n||t[1]!==r?(i=(0,b.jsx)(x.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function R(){let e=c(),t=s(),{selectedThreadId:n,extraChatPanes:r,nonChatWindows:i,setNonChatWindows:a,primaryChatOpen:l,setPrimaryChatOpen:u,expandedWindowId:d,setExpandedWindowId:f,columnWidth:m,setColumnWidth:h,tasksView:_,setTasksView:v,selectedWindowId:b,setSelectedWindowId:x,pendingScrollWindowId:w,setPendingScrollWindowId:T,chatWindows:E,windows:D}=k(),{registerPanelFocus:O,prevActiveWindowRef:A}=P(D,d,b);y({nonChatWindows:i,expandedWindowId:d,selectedWindowId:b,onReset:(0,p.useCallback)(()=>{A.current=o,a([]),u(!0),f(null),x(o),T(null)},[]),onHydrate:(0,p.useCallback)(e=>{let n=t.getState().selectedThreadId,r=g(e,n),i=n?C(r.nonChatWindows):r.nonChatWindows,s=new Set(r.nonChatWindows.filter(e=>e.panelId===`tasks`).map(e=>e.id)),c=n&&r.expandedWindowId&&s.has(r.expandedWindowId)?o:r.expandedWindowId,l=n&&s.has(r.selectedWindowId)?o:r.selectedWindowId;A.current=c??l,a(i),f(c),x(l),T(null)},[t])}),S({windows:D,extraChatPanes:r,primaryChatOpen:l,expandedWindowId:d,selectedWindowId:b,setExpandedWindowId:f,setSelectedWindowId:x});let{selectWindow:j,expandWindow:M,collapseLayout:N,revealWindow:I,clearPendingScrollWindow:L,addWindow:R,closeWindow:z,closeAllWindows:B,findWindowByPanel:V,isPanelOpen:H}=F({dispatch:e,selectedThreadId:n,windows:D,chatWindows:E,nonChatWindows:i,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:f,setSelectedWindowId:x,setPendingScrollWindowId:T,setNonChatWindows:a}),U=D.length>0,W=d!==null;return(0,p.useMemo)(()=>({windows:D,addWindow:R,closeWindow:z,closeAllWindows:B,isPrimaryChatOpen:l,isPanelOpen:H,findWindowByPanel:V,hasOpenWindows:U,isLayoutExpanded:W,expandedWindowId:d,expandWindow:M,collapseLayout:N,columnWidth:m,setColumnWidth:h,selectedWindowId:b,selectWindow:j,revealWindow:I,pendingScrollWindowId:w,clearPendingScrollWindow:L,tasksView:_,setTasksView:v,registerPanelFocus:O}),[D,R,z,B,l,H,V,U,W,d,M,N,m,h,b,j,I,w,L,_,v,O])}function z(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{z as n,L as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{$ as i,Y as a,gt as o}from"./dist-C99qsdM0.js";import{i as s,n as c,nt as l,r as u}from"./store-HOyKbtQR.js";import{Dn as d,Ot as f}from"./api-BPfzuuZQ.js";var p=e(n(),1),m=t();function h({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 g(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 a(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=a(e.selectedWindowId)?e.selectedWindowId:o,c=null;return e.layout===`expanded`&&i&&(c=a(e.expandedWindowId)?e.expandedWindowId:o),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var _=i(`app.window-state`);function v(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function y({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=c(),o=u(e=>e.selectedProjectId),s=u(e=>e.projects),m=u(e=>e.threadMultiPaneStates),g=s.find(e=>e.projectId===o),y=(g?.threads.map(e=>e.threadId)??[]).join(`\0`),b=g!==void 0,[x,S]=(0,p.useState)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(Promise.resolve()),T=(0,p.useRef)(null),E=(0,p.useRef)(0),D=(0,p.useRef)(v(e,t,n));D.current=v(e,t,n),(0,p.useEffect)(()=>{let e=T.current!==o;if(T.current=o,!o||!b){r(),S(null),C.current=null;return}e&&(r(),S(null),C.current=null);let t=o,n=y?y.split(`\0`):[],s=D.current,c=++E.current,u=!1;async function d(){try{let e=await f(t);if(u||c!==E.current)return;if(a({type:l.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),D.current!==s){S(t);return}C.current=JSON.stringify(e),i(e),S(t)}catch(e){u||_.error(`Failed to restore project window state`,e)}}return d(),()=>{u=!0}},[a,b,i,r,y,o]),(0,p.useEffect)(()=>{if(!o||o!==x||!b)return;let r=h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:y?y.split(`\0`):[],threadMultiPaneStates:m}),i=JSON.stringify(r);if(i===C.current)return;let a=o;C.current=i,w.current=w.current.catch(()=>void 0).then(()=>d(a,r)).catch(e=>{_.error(`Failed to save project window state`,e),C.current===i&&(C.current=null)})},[t,b,x,e,o,n,y,m])}var b=r(),x=(0,p.createContext)(null);function S(e){let t=(0,m.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:i,expandedWindowId:a,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==c||t[4]!==n?(u=()=>{if(a){if(a===`primary`){if(i)return;c(n.length>0?n[0].id:null);return}!n.some(e=>e.id===a)&&!r[a]&&c(i?o:n[0]?.id??null)}},d=[a,r,i,n,c],t[0]=a,t[1]=r,t[2]=i,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,p.useEffect)(u,d);let f,h;t[7]!==r||t[8]!==i||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(i||n.length===0)return;l(n[0].id);return}!n.some(e=>e.id===s)&&!r[s]&&l(i?o:n[0]?.id??`primary`)},h=[r,i,s,n,l],t[7]=r,t[8]=i,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=h):(f=t[12],h=t[13]),(0,p.useEffect)(f,h);let g,_;t[14]!==a||t[15]!==c||t[16]!==n.length?(g=()=>{n.length===0&&a!==null&&c(null)},_=[a,n.length,c],t[14]=a,t[15]=c,t[16]=n.length,t[17]=g,t[18]=_):(g=t[17],_=t[18]),(0,p.useEffect)(g,_)}function C(e){return e.filter(e=>e.panelId!==`tasks`)}function w(e,t,n,r){t.panelId===`chat`?n({type:l.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}function T(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??null}function E(e,t,n,r){if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??`primary`}function D(e,t,n){return t.length===0?null:e===`primary`?n:e}function O(e,t){return e===`primary`&&t?t:e}function k(){let e=(0,m.c)(24),t=u(N),n=u(M),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0];let[i,a]=(0,p.useState)(r),[s,c]=(0,p.useState)(!0),[l,d]=(0,p.useState)(null),[f,h]=(0,p.useState)(`half`),[g,_]=(0,p.useState)(`tasks`),[v,y]=(0,p.useState)(o),[b,x]=(0,p.useState)(null),S;e[1]===n?S=e[2]:(S=Object.keys(n).map(j),e[1]=n,e[2]=S);let w=S,T;e[3]!==i||e[4]!==t?(T=t?C(i):i,e[3]=i,e[4]=t,e[5]=T):T=e[5];let E=T,D;e[6]!==w||e[7]!==E?(D=[...w,...E],e[6]=w,e[7]=E,e[8]=D):D=e[8];let O=D,k,P;e[9]===t?(k=e[10],P=e[11]):(k=()=>{t&&a(A)},P=[t],e[9]=t,e[10]=k,e[11]=P),(0,p.useEffect)(k,P);let F;return e[12]!==w||e[13]!==f||e[14]!==l||e[15]!==n||e[16]!==i||e[17]!==b||e[18]!==s||e[19]!==t||e[20]!==v||e[21]!==g||e[22]!==O?(F={selectedThreadId:t,extraChatPanes:n,nonChatWindows:i,setNonChatWindows:a,primaryChatOpen:s,setPrimaryChatOpen:c,expandedWindowId:l,setExpandedWindowId:d,columnWidth:f,setColumnWidth:h,tasksView:g,setTasksView:_,selectedWindowId:v,setSelectedWindowId:y,pendingScrollWindowId:b,setPendingScrollWindowId:x,chatWindows:w,windows:O},e[12]=w,e[13]=f,e[14]=l,e[15]=n,e[16]=i,e[17]=b,e[18]=s,e[19]=t,e[20]=v,e[21]=g,e[22]=O,e[23]=F):F=e[23],F}function A(e){let t=C(e);return t.length===e.length?e:t}function j(e){return{id:e,panelId:`chat`}}function M(e){return e.extraChatPanes}function N(e){return e.selectedThreadId}function P(e,t,n){let r=(0,m.c)(11),i=c(),a;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=new Map,r[0]=a):a=r[0];let o=(0,p.useRef)(a),s=(0,p.useRef)(null),u;r[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t)=>(o.current.set(e,t),()=>{o.current.delete(e)}),r[1]=u):u=r[1];let d=u,f;r[2]!==i||r[3]!==e?(f=t=>{if(t===`primary`){i({type:l.SetFocusedPane,paneId:`primary`}),i({type:l.FocusChatInput});return}if(e.find(e=>e.id===t)?.panelId===`chat`){i({type:l.SetFocusedPane,paneId:t}),i({type:l.FocusChatInput});return}o.current.get(t)?.()},r[2]=i,r[3]=e,r[4]=f):f=r[4];let h=f,g,_;r[5]!==t||r[6]!==h||r[7]!==n?(g=()=>{let e=t??n;if(e===null)return;let r=s.current;s.current=e,!(r===null||r===e)&&h(e)},_=[t,n,h],r[5]=t,r[6]=h,r[7]=n,r[8]=g,r[9]=_):(g=r[8],_=r[9]),(0,p.useEffect)(g,_);let v;return r[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={registerPanelFocus:d,prevActiveWindowRef:s},r[10]=v):v=r[10],v}function F(e){let t=(0,m.c)(53),{dispatch:n,selectedThreadId:r,windows:i,chatWindows:s,nonChatWindows:c,primaryChatOpen:u,setPrimaryChatOpen:d,setExpandedWindowId:f,setSelectedWindowId:p,setPendingScrollWindowId:h,setNonChatWindows:g}=e,_;t[0]===p?_=t[1]:(_=e=>{p(e)},t[0]=p,t[1]=_);let v=_,y;t[2]!==f||t[3]!==d||t[4]!==p?(y=e=>{e===`primary`&&d(!0),p(e),f(e)},t[2]=f,t[3]=d,t[4]=p,t[5]=y):y=t[5];let b=y,x;t[6]===f?x=t[7]:(x=()=>{f(null)},t[6]=f,t[7]=x);let S=x,C;t[8]!==u||t[9]!==f||t[10]!==h||t[11]!==d||t[12]!==i.length?(C=e=>{e===`primary`&&d(!0),f(t=>t===null&&i.length>0||t===null&&u&&e!==`primary`?null:e),h(e)},t[8]=u,t[9]=f,t[10]=h,t[11]=d,t[12]=i.length,t[13]=C):C=t[13];let k=C,A;t[14]===h?A=t[15]:(A=()=>{h(null)},t[14]=h,t[15]=A);let j=A,M;t[16]!==n||t[17]!==k||t[18]!==r||t[19]!==g?(M=e=>{let t=a();return e===`chat`?r?(n({type:l.AddChatPane,paneId:t,conversationId:a()}),k(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),k(t),t)},t[16]=n,t[17]=k,t[18]=r,t[19]=g,t[20]=M):M=t[20];let N=M,P;t[21]!==n||t[22]!==u||t[23]!==f||t[24]!==g||t[25]!==d||t[26]!==p||t[27]!==i?(P=e=>{if(e===`primary`){d(!1);let e=i[0]?.id??null;f(t=>D(t,i,e)),p(t=>O(t,e));return}let t=i.find(t=>t.id===e);t&&(t.panelId===`chat`&&!u&&!i.some(t=>t.panelId===`chat`&&t.id!==e)||(w(e,t,n,g),f(t=>T(t,e,i,u)),p(t=>E(t,e,i,u))))},t[21]=n,t[22]=u,t[23]=f,t[24]=g,t[25]=d,t[26]=p,t[27]=i,t[28]=P):P=t[28];let F=P,L;t[29]!==n||t[30]!==f||t[31]!==g||t[32]!==d||t[33]!==p||t[34]!==i?(L=()=>{f(null),p(o),d(!0);for(let e of i)e.panelId===`chat`&&n({type:l.RemoveChatPane,paneId:e.id});g([])},t[29]=n,t[30]=f,t[31]=g,t[32]=d,t[33]=p,t[34]=i,t[35]=L):L=t[35];let R=L,z;t[36]!==s||t[37]!==c?(z=e=>e===`chat`?s[0]:c.find(t=>t.panelId===e),t[36]=s,t[37]=c,t[38]=z):z=t[38];let B=z,V;t[39]!==u||t[40]!==i?(V=e=>e===`chat`?u||i.some(I):i.some(t=>t.panelId===e),t[39]=u,t[40]=i,t[41]=V):V=t[41];let H=V,U;return t[42]!==N||t[43]!==j||t[44]!==R||t[45]!==F||t[46]!==S||t[47]!==b||t[48]!==B||t[49]!==H||t[50]!==k||t[51]!==v?(U={selectWindow:v,expandWindow:b,collapseLayout:S,revealWindow:k,clearPendingScrollWindow:j,addWindow:N,closeWindow:F,closeAllWindows:R,findWindowByPanel:B,isPanelOpen:H},t[42]=N,t[43]=j,t[44]=R,t[45]=F,t[46]=S,t[47]=b,t[48]=B,t[49]=H,t[50]=k,t[51]=v,t[52]=U):U=t[52],U}function I(e){return e.panelId===`chat`}function L(e){let t=(0,m.c)(3),{children:n}=e,r=R(),i;return t[0]!==n||t[1]!==r?(i=(0,b.jsx)(x.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function R(){let e=c(),t=s(),{selectedThreadId:n,extraChatPanes:r,nonChatWindows:i,setNonChatWindows:a,primaryChatOpen:l,setPrimaryChatOpen:u,expandedWindowId:d,setExpandedWindowId:f,columnWidth:m,setColumnWidth:h,tasksView:_,setTasksView:v,selectedWindowId:b,setSelectedWindowId:x,pendingScrollWindowId:w,setPendingScrollWindowId:T,chatWindows:E,windows:D}=k(),{registerPanelFocus:O,prevActiveWindowRef:A}=P(D,d,b);y({nonChatWindows:i,expandedWindowId:d,selectedWindowId:b,onReset:(0,p.useCallback)(()=>{A.current=o,a([]),u(!0),f(null),x(o),T(null)},[]),onHydrate:(0,p.useCallback)(e=>{let n=t.getState().selectedThreadId,r=g(e,n),i=n?C(r.nonChatWindows):r.nonChatWindows,s=new Set(r.nonChatWindows.filter(e=>e.panelId===`tasks`).map(e=>e.id)),c=n&&r.expandedWindowId&&s.has(r.expandedWindowId)?o:r.expandedWindowId,l=n&&s.has(r.selectedWindowId)?o:r.selectedWindowId;A.current=c??l,a(i),f(c),x(l),T(null)},[t])}),S({windows:D,extraChatPanes:r,primaryChatOpen:l,expandedWindowId:d,selectedWindowId:b,setExpandedWindowId:f,setSelectedWindowId:x});let{selectWindow:j,expandWindow:M,collapseLayout:N,revealWindow:I,clearPendingScrollWindow:L,addWindow:R,closeWindow:z,closeAllWindows:B,findWindowByPanel:V,isPanelOpen:H}=F({dispatch:e,selectedThreadId:n,windows:D,chatWindows:E,nonChatWindows:i,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:f,setSelectedWindowId:x,setPendingScrollWindowId:T,setNonChatWindows:a}),U=D.length>0,W=d!==null;return(0,p.useMemo)(()=>({windows:D,addWindow:R,closeWindow:z,closeAllWindows:B,isPrimaryChatOpen:l,isPanelOpen:H,findWindowByPanel:V,hasOpenWindows:U,isLayoutExpanded:W,expandedWindowId:d,expandWindow:M,collapseLayout:N,columnWidth:m,setColumnWidth:h,selectedWindowId:b,selectWindow:j,revealWindow:I,pendingScrollWindowId:w,clearPendingScrollWindow:L,tasksView:_,setTasksView:v,registerPanelFocus:O}),[D,R,z,B,l,H,V,U,W,d,M,N,m,h,b,j,I,w,L,_,v,O])}function z(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}function B(){return(0,p.useContext)(x)}export{z as n,B as r,L as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{b as n}from"./lucide-react-CMzSV2MP.js";import{t as r}from"./button-zYjzm__g.js";import{i,n as a,r as o,t as s}from"./tooltip-6qlOE6WT.js";import{t as c}from"./progress-indicator-_fEKurQg.js";import{Ar as l,Dr as u,Er as d,Or as f,V as p,jr as m,kr as h,wr as g}from"./index-DpDgcOE9.js";var _=e(),v=t();function y(e){let t=(0,_.c)(41),{open:y,onOpenChange:b,commitMessage:x,onCommitMessageChange:S,isGeneratingMessage:C,isLoading:w,onGenerateMessage:T,onCommit:E,currentBranch:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,v.jsx)(m,{children:`Commit Changes`}),t[0]=O):O=t[0];let k;t[1]===D?k=t[2]:(k=(0,v.jsxs)(l,{children:[O,(0,v.jsxs)(f,{children:[`Enter a commit message for your changes on branch `,D]})]}),t[1]=D,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,v.jsx)(g,{htmlFor:`commit-message`,children:`Commit Message`}),t[3]=A):A=t[3];let j;t[4]===S?j=t[5]:(j=e=>S(e.target.value),t[4]=S,t[5]=j);let M;t[6]!==x||t[7]!==C||t[8]!==j?(M=(0,v.jsx)(p,{id:`commit-message`,placeholder:`Enter commit message...`,value:x,onChange:j,disabled:C,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[6]=x,t[7]=C,t[8]=j,t[9]=M):M=t[9];let N=C||w,P;t[10]===C?P=t[11]:(P=C?(0,v.jsx)(c,{}):(0,v.jsx)(n,{className:`h-3.5 w-3.5`}),t[10]=C,t[11]=P);let F;t[12]!==T||t[13]!==N||t[14]!==P?(F=(0,v.jsx)(i,{asChild:!0,children:(0,v.jsx)(r,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:T,disabled:N,children:P})}),t[12]=T,t[13]=N,t[14]=P,t[15]=F):F=t[15];let I=C?`Generating commit message...`:`Generate commit message with AI`,L;t[16]===I?L=t[17]:(L=(0,v.jsx)(a,{children:I}),t[16]=I,t[17]=L);let R;t[18]!==L||t[19]!==F?(R=(0,v.jsx)(o,{children:(0,v.jsxs)(s,{children:[F,L]})}),t[18]=L,t[19]=F,t[20]=R):R=t[20];let z;t[21]!==R||t[22]!==M?(z=(0,v.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,v.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[A,(0,v.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[M,R]})]})}),t[21]=R,t[22]=M,t[23]=z):z=t[23];let B;t[24]!==x||t[25]!==w?(B=w||!x.trim(),t[24]=x,t[25]=w,t[26]=B):B=t[26];let V;t[27]===w?V=t[28]:(V=w?(0,v.jsxs)(v.Fragment,{children:[`Commit`,(0,v.jsx)(c,{size:`sm`})]}):`Commit`,t[27]=w,t[28]=V);let H;t[29]!==E||t[30]!==B||t[31]!==V?(H=(0,v.jsx)(h,{className:`w-full items-center`,children:(0,v.jsx)(r,{className:`ml-auto`,onClick:E,disabled:B,children:V})}),t[29]=E,t[30]=B,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==z||t[34]!==H||t[35]!==k?(U=(0,v.jsxs)(u,{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:[k,z,H]}),t[33]=z,t[34]=H,t[35]=k,t[36]=U):U=t[36];let W;return t[37]!==b||t[38]!==y||t[39]!==U?(W=(0,v.jsx)(d,{open:y,onOpenChange:b,children:U}),t[37]=b,t[38]=y,t[39]=U,t[40]=W):W=t[40],W}export{y as CommitDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{x as n}from"./lucide-react-DW-FYOQd.js";import{t as r}from"./button-BRUlmKU9.js";import{i,n as a,r as o,t as s}from"./tooltip-C0Zn4uFr.js";import{t as c}from"./progress-indicator-EuomTuL6.js";import{Br as l,Fr as u,Hr as d,Lr as f,Rr as p,Vr as m,W as h,zr as g}from"./index-CU6xcKiy.js";var _=e(),v=t();function y(e){let t=(0,_.c)(41),{open:y,onOpenChange:b,commitMessage:x,onCommitMessageChange:S,isGeneratingMessage:C,isLoading:w,onGenerateMessage:T,onCommit:E,currentBranch:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,v.jsx)(d,{children:`Commit Changes`}),t[0]=O):O=t[0];let k;t[1]===D?k=t[2]:(k=(0,v.jsxs)(m,{children:[O,(0,v.jsxs)(g,{children:[`Enter a commit message for your changes on branch `,D]})]}),t[1]=D,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,v.jsx)(u,{htmlFor:`commit-message`,children:`Commit Message`}),t[3]=A):A=t[3];let j;t[4]===S?j=t[5]:(j=e=>S(e.target.value),t[4]=S,t[5]=j);let M;t[6]!==x||t[7]!==C||t[8]!==j?(M=(0,v.jsx)(h,{id:`commit-message`,placeholder:`Enter commit message...`,value:x,onChange:j,disabled:C,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[6]=x,t[7]=C,t[8]=j,t[9]=M):M=t[9];let N=C||w,P;t[10]===C?P=t[11]:(P=C?(0,v.jsx)(c,{}):(0,v.jsx)(n,{className:`h-3.5 w-3.5`}),t[10]=C,t[11]=P);let F;t[12]!==T||t[13]!==N||t[14]!==P?(F=(0,v.jsx)(i,{asChild:!0,children:(0,v.jsx)(r,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:T,disabled:N,children:P})}),t[12]=T,t[13]=N,t[14]=P,t[15]=F):F=t[15];let I=C?`Generating commit message...`:`Generate commit message with AI`,L;t[16]===I?L=t[17]:(L=(0,v.jsx)(a,{children:I}),t[16]=I,t[17]=L);let R;t[18]!==L||t[19]!==F?(R=(0,v.jsx)(o,{children:(0,v.jsxs)(s,{children:[F,L]})}),t[18]=L,t[19]=F,t[20]=R):R=t[20];let z;t[21]!==R||t[22]!==M?(z=(0,v.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,v.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[A,(0,v.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[M,R]})]})}),t[21]=R,t[22]=M,t[23]=z):z=t[23];let B;t[24]!==x||t[25]!==w?(B=w||!x.trim(),t[24]=x,t[25]=w,t[26]=B):B=t[26];let V;t[27]===w?V=t[28]:(V=w?(0,v.jsxs)(v.Fragment,{children:[`Commit`,(0,v.jsx)(c,{size:`sm`})]}):`Commit`,t[27]=w,t[28]=V);let H;t[29]!==E||t[30]!==B||t[31]!==V?(H=(0,v.jsx)(l,{className:`w-full items-center`,children:(0,v.jsx)(r,{className:`ml-auto`,onClick:E,disabled:B,children:V})}),t[29]=E,t[30]=B,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==z||t[34]!==H||t[35]!==k?(U=(0,v.jsxs)(p,{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:[k,z,H]}),t[33]=z,t[34]=H,t[35]=k,t[36]=U):U=t[36];let W;return t[37]!==b||t[38]!==y||t[39]!==U?(W=(0,v.jsx)(f,{open:y,onOpenChange:b,children:U}),t[37]=b,t[38]=y,t[39]=U,t[40]=W):W=t[40],W}export{y as CommitDialog};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{t as a}from"./utils-uGptTPGm.js";import{_n as o,at as s,rn as c}from"./lucide-react-CMzSV2MP.js";import{t as l}from"./button-zYjzm__g.js";import{r as u}from"./scroll-area-BTpvIsIG.js";import{Ar as d,Dr as f,Er as p,Or as m,jr as h,kr as g}from"./index-DpDgcOE9.js";var _=t(),v=e(n(),1),y=r(),b=1500;function x(e){let t=(0,_.c)(41),{error:n,onDismiss:r,onFixInChat:x}=e,[S,C]=(0,v.useState)(!1),w=(0,v.useRef)(null),T,E;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null)},E=[],t[0]=T,t[1]=E):(T=t[0],E=t[1]),(0,v.useEffect)(T,E);let D;t[2]===r?D=t[3]:(D=function(e){e||r()},t[2]=r,t[3]=D);let O=D,k;t[4]===n.message?k=t[5]:(k=async function(){try{await navigator.clipboard.writeText(n.message)}catch{}C(!0),w.current!==null&&clearTimeout(w.current),w.current=setTimeout(()=>{C(!1),w.current=null},b)},t[4]=n.message,t[5]=k);let A=k,j;t[6]!==n||t[7]!==x?(j=function(){x(n)},t[6]=n,t[7]=x,t[8]=j):j=t[8];let M=j,N;t[9]===n.title?N=t[10]:(N=(0,y.jsx)(h,{children:n.title}),t[9]=n.title,t[10]=N);let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,y.jsx)(m,{children:`Git returned an error, so the commit was not created. Fix the issue below, then try again.`}),t[11]=P):P=t[11];let F;t[12]===N?F=t[13]:(F=(0,y.jsxs)(d,{children:[N,P]}),t[12]=N,t[13]=F);let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=a(i.compact,`whitespace-pre-wrap break-words p-3 font-mono text-foreground`),t[14]=I):I=t[14];let L;t[15]===n.message?L=t[16]:(L=(0,y.jsx)(u,{className:`max-h-56 rounded-md border bg-muted/40`,children:(0,y.jsx)(`pre`,{className:I,children:n.message})}),t[15]=n.message,t[16]=L);let R;t[17]===r?R=t[18]:(R=(0,y.jsx)(l,{variant:`outline`,onClick:r,children:`Close`}),t[17]=r,t[18]=R);let z;t[19]===A?z=t[20]:(z=()=>void A(),t[19]=A,t[20]=z);let B;t[21]===S?B=t[22]:(B=S?(0,y.jsx)(o,{className:`h-4 w-4`}):(0,y.jsx)(c,{className:`h-4 w-4`}),t[21]=S,t[22]=B);let V=S?`Copied`:`Copy`,H;t[23]!==z||t[24]!==B||t[25]!==V?(H=(0,y.jsxs)(l,{variant:`outline`,onClick:z,children:[B,V]}),t[23]=z,t[24]=B,t[25]=V,t[26]=H):H=t[26];let U;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(s,{className:`h-4 w-4`}),t[27]=U):U=t[27];let W;t[28]===M?W=t[29]:(W=(0,y.jsxs)(l,{onClick:M,children:[U,`Fix in Chat`]}),t[28]=M,t[29]=W);let G;t[30]!==R||t[31]!==H||t[32]!==W?(G=(0,y.jsxs)(g,{className:`gap-2`,children:[R,H,W]}),t[30]=R,t[31]=H,t[32]=W,t[33]=G):G=t[33];let K;t[34]!==G||t[35]!==F||t[36]!==L?(K=(0,y.jsxs)(f,{className:`max-w-xl`,children:[F,L,G]}),t[34]=G,t[35]=F,t[36]=L,t[37]=K):K=t[37];let q;return t[38]!==O||t[39]!==K?(q=(0,y.jsx)(p,{open:!0,onOpenChange:O,children:K}),t[38]=O,t[39]=K,t[40]=q):q=t[40],q}export{x as CommitErrorDialog};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{tn as i}from"./dist-C99qsdM0.js";import{t as a}from"./utils-DIi62oP7.js";import{an as o,st as s,yn as c}from"./lucide-react-DW-FYOQd.js";import{t as l}from"./button-BRUlmKU9.js";import{r as u}from"./scroll-area-jzW_lBt7.js";import{Br as d,Hr as f,Lr as p,Rr as m,Vr as h,zr as g}from"./index-CU6xcKiy.js";var _=t(),v=e(n(),1),y=r(),b=1500;function x(e){let t=(0,_.c)(41),{error:n,onDismiss:r,onFixInChat:x}=e,[S,C]=(0,v.useState)(!1),w=(0,v.useRef)(null),T,E;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null)},E=[],t[0]=T,t[1]=E):(T=t[0],E=t[1]),(0,v.useEffect)(T,E);let D;t[2]===r?D=t[3]:(D=function(e){e||r()},t[2]=r,t[3]=D);let O=D,k;t[4]===n.message?k=t[5]:(k=async function(){try{await navigator.clipboard.writeText(n.message)}catch{}C(!0),w.current!==null&&clearTimeout(w.current),w.current=setTimeout(()=>{C(!1),w.current=null},b)},t[4]=n.message,t[5]=k);let A=k,j;t[6]!==n||t[7]!==x?(j=function(){x(n)},t[6]=n,t[7]=x,t[8]=j):j=t[8];let M=j,N;t[9]===n.title?N=t[10]:(N=(0,y.jsx)(f,{children:n.title}),t[9]=n.title,t[10]=N);let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,y.jsx)(g,{children:`Git returned an error, so the commit was not created. Fix the issue below, then try again.`}),t[11]=P):P=t[11];let F;t[12]===N?F=t[13]:(F=(0,y.jsxs)(h,{children:[N,P]}),t[12]=N,t[13]=F);let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=a(i.compact,`whitespace-pre-wrap break-words p-3 font-mono text-foreground`),t[14]=I):I=t[14];let L;t[15]===n.message?L=t[16]:(L=(0,y.jsx)(u,{className:`max-h-56 rounded-md border bg-muted/40`,children:(0,y.jsx)(`pre`,{className:I,children:n.message})}),t[15]=n.message,t[16]=L);let R;t[17]===r?R=t[18]:(R=(0,y.jsx)(l,{variant:`outline`,onClick:r,children:`Close`}),t[17]=r,t[18]=R);let z;t[19]===A?z=t[20]:(z=()=>void A(),t[19]=A,t[20]=z);let B;t[21]===S?B=t[22]:(B=S?(0,y.jsx)(c,{className:`h-4 w-4`}):(0,y.jsx)(o,{className:`h-4 w-4`}),t[21]=S,t[22]=B);let V=S?`Copied`:`Copy`,H;t[23]!==z||t[24]!==B||t[25]!==V?(H=(0,y.jsxs)(l,{variant:`outline`,onClick:z,children:[B,V]}),t[23]=z,t[24]=B,t[25]=V,t[26]=H):H=t[26];let U;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(s,{className:`h-4 w-4`}),t[27]=U):U=t[27];let W;t[28]===M?W=t[29]:(W=(0,y.jsxs)(l,{onClick:M,children:[U,`Fix in Chat`]}),t[28]=M,t[29]=W);let G;t[30]!==R||t[31]!==H||t[32]!==W?(G=(0,y.jsxs)(d,{className:`gap-2`,children:[R,H,W]}),t[30]=R,t[31]=H,t[32]=W,t[33]=G):G=t[33];let K;t[34]!==G||t[35]!==F||t[36]!==L?(K=(0,y.jsxs)(m,{className:`max-w-xl`,children:[F,L,G]}),t[34]=G,t[35]=F,t[36]=L,t[37]=K):K=t[37];let q;return t[38]!==O||t[39]!==K?(q=(0,y.jsx)(p,{open:!0,onOpenChange:O,children:K}),t[38]=O,t[39]=K,t[40]=q):q=t[40],q}export{x as CommitErrorDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Wt as n,bn as r}from"./dist-FJzwWcMv.js";import{t as i}from"./utils-uGptTPGm.js";import{wr as a}from"./index-DpDgcOE9.js";import{n as o,t as s}from"./toggle-group-D0gDKZ9x.js";var c=e(),l=t(),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 t=(0,c.c)(11),{commitMethod:a,onCommitMethodChange:f,disabled:p,className:m}=e,h=p===void 0?!1:p,g;t[0]===f?g=t[1]:(g=e=>{(e===r.PullRequest||e===r.Direct)&&f(e)},t[0]=f,t[1]=g);let _;t[2]===m?_=t[3]:(_=i(u,m),t[2]=m,t[3]=_);let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(o,{value:r.PullRequest,"aria-label":`Pull Requests`,className:i(n.body,d),children:`Pull Requests`}),t[4]=v):v=t[4];let y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(o,{value:r.Direct,"aria-label":`Direct Commits`,className:i(n.body,d),children:`Direct Commits`}),t[5]=y):y=t[5];let b;return t[6]!==a||t[7]!==h||t[8]!==g||t[9]!==_?(b=(0,l.jsxs)(s,{type:`single`,value:a,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),t[6]=a,t[7]=h,t[8]=g,t[9]=_,t[10]=b):b=t[10],b}function p(e){let t=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(a,{children:`Commit method`}),t[0]=s):s=t[0];let u;t[1]!==i||t[2]!==o?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:o}),t[1]=i,t[2]=o,t[3]=u):u=t[3];let d=i===r.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`,p;t[4]===d?p=t[5]:(p=(0,l.jsx)(`p`,{className:n.bodyMuted,children:d}),t[4]=d,t[5]=p);let m;return t[6]!==u||t[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),t[6]=u,t[7]=p,t[8]=m):m=t[8],m}export{f as i,d as n,p as r,u as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Nn as n,tn as r}from"./dist-C99qsdM0.js";import{t as i}from"./utils-DIi62oP7.js";import{Fr as a}from"./index-CU6xcKiy.js";import{n as o,t as s}from"./toggle-group-DP7rfPQH.js";var c=e(),l=t(),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 t=(0,c.c)(11),{commitMethod:a,onCommitMethodChange:f,disabled:p,className:m}=e,h=p===void 0?!1:p,g;t[0]===f?g=t[1]:(g=e=>{(e===n.PullRequest||e===n.Direct)&&f(e)},t[0]=f,t[1]=g);let _;t[2]===m?_=t[3]:(_=i(u,m),t[2]=m,t[3]=_);let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(o,{value:n.PullRequest,"aria-label":`Pull Requests`,className:i(r.body,d),children:`Pull Requests`}),t[4]=v):v=t[4];let y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(o,{value:n.Direct,"aria-label":`Direct Commits`,className:i(r.body,d),children:`Direct Commits`}),t[5]=y):y=t[5];let b;return t[6]!==a||t[7]!==h||t[8]!==g||t[9]!==_?(b=(0,l.jsxs)(s,{type:`single`,value:a,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),t[6]=a,t[7]=h,t[8]=g,t[9]=_,t[10]=b):b=t[10],b}function p(e){let t=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(a,{children:`Commit method`}),t[0]=s):s=t[0];let u;t[1]!==i||t[2]!==o?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:o}),t[1]=i,t[2]=o,t[3]=u):u=t[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;t[4]===d?p=t[5]:(p=(0,l.jsx)(`p`,{className:r.bodyMuted,children:d}),t[4]=d,t[5]=p);let m;return t[6]!==u||t[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),t[6]=u,t[7]=p,t[8]=m):m=t[8],m}export{f as i,d as n,p as r,u as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{t as i}from"./query-keys-C4ROIgnU.js";import{tn as a}from"./dist-C99qsdM0.js";import{i as o,t as s}from"./utils-DIi62oP7.js";import{$t as c,at as l,d as u}from"./lucide-react-DW-FYOQd.js";import{t as d}from"./button-BRUlmKU9.js";import{Di as f,Pt as p,Yi as m,l as ee,pi as h}from"./api-BPfzuuZQ.js";import{t as g}from"./progress-indicator-EuomTuL6.js";import{n as te}from"./use-toast-xpb5jNtN.js";import{Ar as _,Dr as ne,Er as re,Or as ie,Pr as ae,Qn as oe,Tr as v,Ur as y,Zn as b,jt as x,kr as S,ln as C,zt as w}from"./index-CU6xcKiy.js";import{t as T}from"./delete-confirm-dialog-Dg-9HMkY.js";import{i as E,r as D}from"./table-BIZvZqu5.js";var O=e(n(),1),k=t(),A=25;function se(){let e=(0,k.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:i.conversations.recent(),queryFn:j,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=y(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 a=r,o=n.data?.pages[0]?.total??0,s;return e[3]!==a||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]!==o?(s={conversations:a,total:o,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=a,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]=o,e[11]=s):s=e[11],s}function j(e){let{pageParam:t}=e;return p(A,t)}var M=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],N=new Set(M.map(function(e){return e.id}));function P(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&N.has(e)}):[]}catch{return[]}}function F(){return P(f(h.HISTORY_COLUMNS))}function I(){let e=(0,k.c)(6),[t,n]=(0,O.useState)(F),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 m(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 L=r(),R=36,z=3,B=`table-fixed`,V=`h-9 w-48 bg-transparent py-2`,H=`h-9 bg-transparent py-2`,U=`h-9 w-20 bg-transparent py-2 text-right`,W=`h-9 w-28 bg-transparent py-2 text-right`,G=`h-9 w-28 bg-transparent py-2 text-right`,K=`h-9 w-40 bg-transparent py-2`,q=`h-9 w-32 bg-transparent py-2`,ce=`h-9 w-24 bg-transparent py-2 text-right`,le=s(a.bodyMuted,`w-48 truncate py-1.5`),ue=`py-1.5`,J=s(a.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),Y=s(a.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),X=s(a.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),Z=s(a.bodyMuted,`w-40 truncate py-1.5`),Q=s(a.bodyMuted,`w-32 truncate py-1.5`),de=s(a.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function fe(e){let t=(0,k.c)(11),n,r;t[0]===e?(n=t[1],r=t[2]):({style:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===r?i=t[4]:(i={...r,width:`100%`},t[3]=r,t[4]=i);let o;t[5]===n.className?o=t[6]:(o=s(`w-full caption-bottom select-text`,B,a.body,n.className),t[5]=n.className,t[6]=o);let c;return t[7]!==n||t[8]!==i||t[9]!==o?(c=(0,L.jsx)(`table`,{...n,style:i,className:o}),t[7]=n,t[8]=i,t[9]=o,t[10]=c):c=t[10],c}function $(e){let t=(0,k.c)(5),n;t[0]===e.className?n=t[1]:(n=s(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,L.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function pe(e){let t=(0,k.c)(5),n;t[0]===e.className?n=t[1]:(n=s(`[&_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,L.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function me(e){let t=(0,k.c)(5),n;t[0]===e.className?n=t[1]:(n=s(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,L.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function he(e){return function(){return(0,L.jsx)(`tr`,{children:(0,L.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,L.jsx)(g,{centered:!0,label:`Loading more…`,size:`sm`})})})}}function ge(e){switch(e){case`turns`:return(0,L.jsx)(E,{className:U,children:`Turns`},e);case`inputTokens`:return(0,L.jsx)(E,{className:W,children:`Input Tokens`},e);case`outputTokens`:return(0,L.jsx)(E,{className:G,children:`Output Tokens`},e);case`model`:return(0,L.jsx)(E,{className:K,children:`Model`},e);case`branch`:return(0,L.jsx)(E,{className:q,children:`Branch`},e)}}function _e(e,t){switch(t){case`turns`:return(0,L.jsx)(D,{className:J,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,L.jsx)(D,{className:Y,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,L.jsx)(D,{className:X,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,L.jsx)(D,{className:Z,children:e.model??`—`},t);case`branch`:return(0,L.jsx)(D,{className:Q,children:e.branch},t)}}function ve(){let{openConversation:e}=oe(),t=b(),{toast:n}=te(),[r,i]=(0,O.useState)(!1),[f,p]=(0,O.useState)(!1),{visibleColumns:m,isColumnVisible:h,setColumnVisible:y}=I(),{conversations:k,isInitialLoading:A,isLoadingMore:j,error:N,hasNextPage:P,fetchNextPage:F,refetch:U}=se(),W=z+m.length,G=(0,O.useCallback)(async function(n){await e(n).catch(()=>!1)&&await t(n.threadId,n.conversationId)},[e,t]),K=(0,O.useCallback)(()=>{P&&!j&&F()},[F,P,j]);async function q(){p(!0);try{await ee(),await U(),i(!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{p(!1)}}let J=(0,O.useMemo)(function(){return function({item:e,...t}){return(0,L.jsx)(`tr`,{...t,className:s(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,t.className),onClick:()=>{e&&G(e)}})}},[G]),Y=(0,O.useMemo)(function(){return{Table:fe,TableHead:$,TableBody:pe,TableRow:J,Scroller:me,Footer:j?he(W):void 0}},[J,W,j]);function X(e,t){return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(D,{className:le,children:t.projectName}),(0,L.jsx)(D,{className:ue,children:(0,L.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,L.jsx)(l,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:s(a.body,`truncate`),children:t.title})]})}),M.map(function(e){return h(e.id)?_e(t,e.id):null}),(0,L.jsx)(D,{className:de,"aria-label":`Last updated ${o(t.lastMessageAt)} ago`,children:o(t.lastMessageAt)})]})}function Z(){return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(E,{className:V,children:`Project`}),(0,L.jsx)(E,{className:H,children:`Chat`}),M.map(function(e){return h(e.id)?ge(e.id):null}),(0,L.jsx)(E,{className:ce,children:`Updated`})]})}let Q=(0,L.jsx)(`table`,{className:s(`w-full caption-bottom`,B,a.body),children:(0,L.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,L.jsx)(`tr`,{children:Z()})})});return(0,L.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,L.jsxs)(w,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,L.jsx)(x,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:k.length>0?Q:void 0,action:(0,L.jsxs)(v,{children:[(0,L.jsx)(ae,{asChild:!0,children:(0,L.jsx)(d,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,L.jsx)(c,{className:`h-4 w-4`})})}),(0,L.jsxs)(ne,{align:`end`,className:`w-48`,children:[(0,L.jsx)(S,{className:a.body,children:`Columns`}),M.map(function(e){return(0,L.jsx)(re,{checked:h(e.id),onCheckedChange:t=>{y(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,L.jsx)(_,{}),(0,L.jsxs)(ie,{className:s(a.body,`gap-2 text-destructive focus:text-destructive`),disabled:k.length===0,onSelect:()=>i(!0),children:[(0,L.jsx)(u,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:A?(0,L.jsx)(g,{centered:!0,label:`Loading conversation history...`,size:`lg`}):N?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,L.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,L.jsx)(`p`,{className:a.body,children:N instanceof Error?N.message:`Failed to load conversation history`}),(0,L.jsx)(d,{onClick:()=>void U(),children:`Try again`})]})}):k.length===0?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,L.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,L.jsx)(`h3`,{className:a.emptyStateTitle,children:`No history`}),(0,L.jsx)(`p`,{className:a.bodyMuted,children:`No conversations found yet.`})]})}):(0,L.jsx)(C,{style:{height:`100%`},data:k,computeItemKey:(e,t)=>t.conversationId,itemContent:X,endReached:K,defaultItemHeight:R,increaseViewportBy:R*5,components:Y})})]}),(0,L.jsx)(T,{open:r,onOpenChange:i,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void q(),confirming:f,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{ve as default};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{W as i,Wt as a,bn as o,yn as s}from"./dist-FJzwWcMv.js";import{t as c}from"./utils-uGptTPGm.js";import{Yt as l}from"./lucide-react-CMzSV2MP.js";import{t as u}from"./button-zYjzm__g.js";import{Di as d,Fi as f,It as p,Jt as m,_i as h,qi as g,s as _,ta as v,zi as y}from"./api-CX0sFbpL.js";import{n as b}from"./scroll-area-BTpvIsIG.js";import{Ar as x,Dr as S,Er as C,Or as w,Tr as T,jr as E,kr as D,wr as O,y as k}from"./index-DpDgcOE9.js";import{n as A,t as j}from"./toggle-group-D0gDKZ9x.js";import{r as M}from"./commit-method-fields-6Ag-XY8a.js";var N=e(n(),1),P=t(),F={"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 I(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ee(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 te=i(`app.create-project-dialog.ui`);async function L(){try{if(await _())return!0;let e=`macOS / Linux: curl -fsSL https://vite.plus | bash
2
- Windows: irm https://vite.plus/ps1 | iex`;if(!window.confirm(`Vite Plus is required for this template but is not installed.\n\nIs it ok to install Vite Plus using the following command?\n\n${e}`))return!1;let{success:t,error:n}=await m();return t?await _()?!0:(window.alert(`Vite Plus was installed but could not be verified.\n\nTry restarting the app — if it is still missing, install it manually with:\n\n${e}`),!1):(window.alert(`Failed to install Vite Plus:\n${n||`Unknown error`}`),!1)}catch(e){return te.error(`Vite Plus check/install failed:`,e),!0}}function ne(e){let t=(0,P.c)(43),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,i]=(0,N.useState)(n),[a,o]=(0,N.useState)(!1),s=Array.isArray(r)&&r.length>0,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{o(!0),p().then(e=>i(e?.templates||[])).catch(()=>i([])).finally(()=>o(!1))},t[1]=c):c=t[1];let l=c,u,d;if(t[2]!==r){if(u={},Array.isArray(r))for(let e of r){let t=e.typeName;u[t]||(u[t]=[]),u[t].push(e)}d=Object.keys(u).sort(),t[2]=r,t[3]=u,t[4]=d}else u=t[3],d=t[4];let f=d,m;t[5]!==u||t[6]!==f?(m={typeNames:f,templatesByTypeName:u},t[5]=u,t[6]=f,t[7]=m):m=t[7];let{typeNames:h,templatesByTypeName:g}=m,_;if(t[8]!==g){_={};for(let e of Object.keys(g)){let t=g[e]??[];if(t.length===0)continue;let n=t.find(H),r=t.filter(V),i=n?[n,...r]:t;_[e]=i[0].id}t[8]=g,t[9]=_}else _=t[9];let y=_,b;bb0:{if(!Array.isArray(r)){b=e;break bb0}if(r.find(t=>t.id===e)){b=e;break bb0}if(r.length===0){b=e;break bb0}let n=h[0],i;t[10]!==n||t[11]!==g?(i=n?g[n]??[]:[],t[10]=n,t[11]=g,t[12]=i):i=t[12];let a=i,o;t[13]===a?o=t[14]:(o=a.find(B),t[13]=a,t[14]=o),b=(o??a[0])?.id??e}let x=b,S;bb1:{if(!x||!Array.isArray(r)||r.length===0){S=null;break bb1}let e;t[15]!==x||t[16]!==r?(e=r.find(e=>e.id===x)?.typeName??null,t[15]=x,t[16]=r,t[17]=e):e=t[17],S=e}let C=S,w;bb2:{let e;t[18]!==C||t[19]!==g?(e=C?g[C]??[]:[],t[18]=C,t[19]=g,t[20]=e):e=t[20];let n=e;if(n.length<=1){w=n;break bb2}let r;t[21]===n?r=t[22]:(r=n.find(z),t[21]=n,t[22]=r);let i=r,a;if(t[23]!==n||t[24]!==i){let e=n.filter(R);a=i?[i,...e]:n,t[23]=n,t[24]=i,t[25]=a}else a=t[25];w=a}let T=w,E;t[26]!==x||t[27]!==r?(E=x&&Array.isArray(r)?r.find(e=>e.id===x):void 0,t[26]=x,t[27]=r,t[28]=E):E=t[28];let D=E,O,k;t[29]===x?(O=t[30],k=t[31]):(O=()=>{x&&v(x)},k=[x],t[29]=x,t[30]=O,t[31]=k),(0,N.useEffect)(O,k);let A;return t[32]!==x||t[33]!==y||t[34]!==s||t[35]!==D||t[36]!==C||t[37]!==r||t[38]!==g||t[39]!==a||t[40]!==h||t[41]!==T?(A={templates:r,templatesLoading:a,hasTemplates:s,loadTemplates:l,typeNames:h,templatesByTypeName:g,firstVariationIdByTypeName:y,effectiveTemplateId:x,selectedTypeNameFromEffective:C,variations:T,selectedTemplate:D},t[32]=x,t[33]=y,t[34]=s,t[35]=D,t[36]=C,t[37]=r,t[38]=g,t[39]=a,t[40]=h,t[41]=T,t[42]=A):A=t[42],A}function R(e){return e.variationName!==`Starter`}function z(e){return e.variationName===`Starter`}function B(e){return e.variationName===`Starter`}function V(e){return e.variationName!==`Starter`}function H(e){return e.variationName===`Starter`}function U(e){return e===`folder`?3:2}function W(e){return e===`folder`?{projectName:``,projectNameUserEdited:!1,loadedImages:new Set}:{projectName:`My App`,projectNameUserEdited:!1,loadedImages:new Set}}function G(e,t,n){return e?t:n?`My ${n} App`:`My App`}function K(e,t,n,r){return e===`clone`?t.trim().length>0:e===`folder`?n.trim().length>0&&!!I(n):r!==null}function q(e,t){return e===`folder`?1:t-1}function J(e,t,n,r){return e===`folder`?r===1:r===1?t>2:t>=3||t===2&&n}function Y(e,t){return e===2||t===`folder`}function X(e){e.onDialogDismissed?.(),e.setMode(`clone`),e.setDialogStep(2),e.setGitUrl(``),e.setProjectName(`My App`),e.setProjectNameUserEdited(!1),e.setLoadedImages(new Set),e.onOpenChange(!1)}function Z(e){e.setDialogStep(2),e.onOpenChange(!1),e.setMode(`clone`)}async function Q(e){if(!e.projectNameDisplay.trim()||!e.effectiveTemplateId||!I(e.projectNameDisplay))return;if(e.selectedTemplate?.variation===`vite-plus`){e.setIsCheckingVp(!0);let t=await L();if(e.setIsCheckingVp(!1),!t)return}let t=e.projectNameDisplay.trim();e.setProjectName(``),e.setProjectNameUserEdited(!1),Z(e),e.onSubmitWebApp(t,e.effectiveTemplateId,e.packageManager)}function re(e){function t(){X(e)}function n(){if(Y(e.dialogStep,e.mode)){t();return}e.setDialogStep(2)}function r(t){e.setCommitMethod(t),y(t)}function i(){if(!e.gitUrl.trim())return;let t=e.gitUrl.trim();e.setGitUrl(``),Z(e),e.onSubmitClone(t,e.commitMethod).catch(()=>{})}async function a(){await Q(e)}function o(){let t=e.projectName.trim();!t||!I(t)||(e.setProjectName(``),e.setProjectNameUserEdited(!1),Z(e),e.onSubmitFolder(t))}function s(t){return J(e.mode,e.dialogStep,e.canGoToStep3,t)}function c(t){e.mode!==`folder`&&e.setDialogStep(t===1?2:3)}function l(t){e.setProjectName(t),e.setProjectNameUserEdited(!0)}function u(t){e.setTemplateId(e.firstVariationIdByTypeName[t]??``)}function d(t){e.setTemplateId(e.firstVariationIdByTypeName[t]??``),e.setDialogStep(3)}function f(t){e.setPackageManager(t),g(t)}function p(){e.setDialogStep(3)}return{resetAndClose:t,handleBack:n,handleCommitMethodChange:r,handleSubmitClone:i,handleSubmitWebApp:a,handleSubmitFolder:o,canGoToFlowStep:s,goToFlowStep:c,handleProjectNameChange:l,handleSelectType:u,handleSelectTypeAndAdvance:d,handlePackageManagerChange:f,handleNext:p}}function ie(e,t,n,r){let i=W(e);r.setMode(e),r.setDialogStep(U(e)),r.setGitUrl(``),r.setProjectName(i.projectName),r.setProjectNameUserEdited(i.projectNameUserEdited),r.setLoadedImages(i.loadedImages),e===`webapp`&&!t&&n()}function ae(e,t,n,r,i){let a=(0,P.c)(7),o,s;a[0]!==n||a[1]!==t||a[2]!==r||a[3]!==e||a[4]!==i?(o=()=>{!e||!t||ie(t,n,r,i)},s=[e,t,n,r,i],a[0]=n,a[1]=t,a[2]=r,a[3]=e,a[4]=i,a[5]=o,a[6]=s):(o=a[5],s=a[6]),(0,N.useEffect)(o,s)}function oe(e){let t=(0,P.c)(8),[n,r]=(0,N.useState)(e),i;t[0]===e?i=t[1]:(i=U(e),t[0]=e,t[1]=i);let[a,s]=(0,N.useState)(i),[c,l]=(0,N.useState)(``),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=h(o.PullRequest),t[2]=u):u=t[2];let[d,f]=(0,N.useState)(u),p;return t[3]!==d||t[4]!==a||t[5]!==c||t[6]!==n?(p={mode:n,setMode:r,dialogStep:a,setDialogStep:s,gitUrl:c,setGitUrl:l,commitMethod:d,setCommitMethod:f},t[3]=d,t[4]=a,t[5]=c,t[6]=n,t[7]=p):p=t[7],p}function se(){let e=(0,P.c)(10),[t,n]=(0,N.useState)(`My App`),[r,i]=(0,N.useState)(!1),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=f(),e[0]=a):a=e[0];let[o,s]=(0,N.useState)(a),c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=d(),e[1]=c):c=e[1];let[l,u]=(0,N.useState)(c),[p,m]=(0,N.useState)(!1),h;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=new Set,e[2]=h):h=e[2];let[g,_]=(0,N.useState)(h),v;return e[3]!==p||e[4]!==g||e[5]!==l||e[6]!==t||e[7]!==r||e[8]!==o?(v={projectName:t,setProjectName:n,projectNameUserEdited:r,setProjectNameUserEdited:i,templateId:o,setTemplateId:s,packageManager:l,setPackageManager:u,isCheckingVp:p,setIsCheckingVp:m,loadedImages:g,setLoadedImages:_},e[3]=p,e[4]=g,e[5]=l,e[6]=t,e[7]=r,e[8]=o,e[9]=v):v=e[9],v}function ce({open:e,onOpenChange:t,onDialogDismissed:n,initialMode:r,onSubmitClone:i,onSubmitWebApp:a,onSubmitFolder:o}){let{mode:s,setMode:c,dialogStep:l,setDialogStep:u,gitUrl:d,setGitUrl:f,commitMethod:p,setCommitMethod:m}=oe(r??`clone`),{projectName:h,setProjectName:g,projectNameUserEdited:_,setProjectNameUserEdited:v,templateId:y,setTemplateId:b,packageManager:x,setPackageManager:S,isCheckingVp:C,setIsCheckingVp:w,loadedImages:T,setLoadedImages:E}=se(),D=(0,N.useCallback)(e=>{E(t=>new Set(t).add(e))},[]),{templatesLoading:O,hasTemplates:k,loadTemplates:A,typeNames:j,templatesByTypeName:M,firstVariationIdByTypeName:P,effectiveTemplateId:F,selectedTypeNameFromEffective:I,variations:te,selectedTemplate:L}=ne(y);ae(e,r,k,A,(0,N.useMemo)(()=>({setMode:c,setDialogStep:u,setGitUrl:f,setProjectName:g,setProjectNameUserEdited:v,setLoadedImages:E}),[]));let R=(0,N.useMemo)(()=>G(_,h,I),[_,h,I]),z=K(s,d,h,I),B=l,V=q(s,l),H=ee(B,s,I);return{open:e,showStepIndicator:s!==`folder`,flowStep:V,stepHeading:H,step:B,mode:s,canGoToStep3:z,gitUrl:d,setGitUrl:f,templatesLoading:O,typeNames:j,templatesByTypeName:M,selectedTypeNameFromEffective:I,loadedImages:T,handleImageLoad:D,projectName:h,projectNameDisplay:R,variations:te,effectiveTemplateId:F,setTemplateId:b,selectedTemplate:L,packageManager:x,commitMethod:p,isCheckingVp:C,...re({mode:s,dialogStep:l,gitUrl:d,commitMethod:p,projectName:h,projectNameDisplay:R,packageManager:x,canGoToStep3:z,firstVariationIdByTypeName:P,effectiveTemplateId:F,selectedTemplate:L,onOpenChange:t,onDialogDismissed:n,onSubmitClone:i,onSubmitWebApp:a,onSubmitFolder:o,setMode:c,setDialogStep:u,setGitUrl:f,setCommitMethod:m,setProjectName:g,setProjectNameUserEdited:v,setTemplateId:b,setPackageManager:S,setIsCheckingVp:w,setLoadedImages:E})}}var $=r();function le(e){let t=(0,P.c)(10),{gitUrl:n,onGitUrlChange:r,canProceed:i,onNext:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(O,{htmlFor:`gitUrl`,children:`Repository URL`}),t[0]=o):o=t[0];let s;t[1]===r?s=t[2]:(s=e=>r(e.target.value),t[1]=r,t[2]=s);let c;t[3]!==i||t[4]!==a?(c=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=c):c=t[5];let l;return t[6]!==n||t[7]!==s||t[8]!==c?(l=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsx)(`div`,{className:`px-6 py-4`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,$.jsx)(T,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:n,onChange:s,onKeyDown:c,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,autoFocus:!0})]})})}),t[6]=n,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function ue(e){let t=(0,P.c)(11),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:o,loadedImages:s,onImageLoad:l,onSelectType:u,onSelectTypeAndAdvance:d}=e,f;t[0]!==s||t[1]!==l||t[2]!==u||t[3]!==d||t[4]!==o||t[5]!==i||t[6]!==n||t[7]!==r?(f=n?(0,$.jsx)(`p`,{className:c(a.bodyMuted,`col-span-full p-4`),children:`Loading…`}):r.map(e=>{let t=i[e]?.[0]?.type,n=t?F[t]:null,r=o===e;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>u(e),onDoubleClick:()=>d(e),className:c(`group flex flex-col items-center gap-0 rounded-lg px-1 py-1 text-center transition-colors`,r?`text-accent-foreground`:`text-foreground`),children:[(0,$.jsx)(`div`,{className:c(`relative flex size-20 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-[hsl(0_0%_35%)] bg-gradient-to-br from-[hsl(0_0%_35%)] to-[hsl(0_0%_25%)] text-white/70 transition-transform can-hover:group-hover:scale-[1.03]`,r&&`ring-[3px] ring-brand`),children:n?(0,$.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:c(`relative size-8 shrink-0 transition-opacity duration-300`,s.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>l(n),"aria-hidden":!0}):null}),(0,$.jsx)(`span`,{className:c(a.compact,`w-full truncate pt-1 font-medium`),children:e})]},e)}),t[0]=s,t[1]=l,t[2]=u,t[3]=d,t[4]=o,t[5]=i,t[6]=n,t[7]=r,t[8]=f):f=t[8];let p;return t[9]===f?p=t[10]:(p=(0,$.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,$.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,$.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,$.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-1 p-1 mr-2`,children:f})})})}),t[9]=f,t[10]=p),p}function de(e){let t=(0,P.c)(17),{projectName:n,onProjectNameChange:r,canSubmit:i,onSubmit:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(O,{htmlFor:`folderProjectName`,children:`Project Name`}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=e=>r(e.target.value),t[1]=r,t[2]=c);let l;t[3]!==i||t[4]!==o?(l=e=>e.key===`Enter`&&i&&o(),t[3]=i,t[4]=o,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==c||t[8]!==l?(u=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[s,(0,$.jsx)(T,{id:`folderProjectName`,placeholder:`My Project`,value:n,onChange:c,onKeyDown:l,autoFocus:!0,className:`w-full`})]}),t[6]=n,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===n?d=t[11]:(d=I(n)||`project-name`,t[10]=n,t[11]=d);let f;t[12]===d?f=t[13]:(f=(0,$.jsxs)(`p`,{className:a.bodyMuted,children:[`Folder name: `,d]}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-3`,children:[u,f]})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function fe(e){let t=(0,P.c)(33),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:o,onTemplateIdChange:c,selectedTemplate:u,packageManager:d,onPackageManagerChange:f,commitMethod:p,onCommitMethodChange:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(O,{htmlFor:`projectName`,children:`Project Name`}),t[0]=h):h=t[0];let g;t[1]===r?g=t[2]:(g=e=>r(e.target.value),t[1]=r,t[2]=g);let _;t[3]!==n||t[4]!==g?(_=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[h,(0,$.jsx)(T,{id:`projectName`,placeholder:`My App`,value:n,onChange:g,className:`w-full`})]}),t[3]=n,t[4]=g,t[5]=_):_=t[5];let v;t[6]!==o||t[7]!==c||t[8]!==i?(v=i.length>1&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(O,{children:`Variation`}),(0,$.jsx)(j,{type:`single`,value:o,onValueChange:e=>e&&c(e),variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:i.map(me)})]}),t[6]=o,t[7]=c,t[8]=i,t[9]=v):v=t[9];let y=u?.description??i[0]?.description??``,x;t[10]===u?x=t[11]:(x=u?.url&&(0,$.jsxs)($.Fragment,{children:[` `,(0,$.jsxs)(`a`,{href:u.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,$.jsx)(l,{className:`h-3 w-3`})]})]}),t[10]=u,t[11]=x);let S;t[12]!==y||t[13]!==x?(S=(0,$.jsxs)(`p`,{className:a.bodyMuted,children:[y,x]}),t[12]=y,t[13]=x,t[14]=S):S=t[14];let C;t[15]!==v||t[16]!==S?(C=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v,S]}),t[15]=v,t[16]=S,t[17]=C):C=t[17];let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(O,{children:`Package manager`}),t[18]=w):w=t[18];let E;t[19]===f?E=t[20]:(E=e=>{e&&f(e)},t[19]=f,t[20]=E);let D;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(D=Object.values(s).map(pe),t[21]=D):D=t[21];let k;t[22]!==d||t[23]!==E?(k=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[w,(0,$.jsx)(j,{type:`single`,value:d,onValueChange:E,variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:D})]}),t[22]=d,t[23]=E,t[24]=k):k=t[24];let A;t[25]!==p||t[26]!==m?(A=(0,$.jsx)(M,{commitMethod:p,onCommitMethodChange:m}),t[25]=p,t[26]=m,t[27]=A):A=t[27];let N;return t[28]!==k||t[29]!==A||t[30]!==_||t[31]!==C?(N=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[_,C,k,A]})}),t[28]=k,t[29]=A,t[30]=_,t[31]=C,t[32]=N):N=t[32],N}function pe(e){return(0,$.jsx)(A,{value:e.id,className:a.body,children:e.label},e.id)}function me(e){return(0,$.jsx)(A,{value:e.id,className:a.body,children:e.variationName},e.id)}function he(e){let t=(0,P.c)(5),{canGoToStep3:n,gitUrl:r,onGitUrlChange:i,onNext:a}=e,o;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a?(o=(0,$.jsx)(le,{gitUrl:r,onGitUrlChange:i,canProceed:n,onNext:a}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o):o=t[4],o}function ge(e){let t=(0,P.c)(9),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeNameFromEffective:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}=e,u;return t[0]!==o||t[1]!==s||t[2]!==c||t[3]!==l||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(u=(0,$.jsx)(ue,{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}),t[0]=o,t[1]=s,t[2]=c,t[3]=l,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=u):u=t[8],u}function _e(e){let t=(0,P.c)(5),{canGoToStep3:n,projectName:r,onProjectNameChange:i,onSubmitFolder:a}=e,o;return t[0]!==n||t[1]!==i||t[2]!==a||t[3]!==r?(o=(0,$.jsx)(de,{projectName:r,onProjectNameChange:i,canSubmit:n,onSubmit:a}),t[0]=n,t[1]=i,t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function ve(e){let t=(0,P.c)(11),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}=e,f;return t[0]!==u||t[1]!==a||t[2]!==d||t[3]!==l||t[4]!==r||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==s||t[9]!==i?(f=(0,$.jsx)(fe,{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}),t[0]=u,t[1]=a,t[2]=d,t[3]=l,t[4]=r,t[5]=o,t[6]=c,t[7]=n,t[8]=s,t[9]=i,t[10]=f):f=t[10],f}function ye(e){let t=(0,P.c)(3),{commitMethod:n,onCommitMethodChange:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,$.jsx)(b,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-6 px-6 py-4`,children:(0,$.jsx)(M,{commitMethod:n,onCommitMethodChange:r})})}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function be(e){let t=(0,P.c)(33),{step:n,mode:r,canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s,templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h,projectName:g,onProjectNameChange:_,onSubmitFolder:v,projectNameDisplay:y,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}=e;switch(`${n}:${r}`){case`2:clone`:{let e;return t[0]!==i||t[1]!==a||t[2]!==o||t[3]!==s?(e=(0,$.jsx)(he,{canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s}),t[0]=i,t[1]=a,t[2]=o,t[3]=s,t[4]=e):e=t[4],e}case`2:webapp`:{let e;return t[5]!==f||t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==d||t[10]!==u||t[11]!==c||t[12]!==l?(e=(0,$.jsx)(ge,{templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h}),t[5]=f,t[6]=p,t[7]=m,t[8]=h,t[9]=d,t[10]=u,t[11]=c,t[12]=l,t[13]=e):e=t[13],e}case`3:folder`:{let e;return t[14]!==i||t[15]!==_||t[16]!==v||t[17]!==g?(e=(0,$.jsx)(_e,{canGoToStep3:i,projectName:g,onProjectNameChange:_,onSubmitFolder:v}),t[14]=i,t[15]=_,t[16]=v,t[17]=g,t[18]=e):e=t[18],e}case`3:webapp`:{let e;return t[19]!==E||t[20]!==x||t[21]!==D||t[22]!==T||t[23]!==_||t[24]!==S||t[25]!==w||t[26]!==y||t[27]!==C||t[28]!==b?(e=(0,$.jsx)(ve,{projectNameDisplay:y,onProjectNameChange:_,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}),t[19]=E,t[20]=x,t[21]=D,t[22]=T,t[23]=_,t[24]=S,t[25]=w,t[26]=y,t[27]=C,t[28]=b,t[29]=e):e=t[29],e}default:{let e;return t[30]!==E||t[31]!==D?(e=(0,$.jsx)(ye,{commitMethod:E,onCommitMethodChange:D}),t[30]=E,t[31]=D,t[32]=e):e=t[32],e}}}function xe(e){let t=(0,P.c)(30),{step:n,mode:r,canGoToStep3:i,projectName:a,projectNameDisplay:o,isCheckingVp:s,onBack:c,onNext:l,onSubmitClone:d,onSubmitFolder:f,onSubmitWebApp:p}=e,m;t[0]!==r||t[1]!==c||t[2]!==n?(m=n===3&&r!==`folder`&&(0,$.jsx)(u,{variant:`ghost`,onClick:c,children:`Back`}),t[0]=r,t[1]=c,t[2]=n,t[3]=m):m=t[3];let h;t[4]!==i||t[5]!==r||t[6]!==l||t[7]!==n?(h=n===2&&r!==`folder`&&(0,$.jsx)(u,{onClick:l,disabled:!i,children:`Next`}),t[4]=i,t[5]=r,t[6]=l,t[7]=n,t[8]=h):h=t[8];let g;t[9]!==r||t[10]!==d||t[11]!==n?(g=n===3&&r===`clone`&&(0,$.jsx)(u,{onClick:d,children:`Create Project`}),t[9]=r,t[10]=d,t[11]=n,t[12]=g):g=t[12];let _;t[13]!==r||t[14]!==f||t[15]!==a||t[16]!==n?(_=n===3&&r===`folder`&&(0,$.jsx)(u,{onClick:f,disabled:!a.trim()||!I(a),children:`Create Project`}),t[13]=r,t[14]=f,t[15]=a,t[16]=n,t[17]=_):_=t[17];let v;t[18]!==s||t[19]!==r||t[20]!==p||t[21]!==o||t[22]!==n?(v=n===3&&r===`webapp`&&(0,$.jsx)(u,{onClick:p,disabled:!o.trim()||s,children:s?`Preparing...`:`Create Project`}),t[18]=s,t[19]=r,t[20]=p,t[21]=o,t[22]=n,t[23]=v):v=t[23];let y;return t[24]!==m||t[25]!==h||t[26]!==g||t[27]!==_||t[28]!==v?(y=(0,$.jsx)(`div`,{className:`flex min-h-[4.5rem] flex-col justify-end border-t border-border bg-muted/10 px-6 py-4`,children:(0,$.jsxs)(D,{children:[m,h,g,_,v]})}),t[24]=m,t[25]=h,t[26]=g,t[27]=_,t[28]=v,t[29]=y):y=t[29],y}function Se(e){let t=(0,P.c)(66),{open:n,resetAndClose:r,showStepIndicator:i,flowStep:a,canGoToFlowStep:o,goToFlowStep:s,stepHeading:c,step:l,mode:u,canGoToStep3:d,gitUrl:f,setGitUrl:p,handleNext:m,templatesLoading:h,typeNames:g,templatesByTypeName:_,selectedTypeNameFromEffective:v,loadedImages:y,handleImageLoad:b,handleSelectType:T,handleSelectTypeAndAdvance:D,projectName:O,handleProjectNameChange:A,handleSubmitFolder:j,projectNameDisplay:M,variations:N,effectiveTemplateId:F,setTemplateId:I,selectedTemplate:ee,packageManager:te,handlePackageManagerChange:L,commitMethod:ne,handleCommitMethodChange:R,isCheckingVp:z,handleBack:B,handleSubmitClone:V,handleSubmitWebApp:H}=ce(e),U;t[0]===r?U=t[1]:(U=e=>!e&&r(),t[0]=r,t[1]=U);let W;t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==i?(W=i?(0,$.jsx)(k,{currentStep:a,canGoToStep:o,onGoToStep:s}):null,t[2]=o,t[3]=a,t[4]=s,t[5]=i,t[6]=W):W=t[6];let G;t[7]===c.title?G=t[8]:(G=(0,$.jsx)(E,{children:c.title}),t[7]=c.title,t[8]=G);let K;t[9]===c.description?K=t[10]:(K=(0,$.jsx)(w,{children:c.description}),t[9]=c.description,t[10]=K);let q;t[11]!==G||t[12]!==K?(q=(0,$.jsxs)(x,{children:[G,K]}),t[11]=G,t[12]=K,t[13]=q):q=t[13];let J;t[14]!==W||t[15]!==q?(J=(0,$.jsxs)(`div`,{className:`px-6 pb-2 pt-6`,children:[W,q]}),t[14]=W,t[15]=q,t[16]=J):J=t[16];let Y;t[17]!==d||t[18]!==ne||t[19]!==F||t[20]!==f||t[21]!==R||t[22]!==b||t[23]!==m||t[24]!==L||t[25]!==A||t[26]!==T||t[27]!==D||t[28]!==j||t[29]!==y||t[30]!==u||t[31]!==te||t[32]!==O||t[33]!==M||t[34]!==ee||t[35]!==v||t[36]!==p||t[37]!==I||t[38]!==l||t[39]!==_||t[40]!==h||t[41]!==g||t[42]!==N?(Y=(0,$.jsx)(be,{step:l,mode:u,canGoToStep3:d,gitUrl:f,onGitUrlChange:p,onNext:m,templatesLoading:h,typeNames:g,templatesByTypeName:_,selectedTypeNameFromEffective:v,loadedImages:y,onImageLoad:b,onSelectType:T,onSelectTypeAndAdvance:D,projectName:O,onProjectNameChange:A,onSubmitFolder:j,projectNameDisplay:M,variations:N,effectiveTemplateId:F,onTemplateIdChange:I,selectedTemplate:ee,packageManager:te,onPackageManagerChange:L,commitMethod:ne,onCommitMethodChange:R}),t[17]=d,t[18]=ne,t[19]=F,t[20]=f,t[21]=R,t[22]=b,t[23]=m,t[24]=L,t[25]=A,t[26]=T,t[27]=D,t[28]=j,t[29]=y,t[30]=u,t[31]=te,t[32]=O,t[33]=M,t[34]=ee,t[35]=v,t[36]=p,t[37]=I,t[38]=l,t[39]=_,t[40]=h,t[41]=g,t[42]=N,t[43]=Y):Y=t[43];let X;t[44]===H?X=t[45]:(X=()=>void H(),t[44]=H,t[45]=X);let Z;t[46]!==d||t[47]!==B||t[48]!==m||t[49]!==V||t[50]!==j||t[51]!==z||t[52]!==u||t[53]!==O||t[54]!==M||t[55]!==l||t[56]!==X?(Z=(0,$.jsx)(xe,{step:l,mode:u,canGoToStep3:d,projectName:O,projectNameDisplay:M,isCheckingVp:z,onBack:B,onNext:m,onSubmitClone:V,onSubmitFolder:j,onSubmitWebApp:X}),t[46]=d,t[47]=B,t[48]=m,t[49]=V,t[50]=j,t[51]=z,t[52]=u,t[53]=O,t[54]=M,t[55]=l,t[56]=X,t[57]=Z):Z=t[57];let Q;t[58]!==J||t[59]!==Y||t[60]!==Z?(Q=(0,$.jsxs)(S,{className:`flex h-[min(42rem,90dvh)] max-w-2xl flex-col overflow-hidden p-0`,children:[J,Y,Z]}),t[58]=J,t[59]=Y,t[60]=Z,t[61]=Q):Q=t[61];let re;return t[62]!==n||t[63]!==U||t[64]!==Q?(re=(0,$.jsx)(C,{open:n,onOpenChange:U,children:Q}),t[62]=n,t[63]=U,t[64]=Q,t[65]=re):re=t[65],re}export{xe as ProjectDialogFooter,Se as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{$ as i,Mn as a,Nn as o,tn as s}from"./dist-C99qsdM0.js";import{t as c}from"./utils-DIi62oP7.js";import{Zt as l}from"./lucide-react-DW-FYOQd.js";import{t as u}from"./button-BRUlmKU9.js";import{Ai as d,Hi as f,It as p,Ri as m,Yt as h,Zi as g,aa as _,s as v,yi as y}from"./api-BPfzuuZQ.js";import{n as b}from"./scroll-area-jzW_lBt7.js";import{Br as x,Fr as S,Hr as C,Ir as w,Lr as T,Rr as E,Vr as D,x as O,zr as k}from"./index-CU6xcKiy.js";import{n as A,t as j}from"./toggle-group-DP7rfPQH.js";import{r as M}from"./commit-method-fields-BPRRj550.js";var N=e(n(),1),P=t(),F={"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 I(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ee(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 te=i(`app.create-project-dialog.ui`);async function L(){try{if(await v())return!0;let e=`macOS / Linux: curl -fsSL https://vite.plus | bash
2
+ Windows: irm https://vite.plus/ps1 | iex`;if(!window.confirm(`Vite Plus is required for this template but is not installed.\n\nIs it ok to install Vite Plus using the following command?\n\n${e}`))return!1;let{success:t,error:n}=await h();return t?await v()?!0:(window.alert(`Vite Plus was installed but could not be verified.\n\nTry restarting the app — if it is still missing, install it manually with:\n\n${e}`),!1):(window.alert(`Failed to install Vite Plus:\n${n||`Unknown error`}`),!1)}catch(e){return te.error(`Vite Plus check/install failed:`,e),!0}}function ne(e){let t=(0,P.c)(43),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,i]=(0,N.useState)(n),[a,o]=(0,N.useState)(!1),s=Array.isArray(r)&&r.length>0,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{o(!0),p().then(e=>i(e?.templates||[])).catch(()=>i([])).finally(()=>o(!1))},t[1]=c):c=t[1];let l=c,u,d;if(t[2]!==r){if(u={},Array.isArray(r))for(let e of r){let t=e.typeName;u[t]||(u[t]=[]),u[t].push(e)}d=Object.keys(u).sort(),t[2]=r,t[3]=u,t[4]=d}else u=t[3],d=t[4];let f=d,m;t[5]!==u||t[6]!==f?(m={typeNames:f,templatesByTypeName:u},t[5]=u,t[6]=f,t[7]=m):m=t[7];let{typeNames:h,templatesByTypeName:g}=m,v;if(t[8]!==g){v={};for(let e of Object.keys(g)){let t=g[e]??[];if(t.length===0)continue;let n=t.find(H),r=t.filter(V),i=n?[n,...r]:t;v[e]=i[0].id}t[8]=g,t[9]=v}else v=t[9];let y=v,b;bb0:{if(!Array.isArray(r)){b=e;break bb0}if(r.find(t=>t.id===e)){b=e;break bb0}if(r.length===0){b=e;break bb0}let n=h[0],i;t[10]!==n||t[11]!==g?(i=n?g[n]??[]:[],t[10]=n,t[11]=g,t[12]=i):i=t[12];let a=i,o;t[13]===a?o=t[14]:(o=a.find(B),t[13]=a,t[14]=o),b=(o??a[0])?.id??e}let x=b,S;bb1:{if(!x||!Array.isArray(r)||r.length===0){S=null;break bb1}let e;t[15]!==x||t[16]!==r?(e=r.find(e=>e.id===x)?.typeName??null,t[15]=x,t[16]=r,t[17]=e):e=t[17],S=e}let C=S,w;bb2:{let e;t[18]!==C||t[19]!==g?(e=C?g[C]??[]:[],t[18]=C,t[19]=g,t[20]=e):e=t[20];let n=e;if(n.length<=1){w=n;break bb2}let r;t[21]===n?r=t[22]:(r=n.find(z),t[21]=n,t[22]=r);let i=r,a;if(t[23]!==n||t[24]!==i){let e=n.filter(R);a=i?[i,...e]:n,t[23]=n,t[24]=i,t[25]=a}else a=t[25];w=a}let T=w,E;t[26]!==x||t[27]!==r?(E=x&&Array.isArray(r)?r.find(e=>e.id===x):void 0,t[26]=x,t[27]=r,t[28]=E):E=t[28];let D=E,O,k;t[29]===x?(O=t[30],k=t[31]):(O=()=>{x&&_(x)},k=[x],t[29]=x,t[30]=O,t[31]=k),(0,N.useEffect)(O,k);let A;return t[32]!==x||t[33]!==y||t[34]!==s||t[35]!==D||t[36]!==C||t[37]!==r||t[38]!==g||t[39]!==a||t[40]!==h||t[41]!==T?(A={templates:r,templatesLoading:a,hasTemplates:s,loadTemplates:l,typeNames:h,templatesByTypeName:g,firstVariationIdByTypeName:y,effectiveTemplateId:x,selectedTypeNameFromEffective:C,variations:T,selectedTemplate:D},t[32]=x,t[33]=y,t[34]=s,t[35]=D,t[36]=C,t[37]=r,t[38]=g,t[39]=a,t[40]=h,t[41]=T,t[42]=A):A=t[42],A}function R(e){return e.variationName!==`Starter`}function z(e){return e.variationName===`Starter`}function B(e){return e.variationName===`Starter`}function V(e){return e.variationName!==`Starter`}function H(e){return e.variationName===`Starter`}function U(e){return e===`folder`?3:2}function W(e){return e===`folder`?{projectName:``,projectNameUserEdited:!1,loadedImages:new Set}:{projectName:`My App`,projectNameUserEdited:!1,loadedImages:new Set}}function G(e,t,n){return e?t:n?`My ${n} App`:`My App`}function K(e,t,n,r){return e===`clone`?t.trim().length>0:e===`folder`?n.trim().length>0&&!!I(n):r!==null}function q(e,t){return e===`folder`?1:t-1}function J(e,t,n,r){return e===`folder`?r===1:r===1?t>2:t>=3||t===2&&n}function Y(e,t){return e===2||t===`folder`}function X(e){e.onDialogDismissed?.(),e.setMode(`clone`),e.setDialogStep(2),e.setGitUrl(``),e.setProjectName(`My App`),e.setProjectNameUserEdited(!1),e.setLoadedImages(new Set),e.onOpenChange(!1)}function Z(e){e.setDialogStep(2),e.onOpenChange(!1),e.setMode(`clone`)}async function Q(e){if(!e.projectNameDisplay.trim()||!e.effectiveTemplateId||!I(e.projectNameDisplay))return;if(e.selectedTemplate?.variation===`vite-plus`){e.setIsCheckingVp(!0);let t=await L();if(e.setIsCheckingVp(!1),!t)return}let t=e.projectNameDisplay.trim();e.setProjectName(``),e.setProjectNameUserEdited(!1),Z(e),e.onSubmitWebApp(t,e.effectiveTemplateId,e.packageManager)}function re(e){function t(){X(e)}function n(){if(Y(e.dialogStep,e.mode)){t();return}e.setDialogStep(2)}function r(t){e.setCommitMethod(t),f(t)}function i(){if(!e.gitUrl.trim())return;let t=e.gitUrl.trim();e.setGitUrl(``),Z(e),e.onSubmitClone(t,e.commitMethod).catch(()=>{})}async function a(){await Q(e)}function o(){let t=e.projectName.trim();!t||!I(t)||(e.setProjectName(``),e.setProjectNameUserEdited(!1),Z(e),e.onSubmitFolder(t))}function s(t){return J(e.mode,e.dialogStep,e.canGoToStep3,t)}function c(t){e.mode!==`folder`&&e.setDialogStep(t===1?2:3)}function l(t){e.setProjectName(t),e.setProjectNameUserEdited(!0)}function u(t){e.setTemplateId(e.firstVariationIdByTypeName[t]??``)}function d(t){e.setTemplateId(e.firstVariationIdByTypeName[t]??``),e.setDialogStep(3)}function p(t){e.setPackageManager(t),g(t)}function m(){e.setDialogStep(3)}return{resetAndClose:t,handleBack:n,handleCommitMethodChange:r,handleSubmitClone:i,handleSubmitWebApp:a,handleSubmitFolder:o,canGoToFlowStep:s,goToFlowStep:c,handleProjectNameChange:l,handleSelectType:u,handleSelectTypeAndAdvance:d,handlePackageManagerChange:p,handleNext:m}}function ie(e,t,n,r){let i=W(e);r.setMode(e),r.setDialogStep(U(e)),r.setGitUrl(``),r.setProjectName(i.projectName),r.setProjectNameUserEdited(i.projectNameUserEdited),r.setLoadedImages(i.loadedImages),e===`webapp`&&!t&&n()}function ae(e,t,n,r,i){let a=(0,P.c)(7),o,s;a[0]!==n||a[1]!==t||a[2]!==r||a[3]!==e||a[4]!==i?(o=()=>{!e||!t||ie(t,n,r,i)},s=[e,t,n,r,i],a[0]=n,a[1]=t,a[2]=r,a[3]=e,a[4]=i,a[5]=o,a[6]=s):(o=a[5],s=a[6]),(0,N.useEffect)(o,s)}function oe(e){let t=(0,P.c)(8),[n,r]=(0,N.useState)(e),i;t[0]===e?i=t[1]:(i=U(e),t[0]=e,t[1]=i);let[a,s]=(0,N.useState)(i),[c,l]=(0,N.useState)(``),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=y(o.PullRequest),t[2]=u):u=t[2];let[d,f]=(0,N.useState)(u),p;return t[3]!==d||t[4]!==a||t[5]!==c||t[6]!==n?(p={mode:n,setMode:r,dialogStep:a,setDialogStep:s,gitUrl:c,setGitUrl:l,commitMethod:d,setCommitMethod:f},t[3]=d,t[4]=a,t[5]=c,t[6]=n,t[7]=p):p=t[7],p}function se(){let e=(0,P.c)(10),[t,n]=(0,N.useState)(`My App`),[r,i]=(0,N.useState)(!1),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=m(),e[0]=a):a=e[0];let[o,s]=(0,N.useState)(a),c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=d(),e[1]=c):c=e[1];let[l,u]=(0,N.useState)(c),[f,p]=(0,N.useState)(!1),h;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=new Set,e[2]=h):h=e[2];let[g,_]=(0,N.useState)(h),v;return e[3]!==f||e[4]!==g||e[5]!==l||e[6]!==t||e[7]!==r||e[8]!==o?(v={projectName:t,setProjectName:n,projectNameUserEdited:r,setProjectNameUserEdited:i,templateId:o,setTemplateId:s,packageManager:l,setPackageManager:u,isCheckingVp:f,setIsCheckingVp:p,loadedImages:g,setLoadedImages:_},e[3]=f,e[4]=g,e[5]=l,e[6]=t,e[7]=r,e[8]=o,e[9]=v):v=e[9],v}function ce({open:e,onOpenChange:t,onDialogDismissed:n,initialMode:r,onSubmitClone:i,onSubmitWebApp:a,onSubmitFolder:o}){let{mode:s,setMode:c,dialogStep:l,setDialogStep:u,gitUrl:d,setGitUrl:f,commitMethod:p,setCommitMethod:m}=oe(r??`clone`),{projectName:h,setProjectName:g,projectNameUserEdited:_,setProjectNameUserEdited:v,templateId:y,setTemplateId:b,packageManager:x,setPackageManager:S,isCheckingVp:C,setIsCheckingVp:w,loadedImages:T,setLoadedImages:E}=se(),D=(0,N.useCallback)(e=>{E(t=>new Set(t).add(e))},[]),{templatesLoading:O,hasTemplates:k,loadTemplates:A,typeNames:j,templatesByTypeName:M,firstVariationIdByTypeName:P,effectiveTemplateId:F,selectedTypeNameFromEffective:I,variations:te,selectedTemplate:L}=ne(y);ae(e,r,k,A,(0,N.useMemo)(()=>({setMode:c,setDialogStep:u,setGitUrl:f,setProjectName:g,setProjectNameUserEdited:v,setLoadedImages:E}),[]));let R=(0,N.useMemo)(()=>G(_,h,I),[_,h,I]),z=K(s,d,h,I),B=l,V=q(s,l),H=ee(B,s,I);return{open:e,showStepIndicator:s!==`folder`,flowStep:V,stepHeading:H,step:B,mode:s,canGoToStep3:z,gitUrl:d,setGitUrl:f,templatesLoading:O,typeNames:j,templatesByTypeName:M,selectedTypeNameFromEffective:I,loadedImages:T,handleImageLoad:D,projectName:h,projectNameDisplay:R,variations:te,effectiveTemplateId:F,setTemplateId:b,selectedTemplate:L,packageManager:x,commitMethod:p,isCheckingVp:C,...re({mode:s,dialogStep:l,gitUrl:d,commitMethod:p,projectName:h,projectNameDisplay:R,packageManager:x,canGoToStep3:z,firstVariationIdByTypeName:P,effectiveTemplateId:F,selectedTemplate:L,onOpenChange:t,onDialogDismissed:n,onSubmitClone:i,onSubmitWebApp:a,onSubmitFolder:o,setMode:c,setDialogStep:u,setGitUrl:f,setCommitMethod:m,setProjectName:g,setProjectNameUserEdited:v,setTemplateId:b,setPackageManager:S,setIsCheckingVp:w,setLoadedImages:E})}}var $=r();function le(e){let t=(0,P.c)(10),{gitUrl:n,onGitUrlChange:r,canProceed:i,onNext:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(S,{htmlFor:`gitUrl`,children:`Repository URL`}),t[0]=o):o=t[0];let s;t[1]===r?s=t[2]:(s=e=>r(e.target.value),t[1]=r,t[2]=s);let c;t[3]!==i||t[4]!==a?(c=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=c):c=t[5];let l;return t[6]!==n||t[7]!==s||t[8]!==c?(l=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsx)(`div`,{className:`px-6 py-4`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,$.jsx)(w,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:n,onChange:s,onKeyDown:c,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,autoFocus:!0})]})})}),t[6]=n,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function ue(e){let t=(0,P.c)(11),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:l,onSelectType:u,onSelectTypeAndAdvance:d}=e,f;t[0]!==o||t[1]!==l||t[2]!==u||t[3]!==d||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(f=n?(0,$.jsx)(`p`,{className:c(s.bodyMuted,`col-span-full p-4`),children:`Loading…`}):r.map(e=>{let t=i[e]?.[0]?.type,n=t?F[t]:null,r=a===e;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>u(e),onDoubleClick:()=>d(e),className:c(`group flex flex-col items-center gap-0 rounded-lg px-1 py-1 text-center transition-colors`,r?`text-accent-foreground`:`text-foreground`),children:[(0,$.jsx)(`div`,{className:c(`relative flex size-20 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-[hsl(0_0%_35%)] bg-gradient-to-br from-[hsl(0_0%_35%)] to-[hsl(0_0%_25%)] text-white/70 transition-transform can-hover:group-hover:scale-[1.03]`,r&&`ring-[3px] ring-brand`),children:n?(0,$.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:c(`relative size-8 shrink-0 transition-opacity duration-300`,o.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>l(n),"aria-hidden":!0}):null}),(0,$.jsx)(`span`,{className:c(s.compact,`w-full truncate pt-1 font-medium`),children:e})]},e)}),t[0]=o,t[1]=l,t[2]=u,t[3]=d,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=f):f=t[8];let p;return t[9]===f?p=t[10]:(p=(0,$.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,$.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,$.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,$.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-1 p-1 mr-2`,children:f})})})}),t[9]=f,t[10]=p),p}function de(e){let t=(0,P.c)(17),{projectName:n,onProjectNameChange:r,canSubmit:i,onSubmit:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(S,{htmlFor:`folderProjectName`,children:`Project Name`}),t[0]=o):o=t[0];let c;t[1]===r?c=t[2]:(c=e=>r(e.target.value),t[1]=r,t[2]=c);let l;t[3]!==i||t[4]!==a?(l=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==c||t[8]!==l?(u=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,$.jsx)(w,{id:`folderProjectName`,placeholder:`My Project`,value:n,onChange:c,onKeyDown:l,autoFocus:!0,className:`w-full`})]}),t[6]=n,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===n?d=t[11]:(d=I(n)||`project-name`,t[10]=n,t[11]=d);let f;t[12]===d?f=t[13]:(f=(0,$.jsxs)(`p`,{className:s.bodyMuted,children:[`Folder name: `,d]}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-3`,children:[u,f]})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function fe(e){let t=(0,P.c)(33),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:o,onTemplateIdChange:c,selectedTemplate:u,packageManager:d,onPackageManagerChange:f,commitMethod:p,onCommitMethodChange:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(S,{htmlFor:`projectName`,children:`Project Name`}),t[0]=h):h=t[0];let g;t[1]===r?g=t[2]:(g=e=>r(e.target.value),t[1]=r,t[2]=g);let _;t[3]!==n||t[4]!==g?(_=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[h,(0,$.jsx)(w,{id:`projectName`,placeholder:`My App`,value:n,onChange:g,className:`w-full`})]}),t[3]=n,t[4]=g,t[5]=_):_=t[5];let v;t[6]!==o||t[7]!==c||t[8]!==i?(v=i.length>1&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(S,{children:`Variation`}),(0,$.jsx)(j,{type:`single`,value:o,onValueChange:e=>e&&c(e),variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:i.map(me)})]}),t[6]=o,t[7]=c,t[8]=i,t[9]=v):v=t[9];let y=u?.description??i[0]?.description??``,x;t[10]===u?x=t[11]:(x=u?.url&&(0,$.jsxs)($.Fragment,{children:[` `,(0,$.jsxs)(`a`,{href:u.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,$.jsx)(l,{className:`h-3 w-3`})]})]}),t[10]=u,t[11]=x);let C;t[12]!==y||t[13]!==x?(C=(0,$.jsxs)(`p`,{className:s.bodyMuted,children:[y,x]}),t[12]=y,t[13]=x,t[14]=C):C=t[14];let T;t[15]!==v||t[16]!==C?(T=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v,C]}),t[15]=v,t[16]=C,t[17]=T):T=t[17];let E;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(S,{children:`Package manager`}),t[18]=E):E=t[18];let D;t[19]===f?D=t[20]:(D=e=>{e&&f(e)},t[19]=f,t[20]=D);let O;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(O=Object.values(a).map(pe),t[21]=O):O=t[21];let k;t[22]!==d||t[23]!==D?(k=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[E,(0,$.jsx)(j,{type:`single`,value:d,onValueChange:D,variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:O})]}),t[22]=d,t[23]=D,t[24]=k):k=t[24];let A;t[25]!==p||t[26]!==m?(A=(0,$.jsx)(M,{commitMethod:p,onCommitMethodChange:m}),t[25]=p,t[26]=m,t[27]=A):A=t[27];let N;return t[28]!==k||t[29]!==A||t[30]!==_||t[31]!==T?(N=(0,$.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,$.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[_,T,k,A]})}),t[28]=k,t[29]=A,t[30]=_,t[31]=T,t[32]=N):N=t[32],N}function pe(e){return(0,$.jsx)(A,{value:e.id,className:s.body,children:e.label},e.id)}function me(e){return(0,$.jsx)(A,{value:e.id,className:s.body,children:e.variationName},e.id)}function he(e){let t=(0,P.c)(5),{canGoToStep3:n,gitUrl:r,onGitUrlChange:i,onNext:a}=e,o;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a?(o=(0,$.jsx)(le,{gitUrl:r,onGitUrlChange:i,canProceed:n,onNext:a}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o):o=t[4],o}function ge(e){let t=(0,P.c)(9),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeNameFromEffective:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}=e,u;return t[0]!==o||t[1]!==s||t[2]!==c||t[3]!==l||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(u=(0,$.jsx)(ue,{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}),t[0]=o,t[1]=s,t[2]=c,t[3]=l,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=u):u=t[8],u}function _e(e){let t=(0,P.c)(5),{canGoToStep3:n,projectName:r,onProjectNameChange:i,onSubmitFolder:a}=e,o;return t[0]!==n||t[1]!==i||t[2]!==a||t[3]!==r?(o=(0,$.jsx)(de,{projectName:r,onProjectNameChange:i,canSubmit:n,onSubmit:a}),t[0]=n,t[1]=i,t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function ve(e){let t=(0,P.c)(11),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}=e,f;return t[0]!==u||t[1]!==a||t[2]!==d||t[3]!==l||t[4]!==r||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==s||t[9]!==i?(f=(0,$.jsx)(fe,{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}),t[0]=u,t[1]=a,t[2]=d,t[3]=l,t[4]=r,t[5]=o,t[6]=c,t[7]=n,t[8]=s,t[9]=i,t[10]=f):f=t[10],f}function ye(e){let t=(0,P.c)(3),{commitMethod:n,onCommitMethodChange:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,$.jsx)(b,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-6 px-6 py-4`,children:(0,$.jsx)(M,{commitMethod:n,onCommitMethodChange:r})})}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function be(e){let t=(0,P.c)(33),{step:n,mode:r,canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s,templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h,projectName:g,onProjectNameChange:_,onSubmitFolder:v,projectNameDisplay:y,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}=e;switch(`${n}:${r}`){case`2:clone`:{let e;return t[0]!==i||t[1]!==a||t[2]!==o||t[3]!==s?(e=(0,$.jsx)(he,{canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s}),t[0]=i,t[1]=a,t[2]=o,t[3]=s,t[4]=e):e=t[4],e}case`2:webapp`:{let e;return t[5]!==f||t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==d||t[10]!==u||t[11]!==c||t[12]!==l?(e=(0,$.jsx)(ge,{templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h}),t[5]=f,t[6]=p,t[7]=m,t[8]=h,t[9]=d,t[10]=u,t[11]=c,t[12]=l,t[13]=e):e=t[13],e}case`3:folder`:{let e;return t[14]!==i||t[15]!==_||t[16]!==v||t[17]!==g?(e=(0,$.jsx)(_e,{canGoToStep3:i,projectName:g,onProjectNameChange:_,onSubmitFolder:v}),t[14]=i,t[15]=_,t[16]=v,t[17]=g,t[18]=e):e=t[18],e}case`3:webapp`:{let e;return t[19]!==E||t[20]!==x||t[21]!==D||t[22]!==T||t[23]!==_||t[24]!==S||t[25]!==w||t[26]!==y||t[27]!==C||t[28]!==b?(e=(0,$.jsx)(ve,{projectNameDisplay:y,onProjectNameChange:_,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}),t[19]=E,t[20]=x,t[21]=D,t[22]=T,t[23]=_,t[24]=S,t[25]=w,t[26]=y,t[27]=C,t[28]=b,t[29]=e):e=t[29],e}default:{let e;return t[30]!==E||t[31]!==D?(e=(0,$.jsx)(ye,{commitMethod:E,onCommitMethodChange:D}),t[30]=E,t[31]=D,t[32]=e):e=t[32],e}}}function xe(e){let t=(0,P.c)(30),{step:n,mode:r,canGoToStep3:i,projectName:a,projectNameDisplay:o,isCheckingVp:s,onBack:c,onNext:l,onSubmitClone:d,onSubmitFolder:f,onSubmitWebApp:p}=e,m;t[0]!==r||t[1]!==c||t[2]!==n?(m=n===3&&r!==`folder`&&(0,$.jsx)(u,{variant:`ghost`,onClick:c,children:`Back`}),t[0]=r,t[1]=c,t[2]=n,t[3]=m):m=t[3];let h;t[4]!==i||t[5]!==r||t[6]!==l||t[7]!==n?(h=n===2&&r!==`folder`&&(0,$.jsx)(u,{onClick:l,disabled:!i,children:`Next`}),t[4]=i,t[5]=r,t[6]=l,t[7]=n,t[8]=h):h=t[8];let g;t[9]!==r||t[10]!==d||t[11]!==n?(g=n===3&&r===`clone`&&(0,$.jsx)(u,{onClick:d,children:`Create Project`}),t[9]=r,t[10]=d,t[11]=n,t[12]=g):g=t[12];let _;t[13]!==r||t[14]!==f||t[15]!==a||t[16]!==n?(_=n===3&&r===`folder`&&(0,$.jsx)(u,{onClick:f,disabled:!a.trim()||!I(a),children:`Create Project`}),t[13]=r,t[14]=f,t[15]=a,t[16]=n,t[17]=_):_=t[17];let v;t[18]!==s||t[19]!==r||t[20]!==p||t[21]!==o||t[22]!==n?(v=n===3&&r===`webapp`&&(0,$.jsx)(u,{onClick:p,disabled:!o.trim()||s,children:s?`Preparing...`:`Create Project`}),t[18]=s,t[19]=r,t[20]=p,t[21]=o,t[22]=n,t[23]=v):v=t[23];let y;return t[24]!==m||t[25]!==h||t[26]!==g||t[27]!==_||t[28]!==v?(y=(0,$.jsx)(`div`,{className:`flex min-h-[4.5rem] flex-col justify-end border-t border-border bg-muted/10 px-6 py-4`,children:(0,$.jsxs)(x,{children:[m,h,g,_,v]})}),t[24]=m,t[25]=h,t[26]=g,t[27]=_,t[28]=v,t[29]=y):y=t[29],y}function Se(e){let t=(0,P.c)(66),{open:n,resetAndClose:r,showStepIndicator:i,flowStep:a,canGoToFlowStep:o,goToFlowStep:s,stepHeading:c,step:l,mode:u,canGoToStep3:d,gitUrl:f,setGitUrl:p,handleNext:m,templatesLoading:h,typeNames:g,templatesByTypeName:_,selectedTypeNameFromEffective:v,loadedImages:y,handleImageLoad:b,handleSelectType:x,handleSelectTypeAndAdvance:S,projectName:w,handleProjectNameChange:A,handleSubmitFolder:j,projectNameDisplay:M,variations:N,effectiveTemplateId:F,setTemplateId:I,selectedTemplate:ee,packageManager:te,handlePackageManagerChange:L,commitMethod:ne,handleCommitMethodChange:R,isCheckingVp:z,handleBack:B,handleSubmitClone:V,handleSubmitWebApp:H}=ce(e),U;t[0]===r?U=t[1]:(U=e=>!e&&r(),t[0]=r,t[1]=U);let W;t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==i?(W=i?(0,$.jsx)(O,{currentStep:a,canGoToStep:o,onGoToStep:s}):null,t[2]=o,t[3]=a,t[4]=s,t[5]=i,t[6]=W):W=t[6];let G;t[7]===c.title?G=t[8]:(G=(0,$.jsx)(C,{children:c.title}),t[7]=c.title,t[8]=G);let K;t[9]===c.description?K=t[10]:(K=(0,$.jsx)(k,{children:c.description}),t[9]=c.description,t[10]=K);let q;t[11]!==G||t[12]!==K?(q=(0,$.jsxs)(D,{children:[G,K]}),t[11]=G,t[12]=K,t[13]=q):q=t[13];let J;t[14]!==W||t[15]!==q?(J=(0,$.jsxs)(`div`,{className:`px-6 pb-2 pt-6`,children:[W,q]}),t[14]=W,t[15]=q,t[16]=J):J=t[16];let Y;t[17]!==d||t[18]!==ne||t[19]!==F||t[20]!==f||t[21]!==R||t[22]!==b||t[23]!==m||t[24]!==L||t[25]!==A||t[26]!==x||t[27]!==S||t[28]!==j||t[29]!==y||t[30]!==u||t[31]!==te||t[32]!==w||t[33]!==M||t[34]!==ee||t[35]!==v||t[36]!==p||t[37]!==I||t[38]!==l||t[39]!==_||t[40]!==h||t[41]!==g||t[42]!==N?(Y=(0,$.jsx)(be,{step:l,mode:u,canGoToStep3:d,gitUrl:f,onGitUrlChange:p,onNext:m,templatesLoading:h,typeNames:g,templatesByTypeName:_,selectedTypeNameFromEffective:v,loadedImages:y,onImageLoad:b,onSelectType:x,onSelectTypeAndAdvance:S,projectName:w,onProjectNameChange:A,onSubmitFolder:j,projectNameDisplay:M,variations:N,effectiveTemplateId:F,onTemplateIdChange:I,selectedTemplate:ee,packageManager:te,onPackageManagerChange:L,commitMethod:ne,onCommitMethodChange:R}),t[17]=d,t[18]=ne,t[19]=F,t[20]=f,t[21]=R,t[22]=b,t[23]=m,t[24]=L,t[25]=A,t[26]=x,t[27]=S,t[28]=j,t[29]=y,t[30]=u,t[31]=te,t[32]=w,t[33]=M,t[34]=ee,t[35]=v,t[36]=p,t[37]=I,t[38]=l,t[39]=_,t[40]=h,t[41]=g,t[42]=N,t[43]=Y):Y=t[43];let X;t[44]===H?X=t[45]:(X=()=>void H(),t[44]=H,t[45]=X);let Z;t[46]!==d||t[47]!==B||t[48]!==m||t[49]!==V||t[50]!==j||t[51]!==z||t[52]!==u||t[53]!==w||t[54]!==M||t[55]!==l||t[56]!==X?(Z=(0,$.jsx)(xe,{step:l,mode:u,canGoToStep3:d,projectName:w,projectNameDisplay:M,isCheckingVp:z,onBack:B,onNext:m,onSubmitClone:V,onSubmitFolder:j,onSubmitWebApp:X}),t[46]=d,t[47]=B,t[48]=m,t[49]=V,t[50]=j,t[51]=z,t[52]=u,t[53]=w,t[54]=M,t[55]=l,t[56]=X,t[57]=Z):Z=t[57];let Q;t[58]!==J||t[59]!==Y||t[60]!==Z?(Q=(0,$.jsxs)(E,{className:`flex h-[min(42rem,90dvh)] max-w-2xl flex-col overflow-hidden p-0`,children:[J,Y,Z]}),t[58]=J,t[59]=Y,t[60]=Z,t[61]=Q):Q=t[61];let re;return t[62]!==n||t[63]!==U||t[64]!==Q?(re=(0,$.jsx)(T,{open:n,onOpenChange:U,children:Q}),t[62]=n,t[63]=U,t[64]=Q,t[65]=re):re=t[65],re}export{xe as ProjectDialogFooter,Se as default};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-zYjzm__g.js";import{Ar as r,Dr as i,Er as a,Or as o,Tr as s,V as c,jr as l,kr as u,wr as d}from"./index-DpDgcOE9.js";import{t as f}from"./pill-tabs-CVcpOO4f.js";var p=e(),m=t();function h(e){let t=(0,p.c)(39),{open:h,onOpenChange:g,repoName:_,onRepoNameChange:v,repoDescription:y,onRepoDescriptionChange:b,isPrivateRepo:x,onPrivateRepoChange:S,isLoading:C,onCreateRepo:w}=e,T;t[0]!==g||t[1]!==b||t[2]!==v?(T=e=>{e||(v(``),b(``)),g(e)},t[0]=g,t[1]=b,t[2]=v,t[3]=T):T=t[3];let E;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,m.jsxs)(r,{children:[(0,m.jsx)(l,{children:`Create GitHub Repository`}),(0,m.jsx)(o,{children:`Create a new GitHub repository and push your local repository`})]}),t[4]=E):E=t[4];let D;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,m.jsx)(d,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),t[5]=D):D=t[5];let O;t[6]===v?O=t[7]:(O=e=>v(e.target.value),t[6]=v,t[7]=O);let k;t[8]!==_||t[9]!==O?(k=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[D,(0,m.jsx)(s,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:_,onChange:O})]}),t[8]=_,t[9]=O,t[10]=k):k=t[10];let A;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(d,{htmlFor:`repo-description`,children:`Description (optional)`}),t[11]=A):A=t[11];let j;t[12]===b?j=t[13]:(j=e=>b(e.target.value),t[12]=b,t[13]=j);let M;t[14]!==y||t[15]!==j?(M=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(c,{id:`repo-description`,placeholder:`Enter repository description...`,value:y,onChange:j,rows:3})]}),t[14]=y,t[15]=j,t[16]=M):M=t[16];let N;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,m.jsx)(d,{children:`Visibility`}),t[17]=N):N=t[17];let P=x?`private`:`public`,F;t[18]===S?F=t[19]:(F=e=>S(e===`private`),t[18]=S,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=[{value:`public`,label:`Public`,tooltip:`Anyone on GitHub can see this repository`},{value:`private`,label:`Private`,tooltip:`Only you and collaborators can see this repository`}],t[20]=I):I=t[20];let L;t[21]!==P||t[22]!==F?(L=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[N,(0,m.jsx)(f,{value:P,onValueChange:F,options:I})]}),t[21]=P,t[22]=F,t[23]=L):L=t[23];let R;t[24]!==L||t[25]!==k||t[26]!==M?(R=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[k,M,L]}),t[24]=L,t[25]=k,t[26]=M,t[27]=R):R=t[27];let z=C?`Creating...`:`Create & Push`,B;t[28]!==C||t[29]!==w||t[30]!==z?(B=(0,m.jsx)(u,{children:(0,m.jsx)(n,{onClick:w,disabled:C,children:z})}),t[28]=C,t[29]=w,t[30]=z,t[31]=B):B=t[31];let V;t[32]!==R||t[33]!==B?(V=(0,m.jsxs)(i,{children:[E,R,B]}),t[32]=R,t[33]=B,t[34]=V):V=t[34];let H;return t[35]!==h||t[36]!==T||t[37]!==V?(H=(0,m.jsx)(a,{open:h,onOpenChange:T,children:V}),t[35]=h,t[36]=T,t[37]=V,t[38]=H):H=t[38],H}export{h as CreateRepoDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-BRUlmKU9.js";import{Br as r,Fr as i,Hr as a,Ir as o,Lr as s,Rr as c,Vr as l,W as u,zr as d}from"./index-CU6xcKiy.js";import{t as f}from"./pill-tabs-C_XjoE72.js";var p=e(),m=t();function h(e){let t=(0,p.c)(39),{open:h,onOpenChange:g,repoName:_,onRepoNameChange:v,repoDescription:y,onRepoDescriptionChange:b,isPrivateRepo:x,onPrivateRepoChange:S,isLoading:C,onCreateRepo:w}=e,T;t[0]!==g||t[1]!==b||t[2]!==v?(T=e=>{e||(v(``),b(``)),g(e)},t[0]=g,t[1]=b,t[2]=v,t[3]=T):T=t[3];let E;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,m.jsxs)(l,{children:[(0,m.jsx)(a,{children:`Create GitHub Repository`}),(0,m.jsx)(d,{children:`Create a new GitHub repository and push your local repository`})]}),t[4]=E):E=t[4];let D;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,m.jsx)(i,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),t[5]=D):D=t[5];let O;t[6]===v?O=t[7]:(O=e=>v(e.target.value),t[6]=v,t[7]=O);let k;t[8]!==_||t[9]!==O?(k=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[D,(0,m.jsx)(o,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:_,onChange:O})]}),t[8]=_,t[9]=O,t[10]=k):k=t[10];let A;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(i,{htmlFor:`repo-description`,children:`Description (optional)`}),t[11]=A):A=t[11];let j;t[12]===b?j=t[13]:(j=e=>b(e.target.value),t[12]=b,t[13]=j);let M;t[14]!==y||t[15]!==j?(M=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(u,{id:`repo-description`,placeholder:`Enter repository description...`,value:y,onChange:j,rows:3})]}),t[14]=y,t[15]=j,t[16]=M):M=t[16];let N;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,m.jsx)(i,{children:`Visibility`}),t[17]=N):N=t[17];let P=x?`private`:`public`,F;t[18]===S?F=t[19]:(F=e=>S(e===`private`),t[18]=S,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=[{value:`public`,label:`Public`,tooltip:`Anyone on GitHub can see this repository`},{value:`private`,label:`Private`,tooltip:`Only you and collaborators can see this repository`}],t[20]=I):I=t[20];let L;t[21]!==P||t[22]!==F?(L=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[N,(0,m.jsx)(f,{value:P,onValueChange:F,options:I})]}),t[21]=P,t[22]=F,t[23]=L):L=t[23];let R;t[24]!==L||t[25]!==k||t[26]!==M?(R=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[k,M,L]}),t[24]=L,t[25]=k,t[26]=M,t[27]=R):R=t[27];let z=C?`Creating...`:`Create & Push`,B;t[28]!==C||t[29]!==w||t[30]!==z?(B=(0,m.jsx)(r,{children:(0,m.jsx)(n,{onClick:w,disabled:C,children:z})}),t[28]=C,t[29]=w,t[30]=z,t[31]=B):B=t[31];let V;t[32]!==R||t[33]!==B?(V=(0,m.jsxs)(c,{children:[E,R,B]}),t[32]=R,t[33]=B,t[34]=V):V=t[34];let H;return t[35]!==h||t[36]!==T||t[37]!==V?(H=(0,m.jsx)(s,{open:h,onOpenChange:T,children:V}),t[35]=h,t[36]=T,t[37]=V,t[38]=H):H=t[38],H}export{h as CreateRepoDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.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-Dq9tEk9t.js";var u=e(),d=t();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{n as e,t}from"./react-vendor-Ee0-5T4I.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-L9wWQsMo.js";var u=e(),d=t();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};