tarsk 0.5.73 → 0.5.74

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 (110) hide show
  1. package/dist/index.js +145120 -178397
  2. package/dist/public/assets/{Combination-lwI_j-mU.js → Combination-BdvBzSm4.js} +1 -1
  3. package/dist/public/assets/{account-view-DKQdyGPK.js → account-view-c-UG0JKH.js} +1 -1
  4. package/dist/public/assets/{alert-dialog-Cb1PEgra.js → alert-dialog-DAHkynVZ.js} +1 -1
  5. package/dist/public/assets/api-D1GxdEEp.js +2 -0
  6. package/dist/public/assets/{async-error-boundary-J8P6NVvc.js → async-error-boundary-DNJqC4BV.js} +1 -1
  7. package/dist/public/assets/{async-loading-fallback-B_JNgWJR.js → async-loading-fallback-D2X0o4Qa.js} +1 -1
  8. package/dist/public/assets/browser-tab-BKQJKTg8.js +12 -0
  9. package/dist/public/assets/{button-DeNw35VZ.js → button-B6HDsfd5.js} +1 -1
  10. package/dist/public/assets/{card-B4eI0NI-.js → card-DZGd45nw.js} +1 -1
  11. package/dist/public/assets/chat-dock-context-8_5G30KG.js +1 -0
  12. package/dist/public/assets/{commit-dialog-DDLaQVzY.js → commit-dialog-OQFa4W6i.js} +1 -1
  13. package/dist/public/assets/{commit-error-dialog-Cp0Aic7I.js → commit-error-dialog-BFByxoUG.js} +1 -1
  14. package/dist/public/assets/{commit-method-fields-CD3PTIox.js → commit-method-fields-BihSf23f.js} +1 -1
  15. package/dist/public/assets/context-menu-e5jeH0Jl.js +1 -0
  16. package/dist/public/assets/{conversation-history-view-JymxZFJ2.js → conversation-history-view-BUlO9oJ6.js} +1 -1
  17. package/dist/public/assets/create-project-dialog-CY5wIGQV.js +2 -0
  18. package/dist/public/assets/{create-project-workspace-BcIx6FNf.js → create-project-workspace-ClILToZd.js} +1 -1
  19. package/dist/public/assets/{create-repo-dialog-DcvSMy3g.js → create-repo-dialog-CKUQoOaX.js} +1 -1
  20. package/dist/public/assets/{delete-confirm-dialog-C9NASyh6.js → delete-confirm-dialog-3DX1u0Dg.js} +1 -1
  21. package/dist/public/assets/{dialog-Do98zzAW.js → dialog--0foS3aw.js} +1 -1
  22. package/dist/public/assets/{diff-view-ePD0sdsW.js → diff-view-DLPu21IR.js} +2 -2
  23. package/dist/public/assets/{dist-CWnEmdyL.js → dist-Bxyh1Ml_.js} +1 -1
  24. package/dist/public/assets/{dist-BZvmHCxP.js → dist-CFXDhuA_.js} +1 -1
  25. package/dist/public/assets/{dist-DIjomljy.js → dist-CNOCRPxn.js} +1 -1
  26. package/dist/public/assets/{dist-DiMgghKn.js → dist-Cda_ffeR.js} +1 -1
  27. package/dist/public/assets/{dist-CWq9XRXF.js → dist-CkQILg8A.js} +1 -1
  28. package/dist/public/assets/{dist-DjKXDRW7.js → dist-CqGsum35.js} +1 -1
  29. package/dist/public/assets/dist-DjiNKpTV.js +2 -0
  30. package/dist/public/assets/{dist-CjhvxqFU.js → dist-eMdiO0P3.js} +1 -1
  31. package/dist/public/assets/{dist-mdooLpmq.js → dist-rO95BjzU.js} +1 -1
  32. package/dist/public/assets/explorer-tab-view-nzl0M0Vm.js +2 -0
  33. package/dist/public/assets/explorer-tree-Bkb6dzmf.js +1 -0
  34. package/dist/public/assets/explorer-view-NcArt0_H.js +75 -0
  35. package/dist/public/assets/{git-history-dialog-DWhJ1-ba.js → git-history-dialog-rWkjoaR5.js} +1 -1
  36. package/dist/public/assets/index-BOB3ZUQs.js +3386 -0
  37. package/dist/public/assets/index-BdGMz8sL.css +1 -0
  38. package/dist/public/assets/{markdown-renderer-qLede1zH.js → markdown-renderer-BkKibNMs.js} +3 -3
  39. package/dist/public/assets/{mcp-server-card-zm-ss-7h.js → mcp-server-card-DFT7uyRh.js} +1 -1
  40. package/dist/public/assets/{merged-pr-dialog-Due9WdB4.js → merged-pr-dialog-BOrFaYk6.js} +1 -1
  41. package/dist/public/assets/model-list-controls-CpQjn6i7.js +1 -0
  42. package/dist/public/assets/onboarding-dialog-HJpyzVWa.js +1 -0
  43. package/dist/public/assets/{project-env-vars-view-N1Io1Pau.js → project-env-vars-view-C9VTTfTo.js} +1 -1
  44. package/dist/public/assets/project-model-aliases-view-DKRoV7Gc.js +1 -0
  45. package/dist/public/assets/{project-settings-view-BalZ6Fe1.js → project-settings-view-BDYqpibk.js} +1 -1
  46. package/dist/public/assets/{project-tools-view-OnCN0jKz.js → project-tools-view-9WUc4Yca.js} +1 -1
  47. package/dist/public/assets/providers-list-view-BgvIWP_0.js +1 -0
  48. package/dist/public/assets/pull-request-dialog-BM1dkFpK.js +1 -0
  49. package/dist/public/assets/{pull-with-changes-dialog-B9y2_lt_.js → pull-with-changes-dialog-Bjl_esir.js} +1 -1
  50. package/dist/public/assets/{push-before-pr-dialog-D3pMFe9A.js → push-before-pr-dialog-Cbc_zaI8.js} +1 -1
  51. package/dist/public/assets/{radio-group-CU59hGiA.js → radio-group-CMW5ku-w.js} +1 -1
  52. package/dist/public/assets/{scroll-area-nbNFO91g.js → scroll-area-BMQFeWmq.js} +1 -1
  53. package/dist/public/assets/settings-general-view-BaMVw6kD.js +1 -0
  54. package/dist/public/assets/{settings-instructions-view-GjQivhLy.js → settings-instructions-view-BRE87H2U.js} +1 -1
  55. package/dist/public/assets/{settings-list-DU82HNPX.js → settings-list-BpPbGcpS.js} +1 -1
  56. package/dist/public/assets/{settings-logs-view-DnQ_4O9b.js → settings-logs-view-Bbue8ZOn.js} +4 -4
  57. package/dist/public/assets/settings-mcp-servers-view-BiMCy8sH.js +5 -0
  58. package/dist/public/assets/{settings-models-view-CTjnBd74.js → settings-models-view-BkZtGcUP.js} +1 -1
  59. package/dist/public/assets/{settings-rules-view-DiTC-cBE.js → settings-rules-view-TK7LEC-0.js} +3 -3
  60. package/dist/public/assets/settings-skills-view-Bv9Kn55r.js +3 -0
  61. package/dist/public/assets/{settings-slack-view-CiuJZ-9i.js → settings-slack-view-Dy2bFJqU.js} +1 -1
  62. package/dist/public/assets/{settings-slash-commands-view-CnXff39A.js → settings-slash-commands-view-DiR1IyMF.js} +1 -1
  63. package/dist/public/assets/{settings-statistics-view-D8SvAGE_.js → settings-statistics-view-DX1UVeCJ.js} +1 -1
  64. package/dist/public/assets/settings-storage-view-D8tHP8XT.js +1 -0
  65. package/dist/public/assets/{settings-subagents-view-B4HugfzU.js → settings-subagents-view-Bz7jBhbB.js} +2 -2
  66. package/dist/public/assets/{settings-system-prompt-view-DNQKxcFg.js → settings-system-prompt-view-VHGAqfQk.js} +1 -1
  67. package/dist/public/assets/settings-view-QBOhYAyv.js +2 -0
  68. package/dist/public/assets/store-CHF6tOp2.js +9 -0
  69. package/dist/public/assets/{switch-pIBaqatj.js → switch-P5m18oUl.js} +1 -1
  70. package/dist/public/assets/{table-B3fLagUj.js → table-MUx4ZxvS.js} +1 -1
  71. package/dist/public/assets/tasks-view-l00Nc2fV.js +2 -0
  72. package/dist/public/assets/terminal-panel-DHDoOXAH.js +38 -0
  73. package/dist/public/assets/{toggle-group-5tREtjoW.js → toggle-group-DMR7z3pz.js} +1 -1
  74. package/dist/public/assets/{tooltip-B6ziVyTv.js → tooltip-BtJG5fZl.js} +1 -1
  75. package/dist/public/assets/{use-active-dock-panel-instance-BSch6-Fx.js → use-active-dock-panel-instance-cO_DR87G.js} +1 -1
  76. package/dist/public/assets/use-installed-ai-files-CJr_PVcY.js +1 -0
  77. package/dist/public/assets/{use-open-chat-dock-panel-Cr1bQYOH.js → use-open-chat-dock-panel-B31lwcQF.js} +1 -1
  78. package/dist/public/assets/{web-BKpP7kYB.js → web-C7jr0n2X.js} +1 -1
  79. package/dist/public/assets/{web-DaiDQ9WA.js → web-D0nlJHDu.js} +1 -1
  80. package/dist/public/assets/{web-W5CC9Cq4.js → web-DPW3m0cL.js} +1 -1
  81. package/dist/public/assets/{web-CtDn8Ggo.js → web-jJ1krOD-.js} +1 -1
  82. package/dist/public/index.html +24 -24
  83. package/dist/recommended-models.txt +1 -1
  84. package/package.json +4 -3
  85. package/dist/public/assets/api-BMo_Lz8f.js +0 -2
  86. package/dist/public/assets/browser-tab-D_GXZ93G.js +0 -12
  87. package/dist/public/assets/chat-dock-context-BXoAs38w.js +0 -1
  88. package/dist/public/assets/context-menu-Dx5Jy21w.js +0 -1
  89. package/dist/public/assets/create-project-dialog-qbwqSqGU.js +0 -6
  90. package/dist/public/assets/dist-BWuYHVi8.js +0 -2
  91. package/dist/public/assets/explorer-tab-view-D6hsKrXY.js +0 -2
  92. package/dist/public/assets/explorer-tree-BG8ShRwn.js +0 -1
  93. package/dist/public/assets/explorer-view-BZcNnLd9.js +0 -75
  94. package/dist/public/assets/index-DhOeeft5.css +0 -1
  95. package/dist/public/assets/index-DjaVbFDB.js +0 -3386
  96. package/dist/public/assets/is-macos-client-BIb4ZSEa.js +0 -1
  97. package/dist/public/assets/model-list-controls-D86_87E4.js +0 -1
  98. package/dist/public/assets/onboarding-dialog-DlqbPvG0.js +0 -1
  99. package/dist/public/assets/project-model-aliases-view-B4FEze4g.js +0 -1
  100. package/dist/public/assets/providers-list-view-DXvcxXDM.js +0 -1
  101. package/dist/public/assets/pull-request-dialog-BeeTNIN_.js +0 -1
  102. package/dist/public/assets/settings-general-view-CAYlYs3J.js +0 -1
  103. package/dist/public/assets/settings-mcp-servers-view-C6OZHR3K.js +0 -5
  104. package/dist/public/assets/settings-skills-view-DHoSorOw.js +0 -3
  105. package/dist/public/assets/settings-storage-view-CUsa7Lwv.js +0 -1
  106. package/dist/public/assets/settings-view-DoZmXguf.js +0 -2
  107. package/dist/public/assets/store-BaMSfYoJ.js +0 -9
  108. package/dist/public/assets/tasks-view-BaMd8ZM0.js +0 -2
  109. package/dist/public/assets/terminal-panel-BjD6z-3y.js +0 -38
  110. package/dist/public/assets/use-installed-ai-files-E4BAFIPG.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ot as i}from"./dist-BWuYHVi8.js";import{g as a,h as o,t as s,u as c}from"./dist-DIjomljy.js";import{o as l,t as u}from"./utils-CT-Dw22R.js";import{t as d}from"./dist-OixawqbU.js";import{n as f,r as p,t as m}from"./dist-CWnEmdyL.js";var h=t(),g=e(n(),1),_=r(),v=`Toggle`,y=g.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[l,u]=s({prop:n,onChange:i,defaultProp:r??!1,caller:v});return(0,_.jsx)(c.button,{type:`button`,"aria-pressed":l,"data-state":l?`on`:`off`,"data-disabled":e.disabled?``:void 0,...o,ref:t,onClick:a(e.onClick,()=>{e.disabled||u(!l)})})});y.displayName=v;var b=y,x=`ToggleGroup`,[S,C]=o(x,[p]),w=p(),T=g.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,_.jsx)(O,{...r,ref:t});if(n===`multiple`)return(0,_.jsx)(k,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${x}\``)});T.displayName=x;var[E,D]=S(x),O=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??``,onChange:i,caller:x});return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`single`,value:g.useMemo(()=>o?[o]:[],[o]),onItemActivate:c,onItemDeactivate:g.useCallback(()=>c(``),[c]),children:(0,_.jsx)(M,{...a,ref:t})})}),k=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??[],onChange:i,caller:x}),l=g.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=g.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:l,onItemDeactivate:u,children:(0,_.jsx)(M,{...a,ref:t})})});T.displayName=x;var[A,j]=S(x),M=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...l}=e,u=w(n),p=d(o),m={role:`group`,dir:p,...l};return(0,_.jsx)(A,{scope:n,rovingFocus:i,disabled:r,children:i?(0,_.jsx)(f,{asChild:!0,...u,orientation:a,dir:p,loop:s,children:(0,_.jsx)(c.div,{...m,ref:t})}):(0,_.jsx)(c.div,{...m,ref:t})})}),N=`ToggleGroupItem`,P=g.forwardRef((e,t)=>{let n=D(N,e.__scopeToggleGroup),r=j(N,e.__scopeToggleGroup),i=w(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=g.useRef(null);return r.rovingFocus?(0,_.jsx)(m,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,_.jsx)(F,{...s,ref:t})}):(0,_.jsx)(F,{...s,ref:t})});P.displayName=N;var F=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=D(N,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,_.jsx)(y,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),I=T,L=P,R=l(`inline-flex items-center justify-center rounded-md ${i.body} 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`}}),z=g.forwardRef((e,t)=>{let n=(0,h.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(R({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,_.jsx)(b,{ref:t,className:s,...i}),n[9]=i,n[10]=t,n[11]=s,n[12]=c):c=n[12],c});z.displayName=b.displayName;var B=g.createContext({size:`default`,variant:`default`}),V=g.forwardRef((e,t)=>{let n=(0,h.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 d;n[11]!==r||n[12]!==l?(d=(0,_.jsx)(B.Provider,{value:l,children:r}),n[11]=r,n[12]=l,n[13]=d):d=n[13];let f;return n[14]!==a||n[15]!==t||n[16]!==c||n[17]!==d?(f=(0,_.jsx)(I,{ref:t,className:c,...a,children:d}),n[14]=a,n[15]=t,n[16]=c,n[17]=d,n[18]=f):f=n[18],f});V.displayName=I.displayName;var H=g.forwardRef((e,t)=>{let n=(0,h.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=g.useContext(B),l;n[6]!==i||n[7]!==c.size||n[8]!==c.variant||n[9]!==o||n[10]!==s?(l=u(R({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]=l):l=n[11];let d;return n[12]!==r||n[13]!==a||n[14]!==t||n[15]!==l?(d=(0,_.jsx)(L,{ref:t,className:l,...a,children:r}),n[12]=r,n[13]=a,n[14]=t,n[15]=l,n[16]=d):d=n[16],d});H.displayName=L.displayName;export{H as n,V as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ot as i}from"./dist-DjiNKpTV.js";import{g as a,h as o,t as s,u as c}from"./dist-CNOCRPxn.js";import{o as l,t as u}from"./utils-CT-Dw22R.js";import{t as d}from"./dist-OixawqbU.js";import{n as f,r as p,t as m}from"./dist-Bxyh1Ml_.js";var h=t(),g=e(n(),1),_=r(),v=`Toggle`,y=g.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[l,u]=s({prop:n,onChange:i,defaultProp:r??!1,caller:v});return(0,_.jsx)(c.button,{type:`button`,"aria-pressed":l,"data-state":l?`on`:`off`,"data-disabled":e.disabled?``:void 0,...o,ref:t,onClick:a(e.onClick,()=>{e.disabled||u(!l)})})});y.displayName=v;var b=y,x=`ToggleGroup`,[S,C]=o(x,[p]),w=p(),T=g.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,_.jsx)(O,{...r,ref:t});if(n===`multiple`)return(0,_.jsx)(k,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${x}\``)});T.displayName=x;var[E,D]=S(x),O=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??``,onChange:i,caller:x});return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`single`,value:g.useMemo(()=>o?[o]:[],[o]),onItemActivate:c,onItemDeactivate:g.useCallback(()=>c(``),[c]),children:(0,_.jsx)(M,{...a,ref:t})})}),k=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??[],onChange:i,caller:x}),l=g.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=g.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:l,onItemDeactivate:u,children:(0,_.jsx)(M,{...a,ref:t})})});T.displayName=x;var[A,j]=S(x),M=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...l}=e,u=w(n),p=d(o),m={role:`group`,dir:p,...l};return(0,_.jsx)(A,{scope:n,rovingFocus:i,disabled:r,children:i?(0,_.jsx)(f,{asChild:!0,...u,orientation:a,dir:p,loop:s,children:(0,_.jsx)(c.div,{...m,ref:t})}):(0,_.jsx)(c.div,{...m,ref:t})})}),N=`ToggleGroupItem`,P=g.forwardRef((e,t)=>{let n=D(N,e.__scopeToggleGroup),r=j(N,e.__scopeToggleGroup),i=w(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=g.useRef(null);return r.rovingFocus?(0,_.jsx)(m,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,_.jsx)(F,{...s,ref:t})}):(0,_.jsx)(F,{...s,ref:t})});P.displayName=N;var F=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=D(N,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,_.jsx)(y,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),I=T,L=P,R=l(`inline-flex items-center justify-center rounded-md ${i.body} 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`}}),z=g.forwardRef((e,t)=>{let n=(0,h.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(R({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,_.jsx)(b,{ref:t,className:s,...i}),n[9]=i,n[10]=t,n[11]=s,n[12]=c):c=n[12],c});z.displayName=b.displayName;var B=g.createContext({size:`default`,variant:`default`}),V=g.forwardRef((e,t)=>{let n=(0,h.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 d;n[11]!==r||n[12]!==l?(d=(0,_.jsx)(B.Provider,{value:l,children:r}),n[11]=r,n[12]=l,n[13]=d):d=n[13];let f;return n[14]!==a||n[15]!==t||n[16]!==c||n[17]!==d?(f=(0,_.jsx)(I,{ref:t,className:c,...a,children:d}),n[14]=a,n[15]=t,n[16]=c,n[17]=d,n[18]=f):f=n[18],f});V.displayName=I.displayName;var H=g.forwardRef((e,t)=>{let n=(0,h.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=g.useContext(B),l;n[6]!==i||n[7]!==c.size||n[8]!==c.variant||n[9]!==o||n[10]!==s?(l=u(R({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]=l):l=n[11];let d;return n[12]!==r||n[13]!==a||n[14]!==t||n[15]!==l?(d=(0,_.jsx)(L,{ref:t,className:l,...a,children:r}),n[12]=r,n[13]=a,n[14]=t,n[15]=l,n[16]=d):d=n[16],d});H.displayName=L.displayName;export{H as n,V as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{g as i,h as a,i as o,n as s,p as c,r as l,s as u,t as d,u as f}from"./dist-DIjomljy.js";import{c as p,t as m}from"./utils-CT-Dw22R.js";import{a as h,i as g,n as _,r as v,t as y}from"./dist-DiMgghKn.js";var b=t(),x=e(n(),1),S=r(),C=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),w=`VisuallyHidden`,T=x.forwardRef((e,t)=>(0,S.jsx)(f.span,{...e,ref:t,style:{...C,...e.style}}));T.displayName=w;var E=T,[D,ee]=a(`Tooltip`,[h]),O=h(),k=`TooltipProvider`,A=700,j=`tooltip.open`,[te,M]=D(k),N=e=>{let{__scopeTooltip:t,delayDuration:n=A,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(te,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};N.displayName=k;var P=`Tooltip`,[F,I]=D(P),L=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:s,delayDuration:c}=e,l=M(P,e.__scopeTooltip),u=O(t),[f,p]=x.useState(null),m=o(),h=x.useRef(0),_=s??l.disableHoverableContent,v=c??l.delayDuration,y=x.useRef(!1),[b,C]=d({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(j))):l.onClose(),a?.(e)},caller:P}),w=x.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),T=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,C(!0)},[C]),E=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,C(!1)},[C]),D=x.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,C(!0),h.current=0},v)},[v,C]);return x.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]),(0,S.jsx)(g,{...u,children:(0,S.jsx)(F,{scope:t,contentId:m,open:b,stateAttribute:w,trigger:f,onTriggerChange:p,onTriggerEnter:x.useCallback(()=>{l.isOpenDelayedRef.current?D():T()},[l.isOpenDelayedRef,D,T]),onTriggerLeave:x.useCallback(()=>{_?E():(window.clearTimeout(h.current),h.current=0)},[E,_]),onOpen:T,onClose:E,disableHoverableContent:_,children:n})})};L.displayName=P;var R=`TooltipTrigger`,z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=I(R,n),o=M(R,n),s=O(n),c=p(t,x.useRef(null),a.onTriggerChange),l=x.useRef(!1),u=x.useRef(!1),d=x.useCallback(()=>l.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,S.jsx)(y,{asChild:!0,...s,children:(0,S.jsx)(f.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:i(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:i(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:i(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:i(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:i(e.onBlur,a.onClose),onClick:i(e.onClick,a.onClose)})})});z.displayName=R;var B=`TooltipPortal`,[ne,re]=D(B,{forceMount:void 0}),V=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=I(B,t);return(0,S.jsx)(ne,{scope:t,forceMount:n,children:(0,S.jsx)(s,{present:n||a.open,children:(0,S.jsx)(l,{asChild:!0,container:i,children:r})})})};V.displayName=B;var H=`TooltipContent`,U=x.forwardRef((e,t)=>{let n=re(H,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=I(H,e.__scopeTooltip);return(0,S.jsx)(s,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(J,{side:i,...a,ref:t}):(0,S.jsx)(W,{side:i,...a,ref:t})})}),W=x.forwardRef((e,t)=>{let n=I(H,e.__scopeTooltip),r=M(H,e.__scopeTooltip),i=x.useRef(null),a=p(t,i),[o,s]=x.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=x.useCallback(()=>{s(null),d(!1)},[d]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=ae(r,ie(r,n.getBoundingClientRect())),a=oe(t.getBoundingClientRect());s(ce([...i,...a])),d(!0)},[d]);return x.useEffect(()=>()=>f(),[f]),x.useEffect(()=>{if(c&&u){let e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,f]),x.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!se(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,S.jsx)(J,{...e,ref:a})}),[G,K]=D(P,{isInside:!1}),q=c(`TooltipContent`),J=x.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=I(H,n),l=O(n),{onClose:d}=c;return x.useEffect(()=>(document.addEventListener(j,d),()=>document.removeEventListener(j,d)),[d]),x.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,d]),(0,S.jsx)(u,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,S.jsxs)(v,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,S.jsx)(q,{children:r}),(0,S.jsx)(G,{scope:n,isInside:!0,children:(0,S.jsx)(E,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});U.displayName=H;var Y=`TooltipArrow`,X=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=O(n);return K(Y,n).isInside?null:(0,S.jsx)(_,{...i,...r,ref:t})});X.displayName=Y;function ie(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function ae(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function oe(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function se(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function ce(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),le(t)}function le(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ue=N,de=L,fe=z,Z=V,Q=U,pe=ue,me=de,he=fe,$=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,sideOffset:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?4:a,s;n[4]===r?s=n[5]:(s=m(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-base text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[4]=r,n[5]=s);let c;return n[6]!==i||n[7]!==t||n[8]!==o||n[9]!==s?(c=(0,S.jsx)(Z,{children:(0,S.jsx)(Q,{ref:t,sideOffset:o,className:s,...i})}),n[6]=i,n[7]=t,n[8]=o,n[9]=s,n[10]=c):c=n[10],c});$.displayName=Q.displayName;export{C as a,he as i,$ as n,T as o,pe as r,me as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{g as i,h as a,i as o,n as s,p as c,r as l,s as u,t as d,u as f}from"./dist-CNOCRPxn.js";import{c as p,t as m}from"./utils-CT-Dw22R.js";import{a as h,i as g,n as _,r as v,t as y}from"./dist-Cda_ffeR.js";var b=t(),x=e(n(),1),S=r(),C=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),w=`VisuallyHidden`,T=x.forwardRef((e,t)=>(0,S.jsx)(f.span,{...e,ref:t,style:{...C,...e.style}}));T.displayName=w;var E=T,[D,ee]=a(`Tooltip`,[h]),O=h(),k=`TooltipProvider`,A=700,j=`tooltip.open`,[te,M]=D(k),N=e=>{let{__scopeTooltip:t,delayDuration:n=A,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(te,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};N.displayName=k;var P=`Tooltip`,[F,I]=D(P),L=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:s,delayDuration:c}=e,l=M(P,e.__scopeTooltip),u=O(t),[f,p]=x.useState(null),m=o(),h=x.useRef(0),_=s??l.disableHoverableContent,v=c??l.delayDuration,y=x.useRef(!1),[b,C]=d({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(j))):l.onClose(),a?.(e)},caller:P}),w=x.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),T=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,C(!0)},[C]),E=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,C(!1)},[C]),D=x.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,C(!0),h.current=0},v)},[v,C]);return x.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]),(0,S.jsx)(g,{...u,children:(0,S.jsx)(F,{scope:t,contentId:m,open:b,stateAttribute:w,trigger:f,onTriggerChange:p,onTriggerEnter:x.useCallback(()=>{l.isOpenDelayedRef.current?D():T()},[l.isOpenDelayedRef,D,T]),onTriggerLeave:x.useCallback(()=>{_?E():(window.clearTimeout(h.current),h.current=0)},[E,_]),onOpen:T,onClose:E,disableHoverableContent:_,children:n})})};L.displayName=P;var R=`TooltipTrigger`,z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=I(R,n),o=M(R,n),s=O(n),c=p(t,x.useRef(null),a.onTriggerChange),l=x.useRef(!1),u=x.useRef(!1),d=x.useCallback(()=>l.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,S.jsx)(y,{asChild:!0,...s,children:(0,S.jsx)(f.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:i(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:i(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:i(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:i(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:i(e.onBlur,a.onClose),onClick:i(e.onClick,a.onClose)})})});z.displayName=R;var B=`TooltipPortal`,[ne,re]=D(B,{forceMount:void 0}),V=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=I(B,t);return(0,S.jsx)(ne,{scope:t,forceMount:n,children:(0,S.jsx)(s,{present:n||a.open,children:(0,S.jsx)(l,{asChild:!0,container:i,children:r})})})};V.displayName=B;var H=`TooltipContent`,U=x.forwardRef((e,t)=>{let n=re(H,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=I(H,e.__scopeTooltip);return(0,S.jsx)(s,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(J,{side:i,...a,ref:t}):(0,S.jsx)(W,{side:i,...a,ref:t})})}),W=x.forwardRef((e,t)=>{let n=I(H,e.__scopeTooltip),r=M(H,e.__scopeTooltip),i=x.useRef(null),a=p(t,i),[o,s]=x.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=x.useCallback(()=>{s(null),d(!1)},[d]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=ae(r,ie(r,n.getBoundingClientRect())),a=oe(t.getBoundingClientRect());s(ce([...i,...a])),d(!0)},[d]);return x.useEffect(()=>()=>f(),[f]),x.useEffect(()=>{if(c&&u){let e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,f]),x.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!se(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,S.jsx)(J,{...e,ref:a})}),[G,K]=D(P,{isInside:!1}),q=c(`TooltipContent`),J=x.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=I(H,n),l=O(n),{onClose:d}=c;return x.useEffect(()=>(document.addEventListener(j,d),()=>document.removeEventListener(j,d)),[d]),x.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,d]),(0,S.jsx)(u,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,S.jsxs)(v,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,S.jsx)(q,{children:r}),(0,S.jsx)(G,{scope:n,isInside:!0,children:(0,S.jsx)(E,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});U.displayName=H;var Y=`TooltipArrow`,X=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=O(n);return K(Y,n).isInside?null:(0,S.jsx)(_,{...i,...r,ref:t})});X.displayName=Y;function ie(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function ae(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function oe(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function se(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function ce(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),le(t)}function le(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ue=N,de=L,fe=z,Z=V,Q=U,pe=ue,me=de,he=fe,$=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,sideOffset:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?4:a,s;n[4]===r?s=n[5]:(s=m(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-base text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[4]=r,n[5]=s);let c;return n[6]!==i||n[7]!==t||n[8]!==o||n[9]!==s?(c=(0,S.jsx)(Z,{children:(0,S.jsx)(Q,{ref:t,sideOffset:o,className:s,...i})}),n[6]=i,n[7]=t,n[8]=o,n[9]=s,n[10]=c):c=n[10],c});$.displayName=Q.displayName;export{C as a,he as i,$ as n,T as o,pe as r,me as t};
@@ -1 +1 @@
1
- import{n as e}from"./react-vendor-Ee0-5T4I.js";import{n as t}from"./chat-dock-context-BXoAs38w.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
1
+ import{n as e}from"./react-vendor-Ee0-5T4I.js";import{n as t}from"./chat-dock-context-8_5G30KG.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t}from"./react-vendor-Ee0-5T4I.js";import{Q as n,n as r,r as i}from"./store-CHF6tOp2.js";import{F as a,Vt as o,bt as s,j as c}from"./api-D1GxdEEp.js";import{t as l}from"./use-toast-xpb5jNtN.js";import{n as u}from"./explorer-tab-context-BxUVwWQQ.js";import{t as d}from"./use-open-chat-dock-panel-B31lwcQF.js";import{et as f}from"./index-BOB3ZUQs.js";var p=e(t(),1);function m({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:m=``,sortByName:h=!1,removedToastTitle:g}){let _=r(),v=i(e=>e.projects),y=i(e=>e.selectedProjectId),b=i(e=>e.selectedThreadId),{handleSelectThread:x}=f(),{openChatDockPanel:S}=d(),{setPendingExplorerPath:C,triggerExplorerRefresh:w,setExplorerClearPath:T}=u(),[E,D]=(0,p.useState)([]),[O,k]=(0,p.useState)(!0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(new Set),I=(0,p.useCallback)(async()=>{if(!y){k(!1);return}k(!0);try{let n=e(await s(y));if(b)try{let t=e(await o(b)),r=new Set(n.map(e=>e.path));for(let e of t)r.has(e.path)||n.push(e)}catch{}h&&(n=[...n].sort((e,t)=>e.name.localeCompare(t.name))),D(n),F(new Set(n.map(e=>`${e.path}${t}`)))}catch{D([]),F(new Set)}finally{k(!1)}},[y,b,e,t,h]);return(0,p.useLayoutEffect)(()=>{y&&k(!0)},[y,b]),(0,p.useEffect)(()=>{I()},[I]),{selectedProjectId:y,selectedThreadId:b,items:E,loading:O,deleteConfirm:A,setDeleteConfirm:j,deleting:M,installedFilePaths:P,setInstalledFilePaths:F,loadItems:I,handleDelete:(0,p.useCallback)(async e=>{if(!y)return;let n=e.name,r=e.path;N(!0);try{try{await c(y,r)}catch{if(b)await a(b,r);else throw Error(`No thread selected to delete from`)}T(r),w(),F(e=>{let n=new Set(e);return n.delete(`${r}${t}`),n}),l({title:g,description:n}),j(null),await I()}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{N(!1)}},[y,b,I,w,T,t,g]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!y)return;let t=v.find(e=>e.projectId===y);if(t){if(_({type:n.OpenProjectPanel,projectId:y}),!t.threads.some(e=>e.threadId===b)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&x(y,e.threadId)}C(`${e}${m}`),S(`explorer`)}},[y,b,v,_,x,C,S,m]),triggerExplorerRefresh:w}}export{m as t};
@@ -1 +1 @@
1
- import{n as e}from"./react-vendor-Ee0-5T4I.js";import{o as t,s as n}from"./chunk-QFMPRPBF-COsSkB7x.js";import{I as r}from"./dist-BWuYHVi8.js";import{r as i}from"./store-BaMSfYoJ.js";import{n as a}from"./explorer-tab-context-BxUVwWQQ.js";import{n as o}from"./chat-dock-context-BXoAs38w.js";import{n as s}from"./main-tab-context-Byl1LybL.js";var c=e(),l=`/review`,u=`/settings`;function d(e){return e.startsWith(`/settings`)||e===`/review`}function f(){let e=(0,c.c)(14),{windows:l,addWindow:u,revealWindow:f,isPrimaryChatOpen:m}=o(),{setActiveMainTab:h,triggerReviewRefresh:g,triggerTasksRefresh:_}=s(),{triggerExplorerRefresh:v}=a(),y=i(p),b=n(),x=t(),S;e[0]!==u||e[1]!==m||e[2]!==x.pathname||e[3]!==b||e[4]!==f||e[5]!==y||e[6]!==h||e[7]!==v||e[8]!==g||e[9]!==_||e[10]!==l?(S=(e,t)=>{let n=t===void 0?{}:t,i=n.reuseExisting??!0,a=n.navigateToChat??!0;if(h(`chat`),a&&d(x.pathname)&&b(`/`),e===`explorer`&&v(),e===`review`&&g(y),e===`tasks`&&_(),e===`chat`)return!m||i?(f(r),r):u(e);if(i){let t=l.find(t=>t.panelId===e);if(t)return f(t.id),t.id}return u(e)},e[0]=u,e[1]=m,e[2]=x.pathname,e[3]=b,e[4]=f,e[5]=y,e[6]=h,e[7]=v,e[8]=g,e[9]=_,e[10]=l,e[11]=S):S=e[11];let C=S,w;return e[12]===C?w=e[13]:(w={openChatDockPanel:C},e[12]=C,e[13]=w),w}function p(e){return e.selectedThreadId}export{d as i,l as n,u as r,f as t};
1
+ import{n as e}from"./react-vendor-Ee0-5T4I.js";import{o as t,s as n}from"./chunk-QFMPRPBF-COsSkB7x.js";import{I as r}from"./dist-DjiNKpTV.js";import{r as i}from"./store-CHF6tOp2.js";import{n as a}from"./explorer-tab-context-BxUVwWQQ.js";import{n as o}from"./chat-dock-context-8_5G30KG.js";import{n as s}from"./main-tab-context-Byl1LybL.js";var c=e(),l=`/review`,u=`/settings`;function d(e){return e.startsWith(`/settings`)||e===`/review`}function f(){let e=(0,c.c)(14),{windows:l,addWindow:u,revealWindow:f,isPrimaryChatOpen:m}=o(),{setActiveMainTab:h,triggerReviewRefresh:g,triggerTasksRefresh:_}=s(),{triggerExplorerRefresh:v}=a(),y=i(p),b=n(),x=t(),S;e[0]!==u||e[1]!==m||e[2]!==x.pathname||e[3]!==b||e[4]!==f||e[5]!==y||e[6]!==h||e[7]!==v||e[8]!==g||e[9]!==_||e[10]!==l?(S=(e,t)=>{let n=t===void 0?{}:t,i=n.reuseExisting??!0,a=n.navigateToChat??!0;if(h(`chat`),a&&d(x.pathname)&&b(`/`),e===`explorer`&&v(),e===`review`&&g(y),e===`tasks`&&_(),e===`chat`)return!m||i?(f(r),r):u(e);if(i){let t=l.find(t=>t.panelId===e);if(t)return f(t.id),t.id}return u(e)},e[0]=u,e[1]=m,e[2]=x.pathname,e[3]=b,e[4]=f,e[5]=y,e[6]=h,e[7]=v,e[8]=g,e[9]=_,e[10]=l,e[11]=S):S=e[11];let C=S,w;return e[12]===C?w=e[13]:(w={openChatDockPanel:C},e[12]=C,e[13]=w),w}function p(e){return e.selectedThreadId}export{d as i,l as n,u as r,f as t};
@@ -1 +1 @@
1
- import{on as e}from"./index-DjaVbFDB.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
1
+ import{cn as e}from"./index-BOB3ZUQs.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
@@ -1 +1 @@
1
- import{Q as e,Z as t,on as n}from"./index-DjaVbFDB.js";var r=class extends n{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=t.Heavy){return e===t.Medium?[43]:e===t.Light?[20]:[61]}patternForNotification(t=e.Success){return t===e.Warning?[30,40,30,50,60]:t===e.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
1
+ import{$ as e,Q as t,cn as n}from"./index-BOB3ZUQs.js";var r=class extends n{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=t.Heavy){return e===t.Medium?[43]:e===t.Light?[20]:[61]}patternForNotification(t=e.Success){return t===e.Warning?[30,40,30,50,60]:t===e.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
@@ -1 +1 @@
1
- import{g as e,h as t,m as n,on as r}from"./index-DjaVbFDB.js";var i=class extends r{async stopAndHideScanner(){console.log(window.OSBarcodeWebScanner),window.OSBarcodeWebScanner&&(await window.OSBarcodeWebScanner.stop(),window.OSBarcodeWebScanner=null),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`none`}buildScannerElement(){if(document.getElementById(`cap-os-barcode-scanner-container`)){document.getElementById(`cap-os-barcode-scanner-container`).className=`scanner-container-display`;return}let e=document.body.appendChild(document.createElement(`div`));e.id=`cap-os-barcode-scanner-container`;let t=document.createElement(`div`);t.id=`cap-os-barcode-scanner-container-dialog`,t.className=`scanner-dialog`;let n=document.createElement(`div`);n.className=`scanner-dialog-inner`;let r=document.createElement(`span`);r.id=`cap-os-barcode-scanner-close-button`,r.className=`close-button`,r.innerHTML=`&times;`,n.appendChild(r);let i=document.createElement(`p`);i.innerHTML=`&nbsp;`,n.appendChild(i);let a=document.createElement(`div`);a.className=`scanner-container-full-width`,a.id=`cap-os-barcode-scanner-container-scanner`,n.appendChild(a),t.appendChild(n),e.appendChild(t)}async scanBarcode(r){return this.buildScannerElement(),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`block`,new Promise((i,a)=>{let o={facingMode:r.cameraDirection===1?`environment`:`user`,hasScannerButton:!1,scanButton:r.scanButton===void 0?!1:r.scanButton,showScanLine:!1,scanInstructions:r.scanInstructions?r.scanInstructions:``,orientation:r.scanOrientation?r.scanOrientation:n.PORTRAIT,showCameraSelection:r.web?.showCameraSelection?r.web.showCameraSelection:!1,typeHint:r.hint===17?void 0:r.hint,scannerFPS:r.web?.scannerFPS?r.web.scannerFPS:50},s=!1,c=document.getElementById(`cap-os-barcode-scanner-close-button`);c&&(c.onclick=async()=>{s||(s=!0,await this.stopAndHideScanner(),a(Error(`Couldn’t scan because the process was cancelled.`)))});let l=document.getElementById(`cap-os-barcode-scanner-container-scanner`);if(!l)throw Error(`Scanner Element is required for web`);window.OSBarcodeWebScanner=new e(l.id,{formatsToSupport:o.typeHint===void 0?void 0:[o.typeHint],verbose:void 0});let u={fps:o.scannerFPS,qrbox:l.getBoundingClientRect().width*(9/16)-10,aspectRatio:16/9,videoConstraints:{focusMode:`continuous`,height:{min:576,ideal:1920},deviceId:void 0,facingMode:o.facingMode}};window.OSBarcodeWebScanner.start({facingMode:o.facingMode},u,(e,n)=>{this.stopAndHideScanner(),i({ScanResult:e,format:n.result.format?.format??t.ALL})},e=>{[`NotFoundException`,`No barcode or QR code detected`,`No MultiFormat Readers were able to detect the code`].find(t=>e.indexOf(t)!==-1)||(this.stopAndHideScanner(),console.error(`[Scanner Web Error] ${e}`),a(e))})})}};export{i as CapacitorBarcodeScannerWeb};
1
+ import{cn as e,g as t,h as n,m as r}from"./index-BOB3ZUQs.js";var i=class extends e{async stopAndHideScanner(){console.log(window.OSBarcodeWebScanner),window.OSBarcodeWebScanner&&(await window.OSBarcodeWebScanner.stop(),window.OSBarcodeWebScanner=null),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`none`}buildScannerElement(){if(document.getElementById(`cap-os-barcode-scanner-container`)){document.getElementById(`cap-os-barcode-scanner-container`).className=`scanner-container-display`;return}let e=document.body.appendChild(document.createElement(`div`));e.id=`cap-os-barcode-scanner-container`;let t=document.createElement(`div`);t.id=`cap-os-barcode-scanner-container-dialog`,t.className=`scanner-dialog`;let n=document.createElement(`div`);n.className=`scanner-dialog-inner`;let r=document.createElement(`span`);r.id=`cap-os-barcode-scanner-close-button`,r.className=`close-button`,r.innerHTML=`&times;`,n.appendChild(r);let i=document.createElement(`p`);i.innerHTML=`&nbsp;`,n.appendChild(i);let a=document.createElement(`div`);a.className=`scanner-container-full-width`,a.id=`cap-os-barcode-scanner-container-scanner`,n.appendChild(a),t.appendChild(n),e.appendChild(t)}async scanBarcode(e){return this.buildScannerElement(),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`block`,new Promise((i,a)=>{let o={facingMode:e.cameraDirection===1?`environment`:`user`,hasScannerButton:!1,scanButton:e.scanButton===void 0?!1:e.scanButton,showScanLine:!1,scanInstructions:e.scanInstructions?e.scanInstructions:``,orientation:e.scanOrientation?e.scanOrientation:r.PORTRAIT,showCameraSelection:e.web?.showCameraSelection?e.web.showCameraSelection:!1,typeHint:e.hint===17?void 0:e.hint,scannerFPS:e.web?.scannerFPS?e.web.scannerFPS:50},s=!1,c=document.getElementById(`cap-os-barcode-scanner-close-button`);c&&(c.onclick=async()=>{s||(s=!0,await this.stopAndHideScanner(),a(Error(`Couldn’t scan because the process was cancelled.`)))});let l=document.getElementById(`cap-os-barcode-scanner-container-scanner`);if(!l)throw Error(`Scanner Element is required for web`);window.OSBarcodeWebScanner=new t(l.id,{formatsToSupport:o.typeHint===void 0?void 0:[o.typeHint],verbose:void 0});let u={fps:o.scannerFPS,qrbox:l.getBoundingClientRect().width*(9/16)-10,aspectRatio:16/9,videoConstraints:{focusMode:`continuous`,height:{min:576,ideal:1920},deviceId:void 0,facingMode:o.facingMode}};window.OSBarcodeWebScanner.start({facingMode:o.facingMode},u,(e,t)=>{this.stopAndHideScanner(),i({ScanResult:e,format:t.result.format?.format??n.ALL})},e=>{[`NotFoundException`,`No barcode or QR code detected`,`No MultiFormat Readers were able to detect the code`].find(t=>e.indexOf(t)!==-1)||(this.stopAndHideScanner(),console.error(`[Scanner Web Error] ${e}`),a(e))})})}};export{i as CapacitorBarcodeScannerWeb};
@@ -1 +1 @@
1
- import{on as e}from"./index-DjaVbFDB.js";var t=class extends e{constructor(){super(...arguments),this.wakeLock=null,this._isSupported=typeof navigator<`u`&&`wakeLock`in navigator,this.handleVisibilityChange=()=>{document.visibilityState===`visible`&&this.keepAwake()}}async keepAwake(){this._isSupported||this.throwUnsupportedError(),this.wakeLock&&await this.allowSleep(),this.wakeLock=await navigator.wakeLock.request(`screen`),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange)}async allowSleep(){var e;this._isSupported||this.throwUnsupportedError(),(e=this.wakeLock)==null||e.release(),this.wakeLock=null,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange)}async isSupported(){return{isSupported:this._isSupported}}async isKeptAwake(){return this._isSupported||this.throwUnsupportedError(),{isKeptAwake:!!this.wakeLock}}throwUnsupportedError(){throw this.unavailable(`Screen Wake Lock API not available in this browser.`)}};export{t as KeepAwakeWeb};
1
+ import{cn as e}from"./index-BOB3ZUQs.js";var t=class extends e{constructor(){super(...arguments),this.wakeLock=null,this._isSupported=typeof navigator<`u`&&`wakeLock`in navigator,this.handleVisibilityChange=()=>{document.visibilityState===`visible`&&this.keepAwake()}}async keepAwake(){this._isSupported||this.throwUnsupportedError(),this.wakeLock&&await this.allowSleep(),this.wakeLock=await navigator.wakeLock.request(`screen`),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange)}async allowSleep(){var e;this._isSupported||this.throwUnsupportedError(),(e=this.wakeLock)==null||e.release(),this.wakeLock=null,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange)}async isSupported(){return{isSupported:this._isSupported}}async isKeptAwake(){return this._isSupported||this.throwUnsupportedError(),{isKeptAwake:!!this.wakeLock}}throwUnsupportedError(){throw this.unavailable(`Screen Wake Lock API not available in this browser.`)}};export{t as KeepAwakeWeb};
@@ -22,47 +22,47 @@
22
22
  <meta name="apple-mobile-web-app-title" content="Tarsk" />
23
23
 
24
24
  <title>Tarsk</title>
25
- <script type="module" crossorigin src="/assets/index-DjaVbFDB.js"></script>
25
+ <script type="module" crossorigin src="/assets/index-BOB3ZUQs.js"></script>
26
26
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
27
27
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-Ee0-5T4I.js">
28
28
  <link rel="modulepreload" crossorigin href="/assets/utils-CT-Dw22R.js">
29
- <link rel="modulepreload" crossorigin href="/assets/dist-BWuYHVi8.js">
30
- <link rel="modulepreload" crossorigin href="/assets/button-DeNw35VZ.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/dist-DjiNKpTV.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/button-B6HDsfd5.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/browser-overlay-block-CiDtkfup.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/use-browser-overlay-block-DyprQSIG.js">
33
- <link rel="modulepreload" crossorigin href="/assets/dist-DIjomljy.js">
34
- <link rel="modulepreload" crossorigin href="/assets/Combination-lwI_j-mU.js">
35
- <link rel="modulepreload" crossorigin href="/assets/dist-BZvmHCxP.js">
36
- <link rel="modulepreload" crossorigin href="/assets/dialog-Do98zzAW.js">
37
- <link rel="modulepreload" crossorigin href="/assets/dist-mdooLpmq.js">
38
- <link rel="modulepreload" crossorigin href="/assets/dist-DiMgghKn.js">
39
- <link rel="modulepreload" crossorigin href="/assets/tooltip-B6ziVyTv.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/dist-CNOCRPxn.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/Combination-BdvBzSm4.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/dist-CFXDhuA_.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/dialog--0foS3aw.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/dist-rO95BjzU.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/dist-Cda_ffeR.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/tooltip-BtJG5fZl.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/use-toast-xpb5jNtN.js">
41
41
  <link rel="modulepreload" crossorigin href="/assets/explorer-tab-context-BxUVwWQQ.js">
42
- <link rel="modulepreload" crossorigin href="/assets/api-BMo_Lz8f.js">
43
- <link rel="modulepreload" crossorigin href="/assets/store-BaMSfYoJ.js">
44
- <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-BXoAs38w.js">
42
+ <link rel="modulepreload" crossorigin href="/assets/api-D1GxdEEp.js">
43
+ <link rel="modulepreload" crossorigin href="/assets/store-CHF6tOp2.js">
44
+ <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-8_5G30KG.js">
45
45
  <link rel="modulepreload" crossorigin href="/assets/main-tab-context-Byl1LybL.js">
46
46
  <link rel="modulepreload" crossorigin href="/assets/chunk-QFMPRPBF-COsSkB7x.js">
47
- <link rel="modulepreload" crossorigin href="/assets/use-open-chat-dock-panel-Cr1bQYOH.js">
47
+ <link rel="modulepreload" crossorigin href="/assets/use-open-chat-dock-panel-B31lwcQF.js">
48
48
  <link rel="modulepreload" crossorigin href="/assets/query-keys-5QPW6Dv-.js">
49
- <link rel="modulepreload" crossorigin href="/assets/markdown-renderer-qLede1zH.js">
50
- <link rel="modulepreload" crossorigin href="/assets/alert-dialog-Cb1PEgra.js">
51
- <link rel="modulepreload" crossorigin href="/assets/async-loading-fallback-B_JNgWJR.js">
49
+ <link rel="modulepreload" crossorigin href="/assets/markdown-renderer-BkKibNMs.js">
50
+ <link rel="modulepreload" crossorigin href="/assets/alert-dialog-DAHkynVZ.js">
51
+ <link rel="modulepreload" crossorigin href="/assets/async-loading-fallback-D2X0o4Qa.js">
52
52
  <link rel="modulepreload" crossorigin href="/assets/dist-OixawqbU.js">
53
- <link rel="modulepreload" crossorigin href="/assets/scroll-area-nbNFO91g.js">
53
+ <link rel="modulepreload" crossorigin href="/assets/scroll-area-BMQFeWmq.js">
54
54
  <link rel="modulepreload" crossorigin href="/assets/suspense-resource-DnYnmTbs.js">
55
55
  <link rel="modulepreload" crossorigin href="/assets/use-suspense-resource-Dkz6ddFN.js">
56
56
  <link rel="modulepreload" crossorigin href="/assets/ndjson-stream-DeGpE5o5.js">
57
- <link rel="modulepreload" crossorigin href="/assets/create-project-workspace-BcIx6FNf.js">
57
+ <link rel="modulepreload" crossorigin href="/assets/create-project-workspace-ClILToZd.js">
58
58
  <link rel="modulepreload" crossorigin href="/assets/scenic-chrome-CbN3vum7.js">
59
- <link rel="modulepreload" crossorigin href="/assets/dist-CWq9XRXF.js">
60
- <link rel="modulepreload" crossorigin href="/assets/dist-CWnEmdyL.js">
61
- <link rel="modulepreload" crossorigin href="/assets/dist-DjKXDRW7.js">
62
- <link rel="modulepreload" crossorigin href="/assets/dist-CjhvxqFU.js">
59
+ <link rel="modulepreload" crossorigin href="/assets/dist-CkQILg8A.js">
60
+ <link rel="modulepreload" crossorigin href="/assets/dist-Bxyh1Ml_.js">
61
+ <link rel="modulepreload" crossorigin href="/assets/dist-CqGsum35.js">
62
+ <link rel="modulepreload" crossorigin href="/assets/dist-eMdiO0P3.js">
63
63
  <link rel="modulepreload" crossorigin href="/assets/dist-CSssbxDI.js">
64
64
  <link rel="modulepreload" crossorigin href="/assets/useInfiniteQuery-DUeUxDcu.js">
65
- <link rel="stylesheet" crossorigin href="/assets/index-DhOeeft5.css">
65
+ <link rel="stylesheet" crossorigin href="/assets/index-BdGMz8sL.css">
66
66
  </head>
67
67
  <body class="font-sans antialiased">
68
68
  <div id="root"></div>
@@ -10,5 +10,5 @@
10
10
  "Claude Fable 5.1",
11
11
  "Claude Opus 5",
12
12
  "GPT 5.6 Sol",
13
- "Grok 4.6"
13
+ "GPT 6 Astra"
14
14
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.5.73",
3
+ "version": "0.5.74",
4
4
  "description": "CLI for Tarsk - Project Threads Manager",
5
5
  "keywords": [
6
6
  "cli",
@@ -46,8 +46,8 @@
46
46
  "website": "cd ../site && bunx serve . -l 8080"
47
47
  },
48
48
  "dependencies": {
49
- "@earendil-works/pi-agent-core": "0.83.0",
50
- "@earendil-works/pi-ai": "0.83.0",
49
+ "@earendil-works/pi-agent-core": "0.85.1",
50
+ "@earendil-works/pi-ai": "0.85.1",
51
51
  "@hono/node-server": "1.19.13",
52
52
  "@hono/node-ws": "1.3.1",
53
53
  "@libsql/client": "0.17.2",
@@ -69,6 +69,7 @@
69
69
  "devDependencies": {
70
70
  "@tarsk/shared": "workspace:*",
71
71
  "@types/node": "20.19.39",
72
+ "@vitest/coverage-v8": "4.1.8",
72
73
  "electrobun": "1.18.1",
73
74
  "esbuild": "0.28.0",
74
75
  "tsx": "^4.7.0",
@@ -1,2 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{D as t,Mt as n,S as r,ct as i,m as a,ut as o}from"./dist-BWuYHVi8.js";var s=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.CREATE_BRANCH_AFTER_PR=`createBranchAfterPR`,e.CREATE_WORKSPACE_AFTER_PR=`createWorkspaceAfterPR`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.NEW_CHAT_ON_NEW_BRANCH=`newChatOnNewBranch`,e.SELECTED_MODEL_PREFIX=`selected-model-`,e.SCROLL_POSITION_PREFIX=`scroll-position-`,e.FONT_SCALE=`tarsk.general.fontScale`,e.FROSTED_PANEL_OPACITY=`tarsk.general.frostedPanelOpacity`,e.IMAGE_BACKGROUND=`tarsk.general.imageBackground`,e.WALLPAPER_MODE=`tarsk.general.wallpaperMode`,e.WALLPAPER_COLOR=`tarsk.general.wallpaperColor`,e.BRAND_COLOR=`tarsk.general.brandColor`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.SERVER_URL=`tarsk.server.url`,e.SERVER_BIND_MODE=`tarsk.general.serverBindMode`,e.HISTORY_COLUMNS=`tarsk.settings.historyColumns`,e}({}),c=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e.BASH_COMMAND_DURATIONS=`tarsk.bash-command-durations`,e.SKILL_CATALOG_PREFIX=`tarsk.skills.catalog.`,e.SKILL_SOURCE_SELECTION=`tarsk.skills.selectedSource`,e}({});function l(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function u(e,t){typeof localStorage>`u`||localStorage.setItem(e,t)}function d(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function f(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function p(e=`npm`){return l(`tarsk.create-project.packageManager`)??e}function ee(e){u(`tarsk.create-project.packageManager`,e)}function m(e=`pull-request`){return l(`tarsk.create-project.commitMethod`)??e}function h(e){u(`tarsk.create-project.commitMethod`,e)}function g(e=``){return l(`tarsk.create-project.templateId`)??e}function _(e){u(`tarsk.create-project.templateId`,e)}function te(e=!1){let t=l(`autoGenerateCommitMessage`);return t===null?e:t===`true`}function ne(e){u(`autoGenerateCommitMessage`,e.toString())}function re(e=!1){let t=l(`createBranchAfterPR`);return t===null?e:t===`true`}function ie(e){u(`createBranchAfterPR`,e.toString())}function ae(e=!1){let t=l(`createWorkspaceAfterPR`);return t===null?e:t===`true`}function oe(e){u(`createWorkspaceAfterPR`,e.toString())}function se(e=!1){let t=l(`privateRepositoryDefault`);return t===null?e:t===`true`}function ce(e){u(`privateRepositoryDefault`,e.toString())}function le(e=!1){let t=l(`newChatOnNewBranch`);return t===null?e:t===`true`}function ue(e){u(`newChatOnNewBranch`,e.toString())}function de(e){let t=l(`scroll-position-`+e),n=t===null?null:Number(t);return n!==null&&Number.isFinite(n)?n:null}function fe(e,t){u(`scroll-position-`+e,String(t))}function pe(){let e=d(`chat_message_history`);return e?JSON.parse(e):[]}function me(e){let t=pe();e.trim()&&t[t.length-1]!==e&&(t.push(e),f(`chat_message_history`,JSON.stringify(t)))}function he(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function ge(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function _e(e=`default`){return he(`tarsk.skills.selectedSource`)??e}function ve(e){ge(`tarsk.skills.selectedSource`,e)}function v(e){return`tarsk.skills.catalog.${e}`}function ye(e){let t=he(v(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function be(e,t){ge(v(e),JSON.stringify(t))}function xe(e){typeof sessionStorage>`u`||sessionStorage.removeItem(v(e))}var Se=`tarsk.skills.customSources`;function Ce(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(Se);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function we(){typeof localStorage>`u`||localStorage.removeItem(Se)}function Te(e=100){let t=l(`tarsk.general.fontScale`);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function Ee(e){u(`tarsk.general.fontScale`,String(e))}function De(e=80){let t=l(`tarsk.general.frostedPanelOpacity`);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=60&&e<=100)return e}return e}function Oe(e){u(`tarsk.general.frostedPanelOpacity`,String(e))}var ke=new Set([`image`,`background`,`color`]),y=/^#[0-9a-fA-F]{6}$/,b=`#1f2937`,x=`#82c309`;function Ae(e){return e!==null&&ke.has(e)}function je(e=`background`){let t=l(`tarsk.general.wallpaperMode`);if(Ae(t))return t;if(t===`brand`)return`background`;let n=l(`tarsk.general.imageBackground`);return n===`false`?`background`:n===`true`?`image`:e}function Me(e){u(`tarsk.general.wallpaperMode`,e)}function Ne(e=b){let t=l(`tarsk.general.wallpaperColor`);return t!==null&&y.test(t)?t:e}function Pe(e){y.test(e)&&u(`tarsk.general.wallpaperColor`,e.toLowerCase())}function Fe(e=x){let t=l(`tarsk.general.brandColor`);return t!==null&&y.test(t)?t:e}function Ie(e){y.test(e)&&u(`tarsk.general.brandColor`,e.toLowerCase())}function Le(e=`VS Code`){return l(`tarsk.general.openWithProgram`)??e}function Re(e){u(`tarsk.general.openWithProgram`,e)}function ze(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fetchedAt==`number`&&(t.serverBindMode===`local`||t.serverBindMode===`network`)&&Array.isArray(t.networkAddresses)&&t.networkAddresses.every(e=>typeof e==`string`)}function Be(){let e=l(`tarsk.general.serverBindMode`);if(!e)return null;try{let t=JSON.parse(e);return ze(t)?t:null}catch{return null}}function Ve(e){u(`tarsk.general.serverBindMode`,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}function S(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function He(){return T()&&S()===`ios`}function C(){return l(s.SERVER_URL)}function Ue(e){u(s.SERVER_URL,e)}function We(e){try{return new URL(e).hostname}catch{return``}}function w(e){let t=e.trim();if(!t)return``;let n=t.replace(/^https?:\/\//,``).split(`/`)[0]?.split(`:`)[0]??``;return n?`http://${n}:641`:``}function T(){if(typeof window>`u`)return!1;if(window.Capacitor?.isNativePlatform?.())return!0;let e=window.location.protocol;return e===`capacitor:`||e===`ionic:`||e===`file:`}function Ge(){let e=C();if(e){let t=We(e);if(t)return t}return T()?``:document.location.hostname}async function Ke(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function qe(e){let t=w(e);if(t){if(T()){Ue(t),window.location.reload();return}window.location.assign(t)}}function E(){return typeof window<`u`&&`__electrobunWebviewId`in window}function Je(){return typeof document<`u`&&document.location.port===`8100`}function D(){if(typeof document>`u`)return null;let{protocol:e,hostname:t,port:n,host:r,origin:i}=document.location;return e!==`http:`&&e!==`https:`?null:i||`${e}//${r??(n?`${t}:${n}`:t)}`}function O(){if(typeof document>`u`)return`http://localhost:641`;let{hostname:e,port:t}=document.location;return t===`8100`?`http://${e}:462`:D()||`http://${e}:641`}function k(){if(E()){let e=D();if(e)return e}if(!T())return O();let e=C();return e?e.replace(/\/$/,``):O()}function A(e){let t=e.startsWith(`/`)?e:`/${e}`;return`${k()}${t}`}function j(e){if(!e)return`Unknown error`;if(typeof e.error==`string`)return e.error.trim()||`Unknown error`;if(e.error&&typeof e.error==`object`){let t=e.error.message;if(typeof t==`string`&&t.trim())return t.trim();let n=e.error.details;return typeof n==`string`&&n.trim()?n.trim():`Unknown error`}return`Unknown error`}async function M(e){try{return j(await e.json())}catch{}return e.statusText||`Unknown error`}function N(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 P(e){let t;try{t=await e.json()}catch{}throw N(j(t)||e.statusText||`Unknown error`,e,t)}async function F(e,t){let n=await fetch(A(e),{...t,method:`GET`});if(!n.ok){let e=await M(n);throw Error(e)}return n.blob()}async function I(e,t){let n=await fetch(A(e),{...t,method:`GET`});if(!n.ok){let e=await M(n);throw Error(e)}return n.json()}async function L(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function Ye(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.blob()}async function Xe(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/octet-stream`,...n?.headers},body:t});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function R(e,t,n){let r=await fetch(A(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function Ze(e,t,n){let r=await fetch(A(e),{...n,method:`PATCH`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function Qe(e,t,n){let r=await fetch(A(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.body}async function z(e,t){let n=await fetch(A(e),{...t,method:`DELETE`});if(!n.ok){let e=await M(n);throw Error(e)}if(n.status!==204)return n.json()}async function $e(e,t){let n=await fetch(A(e),{...t,method:`DELETE`});if(!n.ok){let e=await M(n);throw Error(e)}return n.body}async function B(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});return r.ok||await P(r),r.body}async function et(e,t){let n=await fetch(A(e),{...t,method:`GET`});return n.ok||await P(n),n.body}async function V(e,t,n){let r=await fetch(A(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 N(j(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function tt(e,t,n){let r=await fetch(A(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 N(j(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function H(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var U=r(`gitops.ttl-cache`),W=new class{cache=new Map;inFlightRequests=new Map;generations=new Map;async get(e,t,n){let r=e.startsWith(`unified-git-status-`),i=r?performance.now():0,a=this.inFlightRequests.get(e);if(a)return r&&U.debug(`in-flight-reuse`,{key:e}),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);U.debug(`cache hit`,{key:e,duration:t})}return o.data}r&&U.debug(`cache miss, fetching`,{key:e});let s=this.generations.get(e)??0,c=t().then(t=>{if((this.generations.get(e)??0)===s){if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);U.debug(`stored in cache`,{key:e,duration:t})}}else r&&U.debug(`skipped stale cache write`,{key:e});return t}).finally(()=>{this.inFlightRequests.get(e)===c&&this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,c),c}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}bumpGeneration(e){this.generations.set(e,(this.generations.get(e)??0)+1)}invalidate(e){this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);for(let n of this.inFlightRequests.keys())e.test(n)&&!t.includes(n)&&t.push(n);for(let e of t)this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}clear(){for(let e of new Set([...this.cache.keys(),...this.inFlightRequests.keys(),...this.generations.keys()]))this.bumpGeneration(e);this.cache.clear(),this.inFlightRequests.clear()}};function nt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function rt(e,t=`image/png`){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})}function it(e){let t=e.indexOf(`,`),n=e.slice(0,t);return rt(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function at(e){if(e.imageData)return rt(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return it(e.imageUrl);let t=o(e.imageUrl,k()),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch image: ${n.status}`);return n.blob()}throw Error(`imageUrl or imageData is required`)}function ot(e){return!e.imageUrl||i(e.imageUrl)?e:{...e,imageUrl:o(e.imageUrl,k())}}async function st(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return nt(await at(e),t),{path:t}}catch{if(!e.imageUrl||e.imageUrl.startsWith(`data:`))throw Error(`imageUrl or imageData is required`);let n=document.createElement(`a`);return n.href=e.imageUrl,n.download=t,n.target=`_blank`,n.rel=`noopener noreferrer`,document.body.appendChild(n),n.click(),document.body.removeChild(n),{path:t}}}async function ct(e){let t=await at(e);if(!navigator.clipboard?.write)throw Error(`Clipboard API not available`);let n=t.type||`image/png`,r=t.type?t:new Blob([t],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:r})])}async function lt(e){return E()?L(`api/image/save`,ot(e)):st(e)}async function ut(e){if(E()){await L(`api/image/clipboard`,ot(e));return}await ct(e)}function dt(e){let t=e.trim().toLowerCase();return t===`load failed`||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`network connection was lost`)||t.includes(`networkrequestfailed`)||t.includes(`networkrequest failed`)||t.includes(`socket is not connected`)}function ft(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function pt(e){if(ft(e)===`THREAD_BUSY`)return!0;if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`already processing a message`)||t.includes(`already being processed`)||t.includes(`multiple chat windows are processing`)}function mt(e,t){return pt(e)?t?.trim()?!0:e instanceof Error?!e.message.toLowerCase().includes(`multiple chat windows`):!1:!1}var ht=50;function gt(e,t,n,r,i){let o=e.getReader(),s=!1;function c(){s=!0,o.cancel().catch(()=>{})}let l=new TextDecoder,u=``,d=0;function f(e){let t=e.content?.trim();if(t)return a(t);let n=e.error?.message?.trim();if(n)return a(n);let r=e.message?.trim();return r?a(r):`Unknown error`}function p(e){if(!e)return!1;let t=e.trim();return t.length>200?!1:[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/^forbidden/i,/^unauthorized/i].some(e=>e.test(t))}async function ee(){d+=1,!(d<ht)&&(d=0,await new Promise(e=>{setTimeout(e,0)}))}async function m(e){return e.type===`ping`?`continue`:e.type===`error`?(r(f(e)),n(),`stop`):e.type===`message`?(i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}),`continue`):e.type===`complete`?(n(),`stop`):e.type===`result`&&p(e.content)?(r(a(e.content??`Unknown error`)),n(),`stop`):(t(e),await ee(),`continue`)}async function h(){if(!u.trim())return`continue`;try{return await m(JSON.parse(u))}catch{return u.trim()&&t({type:`result`,content:u}),`continue`}}async function g(e){let t=e.trim();if(!t)return`continue`;try{return await m(JSON.parse(t))}catch{return`continue`}}async function _(){try{for(;!s;){let{done:e,value:t}=await o.read();if(e||s){if(!s&&e){if(await h()===`stop`)return;n()}break}u+=l.decode(t,{stream:!0});let r=u.split(`
2
- `);u=r.pop()??``;for(let e of r)if(s||await g(e)===`stop`)return}}catch(e){s||(r(e instanceof Error?e.message:`Stream error`),n())}}return _(),c}var _t=r(`gitops.api`);async function vt(e,t=!1,n=!1){let r=new URLSearchParams;t&&r.set(`fresh`,`true`),n&&r.set(`asyncRefresh`,`true`);let i=r.toString(),a=i?`api/git/unified-status/${H(e)}?${i}`:`api/git/unified-status/${H(e)}`,o=performance.now();_t.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await I(a)}finally{let n=Math.round(performance.now()-o);_t.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function yt(e,t,n){return(await L(`api/git/generate-commit-message/${H(e)}`,{model:t,provider:n})).message}async function bt(e,t){await L(`api/git/commit/${H(e)}`,{message:t})}async function xt(e){await L(`api/git/push/${H(e)}`)}async function St(e){await L(`api/git/pull/${H(e)}`)}async function Ct(e){return L(`api/git/sync-branch/${H(e)}`,{})}async function wt(e,t,n){return L(`api/git/generate-pr-info/${H(e)}`,{model:t,provider:n})}async function Tt(e,t,n,r){return L(`api/git/create-pr/${H(e)}`,{title:t,description:n,baseBranch:r})}async function Et(e){await L(`api/git/fetch/${H(e)}`)}async function Dt(e,t,n){return L(`api/git/create-branch/${H(e)}`,{baseBranch:t,branchName:n})}async function Ot(e,t){return L(`api/git/revert-file/${H(e)}`,{filePath:t})}async function kt(e,t=50){return(await I(`api/git/log/${H(e)}?limit=${t}`)).commits}async function At(e){return I(`api/git/pr-status/${H(e)}`)}async function jt(e,t,n,r){return L(`api/git/create-repo/${H(e)}`,{repoName:t,description:n,isPrivate:r})}async function Mt(e,t){return L(`api/git/checkpoint/${H(e)}`,{messageId:t})}async function Nt(e,t){return L(`api/git/checkpoint-restore/${H(e)}`,{checkpointRef:t})}async function Pt(e){return I(`api/git/diff/${H(e)}`)}async function Ft(e,t,n){return F(`api/git/media/${H(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function It(){return(await I(`api/skills/popular`)).skills??[]}async function Lt(){return(await I(`api/skills/sources`)).sources??[]}async function Rt(e){return(await I(`api/skills/catalog?${new URLSearchParams({sourceId:e}).toString()}`)).skills??[]}async function zt(e,t){return L(`api/skills/sources/verify`,{title:e,url:t})}async function Bt(e,t,n){return R(`api/skills/sources/${H(e)}`,{title:t,url:n})}async function Vt(e){await z(`api/skills/sources/${H(e)}`)}async function Ht(e){return(await L(`api/skills/sources/import`,{sources:e})).sources??[]}async function Ut(e,t){return I(`api/skills/catalog/files?${new URLSearchParams({sourceId:e,skillId:t}).toString()}`)}async function Wt(e,t,n){return I(`api/skills/catalog/file?${new URLSearchParams({sourceId:e,skillId:t,relativePath:n}).toString()}`)}async function Gt(){return(await I(`api/agents/popular`)).agents??[]}async function Kt(){return(await I(`api/rules/popular`)).rules??[]}async function qt(){return(await I(`api/slash-commands/popular`)).commands??[]}async function Jt(e,t,n,r,i){return L(`api/threads/${H(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r,gitHubRef:i})}async function Yt(e,t,n,r){return L(`api/threads/${H(e)}/ai-files/catalog-skill`,{sourceId:t,skillId:n,destPath:r})}var Xt=e({EmptyBalanceError:()=>G,LOW_BALANCE_THRESHOLD:()=>50,acknowledgeBrowserJsStarted:()=>xi,applyAppUpdate:()=>mi,authorizeMCPOAuth:()=>ki,checkBalance:()=>Qt,checkForAppUpdate:()=>pi,checkGitInstalled:()=>ei,checkVpInstalled:()=>rn,clearChatHistory:()=>lr,clearConversationHistory:()=>ci,clearLogFeed:()=>bn,clearProjectTaskModifications:()=>In,clearSlackTokens:()=>Tn,compactChat:()=>ur,completeOnboarding:()=>ti,copyImageToClipboard:()=>kr,createFolderProject:()=>Bn,createProject:()=>Ln,createProjectFromZip:()=>Hn,createScaffoldedProject:()=>on,createSlackBinding:()=>En,createSlashCommand:()=>oi,createThread:()=>Xn,createThreadAgent:()=>Ri,createThreadSkill:()=>Li,createUserTask:()=>Gr,deleteAccount:()=>mn,deleteCommand:()=>Lr,deleteMCPServer:()=>Ei,deleteProject:()=>Yn,deleteProjectAIFile:()=>Ni,deleteSlackBinding:()=>Dn,deleteSlashCommand:()=>si,deleteThread:()=>Zn,deleteThreadAIFile:()=>$,deleteUserTask:()=>Kr,disableImageModel:()=>Dr,disableModel:()=>xr,discoverMCPServers:()=>Di,enableImageModel:()=>Er,enableModel:()=>br,exportProjectPlugin:()=>jr,fetchAllAvailableModels:()=>yr,fetchAvailableImageModels:()=>wr,fetchAvailableModels:()=>vr,fetchPendingAskUserQuestions:()=>hi,fixComments:()=>tr,freeDevServerPort:()=>Xr,generateImage:()=>Or,generateThreadTitle:()=>$n,generateWorkspaceHandoff:()=>dr,getAccountInfo:()=>J,getAccountSettings:()=>vn,getAllEnabledImageModels:()=>Tr,getAllEnabledModels:()=>Cr,getAvailablePrograms:()=>An,getChatHistory:()=>rr,getCliProcesses:()=>jn,getContextBreakdown:()=>di,getConversationFolderPath:()=>ar,getConversationUsage:()=>ui,getGitUser:()=>X,getGitUserName:()=>Pn,getLatencyStatistics:()=>_n,getMCPConfig:()=>wi,getMCPOAuthStatus:()=>Ai,getObservationPage:()=>ir,getOnboardingStatus:()=>$r,getPackageScripts:()=>Rr,getPopularMCPServers:()=>Oi,getProcessingState:()=>Y,getProcessingThreads:()=>Nn,getProject:()=>Un,getProjectAIFiles:()=>Mi,getProjectEnvVars:()=>Wn,getProjectScripts:()=>Br,getProjectSystemPrompt:()=>Qr,getProjectWindowState:()=>Gn,getProjects:()=>Fn,getProviderCredits:()=>un,getProviderLogoCdnUrl:()=>ln,getProviderLogoUrl:()=>cn,getProviders:()=>sn,getRecentConversations:()=>li,getRecommendedModels:()=>ri,getScaffoldTemplates:()=>nn,getSessionToolLearnings:()=>or,getSlackManifest:()=>Cn,getSlackSettings:()=>yn,getSlashCommands:()=>ii,getSlashCommandsAndSkills:()=>ai,getSpendSummary:()=>gn,getThread:()=>Ur,getThreadAIFile:()=>Fi,getThreadAIFiles:()=>Pi,getThreadFiles:()=>zr,getToolDefinitionsBreakdown:()=>fi,getUserTasks:()=>Wr,installProjectPluginImport:()=>Nr,installVp:()=>an,invalidateProjectsCache:()=>Z,isDevServerRunning:()=>Zr,killCliProcess:()=>Mn,openExternalUrl:()=>q,openFolderProject:()=>Rn,openPathProject:()=>zn,openProjectWith:()=>pr,openThreadWith:()=>mr,postClientLog:()=>Sn,previewProjectPluginImport:()=>Mr,processVoiceTranscript:()=>kn,quitAccount:()=>hn,refreshModels:()=>Fr,replaceUniqueProjectText:()=>qn,reportBrowserActionResult:()=>Ci,reportBrowserWebviewReady:()=>Si,resetOnboarding:()=>ni,revokeMCPOAuth:()=>ji,routeChatPrompt:()=>er,runProjectScript:()=>Vr,saveCommand:()=>Ir,saveImageToDownloads:()=>Ar,saveMCPServer:()=>Ti,saveModelSettings:()=>Sr,saveProjectWindowState:()=>Kn,saveProviderEnvironment:()=>fn,saveProviderKey:()=>dn,saveThreadAIFile:()=>Ii,selectThread:()=>nr,sendChatMessage:()=>sr,setLowBalanceListener:()=>en,setSlackTokens:()=>wn,startDevServer:()=>Jr,stopChatGeneration:()=>fr,stopDevServer:()=>Yr,stopProjectScript:()=>Hr,streamLogFeed:()=>xn,submitAskUserAnswer:()=>gi,submitBrowserJsResult:()=>bi,submitSeatbeltEscalationResponse:()=>vi,submitShellPermissionResponse:()=>_i,submitWebFetchPermissionResponse:()=>yi,subscribeToChatStream:()=>cr,suggestRunCommand:()=>qr,syncProjectEnvVars:()=>Jn,ttlCache:()=>W,updateAccountSettings:()=>On,updateProject:()=>Q,updateProjectName:()=>_r,updateProjectOpenWith:()=>hr,updateProjectSetupScript:()=>gr,updateThread:()=>Qn,uploadProjectPlugin:()=>Pr}),Zt=r(`gitops.api`),G=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}};async function Qt(){let{plan:e,promptsRemaining:t}=await J();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=50,promptsRemaining:t}}var $t=null,K=!1;function en(e){$t=e}function tn(e){K||(K=!0,$t?.(e))}async function nn(){return I(`api/scaffold/templates`)}async function rn(){return(await I(`api/scaffold/check-vp`)).installed}async function an(){return L(`api/scaffold/install-vp`,{})}async function on(e,t,n,r){return B(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function sn(){return W.get(`providers`,async()=>I(`api/providers`),6e4)}function cn(e){return`${k()}/api/providers/${H(e)}/logo`}function ln(e){return`https://models.tarsk.io/svg/${H(e)}.svg`}async function un(e){return W.get(`provider-credits-${e}`,async()=>I(`api/providers/${H(e)}/credits`),3e4)}async function dn(e,t){await L(`api/providers/keys`,{providerName:e,apiKey:t}),W.invalidate(`providers`)}async function fn(e){await L(`api/providers/env`,{values:e}),W.invalidate(`providers`)}function pn(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function q(e){if(typeof window<`u`&&!E()){pn(e);return}try{await L(`api/providers/open-external`,{url:e})}catch(t){if(pn(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function J(){return I(`api/account/info`)}async function mn(){return L(`api/account/delete`,{})}async function hn(){return L(`api/account/quit`,{})}async function gn(){return I(`api/account/spend`)}async function _n(){return I(`api/account/statistics`)}async function vn(){return I(`api/account/settings`)}async function yn(){return I(`api/slack/settings`)}async function bn(){await z(`api/logs`)}async function xn(e){return et(`api/logs/stream`,e)}async function Sn(e){try{await L(`api/logs`,e)}catch(e){Zt.debug(`Failed to post client log entry`,e)}}async function Cn(){return I(`api/slack/manifest`)}async function wn(e){return R(`api/slack/tokens`,e)}async function Tn(){await z(`api/slack/tokens`)}async function En(e){return L(`api/slack/bindings`,e)}async function Dn(e,t){await z(`api/slack/bindings/${H(e)}/${H(t)}`)}async function On(e){return R(`api/account/settings`,e)}async function kn(e,t){return(await L(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function An(){return W.get(`available-programs`,async()=>(await I(`api/programs`)).programs??[],3e5)}async function jn(){return(await I(`api/processes`)).processes}async function Mn(e){await L(`api/processes/${H(e)}/kill`)}async function Y(){return W.get(`processing-threads`,async()=>{let e=await I(`api/threads/processing`);return{processingThreadIds:e.processingThreadIds??[],processingRuns:e.processingRuns??[]}},0)}async function Nn(){return(await Y()).processingThreadIds}async function X(){return W.get(`git-user`,async()=>{try{let e=await I(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function Pn(){return(await X()).name}async function Fn(){return W.get(`projects`,async()=>{let e=await I(`api/projects`),r=Array.isArray(e)?e:e.projects??[],i=Array.isArray(e)?null:e.cloneRootPath??null;return{projects:(r||[]).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,validationScript:t.validationScript,runCommand:t.runCommand,planPrompt:t.planPrompt,testPrompt:t.testPrompt,reviewPrompt:t.reviewPrompt,customSystemPrompt:t.customSystemPrompt,useCustomSystemPrompt:!!t.useCustomSystemPrompt,allowAllCommands:t.allowAllCommands!==!1,allowedCommandPatterns:t.allowedCommandPatterns??[],modelAliases:t.modelAliases??void 0,defaultChatMode:n(t.defaultChatMode)?t.defaultChatMode:void 0,disabledTools:t.disabledTools??void 0,smartJsEnabled:t.smartJsEnabled===!0,useBuiltInBrowser:t.useBuiltInBrowser!==!1,projectIcon:t.projectIcon,tasksModifiedCount:Number(t.tasksModifiedCount)||0}}).map(e=>{let n=(e.threads||[]).map(e=>{let n=e,r=n.threadId??n.id;return{threadId:r,title:n.title??r,path:n.path??``,currentBranch:n.currentBranch??``,isSelected:!!n.isSelected,model:n.model??void 0,modelProvider:n.modelProvider??void 0,gitStatusDot:t(n.gitStatusDot)}});return{...e,threads:n}}),cloneRootPath:i}},3e4)}async function In(e){await L(`api/projects/${H(e)}/tasks/clear-modifications`)}async function Ln(e,t,n){return B(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function Rn(e){return B(`api/projects/open-folder`,{},{signal:e})}async function zn(e,t){return B(`api/projects/open-path`,{path:e},{signal:t})}async function Bn(e,t){return B(`api/projects/new-folder`,{projectName:e},{signal:t})}function Vn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function Hn(e,t,n,r){return B(`api/projects/from-zip`,{data:await Vn(e),name:t,overrideProjectId:n},{signal:r})}async function Un(e){return W.get(`project-${e}`,async()=>{let t=await I(`api/projects/${H(e)}`);return{...t,projectPath:t.projectPath??t.path}},3e4)}async function Wn(e){return I(`api/projects/${H(e)}/env-vars`)}async function Gn(e){return(await I(`api/projects/${H(e)}/window-state`)).state}async function Kn(e,t){await tt(`api/projects/${H(e)}/window-state`,{state:t})}async function qn(e,t,n){return L(`api/projects/${H(e)}/replace-unique-text`,{oldText:t,newText:n})}async function Jn(e,t){await R(`api/projects/${H(e)}/env-vars`,{vars:t})}async function Yn(e){await z(`api/projects/${H(e)}`),W.invalidate(`projects`)}function Z(e){W.invalidate(`projects`),e&&W.invalidate(`project-${e}`)}async function Xn(e,t){return B(`api/threads`,{projectId:e,title:t})}async function Zn(e,t){let n=await $e(`api/threads/${H(t)}?stream=true`);return W.invalidate(`projects`),n}async function Qn(e,t){await Ze(`api/threads/${H(e)}`,t),W.invalidate(`thread-${e}`),(`model`in t||`modelProvider`in t||`chatTitles`in t||`diffComments`in t)&&W.invalidate(`projects`)}async function $n(e,t,n){return(await L(`api/threads/${H(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function er(e,t){return(await L(`api/chat/${H(e)}/auto-route`,{prompt:t})).decision}async function tr(e,t){return L(`api/threads/${H(e)}/fix-comments`,{comments:t})}async function nr(e,t){await L(`api/threads/${H(t)}/select`)}async function rr(e,t){let n=t?`?conversationId=${encodeURIComponent(t)}`:``;return{threadId:e,messages:await I(`api/threads/${H(e)}/messages${n}`)}}async function ir(e,t,n=1,r=2e3){let i=new URLSearchParams({offset:String(n),limit:String(r)});return I(`api/threads/${H(e)}/observations/${H(t)}?${i}`)}async function ar(e){return(await I(`api/threads/${H(e)}/conversation-folder-path`)).path}async function or(e){return(await I(`api/threads/${H(e)}/session-learnings`)).learnings}async function sr(e,t,n,r=[],i,a,o,s,c,l,u){let{isEmpty:d,isLow:f,promptsRemaining:p}=await Qt();if(d)throw new G;return f?tn(p):K=!1,B(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,orchestrateMode:u,checkpointRef:c,conversationId:l,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 cr(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),et(`api/chat/subscribe/${H(e)}?${r.toString()}`,{signal:t})}async function lr(e){let t=await z(`api/chat/${H(e)}`);return W.invalidate(`thread-${e}`),t?.conversationId||``}async function ur(e,t){return V(`api/chat/${H(e)}/compact`,t)}async function dr(e,t){let n=await L(`api/chat/${H(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function fr(e,t){try{let n=new URLSearchParams,r=t?.conversationId?.trim();r&&n.set(`conversationId`,r),t?.all&&n.set(`all`,`1`);let i=n.size>0?`?${n.toString()}`:``;await L(`api/chat/stop/${H(e)}${i}`)}catch{}}async function Q(e,t){return t.runNow&&t.setupScript?Qe(`api/projects/${H(e)}`,t):(await tt(`api/projects/${H(e)}`,t),Z(e),null)}async function pr(e,t){await V(`api/projects/${H(e)}/open`,{program:t})}async function mr(e,t){await V(`api/threads/${H(e)}/open`,{program:t})}async function hr(e,t){await Q(e,{program:t})}async function gr(e,t,n){return Q(e,{setupScript:t,runNow:n})}async function _r(e,t){await Q(e,{name:t})}async function vr(e,t){let n=new URLSearchParams({provider:e});t!==void 0&&n.set(`supportedTools`,t?`true`:`false`),n.set(`useCase`,`coding`);let r=`available-models-${n.toString()}`;return W.get(r,async()=>{let e=await I(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function yr(e){let t=new URLSearchParams({useCase:e}),n=`available-models-all-${e}`;return W.get(n,async()=>(await I(`api/models/all?${t.toString()}`)).providers??{},12e4)}async function br(e,t){await L(`api/models/${H(e,t)}/enable`),W.invalidate(`enabled-models`),W.invalidatePattern(/^available-models-/),W.invalidatePattern(/^available-image-models-/)}async function xr(e,t){await L(`api/models/${H(e,t)}/disable`),W.invalidate(`enabled-models`),W.invalidatePattern(/^available-models-/),W.invalidatePattern(/^available-image-models-/)}async function Sr(e,t,n){await L(`api/models/${H(e,t)}/settings`,n),W.invalidatePattern(/^available-models-/),W.invalidate(`enabled-models`)}async function Cr(){return W.get(`enabled-models`,async()=>(await I(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function wr(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return W.get(n,async()=>{let e=await I(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function Tr(){return W.get(`enabled-image-models`,async()=>(await I(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Er(e,t){await L(`api/models/${H(e,t)}/enable?useCase=image`),W.invalidate(`enabled-image-models`),W.invalidatePattern(/^available-models-/),W.invalidatePattern(/^available-image-models-/)}async function Dr(e,t){await L(`api/models/${H(e,t)}/disable?useCase=image`),W.invalidate(`enabled-image-models`),W.invalidatePattern(/^available-models-/),W.invalidatePattern(/^available-image-models-/)}async function Or(e,t,n,r){return L(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function kr(e){await ut(e)}async function Ar(e){return lt(e)}async function jr(e,t){return Ye(`api/projects/${H(e)}/plugin-export`,t)}async function Mr(e,t){return L(`api/projects/${H(e)}/plugin-import/preview`,{url:t})}async function Nr(e,t){return L(`api/projects/${H(e)}/plugin-import`,t)}async function Pr(e,t){return L(`api/projects/${H(e)}/plugin-upload`,t)}async function Fr(e){let t=await L(`api/models/${H(e)}/refresh`);return W.invalidatePattern(/^available-models-/),W.invalidatePattern(/^available-image-models-/),W.invalidate(`enabled-models`),W.invalidate(`enabled-image-models`),t.modelCount??0}async function Ir(e,t){await L(`api/projects/${H(e)}/commands`,t)}async function Lr(e,t){await z(`api/projects/${H(e)}/commands/${H(t)}`)}async function Rr(e){return I(`api/projects/${H(e)}/package-scripts`)}async function zr(e){return I(`api/threads/${H(e)}/files`)}async function Br(e){return(await I(`api/threads/${H(e)}/project-scripts`)).scripts}async function Vr(e,t,n,r){let{relativeFolder:i,...a}=r??{},o={scriptName:t,command:n};return i&&(o.relativeFolder=i),B(`api/threads/${H(e)}/project-scripts/run`,o,a)}async function Hr(e,t){return L(`api/threads/${H(e)}/project-scripts/stop`,{scriptName:t})}async function Ur(e){return W.get(`thread-${e}`,async()=>I(`api/threads/${e}`),45e3)}async function Wr(e){return(await I(`api/projects/${H(e)}/user-tasks`)).tasks??[]}async function Gr(e,t){return L(`api/projects/${H(e)}/user-tasks`,{content:t})}async function Kr(e,t){await z(`api/projects/${H(e)}/user-tasks/${H(t)}`)}async function qr(e){return L(`api/projects/${H(e)}/run-suggest`,{})}async function Jr(e,t,n){return Zt.info(`Start dev server requested`,{projectId:e,threadId:t}),W.invalidate(`dev-server-running-${e}`),B(`api/projects/${H(e)}/run`,{threadId:t},{signal:n})}async function Yr(e){return W.invalidate(`dev-server-running-${e}`),L(`api/projects/${H(e)}/stop`,{})}async function Xr(e,t){return L(`api/projects/${H(e)}/free-port`,{port:t})}async function Zr(e){return W.get(`dev-server-running-${e}`,async()=>I(`api/projects/${H(e)}/running`),3e3)}async function Qr(e){return I(`api/projects/${H(e)}/system-prompt`)}async function $r(){return I(`api/onboarding/status`)}async function ei(){return I(`api/onboarding/git-check`)}async function ti(){return L(`api/onboarding/complete`,{})}async function ni(){return L(`api/onboarding/reset`,{})}async function ri(){return I(`api/onboarding/recommended-models`)}async function ii(e){return(await I(`api/slash-commands?threadId=${H(e)}`)).commands??[]}async function ai(e){let t=await I(`api/slash-commands?threadId=${H(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function oi(e,t,n,r,i){return L(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function si(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 ci(e){let t=new URLSearchParams;e?.threadId?t.set(`threadId`,e.threadId):e?.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();await z(`api/conversations${n?`?${n}`:``}`)}async function li(e=20,t=0){return I(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}`)}async function ui(e,t){return I(`api/conversations/${H(e)}/${H(t)}/usage`)}async function di(e,t,n){let r=`context-breakdown-${e}-${t}`;return n?.forceRefresh&&W.invalidate(r),W.get(r,async()=>I(`api/conversations/${H(e)}/${H(t)}/context`),45e3)}async function fi(e,t){return I(`api/conversations/${H(e)}/${H(t)}/context/tool-definitions`)}async function pi(){try{return await I(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function mi(){return L(`api/update/apply`)}async function hi(){return(await I(`api/ask-user/pending`)).questions??[]}async function gi(e,t){await L(`api/ask-user/respond`,typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t})}async function _i(e,t,n){await L(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId})}async function vi(e,t){await L(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0})}async function yi(e,t){await L(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t})}async function bi(e,t,n){await L(`api/browser-js/respond`,{toolCallId:e,result:t,threadId:n})}async function xi(e,t){await L(`api/browser-js/respond`,{toolCallId:e,started:!0,threadId:t})}async function Si(e,t){await L(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function Ci(e,t){await L(`api/browser/action-result`,{toolCallId:e,result:t})}async function wi(e){return I(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function Ti(e,t,n){return R(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function Ei(e,t){return z(`api/mcp/config/${H(t)}?projectPath=${encodeURIComponent(e)}`)}async function Di(e,t){return L(`api/mcp/discover`,{projectPath:e,serverName:t})}async function Oi(){return(await I(`api/mcp/popular`)).servers??[]}async function ki(e,t){return L(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function Ai(e,t){return I(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function ji(e,t){return z(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Mi(e){return(await I(`api/projects/${H(e)}/ai-files`)).nodes??[]}async function Ni(e,t){return z(`api/projects/${H(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Pi(e){return(await I(`api/threads/${H(e)}/ai-files`)).nodes??[]}async function Fi(e,t){return I(`api/threads/${H(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ii(e,t,n){return R(`api/threads/${H(e)}/ai-file`,{path:t,content:n})}async function Li(e,t,n){return L(`api/threads/${H(e)}/ai-files/skill`,{name:t,description:n})}async function Ri(e,t,n,r){return L(`api/threads/${H(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function $(e,t){return z(`api/threads/${H(e)}/ai-file?path=${encodeURIComponent(t)}`)}export{vn as $,Lt as $n,Fe as $r,pr as $t,Yn as A,Re as Ai,gi as An,k as Ar,li as At,Er as B,_r as Bn,Ge as Br,Fi as Bt,Xn as C,ie as Ci,en as Cn,dt as Cr,Qr as Ct,mn as D,u as Di,Yr as Dn,z as Dr,ln as Dt,Gr as E,Oe as Ei,fr as En,W as Er,un as Et,$ as F,f as Fi,cr as Fn,R as Fr,yn as Ft,vr as G,Vt as Gn,x as Gr,Nr as Gt,jr as H,gr as Hn,He as Hr,zr as Ht,Kr as I,be as Ii,qr as In,Je as Ir,ii as It,Xr as J,Gt as Jn,c as Jr,Zr as Jt,hi as K,Wt as Kn,b as Kr,an as Kt,Dr as L,_ as Li,Jn as Ln,E as Lr,ai as Lt,Dn as M,fe as Mi,vi as Mn,Ze as Mr,nn as Mt,si as N,ve as Ni,_i as Nn,L as Nr,or as Nt,Lr as O,ue as Oi,Hr as On,H as Or,cn as Ot,Zn as P,Ve as Pi,yi as Pn,Xe as Pr,Cn as Pt,J as Q,Rt as Qn,te as Qr,zn as Qt,xr as R,Pe as Ri,On as Rn,w as Rr,gn as Rt,oi as S,h as Si,sr as Sn,Nt as Sr,Br as St,Li as T,Ee as Ti,Jr as Tn,mt as Tr,Fn as Tt,yr as U,Qn as Un,T as Ur,fi as Ut,br as V,hr as Vn,S as Vr,Pi as Vt,wr as W,Pr as Wn,Ke as Wr,Wr as Wt,$n as X,It as Xn,we as Xr,q as Xt,Or as Y,Kt as Yn,me as Yr,Mn as Yt,dr as Z,qt as Zn,xe as Zr,Rn as Zt,Bn as _,g as _i,Kn as _n,Et as _r,Y as _t,ki as a,Ce as ai,Fr as an,Mt as ar,di as at,on as b,ne as bi,Ii as bn,Ot as br,Mi as bt,rn as c,le as ci,Si as cn,wt as cr,X as ct,bn as d,se as di,er as dn,Ft as dr,wi as dt,m as ei,mr as en,Ht as er,Tr as et,In as f,de as fi,Vr as fn,At as fr,Ai as ft,kr as g,ye as gi,Sr as gn,Tt as gr,Oi as gt,ti as h,d as hi,Ti as hn,Dt as hr,Rr as ht,mi as i,De as ii,hn as in,zt as ir,jn as it,Ni as j,ce as ji,bi as jn,F as jr,ri as jt,Ei as k,ee as ki,xn as kn,I as kr,sn as kt,lr as l,p as li,ni as ln,Pt as lr,Pn as lt,ur as m,Be as mi,Ar as mn,bt as mr,$r as mt,xi as n,ae as ni,Mr as nn,Jt as nr,An as nt,pi as o,l as oi,qn as on,jt as or,ar as ot,Tn as p,_e as pi,Ir as pn,vt as pr,ir as pt,tr as q,Ut as qn,s as qr,Z as qt,Xt as r,Te as ri,kn as rn,Bt as rr,rr as rt,ei as s,pe as si,Ci as sn,yt as sr,ui as st,G as t,re as ti,Sn as tn,Yt as tr,Cr as tt,ci as u,Le as ui,ji as un,kt as ur,_n as ut,Ln as v,Ne as vi,fn as vn,St as vr,Nn as vt,Ri as w,oe as wi,wn,gt as wr,Gn as wt,En as x,Ie as xi,nr as xn,Ct as xr,Wn as xt,Hn as y,je as yi,dn as yn,xt as yr,Un as yt,Di as z,Me as zi,Q as zn,qe as zr,Ur as zt};
@@ -1,12 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{S as i,ot as a}from"./dist-BWuYHVi8.js";import{Q as o,n as s,r as c}from"./store-BaMSfYoJ.js";import{L as l,Ln as u,Rn as d,T as f,X as p,dn as m,gt as h,j as g,mt as _}from"./dist-DIjomljy.js";import{t as v}from"./utils-CT-Dw22R.js";import{t as y}from"./button-DeNw35VZ.js";import{Lr as b,Xt as x,on as S}from"./api-BMo_Lz8f.js";import{i as C,n as w,r as T,t as E}from"./tooltip-B6ziVyTv.js";import{i as D,r as O}from"./browser-overlay-block-CiDtkfup.js";import{t as k}from"./use-toast-xpb5jNtN.js";import{B as A,Bt as j,C as M,Ft as N,G as P,S as F,T as I,X as L,_ as R,an as z,b as B,f as V,p as H,v as U,w as W,x as G,y as K,zt as ee}from"./index-DjaVbFDB.js";import{t as te}from"./use-active-dock-panel-instance-BSch6-Fx.js";var q=e(n(),1),J=t();async function Y(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=S}=e;if(n===r)return{kind:`unchanged`};try{let e=await a(t,n,r);if(e.applied&&e.path)return{kind:`replaced`,path:e.path}}catch{}return{kind:`prompt`,prompt:B(i,n,r)}}var X=r();function ne(e){let t=(0,J.c)(43),{onCommit:n,onCancelPreview:r}=e,i=s(),a=c(ae),l=c(ie),u=c(re),d;t[0]===a?d=t[1]:(d=e=>a?e.projectModelSelections[a]:void 0,t[0]=a,t[1]=d);let f=c(d),{selectedBrowserElement:p,setSelectedBrowserElement:m,setIsEditModeEnabled:h,setBrowserAgentProcessingThreadId:g}=A(),{handleSend:_}=j(),{paneId:v,conversationId:b}=ee(),[x,S]=(0,q.useState)(!1),C;if(t[2]!==u||t[3]!==l){let e;t[5]===l?e=t[6]:(e=e=>e.projectId===l,t[5]=l,t[6]=e),C=u.find(e),t[2]=u,t[3]=l,t[4]=C}else C=t[4];let w=C,T;t[7]===p?T=t[8]:(T=F(p),t[7]=p,t[8]=T);let E=T,D;t[9]!==h||t[10]!==m?(D=()=>{S(!1),h(!1),m(null)},t[9]=h,t[10]=m,t[11]=D):D=t[11];let O=D,N;t[12]!==b||t[13]!==i||t[14]!==O||t[15]!==_||t[16]!==v||t[17]!==w?.lastSelectedModel||t[18]!==w?.lastSelectedModelProvider||t[19]!==l||t[20]!==a||t[21]!==g||t[22]!==f?.id||t[23]!==f?.provider?(N=async e=>{if(!l){k({title:`No project selected`,description:`Open a project to apply text edits.`,variant:`destructive`}),O();return}S(!0);let t=await Y({projectId:l,oldText:e.originalText,newText:e.currentText,selection:e.selection});if(t.kind===`unchanged`){k({title:`No text changes detected`}),O();return}if(t.kind===`replaced`){k({title:`Text updated`,description:`Replaced in ${t.path}`}),O();return}let n=f?.id??w?.lastSelectedModel,r=f?.provider??w?.lastSelectedModelProvider;if(!a||!n){k({title:`Could not apply text change`,description:`Select a chat thread and model to send this change as a prompt.`,variant:`destructive`}),S(!1);return}_(v,b,t.prompt,n,[],r),i({type:o.SetChatInputDraft,threadId:v===`primary`?a:`${a}:${v}`,draft:``}),g(a),O()},t[12]=b,t[13]=i,t[14]=O,t[15]=_,t[16]=v,t[17]=w?.lastSelectedModel,t[18]=w?.lastSelectedModelProvider,t[19]=l,t[20]=a,t[21]=g,t[22]=f?.id,t[23]=f?.provider,t[24]=N):N=t[24],w?.lastSelectedModel,w?.lastSelectedModelProvider,f?.id,f?.provider;let P=N,I,L;t[25]===E?(I=t[26],L=t[27]):(I=()=>{E||S(!1)},L=[E],t[25]=E,t[26]=I,t[27]=L),(0,q.useEffect)(I,L);let z,B;t[28]===P?(z=t[29],B=t[30]):(z=()=>{let e=function(e){let t=e.detail;G(t)&&P(t)},t=function(e){let t=M(e.data);t&&P(t)};return window.addEventListener(R,e),window.addEventListener(`message`,t),function(){window.removeEventListener(R,e),window.removeEventListener(`message`,t)}},B=[P],t[28]=P,t[29]=z,t[30]=B),(0,q.useEffect)(z,B);let V;t[31]!==O||t[32]!==r?(V=function(){r(),O()},t[31]=O,t[32]=r,t[33]=V):V=t[33];let H=V;if(!E)return null;let U;t[34]!==x||t[35]!==n?(U=(0,X.jsx)(y,{type:`button`,size:`sm`,onClick:n,disabled:x,children:`Apply Changes`}),t[34]=x,t[35]=n,t[36]=U):U=t[36];let W;t[37]!==H||t[38]!==x?(W=(0,X.jsx)(y,{type:`button`,size:`sm`,variant:`outline`,onClick:H,disabled:x,children:`Cancel`}),t[37]=H,t[38]=x,t[39]=W):W=t[39];let K;return t[40]!==U||t[41]!==W?(K=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[U,W]}),t[40]=U,t[41]=W,t[42]=K):K=t[42],K}function re(e){return e.projects}function ie(e){return e.selectedProjectId}function ae(e){return e.selectedThreadId}function oe(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function se(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function Z(e){if(!e)return null;if(typeof e==`string`)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}return typeof e==`object`?e:null}function Q(e){let t=Z(e);if(!t||t.type!==`tarsk-browser-page-title`)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function ce(e){return Q(e)}function le(e){return!e?.trim()}function ue(e,t){return le(t)?e:t.trim()}function de(e){return e?e.querySelector(`electrobun-webview`):null}function fe(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function pe(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function me(e,t){if(t){pe(e);return}fe(e)}function he(e){return e!=null&&e.getClientRects().length>0}function ge(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),me(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function _e(e){let t=(0,J.c)(8),{useNativeWebview:n,shouldRenderNativeWebview:r,currentUrl:i,resolveWebview:a}=e,[o,s]=(0,q.useState)(r),c;t[0]!==a||t[1]!==r||t[2]!==n?(c=()=>{if(!n)return;if(r){s(!0);return}let e=a();e&&fe(e);let t=requestAnimationFrame(()=>{s(!1)});return function(){cancelAnimationFrame(t)}},t[0]=a,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l;return t[4]!==i||t[5]!==r||t[6]!==n?(l=[r,n,i],t[4]=i,t[5]=r,t[6]=n,t[7]=l):l=t[7],(0,q.useLayoutEffect)(c,l),o}var ve=i(`browser.preview-scripting`);function ye(e,t=!1,n=`select`){return`(function () {
2
- const api = window.__tarskBrowserPreview;
3
- if (!api || typeof api.setSelectMode !== "function") {
4
- log.error("[browser-preview] selection API is not available");
5
- return;
6
- }
7
- api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`}, ${JSON.stringify(n)});
8
- })();`}function be(e){let t=e===`commit`?`commitTextEdit`:`cancelTextEdit`;return`(function () {
9
- const api = window.__tarskBrowserPreview;
10
- if (!api || typeof api.${t} !== "function") return;
11
- api.${t}();
12
- })();`}function xe(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(ye(t,n,r))}catch(i){throw ve.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,interaction:r,src:e.src,webview_id:e.webviewId,error:i instanceof Error?i.message:String(i),stack:i instanceof Error?i.stack:void 0}),i}}function Se(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function Ce(e,t,n=!1,r=`select`){let i=e.contentWindow;if(!i)throw Error(`Browser preview frame is not ready`);let a=i.__tarskBrowserPreview;if(!a?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);a.setSelectMode(t,n,r)}function we(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){ve.warn(`[browser-preview] Preview text-edit API unavailable; action ignored`,{action:t,src:e.src});return}if(t===`commit`){n.commitTextEdit?.();return}n.cancelTextEdit?.()}var Te=i(`app.browser-tab.ui`),Ee=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]);function De(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;if(t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable)return!0;let n=e.getAttribute(`role`);return n===`combobox`||n===`listbox`||n===`menu`||n===`menubar`||n===`menuitem`||n===`option`||n===`radiogroup`||n===`tablist`||n===`tab`||n===`grid`||n===`slider`||n===`spinbutton`}function Oe(e,t,n){let[r,i]=(0,q.useState)(!0),a=(0,q.useSyncExternalStore)(H,V),o=(0,q.useSyncExternalStore)(D,O),s=t&&(r&&!o||a),c=(0,q.useRef)(s);c.current=s;let l=(0,q.useCallback)(function(){return c.current},[]),u=(0,q.useCallback)(function(){i(he(e.current))},[]);return(0,q.useLayoutEffect)(u),(0,q.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(u);return n.observe(t),function(){n.disconnect()}},[u,n]),{shouldShowWebview:s,readWebviewVisibility:l}}function ke({devServerUrl:e,devServerStopped:t,isBrowserActive:n,currentUrl:r,browserResetTrigger:i,webviewRef:a,iframeRef:o,setCurrentUrl:s,setPendingUrl:c,setInputUrl:l,setSelectionModeError:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectedBrowserElement:p,setIsSelectionPromptOpen:m,setBrowserAgentProcessingThreadId:h,setBrowserPageTitle:g}){let _=(0,q.useRef)(r),v=(0,q.useRef)(null);_.current=r,(0,q.useEffect)(()=>{s(``),c(``),l(``),u(null),g(null),d(!1),f(!1),p(null),m(!1),h(null);let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``)},[i,h,g,d,f,m,p]),(0,q.useEffect)(()=>{if(t&&!e){s(``),c(``),l(``),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null));let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``);return}if(!e)return;let r=oe(e);l(r),(!_.current||_.current===v.current)&&(s(r),c(r),v.current=r),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null))},[e,t,n,h,d,f,m,p])}function Ae(e,t,n,r){let i=(0,J.c)(9),a;i[0]!==n||i[1]!==e||i[2]!==r||i[3]!==t?(a=()=>{if(!e||!t)return;let i=function(e){Ee.has(e.key)&&(De(e.target)||r.current?.contains(e.target)||(e.preventDefault(),n()))};return document.addEventListener(`keydown`,i,!0),function(){document.removeEventListener(`keydown`,i,!0)}},i[0]=n,i[1]=e,i[2]=r,i[3]=t,i[4]=a):a=i[4];let o;i[5]!==n||i[6]!==e||i[7]!==t?(o=[e,t,n],i[5]=n,i[6]=e,i[7]=t,i[8]=o):o=i[8],(0,q.useEffect)(a,o)}function je(e){let t=(0,J.c)(15),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,resolveWebview:a,setCurrentUrl:o,setPendingUrl:s,setInputUrl:c,setSelectionModeError:l,setBrowserPageTitle:u}=e,d;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==u||t[4]!==o||t[5]!==c||t[6]!==s||t[7]!==l||t[8]!==n?(d=()=>{let e=a();if(!n||!e||!r)return;let t=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),s(``),c(t))},d=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),c(t))},f=function(e){let t=se(e.detail);t&&x(t)},p=function(e){let t=ce(e.detail);if(t!=null){u(e=>ue(e,t));return}let n=I(e.detail);if(n){K(n);return}let r=W(e.detail);r&&(l(null),U(r))};return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,d),e.on(`new-window-open`,f),e.on(`host-message`,p),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,d),e.off(`new-window-open`,f),e.off(`host-message`,p)}},t[0]=i,t[1]=r,t[2]=a,t[3]=u,t[4]=o,t[5]=c,t[6]=s,t[7]=l,t[8]=n,t[9]=d):d=t[9];let f;t[10]!==i||t[11]!==r||t[12]!==u||t[13]!==n?(f=[i,n,r,u],t[10]=i,t[11]=r,t[12]=u,t[13]=n,t[14]=f):f=t[14],(0,q.useEffect)(d,f)}function Me(e){let t=(0,J.c)(23),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,deviceMode:a,shouldShowWebview:o,pendingUrl:s,readWebviewVisibility:c,resolveWebview:l}=e,u;t[0]!==r||t[1]!==l||t[2]!==o||t[3]!==n?(u=()=>{if(!n||!r)return;let e=l();!e||e.webviewId==null||me(e,o)},t[0]=r,t[1]=l,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==r||t[8]!==o||t[9]!==n?(d=[r,n,i,a,o],t[5]=i,t[6]=a,t[7]=r,t[8]=o,t[9]=n,t[10]=d):d=t[10],(0,q.useLayoutEffect)(u,d);let f;t[11]!==r||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==n?(f=()=>{let e=l();if(!(!n||!e||!s||!r))return ge(e,s,c)},t[11]=r,t[12]=s,t[13]=c,t[14]=l,t[15]=n,t[16]=f):f=t[16];let p;t[17]!==i||t[18]!==r||t[19]!==s||t[20]!==c||t[21]!==n?(p=[s,n,i,r,c],t[17]=i,t[18]=r,t[19]=s,t[20]=c,t[21]=n,t[22]=p):p=t[22],(0,q.useEffect)(f,p)}function Ne({isBrowserActive:e,currentUrl:t,isSelectModeEnabled:n,isEditModeEnabled:r,isSelectionPromptOpen:i,nativeWebviewMounted:a,useNativeWebview:o,resolveWebview:s,iframeRef:c,setIsSelectModeEnabled:l,setIsEditModeEnabled:u,setSelectionModeError:d}){(0,q.useEffect)(()=>{if(!e)return;if(!t){n&&l(!1),r&&u(!1);return}let f=!1,p=n||r,m=r?`edit`:`select`,h=!p&&i;function g(){try{if(o){let e=s();if(!e||e.webviewId==null||!a)return;xe(e,p,h,m);return}let e=c.current;if(!e)return;Ce(e,p,h,m)}catch(e){if(f||!p)return;let t=e instanceof Error?e.message:`Could not enable element selection.`;Te.error(`Failed to toggle browser selection mode:`,e),d(t),l(!1),u(!1),k({title:`Selection mode unavailable`,description:t,variant:`destructive`})}}return g(),function(){f=!0}},[t,e,r,n,i,a,u,l,o])}function Pe(e,t){let n=(0,J.c)(8),r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!e)return;let n=function(e){let n=Q(e.data);n!=null&&t(e=>ue(e,n))};return window.addEventListener(`message`,n),function(){window.removeEventListener(`message`,n)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),(0,q.useEffect)(r,i);let a,o;n[4]!==e||n[5]!==t?(a=()=>{if(e)return function(){t(null)}},o=[e,t],n[4]=e,n[5]=t,n[6]=a,n[7]=o):(a=n[6],o=n[7]),(0,q.useEffect)(a,o)}function Fe(e){let t=te(e,`browser`),{devServerUrl:n,devServerStopped:r}=L(),{browserResetTrigger:i,setBrowserPageTitle:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=A(),v=c(e=>e.selectedProjectId),y=c(e=>e.projects).find(e=>e.projectId===v),[S,C]=(0,q.useState)(``),[w,T]=(0,q.useState)(``),[E,D]=(0,q.useState)(``),[O,k]=(0,q.useState)(o),[j,M]=(0,q.useState)(null),N=(0,q.useRef)(null),P=(0,q.useRef)(E),I=(0,q.useRef)(null),R=(0,q.useRef)(null),B=b(),V=z(),H=B&&!!w;P.current=E;function U(){return N.current??de(R.current)}let{shouldShowWebview:W,readWebviewVisibility:G}=Oe(R,t,w),K=_e({useNativeWebview:B,shouldRenderNativeWebview:H,currentUrl:w,resolveWebview:U});ke({devServerUrl:n,devServerStopped:r,isBrowserActive:t,currentUrl:w,browserResetTrigger:i,webviewRef:N,iframeRef:I,setCurrentUrl:T,setPendingUrl:D,setInputUrl:C,setSelectionModeError:M,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setBrowserAgentProcessingThreadId:_,setBrowserPageTitle:a}),Ae(t,B,(0,q.useCallback)(function(){B?U()?.focus():I.current?.contentWindow?.focus()},[B]),R),je({useNativeWebview:B,nativeWebviewMounted:K,currentUrl:w,resolveWebview:U,setCurrentUrl:T,setPendingUrl:D,setInputUrl:C,setSelectionModeError:M,setBrowserPageTitle:a}),Pe(t,a),Me({useNativeWebview:B,nativeWebviewMounted:K,currentUrl:w,deviceMode:O,shouldShowWebview:W,pendingUrl:E,readWebviewVisibility:G,resolveWebview:U}),Ne({isBrowserActive:t,currentUrl:w,isSelectModeEnabled:l,isEditModeEnabled:d,isSelectionPromptOpen:g,nativeWebviewMounted:K,useNativeWebview:B,resolveWebview:U,iframeRef:I,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectionModeError:M}),(0,q.useEffect)(()=>{k(o)},[o]);let ee=(0,q.useCallback)(e=>{N.current=e,e&&ge(e,P.current,G)},[G]);function J(e){k(e),s(e)}function Y(){M(null),u(!1),f(!1),m(null),h(!1)}function X(e){try{if(B){let t=U();if(!t)return;Se(t,be(e));return}let t=I.current;if(!t)return;we(t,e)}catch(e){Te.error(`Failed to run preview text edit action:`,e)}}function ne(e){let t=oe(e);t&&(C(t),T(t),D(t),Y())}function re(e){e.key===`Enter`&&ne(S)}function ie(){if(Y(),B){let e=U();e&&e.reload();return}let e=I.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}function ae(){if(Y(),B){let e=U();e&&e.executeJavascript(`history.back()`);return}Z(-1)}function se(){if(Y(),B){let e=U();e&&e.executeJavascript(`history.forward()`);return}Z(1)}function Z(e){let t=I.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function Q(){M(null),f(!1),F(p)&&(X(`cancel`),m(null)),u(e=>!e)}function ce(){if(M(null),u(!1),h(!1),F(p)){X(`cancel`),m(null),f(!1);return}f(e=>!e)}return{isBrowserActive:t,devServerStopped:r,selectedProjectId:v,runCommand:y?.runCommand,currentUrl:w,inputUrl:S,setInputUrl:C,handleKeyDown:re,deviceMode:O,updateDeviceMode:J,selectionModeError:j,isSelectModeEnabled:l,isEditModeActive:d||F(p),isSurfaceSelectInteraction:l||d,toggleSelectMode:Q,toggleEditMode:ce,refresh:ie,goBack:ae,goForward:se,openExternal:()=>void x(w),runPreviewTextEdit:X,previewContainerRef:R,iframeRef:I,handleWebviewRef:ee,useNativeWebview:B,nativeWebviewMounted:K,previewRpcPreload:V}}var Ie={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function Le(e){let t=(0,J.c)(7),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,previewRpcPreload:a,handleWebviewRef:o,iframeRef:s}=e;if(n){if(!r)return null;let e;return t[0]!==i||t[1]!==o||t[2]!==a?(e=(0,q.createElement)(`electrobun-webview`,{ref:o,src:i,preload:a,renderer:`native`,className:`block h-full w-full bg-background`}),t[0]=i,t[1]=o,t[2]=a,t[3]=e):e=t[3],e}let c;return t[4]!==i||t[5]!==s?(c=(0,X.jsx)(`iframe`,{ref:s,src:i,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`}),t[4]=i,t[5]=s,t[6]=c):c=t[6],c}function Re(e){let t=(0,J.c)(18),{selectionModeError:n,isSelectModeEnabled:r,deviceMode:i,currentDeviceConfig:a,previewContainerRef:o,children:s}=e,c;t[0]===n?c=t[1]:(c=n&&(0,X.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,n]}),t[0]=n,t[1]=c);let l=r&&`cursor-crosshair`,u;t[2]===l?u=t[3]:(u=v(`flex min-h-0 flex-1 items-center justify-center bg-background`,l),t[2]=l,t[3]=u);let d=`overflow-hidden border border-border bg-background shadow-sm ${i===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,f;t[4]!==a.height||t[5]!==a.width?(f={width:a.width,height:a.height,maxWidth:`100%`,maxHeight:`100%`},t[4]=a.height,t[5]=a.width,t[6]=f):f=t[6];let p;t[7]!==s||t[8]!==d||t[9]!==f?(p=(0,X.jsx)(`div`,{className:d,style:f,children:s}),t[7]=s,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m;t[11]!==o||t[12]!==u||t[13]!==p?(m=(0,X.jsx)(`div`,{ref:o,className:u,children:p}),t[11]=o,t[12]=u,t[13]=p,t[14]=m):m=t[14];let h;return t[15]!==c||t[16]!==m?(h=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[c,m]}),t[15]=c,t[16]=m,t[17]=h):h=t[17],h}function ze(e){let t=(0,J.c)(3),{previewContainerRef:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,X.jsx)(`div`,{className:`hidden`,"aria-hidden":`true`,children:(0,X.jsx)(`div`,{ref:n,children:r})}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function $(e){let t=(0,J.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a===void 0?!1:a,l=o===void 0?!1:o,u=s===void 0?`elevated`:s,d=l&&`cursor-not-allowed text-muted-foreground/50`,f=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,p=!l&&c&&u===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,m=!l&&c&&u===`elevated`&&`bg-background text-foreground shadow-sm`,h;t[0]!==d||t[1]!==f||t[2]!==p||t[3]!==m?(h=v(`rounded p-1.5 transition-all`,d,f,p,m),t[0]=d,t[1]=f,t[2]=p,t[3]=m,t[4]=h):h=t[4];let g;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==h?(g=(0,X.jsx)(C,{asChild:!0,children:(0,X.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:h,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=h,t[10]=g):g=t[10];let _;t[11]===r?_=t[12]:(_=(0,X.jsx)(w,{children:r}),t[11]=r,t[12]=_);let y;return t[13]!==_||t[14]!==g?(y=(0,X.jsxs)(E,{children:[g,_]}),t[13]=_,t[14]=g,t[15]=y):y=t[15],y}function Be(e){let t=(0,J.c)(42),{controller:n}=e,{currentUrl:r,inputUrl:i,setInputUrl:a,handleKeyDown:o,goBack:s,goForward:c,refresh:y,toggleSelectMode:b,toggleEditMode:x,openExternal:S,updateDeviceMode:C,selectionModeError:w,isSelectModeEnabled:T,isEditModeActive:E,deviceMode:D}=n,O;t[0]!==r||t[1]!==s?(O=r&&(0,X.jsx)($,{onClick:s,label:`Back`,children:(0,X.jsx)(d,{size:15})}),t[0]=r,t[1]=s,t[2]=O):O=t[2];let k;t[3]!==r||t[4]!==c?(k=r&&(0,X.jsx)($,{onClick:c,label:`Forward`,children:(0,X.jsx)(u,{size:15})}),t[3]=r,t[4]=c,t[5]=k):k=t[5];let A;t[6]===a?A=t[7]:(A=e=>a(e.target.value),t[6]=a,t[7]=A);let j;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=v(`flex-1 rounded-full bg-muted font-mono`),t[8]=j):j=t[8];let M;t[9]!==o||t[10]!==i||t[11]!==A?(M=(0,X.jsx)(N,{type:`text`,value:i,onChange:A,onKeyDown:o,placeholder:`Enter URL...`,className:j,spellCheck:!1}),t[9]=o,t[10]=i,t[11]=A,t[12]=M):M=t[12];let P;t[13]!==r||t[14]!==y?(P=r&&(0,X.jsx)($,{onClick:y,label:`Refresh page`,children:(0,X.jsx)(p,{size:15})}),t[13]=r,t[14]=y,t[15]=P):P=t[15];let F;t[16]!==r||t[17]!==T||t[18]!==w||t[19]!==b?(F=r&&(0,X.jsx)($,{onClick:b,label:w?`Select element unavailable: ${w}`:T?`Exit element selection`:`Select element from preview`,isActive:T,activeStyle:`depressed`,children:(0,X.jsx)(_,{size:15})}),t[16]=r,t[17]=T,t[18]=w,t[19]=b,t[20]=F):F=t[20];let I;t[21]!==r||t[22]!==E||t[23]!==w||t[24]!==x?(I=r&&(0,X.jsx)($,{onClick:x,label:w?`Edit text unavailable: ${w}`:E?`Exit text editing`:`Edit text from preview`,isActive:E,activeStyle:`depressed`,children:(0,X.jsx)(f,{size:15})}),t[21]=r,t[22]=E,t[23]=w,t[24]=x,t[25]=I):I=t[25];let L;t[26]!==r||t[27]!==D||t[28]!==C?(L=r&&(0,X.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,X.jsx)($,{onClick:()=>C(`desktop`),label:`Desktop view`,isActive:D===`desktop`,children:(0,X.jsx)(h,{size:15})}),(0,X.jsx)($,{onClick:()=>C(`tablet`),label:`Tablet view`,isActive:D===`tablet`,children:(0,X.jsx)(g,{size:15})}),(0,X.jsx)($,{onClick:()=>C(`mobile`),label:`Mobile view`,isActive:D===`mobile`,children:(0,X.jsx)(l,{size:15})})]}),t[26]=r,t[27]=D,t[28]=C,t[29]=L):L=t[29];let R;t[30]!==r||t[31]!==S?(R=r&&(0,X.jsx)($,{onClick:S,label:`Open in external browser`,children:(0,X.jsx)(m,{size:15})}),t[30]=r,t[31]=S,t[32]=R):R=t[32];let z;return t[33]!==O||t[34]!==R||t[35]!==k||t[36]!==M||t[37]!==P||t[38]!==F||t[39]!==I||t[40]!==L?(z=(0,X.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[O,k,M,P,F,I,L,R]})}),t[33]=O,t[34]=R,t[35]=k,t[36]=M,t[37]=P,t[38]=F,t[39]=I,t[40]=L,t[41]=z):z=t[41],z}function Ve(e){let t=(0,J.c)(4),{devServerStopped:n,selectedProjectId:r,runCommand:i}=e,o;return t[0]!==n||t[1]!==i||t[2]!==r?(o=(0,X.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:n?(0,X.jsx)(`p`,{className:a.body,children:`Dev server stopped`}):r&&i?(0,X.jsx)(P,{projectId:r,runCommand:i,large:!0}):(0,X.jsx)(`p`,{className:a.body,children:`Enter a URL to browse`})}),t[0]=n,t[1]=i,t[2]=r,t[3]=o):o=t[3],o}function He(e){let t=(0,J.c)(19),{instanceId:n}=e,r=Fe(n),i=Ie[r.deviceMode],a;t[0]!==r.currentUrl||t[1]!==r.handleWebviewRef||t[2]!==r.iframeRef||t[3]!==r.nativeWebviewMounted||t[4]!==r.previewRpcPreload||t[5]!==r.useNativeWebview?(a=(0,X.jsx)(Le,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[0]=r.currentUrl,t[1]=r.handleWebviewRef,t[2]=r.iframeRef,t[3]=r.nativeWebviewMounted,t[4]=r.previewRpcPreload,t[5]=r.useNativeWebview,t[6]=a):a=t[6];let o=a;if(!r.isBrowserActive){let e;return t[7]!==r.previewContainerRef||t[8]!==o?(e=(0,X.jsx)(ze,{previewContainerRef:r.previewContainerRef,children:o}),t[7]=r.previewContainerRef,t[8]=o,t[9]=e):e=t[9],e}let s;t[10]===r?s=t[11]:(s=(0,X.jsx)(Be,{controller:r}),t[10]=r,t[11]=s);let c;t[12]!==r||t[13]!==i||t[14]!==o?(c=r.currentUrl?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ne,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}),(0,X.jsx)(Re,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:i,previewContainerRef:r.previewContainerRef,children:o})]}):(0,X.jsx)(Ve,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}),t[12]=r,t[13]=i,t[14]=o,t[15]=c):c=t[15];let l;return t[16]!==s||t[17]!==c?(l=(0,X.jsx)(T,{children:(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[s,c]})}),t[16]=s,t[17]=c,t[18]=l):l=t[18],l}export{He as BrowserTab};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{I as i,S as a,v as o}from"./dist-BWuYHVi8.js";import{Q as s,i as c,n as l,r as u}from"./store-BaMSfYoJ.js";import{_n as d,wt as f}from"./api-BMo_Lz8f.js";var p=e(n(),1),m=t();function h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];!t||Object.keys(t.extraChatPanes).length===0||(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function g(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),a=n.size>0||r.size>0;function o(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=o(e.selectedWindowId)?e.selectedWindowId:i,c=null;return e.layout===`expanded`&&a&&(c=o(e.expandedWindowId)?e.expandedWindowId:i),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var _=a(`app.window-state`);function v(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function y({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=l(),o=u(e=>e.selectedProjectId),c=u(e=>e.projects),m=u(e=>e.threadMultiPaneStates),g=c.find(e=>e.projectId===o),y=(g?.threads.map(e=>e.threadId)??[]).join(`\0`),b=g!==void 0,[x,S]=(0,p.useState)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(Promise.resolve()),T=(0,p.useRef)(null),E=(0,p.useRef)(0),D=(0,p.useRef)(v(e,t,n));D.current=v(e,t,n),(0,p.useEffect)(()=>{let e=T.current!==o;if(T.current=o,!o||!b){r(),S(null),C.current=null;return}e&&(r(),S(null),C.current=null);let t=o,n=y?y.split(`\0`):[],c=D.current,l=++E.current,u=!1;async function d(){try{let e=await f(t);if(u||l!==E.current)return;if(a({type:s.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),D.current!==c){S(t);return}C.current=JSON.stringify(e),i(e),S(t)}catch(e){u||_.error(`Failed to restore project window state`,e)}}return d(),()=>{u=!0}},[a,b,i,r,y,o]),(0,p.useEffect)(()=>{if(!o||o!==x||!b)return;let r=h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:y?y.split(`\0`):[],threadMultiPaneStates:m}),i=JSON.stringify(r);if(i===C.current)return;let a=o;C.current=i,w.current=w.current.catch(()=>void 0).then(()=>d(a,r)).catch(e=>{_.error(`Failed to save project window state`,e),C.current===i&&(C.current=null)})},[t,b,x,e,o,n,y,m])}var b=r(),x=(0,p.createContext)(null);function S(e){let t=(0,m.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:a,expandedWindowId:o,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==o||t[1]!==r||t[2]!==a||t[3]!==c||t[4]!==n?(u=()=>{if(o){if(o===`primary`){if(a)return;c(n.length>0?n[0].id:null);return}!n.some(e=>e.id===o)&&!r[o]&&c(a?i:n[0]?.id??null)}},d=[o,r,a,n,c],t[0]=o,t[1]=r,t[2]=a,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,p.useEffect)(u,d);let f,h;t[7]!==r||t[8]!==a||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(a||n.length===0)return;l(n[0].id);return}!n.some(e=>e.id===s)&&!r[s]&&l(a?i:n[0]?.id??`primary`)},h=[r,a,s,n,l],t[7]=r,t[8]=a,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=h):(f=t[12],h=t[13]),(0,p.useEffect)(f,h);let g,_;t[14]!==o||t[15]!==c||t[16]!==n.length?(g=()=>{n.length===0&&o!==null&&c(null)},_=[o,n.length,c],t[14]=o,t[15]=c,t[16]=n.length,t[17]=g,t[18]=_):(g=t[17],_=t[18]),(0,p.useEffect)(g,_)}function C(e,t,n,r){t.panelId===`chat`?n({type:s.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}function w(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let a=n.filter(e=>e.id!==t);return r?i:a[0]?.id??null}function T(e,t,n,r){if(e!==t)return e;let a=n.filter(e=>e.id!==t);return r?i:a[0]?.id??`primary`}function E(e,t,n){return t.length===0?null:e===`primary`?n:e}function D(e,t){return e===`primary`&&t?t:e}function O(e){let t=(0,m.c)(57),{children:n}=e,r=l(),a=c(),d=u(re),f=u(ne),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[],t[0]=h):h=t[0];let[_,v]=(0,p.useState)(h),[O,k]=(0,p.useState)(!0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(i),[ie,P]=(0,p.useState)(null),F;t[1]===f?F=t[2]:(F=Object.keys(f).map(te),t[1]=f,t[2]=F);let ae=F,I;t[3]!==ae||t[4]!==_?(I=[...ae,..._],t[3]=ae,t[4]=_,t[5]=I):I=t[5];let L=I,R;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>{v([]),k(!0),j(null),N(i),P(null)},t[6]=R):R=t[6];let oe=R,z;t[7]===a?z=t[8]:(z=e=>{let t=g(e,a.getState().selectedThreadId);v(t.nonChatWindows),j(t.expandedWindowId),N(t.selectedWindowId),P(null)},t[7]=a,t[8]=z);let se=z,B;t[9]!==A||t[10]!==se||t[11]!==_||t[12]!==M?(B={nonChatWindows:_,expandedWindowId:A,selectedWindowId:M,onReset:oe,onHydrate:se},t[9]=A,t[10]=se,t[11]=_,t[12]=M,t[13]=B):B=t[13],y(B);let V;t[14]!==A||t[15]!==f||t[16]!==O||t[17]!==M||t[18]!==L?(V={windows:L,extraChatPanes:f,primaryChatOpen:O,expandedWindowId:A,selectedWindowId:M,setExpandedWindowId:j,setSelectedWindowId:N},t[14]=A,t[15]=f,t[16]=O,t[17]=M,t[18]=L,t[19]=V):V=t[19],S(V);let H;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{N(e)},t[20]=H):H=t[20];let ce=H,U;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(U=e=>{N(e),j(e)},t[21]=U):U=t[21];let le=U,W;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>{j(null)},t[22]=W):W=t[22];let ue=W,G;t[23]!==O||t[24]!==L.length?(G=e=>{e===`primary`&&k(!0),j(t=>t===null&&L.length>0||t===null&&O&&e!==`primary`?null:e),P(e)},t[23]=O,t[24]=L.length,t[25]=G):G=t[25];let K=G,q;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(q=()=>{P(null)},t[26]=q):q=t[26];let de=q,J;t[27]!==r||t[28]!==K||t[29]!==d?(J=e=>{let t=o();return e===`chat`?d?(r({type:s.AddChatPane,paneId:t,conversationId:o()}),K(t),t):t:(v(n=>[...n,{id:t,panelId:e}]),K(t),t)},t[27]=r,t[28]=K,t[29]=d,t[30]=J):J=t[30];let fe=J,Y;t[31]!==r||t[32]!==O||t[33]!==L?(Y=e=>{if(e===`primary`){k(!1);let e=L[0]?.id??null;j(t=>E(t,L,e)),N(t=>D(t,e));return}let t=L.find(t=>t.id===e);t&&(C(e,t,r,v),j(t=>w(t,e,L,O)),N(t=>T(t,e,L,O)))},t[31]=r,t[32]=O,t[33]=L,t[34]=Y):Y=t[34];let pe=Y,X;t[35]!==r||t[36]!==L?(X=()=>{j(null),N(i),k(!0);for(let e of L)e.panelId===`chat`&&r({type:s.RemoveChatPane,paneId:e.id});v([])},t[35]=r,t[36]=L,t[37]=X):X=t[37];let me=X,Z;t[38]!==O||t[39]!==L?(Z=e=>e===`chat`?O||L.some(ee):L.some(t=>t.panelId===e),t[38]=O,t[39]=L,t[40]=Z):Z=t[40];let he=Z,ge=L.length>0,_e=A!==null,Q;t[41]!==fe||t[42]!==me||t[43]!==pe||t[44]!==A||t[45]!==ge||t[46]!==_e||t[47]!==he||t[48]!==ie||t[49]!==O||t[50]!==K||t[51]!==M||t[52]!==L?(Q={windows:L,addWindow:fe,closeWindow:pe,closeAllWindows:me,isPrimaryChatOpen:O,isPanelOpen:he,hasOpenWindows:ge,isLayoutExpanded:_e,expandedWindowId:A,expandWindow:le,collapseLayout:ue,selectedWindowId:M,selectWindow:ce,revealWindow:K,pendingScrollWindowId:ie,clearPendingScrollWindow:de},t[41]=fe,t[42]=me,t[43]=pe,t[44]=A,t[45]=ge,t[46]=_e,t[47]=he,t[48]=ie,t[49]=O,t[50]=K,t[51]=M,t[52]=L,t[53]=Q):Q=t[53];let ve=Q,$;return t[54]!==n||t[55]!==ve?($=(0,b.jsx)(x.Provider,{value:ve,children:n}),t[54]=n,t[55]=ve,t[56]=$):$=t[56],$}function ee(e){return e.panelId===`chat`}function te(e){return{id:e,panelId:`chat`}}function ne(e){return e.extraChatPanes}function re(e){return e.selectedThreadId}function k(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{k as n,O as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ot as i}from"./dist-BWuYHVi8.js";import{An as a,Dn as o,g as s,h as c,l,t as u,u as d,xn as f}from"./dist-DIjomljy.js";import{t as p}from"./utils-CT-Dw22R.js";import{_ as m,a as h,c as g,d as ee,f as te,g as ne,h as re,i as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as fe,u as pe}from"./dist-DjKXDRW7.js";var _=t(),v=e(n(),1),y=r(),b=`ContextMenu`,[me,he]=c(b,[m]),x=m(),[ge,S]=me(b),C=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=v.useState(!1),c=x(t),u=l(r),d=v.useCallback(e=>{s(e),u(e)},[u]);return(0,y.jsx)(ge,{scope:t,open:o,onOpenChange:d,modal:a,children:(0,y.jsx)(te,{...c,dir:i,open:o,onOpenChange:d,modal:a,children:n})})};C.displayName=b;var w=`ContextMenuTrigger`,T=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=S(w,n),o=x(n),c=v.useRef({x:0,y:0}),l=v.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...c.current})}),u=v.useRef(0),f=v.useCallback(()=>window.clearTimeout(u.current),[]),p=e=>{c.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return v.useEffect(()=>f,[f]),v.useEffect(()=>void(r&&f()),[r,f]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(fe,{...o,virtualRef:l}),(0,y.jsx)(d.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:s(e.onContextMenu,e=>{f(),p(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:s(e.onPointerDown,V(e=>{f(),u.current=window.setTimeout(()=>p(e),700)})),onPointerMove:r?e.onPointerMove:s(e.onPointerMove,V(f)),onPointerCancel:r?e.onPointerCancel:s(e.onPointerCancel,V(f)),onPointerUp:r?e.onPointerUp:s(e.onPointerUp,V(f))})]})});T.displayName=w;var _e=`ContextMenuPortal`,E=e=>{let{__scopeContextMenu:t,...n}=e,r=x(t);return(0,y.jsx)(ae,{...r,...n})};E.displayName=_e;var D=`ContextMenuContent`,O=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=S(D,n),a=x(n),o=v.useRef(!1);return(0,y.jsx)(ie,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});O.displayName=D;var ve=`ContextMenuGroup`,ye=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(h,{...i,...r,ref:t})});ye.displayName=ve;var be=`ContextMenuLabel`,k=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(g,{...i,...r,ref:t})});k.displayName=be;var A=`ContextMenuItem`,j=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ce,{...i,...r,ref:t})});j.displayName=A;var M=`ContextMenuCheckboxItem`,N=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ue,{...i,...r,ref:t})});N.displayName=M;var xe=`ContextMenuRadioGroup`,Se=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(pe,{...i,...r,ref:t})});Se.displayName=xe;var Ce=`ContextMenuRadioItem`,P=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ee,{...i,...r,ref:t})});P.displayName=Ce;var we=`ContextMenuItemIndicator`,F=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(de,{...i,...r,ref:t})});F.displayName=we;var I=`ContextMenuSeparator`,L=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(le,{...i,...r,ref:t})});L.displayName=I;var Te=`ContextMenuArrow`,Ee=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(se,{...i,...r,ref:t})});Ee.displayName=Te;var R=`ContextMenuSub`,De=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=x(t),[s,c]=u({prop:i,defaultProp:a??!1,onChange:r,caller:R});return(0,y.jsx)(oe,{...o,open:s,onOpenChange:c,children:n})};De.displayName=R;var Oe=`ContextMenuSubTrigger`,z=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ne,{...i,...r,ref:t})});z.displayName=Oe;var ke=`ContextMenuSubContent`,B=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(re,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});B.displayName=ke;function V(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Ae=C,je=T,Me=E,H=O,U=k,W=j,G=N,K=P,q=F,J=L,Y=z,X=B,Ne=Ae,Pe=je,Fe=v.forwardRef((e,t)=>{let n=(0,_.c)(14),r,a,s,c;n[0]===e?(r=n[1],a=n[2],s=n[3],c=n[4]):({className:a,inset:s,children:r,...c}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s,n[4]=c);let l;n[5]!==a||n[6]!==s?(l=p(p(i.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),s&&`pl-8`,a),n[5]=a,n[6]=s,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,y.jsx)(o,{className:`ml-auto h-4 w-4`}),n[8]=u):u=n[8];let d;return n[9]!==r||n[10]!==c||n[11]!==t||n[12]!==l?(d=(0,y.jsxs)(Y,{ref:t,className:l,...c,children:[r,u]}),n[9]=r,n[10]=c,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});Fe.displayName=Y.displayName;var Ie=v.forwardRef((e,t)=>{let n=(0,_.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=p(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,y.jsx)(X,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ie.displayName=X.displayName;var Z=v.forwardRef((e,t)=>{let n=(0,_.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=p(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,y.jsx)(Me,{children:(0,y.jsx)(H,{ref:t,className:a,...i})}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Z.displayName=H.displayName;var Q=v.forwardRef((e,t)=>{let n=(0,_.c)(11),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:r,inset:a,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s;n[4]!==r||n[5]!==a?(s=p(p(i.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=s):s=n[6];let c;return n[7]!==o||n[8]!==t||n[9]!==s?(c=(0,y.jsx)(W,{ref:t,className:s,...o}),n[7]=o,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});Q.displayName=W.displayName;var Le=v.forwardRef((e,t)=>{let n=(0,_.c)(14),r,o,s,c;n[0]===e?(r=n[1],o=n[2],s=n[3],c=n[4]):({className:s,children:o,checked:r,...c}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s,n[4]=c);let l;n[5]===s?l=n[6]:(l=p(p(i.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),s),n[5]=s,n[6]=l);let u;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,y.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,y.jsx)(q,{children:(0,y.jsx)(a,{className:`h-4 w-4`})})}),n[7]=u):u=n[7];let d;return n[8]!==r||n[9]!==o||n[10]!==c||n[11]!==t||n[12]!==l?(d=(0,y.jsxs)(G,{ref:t,className:l,checked:r,...c,children:[u,o]}),n[8]=r,n[9]=o,n[10]=c,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});Le.displayName=G.displayName;var Re=v.forwardRef((e,t)=>{let n=(0,_.c)(12),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:a,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s;n[4]===a?s=n[5]:(s=p(p(i.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a),n[4]=a,n[5]=s);let c;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,y.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,y.jsx)(q,{children:(0,y.jsx)(f,{className:`h-2 w-2 fill-current`})})}),n[6]=c):c=n[6];let l;return n[7]!==r||n[8]!==o||n[9]!==t||n[10]!==s?(l=(0,y.jsxs)(K,{ref:t,className:s,...o,children:[c,r]}),n[7]=r,n[8]=o,n[9]=t,n[10]=s,n[11]=l):l=n[11],l});Re.displayName=K.displayName;var ze=v.forwardRef((e,t)=>{let n=(0,_.c)(11),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:r,inset:a,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s;n[4]!==r||n[5]!==a?(s=p(p(i.body,`px-2 py-1.5 font-semibold text-foreground`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=s):s=n[6];let c;return n[7]!==o||n[8]!==t||n[9]!==s?(c=(0,y.jsx)(U,{ref:t,className:s,...o}),n[7]=o,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});ze.displayName=U.displayName;var $=v.forwardRef((e,t)=>{let n=(0,_.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=p(`-mx-1 my-1 h-px bg-divider`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,y.jsx)(J,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});$.displayName=J.displayName;var Be=e=>{let t=(0,_.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=p(i.compact,`ml-auto tracking-widest text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,y.jsx)(`span`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};Be.displayName=`ContextMenuShortcut`;export{Pe as a,$ as i,Z as n,Q as r,Ne as t};
@@ -1,6 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Dt as i,Et as a,S as o,ot as s}from"./dist-BWuYHVi8.js";import{dn as c}from"./dist-DIjomljy.js";import{t as l}from"./utils-CT-Dw22R.js";import{t as u}from"./button-DeNw35VZ.js";import{Kt as d,Li as f,Mt as p,Si as m,_i as h,c as g,ei as _,ki as v,li as y}from"./api-BMo_Lz8f.js";import{n as b}from"./scroll-area-nbNFO91g.js";import{a as x,i as S,o as C,r as w,s as T,t as E}from"./dialog-Do98zzAW.js";import{Ft as D,M as O,Pt as k}from"./index-DjaVbFDB.js";import{n as A,t as ee}from"./toggle-group-5tREtjoW.js";import{r as j}from"./commit-method-fields-CD3PTIox.js";var M=e(n(),1),N=t(),P={"angular-standalone":`logo-angular.svg`,"custom-angular":`logo-angular.svg`,react:`logo-react.svg`,"vite-react":`logo-react.svg`,vue:`logo-vue.svg`,"vite-vue":`logo-vue.svg`,"custom-svelte":`logo-svelte.svg`,"custom-ionic-svelte":`logo-svelte.svg`,"vite-svelte":`logo-svelte.svg`,"vite-solid":`logo-solid.svg`,astro:`logo-astro.svg`,nextjs:`logo-nextjs.svg`,nuxt:`logo-nuxt.svg`,"vite-qwik":`logo-qwik.svg`,"vite-preact":`logo-preact.svg`,"vite-lit":`logo-lit.svg`,"vite-web":`logo-web.svg`,"tanstack-start":`logo-vite.svg`,waku:`logo-waku.svg`,hydrogen:`logo-hydrogen.svg`,plugin:`logo-capacitor.svg`};function te(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ne(e,t,n){return e===2&&t===`clone`?{title:`Clone Repository`,description:`Enter a git repository URL to clone.`}:e===2&&t===`webapp`?{title:`Create App`,description:`Choose a template type.`}:e===3&&t===`clone`?{title:`Clone Repository`,description:`Choose commit workflow.`}:e===3&&t===`folder`?{title:`Blank Starter`,description:`Enter a project name.`}:e===3&&t===`webapp`?{title:n===`Capacitor Plugin`?`Create Capacitor Plugin`:n?`Create ${n} App`:`Create App`,description:`Name your project and choose variation, package manager, and commit workflow.`}:{title:``,description:``}}var re=o(`app.create-project-dialog.ui`);async function ie(){try{if(await g())return!0;if(!window.confirm(`Vite Plus is required for this template but is not installed.
2
-
3
- Is it ok to install Vite Plus using the following command?
4
-
5
- macOS / Linux: curl -fsSL https://vite.plus | bash
6
- Windows: irm https://vite.plus/ps1 | iex`))return!1;let{success:e,error:t}=await d();return e?!0:(window.alert(`Failed to install Vite Plus:\n${t||`Unknown error`}`),!1)}catch(e){return re.error(`Vite Plus check/install failed:`,e),!0}}function ae(e){let t=(0,N.c)(38),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,i]=(0,M.useState)(n),[a,o]=(0,M.useState)(!1),s=Array.isArray(r)&&r.length>0,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{o(!0),p().then(e=>i(e?.templates||[])).catch(()=>i([])).finally(()=>o(!1))},t[1]=c):c=t[1];let l=c,u,d;if(t[2]!==r){if(u={},Array.isArray(r))for(let e of r){let t=e.typeName;u[t]||(u[t]=[]),u[t].push(e)}d=Object.keys(u).sort(),t[2]=r,t[3]=u,t[4]=d}else u=t[3],d=t[4];let m=d,h;t[5]!==u||t[6]!==m?(h={typeNames:m,templatesByTypeName:u},t[5]=u,t[6]=m,t[7]=h):h=t[7];let{typeNames:g,templatesByTypeName:_}=h,v;if(t[8]!==_){v={};for(let e of Object.keys(_)){let t=_[e]??[];if(t.length===0)continue;let n=t.find(le),r=t.filter(ce),i=n?[n,...r]:t;v[e]=i[0].id}t[8]=_,t[9]=v}else v=t[9];let y=v,b;bb0:{if(!Array.isArray(r)){b=e;break bb0}if(r.find(t=>t.id===e)){b=e;break bb0}if(r.length===0){b=e;break bb0}let n=g[0],i;t[10]!==n||t[11]!==_?(i=n?_[n]??[]:[],t[10]=n,t[11]=_,t[12]=i):i=t[12];let a=i,o;t[13]===a?o=t[14]:(o=a.find(se),t[13]=a,t[14]=o),b=(o??a[0])?.id??e}let x=b,S;bb1:{if(!x||!Array.isArray(r)||r.length===0){S=null;break bb1}let e;t[15]!==x||t[16]!==r?(e=r.find(e=>e.id===x)?.typeName??null,t[15]=x,t[16]=r,t[17]=e):e=t[17],S=e}let C=S,w;if(t[18]!==C||t[19]!==_){bb2:{let e=C?_[C]??[]:[];if(e.length<=1){w=e;break bb2}let t=e.find(oe),n=e.filter(F);w=t?[t,...n]:e}t[18]=C,t[19]=_,t[20]=w}else w=t[20];let T=w,E;t[21]!==x||t[22]!==r?(E=x&&Array.isArray(r)?r.find(e=>e.id===x):null,t[21]=x,t[22]=r,t[23]=E):E=t[23];let D=E,O,k;t[24]===x?(O=t[25],k=t[26]):(O=()=>{x&&f(x)},k=[x],t[24]=x,t[25]=O,t[26]=k),(0,M.useEffect)(O,k);let A;return t[27]!==x||t[28]!==y||t[29]!==s||t[30]!==D||t[31]!==C||t[32]!==r||t[33]!==_||t[34]!==a||t[35]!==g||t[36]!==T?(A={templates:r,templatesLoading:a,hasTemplates:s,loadTemplates:l,typeNames:g,templatesByTypeName:_,firstVariationIdByTypeName:y,effectiveTemplateId:x,selectedTypeNameFromEffective:C,variations:T,selectedTemplate:D},t[27]=x,t[28]=y,t[29]=s,t[30]=D,t[31]=C,t[32]=r,t[33]=_,t[34]=a,t[35]=g,t[36]=T,t[37]=A):A=t[37],A}function F(e){return e.variationName!==`Starter`}function oe(e){return e.variationName===`Starter`}function se(e){return e.variationName===`Starter`}function ce(e){return e.variationName!==`Starter`}function le(e){return e.variationName===`Starter`}var I=r();function L(e){let t=(0,N.c)(10),{gitUrl:n,onGitUrlChange:r,canProceed:i,onNext:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,I.jsx)(k,{htmlFor:`gitUrl`,children:`Repository URL`}),t[0]=o):o=t[0];let s;t[1]===r?s=t[2]:(s=e=>r(e.target.value),t[1]=r,t[2]=s);let c;t[3]!==i||t[4]!==a?(c=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=c):c=t[5];let l;return t[6]!==n||t[7]!==s||t[8]!==c?(l=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsx)(`div`,{className:`px-6 py-4`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,I.jsx)(D,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:n,onChange:s,onKeyDown:c,autoFocus:!0})]})})}),t[6]=n,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function ue(e){let t=(0,N.c)(11),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:c,onSelectType:u,onSelectTypeAndAdvance:d}=e,f;t[0]!==o||t[1]!==c||t[2]!==u||t[3]!==d||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(f=n?(0,I.jsx)(`p`,{className:l(s.bodyMuted,`col-span-full p-4`),children:`Loading…`}):r.map(e=>{let t=i[e]?.[0]?.type,n=t?P[t]:null,r=a===e;return(0,I.jsxs)(`button`,{type:`button`,onClick:()=>u(e),onDoubleClick:()=>d(e),className:l(`group flex flex-col items-center gap-0 rounded-lg px-1 py-1 text-center transition-colors`,r?`text-accent-foreground`:`text-foreground`),children:[(0,I.jsx)(`div`,{className:l(`relative flex size-20 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-[hsl(0_0%_35%)] bg-gradient-to-br from-[hsl(0_0%_35%)] to-[hsl(0_0%_25%)] text-white/70 transition-transform can-hover:group-hover:scale-[1.03]`,r&&`ring-[3px] ring-brand`),children:n?(0,I.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:l(`relative size-8 shrink-0 transition-opacity duration-300`,o.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>c(n),"aria-hidden":!0}):null}),(0,I.jsx)(`span`,{className:l(s.compact,`w-full truncate pt-1 font-medium`),children:e})]},e)}),t[0]=o,t[1]=c,t[2]=u,t[3]=d,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=f):f=t[8];let p;return t[9]===f?p=t[10]:(p=(0,I.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,I.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,I.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,I.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-1 p-1 mr-2`,children:f})})})}),t[9]=f,t[10]=p),p}function de(e){let t=(0,N.c)(17),{projectName:n,onProjectNameChange:r,canSubmit:i,onSubmit:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,I.jsx)(k,{htmlFor:`folderProjectName`,children:`Project Name`}),t[0]=o):o=t[0];let c;t[1]===r?c=t[2]:(c=e=>r(e.target.value),t[1]=r,t[2]=c);let l;t[3]!==i||t[4]!==a?(l=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==c||t[8]!==l?(u=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,I.jsx)(D,{id:`folderProjectName`,placeholder:`My Project`,value:n,onChange:c,onKeyDown:l,autoFocus:!0,className:`w-full`})]}),t[6]=n,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===n?d=t[11]:(d=te(n)||`project-name`,t[10]=n,t[11]=d);let f;t[12]===d?f=t[13]:(f=(0,I.jsxs)(`p`,{className:s.bodyMuted,children:[`Folder name: `,d]}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-3`,children:[u,f]})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function fe(e){let t=(0,N.c)(33),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:o,onTemplateIdChange:l,selectedTemplate:u,packageManager:d,onPackageManagerChange:f,commitMethod:p,onCommitMethodChange:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,I.jsx)(k,{htmlFor:`projectName`,children:`Project Name`}),t[0]=h):h=t[0];let g;t[1]===r?g=t[2]:(g=e=>r(e.target.value),t[1]=r,t[2]=g);let _;t[3]!==n||t[4]!==g?(_=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[h,(0,I.jsx)(D,{id:`projectName`,placeholder:`My App`,value:n,onChange:g,className:`w-full`})]}),t[3]=n,t[4]=g,t[5]=_):_=t[5];let v;t[6]!==o||t[7]!==l||t[8]!==i?(v=i.length>1&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(k,{children:`Variation`}),(0,I.jsx)(ee,{type:`single`,value:o,onValueChange:e=>e&&l(e),variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:i.map(me)})]}),t[6]=o,t[7]=l,t[8]=i,t[9]=v):v=t[9];let y=u?.description??i[0]?.description??``,x;t[10]===u?x=t[11]:(x=u?.url&&(0,I.jsxs)(I.Fragment,{children:[` `,(0,I.jsxs)(`a`,{href:u.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,I.jsx)(c,{className:`h-3 w-3`})]})]}),t[10]=u,t[11]=x);let S;t[12]!==y||t[13]!==x?(S=(0,I.jsxs)(`p`,{className:s.bodyMuted,children:[y,x]}),t[12]=y,t[13]=x,t[14]=S):S=t[14];let C;t[15]!==v||t[16]!==S?(C=(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v,S]}),t[15]=v,t[16]=S,t[17]=C):C=t[17];let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,I.jsx)(k,{children:`Package manager`}),t[18]=w):w=t[18];let T;t[19]===f?T=t[20]:(T=e=>{e&&f(e)},t[19]=f,t[20]=T);let E;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(E=Object.values(a).map(pe),t[21]=E):E=t[21];let O;t[22]!==d||t[23]!==T?(O=(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[w,(0,I.jsx)(ee,{type:`single`,value:d,onValueChange:T,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:E})]}),t[22]=d,t[23]=T,t[24]=O):O=t[24];let A;t[25]!==p||t[26]!==m?(A=(0,I.jsx)(j,{commitMethod:p,onCommitMethodChange:m}),t[25]=p,t[26]=m,t[27]=A):A=t[27];let M;return t[28]!==O||t[29]!==A||t[30]!==_||t[31]!==C?(M=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[_,C,O,A]})}),t[28]=O,t[29]=A,t[30]=_,t[31]=C,t[32]=M):M=t[32],M}function pe(e){return(0,I.jsx)(A,{value:e.id,className:s.body,children:e.label},e.id)}function me(e){return(0,I.jsx)(A,{value:e.id,className:s.body,children:e.variationName},e.id)}function he(e){return e===`folder`?3:2}function ge(e){return e===`folder`?{projectName:``,projectNameUserEdited:!1,loadedImages:new Set}:{projectName:`My App`,projectNameUserEdited:!1,loadedImages:new Set}}function _e(e){let t=(0,N.c)(5),{canGoToStep3:n,gitUrl:r,onGitUrlChange:i,onNext:a}=e,o;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a?(o=(0,I.jsx)(L,{gitUrl:r,onGitUrlChange:i,canProceed:n,onNext:a}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o):o=t[4],o}function ve(e){let t=(0,N.c)(9),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeNameFromEffective:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}=e,u;return t[0]!==o||t[1]!==s||t[2]!==c||t[3]!==l||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(u=(0,I.jsx)(ue,{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}),t[0]=o,t[1]=s,t[2]=c,t[3]=l,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=u):u=t[8],u}function ye(e){let t=(0,N.c)(5),{canGoToStep3:n,projectName:r,onProjectNameChange:i,onSubmitFolder:a}=e,o;return t[0]!==n||t[1]!==i||t[2]!==a||t[3]!==r?(o=(0,I.jsx)(de,{projectName:r,onProjectNameChange:i,canSubmit:n,onSubmit:a}),t[0]=n,t[1]=i,t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function be(e){let t=(0,N.c)(11),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}=e,f;return t[0]!==u||t[1]!==a||t[2]!==d||t[3]!==l||t[4]!==r||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==s||t[9]!==i?(f=(0,I.jsx)(fe,{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}),t[0]=u,t[1]=a,t[2]=d,t[3]=l,t[4]=r,t[5]=o,t[6]=c,t[7]=n,t[8]=s,t[9]=i,t[10]=f):f=t[10],f}function xe(e){let t=(0,N.c)(3),{commitMethod:n,onCommitMethodChange:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,I.jsx)(b,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-6 px-6 py-4`,children:(0,I.jsx)(j,{commitMethod:n,onCommitMethodChange:r})})}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Se(e){let t=(0,N.c)(33),{step:n,mode:r,canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s,templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h,projectName:g,onProjectNameChange:_,onSubmitFolder:v,projectNameDisplay:y,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}=e;switch(`${n}:${r}`){case`2:clone`:{let e;return t[0]!==i||t[1]!==a||t[2]!==o||t[3]!==s?(e=(0,I.jsx)(_e,{canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s}),t[0]=i,t[1]=a,t[2]=o,t[3]=s,t[4]=e):e=t[4],e}case`2:webapp`:{let e;return t[5]!==f||t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==d||t[10]!==u||t[11]!==c||t[12]!==l?(e=(0,I.jsx)(ve,{templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h}),t[5]=f,t[6]=p,t[7]=m,t[8]=h,t[9]=d,t[10]=u,t[11]=c,t[12]=l,t[13]=e):e=t[13],e}case`3:folder`:{let e;return t[14]!==i||t[15]!==_||t[16]!==v||t[17]!==g?(e=(0,I.jsx)(ye,{canGoToStep3:i,projectName:g,onProjectNameChange:_,onSubmitFolder:v}),t[14]=i,t[15]=_,t[16]=v,t[17]=g,t[18]=e):e=t[18],e}case`3:webapp`:{let e;return t[19]!==E||t[20]!==x||t[21]!==D||t[22]!==T||t[23]!==_||t[24]!==S||t[25]!==w||t[26]!==y||t[27]!==C||t[28]!==b?(e=(0,I.jsx)(be,{projectNameDisplay:y,onProjectNameChange:_,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}),t[19]=E,t[20]=x,t[21]=D,t[22]=T,t[23]=_,t[24]=S,t[25]=w,t[26]=y,t[27]=C,t[28]=b,t[29]=e):e=t[29],e}default:{let e;return t[30]!==E||t[31]!==D?(e=(0,I.jsx)(xe,{commitMethod:E,onCommitMethodChange:D}),t[30]=E,t[31]=D,t[32]=e):e=t[32],e}}}function Ce(e){let t=(0,N.c)(30),{step:n,mode:r,canGoToStep3:i,projectName:a,projectNameDisplay:o,isCheckingVp:s,onBack:c,onNext:l,onSubmitClone:d,onSubmitFolder:f,onSubmitWebApp:p}=e,m;t[0]!==r||t[1]!==c||t[2]!==n?(m=n===3&&r!==`folder`&&(0,I.jsx)(u,{variant:`ghost`,onClick:c,children:`Back`}),t[0]=r,t[1]=c,t[2]=n,t[3]=m):m=t[3];let h;t[4]!==i||t[5]!==r||t[6]!==l||t[7]!==n?(h=n===2&&r!==`folder`&&(0,I.jsx)(u,{onClick:l,disabled:!i,children:`Next`}),t[4]=i,t[5]=r,t[6]=l,t[7]=n,t[8]=h):h=t[8];let g;t[9]!==r||t[10]!==d||t[11]!==n?(g=n===3&&r===`clone`&&(0,I.jsx)(u,{onClick:d,children:`Create Project`}),t[9]=r,t[10]=d,t[11]=n,t[12]=g):g=t[12];let _;t[13]!==r||t[14]!==f||t[15]!==a||t[16]!==n?(_=n===3&&r===`folder`&&(0,I.jsx)(u,{onClick:f,disabled:!a.trim()||!te(a),children:`Create Project`}),t[13]=r,t[14]=f,t[15]=a,t[16]=n,t[17]=_):_=t[17];let v;t[18]!==s||t[19]!==r||t[20]!==p||t[21]!==o||t[22]!==n?(v=n===3&&r===`webapp`&&(0,I.jsx)(u,{onClick:p,disabled:!o.trim()||s,children:s?`Preparing...`:`Create Project`}),t[18]=s,t[19]=r,t[20]=p,t[21]=o,t[22]=n,t[23]=v):v=t[23];let y;return t[24]!==m||t[25]!==h||t[26]!==g||t[27]!==_||t[28]!==v?(y=(0,I.jsx)(`div`,{className:`flex min-h-[4.5rem] flex-col justify-end border-t border-border bg-muted/10 px-6 py-4`,children:(0,I.jsxs)(x,{children:[m,h,g,_,v]})}),t[24]=m,t[25]=h,t[26]=g,t[27]=_,t[28]=v,t[29]=y):y=t[29],y}function R(e){let t=(0,N.c)(117),{open:n,onOpenChange:r,onDialogDismissed:a,initialMode:o,onSubmitClone:s,onSubmitWebApp:c,onSubmitFolder:l}=e,[u,d]=(0,M.useState)(o??`clone`),f=o??`clone`,p;t[0]===f?p=t[1]:(p=he(f),t[0]=f,t[1]=p);let[g,b]=(0,M.useState)(p),[x,D]=(0,M.useState)(``),k;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(k=_(i.PullRequest),t[2]=k):k=t[2];let[A,ee]=(0,M.useState)(k),[j,P]=(0,M.useState)(`My App`),[re,F]=(0,M.useState)(!1),oe;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(oe=h(),t[3]=oe):oe=t[3];let[se,ce]=(0,M.useState)(oe),le;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(le=y(),t[4]=le):le=t[4];let[L,ue]=(0,M.useState)(le),[de,fe]=(0,M.useState)(!1),pe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(pe=new Set,t[5]=pe):pe=t[5];let[me,_e]=(0,M.useState)(pe),ve;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(ve=e=>{_e(t=>new Set(t).add(e))},t[6]=ve):ve=t[6];let ye=ve,{templatesLoading:be,hasTemplates:xe,loadTemplates:R,typeNames:Te,templatesByTypeName:Ee,firstVariationIdByTypeName:z,effectiveTemplateId:B,selectedTypeNameFromEffective:V,variations:De,selectedTemplate:H}=ae(se),Oe,ke;t[7]!==xe||t[8]!==o||t[9]!==R||t[10]!==n?(Oe=()=>{if(!n||!o)return;let e=ge(o);d(o),b(he(o)),D(``),P(e.projectName),F(e.projectNameUserEdited),_e(e.loadedImages),o===`webapp`&&!xe&&R()},ke=[n,o,xe,R],t[7]=xe,t[8]=o,t[9]=R,t[10]=n,t[11]=Oe,t[12]=ke):(Oe=t[11],ke=t[12]),(0,M.useEffect)(Oe,ke);let U=re?j:V?`My ${V} App`:`My App`,Ae;t[13]!==a||t[14]!==r?(Ae=function(){a?.(),d(`clone`),b(2),D(``),P(`My App`),F(!1),_e(new Set),r(!1)},t[13]=a,t[14]=r,t[15]=Ae):Ae=t[15];let W=Ae,je;t[16]!==g||t[17]!==u||t[18]!==W?(je=function(){if(g===2||u===`folder`){W();return}b(2)},t[16]=g,t[17]=u,t[18]=W,t[19]=je):je=t[19];let Me=je,Ne;t[20]!==x||t[21]!==u||t[22]!==j||t[23]!==V?(Ne=u===`clone`?x.trim().length>0:u===`folder`?j.trim().length>0&&!!te(j):V!==null,t[20]=x,t[21]=u,t[22]=j,t[23]=V,t[24]=Ne):Ne=t[24];let G=Ne,Pe;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=function(e){ee(e),m(e)},t[25]=Pe):Pe=t[25];let Fe=Pe,Ie;t[26]!==A||t[27]!==x||t[28]!==r||t[29]!==s?(Ie=function(){if(!x.trim())return;let e=x.trim();D(``),b(2),r(!1),d(`clone`),s(e,A).catch(we)},t[26]=A,t[27]=x,t[28]=r,t[29]=s,t[30]=Ie):Ie=t[30];let Le=Ie,Re;t[31]!==B||t[32]!==r||t[33]!==c||t[34]!==L||t[35]!==U||t[36]!==H?.variation?(Re=async function(){if(!U.trim()||!B||!te(U))return;if(H?.variation===`vite-plus`){fe(!0);let e=await ie();if(fe(!1),!e)return}let e=U.trim();P(``),F(!1),b(2),r(!1),d(`clone`),c(e,B,L)},t[31]=B,t[32]=r,t[33]=c,t[34]=L,t[35]=U,t[36]=H?.variation,t[37]=Re):Re=t[37];let ze=Re,Be;t[38]!==r||t[39]!==l||t[40]!==j?(Be=function(){let e=j.trim();!e||!te(e)||(P(``),F(!1),b(2),r(!1),d(`clone`),l(e))},t[38]=r,t[39]=l,t[40]=j,t[41]=Be):Be=t[41];let K=Be,q=g,Ve=u===`folder`?1:g-1,He;t[42]!==G||t[43]!==g||t[44]!==u?(He=function(e){return u===`folder`?e===1:e===1?g>2:g>=3||g===2&&G},t[42]=G,t[43]=g,t[44]=u,t[45]=He):He=t[45];let Ue=He,We;t[46]===u?We=t[47]:(We=function(e){u!==`folder`&&b(e===1?2:3)},t[46]=u,t[47]=We);let Ge=We,Ke;t[48]!==u||t[49]!==V||t[50]!==q?(Ke=ne(q,u,V),t[48]=u,t[49]=V,t[50]=q,t[51]=Ke):Ke=t[51];let J=Ke,qe=u!==`folder`,Je;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Je=function(e){P(e),F(!0)},t[52]=Je):Je=t[52];let Ye=Je,Xe;t[53]===z?Xe=t[54]:(Xe=function(e){ce(z[e]??``)},t[53]=z,t[54]=Xe);let Ze=Xe,Qe;t[55]===z?Qe=t[56]:(Qe=function(e){ce(z[e]??``),b(3)},t[55]=z,t[56]=Qe);let $e=Qe,et;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(et=function(e){ue(e),v(e)},t[57]=et):et=t[57];let tt=et,nt;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(nt=function(){b(3)},t[58]=nt):nt=t[58];let rt=nt,Y;t[59]===W?Y=t[60]:(Y=e=>!e&&W(),t[59]=W,t[60]=Y);let X;t[61]!==Ue||t[62]!==Ve||t[63]!==Ge||t[64]!==qe?(X=qe?(0,I.jsx)(O,{currentStep:Ve,canGoToStep:Ue,onGoToStep:Ge}):null,t[61]=Ue,t[62]=Ve,t[63]=Ge,t[64]=qe,t[65]=X):X=t[65];let Z;t[66]===J.title?Z=t[67]:(Z=(0,I.jsx)(T,{children:J.title}),t[66]=J.title,t[67]=Z);let it;t[68]===J.description?it=t[69]:(it=(0,I.jsx)(S,{children:J.description}),t[68]=J.description,t[69]=it);let Q;t[70]!==Z||t[71]!==it?(Q=(0,I.jsxs)(C,{children:[Z,it]}),t[70]=Z,t[71]=it,t[72]=Q):Q=t[72];let at;t[73]!==X||t[74]!==Q?(at=(0,I.jsxs)(`div`,{className:`px-6 pb-2 pt-6`,children:[X,Q]}),t[73]=X,t[74]=Q,t[75]=at):at=t[75];let ot;t[76]!==G||t[77]!==A||t[78]!==B||t[79]!==x||t[80]!==Ze||t[81]!==$e||t[82]!==K||t[83]!==me||t[84]!==u||t[85]!==L||t[86]!==j||t[87]!==U||t[88]!==H||t[89]!==V||t[90]!==q||t[91]!==Ee||t[92]!==be||t[93]!==Te||t[94]!==De?(ot=(0,I.jsx)(Se,{step:q,mode:u,canGoToStep3:G,gitUrl:x,onGitUrlChange:D,onNext:rt,templatesLoading:be,typeNames:Te,templatesByTypeName:Ee,selectedTypeNameFromEffective:V,loadedImages:me,onImageLoad:ye,onSelectType:Ze,onSelectTypeAndAdvance:$e,projectName:j,onProjectNameChange:Ye,onSubmitFolder:K,projectNameDisplay:U,variations:De,effectiveTemplateId:B,onTemplateIdChange:ce,selectedTemplate:H,packageManager:L,onPackageManagerChange:tt,commitMethod:A,onCommitMethodChange:Fe}),t[76]=G,t[77]=A,t[78]=B,t[79]=x,t[80]=Ze,t[81]=$e,t[82]=K,t[83]=me,t[84]=u,t[85]=L,t[86]=j,t[87]=U,t[88]=H,t[89]=V,t[90]=q,t[91]=Ee,t[92]=be,t[93]=Te,t[94]=De,t[95]=ot):ot=t[95];let st;t[96]===ze?st=t[97]:(st=()=>void ze(),t[96]=ze,t[97]=st);let ct;t[98]!==G||t[99]!==Me||t[100]!==Le||t[101]!==K||t[102]!==de||t[103]!==u||t[104]!==j||t[105]!==U||t[106]!==q||t[107]!==st?(ct=(0,I.jsx)(Ce,{step:q,mode:u,canGoToStep3:G,projectName:j,projectNameDisplay:U,isCheckingVp:de,onBack:Me,onNext:rt,onSubmitClone:Le,onSubmitFolder:K,onSubmitWebApp:st}),t[98]=G,t[99]=Me,t[100]=Le,t[101]=K,t[102]=de,t[103]=u,t[104]=j,t[105]=U,t[106]=q,t[107]=st,t[108]=ct):ct=t[108];let $;t[109]!==at||t[110]!==ot||t[111]!==ct?($=(0,I.jsxs)(w,{className:`flex h-[min(42rem,90dvh)] max-w-2xl flex-col overflow-hidden p-0`,children:[at,ot,ct]}),t[109]=at,t[110]=ot,t[111]=ct,t[112]=$):$=t[112];let lt;return t[113]!==n||t[114]!==Y||t[115]!==$?(lt=(0,I.jsx)(E,{open:n,onOpenChange:Y,children:$}),t[113]=n,t[114]=Y,t[115]=$,t[116]=lt):lt=t[116],lt}function we(){}export{R as CreateProjectDialog,R as default};