tarsk 0.5.74 → 0.5.76

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 (167) hide show
  1. package/dist/bundled-skills/skill-creator/scripts/__tests__/quick_validate.test.js +79 -0
  2. package/dist/bundled-skills/skill-creator/scripts/quick_validate.js +78 -65
  3. package/dist/index.js +21828 -13103
  4. package/dist/jelly.webp +0 -0
  5. package/dist/public/assets/account-view-CWtpznW2.js +1 -0
  6. package/dist/public/assets/alert-dialog-BxMfaLuO.js +7 -0
  7. package/dist/public/assets/api-DX1ny6q-.js +2 -0
  8. package/dist/public/assets/async-error-boundary-BX1G17o9.js +1 -0
  9. package/dist/public/assets/async-loading-fallback-V0EaQ_Kn.js +1 -0
  10. package/dist/public/assets/browser-tab-D_5MLhxE.js +12 -0
  11. package/dist/public/assets/button-kWtLAMpB.js +1 -0
  12. package/dist/public/assets/card-B_EASkic.js +1 -0
  13. package/dist/public/assets/chat-dock-context-8K8Ikjgy.js +1 -0
  14. package/dist/public/assets/commit-dialog-CSXPoomw.js +1 -0
  15. package/dist/public/assets/commit-error-dialog-CdcGI69P.js +1 -0
  16. package/dist/public/assets/commit-method-fields-BtEHb0_G.js +1 -0
  17. package/dist/public/assets/context-menu-BcM6I0Sx.js +1 -0
  18. package/dist/public/assets/conversation-history-view-CuzU9qF6.js +1 -0
  19. package/dist/public/assets/create-project-dialog-a6Wgq-Z8.js +2 -0
  20. package/dist/public/assets/create-project-workspace-Dv_lEfZx.js +2 -0
  21. package/dist/public/assets/create-repo-dialog-BTIQ5Nw4.js +1 -0
  22. package/dist/public/assets/{delete-confirm-dialog-3DX1u0Dg.js → delete-confirm-dialog-Dl76vaxb.js} +1 -1
  23. package/dist/public/assets/diff-view-DA1uT9tc.js +4 -0
  24. package/dist/public/assets/dist-C2G92uPn.js +1 -0
  25. package/dist/public/assets/dist-CHhgoHp6.js +1 -0
  26. package/dist/public/assets/dist-CTLFS4dn.js +2 -0
  27. package/dist/public/assets/dist-D-2G8xGB.js +5 -0
  28. package/dist/public/assets/dist-DD4GtbiM.js +1 -0
  29. package/dist/public/assets/{dist-rO95BjzU.js → dist-DoxvnNEY.js} +1 -1
  30. package/dist/public/assets/dist-DsmF-KJ-.js +1 -0
  31. package/dist/public/assets/dist-c_QADQ5u.js +1 -0
  32. package/dist/public/assets/dist-yM5kyz9Q.js +1 -0
  33. package/dist/public/assets/es2015-BlPKkFZZ.js +41 -0
  34. package/dist/public/assets/explorer-monaco-editor-BdZ_bBqh.js +1 -0
  35. package/dist/public/assets/explorer-tab-view-CewTYYOm.js +2 -0
  36. package/dist/public/assets/explorer-tree-C0VDhihz.js +1 -0
  37. package/dist/public/assets/explorer-view-RCfDm3p5.js +76 -0
  38. package/dist/public/assets/git-history-dialog-DL0Trxiz.js +1 -0
  39. package/dist/public/assets/index-B3-5kIOf.js +3658 -0
  40. package/dist/public/assets/index-BLNUy5nZ.css +1 -0
  41. package/dist/public/assets/merged-pr-dialog-BzND8nzx.js +1 -0
  42. package/dist/public/assets/model-list-controls-I67L2x3H.js +1 -0
  43. package/dist/public/assets/onboarding-dialog-DY8v11hv.js +1 -0
  44. package/dist/public/assets/project-coding-view-DxOwsjtt.js +1 -0
  45. package/dist/public/assets/project-danger-zone-view-CkvKOQrl.js +1 -0
  46. package/dist/public/assets/project-env-vars-view-DYLWA7s0.js +1 -0
  47. package/dist/public/assets/project-model-aliases-view-DWu9khLA.js +1 -0
  48. package/dist/public/assets/project-settings-view-DJfmaWn6.js +1 -0
  49. package/dist/public/assets/project-tools-view-BEjBkghz.js +1 -0
  50. package/dist/public/assets/providers-list-view-jMEPJCci.js +1 -0
  51. package/dist/public/assets/pull-request-dialog-B_JCqT53.js +1 -0
  52. package/dist/public/assets/pull-with-changes-dialog-V3_km2zQ.js +1 -0
  53. package/dist/public/assets/push-before-pr-dialog-CarrD3y2.js +1 -0
  54. package/dist/public/assets/radio-group-Dn_pN-pn.js +1 -0
  55. package/dist/public/assets/scroll-area-lkVMElz5.js +1 -0
  56. package/dist/public/assets/settings-general-view-BhrfHGfQ.js +1 -0
  57. package/dist/public/assets/settings-list-DiiYzOxn.js +1 -0
  58. package/dist/public/assets/settings-logs-view-DbKM1SNk.js +5 -0
  59. package/dist/public/assets/settings-mcp-servers-view-4FpPIeYV.js +5 -0
  60. package/dist/public/assets/settings-models-view-CJVeo9ad.js +1 -0
  61. package/dist/public/assets/settings-skills-view-DoRPGbHG.js +3 -0
  62. package/dist/public/assets/settings-slack-view-Cc1NgVkx.js +1 -0
  63. package/dist/public/assets/settings-slash-commands-view-CmlWqqmi.js +1 -0
  64. package/dist/public/assets/settings-statistics-view-DRuyEbcN.js +1 -0
  65. package/dist/public/assets/settings-storage-view-DihbtUYb.js +1 -0
  66. package/dist/public/assets/settings-subagents-view-B2RvxDZI.js +2 -0
  67. package/dist/public/assets/settings-system-prompt-view-CvVbgjNN.js +1 -0
  68. package/dist/public/assets/settings-view-CPUAjTMa.js +2 -0
  69. package/dist/public/assets/slug-utils-CQ8PMWUL.js +1 -0
  70. package/dist/public/assets/store-BSzKIu5G.js +9 -0
  71. package/dist/public/assets/suspense-resource-BFrb_XJX.js +1 -0
  72. package/dist/public/assets/table-A3cgauiZ.js +1 -0
  73. package/dist/public/assets/tasks-view-CvFFLPeD.js +1 -0
  74. package/dist/public/assets/{terminal-panel-DHDoOXAH.js → terminal-panel-DIh6it7K.js} +3 -3
  75. package/dist/public/assets/toggle-group-Q36wRGKA.js +1 -0
  76. package/dist/public/assets/tooltip-Db8UeYxm.js +1 -0
  77. package/dist/public/assets/{use-active-dock-panel-instance-cO_DR87G.js → use-active-dock-panel-instance-DRfRj6MV.js} +1 -1
  78. package/dist/public/assets/use-installed-ai-files-C8nNWGC7.js +1 -0
  79. package/dist/public/assets/{use-suspense-resource-Dkz6ddFN.js → use-suspense-resource-Dakt9lfT.js} +1 -1
  80. package/dist/public/assets/useBaseQuery-34f0-SVd.js +1 -0
  81. package/dist/public/assets/{web-C7jr0n2X.js → web-Bn9n5e7r.js} +1 -1
  82. package/dist/public/assets/{web-D0nlJHDu.js → web-C2KGFouM.js} +1 -1
  83. package/dist/public/assets/{web-jJ1krOD-.js → web-Dk3GAfTy.js} +1 -1
  84. package/dist/public/assets/{web-DPW3m0cL.js → web-DycfRH4j.js} +1 -1
  85. package/dist/public/browser-preview-rpc.js +107 -82
  86. package/dist/public/index.html +26 -33
  87. package/dist/recommended-models.txt +2 -2
  88. package/package.json +6 -6
  89. package/dist/public/assets/Combination-BdvBzSm4.js +0 -41
  90. package/dist/public/assets/account-view-c-UG0JKH.js +0 -1
  91. package/dist/public/assets/alert-dialog-DAHkynVZ.js +0 -7
  92. package/dist/public/assets/api-D1GxdEEp.js +0 -2
  93. package/dist/public/assets/async-error-boundary-DNJqC4BV.js +0 -1
  94. package/dist/public/assets/async-loading-fallback-D2X0o4Qa.js +0 -1
  95. package/dist/public/assets/browser-tab-BKQJKTg8.js +0 -12
  96. package/dist/public/assets/button-B6HDsfd5.js +0 -1
  97. package/dist/public/assets/card-DZGd45nw.js +0 -1
  98. package/dist/public/assets/chat-dock-context-8_5G30KG.js +0 -1
  99. package/dist/public/assets/commit-dialog-OQFa4W6i.js +0 -1
  100. package/dist/public/assets/commit-error-dialog-BFByxoUG.js +0 -1
  101. package/dist/public/assets/commit-method-fields-BihSf23f.js +0 -1
  102. package/dist/public/assets/context-menu-e5jeH0Jl.js +0 -1
  103. package/dist/public/assets/conversation-history-view-BUlO9oJ6.js +0 -1
  104. package/dist/public/assets/create-project-dialog-CY5wIGQV.js +0 -2
  105. package/dist/public/assets/create-project-workspace-ClILToZd.js +0 -1
  106. package/dist/public/assets/create-repo-dialog-CKUQoOaX.js +0 -1
  107. package/dist/public/assets/dialog--0foS3aw.js +0 -1
  108. package/dist/public/assets/diff-view-DLPu21IR.js +0 -4
  109. package/dist/public/assets/dist-Bxyh1Ml_.js +0 -1
  110. package/dist/public/assets/dist-CFXDhuA_.js +0 -5
  111. package/dist/public/assets/dist-CNOCRPxn.js +0 -1
  112. package/dist/public/assets/dist-Cda_ffeR.js +0 -1
  113. package/dist/public/assets/dist-CkQILg8A.js +0 -1
  114. package/dist/public/assets/dist-CqGsum35.js +0 -1
  115. package/dist/public/assets/dist-DjiNKpTV.js +0 -2
  116. package/dist/public/assets/dist-eMdiO0P3.js +0 -1
  117. package/dist/public/assets/explorer-tab-view-nzl0M0Vm.js +0 -2
  118. package/dist/public/assets/explorer-tree-Bkb6dzmf.js +0 -1
  119. package/dist/public/assets/explorer-view-NcArt0_H.js +0 -75
  120. package/dist/public/assets/git-history-dialog-rWkjoaR5.js +0 -1
  121. package/dist/public/assets/index-BOB3ZUQs.js +0 -3386
  122. package/dist/public/assets/index-BdGMz8sL.css +0 -1
  123. package/dist/public/assets/markdown-renderer-BkKibNMs.js +0 -8
  124. package/dist/public/assets/mcp-server-card-DFT7uyRh.js +0 -1
  125. package/dist/public/assets/merged-pr-dialog-BOrFaYk6.js +0 -1
  126. package/dist/public/assets/model-list-controls-CpQjn6i7.js +0 -1
  127. package/dist/public/assets/ndjson-stream-DeGpE5o5.js +0 -2
  128. package/dist/public/assets/onboarding-dialog-HJpyzVWa.js +0 -1
  129. package/dist/public/assets/project-env-vars-view-C9VTTfTo.js +0 -1
  130. package/dist/public/assets/project-model-aliases-view-DKRoV7Gc.js +0 -1
  131. package/dist/public/assets/project-settings-view-BDYqpibk.js +0 -1
  132. package/dist/public/assets/project-tools-view-9WUc4Yca.js +0 -1
  133. package/dist/public/assets/providers-list-view-BgvIWP_0.js +0 -1
  134. package/dist/public/assets/pull-request-dialog-BM1dkFpK.js +0 -1
  135. package/dist/public/assets/pull-with-changes-dialog-Bjl_esir.js +0 -1
  136. package/dist/public/assets/push-before-pr-dialog-Cbc_zaI8.js +0 -1
  137. package/dist/public/assets/query-keys-5QPW6Dv-.js +0 -1
  138. package/dist/public/assets/radio-group-CMW5ku-w.js +0 -1
  139. package/dist/public/assets/scenic-chrome-CbN3vum7.js +0 -1
  140. package/dist/public/assets/scroll-area-BMQFeWmq.js +0 -1
  141. package/dist/public/assets/settings-general-view-BaMVw6kD.js +0 -1
  142. package/dist/public/assets/settings-instructions-view-BRE87H2U.js +0 -1
  143. package/dist/public/assets/settings-list-BpPbGcpS.js +0 -1
  144. package/dist/public/assets/settings-logs-view-Bbue8ZOn.js +0 -5
  145. package/dist/public/assets/settings-mcp-servers-view-BiMCy8sH.js +0 -5
  146. package/dist/public/assets/settings-models-view-BkZtGcUP.js +0 -1
  147. package/dist/public/assets/settings-rules-view-TK7LEC-0.js +0 -8
  148. package/dist/public/assets/settings-skills-view-Bv9Kn55r.js +0 -3
  149. package/dist/public/assets/settings-slack-view-Dy2bFJqU.js +0 -1
  150. package/dist/public/assets/settings-slash-commands-view-DiR1IyMF.js +0 -1
  151. package/dist/public/assets/settings-statistics-view-DX1UVeCJ.js +0 -1
  152. package/dist/public/assets/settings-storage-view-D8tHP8XT.js +0 -1
  153. package/dist/public/assets/settings-subagents-view-Bz7jBhbB.js +0 -2
  154. package/dist/public/assets/settings-system-prompt-view-VHGAqfQk.js +0 -1
  155. package/dist/public/assets/settings-view-QBOhYAyv.js +0 -2
  156. package/dist/public/assets/skeleton-DvLd14RU.js +0 -1
  157. package/dist/public/assets/store-CHF6tOp2.js +0 -9
  158. package/dist/public/assets/suspense-resource-DnYnmTbs.js +0 -1
  159. package/dist/public/assets/switch-P5m18oUl.js +0 -1
  160. package/dist/public/assets/table-MUx4ZxvS.js +0 -1
  161. package/dist/public/assets/tasks-view-l00Nc2fV.js +0 -2
  162. package/dist/public/assets/toggle-group-DMR7z3pz.js +0 -1
  163. package/dist/public/assets/tooltip-BtJG5fZl.js +0 -1
  164. package/dist/public/assets/use-installed-ai-files-CJr_PVcY.js +0 -1
  165. package/dist/public/assets/use-open-chat-dock-panel-B31lwcQF.js +0 -1
  166. package/dist/public/assets/useInfiniteQuery-DUeUxDcu.js +0 -1
  167. package/dist/public/assets/utils-CT-Dw22R.js +0 -1
