tarsk 0.4.30 → 0.5.32

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 (91) hide show
  1. package/dist/index.js +768 -289
  2. package/dist/public/assets/{account-view-wqPOnMfW.js → account-view-DjLjq8T6.js} +1 -1
  3. package/dist/public/assets/alert-dialog-BWqb8ENe.js +1 -0
  4. package/dist/public/assets/api-BbUzw5rb.js +1 -0
  5. package/dist/public/assets/{browser-tab-BjqSmZHm.js → browser-tab-BVsBMyo3.js} +1 -1
  6. package/dist/public/assets/chat-input-container-Dh5eJPNP.js +22 -0
  7. package/dist/public/assets/commit-dialog-CfjW1f6P.js +1 -0
  8. package/dist/public/assets/{context-menu-XD6khGRr.js → context-menu-D_gX85jr.js} +1 -1
  9. package/dist/public/assets/conversation-history-view-CKiv8CxD.js +1 -0
  10. package/dist/public/assets/create-repo-dialog-ByvOv7em.js +1 -0
  11. package/dist/public/assets/{dialogs-config-BXDglGdB.js → dialogs-config-CV8HzCCA.js} +3 -3
  12. package/dist/public/assets/diff-view-CuEdnFtI.js +3 -0
  13. package/dist/public/assets/{explorer-tab-view-DbMBihAH.js → explorer-tab-view-CiDUcvE2.js} +2 -2
  14. package/dist/public/assets/explorer-tree-cxPx2HiW.js +1 -0
  15. package/dist/public/assets/{explorer-view-CL_9lhkq.js → explorer-view-BCQNEBOZ.js} +1 -1
  16. package/dist/public/assets/git-history-dialog-DKey5IQa.js +1 -0
  17. package/dist/public/assets/history-view-DDpROJvQ.js +1 -0
  18. package/dist/public/assets/index-BZwvl9X4.js +29 -0
  19. package/dist/public/assets/index-CihB-pLh.css +1 -0
  20. package/dist/public/assets/markdown-renderer-B1teF28W.js +10 -0
  21. package/dist/public/assets/mcp-server-card-CY-VLPhS.js +1 -0
  22. package/dist/public/assets/merged-pr-dialog-BfwdsytN.js +1 -0
  23. package/dist/public/assets/onboarding-BEy4bi0g.js +1 -0
  24. package/dist/public/assets/onboarding-dialog-GjczsXqi.js +1 -0
  25. package/dist/public/assets/page-toolbar-rWocuukR.js +1 -0
  26. package/dist/public/assets/{project-settings-view-CRRJPGNL.js → project-settings-view-wlaXVds9.js} +1 -1
  27. package/dist/public/assets/providers-list-view-BJsp9sta.js +1 -0
  28. package/dist/public/assets/pull-request-dialog-DDxX2W8n.js +1 -0
  29. package/dist/public/assets/pull-with-changes-dialog-BtXHWQ3k.js +1 -0
  30. package/dist/public/assets/push-before-pr-dialog-Cs54Vb76.js +1 -0
  31. package/dist/public/assets/radio-group-D2kNbZM6.js +1 -0
  32. package/dist/public/assets/react-vendor-DV_DP0Qd.js +22 -0
  33. package/dist/public/assets/{resizable-BLhzHL_f.js → resizable-jxPFsLog.js} +1 -1
  34. package/dist/public/assets/{run-stop-button-CIuDOHFg.js → run-stop-button-N1JNjOlD.js} +2 -2
  35. package/dist/public/assets/settings-general-view-BKcgxF5z.js +1 -0
  36. package/dist/public/assets/{settings-instructions-view-B-uTQrNZ.js → settings-instructions-view-DbQ3c3f1.js} +1 -1
  37. package/dist/public/assets/settings-mcp-servers-view-D2_Brac1.js +5 -0
  38. package/dist/public/assets/{settings-models-skeleton-CffyGIvJ.js → settings-models-skeleton-BSV1GmZQ.js} +1 -1
  39. package/dist/public/assets/settings-models-view-BhFuBHAE.js +1 -0
  40. package/dist/public/assets/settings-rules-view-qL__Zcav.js +8 -0
  41. package/dist/public/assets/settings-skills-view-Ccj8tTR9.js +2 -0
  42. package/dist/public/assets/{settings-slash-commands-view-BoT1nCir.js → settings-slash-commands-view-DyXAbQIp.js} +1 -1
  43. package/dist/public/assets/settings-subagents-view-LcaON0Dq.js +2 -0
  44. package/dist/public/assets/{settings-view-CS-RnV6J.js → settings-view-cLrxaSw4.js} +2 -2
  45. package/dist/public/assets/{side-panel-container-B33_hnhc.js → side-panel-container-CCaF3ZtX.js} +2 -2
  46. package/dist/public/assets/skeleton-DNfHG6mv.js +1 -0
  47. package/dist/public/assets/standard-list-item-PWOXi212.js +1 -0
  48. package/dist/public/assets/store-9Wm6Zyve.js +4 -0
  49. package/dist/public/assets/{tab-context-BUUT3x3d.js → tab-context-BdML89mQ.js} +1 -1
  50. package/dist/public/assets/tabs-BVcV8raO.js +1 -0
  51. package/dist/public/assets/{terminal-panel-BCHLDUbD.js → terminal-panel-BG8UFUSX.js} +2 -2
  52. package/dist/public/assets/textarea-CU-XhvgE.js +1 -0
  53. package/dist/public/assets/todos-view-DLC_0wx_.js +1 -0
  54. package/dist/public/assets/use-font-size-Bqn2rvp_.js +1 -0
  55. package/dist/public/assets/{use-toast-C5s-Xnwi.js → use-toast-CGSBJJb0.js} +1 -1
  56. package/dist/public/assets/{utils-CDrGT12s.js → utils-Dt4Hs5eF.js} +1 -1
  57. package/dist/public/assets/{whisper-wasm-C_Ot631g.js → whisper-wasm-BCJQtWoU.js} +2 -2
  58. package/dist/public/busy.svg +3 -0
  59. package/dist/public/index.html +22 -22
  60. package/package.json +1 -1
  61. package/dist/public/assets/alert-dialog-Dj0hDlZC.js +0 -1
  62. package/dist/public/assets/api-RbLAI1bg.js +0 -1
  63. package/dist/public/assets/chat-input-container-BNOl7YtC.js +0 -21
  64. package/dist/public/assets/conversation-history-view-BRSNoBYn.js +0 -1
  65. package/dist/public/assets/diff-view-DiNlWcSj.js +0 -3
  66. package/dist/public/assets/explorer-tree-D0P-HUYS.js +0 -1
  67. package/dist/public/assets/history-view-i7fGKCkc.js +0 -1
  68. package/dist/public/assets/index-BeLCtY82.css +0 -1
  69. package/dist/public/assets/index-CZZ6Jb9i.js +0 -29
  70. package/dist/public/assets/markdown-renderer-CPSKOcqK.js +0 -10
  71. package/dist/public/assets/mcp-server-card-DFATg_Ie.js +0 -1
  72. package/dist/public/assets/onboarding-5CTkrfwe.js +0 -1
  73. package/dist/public/assets/onboarding-dialog-gcZ9aKKp.js +0 -1
  74. package/dist/public/assets/page-toolbar-CbwENcML.js +0 -1
  75. package/dist/public/assets/providers-list-view-D3CIB4ou.js +0 -1
  76. package/dist/public/assets/radio-group-qCcnwXV3.js +0 -1
  77. package/dist/public/assets/react-vendor-Bpg1hd5i.js +0 -22
  78. package/dist/public/assets/settings-general-view-7Y0c9534.js +0 -1
  79. package/dist/public/assets/settings-mcp-servers-view-nAMQQWHb.js +0 -5
  80. package/dist/public/assets/settings-models-view-CMZh5LlR.js +0 -1
  81. package/dist/public/assets/settings-rules-view-BaNccq1v.js +0 -8
  82. package/dist/public/assets/settings-skills-view-DBX7obT7.js +0 -2
  83. package/dist/public/assets/settings-subagents-view-Cy87X2bs.js +0 -2
  84. package/dist/public/assets/skeleton-n47_ST9G.js +0 -1
  85. package/dist/public/assets/standard-list-item-BLTOBGFa.js +0 -1
  86. package/dist/public/assets/store-B9rEO6q-.js +0 -4
  87. package/dist/public/assets/tabs--5y6mYhG.js +0 -1
  88. package/dist/public/assets/textarea-CwXpBxom.js +0 -1
  89. package/dist/public/assets/todos-view-k0k8R9NT.js +0 -1
  90. package/dist/public/assets/use-font-size-BJl84s49.js +0 -1
  91. /package/dist/public/assets/{dist-CAVGqbBm.js → dist-2eORHB3M.js} +0 -0