@@ -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-DjiNKpTV.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.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(){let e=d(`chat_message_history`);return e?JSON.parse(e):[]}function fe(e){let t=de();e.trim()&&t[t.length-1]!==e&&(t.push(e),f(`chat_message_history`,JSON.stringify(t)))}function pe(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function me(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function he(e=`default`){return pe(`tarsk.skills.selectedSource`)??e}function ge(e){me(`tarsk.skills.selectedSource`,e)}function v(e){return`tarsk.skills.catalog.${e}`}function _e(e){let t=pe(v(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function ve(e,t){me(v(e),JSON.stringify(t))}function ye(e){typeof sessionStorage>`u`||sessionStorage.removeItem(v(e))}var be=`tarsk.skills.customSources`;function xe(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(be);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function Se(){typeof localStorage>`u`||localStorage.removeItem(be)}function Ce(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 we(e){u(`tarsk.general.fontScale`,String(e))}function Te(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 Ee(e){u(`tarsk.general.frostedPanelOpacity`,String(e))}var De=new Set([`image`,`background`,`color`]),y=/^#[0-9a-fA-F]{6}$/,b=`#1f2937`,x=`#82c309`;function Oe(e){return e!==null&&De.has(e)}function ke(e=`background`){let t=l(`tarsk.general.wallpaperMode`);if(Oe(t))return t;if(t===`brand`)return`background`;let n=l(`tarsk.general.imageBackground`);return n===`false`?`background`:n===`true`?`image`:e}function Ae(e){u(`tarsk.general.wallpaperMode`,e)}function je(e=b){let t=l(`tarsk.general.wallpaperColor`);return t!==null&&y.test(t)?t:e}function Me(e){y.test(e)&&u(`tarsk.general.wallpaperColor`,e.toLowerCase())}function Ne(e=x){let t=l(`tarsk.general.brandColor`);return t!==null&&y.test(t)?t:e}function Pe(e){y.test(e)&&u(`tarsk.general.brandColor`,e.toLowerCase())}function Fe(e=`VS Code`){return l(`tarsk.general.openWithProgram`)??e}function Ie(e){u(`tarsk.general.openWithProgram`,e)}function Le(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 Re(){let e=l(`tarsk.general.serverBindMode`);if(!e)return null;try{let t=JSON.parse(e);return Le(t)?t:null}catch{return null}}function ze(e){u(`tarsk.general.serverBindMode`,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}var Be=`641`;function S(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function Ve(){return T()&&S()===`ios`}function C(){return l(s.SERVER_URL)}function He(e){u(s.SERVER_URL,e)}function Ue(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}:${Be}`:``}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 We(){let e=C();if(e){let t=Ue(e);if(t)return t}return T()?``:document.location.hostname}async function Ge(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function Ke(e){let t=w(e);if(t){if(T()){He(t),window.location.reload();return}window.location.assign(t)}}function E(){return typeof window<`u`&&`__electrobunWebviewId`in window}function qe(){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 Je(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 Ye(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 Xe(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 Ze(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 Qe(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 $e(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 et(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 tt(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 nt(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 rt(e){let t=e.indexOf(`,`),n=e.slice(0,t);return nt(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function it(e){if(e.imageData)return nt(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return rt(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 at(e){return!e.imageUrl||i(e.imageUrl)?e:{...e,imageUrl:o(e.imageUrl,k())}}async function ot(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return tt(await it(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 st(e){let t=await it(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 ct(e){return E()?L(`api/image/save`,at(e)):ot(e)}async function lt(e){if(E()){await L(`api/image/clipboard`,at(e));return}await st(e)}function ut(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 dt(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function ft(e){if(dt(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 pt(e,t){return ft(e)?t?.trim()?!0:e instanceof Error?!e.message.toLowerCase().includes(`multiple chat windows`):!1:!1}var mt=50;function ht(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<mt)&&(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 gt=r(`gitops.api`);async function _t(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();gt.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await I(a)}finally{let n=Math.round(performance.now()-o);gt.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function vt(e,t,n){return(await L(`api/git/generate-commit-message/${H(e)}`,{model:t,provider:n})).message}async function yt(e,t){await L(`api/git/commit/${H(e)}`,{message:t})}async function bt(e){await L(`api/git/push/${H(e)}`)}async function xt(e){await L(`api/git/pull/${H(e)}`)}async function St(e){return L(`api/git/sync-branch/${H(e)}`,{})}async function Ct(e,t,n){return L(`api/git/generate-pr-info/${H(e)}`,{model:t,provider:n})}async function wt(e,t,n,r){return L(`api/git/create-pr/${H(e)}`,{title:t,description:n,baseBranch:r})}async function Tt(e){await L(`api/git/fetch/${H(e)}`)}async function Et(e,t,n){return L(`api/git/create-branch/${H(e)}`,{baseBranch:t,branchName:n})}async function Dt(e,t){return L(`api/git/revert-file/${H(e)}`,{filePath:t})}async function Ot(e,t=50){return(await I(`api/git/log/${H(e)}?limit=${t}`)).commits}async function kt(e){return I(`api/git/pr-status/${H(e)}`)}async function At(e,t,n,r){return L(`api/git/create-repo/${H(e)}`,{repoName:t,description:n,isPrivate:r})}async function jt(e,t){return L(`api/git/checkpoint/${H(e)}`,{messageId:t})}async function Mt(e,t){return L(`api/git/checkpoint-restore/${H(e)}`,{checkpointRef:t})}async function Nt(e){return I(`api/git/diff/${H(e)}`)}async function Pt(e,t,n){return F(`api/git/media/${H(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function Ft(e){return L(`api/git/cleanup-deleted-branches/${H(e)}`)}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,acknowledgeBrowserJsStarted:()=>Ci,applyAppUpdate:()=>gi,authorizeMCPOAuth:()=>ji,checkForAppUpdate:()=>hi,checkGitInstalled:()=>ni,checkVpInstalled:()=>an,clearChatHistory:()=>dr,clearConversationHistory:()=>ui,clearLogFeed:()=>xn,clearProjectTaskModifications:()=>Ln,clearSlackTokens:()=>En,compactChat:()=>fr,completeOnboarding:()=>ri,copyImageToClipboard:()=>jr,createFolderProject:()=>Vn,createProject:()=>Rn,createProjectFromZip:()=>Un,createScaffoldedProject:()=>sn,createSlackBinding:()=>Dn,createSlashCommand:()=>ci,createThread:()=>Zn,createThreadAgent:()=>Bi,createThreadSkill:()=>zi,createUserTask:()=>qr,deleteAccount:()=>hn,deleteCommand:()=>zr,deleteMCPServer:()=>Oi,deleteProject:()=>Xn,deleteProjectAIFile:()=>Fi,deleteSlackBinding:()=>On,deleteSlashCommand:()=>li,deleteThread:()=>Qn,deleteThreadAIFile:()=>$,deleteUserTask:()=>Jr,disableImageModel:()=>kr,disableModel:()=>Cr,discoverMCPServers:()=>ki,enableImageModel:()=>Or,enableModel:()=>Sr,exportProjectPlugin:()=>Nr,fetchAllAvailableModels:()=>xr,fetchAvailableImageModels:()=>Er,fetchAvailableModels:()=>br,fetchPendingAskUserQuestions:()=>_i,fixComments:()=>nr,freeDevServerPort:()=>Qr,generateImage:()=>Ar,generateThreadTitle:()=>er,generateWorkspaceHandoff:()=>pr,getAccountInfo:()=>J,getAccountSettings:()=>yn,getAllEnabledImageModels:()=>Dr,getAllEnabledModels:()=>Tr,getAvailablePrograms:()=>jn,getChatHistory:()=>ir,getCliProcesses:()=>Mn,getContextBreakdown:()=>pi,getConversationFolderPath:()=>or,getConversationUsage:()=>fi,getGitUser:()=>X,getGitUserName:()=>Fn,getLatencyStatistics:()=>vn,getMCPConfig:()=>Ei,getMCPOAuthStatus:()=>Mi,getObservationPage:()=>ar,getOnboardingStatus:()=>ti,getPackageScripts:()=>Br,getPopularMCPServers:()=>Ai,getProcessingState:()=>Y,getProcessingThreads:()=>Pn,getProject:()=>Wn,getProjectAIFiles:()=>Pi,getProjectEnvVars:()=>Gn,getProjectScripts:()=>Hr,getProjectSystemPrompt:()=>ei,getProjectWindowState:()=>Kn,getProjects:()=>In,getProviderCredits:()=>dn,getProviderLogoCdnUrl:()=>un,getProviderLogoUrl:()=>ln,getProviders:()=>cn,getRecentConversations:()=>di,getRecommendedModels:()=>ai,getScaffoldTemplates:()=>rn,getSessionToolLearnings:()=>sr,getSlackManifest:()=>wn,getSlackSettings:()=>bn,getSlashCommands:()=>oi,getSlashCommandsAndSkills:()=>si,getSpendSummary:()=>_n,getThread:()=>Gr,getThreadAIFile:()=>Li,getThreadAIFiles:()=>Ii,getThreadFiles:()=>Vr,getToolDefinitionsBreakdown:()=>mi,getUserTasks:()=>Kr,installProjectPluginImport:()=>Fr,installVp:()=>on,invalidateProjectsCache:()=>Z,isDevServerRunning:()=>$r,killCliProcess:()=>Nn,openExternalUrl:()=>mn,openFolderProject:()=>zn,openPathProject:()=>Bn,openProjectWith:()=>hr,openThreadWith:()=>gr,postClientLog:()=>Cn,previewProjectPluginImport:()=>Pr,processVoiceTranscript:()=>An,quitAccount:()=>gn,refreshModels:()=>Lr,replaceUniqueProjectText:()=>Jn,reportBrowserActionResult:()=>Ti,reportBrowserWebviewReady:()=>wi,resetOnboarding:()=>ii,revokeMCPOAuth:()=>Ni,routeChatPrompt:()=>tr,runProjectScript:()=>Ur,saveCommand:()=>Rr,saveImageToDownloads:()=>Mr,saveMCPServer:()=>Di,saveModelSettings:()=>wr,saveProjectWindowState:()=>qn,saveProviderEnvironment:()=>pn,saveProviderKey:()=>fn,saveThreadAIFile:()=>Ri,selectThread:()=>rr,sendChatMessage:()=>cr,setLowBalanceListener:()=>tn,setSlackTokens:()=>Tn,startDevServer:()=>Xr,steerChatMessage:()=>lr,stopChatGeneration:()=>mr,stopDevServer:()=>Zr,stopProjectScript:()=>Wr,streamLogFeed:()=>Sn,submitAskUserAnswer:()=>vi,submitBrowserJsResult:()=>Si,submitSeatbeltEscalationResponse:()=>bi,submitShellPermissionResponse:()=>yi,submitWebFetchPermissionResponse:()=>xi,subscribeToChatStream:()=>ur,suggestRunCommand:()=>Yr,syncProjectEnvVars:()=>Yn,ttlCache:()=>W,updateAccountSettings:()=>kn,updateProject:()=>Q,updateProjectName:()=>yr,updateProjectOpenWith:()=>_r,updateProjectSetupScript:()=>vr,updateThread:()=>$n,uploadProjectPlugin:()=>Ir}),Zt=r(`gitops.api`),G=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}},Qt=50;async function $t(){let{plan:e,promptsRemaining:t}=await J();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=Qt,promptsRemaining:t}}var en=null,K=!1;function tn(e){en=e}function nn(e){K||(K=!0,en?.(e))}async function rn(){return I(`api/scaffold/templates`)}async function an(){return(await I(`api/scaffold/check-vp`)).installed}async function on(){return L(`api/scaffold/install-vp`,{})}async function sn(e,t,n,r){return B(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function cn(){return W.get(`providers`,async()=>I(`api/providers`),6e4)}function ln(e){return`${k()}/api/providers/${H(e)}/logo`}function un(e){return`https://models.tarsk.io/svg/${H(e)}.svg`}async function dn(e){return W.get(`provider-credits-${e}`,async()=>I(`api/providers/${H(e)}/credits`),3e4)}async function fn(e,t){await L(`api/providers/keys`,{providerName:e,apiKey:t}),W.invalidate(`providers`)}async function pn(e){await L(`api/providers/env`,{values:e}),W.invalidate(`providers`)}function q(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function mn(e){if(typeof window<`u`&&!E()){q(e);return}try{await L(`api/providers/open-external`,{url:e})}catch(t){if(q(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function J(){return I(`api/account/info`)}async function hn(){return L(`api/account/delete`,{})}async function gn(){return L(`api/account/quit`,{})}async function _n(){return I(`api/account/spend`)}async function vn(){return I(`api/account/statistics`)}async function yn(){return I(`api/account/settings`)}async function bn(){return I(`api/slack/settings`)}async function xn(){await z(`api/logs`)}async function Sn(e){return $e(`api/logs/stream`,e)}async function Cn(e){try{await L(`api/logs`,e)}catch(e){Zt.debug(`Failed to post client log entry`,e)}}async function wn(){return I(`api/slack/manifest`)}async function Tn(e){return R(`api/slack/tokens`,e)}async function En(){await z(`api/slack/tokens`)}async function Dn(e){return L(`api/slack/bindings`,e)}async function On(e,t){await z(`api/slack/bindings/${H(e)}/${H(t)}`)}async function kn(e){return R(`api/account/settings`,e)}async function An(e,t){return(await L(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function jn(){return W.get(`available-programs`,async()=>(await I(`api/programs`)).programs??[],3e5)}async function Mn(){return(await I(`api/processes`)).processes}async function Nn(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 Pn(){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 Fn(){return(await X()).name}async function In(){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??[],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 Ln(e){await L(`api/projects/${H(e)}/tasks/clear-modifications`)}async function Rn(e,t,n){return B(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function zn(e){return B(`api/projects/open-folder`,{},{signal:e})}async function Bn(e,t){return B(`api/projects/open-path`,{path:e},{signal:t})}async function Vn(e,t){return B(`api/projects/new-folder`,{projectName:e},{signal:t})}function Hn(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 Un(e,t,n,r){return B(`api/projects/from-zip`,{data:await Hn(e),name:t,overrideProjectId:n},{signal:r})}async function Wn(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 Gn(e){return I(`api/projects/${H(e)}/env-vars`)}async function Kn(e){return(await I(`api/projects/${H(e)}/window-state`)).state}async function qn(e,t){await et(`api/projects/${H(e)}/window-state`,{state:t})}async function Jn(e,t,n){return L(`api/projects/${H(e)}/replace-unique-text`,{oldText:t,newText:n})}async function Yn(e,t){await R(`api/projects/${H(e)}/env-vars`,{vars:t})}async function Xn(e){await z(`api/projects/${H(e)}`),W.invalidate(`projects`)}function Z(e){W.invalidate(`projects`),e&&W.invalidate(`project-${e}`)}async function Zn(e,t,n){return B(`api/threads`,{projectId:e,title:t,sourceThreadId:n?.sourceThreadId})}async function Qn(e,t){let n=await Qe(`api/threads/${H(t)}?stream=true`);return W.invalidate(`projects`),n}async function $n(e,t){await Xe(`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 er(e,t,n){return(await L(`api/threads/${H(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function tr(e,t){return(await L(`api/chat/${H(e)}/auto-route`,{prompt:t})).decision}async function nr(e,t){return L(`api/threads/${H(e)}/fix-comments`,{comments:t})}async function rr(e,t){await L(`api/threads/${H(t)}/select`)}async function ir(e,t){let n=t?`?conversationId=${encodeURIComponent(t)}`:``;return{threadId:e,messages:await I(`api/threads/${H(e)}/messages${n}`)}}async function ar(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 or(e){return(await I(`api/threads/${H(e)}/conversation-folder-path`)).path}async function sr(e){return(await I(`api/threads/${H(e)}/session-learnings`)).learnings}async function cr(e,t,n,r=[],i,a,o,s,c,l,u){let{isEmpty:d,isLow:f,promptsRemaining:p}=await $t();if(d)throw new G;return f?nn(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 lr(e,t,n,r,i,a){await L(`api/chat/${H(e)}/steer`,{messageId:t,content:n,conversationId:r,model:i,attachments:a.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function ur(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),$e(`api/chat/subscribe/${H(e)}?${r.toString()}`,{signal:t})}async function dr(e){let t=await z(`api/chat/${H(e)}`);return W.invalidate(`thread-${e}`),t?.conversationId||``}async function fr(e,t){return V(`api/chat/${H(e)}/compact`,t)}async function pr(e,t){let n=await L(`api/chat/${H(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function mr(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?Ze(`api/projects/${H(e)}`,t):(await et(`api/projects/${H(e)}`,t),Z(e),null)}async function hr(e,t){await V(`api/projects/${H(e)}/open`,{program:t})}async function gr(e,t){await V(`api/threads/${H(e)}/open`,{program:t})}async function _r(e,t){await Q(e,{program:t})}async function vr(e,t,n){return Q(e,{setupScript:t,runNow:n})}async function yr(e,t){await Q(e,{name:t})}async function br(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 xr(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 Sr(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 Cr(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 wr(e,t,n){await L(`api/models/${H(e,t)}/settings`,n),W.invalidatePattern(/^available-models-/),W.invalidate(`enabled-models`)}async function Tr(){return W.get(`enabled-models`,async()=>(await I(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function Er(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 Dr(){return W.get(`enabled-image-models`,async()=>(await I(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Or(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 kr(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 Ar(e,t,n,r){return L(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function jr(e){await lt(e)}async function Mr(e){return ct(e)}async function Nr(e,t){return Je(`api/projects/${H(e)}/plugin-export`,t)}async function Pr(e,t){return L(`api/projects/${H(e)}/plugin-import/preview`,{url:t})}async function Fr(e,t){return L(`api/projects/${H(e)}/plugin-import`,t)}async function Ir(e,t){return L(`api/projects/${H(e)}/plugin-upload`,t)}async function Lr(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 Rr(e,t){await L(`api/projects/${H(e)}/commands`,t)}async function zr(e,t){await z(`api/projects/${H(e)}/commands/${H(t)}`)}async function Br(e){return I(`api/projects/${H(e)}/package-scripts`)}async function Vr(e){return I(`api/threads/${H(e)}/files`)}async function Hr(e){return(await I(`api/threads/${H(e)}/project-scripts`)).scripts}async function Ur(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 Wr(e,t){return L(`api/threads/${H(e)}/project-scripts/stop`,{scriptName:t})}async function Gr(e){return W.get(`thread-${e}`,async()=>I(`api/threads/${e}`),45e3)}async function Kr(e){return(await I(`api/projects/${H(e)}/user-tasks`)).tasks??[]}async function qr(e,t){return L(`api/projects/${H(e)}/user-tasks`,{content:t})}async function Jr(e,t){await z(`api/projects/${H(e)}/user-tasks/${H(t)}`)}async function Yr(e){return L(`api/projects/${H(e)}/run-suggest`,{})}async function Xr(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 Zr(e){return W.invalidate(`dev-server-running-${e}`),L(`api/projects/${H(e)}/stop`,{})}async function Qr(e,t){return L(`api/projects/${H(e)}/free-port`,{port:t})}async function $r(e){return W.get(`dev-server-running-${e}`,async()=>I(`api/projects/${H(e)}/running`),3e3)}async function ei(e){return I(`api/projects/${H(e)}/system-prompt`)}async function ti(){return I(`api/onboarding/status`)}async function ni(){return I(`api/onboarding/git-check`)}async function ri(){return L(`api/onboarding/complete`,{})}async function ii(){return L(`api/onboarding/reset`,{})}async function ai(){return I(`api/onboarding/recommended-models`)}async function oi(e){return(await I(`api/slash-commands?threadId=${H(e)}`)).commands??[]}async function si(e){let t=await I(`api/slash-commands?threadId=${H(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function ci(e,t,n,r,i){return L(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function li(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 ui(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 di(e=20,t=0,n){return I(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}${n?`&projectId=${encodeURIComponent(n)}`:``}`)}async function fi(e,t){return I(`api/conversations/${H(e)}/${H(t)}/usage`)}async function pi(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 mi(e,t){return I(`api/conversations/${H(e)}/${H(t)}/context/tool-definitions`)}async function hi(){try{return await I(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function gi(){return L(`api/update/apply`)}async function _i(){return(await I(`api/ask-user/pending`)).questions??[]}async function vi(e,t){await L(`api/ask-user/respond`,typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t})}async function yi(e,t,n){await L(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId})}async function bi(e,t){await L(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0})}async function xi(e,t){await L(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t})}async function Si(e,t,n){await L(`api/browser-js/respond`,{toolCallId:e,result:t,threadId:n})}async function Ci(e,t){await L(`api/browser-js/respond`,{toolCallId:e,started:!0,threadId:t})}async function wi(e,t){await L(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function Ti(e,t){await L(`api/browser/action-result`,{toolCallId:e,result:t})}async function Ei(e){return I(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function Di(e,t,n){return R(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function Oi(e,t){return z(`api/mcp/config/${H(t)}?projectPath=${encodeURIComponent(e)}`)}async function ki(e,t){return L(`api/mcp/discover`,{projectPath:e,serverName:t})}async function Ai(){return(await I(`api/mcp/popular`)).servers??[]}async function ji(e,t){return L(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function Mi(e,t){return I(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Ni(e,t){return z(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Pi(e){return(await I(`api/projects/${H(e)}/ai-files`)).nodes??[]}async function Fi(e,t){return z(`api/projects/${H(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ii(e){return(await I(`api/threads/${H(e)}/ai-files`)).nodes??[]}async function Li(e,t){return I(`api/threads/${H(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ri(e,t,n){return R(`api/threads/${H(e)}/ai-file`,{path:t,content:n})}async function zi(e,t,n){return L(`api/threads/${H(e)}/ai-files/skill`,{name:t,description:n})}async function Bi(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{yn as $,Rt as $n,ye as $r,hr as $t,Xn as A,ee as Ai,Sn as An,H as Ar,di as At,Or as B,Q as Bn,w as Br,Li as Bt,Zn as C,h as Ci,tn as Cn,St as Cr,ei as Ct,hn as D,Ee as Di,mr as Dn,pt as Dr,un as Dt,qr as E,we as Ei,lr as En,ht as Er,dn as Et,$ as F,f as Fi,xi as Fn,L as Fr,bn as Ft,br as G,Ir as Gn,T as Gr,Fr as Gt,Nr as H,_r as Hn,We as Hr,Vr as Ht,Jr as I,ve as Ii,ur as In,Ye as Ir,oi as It,Qr as J,Ut as Jn,b as Jr,$r as Jt,_i as K,Vt as Kn,Ge as Kr,on as Kt,kr as L,_ as Li,Yr as Ln,R as Lr,si as Lt,On as M,ce as Mi,Si as Mn,k as Mr,rn as Mt,li as N,ge as Ni,bi as Nn,F as Nr,sr as Nt,zr as O,u as Oi,Zr as On,W as Or,ln as Ot,Qn as P,ze as Pi,yi as Pn,Xe as Pr,wn as Pt,J as Q,qt as Qn,Se as Qr,Bn as Qt,Cr as R,Me as Ri,Yn as Rn,qe as Rr,_n as Rt,ci as S,Pe as Si,cr as Sn,Dt as Sr,Hr as St,zi as T,oe as Ti,Xr as Tn,ut as Tr,In as Tt,xr as U,vr as Un,S as Ur,mi as Ut,Sr as V,yr as Vn,Ke as Vr,Ii as Vt,Er as W,$n as Wn,Ve as Wr,Kr as Wt,er as X,Kt as Xn,c as Xr,mn as Xt,Ar as Y,Gt as Yn,s as Yr,Nn as Yt,pr as Z,It as Zn,fe as Zr,zn as Zt,Vn as _,_e as _i,qn as _n,Et as _r,Y as _t,ji as a,Ce as ai,Lr as an,zt as ar,pi as at,sn as b,ke as bi,Ri as bn,xt as br,Pi as bt,an as c,l as ci,wi as cn,vt as cr,X as ct,xn as d,p as di,tr as dn,Ot as dr,Ei as dt,te as ei,gr as en,Lt as er,Dr as et,Ln as f,Fe as fi,Ur as fn,Pt as fr,Mi as ft,jr as g,d as gi,wr as gn,yt as gr,Ai as gt,ri as h,Re as hi,Di as hn,Ft as hr,Br as ht,gi as i,ae as ii,gn as in,Bt as ir,Mn as it,Fi as j,Ie as ji,vi as jn,I as jr,ai as jt,Oi as k,ue as ki,Wr as kn,z as kr,cn as kt,dr as l,de as li,ii as ln,Ct as lr,Fn as lt,fr as m,he as mi,Mr as mn,_t as mr,ti as mt,Ci as n,m as ni,Pr as nn,Yt as nr,jn as nt,hi as o,Te as oi,Jn as on,jt as or,or as ot,En as p,se as pi,Rr as pn,kt as pr,ar as pt,nr as q,Wt as qn,x as qr,Z as qt,Xt as r,re as ri,An as rn,Jt as rr,ir as rt,ni as s,xe as si,Ti as sn,At as sr,fi as st,G as t,Ne as ti,Cn as tn,Ht as tr,Tr as tt,ui as u,le as ui,Ni as un,Nt as ur,vn as ut,Rn as v,g as vi,pn as vn,wt as vr,Pn as vt,Bi as w,ie as wi,Tn as wn,Mt as wr,Kn as wt,Dn as x,ne as xi,rr as xn,bt as xr,Gn as xt,Un as y,je as yi,fn as yn,Tt as yr,Wn as yt,ki as z,Ae as zi,kn as zn,E as zr,Gr as zt};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{S as r,ot as i}from"./dist-DjiNKpTV.js";import{t as a}from"./button-B6HDsfd5.js";import{i as o,n as s,r as c,t as l}from"./card-DZGd45nw.js";var u=e(t(),1),d=n(),f=r(`app.async-error-boundary.ui`),p=class extends u.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){f.error(`AsyncErrorBoundary caught an error`,{error:e,info:t})}handleRetry=()=>{this.setState({error:null}),this.props.onRetry?.()};render(){let{error:e}=this.state;return e?this.props.renderFallback?this.props.renderFallback(e,this.handleRetry):(0,d.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,d.jsxs)(l,{className:`max-w-md`,children:[(0,d.jsx)(c,{children:(0,d.jsx)(o,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,d.jsxs)(s,{className:`space-y-4`,children:[(0,d.jsx)(`p`,{className:i.body,children:e.message}),(0,d.jsx)(a,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{p as t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ot as n}from"./dist-DjiNKpTV.js";import{Et as r}from"./dist-CNOCRPxn.js";import{t as i}from"./utils-CT-Dw22R.js";var a=e(),o=t();function s(e){let t=(0,a.c)(16),{className:s,label:c,size:l,overScenic:u}=e,d=l===void 0?`md`:l,f=u===void 0?!1:u,p=d===`sm`?`h-4 w-4`:d===`lg`?`h-8 w-8`:`h-6 w-6`,m;t[0]===s?m=t[1]:(m=i(`flex h-full items-center justify-center`,s),t[0]=s,t[1]=m);let h=f?`scenic-foreground`:`text-muted-foreground`,g;t[2]!==p||t[3]!==h?(g=i(p,`animate-spin mx-auto`,h),t[2]=p,t[3]=h,t[4]=g):g=t[4];let _;t[5]===g?_=t[6]:(_=(0,o.jsx)(r,{className:g}),t[5]=g,t[6]=_);let v;t[7]!==c||t[8]!==f?(v=c?(0,o.jsx)(`p`,{className:i(f?i(n.body,`scenic-foreground-muted`):n.bodyMuted,`mt-2`),children:c}):null,t[7]=c,t[8]=f,t[9]=v):v=t[9];let y;t[10]!==_||t[11]!==v?(y=(0,o.jsxs)(`div`,{className:`text-center`,children:[_,v]}),t[10]=_,t[11]=v,t[12]=y):y=t[12];let b;return t[13]!==m||t[14]!==y?(b=(0,o.jsx)(`div`,{className:m,children:y}),t[13]=m,t[14]=y,t[15]=b):b=t[15],b}function c(){let e=(0,a.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,o.jsx)(`div`,{className:`space-y-1 px-2 py-2`,children:[1,2,3].map(l)}),e[0]=t):t=e[0],t}function l(e){return(0,o.jsx)(`div`,{className:`animate-pulse h-7 bg-muted rounded-full`},e)}function u(){let e=(0,a.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,o.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded mx-4 my-1`}),e[0]=t):t=e[0],t}export{s as n,c as r,u as t};
@@ -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-DjiNKpTV.js";import{Q as o,n as s,r as c}from"./store-CHF6tOp2.js";import{L as l,Rn as u,T as d,X as f,gt as p,j as m,mt as h,un as g,zn as _}from"./dist-CNOCRPxn.js";import{t as v}from"./utils-CT-Dw22R.js";import{t as y}from"./button-B6HDsfd5.js";import{Xt as b,on as x,zr as S}from"./api-D1GxdEEp.js";import{i as C,n as w,r as T,t as E}from"./tooltip-BtJG5fZl.js";import{i as D,r as O}from"./browser-overlay-block-CiDtkfup.js";import{t as k}from"./use-toast-xpb5jNtN.js";import{n as A}from"./chat-dock-context-8_5G30KG.js";import{B as j,C as M,Ht as N,It as P,K as F,S as I,T as L,Vt as R,Z as z,_ as B,b as V,f as H,p as U,sn as W,v as G,w as K,x as ee,y as te}from"./index-BOB3ZUQs.js";import{t as ne}from"./use-active-dock-panel-instance-cO_DR87G.js";var q=e(n(),1),J=t();async function Y(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=x}=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:V(i,n,r)}}var X=r();function re(e){let t=(0,J.c)(43),{onCommit:n,onCancelPreview:r}=e,i=s(),a=c(ae),l=c(ie),u=c(Z),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}=j(),{handleSend:_}=N(),{paneId:v,conversationId:b}=R(),[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=I(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,A;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?(A=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]=A):A=t[24],w?.lastSelectedModel,w?.lastSelectedModelProvider,f?.id,f?.provider;let P=A,F,L;t[25]===E?(F=t[26],L=t[27]):(F=()=>{E||S(!1)},L=[E],t[25]=E,t[26]=F,t[27]=L),(0,q.useEffect)(F,L);let z,V;t[28]===P?(z=t[29],V=t[30]):(z=()=>{let e=function(e){let t=e.detail;ee(t)&&P(t)},t=function(e){let t=M(e.data);t&&P(t)};return window.addEventListener(B,e),window.addEventListener(`message`,t),function(){window.removeEventListener(B,e),window.removeEventListener(`message`,t)}},V=[P],t[28]=P,t[29]=z,t[30]=V),(0,q.useEffect)(z,V);let H;t[31]!==O||t[32]!==r?(H=function(){r(),O()},t[31]=O,t[32]=r,t[33]=H):H=t[33];let U=H;if(!E)return null;let W;t[34]!==x||t[35]!==n?(W=(0,X.jsx)(y,{type:`button`,size:`sm`,onClick:n,disabled:x,children:`Apply Changes`}),t[34]=x,t[35]=n,t[36]=W):W=t[36];let G;t[37]!==U||t[38]!==x?(G=(0,X.jsx)(y,{type:`button`,size:`sm`,variant:`outline`,onClick:U,disabled:x,children:`Cancel`}),t[37]=U,t[38]=x,t[39]=G):G=t[39];let K;return t[40]!==W||t[41]!==G?(K=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[W,G]}),t[40]=W,t[41]=G,t[42]=K):K=t[42],K}function Z(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 Q(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}var se=`tarsk-browser-page-title`;function ce(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 le(e){let t=ce(e);if(!t||t.type!==se)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function ue(e){return le(e)}function de(e){return!e?.trim()}function fe(e,t){return de(t)?e:t.trim()}function pe(e){return e?e.querySelector(`electrobun-webview`):null}function me(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function he(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function ge(e,t){if(t){he(e);return}me(e)}function _e(e){return e!=null&&e.getClientRects().length>0}function ve(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),ge(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function ye(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&&me(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 be=i(`browser.preview-scripting`);function xe(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 Se(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 Ce(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(xe(t,n,r))}catch(i){throw be.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 we(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function Te(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 Ee(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){be.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 De=i(`app.browser-tab.ui`),Oe=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]);function ke(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 Ae(e,t,n){let[r,i]=(0,q.useState)(!0),a=(0,q.useSyncExternalStore)(U,H),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(_e(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 je({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 Me(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){Oe.has(e.key)&&(ke(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 Ne(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=Q(e.detail);t&&b(t)},p=function(e){let t=ue(e.detail);if(t!=null){u(e=>fe(e,t));return}let n=L(e.detail);if(n){te(n);return}let r=K(e.detail);r&&(l(null),G(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 Pe(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||ge(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 ve(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 Fe({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;Ce(e,p,h,m);return}let e=c.current;if(!e)return;Te(e,p,h,m)}catch(e){if(f||!p)return;let t=e instanceof Error?e.message:`Could not enable element selection.`;De.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 Ie(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=le(e.data);n!=null&&t(e=>fe(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 Le(e){let t=ne(e,`browser`),{devServerUrl:n,devServerStopped:r}=z(),{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:_}=j(),v=c(e=>e.selectedProjectId),y=c(e=>e.projects).find(e=>e.projectId===v),[x,C]=(0,q.useState)(``),[w,T]=(0,q.useState)(``),[E,D]=(0,q.useState)(``),[O,k]=(0,q.useState)(o),[A,M]=(0,q.useState)(null),N=(0,q.useRef)(null),P=(0,q.useRef)(E),F=(0,q.useRef)(null),L=(0,q.useRef)(null),R=S(),B=W(),V=R&&!!w;P.current=E;function H(){return N.current??pe(L.current)}let{shouldShowWebview:U,readWebviewVisibility:G}=Ae(L,t,w),K=ye({useNativeWebview:R,shouldRenderNativeWebview:V,currentUrl:w,resolveWebview:H});je({devServerUrl:n,devServerStopped:r,isBrowserActive:t,currentUrl:w,browserResetTrigger:i,webviewRef:N,iframeRef:F,setCurrentUrl:T,setPendingUrl:D,setInputUrl:C,setSelectionModeError:M,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setBrowserAgentProcessingThreadId:_,setBrowserPageTitle:a}),Me(t,R,(0,q.useCallback)(function(){R?H()?.focus():F.current?.contentWindow?.focus()},[R]),L),Ne({useNativeWebview:R,nativeWebviewMounted:K,currentUrl:w,resolveWebview:H,setCurrentUrl:T,setPendingUrl:D,setInputUrl:C,setSelectionModeError:M,setBrowserPageTitle:a}),Ie(t,a),Pe({useNativeWebview:R,nativeWebviewMounted:K,currentUrl:w,deviceMode:O,shouldShowWebview:U,pendingUrl:E,readWebviewVisibility:G,resolveWebview:H}),Fe({isBrowserActive:t,currentUrl:w,isSelectModeEnabled:l,isEditModeEnabled:d,isSelectionPromptOpen:g,nativeWebviewMounted:K,useNativeWebview:R,resolveWebview:H,iframeRef:F,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectionModeError:M}),(0,q.useEffect)(()=>{k(o)},[o]);let ee=(0,q.useCallback)(e=>{N.current=e,e&&ve(e,P.current,G)},[G]);function te(e){k(e),s(e)}function J(){M(null),u(!1),f(!1),m(null),h(!1)}function Y(e){try{if(R){let t=H();if(!t)return;we(t,Se(e));return}let t=F.current;if(!t)return;Ee(t,e)}catch(e){De.error(`Failed to run preview text edit action:`,e)}}function X(e){let t=oe(e);t&&(C(t),T(t),D(t),J())}function re(e){e.key===`Enter`&&X(x)}function Z(){if(J(),R){let e=H();e&&e.reload();return}let e=F.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}function ie(){if(J(),R){let e=H();e&&e.executeJavascript(`history.back()`);return}Q(-1)}function ae(){if(J(),R){let e=H();e&&e.executeJavascript(`history.forward()`);return}Q(1)}function Q(e){let t=F.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function se(){M(null),f(!1),I(p)&&(Y(`cancel`),m(null)),u(e=>!e)}function ce(){if(M(null),u(!1),h(!1),I(p)){Y(`cancel`),m(null),f(!1);return}f(e=>!e)}return{isBrowserActive:t,devServerStopped:r,selectedProjectId:v,runCommand:y?.runCommand,currentUrl:w,inputUrl:x,setInputUrl:C,handleKeyDown:re,deviceMode:O,updateDeviceMode:te,selectionModeError:A,isSelectModeEnabled:l,isEditModeActive:d||I(p),isSurfaceSelectInteraction:l||d,toggleSelectMode:se,toggleEditMode:ce,refresh:Z,goBack:ie,goForward:ae,openExternal:()=>void b(w),runPreviewTextEdit:Y,previewContainerRef:L,iframeRef:F,handleWebviewRef:ee,useNativeWebview:R,nativeWebviewMounted:K,previewRpcPreload:B}}var Re={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function ze(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 Be(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 Ve(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 He(e){let t=(0,J.c)(43),{controller:n,urlInputRef:r}=e,{currentUrl:i,inputUrl:a,setInputUrl:o,handleKeyDown:s,goBack:c,goForward:y,refresh:b,toggleSelectMode:x,toggleEditMode:S,openExternal:C,updateDeviceMode:w,selectionModeError:T,isSelectModeEnabled:E,isEditModeActive:D,deviceMode:O}=n,k;t[0]!==i||t[1]!==c?(k=i&&(0,X.jsx)($,{onClick:c,label:`Back`,children:(0,X.jsx)(_,{size:15})}),t[0]=i,t[1]=c,t[2]=k):k=t[2];let A;t[3]!==i||t[4]!==y?(A=i&&(0,X.jsx)($,{onClick:y,label:`Forward`,children:(0,X.jsx)(u,{size:15})}),t[3]=i,t[4]=y,t[5]=A):A=t[5];let j;t[6]===o?j=t[7]:(j=e=>o(e.target.value),t[6]=o,t[7]=j);let M;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(M=v(`flex-1 rounded-full bg-muted font-mono`),t[8]=M):M=t[8];let N;t[9]!==s||t[10]!==a||t[11]!==j||t[12]!==r?(N=(0,X.jsx)(P,{ref:r,type:`text`,value:a,onChange:j,onKeyDown:s,placeholder:`Enter URL...`,className:M,spellCheck:!1}),t[9]=s,t[10]=a,t[11]=j,t[12]=r,t[13]=N):N=t[13];let F;t[14]!==i||t[15]!==b?(F=i&&(0,X.jsx)($,{onClick:b,label:`Refresh page`,children:(0,X.jsx)(f,{size:15})}),t[14]=i,t[15]=b,t[16]=F):F=t[16];let I;t[17]!==i||t[18]!==E||t[19]!==T||t[20]!==x?(I=i&&(0,X.jsx)($,{onClick:x,label:T?`Select element unavailable: ${T}`:E?`Exit element selection`:`Select element from preview`,isActive:E,activeStyle:`depressed`,children:(0,X.jsx)(h,{size:15})}),t[17]=i,t[18]=E,t[19]=T,t[20]=x,t[21]=I):I=t[21];let L;t[22]!==i||t[23]!==D||t[24]!==T||t[25]!==S?(L=i&&(0,X.jsx)($,{onClick:S,label:T?`Edit text unavailable: ${T}`:D?`Exit text editing`:`Edit text from preview`,isActive:D,activeStyle:`depressed`,children:(0,X.jsx)(d,{size:15})}),t[22]=i,t[23]=D,t[24]=T,t[25]=S,t[26]=L):L=t[26];let R;t[27]!==i||t[28]!==O||t[29]!==w?(R=i&&(0,X.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,X.jsx)($,{onClick:()=>w(`desktop`),label:`Desktop view`,isActive:O===`desktop`,children:(0,X.jsx)(p,{size:15})}),(0,X.jsx)($,{onClick:()=>w(`tablet`),label:`Tablet view`,isActive:O===`tablet`,children:(0,X.jsx)(m,{size:15})}),(0,X.jsx)($,{onClick:()=>w(`mobile`),label:`Mobile view`,isActive:O===`mobile`,children:(0,X.jsx)(l,{size:15})})]}),t[27]=i,t[28]=O,t[29]=w,t[30]=R):R=t[30];let z;t[31]!==i||t[32]!==C?(z=i&&(0,X.jsx)($,{onClick:C,label:`Open in external browser`,children:(0,X.jsx)(g,{size:15})}),t[31]=i,t[32]=C,t[33]=z):z=t[33];let B;return t[34]!==k||t[35]!==z||t[36]!==A||t[37]!==N||t[38]!==F||t[39]!==I||t[40]!==L||t[41]!==R?(B=(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:[k,A,N,F,I,L,R,z]})}),t[34]=k,t[35]=z,t[36]=A,t[37]=N,t[38]=F,t[39]=I,t[40]=L,t[41]=R,t[42]=B):B=t[42],B}function Ue(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)(F,{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 We(e){let t=(0,J.c)(23),{instanceId:n}=e,r=Le(n),i=Re[r.deviceMode],{registerPanelFocus:a}=A(),o=(0,q.useRef)(null),s,c;t[0]!==n||t[1]!==a?(s=()=>a(n,()=>o.current?.focus()),c=[n,a],t[0]=n,t[1]=a,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,q.useEffect)(s,c);let l;t[4]!==r.currentUrl||t[5]!==r.handleWebviewRef||t[6]!==r.iframeRef||t[7]!==r.nativeWebviewMounted||t[8]!==r.previewRpcPreload||t[9]!==r.useNativeWebview?(l=(0,X.jsx)(ze,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[4]=r.currentUrl,t[5]=r.handleWebviewRef,t[6]=r.iframeRef,t[7]=r.nativeWebviewMounted,t[8]=r.previewRpcPreload,t[9]=r.useNativeWebview,t[10]=l):l=t[10];let u=l;if(!r.isBrowserActive){let e;return t[11]!==r.previewContainerRef||t[12]!==u?(e=(0,X.jsx)(Ve,{previewContainerRef:r.previewContainerRef,children:u}),t[11]=r.previewContainerRef,t[12]=u,t[13]=e):e=t[13],e}let d;t[14]===r?d=t[15]:(d=(0,X.jsx)(He,{controller:r,urlInputRef:o}),t[14]=r,t[15]=d);let f;t[16]!==r||t[17]!==i||t[18]!==u?(f=r.currentUrl?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(re,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}),(0,X.jsx)(Be,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:i,previewContainerRef:r.previewContainerRef,children:u})]}):(0,X.jsx)(Ue,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}),t[16]=r,t[17]=i,t[18]=u,t[19]=f):f=t[19];let p;return t[20]!==d||t[21]!==f?(p=(0,X.jsx)(T,{children:(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[d,f]})}),t[20]=d,t[21]=f,t[22]=p):p=t[22],p}export{We 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{ot as i}from"./dist-DjiNKpTV.js";import{o as a,s as o,t as s}from"./utils-CT-Dw22R.js";var c=t(),l=e(n(),1),u=r(),d=Symbol.for(`react.lazy`),f=l.use;function p(e){return typeof e==`object`&&!!e&&`then`in e}function m(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===d&&`_payload`in e&&p(e._payload)}function h(e){let t=_(e),n=l.forwardRef((e,n)=>{let{children:r,...i}=e;m(r)&&typeof f==`function`&&(r=f(r._payload));let a=l.Children.toArray(r),o=a.find(y);if(o){let e=o.props.children,r=a.map(t=>t===o?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t);return(0,u.jsx)(t,{...i,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,u.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var g=h(`Slot`);function _(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(m(n)&&typeof f==`function`&&(n=f(n._payload)),l.isValidElement(n)){let e=x(n),i=b(r,n.props);return n.type!==l.Fragment&&(i.ref=t?o(t,e):e),l.cloneElement(n,i)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var v=Symbol(`radix.slottable`);function y(e){return l.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===v}function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var S=a(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full ${i.body} font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-foreground hover:text-background transition-colors`,action:`text-muted-foreground hover:bg-foreground hover:text-background transition-colors`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-6 py-3`,sm:`h-9 rounded-full px-4`,lg:`h-11 rounded-full px-10`,icon:`h-10 w-10 [&_svg]:size-5`,"icon-md":`h-8 w-8 [&_svg]:size-4`,"icon-sm":`h-7 w-7 [&_svg]:size-4`,"icon-xs":`h-5 w-5 [&_svg]:size-3`}},defaultVariants:{variant:`default`,size:`default`}}),C=l.forwardRef((e,t)=>{let n=(0,c.c)(15),r,i,a,o,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],l=n[5]):({className:r,variant:l,size:a,asChild:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=l);let d=o!==void 0&&o?g:`button`,f;n[6]!==r||n[7]!==a||n[8]!==l?(f=s(S({variant:l,size:a,className:r})),n[6]=r,n[7]=a,n[8]=l,n[9]=f):f=n[9];let p;return n[10]!==d||n[11]!==i||n[12]!==t||n[13]!==f?(p=(0,u.jsx)(d,{className:f,ref:t,...i}),n[10]=d,n[11]=i,n[12]=t,n[13]=f,n[14]=p):p=n[14],p});C.displayName=`Button`;export{h as i,S as n,g as r,C 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-DjiNKpTV.js";import{t as a}from"./utils-CT-Dw22R.js";var o=t(),s=e(n(),1),c=r(),l=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});l.displayName=`Card`;var u=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});u.displayName=`CardHeader`;var d=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.sectionTitle,`leading-none tracking-tight`,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});d.displayName=`CardTitle`;var f=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.bodyMuted,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});f.displayName=`CardDescription`;var p=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});p.displayName=`CardContent`;var m=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});m.displayName=`CardFooter`;export{d as i,p as n,u as r,l as t};
@@ -1 +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-DjiNKpTV.js";import{Q as s,i as c,n as l,r as u}from"./store-CHF6tOp2.js";import{_n as d,wt as f}from"./api-D1GxdEEp.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),ee=(0,p.useRef)(Promise.resolve()),te=(0,p.useRef)(null),ne=(0,p.useRef)(0),w=(0,p.useRef)(v(e,t,n));w.current=v(e,t,n),(0,p.useEffect)(()=>{let e=te.current!==o;if(te.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=w.current,l=++ne.current,u=!1;async function d(){try{let e=await f(t);if(u||l!==ne.current)return;if(a({type:s.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),w.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,ee.current=ee.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 ee(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 te(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 ne(e,t,n){return t.length===0?null:e===`primary`?n:e}function w(e,t){return e===`primary`&&t?t:e}function T(e){let t=(0,m.c)(68),{children:n}=e,r=l(),a=c(),d=u(oe),f=u(ae),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[],t[0]=h):h=t[0];let[_,v]=(0,p.useState)(h),[T,E]=(0,p.useState)(!0),[D,O]=(0,p.useState)(null),[se,ce]=(0,p.useState)(`half`),[k,A]=(0,p.useState)(i),[le,j]=(0,p.useState)(null),M;t[1]===f?M=t[2]:(M=Object.keys(f).map(ie),t[1]=f,t[2]=M);let ue=M,N;t[3]!==ue||t[4]!==_?(N=[...ue,..._],t[3]=ue,t[4]=_,t[5]=N):N=t[5];let P=N,F;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(F=new Map,t[6]=F):F=t[6];let de=(0,p.useRef)(F),I=(0,p.useRef)(null),L;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(L=(e,t)=>(de.current.set(e,t),()=>{de.current.delete(e)}),t[7]=L):L=t[7];let fe=L,R;t[8]!==r||t[9]!==P?(R=e=>{if(e===`primary`){r({type:s.SetFocusedPane,paneId:`primary`}),r({type:s.FocusChatInput});return}if(P.find(t=>t.id===e)?.panelId===`chat`){r({type:s.SetFocusedPane,paneId:e}),r({type:s.FocusChatInput});return}de.current.get(e)?.()},t[8]=r,t[9]=P,t[10]=R):R=t[10];let z=R,B,V;t[11]!==D||t[12]!==z||t[13]!==k?(B=()=>{let e=D??k;if(e===null)return;let t=I.current;I.current=e,!(t===null||t===e)&&z(e)},V=[D,k,z],t[11]=D,t[12]=z,t[13]=k,t[14]=B,t[15]=V):(B=t[14],V=t[15]),(0,p.useEffect)(B,V);let H;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(H=()=>{I.current=i,v([]),E(!0),O(null),A(i),j(null)},t[16]=H):H=t[16];let pe=H,U;t[17]===a?U=t[18]:(U=e=>{let t=g(e,a.getState().selectedThreadId);I.current=t.expandedWindowId??t.selectedWindowId,v(t.nonChatWindows),O(t.expandedWindowId),A(t.selectedWindowId),j(null)},t[17]=a,t[18]=U);let me=U,W;t[19]!==D||t[20]!==me||t[21]!==_||t[22]!==k?(W={nonChatWindows:_,expandedWindowId:D,selectedWindowId:k,onReset:pe,onHydrate:me},t[19]=D,t[20]=me,t[21]=_,t[22]=k,t[23]=W):W=t[23],y(W);let G;t[24]!==D||t[25]!==f||t[26]!==T||t[27]!==k||t[28]!==P?(G={windows:P,extraChatPanes:f,primaryChatOpen:T,expandedWindowId:D,selectedWindowId:k,setExpandedWindowId:O,setSelectedWindowId:A},t[24]=D,t[25]=f,t[26]=T,t[27]=k,t[28]=P,t[29]=G):G=t[29],S(G);let K;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(K=e=>{A(e)},t[30]=K):K=t[30];let he=K,q;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>{A(e),O(e)},t[31]=q):q=t[31];let ge=q,J;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>{O(null)},t[32]=J):J=t[32];let _e=J,Y;t[33]!==T||t[34]!==P.length?(Y=e=>{e===`primary`&&E(!0),O(t=>t===null&&P.length>0||t===null&&T&&e!==`primary`?null:e),j(e)},t[33]=T,t[34]=P.length,t[35]=Y):Y=t[35];let X=Y,Z;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(Z=()=>{j(null)},t[36]=Z):Z=t[36];let ve=Z,Q;t[37]!==r||t[38]!==X||t[39]!==d?(Q=e=>{let t=o();return e===`chat`?d?(r({type:s.AddChatPane,paneId:t,conversationId:o()}),X(t),t):t:(v(n=>[...n,{id:t,panelId:e}]),X(t),t)},t[37]=r,t[38]=X,t[39]=d,t[40]=Q):Q=t[40];let ye=Q,$;t[41]!==r||t[42]!==T||t[43]!==P?($=e=>{if(e===`primary`){E(!1);let e=P[0]?.id??null;O(t=>ne(t,P,e)),A(t=>w(t,e));return}let t=P.find(t=>t.id===e);t&&(C(e,t,r,v),O(t=>ee(t,e,P,T)),A(t=>te(t,e,P,T)))},t[41]=r,t[42]=T,t[43]=P,t[44]=$):$=t[44];let be=$,xe;t[45]!==r||t[46]!==P?(xe=()=>{O(null),A(i),E(!0);for(let e of P)e.panelId===`chat`&&r({type:s.RemoveChatPane,paneId:e.id});v([])},t[45]=r,t[46]=P,t[47]=xe):xe=t[47];let Se=xe,Ce;t[48]!==T||t[49]!==P?(Ce=e=>e===`chat`?T||P.some(re):P.some(t=>t.panelId===e),t[48]=T,t[49]=P,t[50]=Ce):Ce=t[50];let we=Ce,Te=P.length>0,Ee=D!==null,De;t[51]!==ye||t[52]!==Se||t[53]!==be||t[54]!==se||t[55]!==D||t[56]!==Te||t[57]!==Ee||t[58]!==we||t[59]!==le||t[60]!==T||t[61]!==X||t[62]!==k||t[63]!==P?(De={windows:P,addWindow:ye,closeWindow:be,closeAllWindows:Se,isPrimaryChatOpen:T,isPanelOpen:we,hasOpenWindows:Te,isLayoutExpanded:Ee,expandedWindowId:D,expandWindow:ge,collapseLayout:_e,columnWidth:se,setColumnWidth:ce,selectedWindowId:k,selectWindow:he,revealWindow:X,pendingScrollWindowId:le,clearPendingScrollWindow:ve,registerPanelFocus:fe},t[51]=ye,t[52]=Se,t[53]=be,t[54]=se,t[55]=D,t[56]=Te,t[57]=Ee,t[58]=we,t[59]=le,t[60]=T,t[61]=X,t[62]=k,t[63]=P,t[64]=De):De=t[64];let Oe=De,ke;return t[65]!==n||t[66]!==Oe?(ke=(0,b.jsx)(x.Provider,{value:Oe,children:n}),t[65]=n,t[66]=Oe,t[67]=ke):ke=t[67],ke}function re(e){return e.panelId===`chat`}function ie(e){return{id:e,panelId:`chat`}}function ae(e){return e.extraChatPanes}function oe(e){return e.selectedThreadId}function E(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{E as n,T as t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ot as n}from"./dist-DjiNKpTV.js";import{I as r}from"./dist-CNOCRPxn.js";import{t as i}from"./button-B6HDsfd5.js";import{i as a,n as o,r as s,t as c}from"./tooltip-BtJG5fZl.js";import{a as l,i as u,o as d,r as f,s as p,t as m}from"./dialog--0foS3aw.js";import{Ft as h,X as g,fn as _,yt as v}from"./index-BOB3ZUQs.js";var y=e(),b=t();function x(e){let t=(0,y.c)(50),{open:x,onOpenChange:S,commitMessage:C,onCommitMessageChange:w,autoGenerateCommitMessage:T,onAutoGenerateChange:E,isGeneratingMessage:D,isLoading:O,onGenerateMessage:k,onCommit:A,currentBranch:j}=e,M;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,b.jsx)(p,{children:`Commit Changes`}),t[0]=M):M=t[0];let N;t[1]===j?N=t[2]:(N=(0,b.jsxs)(d,{children:[M,(0,b.jsxs)(u,{children:[`Enter a commit message for your changes on branch `,j]})]}),t[1]=j,t[2]=N);let P;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,b.jsx)(h,{htmlFor:`commit-message`,children:`Commit Message`}),t[3]=P):P=t[3];let F;t[4]===w?F=t[5]:(F=e=>w(e.target.value),t[4]=w,t[5]=F);let I;t[6]!==C||t[7]!==D||t[8]!==F?(I=(0,b.jsx)(g,{id:`commit-message`,placeholder:`Enter commit message...`,value:C,onChange:F,disabled:D,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[6]=C,t[7]=D,t[8]=F,t[9]=I):I=t[9];let L=D||O,R;t[10]===D?R=t[11]:(R=D?(0,b.jsx)(_,{}):(0,b.jsx)(r,{className:`h-3.5 w-3.5`}),t[10]=D,t[11]=R);let z;t[12]!==k||t[13]!==L||t[14]!==R?(z=(0,b.jsx)(a,{asChild:!0,children:(0,b.jsx)(i,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:k,disabled:L,children:R})}),t[12]=k,t[13]=L,t[14]=R,t[15]=z):z=t[15];let B=D?`Generating commit message...`:`Generate commit message with AI`,V;t[16]===B?V=t[17]:(V=(0,b.jsx)(o,{children:B}),t[16]=B,t[17]=V);let H;t[18]!==V||t[19]!==z?(H=(0,b.jsx)(s,{children:(0,b.jsxs)(c,{children:[z,V]})}),t[18]=V,t[19]=z,t[20]=H):H=t[20];let U;t[21]!==H||t[22]!==I?(U=(0,b.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,b.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,b.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]})}),t[21]=H,t[22]=I,t[23]=U):U=t[23];let W;t[24]!==T||t[25]!==E?(W=(0,b.jsx)(v,{value:T,onChange:E,ariaLabel:`Auto generate commit messages`}),t[24]=T,t[25]=E,t[26]=W):W=t[26];let G;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,b.jsx)(h,{htmlFor:`auto-generate`,className:n.labelNormal,children:`Auto generate commit messages`}),t[27]=G):G=t[27];let K;t[28]===W?K=t[29]:(K=(0,b.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[W,G]}),t[28]=W,t[29]=K);let q;t[30]!==C||t[31]!==O?(q=O||!C.trim(),t[30]=C,t[31]=O,t[32]=q):q=t[32];let J;t[33]===O?J=t[34]:(J=O?(0,b.jsxs)(b.Fragment,{children:[`Commit`,(0,b.jsx)(_,{size:`sm`})]}):`Commit`,t[33]=O,t[34]=J);let Y;t[35]!==A||t[36]!==q||t[37]!==J?(Y=(0,b.jsx)(i,{className:`ml-auto`,onClick:A,disabled:q,children:J}),t[35]=A,t[36]=q,t[37]=J,t[38]=Y):Y=t[38];let X;t[39]!==K||t[40]!==Y?(X=(0,b.jsxs)(l,{className:`w-full items-center gap-4`,children:[K,Y]}),t[39]=K,t[40]=Y,t[41]=X):X=t[41];let Z;t[42]!==U||t[43]!==X||t[44]!==N?(Z=(0,b.jsxs)(f,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[N,U,X]}),t[42]=U,t[43]=X,t[44]=N,t[45]=Z):Z=t[45];let Q;return t[46]!==S||t[47]!==x||t[48]!==Z?(Q=(0,b.jsx)(m,{open:x,onOpenChange:S,children:Z}),t[46]=S,t[47]=x,t[48]=Z,t[49]=Q):Q=t[49],Q}export{x as CommitDialog};
@@ -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-DjiNKpTV.js";import{jn as a,vn as o,xt as s}from"./dist-CNOCRPxn.js";import{t as c}from"./utils-CT-Dw22R.js";import{t as l}from"./button-B6HDsfd5.js";import{r as u}from"./scroll-area-BMQFeWmq.js";import{a as d,i as f,o as p,r as m,s as h,t as g}from"./dialog--0foS3aw.js";var _=t(),v=e(n(),1),y=r(),b=1500;function x(e){let t=(0,_.c)(41),{error:n,onDismiss:r,onFixInChat:x}=e,[S,C]=(0,v.useState)(!1),w=(0,v.useRef)(null),T,E;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null)},E=[],t[0]=T,t[1]=E):(T=t[0],E=t[1]),(0,v.useEffect)(T,E);let D;t[2]===r?D=t[3]:(D=function(e){e||r()},t[2]=r,t[3]=D);let O=D,k;t[4]===n.message?k=t[5]:(k=async function(){try{await navigator.clipboard.writeText(n.message)}catch{}C(!0),w.current!==null&&clearTimeout(w.current),w.current=setTimeout(()=>{C(!1),w.current=null},b)},t[4]=n.message,t[5]=k);let A=k,j;t[6]!==n||t[7]!==x?(j=function(){x(n)},t[6]=n,t[7]=x,t[8]=j):j=t[8];let M=j,N;t[9]===n.title?N=t[10]:(N=(0,y.jsx)(h,{children:n.title}),t[9]=n.title,t[10]=N);let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,y.jsx)(f,{children:`Git returned an error, so the commit was not created. Fix the issue below, then try again.`}),t[11]=P):P=t[11];let F;t[12]===N?F=t[13]:(F=(0,y.jsxs)(p,{children:[N,P]}),t[12]=N,t[13]=F);let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=c(i.compact,`whitespace-pre-wrap break-words p-3 font-mono text-foreground`),t[14]=I):I=t[14];let L;t[15]===n.message?L=t[16]:(L=(0,y.jsx)(u,{className:`max-h-56 rounded-md border bg-muted/40`,children:(0,y.jsx)(`pre`,{className:I,children:n.message})}),t[15]=n.message,t[16]=L);let R;t[17]===r?R=t[18]:(R=(0,y.jsx)(l,{variant:`outline`,onClick:r,children:`Close`}),t[17]=r,t[18]=R);let z;t[19]===A?z=t[20]:(z=()=>void A(),t[19]=A,t[20]=z);let B;t[21]===S?B=t[22]:(B=S?(0,y.jsx)(a,{className:`h-4 w-4`}):(0,y.jsx)(o,{className:`h-4 w-4`}),t[21]=S,t[22]=B);let V=S?`Copied`:`Copy`,H;t[23]!==z||t[24]!==B||t[25]!==V?(H=(0,y.jsxs)(l,{variant:`outline`,onClick:z,children:[B,V]}),t[23]=z,t[24]=B,t[25]=V,t[26]=H):H=t[26];let U;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(s,{className:`h-4 w-4`}),t[27]=U):U=t[27];let W;t[28]===M?W=t[29]:(W=(0,y.jsxs)(l,{onClick:M,children:[U,`Fix in Chat`]}),t[28]=M,t[29]=W);let G;t[30]!==R||t[31]!==H||t[32]!==W?(G=(0,y.jsxs)(d,{className:`gap-2`,children:[R,H,W]}),t[30]=R,t[31]=H,t[32]=W,t[33]=G):G=t[33];let K;t[34]!==G||t[35]!==F||t[36]!==L?(K=(0,y.jsxs)(m,{className:`max-w-xl`,children:[F,L,G]}),t[34]=G,t[35]=F,t[36]=L,t[37]=K):K=t[37];let q;return t[38]!==O||t[39]!==K?(q=(0,y.jsx)(g,{open:!0,onOpenChange:O,children:K}),t[38]=O,t[39]=K,t[40]=q):q=t[40],q}export{x as CommitErrorDialog};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n,ot as r}from"./dist-DjiNKpTV.js";import{t as i}from"./utils-CT-Dw22R.js";import{Ft as a}from"./index-BOB3ZUQs.js";import{n as o,t as s}from"./toggle-group-DMR7z3pz.js";var c=e(),l=t(),u=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,d=`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`;function f(e){let t=(0,c.c)(11),{commitMethod:a,onCommitMethodChange:f,disabled:p,className:m}=e,h=p===void 0?!1:p,g;t[0]===f?g=t[1]:(g=e=>{(e===n.PullRequest||e===n.Direct)&&f(e)},t[0]=f,t[1]=g);let _;t[2]===m?_=t[3]:(_=i(u,m),t[2]=m,t[3]=_);let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(o,{value:n.PullRequest,"aria-label":`Pull Requests`,className:i(r.body,d),children:`Pull Requests`}),t[4]=v):v=t[4];let y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(o,{value:n.Direct,"aria-label":`Direct Commits`,className:i(r.body,d),children:`Direct Commits`}),t[5]=y):y=t[5];let b;return t[6]!==a||t[7]!==h||t[8]!==g||t[9]!==_?(b=(0,l.jsxs)(s,{type:`single`,value:a,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),t[6]=a,t[7]=h,t[8]=g,t[9]=_,t[10]=b):b=t[10],b}function p(e){let t=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(a,{children:`Commit method`}),t[0]=s):s=t[0];let u;t[1]!==i||t[2]!==o?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:o}),t[1]=i,t[2]=o,t[3]=u):u=t[3];let d=i===n.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`,p;t[4]===d?p=t[5]:(p=(0,l.jsx)(`p`,{className:r.bodyMuted,children:d}),t[4]=d,t[5]=p);let m;return t[6]!==u||t[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),t[6]=u,t[7]=p,t[8]=m):m=t[8],m}export{f as i,d as n,p as r,u as t};
@@ -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-DjiNKpTV.js";import{On as a,Sn as o,g as s,h as c,jn as l,l as u,t as d,u as f}from"./dist-CNOCRPxn.js";import{t as p}from"./utils-CT-Dw22R.js";import{_ as m,a as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as h,m as se,n as ce,o as le,p as ue,r as de,s as fe,t as pe,u as g}from"./dist-CqGsum35.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),l=u(r),d=v.useCallback(e=>{s(e),l(e)},[l]);return(0,y.jsx)(ge,{scope:t,open:o,onOpenChange:d,modal:a,children:(0,y.jsx)(re,{...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),d=v.useCallback(()=>window.clearTimeout(u.current),[]),p=e=>{c.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return v.useEffect(()=>d,[d]),v.useEffect(()=>void(r&&d()),[r,d]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(pe,{...o,virtualRef:l}),(0,y.jsx)(f.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=>{d(),p(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:s(e.onPointerDown,V(e=>{d(),u.current=window.setTimeout(()=>p(e),700)})),onPointerMove:r?e.onPointerMove:s(e.onPointerMove,V(d)),onPointerCancel:r?e.onPointerCancel:s(e.onPointerCancel,V(d)),onPointerUp:r?e.onPointerUp:s(e.onPointerUp,V(d))})]})});T.displayName=w;var _e=`ContextMenuPortal`,E=e=>{let{__scopeContextMenu:t,...n}=e,r=x(t);return(0,y.jsx)(h,{...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)(oe,{...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)(ee,{...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)(te,{...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)(le,{...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)(de,{...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)(g,{...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)(ne,{...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)(fe,{...i,...r,ref:t})});F.displayName=we;var Te=`ContextMenuSeparator`,I=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ue,{...i,...r,ref:t})});I.displayName=Te;var L=`ContextMenuArrow`,Ee=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ce,{...i,...r,ref:t})});Ee.displayName=L;var R=`ContextMenuSub`,De=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=x(t),[s,c]=d({prop:i,defaultProp:a??!1,onChange:r,caller:R});return(0,y.jsx)(se,{...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)(ie,{...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)(ae,{...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=I,Y=z,X=B,Ne=Ae,Pe=je,Fe=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:o,inset:s,children:r,...c}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s,n[4]=c);let l;n[5]!==o||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`,o),n[5]=o,n[6]=s,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,y.jsx)(a,{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,a,o,s;n[0]===e?(r=n[1],a=n[2],o=n[3],s=n[4]):({className:o,children:a,checked:r,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o,n[4]=s);let c;n[5]===o?c=n[6]:(c=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`),o),n[5]=o,n[6]=c);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)(l,{className:`h-4 w-4`})})}),n[7]=u):u=n[7];let d;return n[8]!==r||n[9]!==a||n[10]!==s||n[11]!==t||n[12]!==c?(d=(0,y.jsxs)(G,{ref:t,className:c,checked:r,...s,children:[u,a]}),n[8]=r,n[9]=a,n[10]=s,n[11]=t,n[12]=c,n[13]=d):d=n[13],d});Le.displayName=G.displayName;var Re=v.forwardRef((e,t)=>{let n=(0,_.c)(12),r,a,s;n[0]===e?(r=n[1],a=n[2],s=n[3]):({className:a,children:r,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s);let c;n[4]===a?c=n[5]:(c=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]=c);let l;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(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)(o,{className:`h-2 w-2 fill-current`})})}),n[6]=l):l=n[6];let u;return n[7]!==r||n[8]!==s||n[9]!==t||n[10]!==c?(u=(0,y.jsxs)(K,{ref:t,className:c,...s,children:[l,r]}),n[7]=r,n[8]=s,n[9]=t,n[10]=c,n[11]=u):u=n[11],u});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 +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{t as i}from"./query-keys-5QPW6Dv-.js";import{t as a}from"./useInfiniteQuery-DUeUxDcu.js";import{ot as o}from"./dist-DjiNKpTV.js";import{D as s,bt as c,fn as l}from"./dist-CNOCRPxn.js";import{r as u,t as d}from"./utils-CT-Dw22R.js";import{t as f}from"./button-B6HDsfd5.js";import{At as p,Oi as m,Yr as h,ci as g,u as ee}from"./api-D1GxdEEp.js";import{n as _}from"./async-loading-fallback-D2X0o4Qa.js";import{n as v}from"./use-toast-xpb5jNtN.js";import{Fn as y,In as te,Ln as ne,N as b,Pn as x,Rn as S,Un as C,_n as re,kn as w,xn as T,zn as E}from"./index-BOB3ZUQs.js";import{t as D}from"./delete-confirm-dialog-3DX1u0Dg.js";import{i as O,r as k}from"./table-MUx4ZxvS.js";var A=e(n(),1),j=t(),M=25;function ie(){let e=(0,j.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:i.conversations.recent(),queryFn:N,initialPageParam:0,getNextPageParam(e){let t=e.offset+e.conversations.length;return t<e.total?t:void 0}},e[0]=t):t=e[0];let n=a(t),r;e[1]===n.data?.pages?r=e[2]:(r=n.data?.pages.flatMap(function(e){return e.conversations})??[],e[1]=n.data?.pages,e[2]=r);let o=r,s=n.data?.pages[0]?.total??0,c;return e[3]!==o||e[4]!==n.error||e[5]!==n.fetchNextPage||e[6]!==n.hasNextPage||e[7]!==n.isFetchingNextPage||e[8]!==n.isPending||e[9]!==n.refetch||e[10]!==s?(c={conversations:o,total:s,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=o,e[4]=n.error,e[5]=n.fetchNextPage,e[6]=n.hasNextPage,e[7]=n.isFetchingNextPage,e[8]=n.isPending,e[9]=n.refetch,e[10]=s,e[11]=c):c=e[11],c}function N(e){let{pageParam:t}=e;return p(M,t)}var P=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],F=new Set(P.map(function(e){return e.id}));function I(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&F.has(e)}):[]}catch{return[]}}function L(){return I(g(h.HISTORY_COLUMNS))}function R(){let e=(0,j.c)(6),[t,n]=(0,A.useState)(L),r;e[0]===t?r=e[1]:(r=function(e){return t.includes(e)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=function(e,t){n(function(n){let r=t?n.includes(e)?n:[...n,e]:n.filter(function(t){return t!==e});return m(h.HISTORY_COLUMNS,JSON.stringify(r)),r})},e[2]=a):a=e[2];let o=a,s;return e[3]!==i||e[4]!==t?(s={visibleColumns:t,isColumnVisible:i,setColumnVisible:o},e[3]=i,e[4]=t,e[5]=s):s=e[5],s}var z=r(),B=36,V=3,H=`table-fixed`,U=`h-9 w-48 bg-transparent py-2`,W=`h-9 bg-transparent py-2`,G=`h-9 w-20 bg-transparent py-2 text-right`,K=`h-9 w-28 bg-transparent py-2 text-right`,q=`h-9 w-28 bg-transparent py-2 text-right`,J=`h-9 w-40 bg-transparent py-2`,Y=`h-9 w-32 bg-transparent py-2`,ae=`h-9 w-24 bg-transparent py-2 text-right`,oe=d(o.bodyMuted,`w-48 truncate py-1.5`),se=`py-1.5`,X=d(o.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),Z=d(o.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),Q=d(o.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),ce=d(o.bodyMuted,`w-40 truncate py-1.5`),le=d(o.bodyMuted,`w-32 truncate py-1.5`),$=d(o.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function ue(e){let t=(0,j.c)(4),n;if(t[0]!==e){let{style:r,...i}=e,a;t[2]===r?a=t[3]:(a={...r,width:`100%`},t[2]=r,t[3]=a),n=(0,z.jsx)(`table`,{...i,style:a,className:d(`w-full caption-bottom select-text`,H,o.body,i.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function de(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=d(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function fe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=d(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function pe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=d(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function me(e){return function(){return(0,z.jsx)(`tr`,{children:(0,z.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,z.jsx)(_,{label:`Loading more…`,size:`sm`})})})}}function he(e){switch(e){case`turns`:return(0,z.jsx)(O,{className:G,children:`Turns`},e);case`inputTokens`:return(0,z.jsx)(O,{className:K,children:`Input Tokens`},e);case`outputTokens`:return(0,z.jsx)(O,{className:q,children:`Output Tokens`},e);case`model`:return(0,z.jsx)(O,{className:J,children:`Model`},e);case`branch`:return(0,z.jsx)(O,{className:Y,children:`Branch`},e)}}function ge(e,t){switch(t){case`turns`:return(0,z.jsx)(k,{className:X,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,z.jsx)(k,{className:Z,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,z.jsx)(k,{className:Q,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,z.jsx)(k,{className:ce,children:e.model??`—`},t);case`branch`:return(0,z.jsx)(k,{className:le,children:e.branch},t)}}function _e(){let{openConversation:e}=b(),{toast:t}=v(),[n,r]=(0,A.useState)(!1),[i,a]=(0,A.useState)(!1),{visibleColumns:p,isColumnVisible:m,setColumnVisible:h}=R(),{conversations:g,isInitialLoading:j,isLoadingMore:M,error:N,hasNextPage:F,fetchNextPage:I,refetch:L}=ie(),G=V+p.length,K=(0,A.useCallback)(()=>{F&&!M&&I()},[I,F,M]);async function q(){a(!0);try{await ee(),await L(),r(!1),t({title:`Conversation history cleared`})}catch(e){t({title:`Failed to clear conversation history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{a(!1)}}let J=(0,A.useMemo)(function(){return function({item:t,...n}){return(0,z.jsx)(`tr`,{...n,className:d(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,n.className),onClick:()=>{t&&e(t)}})}},[e]),Y=(0,A.useMemo)(function(){return{Table:ue,TableHead:de,TableBody:fe,TableRow:J,Scroller:pe,Footer:M?me(G):void 0}},[J,G,M]);function X(e,t){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(k,{className:oe,children:t.projectName}),(0,z.jsx)(k,{className:se,children:(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(c,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:d(o.body,`truncate`),children:t.title})]})}),P.map(function(e){return m(e.id)?ge(t,e.id):null}),(0,z.jsx)(k,{className:$,"aria-label":`Last updated ${u(t.lastMessageAt)} ago`,children:u(t.lastMessageAt)})]})}function Z(){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:U,children:`Project`}),(0,z.jsx)(O,{className:W,children:`Chat`}),P.map(function(e){return m(e.id)?he(e.id):null}),(0,z.jsx)(O,{className:ae,children:`Updated`})]})}let Q=(0,z.jsx)(`table`,{className:d(`w-full caption-bottom`,H,o.body),children:(0,z.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,z.jsx)(`tr`,{children:Z()})})});return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,z.jsxs)(w,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,z.jsx)(T,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:g.length>0?Q:void 0,action:(0,z.jsxs)(x,{children:[(0,z.jsx)(C,{asChild:!0,children:(0,z.jsx)(f,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,z.jsx)(l,{className:`h-4 w-4`})})}),(0,z.jsxs)(te,{align:`end`,className:`w-48`,children:[(0,z.jsx)(S,{className:o.body,children:`Columns`}),P.map(function(e){return(0,z.jsx)(y,{checked:m(e.id),onCheckedChange:t=>{h(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,z.jsx)(E,{}),(0,z.jsxs)(ne,{className:d(o.body,`gap-2 text-destructive focus:text-destructive`),disabled:g.length===0,onSelect:()=>r(!0),children:[(0,z.jsx)(s,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:j?(0,z.jsx)(_,{label:`Loading conversation history...`,size:`lg`}):N?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,z.jsx)(`p`,{className:o.body,children:N instanceof Error?N.message:`Failed to load conversation history`}),(0,z.jsx)(f,{onClick:()=>void L(),children:`Try again`})]})}):g.length===0?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,z.jsx)(`h3`,{className:o.emptyStateTitle,children:`No history`}),(0,z.jsx)(`p`,{className:o.bodyMuted,children:`No conversations found yet.`})]})}):(0,z.jsx)(re,{style:{height:`100%`},data:g,computeItemKey:(e,t)=>t.conversationId,itemContent:X,endReached:K,defaultItemHeight:B,increaseViewportBy:B*5,components:Y})})]}),(0,z.jsx)(D,{open:n,onOpenChange:r,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void q(),confirming:i,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{_e as default};
@@ -1,2 +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-DjiNKpTV.js";import{un as c}from"./dist-CNOCRPxn.js";import{t as l}from"./utils-CT-Dw22R.js";import{t as u}from"./button-B6HDsfd5.js";import{Ai as d,Ci as f,Kt as p,Li as m,Mt as h,c as g,di as _,ni as v,vi as y}from"./api-D1GxdEEp.js";import{n as b}from"./scroll-area-BMQFeWmq.js";import{a as x,i as S,o as C,r as w,s as T,t as E}from"./dialog--0foS3aw.js";import{Ft as D,It as O,M as k}from"./index-BOB3ZUQs.js";import{n as A,t as ee}from"./toggle-group-DMR7z3pz.js";import{r as j}from"./commit-method-fields-BihSf23f.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;let e=`macOS / Linux: curl -fsSL https://vite.plus | bash
2
- Windows: irm https://vite.plus/ps1 | iex`;if(!window.confirm(`Vite Plus is required for this template but is not installed.\n\nIs it ok to install Vite Plus using the following command?\n\n${e}`))return!1;let{success:t,error:n}=await p();return t?await g()?!0:(window.alert(`Vite Plus was installed but could not be verified.\n\nTry restarting the app — if it is still missing, install it manually with:\n\n${e}`),!1):(window.alert(`Failed to install Vite Plus:\n${n||`Unknown error`}`),!1)}catch(e){return 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),h().then(e=>i(e?.templates||[])).catch(()=>i([])).finally(()=>o(!1))},t[1]=c):c=t[1];let l=c,u,d;if(t[2]!==r){if(u={},Array.isArray(r))for(let e of r){let t=e.typeName;u[t]||(u[t]=[]),u[t].push(e)}d=Object.keys(u).sort(),t[2]=r,t[3]=u,t[4]=d}else u=t[3],d=t[4];let f=d,p;t[5]!==u||t[6]!==f?(p={typeNames:f,templatesByTypeName:u},t[5]=u,t[6]=f,t[7]=p):p=t[7];let{typeNames:g,templatesByTypeName:_}=p,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&&m(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)(D,{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)(O,{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)(D,{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)(O,{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)(D,{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)(O,{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)(D,{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)(D,{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 k;t[22]!==d||t[23]!==T?(k=(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]=k):k=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]!==k||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,k,A]})}),t[28]=k,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,p]=(0,M.useState)(o??`clone`),m=o??`clone`,h;t[0]===m?h=t[1]:(h=he(m),t[0]=m,t[1]=h);let[g,b]=(0,M.useState)(h),[x,D]=(0,M.useState)(``),O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(O=v(i.PullRequest),t[2]=O):O=t[2];let[A,ee]=(0,M.useState)(O),[j,P]=(0,M.useState)(`My App`),[re,F]=(0,M.useState)(!1),oe;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(oe=y(),t[3]=oe):oe=t[3];let[se,ce]=(0,M.useState)(oe),le;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(le=_(),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);p(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?.(),p(`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),f(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),p(`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),p(`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),p(`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),d(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)(k,{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};
@@ -1 +0,0 @@
1
- import{S as e}from"./dist-DjiNKpTV.js";import{Q as t}from"./store-CHF6tOp2.js";import{a as n}from"./utils-CT-Dw22R.js";import{C as r,qt as i}from"./api-D1GxdEEp.js";import{t as a}from"./ndjson-stream-DeGpE5o5.js";function o(e,t,n){return JSON.stringify([{type:`tool_use`,name:`bash`,id:t,input:e===null?{}:{command:e},...n?.displayName?{displayName:n.displayName}:{},...n?.activeDisplayName?{activeDisplayName:n.activeDisplayName}:{}}])}function s(e,t,n,r){return JSON.stringify([{type:`tool-result`,toolCallId:e,toolName:`bash`,content:t,isError:n,...r?.displayName?{displayName:r.displayName}:{},...r?.activeDisplayName?{activeDisplayName:r.activeDisplayName}:{}}])}function c(e,t,n,r,i){return e+s(t,n,r,i)}function l(e,t){return e+JSON.stringify([{type:`text`,text:t}])}function u(e){return{messageId:e.messageId,sender:`agent`,content:o(e.command,e.toolCallId,e.labels),contentType:`markdown`,timestamp:new Date().toISOString(),isThinking:!1}}var d={create:`Creating thread`,delete:`Deleting thread`},f={create:`Created thread`,delete:`Deleted thread`},p={create:`Thread creation failed`,delete:`Thread deletion failed`},m={webapp:`Creating app`,clone:`Cloning repository`,folder:`Creating project`,zip:`Creating project from zip`},h={webapp:`App creation failed`,clone:`Clone failed`,folder:`Project creation failed`,zip:`Project creation failed`};function g(e){return e?.kind===`create`||e?.kind===`create-project`}function _(e){return e.mode??`webapp`}function v(e){return e.kind===`create-project`?m[_(e)]:d[e.kind]}function y(e){return e.kind===`create-project`?h[_(e)]:p[e.kind]}function b(e){return{displayName:v(e),activeDisplayName:v(e)}}function x(e,t){return t?`The branch I created is ${t} and I'm ready to start working on ${e}.`:`I'm ready to start working on ${e}.`}function S(e,t){let n=`thread-${e}-${t.threadId}`;return{kind:e,...e===`create-project`?{mode:t.mode??`webapp`}:{},threadId:t.threadId,projectId:t.projectId,projectName:t.projectName,toolCallId:n,messageId:`msg-${n}`}}function C(e){return S(`create`,e)}function w(e){return S(`delete`,e)}function T(e){return S(`create-project`,e)}function E(e){return u({messageId:e.messageId,command:e.projectName,toolCallId:e.toolCallId,labels:b(e)})}function D(e,n,r){e({type:t.SetThreadToolSession,session:n}),e({type:t.UpdateToolExecutionOutput,toolCallId:n.toolCallId,threadId:n.threadId,toolName:`bash`,executionOutput:r})}function O(e,n,r){e({type:t.SetThreadToolSession,session:n}),e({type:t.SelectThread,threadId:n.threadId,projectId:n.projectId,focusInput:!0}),e({type:t.SetMessages,messages:[E(n)]}),D(e,n,r)}function k(e,n,r){e({type:t.AddMessage,message:E(n),threadId:n.threadId}),D(e,n,r)}function A(e,n,r,i){i&&e({type:t.AppendToolExecutionOutput,toolCallId:n,threadId:r,toolName:`bash`,delta:i})}function j(e,n,r,i){let a=i?.isError===!0,s=g(n),u={displayName:a?y(n):s?f.create:f.delete,activeDisplayName:v(n)},d=c(o(n.projectName,n.toolCallId,u),n.toolCallId,r,a,u);s&&!a&&(d=l(d,x(n.projectName,n.kind===`create`?i?.branch:void 0))),e({type:t.UpdateMessage,messageId:n.messageId,threadId:n.threadId,content:d}),s&&!a&&e({type:t.SetThreadCreationSummary,threadId:n.threadId,message:{...E(n),content:d}}),e({type:t.ClearToolCallProgress,toolCallId:n.toolCallId}),e({type:t.ClearThreadToolSession,threadId:n.threadId})}var M=e(`app.create-project-workspace`);async function N(e){let{projectId:o,title:s,project:c,dispatch:l,toast:u,refreshProjects:d,onThreadCreateStart:f,sourceThreadId:p}=e,m={current:null};try{let e=c?n(c):`project`;f?.(o);let h=s??(()=>{let e=c?.threads.map(e=>e.title)??[],t=/^thread-(\d+)$/i,n=0;for(let r of e){let e=r.match(t);e&&(n=Math.max(n,parseInt(e[1],10)))}return`thread-${n+1}`})(),g=await r(o,s,{sourceThreadId:p});if(!g){await d();return}let _=!0,v,y=`Creating thread "${h}"...`,b=[{type:`system`,content:y}],x=`${y}\n`;function S(e,n){let r={type:n,content:e};x+=`${e}\n`;let i=m.current;if(!i){b.push(r);return}l({type:t.AppendTerminalLine,threadId:i.threadId,line:r}),A(l,i.toolCallId,i.threadId,`${e}\n`)}function w(n){l({type:t.AddCreatingThread,projectId:o,threadId:n,title:h}),l({type:t.AddProcessingThread,threadId:n}),l({type:t.ClearTerminalOutput,threadId:n});for(let e of b)l({type:t.AppendTerminalLine,threadId:n,line:e});b.length=0;let r=C({threadId:n,projectId:o,projectName:e});m.current=r,O(l,r,x)}function T(e){l({type:t.RemoveCreatingThread,projectId:o,threadId:e}),l({type:t.SelectProject,projectId:o})}try{await a(g,e=>{if(!e||typeof e!=`object`){typeof e==`string`&&M.error(`Failed to parse thread event`,e);return}let t=e;if(t.type===`progress`)!m.current&&typeof t.threadId==`string`&&w(t.threadId),S(typeof t.message==`string`?t.message:``,`output`);else if(t.type===`complete`){let e=t.thread;typeof e?.currentBranch==`string`&&(v=e.currentBranch)}else if(t.type===`error`){let e=typeof t.message==`string`?t.message:`Unknown error`;S(`Error: ${e}`,`error`),M.error(`Thread creation error:`,e),u({title:`Thread Creation Failed`,description:e,variant:`destructive`}),_=!1}});let e=m.current;return e&&(j(l,e,x,{branch:v,isError:!_}),l({type:t.RemoveProcessingThread,threadId:e.threadId}),_||T(e.threadId)),i(),await d(),_?m.current?.threadId:void 0}catch(e){let n=e instanceof Error?e.message:String(e),r=m.current;r&&(S(`Error: ${n}`,`error`),j(l,r,x,{isError:!0}),l({type:t.RemoveProcessingThread,threadId:r.threadId}),T(r.threadId)),u({title:`Thread Creation Failed`,description:n,variant:`destructive`});return}}catch(e){M.error(`Failed to create thread:`,e);let n=`Failed to create thread: ${e instanceof Error?e.message:`Unknown error`}`;l({type:t.AppendTerminalLine,line:{type:`error`,content:n}}),u({variant:`destructive`,title:`Thread Creation Failed`,description:n});return}}export{E as a,O as c,o as d,u as f,w as i,k as l,A as n,j as o,T as r,g as s,N as t,c as u};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ot as n}from"./dist-DjiNKpTV.js";import{t as r}from"./button-B6HDsfd5.js";import{a as i,i as a,o,r as s,s as c,t as l}from"./dialog--0foS3aw.js";import{Ft as u,It as d,X as f}from"./index-BOB3ZUQs.js";import{n as p,t as m}from"./radio-group-CMW5ku-w.js";var h=e(),g=t();function _(e){let t=(0,h.c)(50),{open:_,onOpenChange:v,repoName:y,onRepoNameChange:b,repoDescription:x,onRepoDescriptionChange:S,isPrivateRepo:C,onPrivateRepoChange:w,isLoading:T,onCreateRepo:E}=e,D;t[0]!==v||t[1]!==S||t[2]!==b?(D=e=>{e||(b(``),S(``)),v(e)},t[0]=v,t[1]=S,t[2]=b,t[3]=D):D=t[3];let O;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,g.jsxs)(o,{children:[(0,g.jsx)(c,{children:`Create GitHub Repository`}),(0,g.jsx)(a,{children:`Create a new GitHub repository and push your local repository`})]}),t[4]=O):O=t[4];let k;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,g.jsx)(u,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),t[5]=k):k=t[5];let A;t[6]===b?A=t[7]:(A=e=>b(e.target.value),t[6]=b,t[7]=A);let j;t[8]!==y||t[9]!==A?(j=(0,g.jsxs)(`div`,{className:`grid gap-2`,children:[k,(0,g.jsx)(d,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:y,onChange:A})]}),t[8]=y,t[9]=A,t[10]=j):j=t[10];let M;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,g.jsx)(u,{htmlFor:`repo-description`,children:`Description (optional)`}),t[11]=M):M=t[11];let N;t[12]===S?N=t[13]:(N=e=>S(e.target.value),t[12]=S,t[13]=N);let P;t[14]!==x||t[15]!==N?(P=(0,g.jsxs)(`div`,{className:`grid gap-2`,children:[M,(0,g.jsx)(f,{id:`repo-description`,placeholder:`Enter repository description...`,value:x,onChange:N,rows:3})]}),t[14]=x,t[15]=N,t[16]=P):P=t[16];let F;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,g.jsx)(u,{children:`Visibility`}),t[17]=F):F=t[17];let I=C?`private`:`public`,L;t[18]===w?L=t[19]:(L=e=>w(e===`private`),t[18]=w,t[19]=L);let R;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,g.jsx)(p,{value:`public`,id:`repo-public`,className:`mt-0.5`}),t[20]=R):R=t[20];let z;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,g.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border p-3`,children:[R,(0,g.jsxs)(`div`,{className:`grid gap-1`,children:[(0,g.jsx)(u,{htmlFor:`repo-public`,className:n.labelNormal,children:`Public`}),(0,g.jsx)(`p`,{className:n.caption,children:`Anyone on GitHub can see this repository`})]})]}),t[21]=z):z=t[21];let B;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,g.jsx)(p,{value:`private`,id:`repo-private`,className:`mt-0.5`}),t[22]=B):B=t[22];let V;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,g.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border p-3`,children:[B,(0,g.jsxs)(`div`,{className:`grid gap-1`,children:[(0,g.jsx)(u,{htmlFor:`repo-private`,className:n.labelNormal,children:`Private`}),(0,g.jsx)(`p`,{className:n.caption,children:`Only you and collaborators can see this repository`})]})]}),t[23]=V):V=t[23];let H;t[24]!==I||t[25]!==L?(H=(0,g.jsxs)(`div`,{className:`grid gap-2`,children:[F,(0,g.jsxs)(m,{value:I,onValueChange:L,className:`grid-cols-2`,children:[z,V]})]}),t[24]=I,t[25]=L,t[26]=H):H=t[26];let U;t[27]!==H||t[28]!==j||t[29]!==P?(U=(0,g.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[j,P,H]}),t[27]=H,t[28]=j,t[29]=P,t[30]=U):U=t[30];let W;t[31]===v?W=t[32]:(W=()=>v(!1),t[31]=v,t[32]=W);let G;t[33]!==T||t[34]!==W?(G=(0,g.jsx)(r,{variant:`outline`,onClick:W,disabled:T,children:`Cancel`}),t[33]=T,t[34]=W,t[35]=G):G=t[35];let K=T?`Creating...`:`Create & Push`,q;t[36]!==T||t[37]!==E||t[38]!==K?(q=(0,g.jsx)(r,{onClick:E,disabled:T,children:K}),t[36]=T,t[37]=E,t[38]=K,t[39]=q):q=t[39];let J;t[40]!==G||t[41]!==q?(J=(0,g.jsxs)(i,{children:[G,q]}),t[40]=G,t[41]=q,t[42]=J):J=t[42];let Y;t[43]!==U||t[44]!==J?(Y=(0,g.jsxs)(s,{children:[O,U,J]}),t[43]=U,t[44]=J,t[45]=Y):Y=t[45];let X;return t[46]!==_||t[47]!==D||t[48]!==Y?(X=(0,g.jsx)(l,{open:_,onOpenChange:D,children:Y}),t[46]=_,t[47]=D,t[48]=Y,t[49]=X):X=t[49],X}export{_ as CreateRepoDialog};
@@ -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-DjiNKpTV.js";import{y as a}from"./dist-CNOCRPxn.js";import{t as o}from"./utils-CT-Dw22R.js";import{n as s}from"./use-browser-overlay-block-DyprQSIG.js";import{a as c,i as l,n as u,o as d,r as f,s as p,t as m}from"./dist-CFXDhuA_.js";var h=t(),g=e(n(),1),_=r();function v(e){let t=(0,h.c)(14),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({open:i,defaultOpen:n,onOpenChange:r,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o;t[5]!==n||t[6]!==r||t[7]!==i?(o={open:i,defaultOpen:n,onOpenChange:r},t[5]=n,t[6]=r,t[7]=i,t[8]=o):o=t[8];let c=s(o),l;return t[9]!==n||t[10]!==c||t[11]!==i||t[12]!==a?(l=(0,_.jsx)(d,{open:i,defaultOpen:n,onOpenChange:c,...a}),t[9]=n,t[10]=c,t[11]=i,t[12]=a,t[13]=l):l=t[13],l}var y=c,b=m,x=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(l,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});x.displayName=l.displayName;var S=g.forwardRef((e,t)=>{let n=(0,h.c)(16),r,i,s,c;n[0]===e?(r=n[1],i=n[2],s=n[3],c=n[4]):({className:i,children:r,hideClose:c,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=s,n[4]=c);let l=c===void 0?!1:c,d;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,_.jsx)(x,{}),n[5]=d):d=n[5];let f;n[6]===i?f=n[7]:(f=o(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,i),n[6]=i,n[7]=f);let p;n[8]===l?p=n[9]:(p=l?null:(0,_.jsxs)(m,{className:`absolute right-4 top-4 z-20 h-7 w-7 rounded-full flex items-center justify-center transition-colors hover:bg-foreground hover:text-background disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,_.jsx)(a,{className:`h-4 w-4`}),(0,_.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[8]=l,n[9]=p);let g;return n[10]!==r||n[11]!==s||n[12]!==t||n[13]!==f||n[14]!==p?(g=(0,_.jsxs)(y,{children:[d,(0,_.jsxs)(u,{ref:t,className:f,...s,children:[r,p]})]}),n[10]=r,n[11]=s,n[12]=t,n[13]=f,n[14]=p,n[15]=g):g=n[15],g});S.displayName=u.displayName;var C=e=>{let t=(0,h.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex flex-col space-y-1.5 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};C.displayName=`DialogHeader`;var w=e=>{let t=(0,h.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};w.displayName=`DialogFooter`;var T=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let s;n[3]===r?s=n[4]:(s=o(i.dialogTitle,r),n[3]=r,n[4]=s);let c;return n[5]!==a||n[6]!==t||n[7]!==s?(c=(0,_.jsx)(p,{ref:t,className:s,...a}),n[5]=a,n[6]=t,n[7]=s,n[8]=c):c=n[8],c});T.displayName=p.displayName;var E=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let s;n[3]===r?s=n[4]:(s=o(i.dialogDescription,r),n[3]=r,n[4]=s);let c;return n[5]!==a||n[6]!==t||n[7]!==s?(c=(0,_.jsx)(f,{ref:t,className:s,...a}),n[5]=a,n[6]=t,n[7]=s,n[8]=c):c=n[8],c});E.displayName=f.displayName;export{w as a,E as i,b as n,C as o,S as r,T as s,v as t};
@@ -1,4 +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-DjiNKpTV.js";import{B as o,Q as s,n as c,r as l,z as u}from"./store-CHF6tOp2.js";import{Gt as d,On as f,Wt as p,Z as m,bt as h,dt as g,ft as _,kn as v,qt as y,un as b,vt as x,wt as S,y as C}from"./dist-CNOCRPxn.js";import{t as w}from"./utils-CT-Dw22R.js";import{t as T}from"./button-B6HDsfd5.js";import{Sr as E,Wn as D,fr as O,q as k,tt as A,ur as j,zt as M}from"./api-D1GxdEEp.js";import{i as N,n as P,t as F}from"./tooltip-BtJG5fZl.js";import{n as I}from"./async-loading-fallback-D2X0o4Qa.js";import{n as ee}from"./scroll-area-BMQFeWmq.js";import{a as te,o as L,r as ne,s as re,t as R}from"./dialog--0foS3aw.js";import{n as ie}from"./explorer-tab-context-BxUVwWQQ.js";import{t as ae}from"./use-open-chat-dock-panel-B31lwcQF.js";import{t as z}from"./suspense-resource-DnYnmTbs.js";import{t as oe}from"./use-suspense-resource-Dkz6ddFN.js";import{Bt as se,G as ce,H as B,Nn as le,Ot as ue,P as de,X as fe,c as pe,d as V,l as H,mn as U,tt as me,u as W}from"./index-BOB3ZUQs.js";import{a as G,n as he,r as K,t as ge}from"./context-menu-e5jeH0Jl.js";import{t as _e}from"./async-error-boundary-DNJqC4BV.js";import{s as q}from"./monaco-lJcjGRXq.js";import{n as ve}from"./monaco-setup-DU2h1v3K.js";var J=e(n(),1),Y=t(),X=r();function Z(e){let t=(0,Y.c)(12),{children:n,title:r,subtitle:i,headerAction:o,footer:s}=e,c;t[0]!==o||t[1]!==i||t[2]!==r?(c=(r||i||o)&&(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-b border-sidebar-border px-4 py-6`,children:[(r||o)&&(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`div`,{className:`flex items-center gap-2`,children:r&&(0,X.jsx)(`span`,{className:a.sectionTitle,children:r})}),o&&(0,X.jsx)(`div`,{className:`flex items-center gap-2 ml-auto`,children:o})]}),i]}),t[0]=o,t[1]=i,t[2]=r,t[3]=c):c=t[3];let l;t[4]===n?l=t[5]:(l=(0,X.jsx)(ee,{className:`min-h-0 flex-1`,children:n}),t[4]=n,t[5]=l);let u;t[6]===s?u=t[7]:(u=s&&(0,X.jsx)(`div`,{className:`border-t border-sidebar-border`,children:s}),t[6]=s,t[7]=u);let d;return t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-col`,children:[c,l,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11],d}function Q(e){let t=(0,Y.c)(30),{node:n,level:r,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u}=e,d=!!(n.children&&n.children.length>0),f,p,m;if(t[0]!==a||t[1]!==u||t[2]!==d||t[3]!==r||t[4]!==n||t[5]!==l||t[6]!==c||t[7]!==i){f=u?.has(n.id)||(c[n.id]??a);let e;t[11]!==n.id||t[12]!==l?(e=()=>l(n.id),t[11]=n.id,t[12]=l,t[13]=e):e=t[13];let o=e;p=`min-w-0`,m=i(n,{isOpen:f,level:r,toggle:o,hasChildren:d}),t[0]=a,t[1]=u,t[2]=d,t[3]=r,t[4]=n,t[5]=l,t[6]=c,t[7]=i,t[8]=f,t[9]=p,t[10]=m}else f=t[8],p=t[9],m=t[10];let h;t[14]!==s||t[15]!==a||t[16]!==u||t[17]!==d||t[18]!==o||t[19]!==f||t[20]!==r||t[21]!==n.children||t[22]!==l||t[23]!==c||t[24]!==i?(h=d&&f&&(0,X.jsx)(`div`,{style:{paddingLeft:o},className:s,children:n.children.map(e=>(0,X.jsx)(Q,{node:e,level:r+1,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u},e.id))}),t[14]=s,t[15]=a,t[16]=u,t[17]=d,t[18]=o,t[19]=f,t[20]=r,t[21]=n.children,t[22]=l,t[23]=c,t[24]=i,t[25]=h):h=t[25];let g;return t[26]!==p||t[27]!==m||t[28]!==h?(g=(0,X.jsxs)(`div`,{className:p,children:[m,h]}),t[26]=p,t[27]=m,t[28]=h,t[29]=g):g=t[29],g}function ye(e){let t=(0,Y.c)(31),{nodes:n,renderNode:r,resetKey:i,defaultOpen:a,forceOpenIds:o,initialOpenIds:s,indent:c,childContainerClassName:l,className:u}=e,d=a===void 0?!1:a,f=c===void 0?16:c,p;t[0]===s?p=t[1]:(p=()=>{let e={};if(s)for(let t of s)e[t]=!0;return e},t[0]=s,t[1]=p);let[m,h]=(0,J.useState)(p),[g,_]=(0,J.useState)(i);if(i!==g){_(i);let e={};if(s)for(let t of s)e[t]=!0;h(e)}let v;t[2]===o?v=t[3]:(v=o?new Set(o):void 0,t[2]=o,t[3]=v);let y=v,b,x;t[4]===o?(b=t[5],x=t[6]):(b=()=>{o?.length&&h(e=>{let t={...e},n=!1;for(let e of o)t[e]!==!0&&(t[e]=!0,n=!0);return n?t:e})},x=[o],t[4]=o,t[5]=b,t[6]=x),(0,J.useEffect)(b,x);let S;t[7]===d?S=t[8]:(S=e=>{h(t=>({...t,[e]:!(t[e]??d)}))},t[7]=d,t[8]=S);let C=S,T;t[9]===u?T=t[10]:(T=w(`min-w-0`,u),t[9]=u,t[10]=T);let E;if(t[11]!==l||t[12]!==d||t[13]!==y||t[14]!==C||t[15]!==f||t[16]!==n||t[17]!==m||t[18]!==r){let e;t[20]!==l||t[21]!==d||t[22]!==y||t[23]!==C||t[24]!==f||t[25]!==m||t[26]!==r?(e=e=>(0,X.jsx)(Q,{node:e,level:0,renderNode:r,defaultOpen:d,indent:f,childContainerClassName:l,openState:m,onToggle:C,forceOpenIds:y},e.id),t[20]=l,t[21]=d,t[22]=y,t[23]=C,t[24]=f,t[25]=m,t[26]=r,t[27]=e):e=t[27],E=n.map(e),t[11]=l,t[12]=d,t[13]=y,t[14]=C,t[15]=f,t[16]=n,t[17]=m,t[18]=r,t[19]=E}else E=t[19];let D;return t[28]!==T||t[29]!==E?(D=(0,X.jsx)(`div`,{className:T,children:E}),t[28]=T,t[29]=E,t[30]=D):D=t[30],D}function be(e){let t=[],n={};return e.forEach((e,r)=>{let i=e.path.split(`/`),a=t,o=``;for(let e=0;e<i.length-1;e++){if(o=o?`${o}/${i[e]}`:i[e],!n[o]){let t={id:`dir:${o}`,name:i[e],children:[]};n[o]=t,a.push(t)}a=n[o].children}a.push({id:`file:${e.path}`,name:i[i.length-1],fileIndex:r,status:e.status})}),t}var xe={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},Se={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function $(e){return w(w(a.compact,`status-badge font-mono font-semibold`),xe[e]??`text-orange-500`)}function Ce(e){return Se[e]??`M`}function we(e){let t=(0,Y.c)(22),{treeData:n,files:r,error:i,selectedFileIndex:o,onFileSelect:s,onRevertFile:c}=e,{setStats:l}=B(),u;t[0]===r?u=t[1]:(u=r.reduce(Oe,0),t[0]=r,t[1]=u);let h=u,g;t[2]===r?g=t[3]:(g=r.reduce(Te,0),t[2]=r,t[3]=g);let _=g,v,b;if(t[4]!==r.length||t[5]!==l||t[6]!==h||t[7]!==_?(v=()=>{l({fileCount:r.length,additions:h,deletions:_})},b=[r.length,h,_,l],t[4]=r.length,t[5]=l,t[6]=h,t[7]=_,t[8]=v,t[9]=b):(v=t[8],b=t[9]),(0,J.useEffect)(v,b),i){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=w(a.compact,`text-destructive text-center`),t[10]=e):e=t[10];let n;return t[11]===i?n=t[12]:(n=(0,X.jsx)(Z,{children:(0,X.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,X.jsx)(`p`,{className:e,children:i})})}),t[11]=i,t[12]=n),n}if(r.length===0){let e;return t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(Z,{children:(0,X.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,X.jsx)(`p`,{className:w(a.compact,a.bodyMuted,`text-center`),children:`No changes to review`})})}),t[13]=e):e=t[13],e}let x;t[14]!==r||t[15]!==s||t[16]!==c||t[17]!==o?(x=(e,t)=>{let{isOpen:n,toggle:i}=t,l=!!e.children,u=(0,X.jsxs)(ue,{onClick:()=>{l?i():e.fileIndex!==void 0&&s(e.fileIndex)},selected:!l&&e.fileIndex===o,className:w(a.conversationBody,`gap-1.5`),children:[l?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(f,{className:w(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,n&&`rotate-90`)}),n?(0,X.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,X.jsx)(p,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,X.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,X.jsx)(`span`,{className:`truncate flex-1 min-w-0`,children:e.name}),!l&&e.status&&(0,X.jsx)(`span`,{className:$(e.status),children:Ce(e.status)})]});return l?u:(0,X.jsxs)(ge,{children:[(0,X.jsx)(G,{asChild:!0,children:(0,X.jsx)(`div`,{children:u})}),(0,X.jsx)(he,{children:(0,X.jsxs)(K,{onClick:()=>{e.fileIndex!==void 0&&c?.(r[e.fileIndex])},children:[(0,X.jsx)(m,{className:`mr-2 h-3.5 w-3.5`}),`Revert Change`]})})]})},t[14]=r,t[15]=s,t[16]=c,t[17]=o,t[18]=x):x=t[18];let S;return t[19]!==x||t[20]!==n?(S=(0,X.jsx)(Z,{children:(0,X.jsx)(`div`,{className:`px-1 pt-3 pb-2`,children:(0,X.jsx)(ye,{nodes:n,defaultOpen:!0,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:x})})}),t[19]=x,t[20]=n,t[21]=S):S=t[21],S}function Te(e,t){return e+t.hunks.reduce(Ee,0)}function Ee(e,t){return e+t.changes.filter(De).length}function De(e){return e.type===`delete`}function Oe(e,t){return e+t.hunks.reduce(ke,0)}function ke(e,t){return e+t.changes.filter(Ae).length}function Ae(e){return e.type===`add`}function je(e){let t=(0,Y.c)(36),{open:n,lineNumber:r,lineContent:i,initialComment:o,isEditing:s,onSave:c,onDelete:l,onClose:u}=e,[d,f]=(0,J.useState)((o===void 0?``:o)??``),p;t[0]!==c||t[1]!==d?(p=()=>{d.trim()&&c(d.trim())},t[0]=c,t[1]=d,t[2]=p):p=t[2];let m=p,h;t[3]===m?h=t[4]:(h=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),m())},t[3]=m,t[4]=h);let g=h,_;t[5]===u?_=t[6]:(_=e=>{e||u()},t[5]=u,t[6]=_);let v;t[7]===r?v=t[8]:(v=(0,X.jsx)(L,{children:(0,X.jsxs)(re,{children:[`Comment on line `,r]})}),t[7]=r,t[8]=v);let y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=w(a.compact,`font-mono rounded bg-muted px-3 py-2 text-muted-foreground overflow-x-auto whitespace-pre`),t[9]=y):y=t[9];let b=i||` `,x;t[10]===b?x=t[11]:(x=(0,X.jsx)(`div`,{className:y,children:b}),t[10]=b,t[11]=x);let S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>f(e.target.value),t[12]=S):S=t[12];let C;t[13]!==g||t[14]!==d?(C=(0,X.jsx)(fe,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:d,onChange:S,onKeyDown:g,rows:12,className:`resize-none text-base`}),t[13]=g,t[14]=d,t[15]=C):C=t[15];let E;t[16]!==s||t[17]!==l?(E=s&&l&&(0,X.jsx)(T,{variant:`destructive`,size:`sm`,onClick:l,className:`mr-auto`,children:`Delete`}),t[16]=s,t[17]=l,t[18]=E):E=t[18];let D;t[19]===d?D=t[20]:(D=d.trim(),t[19]=d,t[20]=D);let O=!D,k;t[21]!==m||t[22]!==O?(k=(0,X.jsx)(T,{size:`sm`,onClick:m,disabled:O,children:`Save`}),t[21]=m,t[22]=O,t[23]=k):k=t[23];let A;t[24]!==E||t[25]!==k?(A=(0,X.jsxs)(te,{className:`gap-2 sm:gap-0`,children:[E,k]}),t[24]=E,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==C||t[28]!==A||t[29]!==v||t[30]!==x?(j=(0,X.jsxs)(ne,{className:`max-w-2xl`,children:[v,x,C,A]}),t[27]=C,t[28]=A,t[29]=v,t[30]=x,t[31]=j):j=t[31];let M;return t[32]!==n||t[33]!==j||t[34]!==_?(M=(0,X.jsx)(R,{open:n,onOpenChange:_,children:j}),t[32]=n,t[33]=j,t[34]=_,t[35]=M):M=t[35],M}function Me(e){let t=c(),n=l(e=>e.diffComments),r=(0,J.useMemo)(()=>n[e]??[],[n,e]),i=(0,J.useCallback)(r=>{let i=n[e]??[],a=typeof r==`function`?r(i):r;t({type:s.SetDiffComments,threadId:e,comments:a})},[t,e,n]),a=(0,J.useRef)(!1);return(0,J.useEffect)(()=>{if((n[e]??[]).length>0){a.current=!0;return}M(e).then(n=>{n.diffComments&&n.diffComments.length>0&&t({type:s.SetDiffComments,threadId:e,comments:n.diffComments}),a.current=!0}).catch(()=>{a.current=!0})},[e]),(0,J.useEffect)(()=>{a.current&&D(e,{diffComments:r}).catch(()=>{})},[e,r]),{comments:r,setComments:i}}function Ne(e,t){return`git-diff:${e}:${t}`}function Pe(){return Error(`Loading review changes timed out. Please try again.`)}async function Fe(e,t=15e3){return Promise.race([j(e),new Promise((e,n)=>{window.setTimeout(()=>n(Pe()),t)})])}var Ie=2;function Le(e,t){return t<=0?{min:e,max:e}:{min:e,max:e+t-1}}function Re(e,t){return{startLine:Math.max(1,e-Ie),endLine:t+Ie}}function ze(e){if(e.hunks.length===0)return null;let t=1/0,n=0,r=1/0,i=0;for(let a of e.hunks){let e=Le(a.oldStart,a.oldLines),o=Le(a.newStart,a.newLines);t=Math.min(t,e.min),n=Math.max(n,e.max),r=Math.min(r,o.min),i=Math.max(i,o.max)}return t===1/0||r===1/0?null:{original:Re(t,n),modified:Re(r,i)}}function Be(e,t,n){if(e.length===0)return``;let r=e.endsWith(`
2
- `),i=e.split(`
3
- `);return r&&i.length>0&&i[i.length-1]===``&&i.pop(),i.slice(Math.max(0,t-1),Math.max(t-1,n)).join(`
4
- `)}function Ve(e){let t=ze(e);return t?t.original.startLine<=1||t.modified.startLine<=1:!0}function He(e,t){return t?e-t.startLine+1:e}function Ue(e,t){return t?t.startLine+e-1:e}function We(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,swift:`swift`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[e.split(`.`).pop()??``]||`plaintext`}function Ge(e){let t=(0,Y.c)(34),{comments:n,activeCommentIndex:r,isFullView:i,selectedFileIndex:a,files:o,selectedFile:s,onLineGutterClick:c}=e,l=(0,J.useRef)(null),u=(0,J.useRef)(n),d=(0,J.useRef)(r),f;t[0]!==o||t[1]!==i||t[2]!==a?(f={isFullView:i,selectedFileIndex:a,files:o},t[0]=o,t[1]=i,t[2]=a,t[3]=f):f=t[3];let p=(0,J.useRef)(f),m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m={original:[],modified:[]},t[4]=m):m=t[4];let h=(0,J.useRef)(m),g=(0,J.useRef)(null),_=(0,J.useRef)(!0),v,y;t[5]===n?(v=t[6],y=t[7]):(v=()=>{u.current=n},y=[n],t[5]=n,t[6]=v,t[7]=y),(0,J.useEffect)(v,y);let b,x;t[8]===r?(b=t[9],x=t[10]):(b=()=>{d.current=r},x=[r],t[8]=r,t[9]=b,t[10]=x),(0,J.useEffect)(b,x);let S,C;t[11]!==o||t[12]!==i||t[13]!==a?(S=()=>{p.current={isFullView:i,selectedFileIndex:a,files:o}},C=[i,a,o],t[11]=o,t[12]=i,t[13]=a,t[14]=S,t[15]=C):(S=t[14],C=t[15]),(0,J.useEffect)(S,C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{if(!_.current)return;let e=l.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=p.current,i=u.current,a=d.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:ze(o),c=s?r===`original`?s.original:s.modified:null,l=i.filter(e=>e.fileIndex===n&&e.side===r),u=new Set(l.map(e=>He(e.lineNumber,c))),d=e.getModel()?.getLineCount()??0,f=[];for(let e=1;e<=d;e++)u.has(e)||f.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},options:{isWholeLine:!0,glyphMarginClassName:`diff-gutter-add-comment`,glyphMarginHoverMessage:{value:`$(add) Click to add a comment`},stickiness:q.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}});let p=l.map(e=>{let t=He(e.lineNumber,c);if(t<1)return null;let n=i.indexOf(e)===a;return{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:n?`diff-comment-active-line`:`diff-comment-marked-line`,glyphMarginClassName:n?`diff-comment-glyph-active`:`diff-comment-glyph`,glyphMarginHoverMessage:{value:e.comment},stickiness:q.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}}}).filter(qe);f.push(...p);let m=r===`original`?h.current.original:h.current.modified,g=e.deltaDecorations(m,f);r===`original`?h.current.original=g:h.current.modified=g};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},t[16]=w):w=t[16];let T=w,E;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=g.current;g.current=null,e?.original?.dispose(),e?.modified?.dispose()},t[17]=E):E=t[17];let D=E,O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>{h.current={original:[],modified:[]};let e=setTimeout(()=>T(),150);return()=>clearTimeout(e)},t[18]=O):O=t[18];let k;t[19]===a?k=t[20]:(k=[a,T],t[19]=a,t[20]=k),(0,J.useEffect)(O,k);let A;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{T()},t[21]=A):A=t[21];let j;t[22]!==r||t[23]!==n||t[24]!==i||t[25]!==s||t[26]!==a?(j=[T,n,r,a,i,s],t[22]=r,t[23]=n,t[24]=i,t[25]=s,t[26]=a,t[27]=j):j=t[27],(0,J.useEffect)(A,j);let M,N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>()=>{_.current=!1,l.current=null,h.current={original:[],modified:[]},D()},N=[D],t[28]=M,t[29]=N):(M=t[28],N=t[29]),(0,J.useEffect)(M,N);let P;t[30]===c?P=t[31]:(P=e=>{l.current=e;let t=e.getModel();g.current=t?{original:t.original,modified:t.modified}:null;let n=Ke,r=(e,t)=>{e.onMouseDown(r=>{if(!r.target?.position||!n(r.target.type))return;let i=r.target.position.lineNumber,{isFullView:a,selectedFileIndex:o,files:s}=p.current,l=s[o];if(!l)return;let d=a?null:ze(l),f=Ue(i,d?t===`original`?d.original:d.modified:null),m=e.getModel()?.getLineContent(i)??``;c({existing:u.current.find(e=>e.fileIndex===o&&e.lineNumber===f&&e.side===t),lineNumber:f,lineContent:m,side:t})})};r(e.getOriginalEditor(),`original`),r(e.getModifiedEditor(),`modified`),setTimeout(()=>{l.current===e&&T()},150)},t[30]=c,t[31]=P);let F=P,I;return t[32]===F?I=t[33]:(I={diffEditorRef:l,applyAllDecorations:T,handleEditorDidMount:F},t[32]=F,t[33]=I),I}function Ke(e){return e===q.MouseTargetType.GUTTER_GLYPH_MARGIN||e===q.MouseTargetType.GUTTER_LINE_NUMBERS||e===q.MouseTargetType.GUTTER_LINE_DECORATIONS||e===q.MouseTargetType.GUTTER_VIEW_ZONE}function qe(e){return e!==null}function Je(e){let t=(0,Y.c)(6),{onRetry:n}=e,[r,i]=(0,J.useState)(!1),o,s;if(t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=window.setTimeout(()=>{i(!0)},15e3);return()=>{window.clearTimeout(e)}},s=[],t[0]=o,t[1]=s):(o=t[0],s=t[1]),(0,J.useEffect)(o,s),!r){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(I,{label:`Loading review changes...`}),t[2]=e):e=t[2],e}let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,X.jsx)(`p`,{className:a.bodyMuted,children:`Loading review changes is taking longer than expected.`}),t[3]=c):c=t[3];let l;return t[4]===n?l=t[5]:(l=(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,X.jsxs)(`div`,{className:`space-y-4 text-center`,children:[c,(0,X.jsx)(T,{variant:`outline`,onClick:n,children:`Retry`})]})}),t[4]=n,t[5]=l),l}function Ye(e,t,n){return`git-media:${e}:${t}:${n}`}function Xe(e,t,n){let r=(0,Y.c)(13),i;r[0]!==t||r[1]!==e||r[2]!==n?(i=Ye(e,t,n),r[0]=t,r[1]=e,r[2]=n,r[3]=i):i=r[3];let a;r[4]!==t||r[5]!==e||r[6]!==n?(a=()=>O(e,t,n),r[4]=t,r[5]=e,r[6]=n,r[7]=a):a=r[7];let o=oe(i,a),s;r[8]===o?s=r[9]:(s=URL.createObjectURL(o),r[8]=o,r[9]=s);let c=s,l,u;return r[10]===c?(l=r[11],u=r[12]):(l=()=>()=>{URL.revokeObjectURL(c)},u=[c],r[10]=c,r[11]=l,r[12]=u),(0,J.useEffect)(l,u),c}function Ze(e){let t=(0,Y.c)(9),{threadId:n,filePath:r,version:i,label:o}=e,s=Xe(n,r,i),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=w(a.caption,`px-3 py-1.5 border-b text-muted-foreground bg-muted/30`),t[0]=c):c=t[0];let l;t[1]===o?l=t[2]:(l=(0,X.jsx)(`div`,{className:c,children:o}),t[1]=o,t[2]=l);let u=`${o} - ${r}`,d;t[3]!==s||t[4]!==u?(d=(0,X.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 overflow-auto bg-background`,children:(0,X.jsx)(`img`,{src:s,alt:u,className:`max-w-full max-h-full object-contain`})}),t[3]=s,t[4]=u,t[5]=d):d=t[5];let f;return t[6]!==l||t[7]!==d?(f=(0,X.jsxs)(`div`,{className:`flex flex-col h-full`,children:[l,d]}),t[6]=l,t[7]=d,t[8]=f):f=t[8],f}function Qe(e){let t=(0,Y.c)(23),{threadId:n,file:r}=e,i=r.status===`modified`||r.status===`deleted`||r.status===`renamed`,a=r.status===`modified`||r.status===`added`||r.status===`untracked`||r.status===`renamed`;if(i&&a){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(I,{label:`Loading before...`}),t[0]=e):e=t[0];let i=r.status===`renamed`&&r.oldPath?r.oldPath:r.path,a;t[1]!==i||t[2]!==n?(a=(0,X.jsx)(`div`,{className:`flex-1 border-r border-border`,children:(0,X.jsx)(J.Suspense,{fallback:e,children:(0,X.jsx)(Ze,{threadId:n,filePath:i,version:`old`,label:`Before`})})}),t[1]=i,t[2]=n,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,X.jsx)(I,{label:`Loading after...`}),t[4]=o):o=t[4];let s;t[5]!==r.path||t[6]!==n?(s=(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(J.Suspense,{fallback:o,children:(0,X.jsx)(Ze,{threadId:n,filePath:r.path,version:`new`,label:`After`})})}),t[5]=r.path,t[6]=n,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,X.jsxs)(`div`,{className:`flex h-full`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}let o=a?`new`:`old`,s=a?`Added`:`Deleted`,c;t[11]===s?c=t[12]:(c=s.toLowerCase(),t[11]=s,t[12]=c);let l=`Loading ${c} image...`,u;t[13]===l?u=t[14]:(u=(0,X.jsx)(I,{label:l}),t[13]=l,t[14]=u);let d;t[15]!==r.path||t[16]!==s||t[17]!==n||t[18]!==o?(d=(0,X.jsx)(Ze,{threadId:n,filePath:r.path,version:o,label:s}),t[15]=r.path,t[16]=s,t[17]=n,t[18]=o,t[19]=d):d=t[19];let f;return t[20]!==u||t[21]!==d?(f=(0,X.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,X.jsx)(J.Suspense,{fallback:u,children:d})}),t[20]=u,t[21]=d,t[22]=f):f=t[22],f}function $e(e){let t=(0,Y.c)(77),{threadId:n,selectedFile:r,isImageFile:i,diffOriginal:s,diffModified:c,resolvedTheme:d,onEditorMount:p,diffEditorOptions:m,isPanelCollapsed:y,showTreeBackButton:E,onShowTree:D,onTogglePanel:O,isFullView:k,onToggleFullView:A,comments:j,activeCommentIndex:M,onPrevComment:I,onNextComment:ee,onFixComments:te,isChatOpen:L,onOpenChat:ne,onCloseChat:re}=e,R=l(et),z;t[0]===R?z=t[1]:(z=e=>u(e,R),t[0]=R,t[1]=z);let oe=l(z),B;t[2]===R?B=t[3]:(B=e=>o(e,R),t[2]=R,t[3]=B);let ue=l(B),{openChatDockPanel:de}=ae(),{setPendingExplorerPath:fe}=ie(),pe;t[4]!==de||t[5]!==r||t[6]!==fe?(pe=function(){r&&(fe(r.path),de(`explorer`))},t[4]=de,t[5]=r,t[6]=fe,t[7]=pe):pe=t[7];let V=pe,H=y&&`h-auto py-3 flex-col items-start gap-3 md:flex-row md:items-center md:h-[71px] md:py-0 md:gap-2 justify-between`,U;t[8]===H?U=t[9]:(U=w(`bg-transparent`,H),t[8]=H,t[9]=U);let W;t[10]!==y||t[11]!==D||t[12]!==O||t[13]!==E?(W=E?(0,X.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:D,children:[(0,X.jsx)(g,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Show file tree`})]}):(0,X.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:O,children:[y?(0,X.jsx)(g,{className:`h-4 w-4`}):(0,X.jsx)(_,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`})]}),t[10]=y,t[11]=D,t[12]=O,t[13]=E,t[14]=W):W=t[14];let G;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(G=w(a.label,`text-foreground`),t[15]=G):G=t[15];let he=r?r.path:`Review Changes`,K;t[16]===he?K=t[17]:(K=(0,X.jsx)(`span`,{className:G,children:he}),t[16]=he,t[17]=K);let ge;t[18]!==V||t[19]!==r?(ge=r&&(0,X.jsxs)(F,{children:[(0,X.jsx)(N,{asChild:!0,children:(0,X.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0 text-muted-foreground`,onClick:V,children:[(0,X.jsx)(b,{className:`h-3.5 w-3.5`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Open in Files window`})]})}),(0,X.jsx)(P,{children:`Open in Files window`})]}),t[18]=V,t[19]=r,t[20]=ge):ge=t[20];let _e;t[21]!==ge||t[22]!==W||t[23]!==K?(_e=(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[W,K,ge]}),t[21]=ge,t[22]=W,t[23]=K,t[24]=_e):_e=t[24];let q=y&&`ml-0`,J=!y&&`ml-auto`,Z;t[25]!==q||t[26]!==J?(Z=w(`flex items-center gap-2`,q,J,`md:ml-auto`),t[25]=q,t[26]=J,t[27]=Z):Z=t[27];let Q;t[28]!==k||t[29]!==i||t[30]!==A||t[31]!==r?(Q=!i&&(0,X.jsx)(T,{variant:`ghost`,size:`sm`,onClick:A,disabled:!r,className:w(a.compact,`h-8 gap-1 px-2`),children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x,{className:`h-3 w-3`}),` Show changes only`]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(S,{className:`h-3 w-3`}),` Show full file`]})}),t[28]=k,t[29]=i,t[30]=A,t[31]=r,t[32]=Q):Q=t[32];let ye;t[33]!==M||t[34]!==j.length||t[35]!==ee||t[36]!==I?(ye=j.length>0&&(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsxs)(F,{children:[(0,X.jsx)(N,{asChild:!0,children:(0,X.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:I,disabled:(M??0)===0,children:(0,X.jsx)(v,{className:`h-3 w-3`})})}),(0,X.jsx)(P,{children:`Previous comment`})]}),(0,X.jsx)(`span`,{className:w(a.caption,`whitespace-nowrap`),children:j.length===1?`1 Comment`:`Comment ${(M??0)+1} of ${j.length}`}),(0,X.jsxs)(F,{children:[(0,X.jsx)(N,{asChild:!0,children:(0,X.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:ee,disabled:(M??0)===j.length-1,children:(0,X.jsx)(f,{className:`h-3 w-3`})})}),(0,X.jsx)(P,{children:`Next comment`})]})]}),t[33]=M,t[34]=j.length,t[35]=ee,t[36]=I,t[37]=ye):ye=t[37];let be;t[38]!==j.length||t[39]!==te?(be=j.length>0&&(0,X.jsxs)(F,{children:[(0,X.jsx)(N,{asChild:!0,children:(0,X.jsxs)(T,{size:`sm`,onClick:te,className:w(a.compact,`h-8 gap-1 px-3 bg-foreground text-background hover:bg-foreground/90`),children:[(0,X.jsx)(h,{className:`h-3 w-3`}),`Fix all comments`]})}),(0,X.jsx)(P,{children:`Send all comments to Tarsk for resolution`})]}),t[38]=j.length,t[39]=te,t[40]=be):be=t[40];let xe;t[41]!==Z||t[42]!==Q||t[43]!==ye||t[44]!==be?(xe=(0,X.jsxs)(`div`,{className:Z,children:[Q,ye,be]}),t[41]=Z,t[42]=Q,t[43]=ye,t[44]=be,t[45]=xe):xe=t[45];let Se;t[46]!==_e||t[47]!==xe||t[48]!==U?(Se=(0,X.jsxs)(le,{className:U,children:[_e,xe]}),t[46]=_e,t[47]=xe,t[48]=U,t[49]=Se):Se=t[49];let $;t[50]!==m||t[51]!==c||t[52]!==s||t[53]!==i||t[54]!==p||t[55]!==d||t[56]!==r||t[57]!==n?($=i&&r?(0,X.jsx)(Qe,{threadId:n,file:r}):(0,X.jsx)(ve,{height:`100%`,language:We(r?.path||``),original:s,modified:c,keepCurrentOriginalModel:!0,keepCurrentModifiedModel:!0,theme:d===`dark`?`vs-dark`:`vs-light`,onMount:p,options:m}),t[50]=m,t[51]=c,t[52]=s,t[53]=i,t[54]=p,t[55]=d,t[56]=r,t[57]=n,t[58]=$):$=t[58];let Ce;t[59]!==oe||t[60]!==R||t[61]!==L||t[62]!==re||t[63]!==ue?(Ce=L&&(0,X.jsxs)(`div`,{className:`pointer-events-auto w-[min(100%,48rem)] rounded-2xl bg-background/50 p-4 backdrop-blur-md`,children:[(0,X.jsx)(`div`,{className:`mb-3 flex items-center justify-end`,children:(0,X.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:re,children:[(0,X.jsx)(C,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Close chat`})]})}),(0,X.jsx)(se,{paneId:R,conversationId:oe,children:(0,X.jsx)(me,{children:(0,X.jsx)(ce,{messages:ue})})})]}),t[59]=oe,t[60]=R,t[61]=L,t[62]=re,t[63]=ue,t[64]=Ce):Ce=t[64];let we;t[65]!==L||t[66]!==ne?(we=!L&&(0,X.jsxs)(F,{children:[(0,X.jsx)(N,{asChild:!0,children:(0,X.jsxs)(T,{size:`icon`,className:`pointer-events-auto h-12 w-12 rounded-full shadow-lg`,onClick:ne,children:[(0,X.jsx)(h,{className:`h-5 w-5`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Open review chat`})]})}),(0,X.jsx)(P,{children:`Chat about this diff`})]}),t[65]=L,t[66]=ne,t[67]=we):we=t[67];let Te;t[68]!==Ce||t[69]!==we?(Te=(0,X.jsxs)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 z-20 flex flex-col items-end gap-3`,children:[Ce,we]}),t[68]=Ce,t[69]=we,t[70]=Te):Te=t[70];let Ee;t[71]!==$||t[72]!==Te?(Ee=(0,X.jsxs)(`div`,{className:`flex-1 bg-transparent relative`,children:[$,Te]}),t[71]=$,t[72]=Te,t[73]=Ee):Ee=t[73];let De;return t[74]!==Se||t[75]!==Ee?(De=(0,X.jsxs)(`div`,{className:`diff-editor-panel flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden bg-transparent`,children:[Se,Ee]}),t[74]=Se,t[75]=Ee,t[76]=De):De=t[76],De}function et(e){return e.focusedPane}function tt(){let e=(0,Y.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(H,{withHandle:!0,className:`z-10 shrink-0`}),e[0]=t):t=e[0],t}function nt(e){let t=(0,Y.c)(8),{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:a,onPanelExpand:o,fileTreePanel:s,diffEditorPanel:c}=e,l;return t[0]!==c||t[1]!==s||t[2]!==n||t[3]!==r||t[4]!==a||t[5]!==o||t[6]!==i?(l=(0,X.jsx)(`div`,{className:`diff-body flex min-h-0 w-full flex-1 overflow-hidden`,children:n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:w(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,!r&&`hidden`),children:s}),(0,X.jsx)(`div`,{className:w(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,r&&`hidden`),children:c})]}):(0,X.jsxs)(V,{direction:`horizontal`,children:[(0,X.jsx)(W,{ref:i,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:a,onExpand:o,className:`overflow-hidden border-r border-transparent`,children:s}),(0,X.jsx)(tt,{}),(0,X.jsx)(W,{className:`overflow-hidden border-l border-border bg-transparent`,children:c})]})}),t[0]=c,t[1]=s,t[2]=n,t[3]=r,t[4]=a,t[5]=o,t[6]=i,t[7]=l):l=t[7],l}var rt=i(`app.diff-view.ui`);function it(e,t){if(!e)return{diffOriginal:``,diffModified:``};if(t)return{diffOriginal:e.oldContent,diffModified:e.newContent};let n=ze(e);return n?{diffOriginal:Be(e.oldContent,n.original.startLine,n.original.endLine),diffModified:Be(e.newContent,n.modified.startLine,n.modified.endLine)}:{diffOriginal:e.oldContent,diffModified:e.newContent}}function at(e,t){return!!(e&&(t||Ve(e)))}function ot(e,t,n){let r=n?null:ze(e),i=r?t.side===`original`?r.original:r.modified:null;return He(t.lineNumber,i)}async function st(e,t){let n=t[e];if(n)return n;try{let e=await A(),t=Object.values(e).flat();return t.length>0?t[0]:null}catch(e){return rt.error(`Failed to load models:`,e),null}}function ct(e){let t=(0,Y.c)(7),{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s}=e,c;return t[0]!==i||t[1]!==r||t[2]!==o||t[3]!==s||t[4]!==a||t[5]!==n?(c=(0,X.jsx)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,children:(0,X.jsx)(we,{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s})}),t[0]=i,t[1]=r,t[2]=o,t[3]=s,t[4]=a,t[5]=n,t[6]=c):c=t[6],c}function lt(e){let t=(0,Y.c)(10),{editingComment:n,pendingLine:r,onSave:i,onDelete:a,onClose:o}=e,s=`${n?.id??``}-${r?.lineNumber??``}-${r?.side??``}`,c=r!==null||n!==null,l=n?.lineNumber??r?.lineNumber??0,u=n?.lineContent??r?.lineContent??``,d=n?.comment,f=n!==null,p;return t[0]!==o||t[1]!==a||t[2]!==i||t[3]!==s||t[4]!==c||t[5]!==l||t[6]!==u||t[7]!==d||t[8]!==f?(p=(0,X.jsx)(je,{open:c,lineNumber:l,lineContent:u,initialComment:d,isEditing:f,onSave:i,onDelete:a,onClose:o},s),t[0]=o,t[1]=a,t[2]=i,t[3]=s,t[4]=c,t[5]=l,t[6]=u,t[7]=d,t[8]=f,t[9]=p):p=t[9],p}function ut(e,t){return Math.min(e,Math.max(t-1,0))}function dt(e,t,n,r){e(r??[]),t(e=>ut(n??e,r?.length??1))}function ft(e,t,n){let r=ut(t,e.length);return n?.files===e&&n.selectedFileIndex===r?n:{files:e,selectedFileIndex:r}}function pt(e,t,n,r){return{id:`comment-${Date.now()}`,filePath:t.path,fileIndex:n,lineNumber:e.lineNumber,lineContent:e.lineContent,comment:r,side:e.side}}function mt(e,t){return(t%e+e)%e}function ht(e,t,n,r){if(!e)return;let i=t[n.fileIndex];if(!i)return;let a=ot(i,n,r);(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,a))}function gt(e,t,n){return{readOnly:!0,renderSideBySide:!e,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,glyphMargin:!0,lineNumbers:at(t,n)?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0}}function _t(e,t){e.current&&(t?e.current.expand():e.current.collapse())}async function vt(e){return(await j(e)).files||[]}async function yt(e,t,n,r){try{return await E(e,t.path),await Promise.all([n(),r(!0)]),null}catch(e){return e instanceof Error?e.message:`Failed to revert file`}}async function bt({threadId:e,comments:t,selectedModel:n,clearComments:r,dispatch:i,onExit:a}){try{let{prompt:o}=await k(e,t);r(),i({type:s.SetPendingChatMessage,message:{threadId:e,message:o,model:n.id,provider:n.provider}}),a()}catch(e){rt.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}}function xt(e,t){return e?.files??t??[]}function St(e){return e?.selectedFileIndex??0}function Ct(e){return e?.isBinary??!1}function wt(e,t,n,r){dt(e,t,n?.selectedFileIndex,r)}function Tt(e,t,n){n&&n(n=>ft(e,t,n))}function Et(e,t,n,r){n(e),t&&r(!1)}async function Dt(e,t,n,r){if(e){r(null);try{let r=await vt(e);t(r),n(e=>ut(e,r.length))}catch(e){r(e instanceof Error?e.message:`Failed to load diff`)}}}async function Ot(e,t,n,r,i){let a=await yt(t,e,n,r);a&&i(a)}function kt(e,t,n,r,i,a){e?i(e):a({lineNumber:t,lineContent:n,side:r})}function At(e,t,n,r,i,a){return t&&r?[...e,pt(t,r,i,a)]:n?e.map(e=>e.id===n.id?{...e,comment:a}:e):e}function jt(e,t){return t?e.filter(e=>e.id!==t.id):e}function Mt(e,t){if(e.length===0)return null;let n=mt(e.length,t);return{idx:n,comment:e[n]}}function Nt(e,t,n,r,i,a,o,s,c,l){let u=Mt(e,t);u&&(n(u.idx),r(u.comment.fileIndex),i&&a(!1),setTimeout(()=>{ht(o.current,s,u.comment,c),l()},100))}async function Pt(e,t,n,r,i,a){let o=await st(e,t);if(!o){rt.error(`No models available to process comments`);return}await bt({threadId:e,comments:n,selectedModel:o,clearComments:a,dispatch:r,onExit:i})}function Ft(e,t,n,r,i){let a=(0,Y.c)(38),{fetchUnifiedStatus:o}=U(),s;a[0]!==n||a[1]!==t?(s=()=>xt(n,t),a[0]=n,a[1]=t,a[2]=s):s=a[2];let[c,l]=(0,J.useState)(s),[u,d]=(0,J.useState)(null),f;a[3]===n?f=a[4]:(f=()=>St(n),a[3]=n,a[4]=f);let[p,m]=(0,J.useState)(f),[h,g]=(0,J.useState)(!0),_;a[5]!==n||a[6]!==t?(_=()=>{wt(l,m,n,t)},a[5]=n,a[6]=t,a[7]=_):_=a[7];let v=n?.selectedFileIndex,y;a[8]!==t||a[9]!==v?(y=[v,t],a[8]=t,a[9]=v,a[10]=y):y=a[10],(0,J.useEffect)(_,y);let b;a[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{g(!0)},a[11]=b):b=a[11];let x;a[12]===e?x=a[13]:(x=[e],a[12]=e,a[13]=x),(0,J.useEffect)(b,x);let S,C;a[14]!==c||a[15]!==r||a[16]!==p?(S=()=>{Tt(c,p,r)},C=[c,r,p],a[14]=c,a[15]=r,a[16]=p,a[17]=S,a[18]=C):(S=a[17],C=a[18]),(0,J.useEffect)(S,C);let w;a[19]===i?w=a[20]:(w=e=>{Et(e,i,m,g)},a[19]=i,a[20]=w);let T=w,E;a[21]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{g(!0)},a[21]=E):E=a[21];let D=E,O;a[22]===e?O=a[23]:(O=async()=>{await Dt(e,l,m,d)},a[22]=e,a[23]=O);let k=O,A;a[24]!==o||a[25]!==k||a[26]!==e?(A=async t=>{await Ot(t,e,k,o,d)},a[24]=o,a[25]=k,a[26]=e,a[27]=A):A=a[27];let j=A,M;a[28]===c?M=a[29]:(M=be(c),a[28]=c,a[29]=M);let N=M,P;return a[30]!==u||a[31]!==c||a[32]!==T||a[33]!==j||a[34]!==h||a[35]!==p||a[36]!==N?(P={files:c,error:u,selectedFileIndex:p,mobileShowTree:h,treeData:N,setSelectedFileIndex:m,setMobileShowTree:g,handleFileSelect:T,handleShowTree:D,handleRevertFile:j},a[30]=u,a[31]=c,a[32]=T,a[33]=j,a[34]=h,a[35]=p,a[36]=N,a[37]=P):P=a[37],P}function It(e,t,n,r){let i=(0,Y.c)(17),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(null),l;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{let{existing:t,lineNumber:n,lineContent:r,side:i}=e;kt(t,n,r,i,c,o)},i[0]=l):l=i[0];let u=l,d;i[1]!==e||i[2]!==s||i[3]!==a||i[4]!==n||i[5]!==r||i[6]!==t?(d=i=>{t(At(e,a,s,n,r,i)),o(null),c(null)},i[1]=e,i[2]=s,i[3]=a,i[4]=n,i[5]=r,i[6]=t,i[7]=d):d=i[7];let f=d,p;i[8]!==s||i[9]!==t?(p=()=>{t(e=>jt(e,s)),s&&c(null)},i[8]=s,i[9]=t,i[10]=p):p=i[10];let m=p,h;i[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{o(null),c(null)},i[11]=h):h=i[11];let g=h,_;return i[12]!==s||i[13]!==m||i[14]!==f||i[15]!==a?(_={pendingLine:a,editingComment:s,handleLineGutterClick:u,handleSaveComment:f,handleDeleteComment:m,handleCloseCommentPopup:g},i[12]=s,i[13]=m,i[14]=f,i[15]=a,i[16]=_):_=i[16],_}function Lt(e){let t=(0,Y.c)(19),{comments:n,files:r,isFullView:i,isMobile:a,activeCommentIndex:o,setActiveCommentIndex:s,setSelectedFileIndex:c,setMobileShowTree:l,diffEditorRef:u,applyAllDecorations:d}=e,f;t[0]!==d||t[1]!==n||t[2]!==u||t[3]!==r||t[4]!==i||t[5]!==a||t[6]!==s||t[7]!==l||t[8]!==c?(f=e=>{Nt(n,e,s,c,a,l,u,r,i,d)},t[0]=d,t[1]=n,t[2]=u,t[3]=r,t[4]=i,t[5]=a,t[6]=s,t[7]=l,t[8]=c,t[9]=f):f=t[9];let p=f,m;t[10]!==o||t[11]!==p?(m=()=>{p((o??0)-1)},t[10]=o,t[11]=p,t[12]=m):m=t[12];let h=m,g;t[13]!==o||t[14]!==p?(g=()=>{p((o??-1)+1)},t[13]=o,t[14]=p,t[15]=g):g=t[15];let _=g,v;return t[16]!==_||t[17]!==h?(v={handlePrevComment:h,handleNextComment:_},t[16]=_,t[17]=h,t[18]=v):v=t[18],v}function Rt(e,t,n,r,i,a){let o=(0,Y.c)(9),s;o[0]!==n||o[1]!==r||o[2]!==i||o[3]!==t||o[4]!==a||o[5]!==e?(s=()=>Pt(e,t,n,r,i,()=>a([])),o[0]=n,o[1]=r,o[2]=i,o[3]=t,o[4]=a,o[5]=e,o[6]=s):s=o[6];let c=s,l;return o[7]===c?l=o[8]:(l={handleFixComments:c},o[7]=c,o[8]=l),l}function zt({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d,isFullView:f,onToggleFullView:p,comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v,isChatOpen:y,onOpenChat:b,onCloseChat:x}){return{threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d,isFullView:f,onToggleFullView:p,comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v,isChatOpen:y,onOpenChat:b,onCloseChat:x}}function Bt({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,isMobile:s,showTreeBackButton:c,onShowTree:l,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g}){let[_,v]=(0,J.useState)(!1),[y,b]=(0,J.useState)(!1),x=(0,J.useRef)(null),S=(0,J.useCallback)(()=>{_t(x,_)},[_]);return{panelRef:x,editorPanelProps:zt({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:(0,J.useMemo)(()=>gt(s,t,u),[s,t,u]),isPanelCollapsed:_,showTreeBackButton:c,onShowTree:l,onTogglePanel:S,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g,isChatOpen:y,onOpenChat:()=>b(!0),onCloseChat:()=>b(!1)}),onPanelCollapse:()=>v(!0),onPanelExpand:()=>v(!1)}}function Vt(e){let t=(0,Y.c)(64),{threadId:n,onExit:r,loadVersion:i,cachedState:a,onCachedStateChange:o}=e,s;t[0]!==i||t[1]!==n?(s=Ne(n,i),t[0]=i,t[1]=n,t[2]=s):s=t[2];let u;t[3]===n?u=t[4]:(u=()=>Fe(n),t[3]=n,t[4]=u);let d=oe(s,u),f=c(),p=l(Ut),{resolvedTheme:m}=de(),h=pe(),[g,_]=(0,J.useState)(!1),[v,y]=(0,J.useState)(null),{files:b,error:x,selectedFileIndex:S,mobileShowTree:C,treeData:w,setSelectedFileIndex:T,setMobileShowTree:E,handleFileSelect:D,handleShowTree:O,handleRevertFile:k}=Ft(n,d.files,a,o,h),{comments:A,setComments:j}=Me(n),M=b[S],N;t[5]===M?N=t[6]:(N=Ct(M),t[5]=M,t[6]=N);let P=N,F;t[7]!==g||t[8]!==M?(F=it(M,g),t[7]=g,t[8]=M,t[9]=F):F=t[9];let{diffOriginal:I,diffModified:ee}=F,{pendingLine:te,editingComment:L,handleLineGutterClick:ne,handleSaveComment:re,handleDeleteComment:R,handleCloseCommentPopup:ie}=It(A,j,M,S),ae;t[10]!==v||t[11]!==A||t[12]!==b||t[13]!==ne||t[14]!==g||t[15]!==M||t[16]!==S?(ae={comments:A,activeCommentIndex:v,isFullView:g,selectedFileIndex:S,files:b,selectedFile:M,onLineGutterClick:ne},t[10]=v,t[11]=A,t[12]=b,t[13]=ne,t[14]=g,t[15]=M,t[16]=S,t[17]=ae):ae=t[17];let{diffEditorRef:z,applyAllDecorations:se,handleEditorDidMount:ce}=Ge(ae),B;t[18]!==v||t[19]!==se||t[20]!==A||t[21]!==z||t[22]!==b||t[23]!==g||t[24]!==h||t[25]!==E||t[26]!==T?(B={comments:A,files:b,isFullView:g,isMobile:h,activeCommentIndex:v,setActiveCommentIndex:y,setSelectedFileIndex:T,setMobileShowTree:E,diffEditorRef:z,applyAllDecorations:se},t[18]=v,t[19]=se,t[20]=A,t[21]=z,t[22]=b,t[23]=g,t[24]=h,t[25]=E,t[26]=T,t[27]=B):B=t[27];let{handlePrevComment:le,handleNextComment:ue}=Lt(B),{handleFixComments:fe}=Rt(n,p,A,f,r,j),V=h&&!C,H;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(H=()=>_(Ht),t[28]=H):H=t[28];let U;t[29]!==v||t[30]!==A||t[31]!==ee||t[32]!==I||t[33]!==ce||t[34]!==fe||t[35]!==ue||t[36]!==le||t[37]!==O||t[38]!==g||t[39]!==P||t[40]!==h||t[41]!==m||t[42]!==M||t[43]!==V||t[44]!==n?(U={threadId:n,selectedFile:M,isImageFile:P,diffOriginal:I,diffModified:ee,resolvedTheme:m,onEditorMount:ce,isMobile:h,showTreeBackButton:V,onShowTree:O,isFullView:g,onToggleFullView:H,comments:A,activeCommentIndex:v,onPrevComment:le,onNextComment:ue,onFixComments:fe},t[29]=v,t[30]=A,t[31]=ee,t[32]=I,t[33]=ce,t[34]=fe,t[35]=ue,t[36]=le,t[37]=O,t[38]=g,t[39]=P,t[40]=h,t[41]=m,t[42]=M,t[43]=V,t[44]=n,t[45]=U):U=t[45];let{panelRef:me,editorPanelProps:W,onPanelCollapse:G,onPanelExpand:he}=Bt(U),K;return t[46]!==L||t[47]!==W||t[48]!==x||t[49]!==b||t[50]!==ie||t[51]!==R||t[52]!==D||t[53]!==k||t[54]!==re||t[55]!==h||t[56]!==C||t[57]!==G||t[58]!==he||t[59]!==me||t[60]!==te||t[61]!==S||t[62]!==w?(K={isMobile:h,mobileShowTree:C,panelRef:me,files:b,error:x,selectedFileIndex:S,treeData:w,handleFileSelect:D,handleRevertFile:k,editorPanelProps:W,editingComment:L,pendingLine:te,handleSaveComment:re,handleDeleteComment:R,handleCloseCommentPopup:ie,onPanelCollapse:G,onPanelExpand:he},t[46]=L,t[47]=W,t[48]=x,t[49]=b,t[50]=ie,t[51]=R,t[52]=D,t[53]=k,t[54]=re,t[55]=h,t[56]=C,t[57]=G,t[58]=he,t[59]=me,t[60]=te,t[61]=S,t[62]=w,t[63]=K):K=t[63],K}function Ht(e){return!e}function Ut(e){return e.projectModelSelections}function Wt(e){let t=(0,Y.c)(26),{isMobile:n,mobileShowTree:r,panelRef:i,files:a,error:o,selectedFileIndex:s,treeData:c,handleFileSelect:l,handleRevertFile:u,editorPanelProps:d,editingComment:f,pendingLine:p,handleSaveComment:m,handleDeleteComment:h,handleCloseCommentPopup:g,onPanelCollapse:_,onPanelExpand:v}=Vt(e),y;t[0]!==o||t[1]!==a||t[2]!==l||t[3]!==u||t[4]!==s||t[5]!==c?(y=(0,X.jsx)(ct,{treeData:c,files:a,error:o,selectedFileIndex:s,onFileSelect:l,onRevertFile:u}),t[0]=o,t[1]=a,t[2]=l,t[3]=u,t[4]=s,t[5]=c,t[6]=y):y=t[6];let b;t[7]===d?b=t[8]:(b=(0,X.jsx)($e,{...d}),t[7]=d,t[8]=b);let x;t[9]!==n||t[10]!==r||t[11]!==_||t[12]!==v||t[13]!==i||t[14]!==y||t[15]!==b?(x=(0,X.jsx)(nt,{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:_,onPanelExpand:v,fileTreePanel:y,diffEditorPanel:b}),t[9]=n,t[10]=r,t[11]=_,t[12]=v,t[13]=i,t[14]=y,t[15]=b,t[16]=x):x=t[16];let S;t[17]!==f||t[18]!==g||t[19]!==h||t[20]!==m||t[21]!==p?(S=(0,X.jsx)(lt,{editingComment:f,pendingLine:p,onSave:m,onDelete:h,onClose:g}),t[17]=f,t[18]=g,t[19]=h,t[20]=m,t[21]=p,t[22]=S):S=t[22];let C;return t[23]!==x||t[24]!==S?(C=(0,X.jsxs)(`div`,{className:`diff-view-root flex h-full min-h-0 w-full flex-col`,children:[x,S]}),t[23]=x,t[24]=S,t[25]=C):C=t[25],C}function Gt(e){let t=(0,Y.c)(23),[n,r]=(0,J.useState)(0),[i,a]=(0,J.useState)(0),o=(0,J.useRef)(0),s=!!e.cachedState,c;t[0]===e.threadId?c=t[1]:(c=()=>{r(t=>(z(Ne(e.threadId,t)),t+1)),a(qt)},t[0]=e.threadId,t[1]=c);let l=c,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{a(0),r(0),o.current=0},t[2]=u):u=t[2];let d;t[3]===e.threadId?d=t[4]:(d=[e.threadId],t[3]=e.threadId,t[4]=d),(0,J.useEffect)(u,d);let f,p;t[5]!==e.refreshTrigger||t[6]!==e.threadId?(f=()=>{!e.refreshTrigger||e.refreshTrigger<=o.current||(o.current=e.refreshTrigger,r(t=>(z(Ne(e.threadId,t)),t+1)),a(Kt))},p=[e.refreshTrigger,e.threadId],t[5]=e.refreshTrigger,t[6]=e.threadId,t[7]=f,t[8]=p):(f=t[7],p=t[8]),(0,J.useEffect)(f,p);let m=`${e.threadId}:${i}`,h;t[9]!==l||t[10]!==s?(h=s?null:(0,X.jsx)(Je,{onRetry:l}),t[9]=l,t[10]=s,t[11]=h):h=t[11];let g=`${e.threadId}:${n}`,_;t[12]!==n||t[13]!==e||t[14]!==g?(_=(0,X.jsx)(Wt,{...e,loadVersion:n},g),t[12]=n,t[13]=e,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==h||t[17]!==_?(v=(0,X.jsx)(J.Suspense,{fallback:h,children:_}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;return t[19]!==l||t[20]!==m||t[21]!==v?(y=(0,X.jsx)(_e,{fallbackTitle:`Failed to load review changes`,onRetry:l,children:v},m),t[19]=l,t[20]=m,t[21]=v,t[22]=y):y=t[22],y}function Kt(e){return e+1}function qt(e){return e+1}export{Gt as DiffView,Gt as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{g as r,h as i,i as a,l as o,t as s,u as c}from"./dist-CNOCRPxn.js";import{c as l}from"./utils-CT-Dw22R.js";import{t as u}from"./dist-CkQILg8A.js";import{t as d}from"./dist-OixawqbU.js";var f=e(t(),1),p=n(),m=`rovingFocusGroup.onEntryFocus`,h={bubbles:!1,cancelable:!0},g=`RovingFocusGroup`,[_,v,y]=u(g),[b,x]=i(g,[y]),[S,C]=b(g),w=f.forwardRef((e,t)=>(0,p.jsx)(_.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(_.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(T,{...e,ref:t})})}));w.displayName=g;var T=f.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:i,loop:a=!1,dir:u,currentTabStopId:_,defaultCurrentTabStopId:y,onCurrentTabStopIdChange:b,onEntryFocus:x,preventScrollOnEntryFocus:C=!1,...w}=e,T=f.useRef(null),E=l(t,T),D=d(u),[O,k]=s({prop:_,defaultProp:y??null,onChange:b,caller:g}),[A,M]=f.useState(!1),N=o(x),P=v(n),F=f.useRef(!1),[I,L]=f.useState(0);return f.useEffect(()=>{let e=T.current;if(e)return e.addEventListener(m,N),()=>e.removeEventListener(m,N)},[N]),(0,p.jsx)(S,{scope:n,orientation:i,dir:D,loop:a,currentTabStopId:O,onItemFocus:f.useCallback(e=>k(e),[k]),onItemShiftTab:f.useCallback(()=>M(!0),[]),onFocusableItemAdd:f.useCallback(()=>L(e=>e+1),[]),onFocusableItemRemove:f.useCallback(()=>L(e=>e-1),[]),children:(0,p.jsx)(c.div,{tabIndex:A||I===0?-1:0,"data-orientation":i,...w,ref:E,style:{outline:`none`,...e.style},onMouseDown:r(e.onMouseDown,()=>{F.current=!0}),onFocus:r(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!A){let t=new CustomEvent(m,h);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=P().filter(e=>e.focusable);j([e.find(e=>e.active),e.find(e=>e.id===O),...e].filter(Boolean).map(e=>e.ref.current),C)}}F.current=!1}),onBlur:r(e.onBlur,()=>M(!1))})})}),E=`RovingFocusGroupItem`,D=f.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:i=!0,active:o=!1,tabStopId:s,children:l,...u}=e,d=a(),m=s||d,h=C(E,n),g=h.currentTabStopId===m,y=v(n),{onFocusableItemAdd:b,onFocusableItemRemove:x,currentTabStopId:S}=h;return f.useEffect(()=>{if(i)return b(),()=>x()},[i,b,x]),(0,p.jsx)(_.ItemSlot,{scope:n,id:m,focusable:i,active:o,children:(0,p.jsx)(c.span,{tabIndex:g?0:-1,"data-orientation":h.orientation,...u,ref:t,onMouseDown:r(e.onMouseDown,e=>{i?h.onItemFocus(m):e.preventDefault()}),onFocus:r(e.onFocus,()=>h.onItemFocus(m)),onKeyDown:r(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){h.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=A(e,h.orientation,h.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=y().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=h.loop?M(n,r+1):n.slice(r+1)}setTimeout(()=>j(n))}}),children:typeof l==`function`?l({isCurrentTabStop:g,hasTabStop:S!=null}):l})})});D.displayName=E;var O={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function k(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function A(e,t,n){let r=k(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return O[r]}function j(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function M(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var N=w,P=D;export{N as n,x as r,P as t};
@@ -1,5 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{f as r,g as i,h as a,i as o,m as s,n as c,r as l,s as u,t as d,u as f}from"./dist-CNOCRPxn.js";import{c as p}from"./utils-CT-Dw22R.js";import{i as m,n as h,r as g,t as _}from"./Combination-BdvBzSm4.js";var v=e(t(),1),y=n(),b=`Dialog`,[x,S]=a(b),[C,w]=x(b),T=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=v.useRef(null),l=v.useRef(null),[u,f]=d({prop:r,defaultProp:i??!1,onChange:a,caller:b});return(0,y.jsx)(C,{scope:t,triggerRef:c,contentRef:l,contentId:o(),titleId:o(),descriptionId:o(),open:u,onOpenChange:f,onOpenToggle:v.useCallback(()=>f(e=>!e),[f]),modal:s,children:n})};T.displayName=b;var E=`DialogTrigger`,D=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=w(E,n),o=p(t,a.triggerRef);return(0,y.jsx)(f.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.contentId,"data-state":q(a.open),...r,ref:o,onClick:i(e.onClick,a.onOpenToggle)})});D.displayName=E;var O=`DialogPortal`,[k,A]=x(O,{forceMount:void 0}),j=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=w(O,t);return(0,y.jsx)(k,{scope:t,forceMount:n,children:v.Children.map(r,e=>(0,y.jsx)(c,{present:n||a.open,children:(0,y.jsx)(l,{asChild:!0,container:i,children:e})}))})};j.displayName=O;var M=`DialogOverlay`,N=v.forwardRef((e,t)=>{let n=A(M,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=w(M,e.__scopeDialog);return a.modal?(0,y.jsx)(c,{present:r||a.open,children:(0,y.jsx)(F,{...i,ref:t})}):null});N.displayName=M;var P=r(`DialogOverlay.RemoveScroll`),F=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=w(M,n);return(0,y.jsx)(_,{as:P,allowPinchZoom:!0,shards:[i.contentRef],children:(0,y.jsx)(f.div,{"data-state":q(i.open),...r,ref:t,style:{pointerEvents:`auto`,...r.style}})})}),I=`DialogContent`,L=v.forwardRef((e,t)=>{let n=A(I,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=w(I,e.__scopeDialog);return(0,y.jsx)(c,{present:r||a.open,children:a.modal?(0,y.jsx)(R,{...i,ref:t}):(0,y.jsx)(z,{...i,ref:t})})});L.displayName=I;var R=v.forwardRef((e,t)=>{let n=w(I,e.__scopeDialog),r=v.useRef(null),a=p(t,n.contentRef,r);return v.useEffect(()=>{let e=r.current;if(e)return h(e)},[]),(0,y.jsx)(B,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault())})}),z=v.forwardRef((e,t)=>{let n=w(I,e.__scopeDialog),r=v.useRef(!1),i=v.useRef(!1);return(0,y.jsx)(B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),B=v.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=w(I,n),c=v.useRef(null),l=p(t,c);return m(),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(g,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,y.jsx)(u,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":q(s.open),...o,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Z,{titleId:s.titleId}),(0,y.jsx)($,{contentRef:c,descriptionId:s.descriptionId})]})]})}),V=`DialogTitle`,H=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=w(V,n);return(0,y.jsx)(f.h2,{id:i.titleId,...r,ref:t})});H.displayName=V;var U=`DialogDescription`,W=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=w(U,n);return(0,y.jsx)(f.p,{id:i.descriptionId,...r,ref:t})});W.displayName=U;var G=`DialogClose`,K=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=w(G,n);return(0,y.jsx)(f.button,{type:`button`,...r,ref:t,onClick:i(e.onClick,()=>a.onOpenChange(!1))})});K.displayName=G;function q(e){return e?`open`:`closed`}var J=`DialogTitleWarning`,[Y,X]=s(J,{contentName:I,titleName:V,docsSlug:`dialog`}),Z=({titleId:e})=>{let t=X(J),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Q=`DialogDescriptionWarning`,$=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${X(Q).contentName}}.`;return v.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},ee=T,te=D,ne=j,re=N,ie=L,ae=H,oe=W,se=K;export{ne as a,te as c,re as i,Y as l,ie as n,ee as o,oe as r,ae as s,se as t,S as u};