@@ -42,10 +42,10 @@ import{i as e,n as t,t as n}from"./rolldown-runtime-B1FJdls4.js";var r=n((e=>{va
42
42
 
43
43
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
44
44
 
45
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return l.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},rF=`DialogDescriptionWarning`,iF=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${tF(rF).contentName}}.`;return l.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},aF=AP,oF=MP,sF=IP,cF=RP,lF=HP,uF=qP,dF=YP,fF=ZP,pF=aF,mF=sF,hF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(cF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});hF.displayName=cF.displayName;var gF=l.forwardRef((e,t)=>{let n=(0,R.c)(13),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,B.jsx)(hF,{}),n[4]=o):o=n[4];let s;n[5]===i?s=n[6]:(s=U(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,i),n[5]=i,n[6]=s);let c;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsxs)(fF,{className:`absolute right-4 top-4 h-7 w-7 rounded-full flex items-center justify-center transition-colors hover:bg-foreground hover:text-background disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,B.jsx)(TA,{className:`h-4 w-4`}),(0,B.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[7]=c):c=n[7];let l;return n[8]!==r||n[9]!==a||n[10]!==t||n[11]!==s?(l=(0,B.jsxs)(mF,{children:[o,(0,B.jsxs)(lF,{ref:t,className:s,...a,children:[r,c]})]}),n[8]=r,n[9]=a,n[10]=t,n[11]=s,n[12]=l):l=n[12],l});gF.displayName=lF.displayName;var _F=e=>{let t=(0,R.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=U(`flex flex-col space-y-1.5 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,B.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};_F.displayName=`DialogHeader`;var vF=e=>{let t=(0,R.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=U(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,B.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};vF.displayName=`DialogFooter`;var yF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-lg font-semibold leading-none tracking-tight`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(uF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});yF.displayName=uF.displayName;var bF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(dF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});bF.displayName=dF.displayName;var xF=l.forwardRef((e,t)=>{let n=(0,R.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,type:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===r?o=n[5]:(o=U(`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,r),n[4]=r,n[5]=o);let s;return n[6]!==i||n[7]!==t||n[8]!==o||n[9]!==a?(s=(0,B.jsx)(`input`,{type:a,className:o,ref:t,...i}),n[6]=i,n[7]=t,n[8]=o,n[9]=a,n[10]=s):s=n[10],s});xF.displayName=`Input`;var SF=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=VA(`Primitive.${t}`),r=l.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,B.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),CF=`Label`,wF=l.forwardRef((e,t)=>(0,B.jsx)(SF.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));wF.displayName=CF;var TF=wF,EF=QA(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),DF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(EF(),r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(TF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});DF.displayName=TF.displayName;var OF=l.createContext(void 0);function kF(e){let t=l.useContext(OF);return e||t||`ltr`}function AF(e,[t,n]){return Math.min(n,Math.max(t,e))}function jF(e,t){return l.useReducer((e,n)=>t[e][n]??e,e)}var MF=`ScrollArea`,[NF,PF]=eM(MF),[FF,q]=NF(MF),IF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=l.useState(null),[u,d]=l.useState(null),[f,p]=l.useState(null),[m,h]=l.useState(null),[g,_]=l.useState(null),[v,y]=l.useState(0),[b,x]=l.useState(0),[S,C]=l.useState(!1),[w,T]=l.useState(!1),E=z(t,e=>c(e)),D=kF(i);return(0,B.jsx)(FF,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,B.jsx)(G.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":v+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})});IF.displayName=MF;var LF=`ScrollAreaViewport`,RF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=q(LF,n),s=z(t,l.useRef(null),o.onViewportChange);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,B.jsx)(G.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,B.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});RF.displayName=LF;var zF=`ScrollAreaScrollbar`,BF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return l.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,B.jsx)(VF,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,B.jsx)(HF,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,B.jsx)(UF,{...r,ref:t,forceMount:n}):i.type===`always`?(0,B.jsx)(WF,{...r,ref:t}):null});BF.displayName=zF;var VF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),[a,o]=l.useState(!1);return l.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,B.jsx)(eN,{present:n||a,children:(0,B.jsx)(UF,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),HF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=uI(()=>c(`SCROLL_END`),100),[s,c]=jF(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return l.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),l.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,B.jsx)(eN,{present:n||s!==`hidden`,children:(0,B.jsx)(WF,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:W(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:W(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),UF=l.forwardRef((e,t)=>{let n=q(zF,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=l.useState(!1),s=e.orientation===`horizontal`,c=uI(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return dI(n.viewport,c),dI(n.content,c),(0,B.jsx)(eN,{present:r||a,children:(0,B.jsx)(WF,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),WF=l.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=q(zF,e.__scopeScrollArea),a=l.useRef(null),o=l.useRef(0),[s,c]=l.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=rI(s.viewport,s.content),d={...r,sizes:s,onSizesChange:c,hasThumb:u>0&&u<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function f(e,t){return aI(e,o.current,s,t)}return n===`horizontal`?(0,B.jsx)(GF,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=oI(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=f(e,i.dir))}}):n===`vertical`?(0,B.jsx)(KF,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=oI(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=f(e))}}):null}),GF=l.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(zF,e.__scopeScrollArea),[o,s]=l.useState(),c=l.useRef(null),u=z(t,c,a.onScrollbarXChange);return l.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,B.jsx)(YF,{"data-orientation":`horizontal`,...i,ref:u,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":iI(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),cI(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:nI(o.paddingLeft),paddingEnd:nI(o.paddingRight)}})}})}),KF=l.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(zF,e.__scopeScrollArea),[o,s]=l.useState(),c=l.useRef(null),u=z(t,c,a.onScrollbarYChange);return l.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,B.jsx)(YF,{"data-orientation":`vertical`,...i,ref:u,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":iI(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),cI(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:nI(o.paddingTop),paddingEnd:nI(o.paddingBottom)}})}})}),[qF,JF]=NF(zF),YF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,m=q(zF,n),[h,g]=l.useState(null),_=z(t,e=>g(e)),v=l.useRef(null),y=l.useRef(``),b=m.viewport,x=r.content-r.viewport,S=K(d),C=K(c),w=uI(f,10);function T(e){v.current&&u({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return l.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,h,x,S]),l.useEffect(C,[r,C]),dI(h,w),dI(m.content,w),(0,B.jsx)(qF,{scope:n,scrollbar:h,hasThumb:i,onThumbChange:K(a),onThumbPointerUp:K(o),onThumbPositionChange:C,onThumbPointerDown:K(s),children:(0,B.jsx)(G.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:W(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:W(e.onPointerMove,T),onPointerUp:W(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),XF=`ScrollAreaThumb`,ZF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=JF(XF,e.__scopeScrollArea);return(0,B.jsx)(eN,{present:n||i.hasThumb,children:(0,B.jsx)(QF,{ref:t,...r})})}),QF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=q(XF,n),o=JF(XF,n),{onThumbPositionChange:s}=o,c=z(t,e=>o.onThumbChange(e)),u=l.useRef(void 0),d=uI(()=>{u.current&&=(u.current(),void 0)},100);return l.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{d(),u.current||(u.current=lI(e,s),s())};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,d,s]),(0,B.jsx)(G.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:W(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:W(e.onPointerUp,o.onThumbPointerUp)})});ZF.displayName=XF;var $F=`ScrollAreaCorner`,eI=l.forwardRef((e,t)=>{let n=q($F,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,B.jsx)(tI,{...e,ref:t}):null});eI.displayName=$F;var tI=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=q($F,n),[a,o]=l.useState(0),[s,c]=l.useState(0),u=!!(a&&s);return dI(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),dI(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),u?(0,B.jsx)(G.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function nI(e){return e?parseInt(e,10):0}function rI(e,t){let n=e/t;return isNaN(n)?0:n}function iI(e){let t=rI(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function aI(e,t,n,r=`ltr`){let i=iI(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return sI([c,l],d)(e)}function oI(e,t,n=`ltr`){let r=iI(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=AF(e,n===`ltr`?[0,o]:[o*-1,0]);return sI([0,o],[0,s])(c)}function sI(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function cI(e,t){return e>0&&e<t}var lI=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function uI(e,t){let n=K(e),r=l.useRef(0);return l.useEffect(()=>()=>window.clearTimeout(r.current),[]),l.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function dI(e,t){let n=K(t);nM(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var fI=IF,pI=RF,mI=eI,hI=l.forwardRef((e,t)=>{let n=(0,R.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=U(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,B.jsx)(pI,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsx)(gI,{}),l=(0,B.jsx)(mI,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,B.jsxs)(fI,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});hI.displayName=fI.displayName;var gI=l.forwardRef((e,t)=>{let n=(0,R.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=U(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,B.jsx)(ZF,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let d;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(d=(0,B.jsx)(BF,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});gI.displayName=BF.displayName;var _I=[`462`,`8100`].includes(document.location.port)?`http://${document.location.hostname}:462`:`http://${document.location.hostname}:641`;function vI(){return _I}function yI(e){return`${_I}${e.startsWith(`/`)?e:`/${e}`}`}function bI(e){return e?typeof e.error==`string`?e.error:e.error&&typeof e.error==`object`?e.error.details??e.error.message??`Unknown error`:`Unknown error`:`Unknown error`}async function xI(e){try{return bI(await e.json())}catch{}return e.statusText||`Unknown error`}function SI(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 J(e,t){let n=await fetch(yI(e),{...t,method:`GET`});if(!n.ok){let e=await xI(n);throw Error(e)}return n.json()}async function Y(e,t,n){let r=await fetch(yI(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function CI(e,t,n){let r=await fetch(yI(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function wI(e,t,n){let r=await fetch(yI(e),{...n,method:`PATCH`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function TI(e,t,n){let r=await fetch(yI(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.body}async function EI(e,t){let n=await fetch(yI(e),{...t,method:`DELETE`});if(!n.ok){let e=await xI(n);throw Error(e)}if(n.status!==204)return n.json()}async function DI(e,t,n){let r=await fetch(yI(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});if(!r.ok){let e=await xI(r);throw Error(e)}return r.body}async function OI(e,t){let n=await fetch(yI(e),{...t,method:`GET`});if(!n.ok){let e=await xI(n);throw Error(e)}return n.body}async function kI(e,t,n){let r=await fetch(yI(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 SI(bI(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function AI(e,t,n){let r=await fetch(yI(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 SI(bI(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function X(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var Z=new class{cache=new Map;inFlightRequests=new Map;async get(e,t,n){let r=this.inFlightRequests.get(e);if(r)return r;let i=this.cache.get(e);if(i&&Date.now()<i.expires)return i.data;let a=t().then(t=>(this.cache.set(e,{data:t,expires:Date.now()+n}),t)).finally(()=>{this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,a),a}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}invalidate(e){this.cache.delete(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);t.forEach(e=>this.cache.delete(e))}clear(){this.cache.clear(),this.inFlightRequests.clear()}},jI=t({EmptyBalanceError:()=>MI,LOW_BALANCE_THRESHOLD:()=>50,applyAppUpdate:()=>yR,checkBalance:()=>NI,checkForAppUpdate:()=>vR,checkGitInstalled:()=>lR,checkVpInstalled:()=>FI,clearChatHistory:()=>uL,completeOnboarding:()=>uR,copyImageToClipboard:()=>OL,createGitCheckpoint:()=>GL,createGitHubRepo:()=>WL,createProject:()=>XI,createScaffoldedProject:()=>LI,createSlashCommand:()=>mR,createThread:()=>tL,createThreadAgent:()=>LR,createThreadSkill:()=>IR,deleteCommand:()=>JL,deleteMCPServer:()=>kR,deleteProject:()=>$I,deleteProjectAIFile:()=>MR,deleteSlashCommand:()=>hR,deleteThread:()=>nL,deleteThreadAIFile:()=>RR,disableImageModel:()=>EL,disableModel:()=>xL,enableImageModel:()=>TL,enableModel:()=>bL,fetchAvailableImageModels:()=>CL,fetchAvailableModels:()=>yL,fixComments:()=>iL,generateCommitMessage:()=>jL,generateImage:()=>DL,generatePRInfo:()=>IL,getAccountInfo:()=>WI,getAllEnabledImageModels:()=>wL,getAllEnabledModels:()=>SL,getAvailablePrograms:()=>GI,getChatHistory:()=>oL,getContextBreakdown:()=>_R,getConversationFolderPath:()=>sL,getConversationHistory:()=>gR,getGitDiff:()=>sR,getGitLog:()=>UL,getGitUser:()=>qI,getGitUserName:()=>JI,getMCPConfig:()=>DR,getOnboardingStatus:()=>cR,getPackageScripts:()=>YL,getPopularAgents:()=>CR,getPopularMCPServers:()=>AR,getPopularRules:()=>wR,getPopularSkills:()=>SR,getPopularSlashCommands:()=>TR,getProcessingThreads:()=>KI,getProject:()=>QI,getProjectAIFiles:()=>jR,getProjectScripts:()=>QL,getProjects:()=>YI,getProviderCredits:()=>BI,getProviderLogoUrl:()=>zI,getProviders:()=>RI,getScaffoldTemplates:()=>PI,getSlashCommands:()=>fR,getSlashCommandsAndSkills:()=>pR,getThread:()=>tR,getThreadAIFile:()=>PR,getThreadAIFiles:()=>NR,getThreadFiles:()=>ZL,getUnifiedGitStatus:()=>AL,gitCheckoutBranch:()=>VL,gitCommit:()=>ML,gitCreateBranch:()=>zL,gitCreatePR:()=>LL,gitFetch:()=>RL,gitListBranches:()=>BL,gitPull:()=>PL,gitPush:()=>NL,gitRevertFile:()=>HL,gitSyncBranch:()=>FL,installGithubFolderToThread:()=>ER,installVp:()=>II,invalidateProjectsCache:()=>eL,isDevServerRunning:()=>aR,openExternalUrl:()=>UI,openFolderProject:()=>ZI,openProjectWith:()=>mL,openThreadWith:()=>hL,parseSSEStream:()=>fL,resetOnboarding:()=>dR,restoreGitCheckpoint:()=>KL,runCommand:()=>XL,runProjectScript:()=>$L,saveCommand:()=>qL,saveImageToDownloads:()=>kL,saveMCPServer:()=>OR,saveProviderEnvironment:()=>HI,saveProviderKey:()=>VI,saveThreadAIFile:()=>FR,selectThread:()=>aL,sendChatMessage:()=>cL,startDevServer:()=>rR,stopChatGeneration:()=>dL,stopDevServer:()=>iR,stopProjectScript:()=>eR,submitAskUserAnswer:()=>bR,submitBrowserJsResult:()=>xR,subscribeToChatStream:()=>lL,suggestRunCommand:()=>nR,ttlCache:()=>Z,updateProject:()=>pL,updateProjectName:()=>vL,updateProjectOpenWith:()=>gL,updateProjectSetupScript:()=>_L,updateRunCommand:()=>oR,updateThread:()=>rL}),MI=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}};async function NI(){let{plan:e,promptsRemaining:t}=await WI();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1}:{isEmpty:t<=0,isLow:t>0&&t<=50}}async function PI(){return J(`api/scaffold/templates`)}async function FI(){return(await J(`api/scaffold/check-vp`)).installed}async function II(){return Y(`api/scaffold/install-vp`,{})}async function LI(e,t,n){return DI(`api/scaffold`,{projectName:e,templateId:t,packageManager:n})}async function RI(){return Z.get(`providers`,async()=>J(`api/providers`),6e4)}function zI(e){return`${vI()}/api/providers/${X(e)}/logo`}async function BI(e){return Z.get(`provider-credits-${e}`,async()=>J(`api/providers/${X(e)}/credits`),3e4)}async function VI(e,t){await Y(`api/providers/keys`,{providerName:e,apiKey:t}),Z.invalidate(`providers`)}async function HI(e){await Y(`api/providers/env`,{values:e}),Z.invalidate(`providers`)}async function UI(e){try{await Y(`api/providers/open-external`,{url:e})}catch(t){if(t instanceof Error&&t.message===`External URL opening not available in server mode`){window.open(e,`_blank`,`noopener,noreferrer`);return}throw t}}async function WI(){return J(`api/account/info`)}async function GI(){return Z.get(`available-programs`,async()=>(await J(`api/programs`)).programs??[],3e5)}async function KI(){return(await J(`api/threads/processing`)).processingThreadIds??[]}async function qI(){return Z.get(`git-user`,async()=>{try{let e=await J(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function JI(){return(await qI()).name}async function YI(){return Z.get(`projects`,async()=>({projects:(await J(`api/projects`)||[]).map(e=>{let t=e;return{projectId:t.projectId??t.id,name:t.name,gitUrl:t.gitUrl,projectPath:t.projectPath??t.path,threads:t.threads??[],commands:t.commands??[],setupScript:t.setupScript,runCommand:t.runCommand,planPrompt:t.planPrompt,testPrompt:t.testPrompt,reviewPrompt:t.reviewPrompt}}).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:!!t.gitStatusDot}});return{...e,threads:t}})}),3e4)}async function XI(e,t){return DI(`api/projects`,{gitUrl:e,commitMethod:t})}async function ZI(){return DI(`api/projects/open-folder`,{})}async function QI(e){return J(`api/projects/${X(e)}`)}async function $I(e){await EI(`api/projects/${X(e)}`),Z.invalidate(`projects`)}function eL(){Z.invalidate(`projects`)}async function tL(e,t){return DI(`api/threads`,{projectId:e,title:t})}async function nL(e,t){await EI(`api/threads/${X(t)}`)}async function rL(e,t){await wI(`api/threads/${X(e)}`,t),(`model`in t||`modelProvider`in t)&&Z.invalidate(`projects`)}async function iL(e,t){return Y(`api/threads/${X(e)}/fix-comments`,{comments:t})}async function aL(e,t){await Y(`api/threads/${X(t)}/select`)}async function oL(e){return{threadId:e,messages:await J(`api/threads/${X(e)}/messages`)}}async function sL(e){return(await J(`api/threads/${X(e)}/conversation-folder-path`)).path}async function cL(e,t,n,r=[],i,a,o,s){let{isEmpty:c}=await NI();if(c)throw new MI;return DI(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,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 lL(e,t){return OI(`api/chat/subscribe/${X(e)}`,{signal:t})}async function uL(e){return(await EI(`api/chat/${X(e)}`))?.conversationId||``}async function dL(e){try{await Y(`api/chat/stop/${X(e)}`)}catch{}}function fL(e,t,n,r,i){let a=e.getReader(),o=!1,s=()=>{o=!0,a.cancel().catch(()=>{})},c=new TextDecoder,l=``,u=e=>e?[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/forbidden/i,/unauthorized/i].some(t=>t.test(e.trim())):!1;async function d(){try{for(;!o;){let{done:e,value:s}=await a.read();if(e||o){if(!o&&e){if(l.trim())try{let e=JSON.parse(l);e.type===`error`?r(e.content??`Unknown error`):e.type===`message`?i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}):e.type===`complete`||(e.type===`result`&&u(e.content)?r(e.content??`Unknown error`):t(e))}catch{l.trim()&&t({type:`result`,content:l})}n()}break}l+=c.decode(s,{stream:!0});let d=l.split(`
46
- `);l=d.pop()??``;for(let e of d){let a=e.trim();if(a)try{let e=JSON.parse(a);if(e.type===`error`){r(e.content??`Unknown error`),n();return}else if(e.type===`message`)i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking});else if(e.type===`complete`){n();return}else if(e.type===`result`&&u(e.content)){r(e.content??`Unknown error`),n();return}else t(e)}catch{}}}}catch(e){o||(r(e instanceof Error?e.message:`Stream error`),n())}}return d(),s}async function pL(e,t){return t.runNow&&t.setupScript?TI(`api/projects/${X(e)}`,t):(await AI(`api/projects/${X(e)}`,t),t.runNow||eL(),null)}async function mL(e,t){await kI(`api/projects/${X(e)}/open`,{program:t})}async function hL(e,t){await kI(`api/threads/${X(e)}/open`,{program:t})}async function gL(e,t){await pL(e,{program:t})}async function _L(e,t,n){return pL(e,{setupScript:t,runNow:n})}async function vL(e,t){await pL(e,{name:t})}async function yL(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 Z.get(r,async()=>{let e=await J(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function bL(e,t){await Y(`api/models/${X(e,t)}/enable`),Z.invalidate(`enabled-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function xL(e,t){await Y(`api/models/${X(e,t)}/disable`),Z.invalidate(`enabled-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function SL(){return Z.get(`enabled-models`,async()=>(await J(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function CL(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return Z.get(n,async()=>{let e=await J(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function wL(){return Z.get(`enabled-image-models`,async()=>(await J(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function TL(e,t){await Y(`api/models/${X(e,t)}/enable?useCase=image`),Z.invalidate(`enabled-image-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function EL(e,t){await Y(`api/models/${X(e,t)}/disable?useCase=image`),Z.invalidate(`enabled-image-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function DL(e,t,n,r){return Y(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function OL(e){await Y(`api/image/clipboard`,e)}async function kL(e){return Y(`api/image/save`,e)}async function AL(e,t=!1){return J(t?`api/git/unified-status/${X(e)}?fresh=true`:`api/git/unified-status/${X(e)}`)}async function jL(e,t,n){return(await Y(`api/git/generate-commit-message/${X(e)}`,{model:t,provider:n})).message}async function ML(e,t){await Y(`api/git/commit/${X(e)}`,{message:t})}async function NL(e){await Y(`api/git/push/${X(e)}`)}async function PL(e){await Y(`api/git/pull/${X(e)}`)}async function FL(e){return Y(`api/git/sync-branch/${X(e)}`,{})}async function IL(e,t,n){return Y(`api/git/generate-pr-info/${X(e)}`,{model:t,provider:n})}async function LL(e,t,n){return Y(`api/git/create-pr/${X(e)}`,{title:t,description:n})}async function RL(e){await Y(`api/git/fetch/${X(e)}`)}async function zL(e,t,n){return Y(`api/git/create-branch/${X(e)}`,{baseBranch:t,branchName:n})}async function BL(e){return J(`api/git/branches/${X(e)}`)}async function VL(e,t){return Y(`api/git/checkout-branch/${X(e)}`,{branchName:t})}async function HL(e,t){return Y(`api/git/revert-file/${X(e)}`,{filePath:t})}async function UL(e,t=50){return(await J(`api/git/log/${X(e)}?limit=${t}`)).commits}async function WL(e,t,n,r){return Y(`api/git/create-repo/${X(e)}`,{repoName:t,description:n,isPrivate:r})}async function GL(e,t){return Y(`api/git/checkpoint/${X(e)}`,{messageId:t})}async function KL(e,t){return Y(`api/git/checkpoint-restore/${X(e)}`,{checkpointRef:t})}async function qL(e,t){await Y(`api/projects/${X(e)}/commands`,t)}async function JL(e,t){await EI(`api/projects/${X(e)}/commands/${X(t)}`)}async function YL(e){return J(`api/projects/${X(e)}/package-scripts`)}async function XL(e,t,n,r){return DI(`api/projects/${X(e)}/threads/${X(t)}/commands/run`,{commandLine:n,cwd:r})}async function ZL(e){return J(`api/threads/${X(e)}/files`)}async function QL(e){return(await J(`api/threads/${X(e)}/project-scripts`)).scripts}async function $L(e,t,n,r){return DI(`api/threads/${X(e)}/project-scripts/run`,{scriptName:t,command:n},r)}async function eR(e,t){return Y(`api/threads/${X(e)}/project-scripts/stop`,{scriptName:t})}async function tR(e){return J(`api/threads/${e}`)}async function nR(e){return Y(`api/projects/${X(e)}/run-suggest`,{})}async function rR(e,t){return console.log(`API: startDevServer called for project:`,e,`thread:`,t),DI(`api/projects/${X(e)}/run`,{threadId:t})}async function iR(e){return Y(`api/projects/${X(e)}/stop`,{})}async function aR(e){return J(`api/projects/${X(e)}/running`)}async function oR(e,t){await pL(e,{runCommand:t})}async function sR(e){return J(`api/git/diff/${X(e)}`)}async function cR(){return J(`api/onboarding/status`)}async function lR(){return J(`api/onboarding/git-check`)}async function uR(){return Y(`api/onboarding/complete`,{})}async function dR(){return Y(`api/onboarding/reset`,{})}async function fR(e){return(await J(`api/slash-commands?threadId=${X(e)}`)).commands??[]}async function pR(e){let t=await J(`api/slash-commands?threadId=${X(e)}`);return{commands:t.commands??[],skills:t.skills??[]}}async function mR(e,t,n,r,i){return Y(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function hR(e){let t=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})});if(!t.ok)throw Error(`Failed to delete slash command: ${t.statusText}`);return t.json()}async function gR(e){return J(`api/conversations/${X(e)}`)}async function _R(e,t){return J(`api/conversations/${X(e)}/${X(t)}/context`)}async function vR(){try{return await J(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function yR(){return Y(`api/update/apply`)}async function bR(e,t){await Y(`api/ask-user/respond`,{toolCallId:e,answer:t})}async function xR(e,t){await Y(`api/browser-js/respond`,{toolCallId:e,result:t})}async function SR(){return(await J(`api/skills/popular`)).skills??[]}async function CR(){return(await J(`api/agents/popular`)).agents??[]}async function wR(){return(await J(`api/rules/popular`)).rules??[]}async function TR(){return(await J(`api/slash-commands/popular`)).commands??[]}async function ER(e,t,n,r){return Y(`api/threads/${X(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r})}async function DR(e){return J(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function OR(e,t,n){return CI(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function kR(e,t){return EI(`api/mcp/config/${X(t)}?projectPath=${encodeURIComponent(e)}`)}async function AR(){return(await J(`api/mcp/popular`)).servers??[]}async function jR(e){return(await J(`api/projects/${X(e)}/ai-files`)).nodes??[]}async function MR(e,t){return EI(`api/projects/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function NR(e){return(await J(`api/threads/${X(e)}/ai-files`)).nodes??[]}async function PR(e,t){return J(`api/threads/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function FR(e,t,n){return CI(`api/threads/${X(e)}/ai-file`,{path:t,content:n})}async function IR(e,t,n){return Y(`api/threads/${X(e)}/ai-files/skill`,{name:t,description:n})}async function LR(e,t,n,r){return Y(`api/threads/${X(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function RR(e,t){return EI(`api/threads/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}var Q=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.AUTO_GENERATE_COMMIT_MESSAGE=`autoGenerateCommitMessage`,e.AUTO_GENERATE_PR_INFO=`autoGeneratePRInfo`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.SELECTED_MODEL_PREFIX=`selected-model-`,e.SCROLL_POSITION_PREFIX=`scroll-position-`,e.FONT_SCALE=`tarsk.general.fontScale`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e}({}),zR=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e}({});function BR(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function VR(e,t){typeof localStorage>`u`||localStorage.setItem(e,t)}function HR(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function UR(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function WR(e=`npm`){return BR(Q.PACKAGE_MANAGER)??e}function GR(e){VR(Q.PACKAGE_MANAGER,e)}function KR(e=`pull-request`){return BR(Q.COMMIT_METHOD)??e}function qR(e){VR(Q.COMMIT_METHOD,e)}function JR(e=``){return BR(Q.TEMPLATE_ID)??e}function YR(e){VR(Q.TEMPLATE_ID,e)}function XR(e=!1){let t=BR(Q.AUTO_GENERATE_COMMIT_MESSAGE);return t===null?e:t===`true`}function ZR(e){VR(Q.AUTO_GENERATE_COMMIT_MESSAGE,e.toString())}function QR(e=!1){let t=BR(Q.AUTO_GENERATE_PR_INFO);return t===null?e:t===`true`}function $R(e){VR(Q.AUTO_GENERATE_PR_INFO,e.toString())}function ez(e=!1){let t=BR(Q.PRIVATE_REPOSITORY_DEFAULT);return t===null?e:t===`true`}function tz(e){VR(Q.PRIVATE_REPOSITORY_DEFAULT,e.toString())}function nz(e){let t=BR(Q.SCROLL_POSITION_PREFIX+e),n=t===null?null:Number(t);return n!==null&&Number.isFinite(n)?n:null}function rz(e,t){VR(Q.SCROLL_POSITION_PREFIX+e,String(t))}function iz(){let e=HR(zR.MESSAGE_HISTORY);return e?JSON.parse(e):[]}function az(e){let t=iz();e.trim()&&t[t.length-1]!==e&&(t.push(e),UR(zR.MESSAGE_HISTORY,JSON.stringify(t)))}function oz(e=100){let t=BR(Q.FONT_SCALE);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function sz(e){VR(Q.FONT_SCALE,String(e))}function cz(e=`VS Code`){return BR(Q.OPEN_WITH_PROGRAM)??e}function lz(e){VR(Q.OPEN_WITH_PROGRAM,e)}function uz(e){let t=e+`CollectionProvider`,[n,r]=eM(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=l.useRef(null),a=l.useRef(new Map).current;return(0,B.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=dM(s),u=l.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,B.jsx)(c,{ref:z(t,a(s,n).collectionRef),children:r})});u.displayName=s;let d=e+`CollectionItemSlot`,f=`data-radix-collection-item`,p=dM(d),m=l.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=l.useRef(null),s=z(t,o),c=a(d,n);return l.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,B.jsx)(p,{[f]:``,ref:s,children:r})});m.displayName=d;function h(t){let n=a(e+`CollectionConsumer`,t);return l.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:u,ItemSlot:m},h,r]}var dz=`rovingFocusGroup.onEntryFocus`,fz={bubbles:!1,cancelable:!0},pz=`RovingFocusGroup`,[mz,hz,gz]=uz(pz),[_z,vz]=eM(pz,[gz]),[yz,bz]=_z(pz),xz=l.forwardRef((e,t)=>(0,B.jsx)(mz.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,B.jsx)(mz.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,B.jsx)(Sz,{...e,ref:t})})}));xz.displayName=pz;var Sz=l.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=l.useRef(null),m=z(t,p),h=kF(a),[g,_]=sM({prop:o,defaultProp:s??null,onChange:c,caller:pz}),[v,y]=l.useState(!1),b=K(u),x=hz(n),S=l.useRef(!1),[C,w]=l.useState(0);return l.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(dz,b),()=>e.removeEventListener(dz,b)},[b]),(0,B.jsx)(yz,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:l.useCallback(e=>_(e),[_]),onItemShiftTab:l.useCallback(()=>y(!0),[]),onFocusableItemAdd:l.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:l.useCallback(()=>w(e=>e-1),[]),children:(0,B.jsx)(G.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:W(e.onMouseDown,()=>{S.current=!0}),onFocus:W(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(dz,fz);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);Oz([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}S.current=!1}),onBlur:W(e.onBlur,()=>y(!1))})})}),Cz=`RovingFocusGroupItem`,wz=l.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=aM(),u=a||c,d=bz(Cz,n),f=d.currentTabStopId===u,p=hz(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=d;return l.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,B.jsx)(mz.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:(0,B.jsx)(G.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:W(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:W(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:W(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Dz(e,d.orientation,d.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=d.loop?kz(n,r+1):n.slice(r+1)}setTimeout(()=>Oz(n))}}),children:typeof o==`function`?o({isCurrentTabStop:f,hasTabStop:g!=null}):o})})});wz.displayName=Cz;var Tz={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Ez(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Dz(e,t,n){let r=Ez(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Tz[r]}function Oz(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function kz(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Az=xz,jz=wz;Object.entries({"VS Code":{name:`VS Code`,appName:[`Visual Studio Code`,`code`]},Cursor:{name:`Cursor`,appName:[`Cursor`,`cursor`]},Windsurf:{name:`Windsurf`,appName:[`Windsurf`,`windsurf`]},Xcode:{name:`Xcode`,appName:`Xcode`},"Android Studio":{name:`Android Studio`,appName:[`Android Studio`,`studio`]},Kiro:{name:`Kiro`,appName:[`Kiro`,`kiro`]},Terminal:{name:`Terminal`,appName:`Terminal`},"Devin Desktop":{name:`Devin Desktop`,appName:[`Devin`,`Devin Desktop`]},Antigravity:{name:`Antigravity`,appName:[`com.google.antigravity-ide`,`Antigravity IDE`]}}).reduce((e,[t,n])=>(e[t]=n.appName,e),{});var $;(function(e){e.PullRequest=`pull-request`,e.Direct=`direct`})($||={}),$.PullRequest,$.PullRequest,$.Direct,$.Direct;var Mz={bun:{id:`bun`,label:`bun`},npm:{id:`npm`,label:`npm`},yarn:{id:`yarn`,label:`yarn`},pnpm:{id:`pnpm`,label:`pnpm`}},Nz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Nz.displayName=`Card`;var Pz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Pz.displayName=`CardHeader`;var Fz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-2xl font-semibold leading-none tracking-tight`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Fz.displayName=`CardTitle`;var Iz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Iz.displayName=`CardDescription`;var Lz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`p-6 pt-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Lz.displayName=`CardContent`;var Rz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Rz.displayName=`CardFooter`;var zz=`Toggle`,Bz=l.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=sM({prop:n,onChange:i,defaultProp:r??!1,caller:zz});return(0,B.jsx)(G.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:W(e.onClick,()=>{e.disabled||s(!o)})})});Bz.displayName=zz;var Vz=Bz,Hz=`ToggleGroup`,[Uz,Wz]=eM(Hz,[vz]),Gz=vz(),Kz=l.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,B.jsx)(Yz,{...r,ref:t});if(n===`multiple`)return(0,B.jsx)(Xz,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${Hz}\``)});Kz.displayName=Hz;var[qz,Jz]=Uz(Hz),Yz=l.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=sM({prop:n,defaultProp:r??``,onChange:i,caller:Hz});return(0,B.jsx)(qz,{scope:e.__scopeToggleGroup,type:`single`,value:l.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:l.useCallback(()=>s(``),[s]),children:(0,B.jsx)($z,{...a,ref:t})})}),Xz=l.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=sM({prop:n,defaultProp:r??[],onChange:i,caller:Hz}),c=l.useCallback(e=>s((t=[])=>[...t,e]),[s]),u=l.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,B.jsx)(qz,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:u,children:(0,B.jsx)($z,{...a,ref:t})})});Kz.displayName=Hz;var[Zz,Qz]=Uz(Hz),$z=l.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=Gz(n),u=kF(o),d={role:`group`,dir:u,...c};return(0,B.jsx)(Zz,{scope:n,rovingFocus:i,disabled:r,children:i?(0,B.jsx)(Az,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,B.jsx)(G.div,{...d,ref:t})}):(0,B.jsx)(G.div,{...d,ref:t})})}),eB=`ToggleGroupItem`,tB=l.forwardRef((e,t)=>{let n=Jz(eB,e.__scopeToggleGroup),r=Qz(eB,e.__scopeToggleGroup),i=Gz(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=l.useRef(null);return r.rovingFocus?(0,B.jsx)(jz,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,B.jsx)(nB,{...s,ref:t})}):(0,B.jsx)(nB,{...s,ref:t})});tB.displayName=eB;var nB=l.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=Jz(eB,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,B.jsx)(Bz,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),rB=Kz,iB=tB,aB=QA(`inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},size:{default:`h-10 px-3 min-w-10`,sm:`h-9 px-2.5 min-w-9`,lg:`h-11 px-5 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),oB=l.forwardRef((e,t)=>{let n=(0,R.c)(13),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,variant:o,size:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s;n[5]!==r||n[6]!==a||n[7]!==o?(s=U(aB({variant:o,size:a,className:r})),n[5]=r,n[6]=a,n[7]=o,n[8]=s):s=n[8];let c;return n[9]!==i||n[10]!==t||n[11]!==s?(c=(0,B.jsx)(Vz,{ref:t,className:s,...i}),n[9]=i,n[10]=t,n[11]=s,n[12]=c):c=n[12],c});oB.displayName=Vz.displayName;var sB=l.createContext({size:`default`,variant:`default`}),cB=l.forwardRef((e,t)=>{let n=(0,R.c)(19),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,variant:s,size:o,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c;n[6]===i?c=n[7]:(c=U(`flex items-center justify-center gap-1`,i),n[6]=i,n[7]=c);let l;n[8]!==o||n[9]!==s?(l={variant:s,size:o},n[8]=o,n[9]=s,n[10]=l):l=n[10];let u;n[11]!==r||n[12]!==l?(u=(0,B.jsx)(sB.Provider,{value:l,children:r}),n[11]=r,n[12]=l,n[13]=u):u=n[13];let d;return n[14]!==a||n[15]!==t||n[16]!==c||n[17]!==u?(d=(0,B.jsx)(rB,{ref:t,className:c,...a,children:u}),n[14]=a,n[15]=t,n[16]=c,n[17]=u,n[18]=d):d=n[18],d});cB.displayName=rB.displayName;var lB=l.forwardRef((e,t)=>{let n=(0,R.c)(17),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,children:r,variant:s,size:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c=l.useContext(sB),u;n[6]!==i||n[7]!==c.size||n[8]!==c.variant||n[9]!==o||n[10]!==s?(u=U(aB({variant:c.variant||s,size:c.size||o}),i),n[6]=i,n[7]=c.size,n[8]=c.variant,n[9]=o,n[10]=s,n[11]=u):u=n[11];let d;return n[12]!==r||n[13]!==a||n[14]!==t||n[15]!==u?(d=(0,B.jsx)(iB,{ref:t,className:u,...a,children:r}),n[12]=r,n[13]=a,n[14]=t,n[15]=u,n[16]=d):d=n[16],d});lB.displayName=iB.displayName;var uB=t({CreateProjectDialog:()=>fB,default:()=>fB}),dB={"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 fB({open:e,onOpenChange:t,initialMode:n,onSubmitClone:r,onSubmitWebApp:i,onOpenFolder:a}){let[o,s]=(0,l.useState)(n??`choice`),[c,u]=(0,l.useState)(1),[d,f]=(0,l.useState)(``),[p,m]=(0,l.useState)(KR($.PullRequest)),[h,g]=(0,l.useState)(`My App`),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)(JR()),[x,S]=(0,l.useState)(WR()),[C,w]=(0,l.useState)([]),[T,E]=(0,l.useState)(!1),[D,O]=(0,l.useState)(!1),[ee,k]=(0,l.useState)(new Set),te=(0,l.useCallback)(e=>{k(t=>new Set(t).add(e))},[]),{typeNames:A,templatesByTypeName:j}=(0,l.useMemo)(()=>{let e={};if(Array.isArray(C))for(let t of C){let n=t.typeName;e[n]||(e[n]=[]),e[n].push(t)}return{typeNames:Object.keys(e).sort(),templatesByTypeName:e}},[C]),M=(0,l.useMemo)(()=>{let e={};for(let t of Object.keys(j)){let n=j[t]??[];if(n.length===0)continue;let r=n.find(e=>e.variationName===`Starter`),i=n.filter(e=>e.variationName!==`Starter`);e[t]=(r?[r,...i]:n)[0].id}return e},[j]),N=(0,l.useMemo)(()=>{if(!Array.isArray(C)||C.find(e=>e.id===y)||C.length===0)return y;let e=A[0],t=e?j[e]??[]:[];return(t.find(e=>e.variationName===`Starter`)??t[0])?.id??y},[y,C,A,j]),P=(0,l.useMemo)(()=>!N||!Array.isArray(C)||C.length===0?null:C.find(e=>e.id===N)?.typeName??null,[N,C]),F=(0,l.useMemo)(()=>{let e=P?j[P]??[]:[];if(e.length<=1)return e;let t=e.find(e=>e.variationName===`Starter`),n=e.filter(e=>e.variationName!==`Starter`);return t?[t,...n]:e},[P,j]);(0,l.useEffect)(()=>{N&&YR(N)},[N]),(0,l.useEffect)(()=>{e&&n&&setTimeout(()=>{s(n),u(2),n===`webapp`&&(g(`My App`),v(!1),k(new Set))},0)},[e,n]),(0,l.useEffect)(()=>{o===`webapp`&&e&&(!Array.isArray(C)||C.length===0)&&setTimeout(()=>{E(!0),PI().then(e=>w(e?.templates||[])).catch(()=>w([])).finally(()=>E(!1))},0)},[o,e,C]);let ne=(0,l.useMemo)(()=>_?h:P?`My ${P} App`:`My App`,[_,h,P]),re=N&&Array.isArray(C)?C.find(e=>e.id===N):null,ie=()=>{s(`webapp`),u(2),g(`My App`),v(!1),k(new Set),(!Array.isArray(C)||C.length===0)&&(E(!0),PI().then(e=>w(e?.templates||[])).catch(()=>w([])).finally(()=>E(!1)))},ae=()=>{s(`clone`),u(2)},oe=()=>{s(`choice`),u(1),f(``),g(`My App`),v(!1),k(new Set),t(!1)},se=()=>{c===2?(s(`choice`),u(1),f(``),g(`My App`),v(!1)):u(e=>e-1)},ce=o===`clone`?d.trim().length>0:P!==null,le=()=>{if(!d.trim())return;let e=d.trim();f(``),u(1),t(!1),s(`choice`),r(e,p).catch(()=>{})},ue=async()=>{if(!ne.trim()||!N||!de(ne))return;if(re?.variation===`vite-plus`){O(!0);try{if(!await FI()){if(!window.confirm(`Vite Plus is required for this template but is not installed.
45
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return l.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},rF=`DialogDescriptionWarning`,iF=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${tF(rF).contentName}}.`;return l.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},aF=AP,oF=MP,sF=IP,cF=RP,lF=HP,uF=qP,dF=YP,fF=ZP,pF=aF,mF=sF,hF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(cF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});hF.displayName=cF.displayName;var gF=l.forwardRef((e,t)=>{let n=(0,R.c)(13),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,B.jsx)(hF,{}),n[4]=o):o=n[4];let s;n[5]===i?s=n[6]:(s=U(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,i),n[5]=i,n[6]=s);let c;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsxs)(fF,{className:`absolute right-4 top-4 h-7 w-7 rounded-full flex items-center justify-center transition-colors hover:bg-foreground hover:text-background disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,B.jsx)(TA,{className:`h-4 w-4`}),(0,B.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[7]=c):c=n[7];let l;return n[8]!==r||n[9]!==a||n[10]!==t||n[11]!==s?(l=(0,B.jsxs)(mF,{children:[o,(0,B.jsxs)(lF,{ref:t,className:s,...a,children:[r,c]})]}),n[8]=r,n[9]=a,n[10]=t,n[11]=s,n[12]=l):l=n[12],l});gF.displayName=lF.displayName;var _F=e=>{let t=(0,R.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=U(`flex flex-col space-y-1.5 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,B.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};_F.displayName=`DialogHeader`;var vF=e=>{let t=(0,R.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=U(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,B.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};vF.displayName=`DialogFooter`;var yF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-lg font-semibold leading-none tracking-tight`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(uF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});yF.displayName=uF.displayName;var bF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(dF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});bF.displayName=dF.displayName;var xF=l.forwardRef((e,t)=>{let n=(0,R.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,type:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===r?o=n[5]:(o=U(`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,r),n[4]=r,n[5]=o);let s;return n[6]!==i||n[7]!==t||n[8]!==o||n[9]!==a?(s=(0,B.jsx)(`input`,{type:a,className:o,ref:t,...i}),n[6]=i,n[7]=t,n[8]=o,n[9]=a,n[10]=s):s=n[10],s});xF.displayName=`Input`;var SF=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=VA(`Primitive.${t}`),r=l.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,B.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),CF=`Label`,wF=l.forwardRef((e,t)=>(0,B.jsx)(SF.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));wF.displayName=CF;var TF=wF,EF=QA(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),DF=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(EF(),r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(TF,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});DF.displayName=TF.displayName;var OF=l.createContext(void 0);function kF(e){let t=l.useContext(OF);return e||t||`ltr`}function AF(e,[t,n]){return Math.min(n,Math.max(t,e))}function jF(e,t){return l.useReducer((e,n)=>t[e][n]??e,e)}var MF=`ScrollArea`,[NF,PF]=eM(MF),[FF,q]=NF(MF),IF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=l.useState(null),[u,d]=l.useState(null),[f,p]=l.useState(null),[m,h]=l.useState(null),[g,_]=l.useState(null),[v,y]=l.useState(0),[b,x]=l.useState(0),[S,C]=l.useState(!1),[w,T]=l.useState(!1),E=z(t,e=>c(e)),D=kF(i);return(0,B.jsx)(FF,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,B.jsx)(G.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":v+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})});IF.displayName=MF;var LF=`ScrollAreaViewport`,RF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=q(LF,n),s=z(t,l.useRef(null),o.onViewportChange);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,B.jsx)(G.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,B.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});RF.displayName=LF;var zF=`ScrollAreaScrollbar`,BF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return l.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,B.jsx)(VF,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,B.jsx)(HF,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,B.jsx)(UF,{...r,ref:t,forceMount:n}):i.type===`always`?(0,B.jsx)(WF,{...r,ref:t}):null});BF.displayName=zF;var VF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),[a,o]=l.useState(!1);return l.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,B.jsx)(eN,{present:n||a,children:(0,B.jsx)(UF,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),HF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(zF,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=uI(()=>c(`SCROLL_END`),100),[s,c]=jF(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return l.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),l.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,B.jsx)(eN,{present:n||s!==`hidden`,children:(0,B.jsx)(WF,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:W(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:W(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),UF=l.forwardRef((e,t)=>{let n=q(zF,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=l.useState(!1),s=e.orientation===`horizontal`,c=uI(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return dI(n.viewport,c),dI(n.content,c),(0,B.jsx)(eN,{present:r||a,children:(0,B.jsx)(WF,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),WF=l.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=q(zF,e.__scopeScrollArea),a=l.useRef(null),o=l.useRef(0),[s,c]=l.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=rI(s.viewport,s.content),d={...r,sizes:s,onSizesChange:c,hasThumb:u>0&&u<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function f(e,t){return aI(e,o.current,s,t)}return n===`horizontal`?(0,B.jsx)(GF,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=oI(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=f(e,i.dir))}}):n===`vertical`?(0,B.jsx)(KF,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=oI(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=f(e))}}):null}),GF=l.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(zF,e.__scopeScrollArea),[o,s]=l.useState(),c=l.useRef(null),u=z(t,c,a.onScrollbarXChange);return l.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,B.jsx)(YF,{"data-orientation":`horizontal`,...i,ref:u,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":iI(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),cI(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:nI(o.paddingLeft),paddingEnd:nI(o.paddingRight)}})}})}),KF=l.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(zF,e.__scopeScrollArea),[o,s]=l.useState(),c=l.useRef(null),u=z(t,c,a.onScrollbarYChange);return l.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,B.jsx)(YF,{"data-orientation":`vertical`,...i,ref:u,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":iI(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),cI(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:nI(o.paddingTop),paddingEnd:nI(o.paddingBottom)}})}})}),[qF,JF]=NF(zF),YF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,m=q(zF,n),[h,g]=l.useState(null),_=z(t,e=>g(e)),v=l.useRef(null),y=l.useRef(``),b=m.viewport,x=r.content-r.viewport,S=K(d),C=K(c),w=uI(f,10);function T(e){v.current&&u({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return l.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,h,x,S]),l.useEffect(C,[r,C]),dI(h,w),dI(m.content,w),(0,B.jsx)(qF,{scope:n,scrollbar:h,hasThumb:i,onThumbChange:K(a),onThumbPointerUp:K(o),onThumbPositionChange:C,onThumbPointerDown:K(s),children:(0,B.jsx)(G.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:W(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:W(e.onPointerMove,T),onPointerUp:W(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),XF=`ScrollAreaThumb`,ZF=l.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=JF(XF,e.__scopeScrollArea);return(0,B.jsx)(eN,{present:n||i.hasThumb,children:(0,B.jsx)(QF,{ref:t,...r})})}),QF=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=q(XF,n),o=JF(XF,n),{onThumbPositionChange:s}=o,c=z(t,e=>o.onThumbChange(e)),u=l.useRef(void 0),d=uI(()=>{u.current&&=(u.current(),void 0)},100);return l.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{d(),u.current||(u.current=lI(e,s),s())};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,d,s]),(0,B.jsx)(G.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:W(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:W(e.onPointerUp,o.onThumbPointerUp)})});ZF.displayName=XF;var $F=`ScrollAreaCorner`,eI=l.forwardRef((e,t)=>{let n=q($F,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,B.jsx)(tI,{...e,ref:t}):null});eI.displayName=$F;var tI=l.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=q($F,n),[a,o]=l.useState(0),[s,c]=l.useState(0),u=!!(a&&s);return dI(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),dI(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),u?(0,B.jsx)(G.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function nI(e){return e?parseInt(e,10):0}function rI(e,t){let n=e/t;return isNaN(n)?0:n}function iI(e){let t=rI(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function aI(e,t,n,r=`ltr`){let i=iI(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return sI([c,l],d)(e)}function oI(e,t,n=`ltr`){let r=iI(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=AF(e,n===`ltr`?[0,o]:[o*-1,0]);return sI([0,o],[0,s])(c)}function sI(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function cI(e,t){return e>0&&e<t}var lI=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function uI(e,t){let n=K(e),r=l.useRef(0);return l.useEffect(()=>()=>window.clearTimeout(r.current),[]),l.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function dI(e,t){let n=K(t);nM(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var fI=IF,pI=RF,mI=eI,hI=l.forwardRef((e,t)=>{let n=(0,R.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=U(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,B.jsx)(pI,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsx)(gI,{}),l=(0,B.jsx)(mI,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,B.jsxs)(fI,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});hI.displayName=fI.displayName;var gI=l.forwardRef((e,t)=>{let n=(0,R.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=U(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,B.jsx)(ZF,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let d;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(d=(0,B.jsx)(BF,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});gI.displayName=BF.displayName;var _I=[`462`,`8100`].includes(document.location.port)?`http://${document.location.hostname}:462`:`http://${document.location.hostname}:641`;function vI(){return _I}function yI(e){return`${_I}${e.startsWith(`/`)?e:`/${e}`}`}function bI(e){return e?typeof e.error==`string`?e.error:e.error&&typeof e.error==`object`?e.error.details??e.error.message??`Unknown error`:`Unknown error`:`Unknown error`}async function xI(e){try{return bI(await e.json())}catch{}return e.statusText||`Unknown error`}function SI(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 J(e,t){let n=await fetch(yI(e),{...t,method:`GET`});if(!n.ok){let e=await xI(n);throw Error(e)}return n.json()}async function Y(e,t,n){let r=await fetch(yI(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function CI(e,t,n){let r=await fetch(yI(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function wI(e,t,n){let r=await fetch(yI(e),{...n,method:`PATCH`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.json()}async function TI(e,t,n){let r=await fetch(yI(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await xI(r);throw Error(e)}return r.body}async function EI(e,t){let n=await fetch(yI(e),{...t,method:`DELETE`});if(!n.ok){let e=await xI(n);throw Error(e)}if(n.status!==204)return n.json()}async function DI(e,t,n){let r=await fetch(yI(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});if(!r.ok){let e=await xI(r);throw Error(e)}return r.body}async function OI(e,t){let n=await fetch(yI(e),{...t,method:`GET`});if(!n.ok){let e=await xI(n);throw Error(e)}return n.body}async function kI(e,t,n){let r=await fetch(yI(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 SI(bI(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function AI(e,t,n){let r=await fetch(yI(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 SI(bI(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function X(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var Z=new class{cache=new Map;inFlightRequests=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&&console.log(`[gitops-timing] ttl-cache key=${e} in-flight-reuse`),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);console.log(`[gitops-timing] ttl-cache key=${e} hit ${t}ms`)}return o.data}r&&console.log(`[gitops-timing] ttl-cache key=${e} miss fetching`);let s=t().then(t=>{if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);console.log(`[gitops-timing] ttl-cache key=${e} stored ${t}ms`)}return t}).finally(()=>{this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,s),s}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}invalidate(e){this.cache.delete(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);t.forEach(e=>this.cache.delete(e))}clear(){this.cache.clear(),this.inFlightRequests.clear()}},jI=t({EmptyBalanceError:()=>MI,LOW_BALANCE_THRESHOLD:()=>50,applyAppUpdate:()=>SR,checkBalance:()=>NI,checkForAppUpdate:()=>xR,checkGitInstalled:()=>fR,checkVpInstalled:()=>FI,clearChatHistory:()=>uL,completeOnboarding:()=>pR,copyImageToClipboard:()=>OL,createGitCheckpoint:()=>GL,createGitHubRepo:()=>WL,createProject:()=>XI,createScaffoldedProject:()=>LI,createSlashCommand:()=>_R,createThread:()=>tL,createThreadAgent:()=>BR,createThreadSkill:()=>zR,createUserTask:()=>rR,deleteCommand:()=>JL,deleteMCPServer:()=>MR,deleteProject:()=>$I,deleteProjectAIFile:()=>FR,deleteSlashCommand:()=>vR,deleteThread:()=>nL,deleteThreadAIFile:()=>VR,deleteUserTask:()=>iR,disableImageModel:()=>EL,disableModel:()=>xL,enableImageModel:()=>TL,enableModel:()=>bL,fetchAvailableImageModels:()=>CL,fetchAvailableModels:()=>yL,fixComments:()=>iL,generateCommitMessage:()=>jL,generateImage:()=>DL,generatePRInfo:()=>IL,getAccountInfo:()=>WI,getAllEnabledImageModels:()=>wL,getAllEnabledModels:()=>SL,getAvailablePrograms:()=>GI,getChatHistory:()=>oL,getContextBreakdown:()=>bR,getConversationFolderPath:()=>sL,getConversationHistory:()=>yR,getGitDiff:()=>uR,getGitLog:()=>UL,getGitUser:()=>qI,getGitUserName:()=>JI,getMCPConfig:()=>AR,getOnboardingStatus:()=>dR,getPackageScripts:()=>YL,getPopularAgents:()=>ER,getPopularMCPServers:()=>NR,getPopularRules:()=>DR,getPopularSkills:()=>TR,getPopularSlashCommands:()=>OR,getProcessingThreads:()=>KI,getProject:()=>QI,getProjectAIFiles:()=>PR,getProjectScripts:()=>QL,getProjects:()=>YI,getProviderCredits:()=>BI,getProviderLogoUrl:()=>zI,getProviders:()=>RI,getScaffoldTemplates:()=>PI,getSlashCommands:()=>hR,getSlashCommandsAndSkills:()=>gR,getThread:()=>tR,getThreadAIFile:()=>LR,getThreadAIFiles:()=>IR,getThreadFiles:()=>ZL,getUnifiedGitStatus:()=>AL,getUserTasks:()=>nR,gitCheckoutBranch:()=>VL,gitCommit:()=>ML,gitCreateBranch:()=>zL,gitCreatePR:()=>LL,gitFetch:()=>RL,gitListBranches:()=>BL,gitPull:()=>PL,gitPush:()=>NL,gitRevertFile:()=>HL,gitSyncBranch:()=>FL,installGithubFolderToThread:()=>kR,installVp:()=>II,invalidateProjectsCache:()=>eL,isDevServerRunning:()=>cR,openExternalUrl:()=>UI,openFolderProject:()=>ZI,openProjectWith:()=>mL,openThreadWith:()=>hL,parseSSEStream:()=>fL,resetOnboarding:()=>mR,restoreGitCheckpoint:()=>KL,runCommand:()=>XL,runProjectScript:()=>$L,saveCommand:()=>qL,saveImageToDownloads:()=>kL,saveMCPServer:()=>jR,saveProviderEnvironment:()=>HI,saveProviderKey:()=>VI,saveThreadAIFile:()=>RR,selectThread:()=>aL,sendChatMessage:()=>cL,startDevServer:()=>oR,stopChatGeneration:()=>dL,stopDevServer:()=>sR,stopProjectScript:()=>eR,submitAskUserAnswer:()=>CR,submitBrowserJsResult:()=>wR,subscribeToChatStream:()=>lL,suggestRunCommand:()=>aR,ttlCache:()=>Z,updateProject:()=>pL,updateProjectName:()=>vL,updateProjectOpenWith:()=>gL,updateProjectSetupScript:()=>_L,updateRunCommand:()=>lR,updateThread:()=>rL}),MI=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}};async function NI(){let{plan:e,promptsRemaining:t}=await WI();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1}:{isEmpty:t<=0,isLow:t>0&&t<=50}}async function PI(){return J(`api/scaffold/templates`)}async function FI(){return(await J(`api/scaffold/check-vp`)).installed}async function II(){return Y(`api/scaffold/install-vp`,{})}async function LI(e,t,n){return DI(`api/scaffold`,{projectName:e,templateId:t,packageManager:n})}async function RI(){return Z.get(`providers`,async()=>J(`api/providers`),6e4)}function zI(e){return`${vI()}/api/providers/${X(e)}/logo`}async function BI(e){return Z.get(`provider-credits-${e}`,async()=>J(`api/providers/${X(e)}/credits`),3e4)}async function VI(e,t){await Y(`api/providers/keys`,{providerName:e,apiKey:t}),Z.invalidate(`providers`)}async function HI(e){await Y(`api/providers/env`,{values:e}),Z.invalidate(`providers`)}async function UI(e){try{await Y(`api/providers/open-external`,{url:e})}catch(t){if(t instanceof Error&&t.message===`External URL opening not available in server mode`){window.open(e,`_blank`,`noopener,noreferrer`);return}throw t}}async function WI(){return J(`api/account/info`)}async function GI(){return Z.get(`available-programs`,async()=>(await J(`api/programs`)).programs??[],3e5)}async function KI(){return(await J(`api/threads/processing`)).processingThreadIds??[]}async function qI(){return Z.get(`git-user`,async()=>{try{let e=await J(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function JI(){return(await qI()).name}async function YI(){return Z.get(`projects`,async()=>({projects:(await J(`api/projects`)||[]).map(e=>{let t=e;return{projectId:t.projectId??t.id,name:t.name,gitUrl:t.gitUrl,projectPath:t.projectPath??t.path,threads:t.threads??[],commands:t.commands??[],setupScript:t.setupScript,runCommand:t.runCommand,planPrompt:t.planPrompt,testPrompt:t.testPrompt,reviewPrompt:t.reviewPrompt}}).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:!!t.gitStatusDot}});return{...e,threads:t}})}),3e4)}async function XI(e,t){return DI(`api/projects`,{gitUrl:e,commitMethod:t})}async function ZI(){return DI(`api/projects/open-folder`,{})}async function QI(e){return Z.get(`project-${e}`,async()=>J(`api/projects/${X(e)}`),3e4)}async function $I(e){await EI(`api/projects/${X(e)}`),Z.invalidate(`projects`)}function eL(e){Z.invalidate(`projects`),e&&Z.invalidate(`project-${e}`)}async function tL(e,t){return DI(`api/threads`,{projectId:e,title:t})}async function nL(e,t){await EI(`api/threads/${X(t)}`)}async function rL(e,t){await wI(`api/threads/${X(e)}`,t),(`model`in t||`modelProvider`in t)&&Z.invalidate(`projects`)}async function iL(e,t){return Y(`api/threads/${X(e)}/fix-comments`,{comments:t})}async function aL(e,t){await Y(`api/threads/${X(t)}/select`)}async function oL(e){return{threadId:e,messages:await J(`api/threads/${X(e)}/messages`)}}async function sL(e){return(await J(`api/threads/${X(e)}/conversation-folder-path`)).path}async function cL(e,t,n,r=[],i,a,o,s,c){let{isEmpty:l}=await NI();if(l)throw new MI;return DI(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,checkpointRef:c,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 lL(e,t){return OI(`api/chat/subscribe/${X(e)}`,{signal:t})}async function uL(e){return(await EI(`api/chat/${X(e)}`))?.conversationId||``}async function dL(e){try{await Y(`api/chat/stop/${X(e)}`)}catch{}}function fL(e,t,n,r,i){let a=e.getReader(),o=!1,s=()=>{o=!0,a.cancel().catch(()=>{})},c=new TextDecoder,l=``,u=e=>e?[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/forbidden/i,/unauthorized/i].some(t=>t.test(e.trim())):!1;async function d(){try{for(;!o;){let{done:e,value:s}=await a.read();if(e||o){if(!o&&e){if(l.trim())try{let e=JSON.parse(l);e.type===`error`?r(e.content??`Unknown error`):e.type===`message`?i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}):e.type===`complete`||(e.type===`result`&&u(e.content)?r(e.content??`Unknown error`):t(e))}catch{l.trim()&&t({type:`result`,content:l})}n()}break}l+=c.decode(s,{stream:!0});let d=l.split(`
46
+ `);l=d.pop()??``;for(let e of d){let a=e.trim();if(a)try{let e=JSON.parse(a);if(e.type===`error`){r(e.content??`Unknown error`),n();return}else if(e.type===`message`)i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking});else if(e.type===`complete`){n();return}else if(e.type===`result`&&u(e.content)){r(e.content??`Unknown error`),n();return}else t(e)}catch{}}}}catch(e){o||(r(e instanceof Error?e.message:`Stream error`),n())}}return d(),s}async function pL(e,t){return t.runNow&&t.setupScript?TI(`api/projects/${X(e)}`,t):(await AI(`api/projects/${X(e)}`,t),t.runNow||eL(e),null)}async function mL(e,t){await kI(`api/projects/${X(e)}/open`,{program:t})}async function hL(e,t){await kI(`api/threads/${X(e)}/open`,{program:t})}async function gL(e,t){await pL(e,{program:t})}async function _L(e,t,n){return pL(e,{setupScript:t,runNow:n})}async function vL(e,t){await pL(e,{name:t})}async function yL(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 Z.get(r,async()=>{let e=await J(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function bL(e,t){await Y(`api/models/${X(e,t)}/enable`),Z.invalidate(`enabled-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function xL(e,t){await Y(`api/models/${X(e,t)}/disable`),Z.invalidate(`enabled-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function SL(){return Z.get(`enabled-models`,async()=>(await J(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function CL(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return Z.get(n,async()=>{let e=await J(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function wL(){return Z.get(`enabled-image-models`,async()=>(await J(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function TL(e,t){await Y(`api/models/${X(e,t)}/enable?useCase=image`),Z.invalidate(`enabled-image-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function EL(e,t){await Y(`api/models/${X(e,t)}/disable?useCase=image`),Z.invalidate(`enabled-image-models`),Z.invalidatePattern(/^available-models-/),Z.invalidatePattern(/^available-image-models-/)}async function DL(e,t,n,r){return Y(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function OL(e){await Y(`api/image/clipboard`,e)}async function kL(e){return Y(`api/image/save`,e)}async function AL(e,t=!1){let n=t?`api/git/unified-status/${X(e)}?fresh=true`:`api/git/unified-status/${X(e)}`,r=performance.now();console.log(`[gitops-timing] api getUnifiedGitStatus start thread=${e} fresh=${t}`);try{return await J(n)}finally{let n=Math.round(performance.now()-r);console.log(`[gitops-timing] api getUnifiedGitStatus end thread=${e} fresh=${t} ${n}ms`)}}async function jL(e,t,n){return(await Y(`api/git/generate-commit-message/${X(e)}`,{model:t,provider:n})).message}async function ML(e,t){await Y(`api/git/commit/${X(e)}`,{message:t})}async function NL(e){await Y(`api/git/push/${X(e)}`)}async function PL(e){await Y(`api/git/pull/${X(e)}`)}async function FL(e){return Y(`api/git/sync-branch/${X(e)}`,{})}async function IL(e,t,n){return Y(`api/git/generate-pr-info/${X(e)}`,{model:t,provider:n})}async function LL(e,t,n){return Y(`api/git/create-pr/${X(e)}`,{title:t,description:n})}async function RL(e){await Y(`api/git/fetch/${X(e)}`)}async function zL(e,t,n){return Y(`api/git/create-branch/${X(e)}`,{baseBranch:t,branchName:n})}async function BL(e){return J(`api/git/branches/${X(e)}`)}async function VL(e,t){return Y(`api/git/checkout-branch/${X(e)}`,{branchName:t})}async function HL(e,t){return Y(`api/git/revert-file/${X(e)}`,{filePath:t})}async function UL(e,t=50){return(await J(`api/git/log/${X(e)}?limit=${t}`)).commits}async function WL(e,t,n,r){return Y(`api/git/create-repo/${X(e)}`,{repoName:t,description:n,isPrivate:r})}async function GL(e,t){return Y(`api/git/checkpoint/${X(e)}`,{messageId:t})}async function KL(e,t){return Y(`api/git/checkpoint-restore/${X(e)}`,{checkpointRef:t})}async function qL(e,t){await Y(`api/projects/${X(e)}/commands`,t)}async function JL(e,t){await EI(`api/projects/${X(e)}/commands/${X(t)}`)}async function YL(e){return J(`api/projects/${X(e)}/package-scripts`)}async function XL(e,t,n,r){return DI(`api/projects/${X(e)}/threads/${X(t)}/commands/run`,{commandLine:n,cwd:r})}async function ZL(e){return J(`api/threads/${X(e)}/files`)}async function QL(e){return(await J(`api/threads/${X(e)}/project-scripts`)).scripts}async function $L(e,t,n,r){return DI(`api/threads/${X(e)}/project-scripts/run`,{scriptName:t,command:n},r)}async function eR(e,t){return Y(`api/threads/${X(e)}/project-scripts/stop`,{scriptName:t})}async function tR(e){return J(`api/threads/${e}`)}async function nR(e){return(await J(`api/threads/${X(e)}/user-tasks`)).tasks??[]}async function rR(e,t){return Y(`api/threads/${X(e)}/user-tasks`,{content:t})}async function iR(e,t){await EI(`api/threads/${X(e)}/user-tasks/${X(t)}`)}async function aR(e){return Y(`api/projects/${X(e)}/run-suggest`,{})}async function oR(e,t){return console.log(`API: startDevServer called for project:`,e,`thread:`,t),DI(`api/projects/${X(e)}/run`,{threadId:t})}async function sR(e){return Y(`api/projects/${X(e)}/stop`,{})}async function cR(e){return J(`api/projects/${X(e)}/running`)}async function lR(e,t){await pL(e,{runCommand:t})}async function uR(e){return J(`api/git/diff/${X(e)}`)}async function dR(){return J(`api/onboarding/status`)}async function fR(){return J(`api/onboarding/git-check`)}async function pR(){return Y(`api/onboarding/complete`,{})}async function mR(){return Y(`api/onboarding/reset`,{})}async function hR(e){return(await J(`api/slash-commands?threadId=${X(e)}`)).commands??[]}async function gR(e){let t=await J(`api/slash-commands?threadId=${X(e)}`);return{commands:t.commands??[],skills:t.skills??[]}}async function _R(e,t,n,r,i){return Y(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function vR(e){let t=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})});if(!t.ok)throw Error(`Failed to delete slash command: ${t.statusText}`);return t.json()}async function yR(e){return J(`api/conversations/${X(e)}`)}async function bR(e,t){return J(`api/conversations/${X(e)}/${X(t)}/context`)}async function xR(){try{return await J(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function SR(){return Y(`api/update/apply`)}async function CR(e,t){await Y(`api/ask-user/respond`,{toolCallId:e,answer:t})}async function wR(e,t){await Y(`api/browser-js/respond`,{toolCallId:e,result:t})}async function TR(){return(await J(`api/skills/popular`)).skills??[]}async function ER(){return(await J(`api/agents/popular`)).agents??[]}async function DR(){return(await J(`api/rules/popular`)).rules??[]}async function OR(){return(await J(`api/slash-commands/popular`)).commands??[]}async function kR(e,t,n,r){return Y(`api/threads/${X(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r})}async function AR(e){return J(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function jR(e,t,n){return CI(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function MR(e,t){return EI(`api/mcp/config/${X(t)}?projectPath=${encodeURIComponent(e)}`)}async function NR(){return(await J(`api/mcp/popular`)).servers??[]}async function PR(e){return(await J(`api/projects/${X(e)}/ai-files`)).nodes??[]}async function FR(e,t){return EI(`api/projects/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function IR(e){return(await J(`api/threads/${X(e)}/ai-files`)).nodes??[]}async function LR(e,t){return J(`api/threads/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function RR(e,t,n){return CI(`api/threads/${X(e)}/ai-file`,{path:t,content:n})}async function zR(e,t,n){return Y(`api/threads/${X(e)}/ai-files/skill`,{name:t,description:n})}async function BR(e,t,n,r){return Y(`api/threads/${X(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function VR(e,t){return EI(`api/threads/${X(e)}/ai-file?path=${encodeURIComponent(t)}`)}Object.entries({"VS Code":{name:`VS Code`,appName:[`Visual Studio Code`,`code`]},Cursor:{name:`Cursor`,appName:[`Cursor`,`cursor`]},Windsurf:{name:`Windsurf`,appName:[`Windsurf`,`windsurf`]},Xcode:{name:`Xcode`,appName:`Xcode`},"Android Studio":{name:`Android Studio`,appName:[`Android Studio`,`studio`]},Kiro:{name:`Kiro`,appName:[`Kiro`,`kiro`]},Terminal:{name:`Terminal`,appName:`Terminal`},"Devin Desktop":{name:`Devin Desktop`,appName:[`Devin`,`Devin Desktop`]},Antigravity:{name:`Antigravity`,appName:[`com.google.antigravity-ide`,`Antigravity IDE`]}}).reduce((e,[t,n])=>(e[t]=n.appName,e),{});var Q;(function(e){e.PullRequest=`pull-request`,e.Direct=`direct`})(Q||={}),Q.PullRequest,Q.PullRequest,Q.Direct,Q.Direct;var HR={bun:{id:`bun`,label:`bun`},npm:{id:`npm`,label:`npm`},yarn:{id:`yarn`,label:`yarn`},pnpm:{id:`pnpm`,label:`pnpm`}},UR=`Processing...`,WR=[`Loading...`,`Brewing...`,`Summoning...`,`Searching...`,`Generating...`,`Herding...`,`Scanning...`,`Following...`,`Building...`,`Finishing...`],$=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.AUTO_GENERATE_COMMIT_MESSAGE=`autoGenerateCommitMessage`,e.AUTO_GENERATE_PR_INFO=`autoGeneratePRInfo`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.SELECTED_MODEL_PREFIX=`selected-model-`,e.SCROLL_POSITION_PREFIX=`scroll-position-`,e.FONT_SCALE=`tarsk.general.fontScale`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.VOICE_MODEL=`tarsk.general.voiceModel`,e}({}),GR=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e}({});function KR(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function qR(e,t){typeof localStorage>`u`||localStorage.setItem(e,t)}function JR(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function YR(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function XR(e=`npm`){return KR($.PACKAGE_MANAGER)??e}function ZR(e){qR($.PACKAGE_MANAGER,e)}function QR(e=`pull-request`){return KR($.COMMIT_METHOD)??e}function $R(e){qR($.COMMIT_METHOD,e)}function ez(e=``){return KR($.TEMPLATE_ID)??e}function tz(e){qR($.TEMPLATE_ID,e)}function nz(e=!1){let t=KR($.AUTO_GENERATE_COMMIT_MESSAGE);return t===null?e:t===`true`}function rz(e){qR($.AUTO_GENERATE_COMMIT_MESSAGE,e.toString())}function iz(e=!1){let t=KR($.AUTO_GENERATE_PR_INFO);return t===null?e:t===`true`}function az(e){qR($.AUTO_GENERATE_PR_INFO,e.toString())}function oz(e=!1){let t=KR($.PRIVATE_REPOSITORY_DEFAULT);return t===null?e:t===`true`}function sz(e){qR($.PRIVATE_REPOSITORY_DEFAULT,e.toString())}function cz(e){let t=KR($.SCROLL_POSITION_PREFIX+e),n=t===null?null:Number(t);return n!==null&&Number.isFinite(n)?n:null}function lz(e,t){qR($.SCROLL_POSITION_PREFIX+e,String(t))}function uz(){let e=JR(GR.MESSAGE_HISTORY);return e?JSON.parse(e):[]}function dz(e){let t=uz();e.trim()&&t[t.length-1]!==e&&(t.push(e),YR(GR.MESSAGE_HISTORY,JSON.stringify(t)))}function fz(e=100){let t=KR($.FONT_SCALE);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function pz(e){qR($.FONT_SCALE,String(e))}function mz(e=`VS Code`){return KR($.OPEN_WITH_PROGRAM)??e}function hz(e){qR($.OPEN_WITH_PROGRAM,e)}function gz(e=`default`){let t=KR($.VOICE_MODEL);return t===`tiny`||t===`default`?t:e}function _z(e){qR($.VOICE_MODEL,e),typeof window<`u`&&window.dispatchEvent(new Event(`tarsk:voice-model-changed`))}function vz(e){let t=e+`CollectionProvider`,[n,r]=eM(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=l.useRef(null),a=l.useRef(new Map).current;return(0,B.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=dM(s),u=l.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,B.jsx)(c,{ref:z(t,a(s,n).collectionRef),children:r})});u.displayName=s;let d=e+`CollectionItemSlot`,f=`data-radix-collection-item`,p=dM(d),m=l.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=l.useRef(null),s=z(t,o),c=a(d,n);return l.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,B.jsx)(p,{[f]:``,ref:s,children:r})});m.displayName=d;function h(t){let n=a(e+`CollectionConsumer`,t);return l.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:u,ItemSlot:m},h,r]}var yz=`rovingFocusGroup.onEntryFocus`,bz={bubbles:!1,cancelable:!0},xz=`RovingFocusGroup`,[Sz,Cz,wz]=vz(xz),[Tz,Ez]=eM(xz,[wz]),[Dz,Oz]=Tz(xz),kz=l.forwardRef((e,t)=>(0,B.jsx)(Sz.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,B.jsx)(Sz.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,B.jsx)(Az,{...e,ref:t})})}));kz.displayName=xz;var Az=l.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=l.useRef(null),m=z(t,p),h=kF(a),[g,_]=sM({prop:o,defaultProp:s??null,onChange:c,caller:xz}),[v,y]=l.useState(!1),b=K(u),x=Cz(n),S=l.useRef(!1),[C,w]=l.useState(0);return l.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(yz,b),()=>e.removeEventListener(yz,b)},[b]),(0,B.jsx)(Dz,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:l.useCallback(e=>_(e),[_]),onItemShiftTab:l.useCallback(()=>y(!0),[]),onFocusableItemAdd:l.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:l.useCallback(()=>w(e=>e-1),[]),children:(0,B.jsx)(G.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:W(e.onMouseDown,()=>{S.current=!0}),onFocus:W(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(yz,bz);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);Iz([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}S.current=!1}),onBlur:W(e.onBlur,()=>y(!1))})})}),jz=`RovingFocusGroupItem`,Mz=l.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=aM(),u=a||c,d=Oz(jz,n),f=d.currentTabStopId===u,p=Cz(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=d;return l.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,B.jsx)(Sz.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:(0,B.jsx)(G.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:W(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:W(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:W(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Fz(e,d.orientation,d.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=d.loop?Lz(n,r+1):n.slice(r+1)}setTimeout(()=>Iz(n))}}),children:typeof o==`function`?o({isCurrentTabStop:f,hasTabStop:g!=null}):o})})});Mz.displayName=jz;var Nz={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Pz(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Fz(e,t,n){let r=Pz(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Nz[r]}function Iz(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Lz(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Rz=kz,zz=Mz,Bz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Bz.displayName=`Card`;var Vz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Vz.displayName=`CardHeader`;var Hz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-2xl font-semibold leading-none tracking-tight`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Hz.displayName=`CardTitle`;var Uz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Uz.displayName=`CardDescription`;var Wz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`p-6 pt-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Wz.displayName=`CardContent`;var Gz=l.forwardRef((e,t)=>{let n=(0,R.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=U(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,B.jsx)(`div`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Gz.displayName=`CardFooter`;var Kz=`Toggle`,qz=l.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=sM({prop:n,onChange:i,defaultProp:r??!1,caller:Kz});return(0,B.jsx)(G.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:W(e.onClick,()=>{e.disabled||s(!o)})})});qz.displayName=Kz;var Jz=qz,Yz=`ToggleGroup`,[Xz,Zz]=eM(Yz,[Ez]),Qz=Ez(),$z=l.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,B.jsx)(nB,{...r,ref:t});if(n===`multiple`)return(0,B.jsx)(rB,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${Yz}\``)});$z.displayName=Yz;var[eB,tB]=Xz(Yz),nB=l.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=sM({prop:n,defaultProp:r??``,onChange:i,caller:Yz});return(0,B.jsx)(eB,{scope:e.__scopeToggleGroup,type:`single`,value:l.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:l.useCallback(()=>s(``),[s]),children:(0,B.jsx)(oB,{...a,ref:t})})}),rB=l.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=sM({prop:n,defaultProp:r??[],onChange:i,caller:Yz}),c=l.useCallback(e=>s((t=[])=>[...t,e]),[s]),u=l.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,B.jsx)(eB,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:u,children:(0,B.jsx)(oB,{...a,ref:t})})});$z.displayName=Yz;var[iB,aB]=Xz(Yz),oB=l.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=Qz(n),u=kF(o),d={role:`group`,dir:u,...c};return(0,B.jsx)(iB,{scope:n,rovingFocus:i,disabled:r,children:i?(0,B.jsx)(Rz,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,B.jsx)(G.div,{...d,ref:t})}):(0,B.jsx)(G.div,{...d,ref:t})})}),sB=`ToggleGroupItem`,cB=l.forwardRef((e,t)=>{let n=tB(sB,e.__scopeToggleGroup),r=aB(sB,e.__scopeToggleGroup),i=Qz(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=l.useRef(null);return r.rovingFocus?(0,B.jsx)(zz,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,B.jsx)(lB,{...s,ref:t})}):(0,B.jsx)(lB,{...s,ref:t})});cB.displayName=sB;var lB=l.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=tB(sB,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,B.jsx)(qz,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),uB=$z,dB=cB,fB=QA(`inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},size:{default:`h-10 px-3 min-w-10`,sm:`h-9 px-2.5 min-w-9`,lg:`h-11 px-5 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),pB=l.forwardRef((e,t)=>{let n=(0,R.c)(13),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,variant:o,size:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s;n[5]!==r||n[6]!==a||n[7]!==o?(s=U(fB({variant:o,size:a,className:r})),n[5]=r,n[6]=a,n[7]=o,n[8]=s):s=n[8];let c;return n[9]!==i||n[10]!==t||n[11]!==s?(c=(0,B.jsx)(Jz,{ref:t,className:s,...i}),n[9]=i,n[10]=t,n[11]=s,n[12]=c):c=n[12],c});pB.displayName=Jz.displayName;var mB=l.createContext({size:`default`,variant:`default`}),hB=l.forwardRef((e,t)=>{let n=(0,R.c)(19),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,variant:s,size:o,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c;n[6]===i?c=n[7]:(c=U(`flex items-center justify-center gap-1`,i),n[6]=i,n[7]=c);let l;n[8]!==o||n[9]!==s?(l={variant:s,size:o},n[8]=o,n[9]=s,n[10]=l):l=n[10];let u;n[11]!==r||n[12]!==l?(u=(0,B.jsx)(mB.Provider,{value:l,children:r}),n[11]=r,n[12]=l,n[13]=u):u=n[13];let d;return n[14]!==a||n[15]!==t||n[16]!==c||n[17]!==u?(d=(0,B.jsx)(uB,{ref:t,className:c,...a,children:u}),n[14]=a,n[15]=t,n[16]=c,n[17]=u,n[18]=d):d=n[18],d});hB.displayName=uB.displayName;var gB=l.forwardRef((e,t)=>{let n=(0,R.c)(17),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,children:r,variant:s,size:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c=l.useContext(mB),u;n[6]!==i||n[7]!==c.size||n[8]!==c.variant||n[9]!==o||n[10]!==s?(u=U(fB({variant:c.variant||s,size:c.size||o}),i),n[6]=i,n[7]=c.size,n[8]=c.variant,n[9]=o,n[10]=s,n[11]=u):u=n[11];let d;return n[12]!==r||n[13]!==a||n[14]!==t||n[15]!==u?(d=(0,B.jsx)(dB,{ref:t,className:u,...a,children:r}),n[12]=r,n[13]=a,n[14]=t,n[15]=u,n[16]=d):d=n[16],d});gB.displayName=dB.displayName;var _B=t({CreateProjectDialog:()=>yB,default:()=>yB}),vB={"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 yB({open:e,onOpenChange:t,initialMode:n,onSubmitClone:r,onSubmitWebApp:i,onOpenFolder:a}){let[o,s]=(0,l.useState)(n??`choice`),[c,u]=(0,l.useState)(1),[d,f]=(0,l.useState)(``),[p,m]=(0,l.useState)(QR(Q.PullRequest)),[h,g]=(0,l.useState)(`My App`),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)(ez()),[x,S]=(0,l.useState)(XR()),[C,w]=(0,l.useState)([]),[T,E]=(0,l.useState)(!1),[D,O]=(0,l.useState)(!1),[ee,k]=(0,l.useState)(new Set),te=(0,l.useCallback)(e=>{k(t=>new Set(t).add(e))},[]),{typeNames:A,templatesByTypeName:j}=(0,l.useMemo)(()=>{let e={};if(Array.isArray(C))for(let t of C){let n=t.typeName;e[n]||(e[n]=[]),e[n].push(t)}return{typeNames:Object.keys(e).sort(),templatesByTypeName:e}},[C]),M=(0,l.useMemo)(()=>{let e={};for(let t of Object.keys(j)){let n=j[t]??[];if(n.length===0)continue;let r=n.find(e=>e.variationName===`Starter`),i=n.filter(e=>e.variationName!==`Starter`);e[t]=(r?[r,...i]:n)[0].id}return e},[j]),N=(0,l.useMemo)(()=>{if(!Array.isArray(C)||C.find(e=>e.id===y)||C.length===0)return y;let e=A[0],t=e?j[e]??[]:[];return(t.find(e=>e.variationName===`Starter`)??t[0])?.id??y},[y,C,A,j]),P=(0,l.useMemo)(()=>!N||!Array.isArray(C)||C.length===0?null:C.find(e=>e.id===N)?.typeName??null,[N,C]),F=(0,l.useMemo)(()=>{let e=P?j[P]??[]:[];if(e.length<=1)return e;let t=e.find(e=>e.variationName===`Starter`),n=e.filter(e=>e.variationName!==`Starter`);return t?[t,...n]:e},[P,j]);(0,l.useEffect)(()=>{N&&tz(N)},[N]),(0,l.useEffect)(()=>{e&&n&&setTimeout(()=>{s(n),u(2),n===`webapp`&&(g(`My App`),v(!1),k(new Set))},0)},[e,n]),(0,l.useEffect)(()=>{o===`webapp`&&e&&(!Array.isArray(C)||C.length===0)&&setTimeout(()=>{E(!0),PI().then(e=>w(e?.templates||[])).catch(()=>w([])).finally(()=>E(!1))},0)},[o,e,C]);let ne=(0,l.useMemo)(()=>_?h:P?`My ${P} App`:`My App`,[_,h,P]),re=N&&Array.isArray(C)?C.find(e=>e.id===N):null,ie=()=>{s(`webapp`),u(2),g(`My App`),v(!1),k(new Set),(!Array.isArray(C)||C.length===0)&&(E(!0),PI().then(e=>w(e?.templates||[])).catch(()=>w([])).finally(()=>E(!1)))},ae=()=>{s(`clone`),u(2)},oe=()=>{s(`choice`),u(1),f(``),g(`My App`),v(!1),k(new Set),t(!1)},se=()=>{c===2?(s(`choice`),u(1),f(``),g(`My App`),v(!1)):u(e=>e-1)},ce=o===`clone`?d.trim().length>0:P!==null,le=()=>{if(!d.trim())return;let e=d.trim();f(``),u(1),t(!1),s(`choice`),r(e,p).catch(()=>{})},ue=async()=>{if(!ne.trim()||!N||!de(ne))return;if(re?.variation===`vite-plus`){O(!0);try{if(!await FI()){if(!window.confirm(`Vite Plus is required for this template but is not installed.
47
47
 
48
48
  Is it ok to install Vite Plus using the following command?
49
49
 
50
50
  macOS / Linux: curl -fsSL https://vite.plus | bash
51
- Windows: irm https://vite.plus/ps1 | iex`)){O(!1);return}let{success:e,error:t}=await II();if(!e){window.alert(`Failed to install Vite Plus:\n${t||`Unknown error`}`),O(!1);return}}}catch(e){console.error(`Vite Plus check/install failed:`,e)}finally{O(!1)}}let e=ne.trim();g(``),v(!1),u(1),t(!1),s(`choice`),i(e,N,x).catch(()=>{})},de=e=>e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),I=o===`choice`?1:c,fe=e=>e===1?I>1:e===2?I>=2:e===3?I>=2&&(o===`clone`?d.trim().length>0:ce):!1,pe=e=>{e===1?(s(`choice`),u(1),f(``),g(``)):u(e)};return(0,B.jsx)(pF,{open:e,onOpenChange:e=>!e&&oe(),children:(0,B.jsxs)(gF,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[(0,B.jsxs)(`div`,{className:`mx-auto flex items-center gap-1 mb-6 w-2/3`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(1)&&pe(1),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===1?`bg-primary text-primary-foreground scale-110`:I>1?`bg-brand text-brand-foreground`:`bg-muted text-muted-foreground`,fe(1)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 1`,children:`1`}),(0,B.jsx)(`div`,{className:`h-0.5 flex-1 min-w-0 relative rounded-full overflow-hidden bg-muted`,children:(0,B.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-brand transition-[width] duration-300 ease-out rounded-full`,style:{width:I>=2?`100%`:`0%`}})}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(2)&&pe(2),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===2?`bg-primary text-primary-foreground scale-110`:I>2?`bg-brand text-brand-foreground`:`bg-muted text-muted-foreground`,fe(2)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 2`,children:`2`}),(0,B.jsx)(`div`,{className:`h-0.5 flex-1 min-w-0 relative rounded-full overflow-hidden bg-muted`,children:(0,B.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-brand transition-[width] duration-300 ease-out rounded-full`,style:{width:I>=3?`100%`:`0%`}})}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(3)&&pe(3),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===3?`bg-primary text-primary-foreground scale-110`:`bg-muted text-muted-foreground`,fe(3)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 3`,children:`3`})]}),(0,B.jsxs)(_F,{children:[(0,B.jsxs)(yF,{children:[I===1&&`New Project`,I===2&&o===`clone`&&`Clone Repository`,I===2&&o===`webapp`&&`Create App`,I===3&&o===`clone`&&`Clone Repository`,I===3&&o===`webapp`&&(P===`Capacitor Plugin`?`Create Capacitor Plugin`:P?`Create ${P} App`:`Create App`)]}),(0,B.jsxs)(bF,{children:[I===1&&`Choose how to add a new project.`,I===2&&o===`clone`&&`Enter a git repository URL to clone.`,I===2&&o===`webapp`&&`Choose a template type.`,I===3&&o===`clone`&&`Choose commit workflow.`,I===3&&o===`webapp`&&`Name your project and choose variation, package manager, and commit workflow.`]})]})]}),I===1&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(Nz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:ae,onKeyDown:e=>e.key===`Enter`&&ae(),children:(0,B.jsxs)(Lz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(sp,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Clone repo`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Connect an existing repository by URL`})]})]})}),(0,B.jsx)(Nz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:ie,onKeyDown:e=>e.key===`Enter`&&ie(),children:(0,B.jsxs)(Lz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(ub,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Create App`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Scaffold a new React, Vue, Next.js, or other template`})]})]})}),(0,B.jsx)(Nz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:()=>{oe(),a()},onKeyDown:e=>{e.key===`Enter`&&(oe(),a())},children:(0,B.jsxs)(Lz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(yf,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Open Folder`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create a project from an existing local folder`})]})]})})]})})}),I===2&&o===`clone`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(DF,{htmlFor:`gitUrl`,children:`Repository URL`}),(0,B.jsx)(xF,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:d,onChange:e=>f(e.target.value),onKeyDown:e=>e.key===`Enter`&&ce&&u(3),autoFocus:!0})]})})}),I===2&&o===`webapp`&&(0,B.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,B.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,B.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,B.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2 p-1 mr-2`,children:T?(0,B.jsx)(`p`,{className:`col-span-full p-4 text-sm text-muted-foreground`,children:`Loading…`}):A.map(e=>{let t=j[e]?.[0]?.type,n=t?dB[t]:null;return(0,B.jsxs)(`button`,{type:`button`,onClick:()=>b(M[e]??``),onDoubleClick:()=>{b(M[e]??``),u(3)},className:U(`flex flex-col items-center gap-2 rounded-lg border px-3 py-3 text-center transition-colors`,P===e?`border-primary bg-accent text-accent-foreground`:`border-border bg-card hover:bg-muted/50 hover:border-muted-foreground/30 shadow-sm`),children:[n?(0,B.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:U(`size-8 shrink-0 transition-opacity duration-300`,ee.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>te(n),"aria-hidden":!0}):null,(0,B.jsx)(`span`,{className:`font-medium text-sm truncate w-full`,children:e})]},e)})})})})}),I===3&&o===`webapp`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[(0,B.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(DF,{htmlFor:`projectName`,children:`Project name`}),(0,B.jsx)(xF,{id:`projectName`,placeholder:`My App`,value:ne,onChange:e=>{g(e.target.value),v(!0)},className:`max-w-xs`})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[F.length>1&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Variation`}),(0,B.jsx)(cB,{type:`single`,value:N,onValueChange:e=>e&&b(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:F.map(e=>(0,B.jsx)(lB,{value:e.id,className:`text-sm`,children:e.variationName},e.id))})]}),(0,B.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[re?.description??F[0]?.description??``,re?.url&&(0,B.jsxs)(B.Fragment,{children:[` `,(0,B.jsxs)(`a`,{href:re.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,B.jsx)(mu,{className:`h-3 w-3`})]})]})]})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Package manager`}),(0,B.jsx)(cB,{type:`single`,value:x,onValueChange:e=>{e&&(S(e),GR(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:Object.values(Mz).map(e=>(0,B.jsx)(lB,{value:e.id,className:`text-sm`,children:e.label},e.id))})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Commit method`}),(0,B.jsxs)(cB,{type:`single`,value:p,onValueChange:e=>{(e===$.PullRequest||e===$.Direct)&&(m(e),qR(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:[(0,B.jsx)(lB,{value:$.PullRequest,className:`text-sm`,children:`Pull Requests`}),(0,B.jsx)(lB,{value:$.Direct,className:`text-sm`,children:`Direct Commits`})]}),(0,B.jsx)(`p`,{className:`text-xs text-slate-600 dark:text-slate-400`,children:p===$.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`})]})]})}),I===3&&o===`clone`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Commit method`}),(0,B.jsxs)(cB,{type:`single`,value:p,onValueChange:e=>{(e===$.PullRequest||e===$.Direct)&&(m(e),qR(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:[(0,B.jsx)(lB,{value:$.PullRequest,className:`text-sm`,children:`Pull Requests`}),(0,B.jsx)(lB,{value:$.Direct,className:`text-sm`,children:`Direct Commits`})]}),(0,B.jsx)(`p`,{className:`text-xs text-slate-600 dark:text-slate-400`,children:p===$.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`})]})})}),(0,B.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10 min-h-[4.5rem] flex flex-col justify-end`,children:(0,B.jsxs)(vF,{children:[I>1&&(0,B.jsx)(Qj,{variant:`ghost`,onClick:se,children:`Back`}),I===2&&(0,B.jsx)(Qj,{onClick:()=>u(3),disabled:!ce,children:`Next`}),I===3&&o===`clone`&&(0,B.jsx)(Qj,{onClick:le,children:`Clone Repository`}),I===3&&o===`webapp`&&(0,B.jsx)(Qj,{onClick:ue,disabled:!ne.trim()||D,children:D?`Preparing...`:`Create App`})]})})]})})}export{yL as $,Qo as $i,sF as $n,Ow as $r,ZI as $t,uL as A,zp as Ai,EI as An,Jj as Ar,zI as At,IR as B,Ed as Bi,DF as Bn,_k as Br,ML as Bt,tz as C,Og as Ci,pL as Cn,W as Cr,TR as Ct,yR as D,Xm as Di,oR as Dn,Xj as Dr,QL as Dt,jI as E,vh as Ei,_L as En,U as Er,jR as Et,XI as F,cp as Fi,Y as Fn,z as Fr,PR as Ft,hR as G,mu as Gi,bF as Gn,lO as Gr,PL as Gt,kR as H,Bu as Hi,xF as Hn,YO as Hr,LL as Ht,LI as I,sp as Ii,CI as In,MA as Ir,NR as It,EL as J,Xc as Ji,yF as Jn,QE as Jr,FL as Jt,nL as K,Rl as Ki,vF as Kn,UD as Kr,NL as Kt,mR as L,Af as Li,hI as Ln,OA as Lr,ZL as Lt,OL as M,xp as Mi,J as Mn,HA as Mr,fR as Mt,GL as N,bp as Ni,vI as Nn,IA as Nr,pR as Nt,vR as O,Mm as Oi,rL as On,qj as Or,YI as Ot,WL as P,dp as Pi,wI as Pn,PA as Pr,tR as Pt,CL as Q,Ms as Qi,cF as Qn,Rw as Qr,UI as Qt,tL as R,yf as Ri,AF as Rn,TA as Rr,AL as Rt,lz as S,y_ as Si,nR as Sn,eM as Sr,SR as St,MI as T,sg as Ti,gL as Tn,Zj as Tr,QI as Tt,$I as U,_u as Ui,pF as Un,yO as Ur,RL as Ut,JL as V,_d as Vi,SF as Vn,mk as Vr,zL as Vt,MR as W,gu as Wi,gF as Wn,vO as Wr,BL as Wt,TL as X,Ic as Xi,lF as Xn,_E as Xr,eL as Xt,xL as Y,Wc as Yi,fF as Yn,NE as Yr,ER as Yt,bL as Z,Pc as Zi,dF as Zn,oE as Zr,aR as Zt,ez as _,i as _a,Ov as _i,iR as _n,dM as _r,cR as _t,Fz as a,Wa as aa,DS as ai,XL as an,wP as ar,wL as at,$R as b,rv as bi,xR as bn,aM as br,AR as bt,Az as c,Kr as ca,ix as ci,kL as cn,eN as cr,oL as ct,az as d,xt as da,ub as di,VI as dn,PM as dr,gR as dt,Uo as ea,AC as ei,mL as en,aF as er,iL as et,XR as f,st as fa,lb as fi,FR as fn,EM as fr,sR as ft,cz as g,o as ga,kv as gi,dL as gn,vM as gr,DR as gt,iz as h,c as ha,Iy as hi,rR as hn,G as hr,JI as ht,Pz as i,Ga as ia,pC as ii,KL as in,DP as ir,WI as it,uR as j,Dp as ji,X as jn,QA as jr,RI as jt,lR as k,Gp as ki,Z as kn,Yj as kr,BI as kt,vz as l,Br as la,ex as li,OR as ln,QM as lr,_R as lt,oz as m,We as ma,qy as mi,cL as mn,K as mr,qI as mt,Nz as n,oo as na,OC as ni,fL as nn,oF as nr,DL as nt,$ as o,Va as oa,TS as oi,$L as on,hP as or,SL as ot,QR as p,et as pa,Zy as pi,aL as pn,NM as pr,UL as pt,RR as q,Ml as qi,_F as qn,fD as qr,HL as qt,Lz as r,Ka as ra,vC as ri,dR as rn,eF as rr,IL as rt,jz as s,Ma as sa,dS as si,qL as sn,aN as sr,GI as st,uB as t,_o as ta,kC as ti,hL as tn,uF as tr,jL as tt,uz as u,vr as ua,wb as ui,HI as un,zM as ur,sL as ut,nz as v,mv as vi,eR as vn,mM as vr,YL as vt,rz as w,Sg as wi,vL as wn,Qj as wr,KI as wt,sz as x,ev as xi,lL as xn,nM as xr,wR as xt,ZR as y,dv as yi,bR as yn,sM as yr,CR as yt,LR as z,uf as zi,kF as zn,Kk as zr,VL as zt};
51
+ Windows: irm https://vite.plus/ps1 | iex`)){O(!1);return}let{success:e,error:t}=await II();if(!e){window.alert(`Failed to install Vite Plus:\n${t||`Unknown error`}`),O(!1);return}}}catch(e){console.error(`Vite Plus check/install failed:`,e)}finally{O(!1)}}let e=ne.trim();g(``),v(!1),u(1),t(!1),s(`choice`),i(e,N,x).catch(()=>{})},de=e=>e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),I=o===`choice`?1:c,fe=e=>e===1?I>1:e===2?I>=2:e===3?I>=2&&(o===`clone`?d.trim().length>0:ce):!1,pe=e=>{e===1?(s(`choice`),u(1),f(``),g(``)):u(e)};return(0,B.jsx)(pF,{open:e,onOpenChange:e=>!e&&oe(),children:(0,B.jsxs)(gF,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[(0,B.jsxs)(`div`,{className:`mx-auto flex items-center gap-1 mb-6 w-2/3`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(1)&&pe(1),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===1?`bg-primary text-primary-foreground scale-110`:I>1?`bg-brand text-brand-foreground`:`bg-muted text-muted-foreground`,fe(1)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 1`,children:`1`}),(0,B.jsx)(`div`,{className:`h-0.5 flex-1 min-w-0 relative rounded-full overflow-hidden bg-muted`,children:(0,B.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-brand transition-[width] duration-300 ease-out rounded-full`,style:{width:I>=2?`100%`:`0%`}})}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(2)&&pe(2),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===2?`bg-primary text-primary-foreground scale-110`:I>2?`bg-brand text-brand-foreground`:`bg-muted text-muted-foreground`,fe(2)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 2`,children:`2`}),(0,B.jsx)(`div`,{className:`h-0.5 flex-1 min-w-0 relative rounded-full overflow-hidden bg-muted`,children:(0,B.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-brand transition-[width] duration-300 ease-out rounded-full`,style:{width:I>=3?`100%`:`0%`}})}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>fe(3)&&pe(3),className:U(`flex items-center justify-center h-8 w-8 rounded-full text-sm font-medium shrink-0 transition-colors transition-transform duration-300 ease-out`,I===3?`bg-primary text-primary-foreground scale-110`:`bg-muted text-muted-foreground`,fe(3)&&`cursor-pointer hover:opacity-90`),"aria-label":`Go to step 3`,children:`3`})]}),(0,B.jsxs)(_F,{children:[(0,B.jsxs)(yF,{children:[I===1&&`New Project`,I===2&&o===`clone`&&`Clone Repository`,I===2&&o===`webapp`&&`Create App`,I===3&&o===`clone`&&`Clone Repository`,I===3&&o===`webapp`&&(P===`Capacitor Plugin`?`Create Capacitor Plugin`:P?`Create ${P} App`:`Create App`)]}),(0,B.jsxs)(bF,{children:[I===1&&`Choose how to add a new project.`,I===2&&o===`clone`&&`Enter a git repository URL to clone.`,I===2&&o===`webapp`&&`Choose a template type.`,I===3&&o===`clone`&&`Choose commit workflow.`,I===3&&o===`webapp`&&`Name your project and choose variation, package manager, and commit workflow.`]})]})]}),I===1&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(Bz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:ae,onKeyDown:e=>e.key===`Enter`&&ae(),children:(0,B.jsxs)(Wz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(sp,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Clone repo`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Connect an existing repository by URL`})]})]})}),(0,B.jsx)(Bz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:ie,onKeyDown:e=>e.key===`Enter`&&ie(),children:(0,B.jsxs)(Wz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(ub,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Create App`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Scaffold a new React, Vue, Next.js, or other template`})]})]})}),(0,B.jsx)(Bz,{role:`button`,tabIndex:0,className:`cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:()=>{oe(),a()},onKeyDown:e=>{e.key===`Enter`&&(oe(),a())},children:(0,B.jsxs)(Wz,{className:`flex items-start gap-4 p-4`,children:[(0,B.jsx)(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground`,children:(0,B.jsx)(yf,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,B.jsx)(`p`,{className:`font-semibold`,children:`Open Folder`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create a project from an existing local folder`})]})]})})]})})}),I===2&&o===`clone`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(DF,{htmlFor:`gitUrl`,children:`Repository URL`}),(0,B.jsx)(xF,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:d,onChange:e=>f(e.target.value),onKeyDown:e=>e.key===`Enter`&&ce&&u(3),autoFocus:!0})]})})}),I===2&&o===`webapp`&&(0,B.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,B.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,B.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,B.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2 p-1 mr-2`,children:T?(0,B.jsx)(`p`,{className:`col-span-full p-4 text-sm text-muted-foreground`,children:`Loading…`}):A.map(e=>{let t=j[e]?.[0]?.type,n=t?vB[t]:null;return(0,B.jsxs)(`button`,{type:`button`,onClick:()=>b(M[e]??``),onDoubleClick:()=>{b(M[e]??``),u(3)},className:U(`flex flex-col items-center gap-2 rounded-lg border px-3 py-3 text-center transition-colors`,P===e?`border-primary bg-accent text-accent-foreground`:`border-border bg-card hover:bg-muted/50 hover:border-muted-foreground/30 shadow-sm`),children:[n?(0,B.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:U(`size-8 shrink-0 transition-opacity duration-300`,ee.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>te(n),"aria-hidden":!0}):null,(0,B.jsx)(`span`,{className:`font-medium text-sm truncate w-full`,children:e})]},e)})})})})}),I===3&&o===`webapp`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[(0,B.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(DF,{htmlFor:`projectName`,children:`Project name`}),(0,B.jsx)(xF,{id:`projectName`,placeholder:`My App`,value:ne,onChange:e=>{g(e.target.value),v(!0)},className:`max-w-xs`})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[F.length>1&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Variation`}),(0,B.jsx)(hB,{type:`single`,value:N,onValueChange:e=>e&&b(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:F.map(e=>(0,B.jsx)(gB,{value:e.id,className:`text-sm`,children:e.variationName},e.id))})]}),(0,B.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[re?.description??F[0]?.description??``,re?.url&&(0,B.jsxs)(B.Fragment,{children:[` `,(0,B.jsxs)(`a`,{href:re.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,B.jsx)(mu,{className:`h-3 w-3`})]})]})]})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Package manager`}),(0,B.jsx)(hB,{type:`single`,value:x,onValueChange:e=>{e&&(S(e),ZR(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:Object.values(HR).map(e=>(0,B.jsx)(gB,{value:e.id,className:`text-sm`,children:e.label},e.id))})]}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Commit method`}),(0,B.jsxs)(hB,{type:`single`,value:p,onValueChange:e=>{(e===Q.PullRequest||e===Q.Direct)&&(m(e),$R(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:[(0,B.jsx)(gB,{value:Q.PullRequest,className:`text-sm`,children:`Pull Requests`}),(0,B.jsx)(gB,{value:Q.Direct,className:`text-sm`,children:`Direct Commits`})]}),(0,B.jsx)(`p`,{className:`text-xs text-slate-600 dark:text-slate-400`,children:p===Q.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`})]})]})}),I===3&&o===`clone`&&(0,B.jsx)(hI,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,B.jsx)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(DF,{className:`text-sm font-medium`,children:`Commit method`}),(0,B.jsxs)(hB,{type:`single`,value:p,onValueChange:e=>{(e===Q.PullRequest||e===Q.Direct)&&(m(e),$R(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:[(0,B.jsx)(gB,{value:Q.PullRequest,className:`text-sm`,children:`Pull Requests`}),(0,B.jsx)(gB,{value:Q.Direct,className:`text-sm`,children:`Direct Commits`})]}),(0,B.jsx)(`p`,{className:`text-xs text-slate-600 dark:text-slate-400`,children:p===Q.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`})]})})}),(0,B.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10 min-h-[4.5rem] flex flex-col justify-end`,children:(0,B.jsxs)(vF,{children:[I>1&&(0,B.jsx)(Qj,{variant:`ghost`,onClick:se,children:`Back`}),I===2&&(0,B.jsx)(Qj,{onClick:()=>u(3),disabled:!ce,children:`Next`}),I===3&&o===`clone`&&(0,B.jsx)(Qj,{onClick:le,children:`Clone Repository`}),I===3&&o===`webapp`&&(0,B.jsx)(Qj,{onClick:ue,disabled:!ne.trim()||D,children:D?`Preparing...`:`Create App`})]})})]})})}export{nL as $,Bu as $i,gF as $n,vO as $r,BL as $t,Q as A,rv as Ai,lL as An,nM as Ar,TR as At,WL as B,Gp as Bi,X as Bn,QA as Br,hR as Bt,pz as C,st as Ca,Zy as Ci,cL as Cn,K as Cr,JI as Ct,_z as D,o as Da,Ov as Di,eR as Dn,mM as Dr,ER as Dt,lz as E,c as Ea,kv as Ei,sR as En,dM as Er,YL as Et,fR as F,yg as Fi,_L as Fn,U as Fr,QL as Ft,BR as G,dp as Gi,CI as Gn,MA as Gr,ZL as Gt,LI as H,Dp as Hi,vI as Hn,IA as Hr,tR as Ht,uL as I,sg as Ii,lR as In,Xj as Ir,YI as It,JL as J,Af as Ji,kF as Jn,Kk as Jr,VL as Jt,zR as K,cp as Ki,hI as Kn,OA as Kr,AL as Kt,pR as L,vh as Li,rL as Ln,qj as Lr,BI as Lt,jI as M,y_ as Mi,pL as Mn,W as Mr,KI as Mt,SR as N,Og as Ni,vL as Nn,Qj as Nr,QI as Nt,UR as O,i as Oa,mv as Oi,CR as On,sM as Or,NR as Ot,xR as P,Sg as Pi,gL as Pn,Zj as Pr,PR as Pt,vR as Q,_d as Qi,pF as Qn,yO as Qr,RL as Qt,OL as R,Xm as Ri,Z as Rn,Yj as Rr,zI as Rt,az as S,xt as Sa,lb as Si,aL as Sn,NM as Sr,qI as St,sz as T,We as Ta,Iy as Ti,dL as Tn,vM as Tr,dR as Tt,_R as U,xp as Ui,wI as Un,PA as Ur,LR as Ut,XI as V,zp as Vi,J as Vn,HA as Vr,gR as Vt,tL as W,bp as Wi,Y as Wn,z as Wr,IR as Wt,$I as X,uf as Xi,SF as Xn,mk as Xr,zL as Xt,MR as Y,yf as Yi,DF as Yn,_k as Yr,ML as Yt,FR as Z,Ed as Zi,xF as Zn,YO as Zr,LL as Zt,mz as _,Va as _a,dS as _i,kL as _n,eN as _r,bR as _t,Wz as a,Xc as aa,_E as ai,eL as an,lF as ar,bL as at,gz as b,Br as ba,wb as bi,VI as bn,PM as br,uR as bt,zz as c,Pc as ca,Ow as ci,ZI as cn,sF as cr,iL as ct,vz as d,Uo as da,OC as di,fL as dn,oF as dr,IL as dt,_u as ea,lO as ei,PL as en,bF as er,VR as et,dz as f,_o as fa,bC as fi,mR as fn,eF as fr,WI as ft,uz as g,Wa as ga,TS as gi,qL as gn,aN as gr,oL as gt,fz as h,Ga as ha,DS as hi,$L as hn,hP as hr,GI as ht,Bz as i,Ml as ia,NE as ii,kR as in,fF as ir,TL as it,MI as j,ev as ji,aR as jn,eM as jr,OR as jt,WR as k,dv as ki,wR as kn,aM as kr,DR as kt,Rz as l,Ms as la,AC as li,mL as ln,aF as lr,jL as lt,iz as m,Ka as ma,pC as mi,XL as mn,wP as mr,SL as mt,hB as n,mu as na,fD as ni,HL as nn,_F as nr,EL as nt,Vz as o,Wc as oa,oE as oi,cR as on,dF as or,CL as ot,nz as p,oo as pa,vC as pi,KL as pn,DP as pr,wL as pt,rR as q,sp as qi,AF as qn,TA as qr,nR as qt,gB as r,Rl as ra,QE as ri,FL as rn,yF as rr,xL as rt,Hz as s,Ic as sa,Rw as si,UI as sn,cF as sr,yL as st,_B as t,gu as ta,UD as ti,NL as tn,vF as tr,iR as tt,Ez as u,Qo as ua,kC as ui,hL as un,uF as ur,DL as ut,oz as v,Ma as va,ix as vi,jR as vn,QM as vr,sL as vt,hz as w,et as wa,qy as wi,oR as wn,G as wr,AR as wt,rz as x,vr as xa,ub as xi,RR as xn,EM as xr,UL as xt,cz as y,Kr as ya,ex as yi,HI as yn,zM as yr,yR as yt,GL as z,Mm as zi,EI as zn,Jj as zr,RI as zt};
@@ -0,0 +1,3 @@
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$n as t,Ci as n,Ea as r,Fr as i,Hr as a,Ht as o,Ji as s,Kn as c,Ln as l,Mi as u,Ni as d,Nr as f,Oa as p,Qn as m,Yi as h,Zi as g,bt as _,ct as v,ga as y,gi as b,ha as x,ji as S,ki as C,mt as w,nn as T,nr as E,qr as D,rr as O,tr as ee,wi as te}from"./dialogs-config-CV8HzCCA.js";import{D as k}from"./react-vendor-DV_DP0Qd.js";import{Mt as A}from"./monaco-BGyhgQtx.js";import{a as j,t as M}from"./store-9Wm6Zyve.js";import{t as N}from"./textarea-CU-XhvgE.js";import{c as P,s as ne,u as F}from"./history-view-DDpROJvQ.js";import{t as re,y as ie}from"./chat-input-container-Dh5eJPNP.js";import{t as ae}from"./standard-list-item-PWOXi212.js";import{n as oe}from"./utils-Dt4Hs5eF.js";import{t as se}from"./page-toolbar-rWocuukR.js";import{n as ce,r as le,t as ue}from"./resizable-jxPFsLog.js";import{a as I,n as L,r as R,t as z}from"./context-menu-D_gX85jr.js";var B=e(p(),1),V=r(),H=a();function U(e){let t=(0,V.c)(17),{children:n,title:r,headerAction:i,footer:a}=e,o;t[0]===r?o=t[1]:(o=r&&(0,H.jsx)(`span`,{className:`text-sm font-semibold tracking-tight`,children:r}),t[0]=r,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,H.jsx)(`div`,{className:`flex items-center gap-2`,children:o}),t[2]=o,t[3]=s);let l;t[4]===i?l=t[5]:(l=i&&(0,H.jsx)(`div`,{className:`flex items-center gap-2 ml-auto`,children:i}),t[4]=i,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,H.jsxs)(`div`,{className:`flex items-center justify-between border-b border-sidebar-border px-4 py-6`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===n?d=t[10]:(d=(0,H.jsx)(c,{className:`flex-1`,children:n}),t[9]=n,t[10]=d);let f;t[11]===a?f=t[12]:(f=a&&(0,H.jsx)(`div`,{className:`border-t border-sidebar-border`,children:a}),t[11]=a,t[12]=f);let p;return t[13]!==u||t[14]!==d||t[15]!==f?(p=(0,H.jsxs)(`div`,{className:`flex flex-col h-full`,children:[u,d,f]}),t[13]=u,t[14]=d,t[15]=f,t[16]=p):p=t[16],p}function de(e){let t=[],n={};return e.forEach((e,r)=>{let i=e.path.split(`/`),a=t,o=``;for(let e=0;e<i.length-1;e++){if(o=o?`${o}/${i[e]}`:i[e],!n[o]){let t={id:`dir:${o}`,name:i[e],children:[]};n[o]=t,a.push(t)}a=n[o].children}a.push({id:`file:${e.path}`,name:i[i.length-1],fileIndex:r,status:e.status})}),t}var W={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},G={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function K(e){return i(`status-badge font-mono text-xs font-semibold`,W[e]??`text-orange-500`)}function q(e){return G[e]??`M`}function fe(e){let t=(0,V.c)(37),{treeData:n,files:r,isLoading:a,error:o,selectedFileIndex:c,onFileSelect:l,onRevertFile:u}=e,f;t[0]===r?f=t[1]:(f=r.reduce(J,0),t[0]=r,t[1]=f);let p=f,m;t[2]===r?m=t[3]:(m=r.reduce(pe,0),t[2]=r,t[3]=m);let _=m,v=r.length===1?``:`s`,y;t[4]!==r.length||t[5]!==v?(y=(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[r.length,` file`,v]}),t[4]=r.length,t[5]=v,t[6]=y):y=t[6];let S;t[7]===p?S=t[8]:(S=(0,H.jsxs)(`span`,{className:`text-xs text-green-500`,children:[`+`,p]}),t[7]=p,t[8]=S);let C;t[9]===_?C=t[10]:(C=(0,H.jsxs)(`span`,{className:`text-xs text-red-500`,children:[`-`,_]}),t[9]=_,t[10]=C);let w;t[11]!==y||t[12]!==S||t[13]!==C?(w=(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[y,S,C]}),t[11]=y,t[12]=S,t[13]=C,t[14]=w):w=t[14];let T=w;if(a){let e;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`div`,{className:`flex-1 flex items-center justify-center pt-3 pb-2`,children:(0,H.jsx)(d,{className:`h-6 w-6 animate-spin text-muted-foreground`})}),t[15]=e):e=t[15];let n;return t[16]===T?n=t[17]:(n=(0,H.jsx)(U,{title:`Review Changes`,headerAction:T,children:e}),t[16]=T,t[17]=n),n}if(o){let e;t[18]===o?e=t[19]:(e=(0,H.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,H.jsx)(`p`,{className:`text-destructive text-xs text-center`,children:o})}),t[18]=o,t[19]=e);let n;return t[20]!==T||t[21]!==e?(n=(0,H.jsx)(U,{title:`Review Changes`,headerAction:T,children:e}),t[20]=T,t[21]=e,t[22]=n):n=t[22],n}if(r.length===0){let e;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,H.jsx)(`p`,{className:`text-muted-foreground text-xs text-center`,children:`No changes to review`})}),t[23]=e):e=t[23];let n;return t[24]===T?n=t[25]:(n=(0,H.jsx)(U,{title:`Review Changes`,headerAction:T,children:e}),t[24]=T,t[25]=n),n}let E;t[26]!==r||t[27]!==l||t[28]!==u||t[29]!==c?(E=(e,t)=>{let{isOpen:n,toggle:a}=t,o=!!e.children,d=(0,H.jsxs)(ae,{onClick:()=>{o?a():e.fileIndex!==void 0&&l(e.fileIndex)},selected:!o&&e.fileIndex===c,className:`gap-1.5`,children:[o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(x,{className:i(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,n&&`rotate-90`)}),n?(0,H.jsx)(h,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,H.jsx)(s,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,H.jsx)(g,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,H.jsx)(`span`,{className:`truncate flex-1 min-w-0`,children:e.name}),!o&&e.status&&(0,H.jsx)(`span`,{className:K(e.status),children:q(e.status)})]});return o?d:(0,H.jsxs)(z,{children:[(0,H.jsx)(I,{asChild:!0,children:d}),(0,H.jsx)(L,{children:(0,H.jsxs)(R,{onClick:()=>{e.fileIndex!==void 0&&u?.(r[e.fileIndex])},children:[(0,H.jsx)(b,{className:`mr-2 h-3.5 w-3.5`}),`Revert Change`]})})]})},t[26]=r,t[27]=l,t[28]=u,t[29]=c,t[30]=E):E=t[30];let D;t[31]!==E||t[32]!==n?(D=(0,H.jsx)(`div`,{className:`flex-1 overflow-y-auto pt-3 pb-2 px-1`,children:(0,H.jsx)(ie,{nodes:n,defaultOpen:!0,resetKey:n,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:E})}),t[31]=E,t[32]=n,t[33]=D):D=t[33];let O;return t[34]!==T||t[35]!==D?(O=(0,H.jsx)(U,{title:`Review Changes`,headerAction:T,children:D}),t[34]=T,t[35]=D,t[36]=O):O=t[36],O}function pe(e,t){return e+t.hunks.reduce(me,0)}function me(e,t){return e+t.changes.filter(he).length}function he(e){return e.type===`delete`}function J(e,t){return e+t.hunks.reduce(ge,0)}function ge(e,t){return e+t.changes.filter(_e).length}function _e(e){return e.type===`add`}function ve(e){let t=(0,V.c)(2),{isOpen:n}=e,r=n===void 0||n?`ml-[-40px]`:``,i;return t[0]===r?i=t[1]:(i=(0,H.jsx)(ue,{withHandle:!0,className:r}),t[0]=r,t[1]=i),i}function ye(e){let n=(0,V.c)(35),{open:r,lineNumber:i,lineContent:a,initialComment:o,isEditing:s,onSave:c,onDelete:l,onClose:u}=e,[d,p]=(0,B.useState)((o===void 0?``:o)??``),h;n[0]!==c||n[1]!==d?(h=()=>{d.trim()&&c(d.trim())},n[0]=c,n[1]=d,n[2]=h):h=n[2];let g=h,_;n[3]===g?_=n[4]:(_=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),g())},n[3]=g,n[4]=_);let v=_,y;n[5]===u?y=n[6]:(y=e=>{e||u()},n[5]=u,n[6]=y);let b;n[7]===i?b=n[8]:(b=(0,H.jsx)(E,{children:(0,H.jsxs)(O,{className:`text-sm font-medium`,children:[`Comment on line `,i]})}),n[7]=i,n[8]=b);let x=a||` `,S;n[9]===x?S=n[10]:(S=(0,H.jsx)(`div`,{className:`rounded bg-muted px-3 py-2 font-mono text-xs text-muted-foreground overflow-x-auto whitespace-pre`,children:x}),n[9]=x,n[10]=S);let C;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>p(e.target.value),n[11]=C):C=n[11];let w;n[12]!==v||n[13]!==d?(w=(0,H.jsx)(N,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:d,onChange:C,onKeyDown:v,rows:12,className:`resize-none text-sm`}),n[12]=v,n[13]=d,n[14]=w):w=n[14];let T;n[15]!==s||n[16]!==l?(T=s&&l&&(0,H.jsx)(f,{variant:`destructive`,size:`sm`,onClick:l,className:`mr-auto`,children:`Delete`}),n[15]=s,n[16]=l,n[17]=T):T=n[17];let D;n[18]===d?D=n[19]:(D=d.trim(),n[18]=d,n[19]=D);let te=!D,k;n[20]!==g||n[21]!==te?(k=(0,H.jsx)(f,{size:`sm`,onClick:g,disabled:te,children:`Save`}),n[20]=g,n[21]=te,n[22]=k):k=n[22];let A;n[23]!==T||n[24]!==k?(A=(0,H.jsxs)(ee,{className:`gap-2 sm:gap-0`,children:[T,k]}),n[23]=T,n[24]=k,n[25]=A):A=n[25];let j;n[26]!==A||n[27]!==b||n[28]!==S||n[29]!==w?(j=(0,H.jsxs)(t,{className:`max-w-2xl`,children:[b,S,w,A]}),n[26]=A,n[27]=b,n[28]=S,n[29]=w,n[30]=j):j=n[30];let M;return n[31]!==r||n[32]!==j||n[33]!==y?(M=(0,H.jsx)(m,{open:r,onOpenChange:y,children:j}),n[31]=r,n[32]=j,n[33]=y,n[34]=M):M=n[34],M}function Y({threadId:e,onExit:t}){let{state:r,dispatch:a}=j(),{resolvedTheme:s}=oe(),[c,d]=(0,B.useState)([]),[p,m]=(0,B.useState)(!0),[h,g]=(0,B.useState)(null),[b,E]=(0,B.useState)(0),[O,ee]=(0,B.useState)(!1),[N,ie]=(0,B.useState)(!1),[ae,ue]=(0,B.useState)(!1),I=(0,B.useRef)(null),L=(0,B.useMemo)(()=>r.diffComments[e]??[],[r.diffComments,e]),R=(0,B.useCallback)(t=>{let n=r.diffComments[e]??[],i=typeof t==`function`?t(n):t;a({type:M.SetDiffComments,threadId:e,comments:i})},[a,e,r.diffComments]),[z,V]=(0,B.useState)(null),[U,W]=(0,B.useState)(null),[G,K]=(0,B.useState)(null),q=(0,B.useRef)(null),pe=(0,B.useRef)(L),me=(0,B.useRef)(z),he=(0,B.useRef)({isFullView:O,selectedFileIndex:b,files:c}),J=(0,B.useRef)({original:[],modified:[]}),ge=(0,B.useRef)(!0);(0,B.useEffect)(()=>{pe.current=L},[L]),(0,B.useEffect)(()=>{me.current=z},[z]),(0,B.useEffect)(()=>{he.current={isFullView:O,selectedFileIndex:b,files:c}},[O,b,c]);let _e=(0,B.useCallback)(()=>{I.current&&(N?I.current.expand():I.current.collapse())},[N]),Y=(0,B.useCallback)(async()=>{if(e){m(!0),g(null);try{d((await _(e)).files||[]),E(0)}catch(e){g(e instanceof Error?e.message:`Failed to load diff`)}finally{m(!1)}}},[e]);(0,B.useEffect)(()=>{Y()},[Y]);let be=(0,B.useCallback)(async t=>{try{await T(e,t.path),await Y()}catch(e){g(e instanceof Error?e.message:`Failed to revert file`)}},[e,Y]),xe=(0,B.useRef)(!1);(0,B.useEffect)(()=>{if((r.diffComments[e]??[]).length>0){xe.current=!0;return}o(e).then(t=>{t.diffComments&&t.diffComments.length>0&&a({type:M.SetDiffComments,threadId:e,comments:t.diffComments}),xe.current=!0}).catch(()=>{xe.current=!0})},[e]),(0,B.useEffect)(()=>{xe.current&&l(e,{diffComments:L}).catch(()=>{})},[e,L]);let Se=(0,B.useMemo)(()=>de(c),[c]),X=e=>{if(e.hunks.length===0)return null;let t=1/0,n=0;return e.hunks.forEach(e=>{let r=Math.min(e.oldStart,e.newStart),i=e.oldStart+e.oldLines,a=e.newStart+e.newLines,o=Math.max(i,a);t=Math.min(t,r),n=Math.max(n,o)}),t===1/0?null:{startLine:Math.max(1,t-2),endLine:n+2}},Ce=(e,t,n)=>e.split(`
2
+ `).slice(t-1,n).join(`
3
+ `),we=e=>{let t=X(e);return t?t.startLine<=1:!0},Te=e=>({ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,swift:`swift`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`})[e.split(`.`).pop()??``]||`plaintext`,Z=c[b],Ee=Z?O?Z.oldContent:(()=>{let e=X(Z);return e?Ce(Z.oldContent,e.startLine,e.endLine):Z.oldContent})():``,De=Z?O?Z.newContent:(()=>{let e=X(Z);return e?Ce(Z.newContent,e.startLine,e.endLine):Z.newContent})():``,Q=(0,B.useCallback)(()=>{if(!ge.current)return;let e=q.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=he.current,i=pe.current,a=me.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:X(o),c=i.filter(e=>e.fileIndex===n&&e.side===r),l=new Set(c.map(e=>s?e.lineNumber-s.startLine+1:e.lineNumber)),u=e.getModel()?.getLineCount()??0,d=[];for(let e=1;e<=u;e++)l.has(e)||d.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},options:{isWholeLine:!0,glyphMarginClassName:`diff-gutter-add-comment`,glyphMarginHoverMessage:{value:`$(add) Click to add a comment`},stickiness:A.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}});let f=c.map(e=>{let t=s?e.lineNumber-s.startLine+1:e.lineNumber;if(t<1)return null;let n=i.indexOf(e)===a;return{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:n?`diff-comment-active-line`:`diff-comment-marked-line`,glyphMarginClassName:n?`diff-comment-glyph-active`:`diff-comment-glyph`,glyphMarginHoverMessage:{value:e.comment},stickiness:A.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}}}).filter(e=>e!==null);d.push(...f);let p=r===`original`?J.current.original:J.current.modified,m=e.deltaDecorations(p,d);r===`original`?J.current.original=m:J.current.modified=m};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},[]);(0,B.useEffect)(()=>{Q()},[Q,L,z,b,O,Z]),(0,B.useEffect)(()=>()=>{q.current=null,J.current={original:[],modified:[]}},[b]),(0,B.useEffect)(()=>()=>{ge.current=!1,q.current&&=(q.current.getOriginalEditor().getModel()?.dispose(),q.current.getModifiedEditor().getModel()?.dispose(),q.current.dispose(),null),J.current={original:[],modified:[]}},[]);let Oe=(0,B.useCallback)(e=>{q.current=e;let t=e=>e===A.MouseTargetType.GUTTER_GLYPH_MARGIN||e===A.MouseTargetType.GUTTER_LINE_NUMBERS||e===A.MouseTargetType.GUTTER_LINE_DECORATIONS||e===A.MouseTargetType.GUTTER_VIEW_ZONE,n=(e,n)=>{e.onMouseDown(r=>{if(!r.target?.position||!t(r.target.type))return;let i=r.target.position.lineNumber,{isFullView:a,selectedFileIndex:o,files:s}=he.current,c=s[o];if(!c)return;let l=a?null:X(c),u=l?l.startLine+i-1:i,d=e.getModel()?.getLineContent(i)??``,f=pe.current.find(e=>e.fileIndex===o&&e.lineNumber===u&&e.side===n);f?K(f):W({lineNumber:u,lineContent:d,side:n})})};n(e.getOriginalEditor(),`original`),n(e.getModifiedEditor(),`modified`),setTimeout(()=>{q.current===e&&Q()},150)},[Q]),ke=(0,B.useCallback)(e=>{if(U&&Z){let t={id:`comment-${Date.now()}`,filePath:Z.path,fileIndex:b,lineNumber:U.lineNumber,lineContent:U.lineContent,comment:e,side:U.side};R(e=>[...e,t]),W(null)}else G&&(R(t=>t.map(t=>t.id===G.id?{...t,comment:e}:t)),K(null))},[U,G,Z,b,R]),Ae=(0,B.useCallback)(()=>{G&&(R(e=>e.filter(e=>e.id!==G.id)),K(null))},[G,R]),$=(0,B.useCallback)(e=>{if(L.length===0)return;let t=(e%L.length+L.length)%L.length,n=L[t];V(t),E(n.fileIndex),setTimeout(()=>{let e=q.current;if(!e)return;let t=c[n.fileIndex];if(!t)return;let r=O?null:X(t),i=r?n.lineNumber-r.startLine+1:n.lineNumber;(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,i)),Q()},100)},[L,c,O,Q]),je=(0,B.useCallback)(()=>{$((z??0)-1)},[$,z]),Me=(0,B.useCallback)(()=>{$((z??-1)+1)},[$,z]),Ne=(0,B.useCallback)(async()=>{let n=r.projectModelSelections[e];if(!n)try{let e=await w(),t=Object.values(e).flat();if(t.length>0)n=t[0];else{console.error(`No models available to process comments`);return}}catch(e){console.error(`Failed to load models:`,e);return}let i=n.id,o=n.provider;try{let{prompt:n}=await v(e,L);R([]),a({type:M.SetPendingChatMessage,message:{threadId:e,message:n,model:i,provider:o}}),t()}catch(e){console.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}},[L,r.projectModelSelections,a,e,t,R]),Pe={readOnly:!0,renderSideBySide:!0,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,glyphMargin:!0,lineNumbers:Z&&(O||we(Z))?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0};return(0,H.jsxs)(`div`,{className:`diff-view-root flex h-full flex-col`,children:[(0,H.jsx)(`div`,{className:`diff-body flex flex-1 overflow-hidden`,children:(0,H.jsxs)(le,{direction:`horizontal`,children:[(0,H.jsx)(ce,{ref:I,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:()=>ie(!0),onExpand:()=>ie(!1),className:`border-r border-transparent`,children:(0,H.jsx)(`div`,{className:`h-full overflow-hidden`,children:(0,H.jsx)(fe,{treeData:Se,files:c,isLoading:p,error:h,selectedFileIndex:b,onFileSelect:E,onRevertFile:be})})}),(0,H.jsx)(ve,{isOpen:!N}),(0,H.jsx)(ce,{className:`overflow-hidden bg-transparent`,children:(0,H.jsxs)(`div`,{className:`diff-editor-panel flex h-full bg-transparent flex-col overflow-hidden`,children:[(0,H.jsxs)(se,{className:i(`bg-transparent`,N&&`h-auto py-3 flex-col items-start gap-3 md:flex-row md:items-center md:h-[71px] md:py-0 md:gap-2 justify-between`),children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(f,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:_e,children:[N?(0,H.jsx)(n,{className:`h-4 w-4`}):(0,H.jsx)(te,{className:`h-4 w-4`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`})]}),(0,H.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:Z?Z.path:`Review Changes`})]}),(0,H.jsxs)(`div`,{className:i(`flex items-center gap-2`,N&&`ml-0`,!N&&`ml-auto`,`md:ml-auto`),children:[(0,H.jsx)(f,{variant:`ghost`,size:`sm`,onClick:()=>ee(e=>!e),disabled:!Z,className:`h-8 gap-1 px-2 text-xs`,children:O?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(C,{className:`h-3 w-3`}),` Show changes only`]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(u,{className:`h-3 w-3`}),` Show full file`]})}),L.length>0&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(ne,{children:[(0,H.jsx)(F,{asChild:!0,children:(0,H.jsx)(f,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:je,disabled:(z??0)===0,children:(0,H.jsx)(y,{className:`h-3 w-3`})})}),(0,H.jsx)(P,{children:`Previous comment`})]}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap`,children:L.length===1?`1 Comment`:`Comment ${(z??0)+1} of ${L.length}`}),(0,H.jsxs)(ne,{children:[(0,H.jsx)(F,{asChild:!0,children:(0,H.jsx)(f,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:Me,disabled:(z??0)===L.length-1,children:(0,H.jsx)(x,{className:`h-3 w-3`})})}),(0,H.jsx)(P,{children:`Next comment`})]})]}),L.length>0&&(0,H.jsxs)(ne,{children:[(0,H.jsx)(F,{asChild:!0,children:(0,H.jsxs)(f,{size:`sm`,onClick:Ne,className:`h-8 gap-1 px-3 text-xs bg-foreground text-background hover:bg-foreground/90`,children:[(0,H.jsx)(S,{className:`h-3 w-3`}),`Fix all comments`]})}),(0,H.jsx)(P,{children:`Send all comments to Tarsk for resolution`})]})]})]}),(0,H.jsxs)(`div`,{className:`flex-1 bg-transparent relative`,children:[(0,H.jsx)(k,{height:`100%`,language:Te(Z?.path||``),original:Ee,modified:De,theme:s===`dark`?`vs-dark`:`vs-light`,onMount:Oe,options:Pe},`diff-${b}`),(0,H.jsxs)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 z-20 flex flex-col items-end gap-3`,children:[ae&&(0,H.jsxs)(`div`,{className:`pointer-events-auto w-[min(100%,48rem)] rounded-2xl bg-background/50 p-4 backdrop-blur-md`,children:[(0,H.jsx)(`div`,{className:`mb-3 flex items-center justify-end`,children:(0,H.jsxs)(f,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>ue(!1),children:[(0,H.jsx)(D,{className:`h-4 w-4`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Close chat`})]})}),(0,H.jsx)(re,{})]}),!ae&&(0,H.jsxs)(ne,{children:[(0,H.jsx)(F,{asChild:!0,children:(0,H.jsxs)(f,{size:`icon`,className:`pointer-events-auto h-12 w-12 rounded-full shadow-lg`,onClick:()=>ue(!0),children:[(0,H.jsx)(S,{className:`h-5 w-5`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Open review chat`})]})}),(0,H.jsx)(P,{children:`Chat about this diff`})]})]})]})]})})]})}),(0,H.jsx)(ye,{open:U!==null||G!==null,lineNumber:G?.lineNumber??U?.lineNumber??0,lineContent:G?.lineContent??U?.lineContent??``,initialComment:G?.comment,isEditing:G!==null,onSave:ke,onDelete:Ae,onClose:()=>{W(null),K(null)}},`${G?.id??``}-${U?.lineNumber??``}-${U?.side??``}`)]})}export{Y as DiffView,Y as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/explorer-tree-D0P-HUYS.js","assets/rolldown-runtime-B1FJdls4.js","assets/dialogs-config-BXDglGdB.js","assets/api-RbLAI1bg.js","assets/alert-dialog-Dj0hDlZC.js","assets/react-vendor-Bpg1hd5i.js","assets/monaco-BGyhgQtx.js","assets/monaco-Br_kD0ds.css","assets/history-view-i7fGKCkc.js","assets/context-menu-XD6khGRr.js","assets/standard-list-item-BLTOBGFa.js","assets/use-toast-C5s-Xnwi.js","assets/tab-context-BUUT3x3d.js","assets/explorer-view-CL_9lhkq.js","assets/markdown-renderer-CPSKOcqK.js","assets/page-toolbar-CbwENcML.js","assets/store-B9rEO6q-.js","assets/utils-CDrGT12s.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ln as t,Nr as n,_a as r,ha as i}from"./dialogs-config-BXDglGdB.js";import{Pt as a}from"./monaco-BGyhgQtx.js";import{a as o}from"./store-B9rEO6q-.js";import{n as s}from"./tab-context-BUUT3x3d.js";import{n as c,r as l,t as u}from"./resizable-BLhzHL_f.js";var d=i(),f=e(r(),1),p=n(),m=(0,f.lazy)(()=>a(()=>import(`./explorer-tree-D0P-HUYS.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),h=(0,f.lazy)(()=>a(()=>import(`./explorer-view-CL_9lhkq.js`),__vite__mapDeps([13,1,2,3,14,6,7,8,15,11,16,5,17])));function g(){let e=(0,d.c)(17),{state:n}=o(),r=n.selectedThreadId,[i,a]=(0,f.useState)(null),{pendingExplorerPath:g,setPendingExplorerPath:v,explorerClearPath:y,setExplorerClearPath:b}=s(),x,S;e[0]!==g||e[1]!==v?(x=()=>{g&&(a({name:g.split(`/`).pop()??g,type:`file`,path:g}),v(null))},S=[g,v],e[0]=g,e[1]=v,e[2]=x,e[3]=S):(x=e[2],S=e[3]),(0,f.useEffect)(x,S);let C,w;e[4]!==y||e[5]!==b?(C=()=>{y&&(a(e=>e&&(e.path===y||e.path.startsWith(y+`/`)?null:e)),b(null))},w=[y,b],e[4]=y,e[5]=b,e[6]=C,e[7]=w):(C=e[6],w=e[7]),(0,f.useEffect)(C,w);let T;e[8]!==i?.path||e[9]!==r?(T=(0,p.jsx)(c,{defaultSize:25,minSize:15,maxSize:50,className:`overflow-hidden border-r border-border`,children:(0,p.jsx)(t,{className:`h-full`,children:r?(0,p.jsx)(f.Suspense,{fallback:(0,p.jsx)(`div`,{className:`space-y-1 px-2 py-2`,children:[1,2,3].map(_)}),children:(0,p.jsx)(m,{threadId:r,selectedPath:i?.path??null,onFileSelect:a})}):(0,p.jsx)(`p`,{className:`px-3 py-4 text-xs text-muted-foreground text-center`,children:`No thread selected.`})})}),e[8]=i?.path,e[9]=r,e[10]=T):T=e[10];let E;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,p.jsx)(u,{withHandle:!0}),e[11]=E):E=e[11];let D;e[12]===i?D=e[13]:(D=(0,p.jsx)(c,{className:`overflow-hidden`,children:(0,p.jsx)(f.Suspense,{fallback:null,children:(0,p.jsx)(h,{selectedFile:i})})}),e[12]=i,e[13]=D);let O;return e[14]!==T||e[15]!==D?(O=(0,p.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:(0,p.jsxs)(l,{direction:`horizontal`,className:`flex-1 overflow-hidden`,children:[T,E,D]})}),e[14]=T,e[15]=D,e[16]=O):O=e[16],O}function _(e){return(0,p.jsx)(`div`,{className:`animate-pulse h-7 bg-muted rounded-full`},e)}export{g as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/explorer-tree-cxPx2HiW.js","assets/rolldown-runtime-B1FJdls4.js","assets/dialogs-config-CV8HzCCA.js","assets/api-BbUzw5rb.js","assets/alert-dialog-BWqb8ENe.js","assets/react-vendor-DV_DP0Qd.js","assets/monaco-BGyhgQtx.js","assets/monaco-Br_kD0ds.css","assets/history-view-DDpROJvQ.js","assets/context-menu-D_gX85jr.js","assets/standard-list-item-PWOXi212.js","assets/use-toast-CGSBJJb0.js","assets/tab-context-BdML89mQ.js","assets/explorer-view-BCQNEBOZ.js","assets/markdown-renderer-B1teF28W.js","assets/page-toolbar-rWocuukR.js","assets/store-9Wm6Zyve.js","assets/utils-Dt4Hs5eF.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ea as t,Hr as n,Kn as r,Oa as i}from"./dialogs-config-CV8HzCCA.js";import{Pt as a}from"./monaco-BGyhgQtx.js";import{a as o}from"./store-9Wm6Zyve.js";import{n as s}from"./tab-context-BdML89mQ.js";import{n as c,r as l,t as u}from"./resizable-jxPFsLog.js";var d=t(),f=e(i(),1),p=n(),m=(0,f.lazy)(()=>a(()=>import(`./explorer-tree-cxPx2HiW.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),h=(0,f.lazy)(()=>a(()=>import(`./explorer-view-BCQNEBOZ.js`),__vite__mapDeps([13,1,2,3,14,6,7,8,15,11,16,5,17])));function g(){let e=(0,d.c)(17),{state:t}=o(),n=t.selectedThreadId,[i,a]=(0,f.useState)(null),{pendingExplorerPath:g,setPendingExplorerPath:v,explorerClearPath:y,setExplorerClearPath:b}=s(),x,S;e[0]!==g||e[1]!==v?(x=()=>{g&&(a({name:g.split(`/`).pop()??g,type:`file`,path:g}),v(null))},S=[g,v],e[0]=g,e[1]=v,e[2]=x,e[3]=S):(x=e[2],S=e[3]),(0,f.useEffect)(x,S);let C,w;e[4]!==y||e[5]!==b?(C=()=>{y&&(a(e=>e&&(e.path===y||e.path.startsWith(y+`/`)?null:e)),b(null))},w=[y,b],e[4]=y,e[5]=b,e[6]=C,e[7]=w):(C=e[6],w=e[7]),(0,f.useEffect)(C,w);let T;e[8]!==i?.path||e[9]!==n?(T=(0,p.jsx)(c,{defaultSize:25,minSize:15,maxSize:50,className:`overflow-hidden border-r border-border`,children:(0,p.jsx)(r,{className:`h-full`,children:n?(0,p.jsx)(f.Suspense,{fallback:(0,p.jsx)(`div`,{className:`space-y-1 px-2 py-2`,children:[1,2,3].map(_)}),children:(0,p.jsx)(m,{threadId:n,selectedPath:i?.path??null,onFileSelect:a})}):(0,p.jsx)(`p`,{className:`px-3 py-4 text-xs text-muted-foreground text-center`,children:`No thread selected.`})})}),e[8]=i?.path,e[9]=n,e[10]=T):T=e[10];let E;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,p.jsx)(u,{withHandle:!0}),e[11]=E):E=e[11];let D;e[12]===i?D=e[13]:(D=(0,p.jsx)(c,{className:`overflow-hidden`,children:(0,p.jsx)(f.Suspense,{fallback:null,children:(0,p.jsx)(h,{selectedFile:i})})}),e[12]=i,e[13]=D);let O;return e[14]!==T||e[15]!==D?(O=(0,p.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:(0,p.jsxs)(l,{direction:`horizontal`,className:`flex-1 overflow-hidden`,children:[T,E,D]})}),e[14]=T,e[15]=D,e[16]=O):O=e[16],O}function _(e){return(0,p.jsx)(`div`,{className:`animate-pulse h-7 bg-muted rounded-full`},e)}export{g as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ea as t,Hr as n,Ji as r,Ni as i,Oa as a,Yi as o,Zi as s,_a as c,ha as l}from"./dialogs-config-CV8HzCCA.js";import{t as u}from"./use-toast-CGSBJJb0.js";import{t as d}from"./standard-list-item-PWOXi212.js";import{a as f,c as p,i as m,n as h,r as g,t as _}from"./alert-dialog-BWqb8ENe.js";import{n as v}from"./tab-context-BdML89mQ.js";import{a as y,i as ee,n as b,r as x,t as S}from"./context-menu-D_gX85jr.js";import{n as C,o as w,r as T,s as E,t as D}from"./api-BbUzw5rb.js";var O=t(),k=e(a(),1),A=n();function te(e){let t=(0,O.c)(17),{defaultValue:n,onCommit:r,onCancel:i,level:a,basePadding:o,icon:s}=e,c=(0,k.useRef)(null),l,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{c.current?.focus(),c.current?.select()},u=[],t[0]=l,t[1]=u):(l=t[0],u=t[1]),(0,k.useEffect)(l,u);let f;t[2]!==i||t[3]!==r?(f=function(e){if(e.key===`Enter`){let e=c.current?.value.trim()??``;e?r(e):i()}else e.key===`Escape`&&i()},t[2]=i,t[3]=r,t[4]=f):f=t[4];let p=f,m;t[5]!==i||t[6]!==r?(m=function(){let e=c.current?.value.trim()??``;e?r(e):i()},t[5]=i,t[6]=r,t[7]=m):m=t[7];let h=m,g;t[8]!==n||t[9]!==h||t[10]!==p?(g=(0,A.jsx)(`input`,{ref:c,defaultValue:n,onKeyDown:p,onBlur:h,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`,onClick:j}),t[8]=n,t[9]=h,t[10]=p,t[11]=g):g=t[11];let _;return t[12]!==o||t[13]!==s||t[14]!==a||t[15]!==g?(_=(0,A.jsxs)(d,{level:a,basePadding:o,children:[s,g]}),t[12]=o,t[13]=s,t[14]=a,t[15]=g,t[16]=_):_=t[16],_}function j(e){return e.stopPropagation()}function ne(e){let t=(0,O.c)(101),{node:n,level:a,selectedPath:u,expandedPaths:f,loadedDirs:p,loadingPaths:m,renamingPath:h,newItemIn:g,onToggleFolder:_,onSelectFile:v,onStartRename:C,onCommitRename:w,onCancelRename:T,onDelete:E,onNewFile:D,onNewFolder:k,onCommitNewItem:j,onCancelNewItem:P}=e,F;t[0]!==f||t[1]!==n.path?(F=f.has(n.path),t[0]=f,t[1]=n.path,t[2]=F):F=t[2];let I=F,L;t[3]!==m||t[4]!==n.path?(L=m.has(n.path),t[3]=m,t[4]=n.path,t[5]=L):L=t[5];let R=L,z,B;if(t[6]!==f||t[7]!==I||t[8]!==R||t[9]!==a||t[10]!==p||t[11]!==m||t[12]!==g||t[13]!==n||t[14]!==P||t[15]!==T||t[16]!==j||t[17]!==w||t[18]!==E||t[19]!==D||t[20]!==k||t[21]!==v||t[22]!==C||t[23]!==_||t[24]!==h||t[25]!==u){B=Symbol.for(`react.early_return_sentinel`);bb0:{let e=p.get(n.path)??[];z=h===n.path;let O=g?.dirPath===n.path&&I;if(n.type===`folder`){let M=n.ignored?`opacity-50`:void 0,F;t[28]!==n||t[29]!==_?(F=e=>{e.stopPropagation(),_(n)},t[28]=n,t[29]=_,t[30]=F):F=t[30];let L;t[31]!==I||t[32]!==R?(L=(0,A.jsx)(`span`,{className:`text-muted-foreground w-3 flex-shrink-0`,children:R?(0,A.jsx)(i,{className:`h-3 w-3 animate-spin`}):I?(0,A.jsx)(c,{className:`h-3 w-3`}):(0,A.jsx)(l,{className:`h-3 w-3`})}),t[31]=I,t[32]=R,t[33]=L):L=t[33];let V;t[34]!==I||t[35]!==z||t[36]!==n||t[37]!==T||t[38]!==w?(V=z?(0,A.jsxs)(A.Fragment,{children:[I?(0,A.jsx)(o,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(r,{className:`h-4 w-4 flex-shrink-0`}),(0,A.jsx)(`input`,{autoFocus:!0,defaultValue:n.name,onKeyDown:e=>{if(e.key===`Enter`){let t=e.target.value.trim();t?w(n,t):T()}else e.key===`Escape`&&T()},onBlur:e=>{let t=e.target.value.trim();t?w(n,t):T()},onClick:N,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`})]}):(0,A.jsxs)(A.Fragment,{children:[I?(0,A.jsx)(o,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(r,{className:`h-4 w-4 flex-shrink-0`}),(0,A.jsx)(`span`,{className:`flex-1 truncate`,children:n.name})]}),t[34]=I,t[35]=z,t[36]=n,t[37]=T,t[38]=w,t[39]=V):V=t[39];let H;t[40]!==a||t[41]!==M||t[42]!==F||t[43]!==L||t[44]!==V?(H=(0,A.jsxs)(d,{level:a,basePadding:10,className:M,onClick:F,children:[L,V]}),t[40]=a,t[41]=M,t[42]=F,t[43]=L,t[44]=V,t[45]=H):H=t[45];let U=I&&(0,A.jsx)(`div`,{children:R&&!p.has(n.path)?(0,A.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded mx-4 my-1`}):(0,A.jsxs)(A.Fragment,{children:[O&&(0,A.jsx)(te,{defaultValue:``,level:a+1,basePadding:g.type===`folder`?10:22,icon:g.type===`folder`?(0,A.jsx)(r,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(s,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:j,onCancel:P}),e.map(e=>(0,A.jsx)(ne,{node:e,level:a+1,selectedPath:u,expandedPaths:f,loadedDirs:p,loadingPaths:m,renamingPath:h,newItemIn:g,onToggleFolder:_,onSelectFile:v,onStartRename:C,onCommitRename:w,onCancelRename:T,onDelete:E,onNewFile:D,onNewFolder:k,onCommitNewItem:j,onCancelNewItem:P},e.path))]})}),W;t[46]!==H||t[47]!==U?(W=(0,A.jsxs)(`div`,{children:[H,U]}),t[46]=H,t[47]=U,t[48]=W):W=t[48];let G=W,K;t[49]===G?K=t[50]:(K=(0,A.jsx)(y,{asChild:!0,children:G}),t[49]=G,t[50]=K);let q;t[51]!==n.path||t[52]!==D?(q=(0,A.jsx)(x,{onSelect:()=>D(n.path),children:`New File...`}),t[51]=n.path,t[52]=D,t[53]=q):q=t[53];let J;t[54]!==n.path||t[55]!==k?(J=(0,A.jsx)(x,{onSelect:()=>k(n.path),children:`New Folder...`}),t[54]=n.path,t[55]=k,t[56]=J):J=t[56];let Y;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,A.jsx)(ee,{}),t[57]=Y):Y=t[57];let X;t[58]!==n||t[59]!==C?(X=(0,A.jsx)(x,{onSelect:()=>C(n),children:`Rename...`}),t[58]=n,t[59]=C,t[60]=X):X=t[60];let Z;t[61]!==n||t[62]!==E?(Z=(0,A.jsx)(x,{onSelect:()=>E(n),className:`text-destructive focus:text-destructive`,children:`Delete`}),t[61]=n,t[62]=E,t[63]=Z):Z=t[63];let Q;t[64]!==q||t[65]!==J||t[66]!==X||t[67]!==Z?(Q=(0,A.jsxs)(b,{children:[q,J,Y,X,Z]}),t[64]=q,t[65]=J,t[66]=X,t[67]=Z,t[68]=Q):Q=t[68];let $;t[69]!==K||t[70]!==Q?($=(0,A.jsxs)(S,{children:[K,Q]}),t[69]=K,t[70]=Q,t[71]=$):$=t[71],B=$;break bb0}}t[6]=f,t[7]=I,t[8]=R,t[9]=a,t[10]=p,t[11]=m,t[12]=g,t[13]=n,t[14]=P,t[15]=T,t[16]=j,t[17]=w,t[18]=E,t[19]=D,t[20]=k,t[21]=v,t[22]=C,t[23]=_,t[24]=h,t[25]=u,t[26]=z,t[27]=B}else z=t[26],B=t[27];if(B!==Symbol.for(`react.early_return_sentinel`))return B;let V=u===n.path,H=n.ignored?`opacity-50`:void 0,U;t[72]!==n||t[73]!==v?(U=()=>v(n),t[72]=n,t[73]=v,t[74]=U):U=t[74];let W;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,A.jsx)(s,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),t[75]=W):W=t[75];let G;t[76]!==z||t[77]!==n||t[78]!==T||t[79]!==w?(G=z?(0,A.jsx)(`input`,{autoFocus:!0,defaultValue:n.name,onKeyDown:e=>{if(e.key===`Enter`){let t=e.target.value.trim();t?w(n,t):T()}else e.key===`Escape`&&T()},onBlur:e=>{let t=e.target.value.trim();t?w(n,t):T()},onClick:M,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`}):(0,A.jsx)(`span`,{className:`flex-1 truncate`,children:n.name}),t[76]=z,t[77]=n,t[78]=T,t[79]=w,t[80]=G):G=t[80];let K;t[81]!==a||t[82]!==V||t[83]!==H||t[84]!==U||t[85]!==G?(K=(0,A.jsxs)(d,{level:a,basePadding:22,selected:V,className:H,onClick:U,children:[W,G]}),t[81]=a,t[82]=V,t[83]=H,t[84]=U,t[85]=G,t[86]=K):K=t[86];let q=K,J;t[87]===q?J=t[88]:(J=(0,A.jsx)(y,{asChild:!0,children:q}),t[87]=q,t[88]=J);let Y;t[89]!==n||t[90]!==C?(Y=(0,A.jsx)(x,{onSelect:()=>C(n),children:`Rename...`}),t[89]=n,t[90]=C,t[91]=Y):Y=t[91];let X;t[92]!==n||t[93]!==E?(X=(0,A.jsx)(x,{onSelect:()=>E(n),className:`text-destructive focus:text-destructive`,children:`Delete`}),t[92]=n,t[93]=E,t[94]=X):X=t[94];let Z;t[95]!==Y||t[96]!==X?(Z=(0,A.jsxs)(b,{children:[Y,X]}),t[95]=Y,t[96]=X,t[97]=Z):Z=t[97];let Q;return t[98]!==J||t[99]!==Z?(Q=(0,A.jsxs)(S,{children:[J,Z]}),t[98]=J,t[99]=Z,t[100]=Q):Q=t[100],Q}function M(e){return e.stopPropagation()}function N(e){return e.stopPropagation()}function P({threadId:e,selectedPath:t,onFileSelect:n}){let[i,a]=(0,k.useState)(new Map),[o,c]=(0,k.useState)(new Set),[l,d]=(0,k.useState)(new Set),[ee,O]=(0,k.useState)(null),[j,M]=(0,k.useState)(null),[N,P]=(0,k.useState)(null),{explorerRefreshTick:F,pendingExplorerPath:I}=v();async function L(t){if(!(!e||i.has(t))){d(e=>new Set(e).add(t));try{let n=await w(e,t);a(e=>new Map(e).set(t,n.entries))}catch{u({title:`Error`,description:`Failed to load directory`,variant:`destructive`})}finally{d(e=>{let n=new Set(e);return n.delete(t),n})}}}let R=(0,k.useCallback)(async t=>{if(e){d(e=>new Set(e).add(t));try{let n=await w(e,t);a(e=>new Map(e).set(t,n.entries))}catch{u({title:`Error`,description:`Failed to reload directory`,variant:`destructive`})}finally{d(e=>{let n=new Set(e);return n.delete(t),n})}}},[e]);(0,k.useEffect)(()=>{e&&(a(new Map),c(new Set),d(new Set),O(null),M(null),L(``))},[e]),(0,k.useEffect)(()=>{if(F>0&&e){R(``);for(let e of o)R(e)}},[F]),(0,k.useEffect)(()=>{if(!I||!e)return;let t=I.split(`/`);t.pop();let n=[],r=``;for(let e of t)r=r?`${r}/${e}`:e,n.push(r);if(n.length!==0){c(e=>{let t=new Set(e);for(let e of n)t.add(e);return t});for(let e of n)L(e)}},[I,e]);function z(e){o.has(e.path)?c(t=>{let n=new Set(t);return n.delete(e.path),n}):(c(t=>new Set(t).add(e.path)),L(e.path))}function B(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(0,t):``}function V(e){P(e)}async function H(){if(!N)return;let t=N;P(null);try{await T(e,t.path),await R(B(t.path)),c(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),a(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n})}catch{u({title:`Error`,description:`Failed to move "${t.name}" to trash`,variant:`destructive`})}}function U(e){M(null),O(e.path)}async function W(t,n){if(n===t.name){O(null);return}O(null);try{await E(e,t.path,n),await R(B(t.path)),t.type===`folder`&&(c(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),a(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}))}catch{u({title:`Error`,description:`Failed to rename "${t.name}"`,variant:`destructive`})}}function G(e){O(null),o.has(e)||(c(t=>new Set(t).add(e)),L(e)),M({dirPath:e,type:`file`})}function K(e){O(null),o.has(e)||(c(t=>new Set(t).add(e)),L(e)),M({dirPath:e,type:`folder`})}async function q(t){if(!j)return;let{dirPath:n,type:r}=j;M(null);try{r===`file`?await D(e,n,t):await C(e,n,t),await R(n)}catch{u({title:`Error`,description:`Failed to create ${r} "${t}"`,variant:`destructive`})}}function J(){M(null)}let Y=i.get(``)??[],X=l.has(``),Z=j?.dirPath===``?(0,A.jsx)(te,{defaultValue:``,level:0,basePadding:j.type===`folder`?10:22,icon:j.type===`folder`?(0,A.jsx)(r,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(s,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:q,onCancel:J}):null;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(_,{open:N!==null,onOpenChange:e=>!e&&P(null),children:(0,A.jsxs)(m,{children:[(0,A.jsx)(p,{children:`Move to Trash`}),(0,A.jsxs)(f,{children:[`Move “`,N?.name,`” to trash?`]}),(0,A.jsxs)(`div`,{className:`flex gap-3 justify-end`,children:[(0,A.jsx)(g,{children:`Cancel`}),(0,A.jsx)(h,{onClick:()=>void H(),children:`Move to Trash`})]})]})}),(0,A.jsxs)(S,{children:[(0,A.jsx)(y,{asChild:!0,children:(0,A.jsx)(`div`,{className:`py-2 min-h-full`,children:X?(0,A.jsx)(`div`,{className:`space-y-1 px-2`,children:[1,2,3].map(e=>(0,A.jsx)(`div`,{className:`animate-pulse h-7 bg-muted rounded-full`},e))}):(0,A.jsxs)(A.Fragment,{children:[Z,Y.map(e=>(0,A.jsx)(ne,{node:e,level:0,selectedPath:t,expandedPaths:o,loadedDirs:i,loadingPaths:l,renamingPath:ee,newItemIn:j,onToggleFolder:z,onSelectFile:n,onStartRename:U,onCommitRename:W,onCancelRename:()=>O(null),onDelete:V,onNewFile:G,onNewFolder:K,onCommitNewItem:q,onCancelNewItem:J},e.path))]})})}),(0,A.jsxs)(b,{children:[(0,A.jsx)(x,{onSelect:()=>G(``),children:`New File...`}),(0,A.jsx)(x,{onSelect:()=>K(``),children:`New Folder...`})]})]})]})}export{P as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ci as t,Nr as n,Vi as r,_a as i,wr as a}from"./dialogs-config-BXDglGdB.js";import{E as o}from"./react-vendor-Bpg1hd5i.js";import{a as s}from"./store-B9rEO6q-.js";import{t as c}from"./use-toast-C5s-Xnwi.js";import{t as l}from"./markdown-renderer-CPSKOcqK.js";import{n as u}from"./utils-CDrGT12s.js";import{t as d}from"./page-toolbar-CbwENcML.js";import{a as f,c as p,i as m}from"./api-RbLAI1bg.js";var h=e(i(),1),g=n(),_=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`,`tiff`,`tif`]),v=new Set([`mp4`,`webm`,`mov`,`avi`]);function y(e){let t=e.split(`.`).pop()?.toLowerCase()??``;return _.has(t)?`image`:v.has(t)?`video`:null}function b(e){return(e.split(`.`).pop()?.toLowerCase()??``)===`md`}function x(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,mdc:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[e.split(`.`).pop()??``]??`plaintext`}function S({selectedFile:e}){let{state:n}=s(),{resolvedTheme:i}=u(),_=n.selectedThreadId,v=(0,h.useRef)(null),[S,C]=(0,h.useState)(``),[w,T]=(0,h.useState)(``),[E,D]=(0,h.useState)(!1),[O,k]=(0,h.useState)(!1),[A,j]=(0,h.useState)(`edit`);(0,h.useEffect)(()=>()=>{v.current&&=(v.current.getModel()?.dispose(),v.current.dispose(),null)},[]);async function M(){if(!(!_||!e)){k(!0);try{await p(_,e.path,S),T(S),c({title:`Saved`,description:`${e.name} saved successfully.`})}catch(e){c({title:`Error`,description:e instanceof Error?e.message:`Failed to save file`,variant:`destructive`})}finally{k(!1)}}}let N=(0,h.useCallback)(async e=>{if(_){D(!0);try{let t=await m(_,e.path);C(t.content),T(t.content)}catch(e){c({title:`Error`,description:e instanceof Error?e.message:`Failed to load file`,variant:`destructive`})}finally{D(!1)}}},[_]);return(0,h.useEffect)(()=>{e&&_?(j(b(e.path)?`view`:`edit`),y(e.path)||N(e)):(j(`edit`),C(``),T(``))},[e,_,N]),_?(0,g.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,g.jsxs)(d,{className:`justify-between`,children:[(0,g.jsxs)(`div`,{className:`flex flex-col`,children:[(0,g.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:e?e.name:`Select a file to edit`}),(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e?e.path:`Browse and edit repository files`})]}),e&&!y(e.path)&&(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[b(e.path)?(0,g.jsxs)(`div`,{className:`flex rounded-full border border-input bg-background p-0.5`,children:[(0,g.jsx)(a,{size:`sm`,variant:A===`view`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>j(`view`),children:`View`}),(0,g.jsx)(a,{size:`sm`,variant:A===`edit`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>j(`edit`),children:`Edit`})]}):null,(0,g.jsxs)(a,{size:`sm`,onClick:()=>void M(),disabled:O||!S||S===w,children:[O?(0,g.jsx)(t,{className:`h-4 w-4 animate-spin`}):null,`Save`]})]})]}),(0,g.jsx)(`div`,{className:`flex-1 overflow-hidden`,children:(0,g.jsx)(`div`,{className:`h-full relative overflow-hidden`,children:E?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,g.jsx)(t,{className:`h-6 w-6 animate-spin text-muted-foreground`})}):e&&y(e.path)===`image`?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full p-4 overflow-auto`,children:(0,g.jsx)(`img`,{src:f(_,e.path),alt:e.name,className:`max-w-full max-h-full object-contain`})}):e&&y(e.path)===`video`?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,g.jsx)(`video`,{src:f(_,e.path),controls:!0,className:`max-w-full max-h-full`})}):e&&b(e.path)&&A===`view`?(0,g.jsx)(`div`,{className:`h-full overflow-auto p-6`,children:(0,g.jsx)(l,{content:S,enableMermaid:!0})}):e?(0,g.jsx)(o,{height:`100%`,language:x(e.path),value:S,onChange:e=>C(e??``),onMount:e=>{v.current=e},theme:i===`dark`?`vs-dark`:`vs-light`,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,fontSize:13,lineNumbers:`on`,renderLineHighlight:`line`,scrollbar:{vertical:`auto`,horizontal:`auto`}}}):(0,g.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center p-8`,children:[(0,g.jsx)(r,{className:`h-10 w-10 text-muted-foreground/50`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:`No file selected`}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Select a file from the tree to edit it`})]})]})})})]}):(0,g.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center`,children:[(0,g.jsx)(r,{className:`h-8 w-8 text-muted-foreground`}),(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a thread to browse its files`})]})}export{S as default};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Hr as t,Ni as n,Nr as r,Oa as i,Qi as a}from"./dialogs-config-CV8HzCCA.js";import{E as o}from"./react-vendor-DV_DP0Qd.js";import{a as s}from"./store-9Wm6Zyve.js";import{t as c}from"./use-toast-CGSBJJb0.js";import{t as l}from"./markdown-renderer-B1teF28W.js";import{n as u}from"./utils-Dt4Hs5eF.js";import{t as d}from"./page-toolbar-rWocuukR.js";import{a as f,c as p,i as m}from"./api-BbUzw5rb.js";var h=e(i(),1),g=t(),_=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`,`tiff`,`tif`]),v=new Set([`mp4`,`webm`,`mov`,`avi`]);function y(e){let t=e.split(`.`).pop()?.toLowerCase()??``;return _.has(t)?`image`:v.has(t)?`video`:null}function b(e){return(e.split(`.`).pop()?.toLowerCase()??``)===`md`}function x(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,mdc:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[e.split(`.`).pop()??``]??`plaintext`}function S({selectedFile:e}){let{state:t}=s(),{resolvedTheme:i}=u(),_=t.selectedThreadId,v=(0,h.useRef)(null),[S,C]=(0,h.useState)(``),[w,T]=(0,h.useState)(``),[E,D]=(0,h.useState)(!1),[O,k]=(0,h.useState)(!1),[A,j]=(0,h.useState)(`edit`);(0,h.useEffect)(()=>()=>{v.current&&=(v.current.getModel()?.dispose(),v.current.dispose(),null)},[]);async function M(){if(!(!_||!e)){k(!0);try{await p(_,e.path,S),T(S),c({title:`Saved`,description:`${e.name} saved successfully.`})}catch(e){c({title:`Error`,description:e instanceof Error?e.message:`Failed to save file`,variant:`destructive`})}finally{k(!1)}}}let N=(0,h.useCallback)(async e=>{if(_){D(!0);try{let t=await m(_,e.path);C(t.content),T(t.content)}catch(e){c({title:`Error`,description:e instanceof Error?e.message:`Failed to load file`,variant:`destructive`})}finally{D(!1)}}},[_]);return(0,h.useEffect)(()=>{e&&_?(j(b(e.path)?`view`:`edit`),y(e.path)||N(e)):(j(`edit`),C(``),T(``))},[e,_,N]),_?(0,g.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,g.jsxs)(d,{className:`justify-between`,children:[(0,g.jsxs)(`div`,{className:`flex flex-col`,children:[(0,g.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:e?e.name:`Select a file to edit`}),(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e?e.path:`Browse and edit repository files`})]}),e&&!y(e.path)&&(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[b(e.path)?(0,g.jsxs)(`div`,{className:`flex rounded-full border border-input bg-background p-0.5`,children:[(0,g.jsx)(r,{size:`sm`,variant:A===`view`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>j(`view`),children:`View`}),(0,g.jsx)(r,{size:`sm`,variant:A===`edit`?`secondary`:`ghost`,className:`h-7 px-3`,onClick:()=>j(`edit`),children:`Edit`})]}):null,(0,g.jsxs)(r,{size:`sm`,onClick:()=>void M(),disabled:O||!S||S===w,children:[O?(0,g.jsx)(n,{className:`h-4 w-4 animate-spin`}):null,`Save`]})]})]}),(0,g.jsx)(`div`,{className:`flex-1 overflow-hidden`,children:(0,g.jsx)(`div`,{className:`h-full relative overflow-hidden`,children:E?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,g.jsx)(n,{className:`h-6 w-6 animate-spin text-muted-foreground`})}):e&&y(e.path)===`image`?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full p-4 overflow-auto`,children:(0,g.jsx)(`img`,{src:f(_,e.path),alt:e.name,className:`max-w-full max-h-full object-contain`})}):e&&y(e.path)===`video`?(0,g.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,g.jsx)(`video`,{src:f(_,e.path),controls:!0,className:`max-w-full max-h-full`})}):e&&b(e.path)&&A===`view`?(0,g.jsx)(`div`,{className:`h-full overflow-auto p-6`,children:(0,g.jsx)(l,{content:S,enableMermaid:!0})}):e?(0,g.jsx)(o,{height:`100%`,language:x(e.path),value:S,onChange:e=>C(e??``),onMount:e=>{v.current=e},theme:i===`dark`?`vs-dark`:`vs-light`,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,fontSize:13,lineNumbers:`on`,renderLineHighlight:`line`,scrollbar:{vertical:`auto`,horizontal:`auto`}}}):(0,g.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center p-8`,children:[(0,g.jsx)(a,{className:`h-10 w-10 text-muted-foreground/50`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:`No file selected`}),(0,g.jsx)(`p`,{className:`text-base text-muted-foreground mt-1`,children:`Select a file from the tree to edit it`})]})]})})})]}):(0,g.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-center`,children:[(0,g.jsx)(a,{className:`h-8 w-8 text-muted-foreground`}),(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a thread to browse its files`})]})}export{S as default};
@@ -0,0 +1 @@
1
+ import{$n as e,Ea as t,Hr as n,Ni as r,Nr as i,Qn as a,er as o,nr as s,rr as c,tr as l}from"./dialogs-config-CV8HzCCA.js";var u=t(),d=n();function f(t){let n=(0,u.c)(28),{open:f,onOpenChange:m,commits:h,displayedCommits:g,isLoadingMore:_,onScroll:v,currentBranch:y}=t,b;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,d.jsx)(c,{children:`Commit History`}),n[0]=b):b=n[0];let x;n[1]===y?x=n[2]:(x=(0,d.jsxs)(s,{children:[b,(0,d.jsxs)(o,{children:[`Recent commits on branch `,y]})]}),n[1]=y,n[2]=x);let S;n[3]===g?S=n[4]:(S=g.length>0?g.map(p):(0,d.jsx)(`p`,{className:`text-sm text-slate-500 text-center py-8`,children:`No commits found`}),n[3]=g,n[4]=S);let C;n[5]===_?C=n[6]:(C=_&&(0,d.jsx)(`div`,{className:`p-3 text-center`,children:(0,d.jsx)(r,{className:`h-4 w-4 animate-spin inline`})}),n[5]=_,n[6]=C);let w;n[7]!==h.length||n[8]!==g.length||n[9]!==_?(w=g.length<h.length&&!_&&(0,d.jsx)(`div`,{className:`p-3 text-center text-xs text-slate-500`,children:`Scroll to load more`}),n[7]=h.length,n[8]=g.length,n[9]=_,n[10]=w):w=n[10];let T;n[11]!==S||n[12]!==C||n[13]!==w?(T=(0,d.jsxs)(`div`,{className:`divide-y`,children:[S,C,w]}),n[11]=S,n[12]=C,n[13]=w,n[14]=T):T=n[14];let E;n[15]!==v||n[16]!==T?(E=(0,d.jsx)(`div`,{className:`flex-1 overflow-y-auto border rounded-lg`,onScroll:v,children:T}),n[15]=v,n[16]=T,n[17]=E):E=n[17];let D;n[18]===m?D=n[19]:(D=(0,d.jsx)(l,{children:(0,d.jsx)(i,{onClick:()=>m(!1),children:`Close`})}),n[18]=m,n[19]=D);let O;n[20]!==x||n[21]!==E||n[22]!==D?(O=(0,d.jsxs)(e,{className:`max-w-2xl max-h-[80vh] flex flex-col`,children:[x,E,D]}),n[20]=x,n[21]=E,n[22]=D,n[23]=O):O=n[23];let k;return n[24]!==m||n[25]!==f||n[26]!==O?(k=(0,d.jsx)(a,{open:f,onOpenChange:m,children:O}),n[24]=m,n[25]=f,n[26]=O,n[27]=k):k=n[27],k}function p(e){return(0,d.jsxs)(`div`,{className:`p-3 hover:bg-slate-50 dark:hover:bg-slate-900 transition-colors`,children:[(0,d.jsx)(`p`,{className:`text-base font-medium break-words`,children:e.message}),(0,d.jsxs)(`p`,{className:`text-base text-slate-600 dark:text-slate-400 mt-1`,children:[(0,d.jsx)(`span`,{className:`font-mono`,children:e.hash.substring(0,7)}),` •`,` `,e.author,` • `,new Date(e.date).toLocaleDateString()]})]},e.hash)}export{f as GitHistoryDialog};