tarsk 0.6.85 → 0.6.86

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 (92) hide show
  1. package/dist/index.js +2596 -1250
  2. package/dist/public/assets/{account-view-0Y8-BC99.js → account-view-CmZrZmJf.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-Cf2bArEP.js → alert-dialog-CJ403H9_.js} +1 -1
  4. package/dist/public/assets/api-Cho1mlFq.js +2 -0
  5. package/dist/public/assets/{async-error-boundary-DjDqZUsh.js → async-error-boundary-BIrTHWz-.js} +1 -1
  6. package/dist/public/assets/{browser-tab-BMlFSd3G.js → browser-tab-BJOfxs_k.js} +2 -2
  7. package/dist/public/assets/{button-BvwSd5oT.js → button-Djzr1B_4.js} +1 -1
  8. package/dist/public/assets/{card-BQvbp3oN.js → card-B0sh3Qvx.js} +1 -1
  9. package/dist/public/assets/{chat-dock-context-DuJCw4sJ.js → chat-dock-context-C-oyjLpB.js} +1 -1
  10. package/dist/public/assets/{commit-dialog-C7HjZNiu.js → commit-dialog-Dpz9gCzR.js} +1 -1
  11. package/dist/public/assets/{commit-error-dialog-4ZKRthpk.js → commit-error-dialog-CaPz12sp.js} +1 -1
  12. package/dist/public/assets/{commit-method-fields-CT7UxiA5.js → commit-method-fields-Cp9zzEl4.js} +1 -1
  13. package/dist/public/assets/{conversation-history-view-BMfQxAZo.js → conversation-history-view-9kBUV0vM.js} +1 -1
  14. package/dist/public/assets/{create-project-dialog-DALmTfiX.js → create-project-dialog-DbrfdrCG.js} +2 -2
  15. package/dist/public/assets/{create-project-workspace-BsVL5md0.js → create-project-workspace-BXawjzKi.js} +2 -2
  16. package/dist/public/assets/{create-repo-dialog-epoRQwy-.js → create-repo-dialog-Bq8doRpR.js} +1 -1
  17. package/dist/public/assets/{delete-confirm-dialog-DYplAaw1.js → delete-confirm-dialog-Bcy-0viP.js} +1 -1
  18. package/dist/public/assets/{diff-view-zH5WmZmx.js → diff-view-DdhUoX_0.js} +1 -1
  19. package/dist/public/assets/{dist-T3Rfl3KQ.js → dist-67Q0Rzil.js} +1 -1
  20. package/dist/public/assets/{dist-COaJwOux.js → dist-BGhGR6wN.js} +1 -1
  21. package/dist/public/assets/{dist-CK_gsqZm.js → dist-BnsVdica.js} +1 -1
  22. package/dist/public/assets/{dist-CjfjtFqY.js → dist-CRbBwZ5Q.js} +1 -1
  23. package/dist/public/assets/{dist-D4L066Cn.js → dist-D3LcCYeO.js} +1 -1
  24. package/dist/public/assets/dist-DQEC_JS0.js +2 -0
  25. package/dist/public/assets/{dist-DxHDUXDv.js → dist-DkiU4lhK.js} +1 -1
  26. package/dist/public/assets/{dist-CcZPa1gi.js → dist-DwfbSihk.js} +1 -1
  27. package/dist/public/assets/{es2015-C5AR6Xgu.js → es2015-BDTYd1CN.js} +1 -1
  28. package/dist/public/assets/{explorer-monaco-editor-bFm3QJ-c.js → explorer-monaco-editor-xuJXC2xI.js} +1 -1
  29. package/dist/public/assets/{explorer-tab-view-DuwN2R4l.js → explorer-tab-view-DQBB5FyG.js} +2 -2
  30. package/dist/public/assets/{explorer-tree-BOmePXZu.js → explorer-tree-CY3lMVK7.js} +1 -1
  31. package/dist/public/assets/{explorer-view-7TKT07h_.js → explorer-view-rQCB_a3U.js} +3 -3
  32. package/dist/public/assets/{git-history-dialog-DWYho36A.js → git-history-dialog-4KNkUR0v.js} +1 -1
  33. package/dist/public/assets/{index-B1RuOyec.css → index-BPQfGy4n.css} +1 -1
  34. package/dist/public/assets/index-BlkYPP7B.js +113 -0
  35. package/dist/public/assets/{model-list-controls-fxMZD0mL.js → model-list-controls-CB81yfmg.js} +1 -1
  36. package/dist/public/assets/{onboarding-dialog-C1LKCH1z.js → onboarding-dialog-Cn4uHVaE.js} +1 -1
  37. package/dist/public/assets/{pill-tabs-CwuYHztp.js → pill-tabs-B9CkWUiW.js} +1 -1
  38. package/dist/public/assets/{progress-indicator-Bub-larq.js → progress-indicator-Dr2oM_0d.js} +1 -1
  39. package/dist/public/assets/{project-coding-view-B3RYNFx_.js → project-coding-view-DO5x6ijQ.js} +1 -1
  40. package/dist/public/assets/{project-danger-zone-view-CDLOltuo.js → project-danger-zone-view-Dn2Sek-x.js} +1 -1
  41. package/dist/public/assets/{project-env-vars-view-C1mVjLa-.js → project-env-vars-view-DmzuX_8z.js} +1 -1
  42. package/dist/public/assets/{project-model-aliases-view-Brgx0_x-.js → project-model-aliases-view-Btu6AABR.js} +1 -1
  43. package/dist/public/assets/project-settings-view-9ZbeSiSn.js +1 -0
  44. package/dist/public/assets/{project-tools-view-B2BWonsn.js → project-tools-view-BJFer5bm.js} +1 -1
  45. package/dist/public/assets/providers-list-view-CBvNXPMw.js +1 -0
  46. package/dist/public/assets/{pull-request-dialog-CiNuslCp.js → pull-request-dialog-f3w4LdrS.js} +1 -1
  47. package/dist/public/assets/{pull-with-changes-dialog-C34UMAcq.js → pull-with-changes-dialog-a8yG_wvB.js} +1 -1
  48. package/dist/public/assets/{push-before-pr-dialog-FoUo055j.js → push-before-pr-dialog-C8dK-r1y.js} +1 -1
  49. package/dist/public/assets/{scroll-area-qgDSyMlD.js → scroll-area-BTSuUr9o.js} +1 -1
  50. package/dist/public/assets/{settings-general-tabs-view-YvyL4wXy.js → settings-general-tabs-view-Cp2LBtQE.js} +2 -2
  51. package/dist/public/assets/{settings-general-view-MkCRhx2w.js → settings-general-view-CEtewYl1.js} +1 -1
  52. package/dist/public/assets/{settings-list-ur331vXO.js → settings-list-mil_4_AR.js} +1 -1
  53. package/dist/public/assets/{settings-logs-view-B-T372j8.js → settings-logs-view-CYBWy-aN.js} +3 -3
  54. package/dist/public/assets/{settings-mcp-servers-view-CCtQniUl.js → settings-mcp-servers-view-BgP_PRL-.js} +2 -2
  55. package/dist/public/assets/{settings-models-view-HtJlfsQ0.js → settings-models-view-CVujPn9N.js} +1 -1
  56. package/dist/public/assets/{settings-plugins-view-C0t1Lsqr.js → settings-plugins-view-DGpw6oP7.js} +2 -2
  57. package/dist/public/assets/{settings-providers-view-DKV-MltK.js → settings-providers-view-CrBsp3JT.js} +2 -2
  58. package/dist/public/assets/{settings-remote-machines-view-hrC3HhoE.js → settings-remote-machines-view--F2JyEob.js} +1 -1
  59. package/dist/public/assets/{settings-setup-view-iBGLRzYS.js → settings-setup-view-CrYnDkWP.js} +2 -2
  60. package/dist/public/assets/{settings-skills-view-DDHClBVo.js → settings-skills-view-Cky2XWQ3.js} +2 -2
  61. package/dist/public/assets/{settings-slack-view-NHh-36q_.js → settings-slack-view-CpWvaF6m.js} +1 -1
  62. package/dist/public/assets/{settings-slash-commands-view-BxBHz5ya.js → settings-slash-commands-view-BjM6ze37.js} +1 -1
  63. package/dist/public/assets/{settings-statistics-view-DrwjDQrK.js → settings-statistics-view-C-qsV5R3.js} +1 -1
  64. package/dist/public/assets/{settings-storage-view-ImCMtn2t.js → settings-storage-view-BWR6CZ3o.js} +1 -1
  65. package/dist/public/assets/{settings-subagents-view-DHHymb-n.js → settings-subagents-view-CCxLCJAB.js} +1 -1
  66. package/dist/public/assets/{settings-system-prompt-view-tzbE0lD7.js → settings-system-prompt-view-DoB9R-el.js} +1 -1
  67. package/dist/public/assets/{settings-tab-bar-gGaC6MfY.js → settings-tab-bar-BCv1dBl8.js} +1 -1
  68. package/dist/public/assets/{settings-view-Dpza57LM.js → settings-view-DBeTJ7yv.js} +2 -2
  69. package/dist/public/assets/{slug-utils-D7Y0Xtis.js → slug-utils-DQA1OvXq.js} +1 -1
  70. package/dist/public/assets/store-D151firE.js +8 -0
  71. package/dist/public/assets/{table-GKMBZepT.js → table-BXRLirbI.js} +1 -1
  72. package/dist/public/assets/{tasks-view-CPIBCDSQ.js → tasks-view-zG5dsHgF.js} +1 -1
  73. package/dist/public/assets/{terminal-panel-hERoQQC7.js → terminal-panel-DdCyImne.js} +1 -1
  74. package/dist/public/assets/{toggle-group-DpK_U8jx.js → toggle-group-D3YTdr2u.js} +1 -1
  75. package/dist/public/assets/{tooltip-CqktA8Zq.js → tooltip-CXREivps.js} +1 -1
  76. package/dist/public/assets/{use-account-settings-query-R4H9qmd3.js → use-account-settings-query-DVhIle0W.js} +1 -1
  77. package/dist/public/assets/{use-active-dock-panel-instance-hpa6hhuw.js → use-active-dock-panel-instance-DDpytbsn.js} +1 -1
  78. package/dist/public/assets/{use-git-check-D6llSExJ.js → use-git-check-D5_upppc.js} +1 -1
  79. package/dist/public/assets/{use-installed-ai-files-B4-NTX_g.js → use-installed-ai-files-CD4qXZcA.js} +1 -1
  80. package/dist/public/assets/{utils-BHAZna1O.js → utils-DfZXN5fy.js} +1 -1
  81. package/dist/public/assets/{web-BRXrtee5.js → web--nZYyGWI.js} +1 -1
  82. package/dist/public/assets/{web-Do-1UIKE.js → web-CBqrNztZ.js} +1 -1
  83. package/dist/public/assets/{web-DiVO7QnD.js → web-CNrJjhVi.js} +1 -1
  84. package/dist/public/assets/{web-DNlXzk7q.js → web-MHSO59is.js} +1 -1
  85. package/dist/public/index.html +22 -22
  86. package/package.json +1 -1
  87. package/dist/public/assets/api-DS1qgAo_.js +0 -2
  88. package/dist/public/assets/dist-PhNKneni.js +0 -2
  89. package/dist/public/assets/index-SP0wF0IN.js +0 -113
  90. package/dist/public/assets/project-settings-view-BeGFajVJ.js +0 -1
  91. package/dist/public/assets/providers-list-view-CtgtT08O.js +0 -1
  92. package/dist/public/assets/store-DdiKV6YO.js +0 -8
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ln as n}from"./dist-PhNKneni.js";import{M as r,jn as i,rn as a,v as o}from"./lucide-react-BFzs_X2U.js";import{t as s}from"./button-BvwSd5oT.js";import{i as c,n as l,r as u,t as d}from"./tooltip-CqktA8Zq.js";import{_t as f}from"./index-SP0wF0IN.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:i}=e,a=p(r);if(a===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===a?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(o,{className:`h-3 w-3 ${e<=a?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=a,t[2]=f);let g;t[3]!==r||t[4]!==i?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[i,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=i,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(i,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(a,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(r,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{fn as n}from"./dist-DQEC_JS0.js";import{M as r,jn as i,rn as a,v as o}from"./lucide-react-BFzs_X2U.js";import{t as s}from"./button-Djzr1B_4.js";import{i as c,n as l,r as u,t as d}from"./tooltip-CXREivps.js";import{_t as f}from"./index-BlkYPP7B.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:i}=e,a=p(r);if(a===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===a?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(o,{className:`h-3 w-3 ${e<=a?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=a,t[2]=f);let g;t[3]!==r||t[4]!==i?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[i,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=i,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(i,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(a,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(r,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Ut as i,ln as a,ot as o}from"./dist-PhNKneni.js";import{r as s,t as c}from"./utils-BHAZna1O.js";import{A as l,On as u,jn as d,pt as f,rn as p,xn as m}from"./lucide-react-BFzs_X2U.js";import{t as h}from"./button-BvwSd5oT.js";import{i as g,n as _,r as v,t as y}from"./tooltip-CqktA8Zq.js";import{Gn as b,H as x,It as S,Nn as C,Pn as w,Qr as T,Rt as E,an as D,g as O,q as k}from"./api-DS1qgAo_.js";import{n as A}from"./scroll-area-qgDSyMlD.js";import{At as j,Br as M,Ct as N,Hr as P,Ir as F,It as I,Lr as L,Rr as R,St as z,Ur as B,Vr as V,Xt as ee,_t as H,bt as te,on as U,vt as ne,wt as W,xt as G,zr as re}from"./index-SP0wF0IN.js";import{n as K,t as ie}from"./toggle-group-DpK_U8jx.js";import{n as ae,r as oe,t as se}from"./use-git-check-D6llSExJ.js";import{t as ce}from"./sorting-DqwxPMRN.js";import{t as le}from"./pending-changes-Bn-0ak1d.js";var q=t(),J=r();function ue(e){let t=(0,q.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(f,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,J.jsx)(ae,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,J.jsx)(oe,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}var Y=e(n(),1);function de(e){let t=(0,q.c)(34),{model:n,disabled:r,willBeEnabled:i,isRecommended:o,onToggle:l}=e,u;t[0]===n.id?u=t[1]:(u=U(n.id),t[0]=n.id,t[1]=u);let d=u,f=n.pricing,p=i&&o,m;t[2]!==n.id||t[3]!==l?(m=function(){l(n.id)},t[2]=n.id,t[3]=l,t[4]=m):m=t[4];let h=m,v=r&&`opacity-25`,b;t[5]===v?b=t[6]:(b=c(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,v),t[5]=v,t[6]=b);let x=`${d} ${i?`enabled`:`disabled`}`,S;t[7]!==r||t[8]!==h||t[9]!==n.id||t[10]!==x||t[11]!==i?(S=(0,J.jsx)(H,{id:n.id,disabled:r,value:i,onChange:h,ariaLabel:x}),t[7]=r,t[8]=h,t[9]=n.id,t[10]=x,t[11]=i,t[12]=S):S=t[12];let C=n.id,w;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(w=c(a.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=w):w=t[13];let T;t[14]===p?T=t[15]:(T=p&&(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=p,t[15]=T);let E;t[16]!==d||t[17]!==n.id||t[18]!==T?(E=(0,J.jsxs)(`label`,{htmlFor:C,className:w,children:[d,T]}),t[16]=d,t[17]=n.id,t[18]=T,t[19]=E):E=t[19];let D;t[20]===f?D=t[21]:(D=f&&(0,J.jsx)(`span`,{className:c(a.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(f.prompt??0)<=0&&(f.completion??0)<=0?`Free`:`${s(f.prompt??0)} in | ${s(f.completion??0)} out`}),t[20]=f,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,J.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==b||t[27]!==S?(k=(0,J.jsx)(g,{asChild:!0,children:(0,J.jsxs)(`div`,{className:b,children:[S,O]})}),t[25]=O,t[26]=b,t[27]=S,t[28]=k):k=t[28];let A;t[29]===n.description?A=t[30]:(A=n.description&&(0,J.jsx)(_,{side:`top`,className:`max-w-xs`,children:(0,J.jsx)(`p`,{className:a.body,children:n.description})}),t[29]=n.description,t[30]=A);let j;return t[31]!==k||t[32]!==A?(j=(0,J.jsxs)(y,{children:[k,A]}),t[31]=k,t[32]=A,t[33]=j):j=t[33],j}function fe(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function pe(e){return[U(e.id),e.name,fe(e.name)]}function me(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return pe(e).some(e=>n.has(e.toLowerCase()))}function he(e,t){return e.filter(e=>me(e,t)).map(e=>e.id)}var X=o(`app.model-selector.ui`),Z=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function ge({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:i=`grid`,autoSelectRecommended:o=!1}){let[s,u]=(0,Y.useState)([]),[m,h]=(0,Y.useState)(new Set),[g,_]=(0,Y.useState)(new Set),[y,b]=(0,Y.useState)(new Map),[x,S]=(0,Y.useState)(!1),[C,w]=(0,Y.useState)(``),[T,D]=(0,Y.useState)(`alphabetical`);(0,Y.useEffect)(()=>{O()},[e]);let O=async()=>{S(!0),w(``),D(`alphabetical`);try{let t=await k(e);u(t.models);let n=new Set(t.enabledModelIds);h(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await E();i=new Set(he(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){X.error(`Failed to load recommended models:`,e)}_(i),b(r),A(n,r,t.models)}catch(t){X.error(`Failed to load models for ${e}:`,t),u([]),h(new Set),_(new Set)}finally{S(!1)}},A=(e,n,r=s)=>{let i=new Set(e);r.forEach(e=>{n.has(e.id)&&(n.get(e.id)?i.add(e.id):i.delete(e.id))}),t?.(i)},j=e=>{b(t=>{let n=le(t,e,m);return A(m,n),n})},M=e=>{b(t=>{let n=new Map(t);return s.forEach(t=>{let r=m.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),A(m,n),n})},N=e=>U(e.id);function P(e,t=y){let n=t.has(e),r=t.get(e);return n?!!r:m.has(e)}let F=ce({models:s,query:C,sortBy:T,getDisplayName:N,getPriority:e=>+!P(e.id)}),I=T===`alphabetical`?`alphabetical`:`price`;function R(e){if(e===`alphabetical`){D(`alphabetical`);return}e===`price`&&D(`price-low`)}function z(){T!==`alphabetical`&&D(e=>e===`price-low`?`price-high`:`price-low`)}return x||n?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(f,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,J.jsx)(`div`,{className:`text-center py-8`,children:(0,J.jsx)(`p`,{className:a.bodyMuted,children:`No models available for this provider.`})}):i===`compact`?(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:c(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,J.jsx)(H,{id:`select-all-models`,disabled:r,value:s.every(e=>P(e.id)),onChange:e=>M(e),ariaLabel:`Select all models`}),(0,J.jsx)(`label`,{htmlFor:`select-all-models`,className:c(a.body,`cursor-pointer`),children:`Select all models`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,J.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,J.jsx)(l,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,J.jsx)(L,{placeholder:`Search models...`,value:C,onChange:e=>w(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,J.jsxs)(ie,{type:`single`,value:I,onValueChange:R,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,J.jsx)(K,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:Z,children:(0,J.jsx)(d,{className:`h-4 w-4`})}),(0,J.jsx)(K,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:Z,onClick:z,children:(0,J.jsx)(p,{className:`h-4 w-4`})})]})]})]}),(0,J.jsx)(v,{children:(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:F.length===0?(0,J.jsx)(`div`,{className:`text-center py-4`,children:(0,J.jsx)(`p`,{className:a.bodyMuted,children:C?`No models match your search.`:`No models available.`})}):F.map(e=>(0,J.jsx)(de,{model:e,disabled:r,willBeEnabled:P(e.id),isRecommended:g.has(e.id),onToggle:j},e.id))})})]}):null}function _e(e){let t=(0,q.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ge,{provider:n,isLoading:r,displayMode:`compact`,disabled:!1,autoSelectRecommended:!0,onModelsChange:i})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function Q(e,t,n){return e||t||n}function ve(e,t,n){return e||!t.trim()||!n}function ye(e){let t=(0,q.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:d,onContinue:p,onValidate:g,onFinish:_}=e,v,y;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(v=Q(r,a,o),y=ve(v,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=v,t[6]=y):(v=t[5],y=t[6]);let b=y,x;t[7]!==n||t[8]!==l||t[9]!==v?(x=n===`provider-selection`?(0,J.jsx)(h,{variant:`ghost`,onClick:l,disabled:v,children:`Skip for now`}):null,t[7]=n,t[8]=l,t[9]=v,t[10]=x):x=t[10];let S;t[11]===x?S=t[12]:(S=(0,J.jsx)(`div`,{children:x}),t[11]=x,t[12]=S);let C;t[13]!==n||t[14]!==d||t[15]!==v?(C=n===`git-check`?null:(0,J.jsx)(h,{variant:`outline`,onClick:d,disabled:v,children:`Back`}),t[13]=n,t[14]=d,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==i||t[19]!==p?(w=n===`git-check`?(0,J.jsxs)(h,{onClick:p,disabled:i,className:`gap-2`,children:[`Continue `,(0,J.jsx)(u,{className:`h-4 w-4`})]}):null,t[17]=n,t[18]=i,t[19]=p,t[20]=w):w=t[20];let T;t[21]!==n||t[22]!==g||t[23]!==b||t[24]!==a?(T=n===`provider-selection`?(0,J.jsx)(h,{onClick:g,disabled:b,className:`gap-2`,children:a?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,J.jsxs)(J.Fragment,{children:[`Next `,(0,J.jsx)(u,{className:`h-4 w-4`})]})}):null,t[21]=n,t[22]=g,t[23]=b,t[24]=a,t[25]=T):T=t[25];let E;t[26]!==n||t[27]!==_||t[28]!==r?(E=n===`model-selection`?(0,J.jsx)(h,{onClick:_,disabled:r,className:`gap-2`,children:r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,J.jsxs)(J.Fragment,{children:[`Finish `,(0,J.jsx)(m,{className:`h-4 w-4`})]})}):null,t[26]=n,t[27]=_,t[28]=r,t[29]=E):E=t[29];let D;t[30]!==C||t[31]!==w||t[32]!==T||t[33]!==E?(D=(0,J.jsxs)(`div`,{className:`flex gap-3`,children:[C,w,T,E]}),t[30]=C,t[31]=w,t[32]=T,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==D?(O=(0,J.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,J.jsxs)(V,{className:`flex items-center justify-between`,children:[S,D]})}),t[35]=S,t[36]=D,t[37]=O):O=t[37],O}function be(e){let t=(0,q.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:o,onApiKeyChange:s,validatingKey:l,connectingOpenRouter:u,savingOnboarding:d,providerEnvValues:f,onProviderEnvChange:p,keyError:m,onConnectOpenRouter:h}=e,g;t[0]!==u||t[1]!==d||t[2]!==l?(g=Q(d,l,u),t[0]=u,t[1]=d,t[2]=l,t[3]=g):g=t[3];let _=g,v;t[4]!==o||t[5]!==s||t[6]!==h||t[7]!==r||t[8]!==_||t[9]!==n?(v=(0,J.jsx)(ne,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:o,onApiKeyChange:s,variant:`dropdown`,isLoading:_,onConnectOpenRouter:h}),t[4]=o,t[5]=s,t[6]=h,t[7]=r,t[8]=_,t[9]=n,t[10]=v):v=t[10];let y;t[11]!==p||t[12]!==_||t[13]!==f||t[14]!==n?(y=n&&z(n).map(e=>(0,J.jsx)(I,{label:(0,J.jsx)(F,{htmlFor:e,children:G(e)}),control:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`input`,{id:e,value:f[e]??``,onChange:t=>p(e,t.target.value),disabled:_,className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:i(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===N(n)||i(n.slug)&&e===`LOCAL_API_URL`?(0,J.jsx)(`p`,{className:c(a.bodyMuted,`mt-2 break-all`),children:W(n,f)||n.api}):null]}),align:`start`},e)),t[11]=p,t[12]=_,t[13]=f,t[14]=n,t[15]=y):y=t[15];let b;t[16]===m?b=t[17]:(b=m?(0,J.jsx)(j,{variant:`error`,className:`mb-0`,children:m}):null,t[16]=m,t[17]=b);let x;return t[18]!==v||t[19]!==y||t[20]!==b?(x=(0,J.jsxs)(`div`,{className:`space-y-4`,children:[v,y,b]}),t[18]=v,t[19]=y,t[20]=b,t[21]=x):x=t[21],x}function xe(e){let t=(0,q.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Select an AI Provider`}),(0,J.jsx)(M,{children:`Choose your preferred AI provider and enter your API key.`})]}),t[0]=e):e=t[0],e}if(n===`model-selection`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Select Models`}),(0,J.jsx)(M,{children:`Choose which models you want to use with this provider.`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Let's get started`}),(0,J.jsx)(M,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function Se(e){let t=(0,q.c)(26),{currentStep:n}=e,r=function(e){return e===`provider-selection`&&n===`provider-selection`||n===`model-selection`},i=function(e){return n===e},o=i(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,o),t[0]=o,t[1]=s);let l;t[2]===s?l=t[3]:(l=(0,J.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=l);let u=r(`provider-selection`)?`bg-primary`:`bg-muted`,d;t[4]===u?d=t[5]:(d=c(`h-0.5 flex-1`,u),t[4]=u,t[5]=d);let f;t[6]===d?f=t[7]:(f=(0,J.jsx)(`div`,{className:d}),t[6]=d,t[7]=f);let p=i(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,m;t[8]===p?m=t[9]:(m=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,p),t[8]=p,t[9]=m);let h;t[10]===m?h=t[11]:(h=(0,J.jsx)(`div`,{className:m,children:`2`}),t[10]=m,t[11]=h);let g=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===g?_=t[13]:(_=c(`h-0.5 flex-1`,g),t[12]=g,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,J.jsx)(`div`,{className:_}),t[14]=_,t[15]=v);let y=i(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,b;t[16]===y?b=t[17]:(b=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,J.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==l||t[23]!==f||t[24]!==h?(S=(0,J.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[l,f,h,v,x]}),t[20]=v,t[21]=x,t[22]=l,t[23]=f,t[24]=h,t[25]=S):S=t[25],S}var $=o(`app.onboarding-dialog.ui`);async function Ce(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),T.invalidate(`providers`);let e=(await S()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function we(e,t,n){let[r,i]=(0,Y.useState)(`git-check`),a=se({enabled:e&&r===`git-check`}),o=(0,Y.useRef)(!1),[s,c]=(0,Y.useState)([]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)({}),[_,v]=(0,Y.useState)(!1),[y,T]=(0,Y.useState)(``),[E,A]=(0,Y.useState)(new Set),[j,M]=(0,Y.useState)(!1),[N,P]=(0,Y.useState)(!1);async function F(){try{let e=await S();if(c(e),e.length>0&&!l){let t=te(e);t&&(u(t),f(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}}async function I(){if(l){M(!0);try{await k(l.name),A(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{M(!1)}}}(0,Y.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!o.current&&(o.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,Y.useEffect)(()=>{e&&r===`provider-selection`&&s.length===0&&F()},[e,r,s.length]),(0,Y.useEffect)(()=>{e&&r===`model-selection`&&l&&I()},[e,r,l]);async function L(){if(!l||!d.trim()){T(`Please enter an API key`);return}let e=z(l),t=e.find(e=>!h[e]?.trim());if(t){T(`Please enter ${G(t)}`);return}v(!0),T(``);try{e.length>0&&await C(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await w(l.slug,d),i(`model-selection`)}catch(e){T(e instanceof Error?e.message:`Failed to validate API key`)}finally{v(!1)}}async function R(){if(l){P(!0);try{for(let e of E)await x(l.slug,e);ee(),await O(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{P(!1)}}}async function B(){P(!0);try{await O(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{P(!1)}}function V(e){u(e),f(e.apiKey??``),g(e.envValues??{}),T(``)}function H(e,t){g(n=>({...n,[e]:t}))}function U(){i(`provider-selection`)}async function ne(){if(!p){m(!0),T(``);try{await D(await b());let e=await Ce();if(!e){T(`OpenRouter connection timed out. You can enter an API key manually.`);return}u(e),f(e.apiKey??``),i(`model-selection`)}catch(e){T(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{m(!1)}}}function W(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return{currentStep:r,git:a,selectedProvider:l,apiKey:d,setApiKey:f,connectingOpenRouter:p,validatingKey:_,savingOnboarding:N,providerEnvValues:h,keyError:y,modelsLoading:j,setEnabledModelIds:A,handleProviderChange:V,handleProviderEnvChange:H,handleGitCheckProceed:U,handleConnectOpenRouter:ne,handleBack:W,skipOnboarding:B,validateAndMoveNext:L,finishOnboarding:R}}function Te(e){e.preventDefault()}function Ee(e){let t=(0,q.c)(47),{open:n,onOpenChange:r,onComplete:i}=e,a=we(n,r,i),o;t[0]===a.currentStep?o=t[1]:(o=(0,J.jsx)(Se,{currentStep:a.currentStep}),t[0]=a.currentStep,t[1]=o);let s;t[2]===a.currentStep?s=t[3]:(s=(0,J.jsx)(P,{children:(0,J.jsx)(xe,{currentStep:a.currentStep})}),t[2]=a.currentStep,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,J.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]!==a.currentStep||t[8]!==a.git?(l=a.currentStep===`git-check`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ue,{gitLoading:a.git.loading,gitInstalled:a.git.gitInstalled,version:a.git.version,platform:a.git.platform,plan:a.git.plan,onCheckAgain:()=>void a.git.check()})}):null,t[7]=a.currentStep,t[8]=a.git,t[9]=l):l=t[9];let u;t[10]===a?u=t[11]:(u=a.currentStep===`provider-selection`?(0,J.jsx)(be,{selectedProvider:a.selectedProvider,onProviderChange:a.handleProviderChange,apiKey:a.apiKey,onApiKeyChange:a.setApiKey,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,savingOnboarding:a.savingOnboarding,providerEnvValues:a.providerEnvValues,onProviderEnvChange:a.handleProviderEnvChange,keyError:a.keyError,onConnectOpenRouter:()=>void a.handleConnectOpenRouter()}):null,t[10]=a,t[11]=u);let d;t[12]!==a.currentStep||t[13]!==a.modelsLoading||t[14]!==a.selectedProvider||t[15]!==a.setEnabledModelIds?(d=a.currentStep===`model-selection`&&a.selectedProvider?(0,J.jsx)(_e,{providerSlug:a.selectedProvider.slug,modelsLoading:a.modelsLoading,onModelsChange:a.setEnabledModelIds}):null,t[12]=a.currentStep,t[13]=a.modelsLoading,t[14]=a.selectedProvider,t[15]=a.setEnabledModelIds,t[16]=d):d=t[16];let f;t[17]!==l||t[18]!==u||t[19]!==d?(f=(0,J.jsx)(A,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`px-6 py-4`,children:[l,u,d]})}),t[17]=l,t[18]=u,t[19]=d,t[20]=f):f=t[20];let p=!!a.selectedProvider,m;t[21]===a?m=t[22]:(m=()=>void a.skipOnboarding(),t[21]=a,t[22]=m);let h,g;t[23]===a?(h=t[24],g=t[25]):(h=()=>void a.validateAndMoveNext(),g=()=>void a.finishOnboarding(),t[23]=a,t[24]=h,t[25]=g);let _;t[26]!==a.apiKey||t[27]!==a.connectingOpenRouter||t[28]!==a.currentStep||t[29]!==a.git.loading||t[30]!==a.handleBack||t[31]!==a.handleGitCheckProceed||t[32]!==a.savingOnboarding||t[33]!==a.validatingKey||t[34]!==h||t[35]!==g||t[36]!==p||t[37]!==m?(_=(0,J.jsx)(ye,{currentStep:a.currentStep,savingOnboarding:a.savingOnboarding,gitLoading:a.git.loading,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,apiKey:a.apiKey,hasProvider:p,onSkip:m,onBack:a.handleBack,onContinue:a.handleGitCheckProceed,onValidate:h,onFinish:g}),t[26]=a.apiKey,t[27]=a.connectingOpenRouter,t[28]=a.currentStep,t[29]=a.git.loading,t[30]=a.handleBack,t[31]=a.handleGitCheckProceed,t[32]=a.savingOnboarding,t[33]=a.validatingKey,t[34]=h,t[35]=g,t[36]=p,t[37]=m,t[38]=_):_=t[38];let v;t[39]!==_||t[40]!==c||t[41]!==f?(v=(0,J.jsxs)(re,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:Te,children:[c,f,_]}),t[39]=_,t[40]=c,t[41]=f,t[42]=v):v=t[42];let y;return t[43]!==r||t[44]!==n||t[45]!==v?(y=(0,J.jsx)(R,{open:n,onOpenChange:r,children:v}),t[43]=r,t[44]=n,t[45]=v,t[46]=y):y=t[46],y}export{ye as OnboardingFooter,Ee as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i,fn as a,st as o}from"./dist-DQEC_JS0.js";import{r as s,t as c}from"./utils-DfZXN5fy.js";import{A as l,On as u,jn as d,pt as f,rn as p,xn as m}from"./lucide-react-BFzs_X2U.js";import{t as h}from"./button-Djzr1B_4.js";import{i as g,n as _,r as v,t as y}from"./tooltip-CXREivps.js";import{Ft as b,Gn as x,H as S,Lt as C,Mn as w,Nn as T,Qr as E,g as D,in as O,q as k}from"./api-Cho1mlFq.js";import{n as A}from"./scroll-area-BTSuUr9o.js";import{At as j,Br as M,Ct as N,Hr as P,Ir as F,It as I,Lr as L,Rr as R,St as z,Ur as B,Vr as V,Xt as ee,_t as H,bt as te,on as U,vt as ne,wt as W,xt as G,zr as re}from"./index-BlkYPP7B.js";import{n as K,t as ie}from"./toggle-group-D3YTdr2u.js";import{n as ae,r as oe,t as se}from"./use-git-check-D5_upppc.js";import{t as ce}from"./sorting-DqwxPMRN.js";import{t as le}from"./pending-changes-Bn-0ak1d.js";var q=t(),J=r();function ue(e){let t=(0,q.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(f,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,J.jsx)(ae,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,J.jsx)(oe,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}var Y=e(n(),1);function de(e){let t=(0,q.c)(34),{model:n,disabled:r,willBeEnabled:i,isRecommended:o,onToggle:l}=e,u;t[0]===n.id?u=t[1]:(u=U(n.id),t[0]=n.id,t[1]=u);let d=u,f=n.pricing,p=i&&o,m;t[2]!==n.id||t[3]!==l?(m=function(){l(n.id)},t[2]=n.id,t[3]=l,t[4]=m):m=t[4];let h=m,v=r&&`opacity-25`,b;t[5]===v?b=t[6]:(b=c(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,v),t[5]=v,t[6]=b);let x=`${d} ${i?`enabled`:`disabled`}`,S;t[7]!==r||t[8]!==h||t[9]!==n.id||t[10]!==x||t[11]!==i?(S=(0,J.jsx)(H,{id:n.id,disabled:r,value:i,onChange:h,ariaLabel:x}),t[7]=r,t[8]=h,t[9]=n.id,t[10]=x,t[11]=i,t[12]=S):S=t[12];let C=n.id,w;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(w=c(a.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=w):w=t[13];let T;t[14]===p?T=t[15]:(T=p&&(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=p,t[15]=T);let E;t[16]!==d||t[17]!==n.id||t[18]!==T?(E=(0,J.jsxs)(`label`,{htmlFor:C,className:w,children:[d,T]}),t[16]=d,t[17]=n.id,t[18]=T,t[19]=E):E=t[19];let D;t[20]===f?D=t[21]:(D=f&&(0,J.jsx)(`span`,{className:c(a.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(f.prompt??0)<=0&&(f.completion??0)<=0?`Free`:`${s(f.prompt??0)} in | ${s(f.completion??0)} out`}),t[20]=f,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,J.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==b||t[27]!==S?(k=(0,J.jsx)(g,{asChild:!0,children:(0,J.jsxs)(`div`,{className:b,children:[S,O]})}),t[25]=O,t[26]=b,t[27]=S,t[28]=k):k=t[28];let A;t[29]===n.description?A=t[30]:(A=n.description&&(0,J.jsx)(_,{side:`top`,className:`max-w-xs`,children:(0,J.jsx)(`p`,{className:a.body,children:n.description})}),t[29]=n.description,t[30]=A);let j;return t[31]!==k||t[32]!==A?(j=(0,J.jsxs)(y,{children:[k,A]}),t[31]=k,t[32]=A,t[33]=j):j=t[33],j}function fe(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function pe(e){return[U(e.id),e.name,fe(e.name)]}function me(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return pe(e).some(e=>n.has(e.toLowerCase()))}function he(e,t){return e.filter(e=>me(e,t)).map(e=>e.id)}var X=o(`app.model-selector.ui`),Z=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function ge({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:i=`grid`,autoSelectRecommended:o=!1}){let[s,u]=(0,Y.useState)([]),[m,h]=(0,Y.useState)(new Set),[g,_]=(0,Y.useState)(new Set),[y,b]=(0,Y.useState)(new Map),[x,S]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(``),[E,D]=(0,Y.useState)(`alphabetical`);(0,Y.useEffect)(()=>{O()},[e]);let O=async()=>{S(!0),T(``),D(`alphabetical`);try{let t=await k(e);u(t.models);let n=new Set(t.enabledModelIds);h(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await C();i=new Set(he(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){X.error(`Failed to load recommended models:`,e)}_(i),b(r),A(n,r,t.models)}catch(t){X.error(`Failed to load models for ${e}:`,t),u([]),h(new Set),_(new Set)}finally{S(!1)}},A=(e,n,r=s)=>{let i=new Set(e);r.forEach(e=>{n.has(e.id)&&(n.get(e.id)?i.add(e.id):i.delete(e.id))}),t?.(i)},j=e=>{b(t=>{let n=le(t,e,m);return A(m,n),n})},M=e=>{b(t=>{let n=new Map(t);return s.forEach(t=>{let r=m.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),A(m,n),n})},N=e=>U(e.id);function P(e,t=y){let n=t.has(e),r=t.get(e);return n?!!r:m.has(e)}let F=ce({models:s,query:w,sortBy:E,getDisplayName:N,getPriority:e=>+!P(e.id)}),I=E===`alphabetical`?`alphabetical`:`price`;function R(e){if(e===`alphabetical`){D(`alphabetical`);return}e===`price`&&D(`price-low`)}function z(){E!==`alphabetical`&&D(e=>e===`price-low`?`price-high`:`price-low`)}return x||n?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(f,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,J.jsx)(`div`,{className:`text-center py-8`,children:(0,J.jsx)(`p`,{className:a.bodyMuted,children:`No models available for this provider.`})}):i===`compact`?(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:c(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,J.jsx)(H,{id:`select-all-models`,disabled:r,value:s.every(e=>P(e.id)),onChange:e=>M(e),ariaLabel:`Select all models`}),(0,J.jsx)(`label`,{htmlFor:`select-all-models`,className:c(a.body,`cursor-pointer`),children:`Select all models`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,J.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,J.jsx)(l,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,J.jsx)(L,{placeholder:`Search models...`,value:w,onChange:e=>T(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,J.jsxs)(ie,{type:`single`,value:I,onValueChange:R,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,J.jsx)(K,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:Z,children:(0,J.jsx)(d,{className:`h-4 w-4`})}),(0,J.jsx)(K,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:Z,onClick:z,children:(0,J.jsx)(p,{className:`h-4 w-4`})})]})]})]}),(0,J.jsx)(v,{children:(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:F.length===0?(0,J.jsx)(`div`,{className:`text-center py-4`,children:(0,J.jsx)(`p`,{className:a.bodyMuted,children:w?`No models match your search.`:`No models available.`})}):F.map(e=>(0,J.jsx)(de,{model:e,disabled:r,willBeEnabled:P(e.id),isRecommended:g.has(e.id),onToggle:j},e.id))})})]}):null}function _e(e){let t=(0,q.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ge,{provider:n,isLoading:r,displayMode:`compact`,disabled:!1,autoSelectRecommended:!0,onModelsChange:i})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function Q(e,t,n){return e||t||n}function ve(e,t,n){return e||!t.trim()||!n}function ye(e){let t=(0,q.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:d,onContinue:p,onValidate:g,onFinish:_}=e,v,y;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(v=Q(r,a,o),y=ve(v,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=v,t[6]=y):(v=t[5],y=t[6]);let b=y,x;t[7]!==n||t[8]!==l||t[9]!==v?(x=n===`provider-selection`?(0,J.jsx)(h,{variant:`ghost`,onClick:l,disabled:v,children:`Skip for now`}):null,t[7]=n,t[8]=l,t[9]=v,t[10]=x):x=t[10];let S;t[11]===x?S=t[12]:(S=(0,J.jsx)(`div`,{children:x}),t[11]=x,t[12]=S);let C;t[13]!==n||t[14]!==d||t[15]!==v?(C=n===`git-check`?null:(0,J.jsx)(h,{variant:`outline`,onClick:d,disabled:v,children:`Back`}),t[13]=n,t[14]=d,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==i||t[19]!==p?(w=n===`git-check`?(0,J.jsxs)(h,{onClick:p,disabled:i,className:`gap-2`,children:[`Continue `,(0,J.jsx)(u,{className:`h-4 w-4`})]}):null,t[17]=n,t[18]=i,t[19]=p,t[20]=w):w=t[20];let T;t[21]!==n||t[22]!==g||t[23]!==b||t[24]!==a?(T=n===`provider-selection`?(0,J.jsx)(h,{onClick:g,disabled:b,className:`gap-2`,children:a?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,J.jsxs)(J.Fragment,{children:[`Next `,(0,J.jsx)(u,{className:`h-4 w-4`})]})}):null,t[21]=n,t[22]=g,t[23]=b,t[24]=a,t[25]=T):T=t[25];let E;t[26]!==n||t[27]!==_||t[28]!==r?(E=n===`model-selection`?(0,J.jsx)(h,{onClick:_,disabled:r,className:`gap-2`,children:r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,J.jsxs)(J.Fragment,{children:[`Finish `,(0,J.jsx)(m,{className:`h-4 w-4`})]})}):null,t[26]=n,t[27]=_,t[28]=r,t[29]=E):E=t[29];let D;t[30]!==C||t[31]!==w||t[32]!==T||t[33]!==E?(D=(0,J.jsxs)(`div`,{className:`flex gap-3`,children:[C,w,T,E]}),t[30]=C,t[31]=w,t[32]=T,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==D?(O=(0,J.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,J.jsxs)(V,{className:`flex items-center justify-between`,children:[S,D]})}),t[35]=S,t[36]=D,t[37]=O):O=t[37],O}function be(e){let t=(0,q.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:o,onApiKeyChange:s,validatingKey:l,connectingOpenRouter:u,savingOnboarding:d,providerEnvValues:f,onProviderEnvChange:p,keyError:m,onConnectOpenRouter:h}=e,g;t[0]!==u||t[1]!==d||t[2]!==l?(g=Q(d,l,u),t[0]=u,t[1]=d,t[2]=l,t[3]=g):g=t[3];let _=g,v;t[4]!==o||t[5]!==s||t[6]!==h||t[7]!==r||t[8]!==_||t[9]!==n?(v=(0,J.jsx)(ne,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:o,onApiKeyChange:s,variant:`dropdown`,isLoading:_,onConnectOpenRouter:h}),t[4]=o,t[5]=s,t[6]=h,t[7]=r,t[8]=_,t[9]=n,t[10]=v):v=t[10];let y;t[11]!==p||t[12]!==_||t[13]!==f||t[14]!==n?(y=n&&z(n).map(e=>(0,J.jsx)(I,{label:(0,J.jsx)(F,{htmlFor:e,children:G(e)}),control:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`input`,{id:e,value:f[e]??``,onChange:t=>p(e,t.target.value),disabled:_,className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:i(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===N(n)||i(n.slug)&&e===`LOCAL_API_URL`?(0,J.jsx)(`p`,{className:c(a.bodyMuted,`mt-2 break-all`),children:W(n,f)||n.api}):null]}),align:`start`},e)),t[11]=p,t[12]=_,t[13]=f,t[14]=n,t[15]=y):y=t[15];let b;t[16]===m?b=t[17]:(b=m?(0,J.jsx)(j,{variant:`error`,className:`mb-0`,children:m}):null,t[16]=m,t[17]=b);let x;return t[18]!==v||t[19]!==y||t[20]!==b?(x=(0,J.jsxs)(`div`,{className:`space-y-4`,children:[v,y,b]}),t[18]=v,t[19]=y,t[20]=b,t[21]=x):x=t[21],x}function xe(e){let t=(0,q.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Select an AI Provider`}),(0,J.jsx)(M,{children:`Choose your preferred AI provider and enter your API key.`})]}),t[0]=e):e=t[0],e}if(n===`model-selection`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Select Models`}),(0,J.jsx)(M,{children:`Choose which models you want to use with this provider.`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(B,{children:`Let's get started`}),(0,J.jsx)(M,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function Se(e){let t=(0,q.c)(26),{currentStep:n}=e,r=function(e){return e===`provider-selection`&&n===`provider-selection`||n===`model-selection`},i=function(e){return n===e},o=i(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,o),t[0]=o,t[1]=s);let l;t[2]===s?l=t[3]:(l=(0,J.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=l);let u=r(`provider-selection`)?`bg-primary`:`bg-muted`,d;t[4]===u?d=t[5]:(d=c(`h-0.5 flex-1`,u),t[4]=u,t[5]=d);let f;t[6]===d?f=t[7]:(f=(0,J.jsx)(`div`,{className:d}),t[6]=d,t[7]=f);let p=i(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,m;t[8]===p?m=t[9]:(m=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,p),t[8]=p,t[9]=m);let h;t[10]===m?h=t[11]:(h=(0,J.jsx)(`div`,{className:m,children:`2`}),t[10]=m,t[11]=h);let g=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===g?_=t[13]:(_=c(`h-0.5 flex-1`,g),t[12]=g,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,J.jsx)(`div`,{className:_}),t[14]=_,t[15]=v);let y=i(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,b;t[16]===y?b=t[17]:(b=c(`flex items-center justify-center h-8 w-8 rounded-full`,a.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,J.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==l||t[23]!==f||t[24]!==h?(S=(0,J.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[l,f,h,v,x]}),t[20]=v,t[21]=x,t[22]=l,t[23]=f,t[24]=h,t[25]=S):S=t[25],S}var $=o(`app.onboarding-dialog.ui`);async function Ce(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),E.invalidate(`providers`);let e=(await b()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function we(e,t,n){let[r,i]=(0,Y.useState)(`git-check`),a=se({enabled:e&&r===`git-check`}),o=(0,Y.useRef)(!1),[s,c]=(0,Y.useState)([]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)({}),[_,v]=(0,Y.useState)(!1),[y,C]=(0,Y.useState)(``),[E,A]=(0,Y.useState)(new Set),[j,M]=(0,Y.useState)(!1),[N,P]=(0,Y.useState)(!1);async function F(){try{let e=await b();if(c(e),e.length>0&&!l){let t=te(e);t&&(u(t),f(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}}async function I(){if(l){M(!0);try{await k(l.name),A(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{M(!1)}}}(0,Y.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!o.current&&(o.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,Y.useEffect)(()=>{e&&r===`provider-selection`&&s.length===0&&F()},[e,r,s.length]),(0,Y.useEffect)(()=>{e&&r===`model-selection`&&l&&I()},[e,r,l]);async function L(){if(!l||!d.trim()){C(`Please enter an API key`);return}let e=z(l),t=e.find(e=>!h[e]?.trim());if(t){C(`Please enter ${G(t)}`);return}v(!0),C(``);try{e.length>0&&await w(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await T(l.slug,d),i(`model-selection`)}catch(e){C(e instanceof Error?e.message:`Failed to validate API key`)}finally{v(!1)}}async function R(){if(l){P(!0);try{for(let e of E)await S(l.slug,e);ee(),await D(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{P(!1)}}}async function B(){P(!0);try{await D(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{P(!1)}}function V(e){u(e),f(e.apiKey??``),g(e.envValues??{}),C(``)}function H(e,t){g(n=>({...n,[e]:t}))}function U(){i(`provider-selection`)}async function ne(){if(!p){m(!0),C(``);try{await O(await x());let e=await Ce();if(!e){C(`OpenRouter connection timed out. You can enter an API key manually.`);return}u(e),f(e.apiKey??``),i(`model-selection`)}catch(e){C(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{m(!1)}}}function W(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return{currentStep:r,git:a,selectedProvider:l,apiKey:d,setApiKey:f,connectingOpenRouter:p,validatingKey:_,savingOnboarding:N,providerEnvValues:h,keyError:y,modelsLoading:j,setEnabledModelIds:A,handleProviderChange:V,handleProviderEnvChange:H,handleGitCheckProceed:U,handleConnectOpenRouter:ne,handleBack:W,skipOnboarding:B,validateAndMoveNext:L,finishOnboarding:R}}function Te(e){e.preventDefault()}function Ee(e){let t=(0,q.c)(47),{open:n,onOpenChange:r,onComplete:i}=e,a=we(n,r,i),o;t[0]===a.currentStep?o=t[1]:(o=(0,J.jsx)(Se,{currentStep:a.currentStep}),t[0]=a.currentStep,t[1]=o);let s;t[2]===a.currentStep?s=t[3]:(s=(0,J.jsx)(P,{children:(0,J.jsx)(xe,{currentStep:a.currentStep})}),t[2]=a.currentStep,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,J.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]!==a.currentStep||t[8]!==a.git?(l=a.currentStep===`git-check`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ue,{gitLoading:a.git.loading,gitInstalled:a.git.gitInstalled,version:a.git.version,platform:a.git.platform,plan:a.git.plan,onCheckAgain:()=>void a.git.check()})}):null,t[7]=a.currentStep,t[8]=a.git,t[9]=l):l=t[9];let u;t[10]===a?u=t[11]:(u=a.currentStep===`provider-selection`?(0,J.jsx)(be,{selectedProvider:a.selectedProvider,onProviderChange:a.handleProviderChange,apiKey:a.apiKey,onApiKeyChange:a.setApiKey,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,savingOnboarding:a.savingOnboarding,providerEnvValues:a.providerEnvValues,onProviderEnvChange:a.handleProviderEnvChange,keyError:a.keyError,onConnectOpenRouter:()=>void a.handleConnectOpenRouter()}):null,t[10]=a,t[11]=u);let d;t[12]!==a.currentStep||t[13]!==a.modelsLoading||t[14]!==a.selectedProvider||t[15]!==a.setEnabledModelIds?(d=a.currentStep===`model-selection`&&a.selectedProvider?(0,J.jsx)(_e,{providerSlug:a.selectedProvider.slug,modelsLoading:a.modelsLoading,onModelsChange:a.setEnabledModelIds}):null,t[12]=a.currentStep,t[13]=a.modelsLoading,t[14]=a.selectedProvider,t[15]=a.setEnabledModelIds,t[16]=d):d=t[16];let f;t[17]!==l||t[18]!==u||t[19]!==d?(f=(0,J.jsx)(A,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`px-6 py-4`,children:[l,u,d]})}),t[17]=l,t[18]=u,t[19]=d,t[20]=f):f=t[20];let p=!!a.selectedProvider,m;t[21]===a?m=t[22]:(m=()=>void a.skipOnboarding(),t[21]=a,t[22]=m);let h,g;t[23]===a?(h=t[24],g=t[25]):(h=()=>void a.validateAndMoveNext(),g=()=>void a.finishOnboarding(),t[23]=a,t[24]=h,t[25]=g);let _;t[26]!==a.apiKey||t[27]!==a.connectingOpenRouter||t[28]!==a.currentStep||t[29]!==a.git.loading||t[30]!==a.handleBack||t[31]!==a.handleGitCheckProceed||t[32]!==a.savingOnboarding||t[33]!==a.validatingKey||t[34]!==h||t[35]!==g||t[36]!==p||t[37]!==m?(_=(0,J.jsx)(ye,{currentStep:a.currentStep,savingOnboarding:a.savingOnboarding,gitLoading:a.git.loading,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,apiKey:a.apiKey,hasProvider:p,onSkip:m,onBack:a.handleBack,onContinue:a.handleGitCheckProceed,onValidate:h,onFinish:g}),t[26]=a.apiKey,t[27]=a.connectingOpenRouter,t[28]=a.currentStep,t[29]=a.git.loading,t[30]=a.handleBack,t[31]=a.handleGitCheckProceed,t[32]=a.savingOnboarding,t[33]=a.validatingKey,t[34]=h,t[35]=g,t[36]=p,t[37]=m,t[38]=_):_=t[38];let v;t[39]!==_||t[40]!==c||t[41]!==f?(v=(0,J.jsxs)(re,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:Te,children:[c,f,_]}),t[39]=_,t[40]=c,t[41]=f,t[42]=v):v=t[42];let y;return t[43]!==r||t[44]!==n||t[45]!==v?(y=(0,J.jsx)(R,{open:n,onOpenChange:r,children:v}),t[43]=r,t[44]=n,t[45]=v,t[46]=y):y=t[46],y}export{ye as OnboardingFooter,Ee as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{i,n as a,r as o,t as s}from"./tooltip-CqktA8Zq.js";import{Cr as c,wr as l,xr as u}from"./index-SP0wF0IN.js";var d=t(),f=e(n(),1),p=r(),m=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,h=`rounded-full bg-foreground shadow-sm`,g=`h-7 rounded-full px-4 data-[state=active]:text-background`;function _(e){let t=(0,d.c)(12),{value:n,onValueChange:r,options:_,className:v}=e,y;t[0]===r?y=t[1]:(y=e=>r(e),t[0]=r,t[1]=y);let b;if(t[2]!==_){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=function(e){let t=(0,p.jsx)(l,{value:e.value,className:g,children:e.label});return e.tooltip?(0,p.jsxs)(s,{children:[(0,p.jsx)(i,{asChild:!0,children:t}),(0,p.jsx)(a,{children:e.tooltip})]},e.value):(0,p.jsx)(f.Fragment,{children:t},e.value)},t[4]=e):e=t[4],b=_.map(e),t[2]=_,t[3]=b}else b=t[3];let x;t[5]===b?x=t[6]:(x=(0,p.jsx)(c,{className:m,indicatorClassName:h,children:b}),t[5]=b,t[6]=x);let S;return t[7]!==v||t[8]!==y||t[9]!==x||t[10]!==n?(S=(0,p.jsx)(o,{children:(0,p.jsx)(u,{value:n,onValueChange:y,className:v,children:x})}),t[7]=v,t[8]=y,t[9]=x,t[10]=n,t[11]=S):S=t[11],S}export{_ as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{i,n as a,r as o,t as s}from"./tooltip-CXREivps.js";import{Cr as c,wr as l,xr as u}from"./index-BlkYPP7B.js";var d=t(),f=e(n(),1),p=r(),m=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,h=`rounded-full bg-foreground shadow-sm`,g=`h-7 rounded-full px-4 data-[state=active]:text-background`;function _(e){let t=(0,d.c)(12),{value:n,onValueChange:r,options:_,className:v}=e,y;t[0]===r?y=t[1]:(y=e=>r(e),t[0]=r,t[1]=y);let b;if(t[2]!==_){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=function(e){let t=(0,p.jsx)(l,{value:e.value,className:g,children:e.label});return e.tooltip?(0,p.jsxs)(s,{children:[(0,p.jsx)(i,{asChild:!0,children:t}),(0,p.jsx)(a,{children:e.tooltip})]},e.value):(0,p.jsx)(f.Fragment,{children:t},e.value)},t[4]=e):e=t[4],b=_.map(e),t[2]=_,t[3]=b}else b=t[3];let x;t[5]===b?x=t[6]:(x=(0,p.jsx)(c,{className:m,indicatorClassName:h,children:b}),t[5]=b,t[6]=x);let S;return t[7]!==v||t[8]!==y||t[9]!==x||t[10]!==n?(S=(0,p.jsx)(o,{children:(0,p.jsx)(u,{value:n,onValueChange:y,className:v,children:x})}),t[7]=v,t[8]=y,t[9]=x,t[10]=n,t[11]=S):S=t[11],S}export{_ as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ln as n}from"./dist-PhNKneni.js";import{t as r}from"./utils-BHAZna1O.js";var i=e(),a=t();function o(e){let t=(0,i.c)(7),{size:n,className:o,"aria-label":s}=e,c=n===void 0?20:n,l;t[0]===o?l=t[1]:(l=r(`shrink-0 text-brand`,o),t[0]=o,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,a.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,a.jsx)(`circle`,{className:`ai-spinner-ring`,cx:`8`,cy:`8`,r:7}),(0,a.jsx)(`circle`,{className:`ai-spinner-ring ai-spinner-ring-second`,cx:`8`,cy:`8`,r:7})]}),t[2]=u):u=t[2];let d;return t[3]!==s||t[4]!==c||t[5]!==l?(d=(0,a.jsx)(`svg`,{role:`img`,"aria-label":s,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,width:c,height:c,className:l,children:u}),t[3]=s,t[4]=c,t[5]=l,t[6]=d):d=t[6],d}function s(e){switch(e){case`searching`:return`Searching`;case`solving`:return`Thinking`;default:return`Working`}}function c(e){let t=(0,i.c)(20),{centered:c,className:l,containerClassName:u,label:d,size:f,state:p}=e,m=c===void 0?!1:c,h=f===void 0?`md`:f,g=p===void 0?`working`:p,_=h===`sm`?16:h===`lg`?32:20,v;t[0]!==d||t[1]!==g?(v=d??s(g),t[0]=d,t[1]=g,t[2]=v):v=t[2];let y=m&&`mx-auto`,b;t[3]!==l||t[4]!==y?(b=r(y,l),t[3]=l,t[4]=y,t[5]=b):b=t[5];let x;t[6]!==_||t[7]!==v||t[8]!==b?(x=(0,a.jsx)(o,{size:_,"aria-label":v,className:b}),t[6]=_,t[7]=v,t[8]=b,t[9]=x):x=t[9];let S=x;if(!m)return S;let C;t[10]===u?C=t[11]:(C=r(`flex h-full items-center justify-center`,u),t[10]=u,t[11]=C);let w;t[12]===d?w=t[13]:(w=d?(0,a.jsx)(`p`,{"aria-hidden":`true`,className:r(n.bodyMuted,`mt-2`),children:d}):null,t[12]=d,t[13]=w);let T;t[14]!==S||t[15]!==w?(T=(0,a.jsxs)(`div`,{className:`text-center`,children:[S,w]}),t[14]=S,t[15]=w,t[16]=T):T=t[16];let E;return t[17]!==T||t[18]!==C?(E=(0,a.jsx)(`div`,{className:C,children:T}),t[17]=T,t[18]=C,t[19]=E):E=t[19],E}export{c as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{fn as n}from"./dist-DQEC_JS0.js";import{t as r}from"./utils-DfZXN5fy.js";var i=e(),a=t();function o(e){let t=(0,i.c)(7),{size:n,className:o,"aria-label":s}=e,c=n===void 0?20:n,l;t[0]===o?l=t[1]:(l=r(`shrink-0 text-brand`,o),t[0]=o,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,a.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,a.jsx)(`circle`,{className:`ai-spinner-ring`,cx:`8`,cy:`8`,r:7}),(0,a.jsx)(`circle`,{className:`ai-spinner-ring ai-spinner-ring-second`,cx:`8`,cy:`8`,r:7})]}),t[2]=u):u=t[2];let d;return t[3]!==s||t[4]!==c||t[5]!==l?(d=(0,a.jsx)(`svg`,{role:`img`,"aria-label":s,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,width:c,height:c,className:l,children:u}),t[3]=s,t[4]=c,t[5]=l,t[6]=d):d=t[6],d}function s(e){switch(e){case`searching`:return`Searching`;case`solving`:return`Thinking`;default:return`Working`}}function c(e){let t=(0,i.c)(20),{centered:c,className:l,containerClassName:u,label:d,size:f,state:p}=e,m=c===void 0?!1:c,h=f===void 0?`md`:f,g=p===void 0?`working`:p,_=h===`sm`?16:h===`lg`?32:20,v;t[0]!==d||t[1]!==g?(v=d??s(g),t[0]=d,t[1]=g,t[2]=v):v=t[2];let y=m&&`mx-auto`,b;t[3]!==l||t[4]!==y?(b=r(y,l),t[3]=l,t[4]=y,t[5]=b):b=t[5];let x;t[6]!==_||t[7]!==v||t[8]!==b?(x=(0,a.jsx)(o,{size:_,"aria-label":v,className:b}),t[6]=_,t[7]=v,t[8]=b,t[9]=x):x=t[9];let S=x;if(!m)return S;let C;t[10]===u?C=t[11]:(C=r(`flex h-full items-center justify-center`,u),t[10]=u,t[11]=C);let w;t[12]===d?w=t[13]:(w=d?(0,a.jsx)(`p`,{"aria-hidden":`true`,className:r(n.bodyMuted,`mt-2`),children:d}):null,t[12]=d,t[13]=w);let T;t[14]!==S||t[15]!==w?(T=(0,a.jsxs)(`div`,{className:`text-center`,children:[S,w]}),t[14]=S,t[15]=w,t[16]=T):T=t[16];let E;return t[17]!==T||t[18]!==C?(E=(0,a.jsx)(`div`,{className:C,children:T}),t[17]=T,t[18]=C,t[19]=E):E=t[19],E}export{c as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Gn as a}from"./dist-PhNKneni.js";import{$ as o,n as s}from"./store-DdiKV6YO.js";import{pt as c,x as l}from"./lucide-react-BFzs_X2U.js";import{t as u}from"./button-BvwSd5oT.js";import{i as d,n as f,r as p,t as m}from"./tooltip-CqktA8Zq.js";import{Tt as h,cr as g,ir as _,rr as v}from"./api-DS1qgAo_.js";import{t as y}from"./progress-indicator-Bub-larq.js";import{t as b}from"./use-toast-xpb5jNtN.js";import{Ft as x,Ht as S,Lr as C,Lt as w,Ot as T,Rt as E,W as D,_t as O,jt as k,zt as A}from"./index-SP0wF0IN.js";import{i as j}from"./commit-method-fields-CT7UxiA5.js";import{t as M}from"./use-settings-page-loading-CpaBd260.js";var N=t(),P=r();function ee(e){let t=(0,N.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,P.jsx)(T,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,P.jsx)(O,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function F(e){return e===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function I(e){let t=(0,N.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=F(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,P.jsx)(j,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,P.jsx)(T,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function L(e){let t=(0,N.c)(22),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let h;t[2]!==r||t[3]!==n||t[4]!==c?(h=(0,P.jsx)(C,{id:`runCommand`,value:n,onChange:c,placeholder:`e.g. npm run dev`,className:`font-mono pr-10`,disabled:r}),t[2]=r,t[3]=n,t[4]=c,t[5]=h):h=t[5];let g;t[6]===s?g=t[7]:(g=()=>void s(),t[6]=s,t[7]=g);let _;t[8]===i?_=t[9]:(_=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(l,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=_);let v;t[10]!==a||t[11]!==g||t[12]!==_?(v=(0,P.jsx)(d,{asChild:!0,children:(0,P.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 h-8 w-8`,onClick:g,disabled:a,"aria-label":`Generate run command with AI`,children:_})}),t[10]=a,t[11]=g,t[12]=_,t[13]=v):v=t[13];let b=i?`Working out the run command...`:`Detect the project's dev script, or generate one with AI`,x;t[14]===b?x=t[15]:(x=(0,P.jsx)(f,{children:b}),t[14]=b,t[15]=x);let S;t[16]!==v||t[17]!==x?(S=(0,P.jsx)(p,{children:(0,P.jsxs)(m,{children:[v,x]})}),t[16]=v,t[17]=x,t[18]=S):S=t[18];let w;return t[19]!==h||t[20]!==S?(w=(0,P.jsx)(T,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[h,S]})}),t[19]=h,t[20]=S,t[21]=w):w=t[21],w}function R(e){let t=(0,N.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,P.jsx)(u,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function z(e){let t=(0,N.c)(22),{value:n,loading:r,suggestingScript:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let h;t[2]!==r||t[3]!==c||t[4]!==n?(h=(0,P.jsx)(D,{id:`setupScript`,value:n,onChange:c,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none pr-10`,disabled:r}),t[2]=r,t[3]=c,t[4]=n,t[5]=h):h=t[5];let g;t[6]===s?g=t[7]:(g=()=>void s(),t[6]=s,t[7]=g);let _;t[8]===i?_=t[9]:(_=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(l,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=_);let v;t[10]!==a||t[11]!==g||t[12]!==_?(v=(0,P.jsx)(d,{asChild:!0,children:(0,P.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:g,disabled:a,"aria-label":`Generate setup script with AI`,children:_})}),t[10]=a,t[11]=g,t[12]=_,t[13]=v):v=t[13];let b=i?`Working out the setup script...`:`Generate the dependency install script with AI`,x;t[14]===b?x=t[15]:(x=(0,P.jsx)(f,{children:b}),t[14]=b,t[15]=x);let S;t[16]!==v||t[17]!==x?(S=(0,P.jsx)(p,{children:(0,P.jsxs)(m,{children:[v,x]})}),t[16]=v,t[17]=x,t[18]=S):S=t[18];let C;return t[19]!==h||t[20]!==S?(C=(0,P.jsx)(T,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[h,S]})}),t[19]=h,t[20]=S,t[21]=C):C=t[21],C}var B=e(n(),1);async function V(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await h(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??a.PullRequest),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function H(e,t,n){n(!0);try{let n=await v(e);if(!n.runCommand){b({title:`No run command found`,description:n.reason??`Could not detect a dev script in the project's package.json`});return}t(n.runCommand),b({title:n.source===`ai`?`Generated run command`:`Detected run command`,description:n.runCommand})}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function U(e,t,n){n(!0);try{let n=await _(e);if(!n.setupScript){b({title:`No setup script found`,description:n.reason??`Could not work out how to install this project's dependencies`});return}t(n.setupScript),b({title:n.source===`ai`?`Generated setup script`:`Detected setup script`,description:n.setupScript})}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest setup script`,variant:`destructive`})}finally{n(!1)}}async function W(e,t,n,r){await g(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function G(e,t,n){t!==n&&await g(e,{useBuiltInBrowser:t})}function te(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ne(e,t,n){n.setSaving(!0);try{return await W(e,t.value,t.runCmd,t.commitMethod),await G(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return b({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function re(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setUseBuiltInBrowser:i,setOriginalValue:a,setOriginalRunCmd:o,setOriginalCommitMethod:s,setOriginalUseBuiltInBrowser:c,setLoading:l,setSaving:u,setSuggestingCommand:d}=e;return e}function ie(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:o,setCommitMethod:s,useBuiltInBrowser:c,setUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function ae(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:o,setOriginalCommitMethod:s,originalUseBuiltInBrowser:c,setOriginalUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function K(e,t){let n=(0,N.c)(71),r=i(),a=s(),c=ie(),l=ae(),{value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,setCommitMethod:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=c,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalUseBuiltInBrowser:w,setOriginalUseBuiltInBrowser:T}=l,[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[A,j]=(0,B.useState)(!1),[P,ee]=(0,B.useState)(!0),F;n[0]!==h||n[1]!==C||n[2]!==x||n[3]!==T||n[4]!==y||n[5]!==p||n[6]!==_||n[7]!==d?(F={setValue:d,setRunCmd:p,setCommitMethod:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalUseBuiltInBrowser:T,setLoading:ee,setSaving:D,setSuggestingCommand:k},n[0]=h,n[1]=C,n[2]=x,n[3]=T,n[4]=y,n[5]=p,n[6]=_,n[7]=d,n[8]=F):F=n[8];let I=re(F),L;n[9]!==e||n[10]!==I?(L=()=>V(e,I),n[9]=e,n[10]=I,n[11]=L):L=n[11];let R=L,z,W;n[12]===e?(z=n[13],W=n[14]):(z=()=>{e&&ee(!0)},W=[e],n[12]=e,n[13]=z,n[14]=W),(0,B.useLayoutEffect)(z,W);let G,K;n[15]===R?(G=n[16],K=n[17]):(G=()=>{R()},K=[R],n[15]=R,n[16]=G,n[17]=K),(0,B.useEffect)(G,K);let q;n[18]===P?q=n[19]:(q=[P],n[18]=P,n[19]=q);let se=M(e,q),J;n[20]===h?J=n[21]:(J=function(e){h(e)},n[20]=h,n[21]=J);let ce=J,Y;n[22]!==e||n[23]!==p?(Y=async function(){e&&await H(e,p,k)},n[22]=e,n[23]=p,n[24]=Y):Y=n[24];let le=Y,X;n[25]!==e||n[26]!==d?(X=async function(){e&&await U(e,d,j)},n[25]=e,n[26]=d,n[27]=X):X=n[27];let ue=X,Z;n[28]!==m||n[29]!==a||n[30]!==r||n[31]!==t||n[32]!==S||n[33]!==b||n[34]!==w||n[35]!==v||n[36]!==e||n[37]!==f||n[38]!==I||n[39]!==g||n[40]!==u?(Z=async function(){if(!e)return;let n=f.trim()!==``&&b.trim()===``;await ne(e,{value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w},I)&&(n&&a({type:o.SetRunCommandSaved,projectId:e}),t&&t().catch(oe),r(`/`))},n[28]=m,n[29]=a,n[30]=r,n[31]=t,n[32]=S,n[33]=b,n[34]=w,n[35]=v,n[36]=e,n[37]=f,n[38]=I,n[39]=g,n[40]=u,n[41]=Z):Z=n[41];let de=Z,fe=P||E,pe=P||O||A,Q;n[42]!==m||n[43]!==S||n[44]!==b||n[45]!==w||n[46]!==v||n[47]!==f||n[48]!==g||n[49]!==u?(Q=te({value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w}),n[42]=m,n[43]=S,n[44]=b,n[45]=w,n[46]=v,n[47]=f,n[48]=g,n[49]=u,n[50]=Q):Q=n[50];let me=Q,$;return n[51]!==m||n[52]!==fe||n[53]!==ce||n[54]!==de||n[55]!==le||n[56]!==ue||n[57]!==me||n[58]!==P||n[59]!==se||n[60]!==f||n[61]!==E||n[62]!==p||n[63]!==_||n[64]!==d||n[65]!==pe||n[66]!==O||n[67]!==A||n[68]!==g||n[69]!==u?($={value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,saving:E,suggestingCommand:O,suggestingScript:A,loading:P,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:se,handleCommitMethodChange:ce,handleSuggestCommand:le,handleSuggestSetupScript:ue,handleSave:de,controlsDisabled:fe,suggestDisabled:pe,hasUnsavedChanges:me},n[51]=m,n[52]=fe,n[53]=ce,n[54]=de,n[55]=le,n[56]=ue,n[57]=me,n[58]=P,n[59]=se,n[60]=f,n[61]=E,n[62]=p,n[63]=_,n[64]=d,n[65]=pe,n[66]=O,n[67]=A,n[68]=g,n[69]=u,n[70]=$):$=n[70],$}function oe(){}function q(e){let t=(0,N.c)(39),{projectId:n,onProjectUpdated:r}=e,{value:i,setValue:a,runCmd:o,setRunCmd:s,commitMethod:c,saving:l,suggestingCommand:u,suggestingScript:d,loading:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m,pageLoading:h,handleCommitMethodChange:g,handleSuggestCommand:_,handleSuggestSetupScript:v,handleSave:y,controlsDisabled:b,suggestDisabled:C,hasUnsavedChanges:T}=K(n,r);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(E,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let D=b||!T,O;t[1]!==y||t[2]!==l||t[3]!==D?(O=(0,P.jsx)(k,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,P.jsx)(R,{saving:l,disabled:D,onSave:y}),sticky:!1}),t[1]=y,t[2]=l,t[3]=D,t[4]=O):O=t[4];let j;t[5]!==v||t[6]!==f||t[7]!==a||t[8]!==C||t[9]!==d||t[10]!==i?(j=(0,P.jsx)(z,{value:i,loading:f,suggestingScript:d,suggestDisabled:C,onChange:a,onSuggest:v}),t[5]=v,t[6]=f,t[7]=a,t[8]=C,t[9]=d,t[10]=i,t[11]=j):j=t[11];let M;t[12]!==_||t[13]!==f||t[14]!==o||t[15]!==s||t[16]!==C||t[17]!==u?(M=(0,P.jsx)(L,{runCmd:o,loading:f,suggestingCommand:u,suggestDisabled:C,onChange:s,onSuggest:_}),t[12]=_,t[13]=f,t[14]=o,t[15]=s,t[16]=C,t[17]=u,t[18]=M):M=t[18];let F;t[19]!==c||t[20]!==g||t[21]!==f?(F=(0,P.jsx)(I,{commitMethod:c,loading:f,onChange:g}),t[19]=c,t[20]=g,t[21]=f,t[22]=F):F=t[22];let B;t[23]!==b||t[24]!==m||t[25]!==p?(B=(0,P.jsx)(ee,{useBuiltInBrowser:p,disabled:b,onChange:m}),t[23]=b,t[24]=m,t[25]=p,t[26]=B):B=t[26];let V;t[27]!==j||t[28]!==M||t[29]!==F||t[30]!==B?(V=(0,P.jsx)(A,{className:`max-w-none pt-6`,children:(0,P.jsxs)(w,{children:[j,M,F,B]})}),t[27]=j,t[28]=M,t[29]=F,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==O||t[33]!==V?(H=(0,P.jsxs)(S,{className:`shrink-0`,children:[O,V]}),t[32]=O,t[33]=V,t[34]=H):H=t[34];let U;return t[35]!==h||t[36]!==n||t[37]!==H?(U=(0,P.jsx)(x,{loading:h,children:H},n),t[35]=h,t[36]=n,t[37]=H,t[38]=U):U=t[38],U}export{q as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Jn as a}from"./dist-DQEC_JS0.js";import{$ as o,n as s}from"./store-D151firE.js";import{pt as c,x as l}from"./lucide-react-BFzs_X2U.js";import{t as u}from"./button-Djzr1B_4.js";import{i as d,n as f,r as p,t as m}from"./tooltip-CXREivps.js";import{cr as h,ir as g,rr as _,wt as v}from"./api-Cho1mlFq.js";import{t as y}from"./progress-indicator-Dr2oM_0d.js";import{t as b}from"./use-toast-xpb5jNtN.js";import{Ft as x,Ht as S,Lr as C,Lt as w,Ot as T,Rt as E,W as D,_t as O,jt as k,zt as A}from"./index-BlkYPP7B.js";import{i as j}from"./commit-method-fields-Cp9zzEl4.js";import{t as M}from"./use-settings-page-loading-CpaBd260.js";var N=t(),P=r();function ee(e){let t=(0,N.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,P.jsx)(T,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,P.jsx)(O,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function F(e){return e===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function I(e){let t=(0,N.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=F(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,P.jsx)(j,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,P.jsx)(T,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function L(e){let t=(0,N.c)(22),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let h;t[2]!==r||t[3]!==n||t[4]!==c?(h=(0,P.jsx)(C,{id:`runCommand`,value:n,onChange:c,placeholder:`e.g. npm run dev`,className:`font-mono pr-10`,disabled:r}),t[2]=r,t[3]=n,t[4]=c,t[5]=h):h=t[5];let g;t[6]===s?g=t[7]:(g=()=>void s(),t[6]=s,t[7]=g);let _;t[8]===i?_=t[9]:(_=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(l,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=_);let v;t[10]!==a||t[11]!==g||t[12]!==_?(v=(0,P.jsx)(d,{asChild:!0,children:(0,P.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 h-8 w-8`,onClick:g,disabled:a,"aria-label":`Generate run command with AI`,children:_})}),t[10]=a,t[11]=g,t[12]=_,t[13]=v):v=t[13];let b=i?`Working out the run command...`:`Detect the project's dev script, or generate one with AI`,x;t[14]===b?x=t[15]:(x=(0,P.jsx)(f,{children:b}),t[14]=b,t[15]=x);let S;t[16]!==v||t[17]!==x?(S=(0,P.jsx)(p,{children:(0,P.jsxs)(m,{children:[v,x]})}),t[16]=v,t[17]=x,t[18]=S):S=t[18];let w;return t[19]!==h||t[20]!==S?(w=(0,P.jsx)(T,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[h,S]})}),t[19]=h,t[20]=S,t[21]=w):w=t[21],w}function R(e){let t=(0,N.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,P.jsx)(u,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function z(e){let t=(0,N.c)(22),{value:n,loading:r,suggestingScript:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let h;t[2]!==r||t[3]!==c||t[4]!==n?(h=(0,P.jsx)(D,{id:`setupScript`,value:n,onChange:c,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none pr-10`,disabled:r}),t[2]=r,t[3]=c,t[4]=n,t[5]=h):h=t[5];let g;t[6]===s?g=t[7]:(g=()=>void s(),t[6]=s,t[7]=g);let _;t[8]===i?_=t[9]:(_=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(l,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=_);let v;t[10]!==a||t[11]!==g||t[12]!==_?(v=(0,P.jsx)(d,{asChild:!0,children:(0,P.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:g,disabled:a,"aria-label":`Generate setup script with AI`,children:_})}),t[10]=a,t[11]=g,t[12]=_,t[13]=v):v=t[13];let b=i?`Working out the setup script...`:`Generate the dependency install script with AI`,x;t[14]===b?x=t[15]:(x=(0,P.jsx)(f,{children:b}),t[14]=b,t[15]=x);let S;t[16]!==v||t[17]!==x?(S=(0,P.jsx)(p,{children:(0,P.jsxs)(m,{children:[v,x]})}),t[16]=v,t[17]=x,t[18]=S):S=t[18];let C;return t[19]!==h||t[20]!==S?(C=(0,P.jsx)(T,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[h,S]})}),t[19]=h,t[20]=S,t[21]=C):C=t[21],C}var B=e(n(),1);async function V(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await v(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??a.PullRequest),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function H(e,t,n){n(!0);try{let n=await _(e);if(!n.runCommand){b({title:`No run command found`,description:n.reason??`Could not detect a dev script in the project's package.json`});return}t(n.runCommand),b({title:n.source===`ai`?`Generated run command`:`Detected run command`,description:n.runCommand})}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function U(e,t,n){n(!0);try{let n=await g(e);if(!n.setupScript){b({title:`No setup script found`,description:n.reason??`Could not work out how to install this project's dependencies`});return}t(n.setupScript),b({title:n.source===`ai`?`Generated setup script`:`Detected setup script`,description:n.setupScript})}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest setup script`,variant:`destructive`})}finally{n(!1)}}async function W(e,t,n,r){await h(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function G(e,t,n){t!==n&&await h(e,{useBuiltInBrowser:t})}function te(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ne(e,t,n){n.setSaving(!0);try{return await W(e,t.value,t.runCmd,t.commitMethod),await G(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return b({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function re(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setUseBuiltInBrowser:i,setOriginalValue:a,setOriginalRunCmd:o,setOriginalCommitMethod:s,setOriginalUseBuiltInBrowser:c,setLoading:l,setSaving:u,setSuggestingCommand:d}=e;return e}function ie(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:o,setCommitMethod:s,useBuiltInBrowser:c,setUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function ae(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:o,setOriginalCommitMethod:s,originalUseBuiltInBrowser:c,setOriginalUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function K(e,t){let n=(0,N.c)(71),r=i(),a=s(),c=ie(),l=ae(),{value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,setCommitMethod:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=c,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalUseBuiltInBrowser:w,setOriginalUseBuiltInBrowser:T}=l,[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[A,j]=(0,B.useState)(!1),[P,ee]=(0,B.useState)(!0),F;n[0]!==h||n[1]!==C||n[2]!==x||n[3]!==T||n[4]!==y||n[5]!==p||n[6]!==_||n[7]!==d?(F={setValue:d,setRunCmd:p,setCommitMethod:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalUseBuiltInBrowser:T,setLoading:ee,setSaving:D,setSuggestingCommand:k},n[0]=h,n[1]=C,n[2]=x,n[3]=T,n[4]=y,n[5]=p,n[6]=_,n[7]=d,n[8]=F):F=n[8];let I=re(F),L;n[9]!==e||n[10]!==I?(L=()=>V(e,I),n[9]=e,n[10]=I,n[11]=L):L=n[11];let R=L,z,W;n[12]===e?(z=n[13],W=n[14]):(z=()=>{e&&ee(!0)},W=[e],n[12]=e,n[13]=z,n[14]=W),(0,B.useLayoutEffect)(z,W);let G,K;n[15]===R?(G=n[16],K=n[17]):(G=()=>{R()},K=[R],n[15]=R,n[16]=G,n[17]=K),(0,B.useEffect)(G,K);let q;n[18]===P?q=n[19]:(q=[P],n[18]=P,n[19]=q);let se=M(e,q),J;n[20]===h?J=n[21]:(J=function(e){h(e)},n[20]=h,n[21]=J);let ce=J,Y;n[22]!==e||n[23]!==p?(Y=async function(){e&&await H(e,p,k)},n[22]=e,n[23]=p,n[24]=Y):Y=n[24];let le=Y,X;n[25]!==e||n[26]!==d?(X=async function(){e&&await U(e,d,j)},n[25]=e,n[26]=d,n[27]=X):X=n[27];let ue=X,Z;n[28]!==m||n[29]!==a||n[30]!==r||n[31]!==t||n[32]!==S||n[33]!==b||n[34]!==w||n[35]!==v||n[36]!==e||n[37]!==f||n[38]!==I||n[39]!==g||n[40]!==u?(Z=async function(){if(!e)return;let n=f.trim()!==``&&b.trim()===``;await ne(e,{value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w},I)&&(n&&a({type:o.SetRunCommandSaved,projectId:e}),t&&t().catch(oe),r(`/`))},n[28]=m,n[29]=a,n[30]=r,n[31]=t,n[32]=S,n[33]=b,n[34]=w,n[35]=v,n[36]=e,n[37]=f,n[38]=I,n[39]=g,n[40]=u,n[41]=Z):Z=n[41];let de=Z,fe=P||E,pe=P||O||A,Q;n[42]!==m||n[43]!==S||n[44]!==b||n[45]!==w||n[46]!==v||n[47]!==f||n[48]!==g||n[49]!==u?(Q=te({value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w}),n[42]=m,n[43]=S,n[44]=b,n[45]=w,n[46]=v,n[47]=f,n[48]=g,n[49]=u,n[50]=Q):Q=n[50];let me=Q,$;return n[51]!==m||n[52]!==fe||n[53]!==ce||n[54]!==de||n[55]!==le||n[56]!==ue||n[57]!==me||n[58]!==P||n[59]!==se||n[60]!==f||n[61]!==E||n[62]!==p||n[63]!==_||n[64]!==d||n[65]!==pe||n[66]!==O||n[67]!==A||n[68]!==g||n[69]!==u?($={value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,saving:E,suggestingCommand:O,suggestingScript:A,loading:P,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:se,handleCommitMethodChange:ce,handleSuggestCommand:le,handleSuggestSetupScript:ue,handleSave:de,controlsDisabled:fe,suggestDisabled:pe,hasUnsavedChanges:me},n[51]=m,n[52]=fe,n[53]=ce,n[54]=de,n[55]=le,n[56]=ue,n[57]=me,n[58]=P,n[59]=se,n[60]=f,n[61]=E,n[62]=p,n[63]=_,n[64]=d,n[65]=pe,n[66]=O,n[67]=A,n[68]=g,n[69]=u,n[70]=$):$=n[70],$}function oe(){}function q(e){let t=(0,N.c)(39),{projectId:n,onProjectUpdated:r}=e,{value:i,setValue:a,runCmd:o,setRunCmd:s,commitMethod:c,saving:l,suggestingCommand:u,suggestingScript:d,loading:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m,pageLoading:h,handleCommitMethodChange:g,handleSuggestCommand:_,handleSuggestSetupScript:v,handleSave:y,controlsDisabled:b,suggestDisabled:C,hasUnsavedChanges:T}=K(n,r);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(E,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let D=b||!T,O;t[1]!==y||t[2]!==l||t[3]!==D?(O=(0,P.jsx)(k,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,P.jsx)(R,{saving:l,disabled:D,onSave:y}),sticky:!1}),t[1]=y,t[2]=l,t[3]=D,t[4]=O):O=t[4];let j;t[5]!==v||t[6]!==f||t[7]!==a||t[8]!==C||t[9]!==d||t[10]!==i?(j=(0,P.jsx)(z,{value:i,loading:f,suggestingScript:d,suggestDisabled:C,onChange:a,onSuggest:v}),t[5]=v,t[6]=f,t[7]=a,t[8]=C,t[9]=d,t[10]=i,t[11]=j):j=t[11];let M;t[12]!==_||t[13]!==f||t[14]!==o||t[15]!==s||t[16]!==C||t[17]!==u?(M=(0,P.jsx)(L,{runCmd:o,loading:f,suggestingCommand:u,suggestDisabled:C,onChange:s,onSuggest:_}),t[12]=_,t[13]=f,t[14]=o,t[15]=s,t[16]=C,t[17]=u,t[18]=M):M=t[18];let F;t[19]!==c||t[20]!==g||t[21]!==f?(F=(0,P.jsx)(I,{commitMethod:c,loading:f,onChange:g}),t[19]=c,t[20]=g,t[21]=f,t[22]=F):F=t[22];let B;t[23]!==b||t[24]!==m||t[25]!==p?(B=(0,P.jsx)(ee,{useBuiltInBrowser:p,disabled:b,onChange:m}),t[23]=b,t[24]=m,t[25]=p,t[26]=B):B=t[26];let V;t[27]!==j||t[28]!==M||t[29]!==F||t[30]!==B?(V=(0,P.jsx)(A,{className:`max-w-none pt-6`,children:(0,P.jsxs)(w,{children:[j,M,F,B]})}),t[27]=j,t[28]=M,t[29]=F,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==O||t[33]!==V?(H=(0,P.jsxs)(S,{className:`shrink-0`,children:[O,V]}),t[32]=O,t[33]=V,t[34]=H):H=t[34];let U;return t[35]!==h||t[36]!==n||t[37]!==H?(U=(0,P.jsx)(x,{loading:h,children:H},n),t[35]=h,t[36]=n,t[37]=H,t[38]=U):U=t[38],U}export{q as default};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ln as n}from"./dist-PhNKneni.js";import{r}from"./store-DdiKV6YO.js";import{d as i}from"./utils-BHAZna1O.js";import{t as a}from"./button-BvwSd5oT.js";import{Ft as o,Ht as s,Rt as c,i as l,jt as u,zt as d}from"./index-SP0wF0IN.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=l(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(c,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(u,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(o,{loading:!1,children:(0,p.jsxs)(s,{className:`shrink-0`,children:[x,(0,p.jsx)(d,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{fn as n}from"./dist-DQEC_JS0.js";import{r}from"./store-D151firE.js";import{d as i}from"./utils-DfZXN5fy.js";import{t as a}from"./button-Djzr1B_4.js";import{Ft as o,Ht as s,Rt as c,i as l,jt as u,zt as d}from"./index-BlkYPP7B.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=l(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(c,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(u,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(o,{loading:!1,children:(0,p.jsxs)(s,{className:`shrink-0`,children:[x,(0,p.jsx)(d,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Et as a,ln as o}from"./dist-PhNKneni.js";import{t as s}from"./utils-BHAZna1O.js";import{Xt as c,Zt as l,pt as u,r as d}from"./lucide-react-BFzs_X2U.js";import{t as f}from"./button-BvwSd5oT.js";import{Ot as p,ar as m}from"./api-DS1qgAo_.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{Ft as g,Ht as _,Lr as v,Rt as y,jt as b,zt as x}from"./index-SP0wF0IN.js";import{t as S}from"./use-settings-page-loading-CpaBd260.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:o}=e,u=a(n.name),[d,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{u||p(!1)},[u]);let g=v,_=u&&!d?`password`:`text`,y=n.value,b;t[0]!==r||t[1]!==o?(b=e=>o(r,e.target.value),t[0]=r,t[1]=o,t[2]=b):b=t[2];let x=s(`font-mono`,u&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:y,onChange:b,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==u||t[13]!==i||t[14]!==p||t[15]!==d?(E=u?(0,T.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,"aria-label":d?`Hide value`:`Show value`,children:d?(0,T.jsx)(l,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=u,t[13]=i,t[14]=p,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O(e){let t=(0,C.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,T.jsx)(f,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function k({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[a,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[u,C]=(0,w.useState)(!1),D=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{D()},[D]);let k=S(e,[c]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==a.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=a[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){C(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await D(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{C(!1)}}}let I=P();return e?(0,T.jsx)(g,{loading:k,children:(0,T.jsxs)(_,{className:`shrink-0`,children:[(0,T.jsx)(b,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsx)(f,{onClick:A,disabled:c||u,children:`Add`}),sticky:!1}),(0,T.jsxs)(x,{className:`max-w-none pt-6`,children:[n.length===0?(0,T.jsx)(`p`,{className:o.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(v,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||u,"aria-label":`Remove variable`,children:(0,T.jsx)(d,{className:`h-3.5 w-3.5`})})]},t))}),I?(0,T.jsx)(`div`,{className:`flex justify-end pt-6`,children:(0,T.jsx)(O,{saving:u,disabled:u||c,onSave:F})}):null]})]})}):(0,T.jsx)(y,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{k as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,fn as o}from"./dist-DQEC_JS0.js";import{t as s}from"./utils-DfZXN5fy.js";import{Xt as c,Zt as l,pt as u,r as d}from"./lucide-react-BFzs_X2U.js";import{t as f}from"./button-Djzr1B_4.js";import{Dt as p,ar as m}from"./api-Cho1mlFq.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{Ft as g,Ht as _,Lr as v,Rt as y,jt as b,zt as x}from"./index-BlkYPP7B.js";import{t as S}from"./use-settings-page-loading-CpaBd260.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:o}=e,u=a(n.name),[d,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{u||p(!1)},[u]);let g=v,_=u&&!d?`password`:`text`,y=n.value,b;t[0]!==r||t[1]!==o?(b=e=>o(r,e.target.value),t[0]=r,t[1]=o,t[2]=b):b=t[2];let x=s(`font-mono`,u&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:y,onChange:b,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==u||t[13]!==i||t[14]!==p||t[15]!==d?(E=u?(0,T.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,"aria-label":d?`Hide value`:`Show value`,children:d?(0,T.jsx)(l,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=u,t[13]=i,t[14]=p,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O(e){let t=(0,C.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,T.jsx)(f,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function k({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[a,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[u,C]=(0,w.useState)(!1),D=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{D()},[D]);let k=S(e,[c]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==a.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=a[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){C(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await D(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{C(!1)}}}let I=P();return e?(0,T.jsx)(g,{loading:k,children:(0,T.jsxs)(_,{className:`shrink-0`,children:[(0,T.jsx)(b,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsx)(f,{onClick:A,disabled:c||u,children:`Add`}),sticky:!1}),(0,T.jsxs)(x,{className:`max-w-none pt-6`,children:[n.length===0?(0,T.jsx)(`p`,{className:o.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(v,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||u,"aria-label":`Remove variable`,children:(0,T.jsx)(d,{className:`h-3.5 w-3.5`})})]},t))}),I?(0,T.jsx)(`div`,{className:`flex justify-end pt-6`,children:(0,T.jsx)(O,{saving:u,disabled:u||c,onSave:F})}):null]})]})}):(0,T.jsx)(y,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{k as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{a as i,i as a}from"./use-account-settings-query-R4H9qmd3.js";import{ar as o,fr as s,ir as c,ln as l,mr as u,nr as d,or as f,pr as p,rr as m}from"./dist-PhNKneni.js";import{t as h}from"./utils-BHAZna1O.js";import{t as g}from"./button-BvwSd5oT.js";import{it as _}from"./api-DS1qgAo_.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{Ft as y,Gt as b,Ht as x,Jt as S,Kt as C,Tt as w,Ut as T,Wt as E,Xt as D,jt as O,kt as k,on as A,qt as j,zt as M}from"./index-SP0wF0IN.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-GKMBZepT.js";import{t as z}from"./use-settings-page-loading-CpaBd260.js";var B=e(n(),1),V=t(),H=r(),U=`__unspecified__`,W=`__default__`,G=`Unsupported`,K=`table-fixed`,q=`[&_tr]:border-b-0`,J=`h-9 px-0 py-2`,Y=h(J,`w-40`),X=h(J,`w-56`),Z=`py-2 pl-0 pr-4 align-middle`,Q=`py-2 pl-0 align-middle`;function ee(e){let t=(0,V.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:o}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`span`,{className:l.bodyMuted,children:G}),t[0]=e):e=t[0],e}let s=r.reasoningEffort??W,c;t[1]!==n||t[2]!==o?(c=e=>o(n,e),t[1]=n,t[2]=o,t[3]=c):c=t[3];let u=`model-alias-${n}-reasoning`,d=`${m[n]} reasoning effort`,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,H.jsx)(S,{placeholder:`Model default`}),t[4]=f):f=t[4];let h;t[5]!==u||t[6]!==d?(h=(0,H.jsx)(j,{id:u,className:`w-full min-w-0`,"aria-label":d,children:f}),t[5]=u,t[6]=d,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,H.jsx)(b,{value:W,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(b,{value:`off`,children:p(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(te),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,H.jsxs)(E,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==s||t[16]!==y||t[17]!==c||t[18]!==h?(x=(0,H.jsxs)(T,{value:s,onValueChange:c,disabled:a,children:[h,y]}),t[14]=a,t[15]=s,t[16]=y,t[17]=c,t[18]=h,t[19]=x):x=t[19],x}function te(e){return(0,H.jsx)(b,{value:e,children:p(e)},e)}function ne(e){let t=(0,V.c)(21),{value:n,onChange:r,enabledModels:i,disabled:a}=e,s=a===void 0?!1:a,l;if(t[0]!==i){l=new Map;for(let e of i){let t=e.provider??`other`,n=l.get(t);n?n.push(e):l.set(t,[e])}t[0]=i,t[1]=l}else l=t[1];let p=l,h;t[2]!==r||t[3]!==n?(h=function(e,t){let i={...n};if(t===U){delete i[e],r(i);return}let a=o(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=h):h=t[4];let g=h,_;t[5]===i?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=_);let v=_,y;t[7]!==r||t[8]!==n?(y=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===W)delete a.reasoningEffort;else if(u(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=y):y=t[9];let x=y,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,H.jsx)(N,{className:q,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(P,{className:Y,children:`Name`}),(0,H.jsx)(P,{className:J,children:`Model`}),(0,H.jsx)(P,{className:X,children:`Reasoning`})]})}),t[10]=D):D=t[10];let O;t[11]!==s||t[12]!==i||t[13]!==v||t[14]!==g||t[15]!==x||t[16]!==p||t[17]!==n?(O=c.map(e=>{let t=n[e],r=t?f(t):U,a=v(t)?.supportedReasoningEfforts??[];return(0,H.jsxs)(I,{className:`hover:bg-transparent`,children:[(0,H.jsx)(L,{className:Z,children:(0,H.jsx)(k,{title:m[e],description:d[e]})}),(0,H.jsx)(L,{className:Z,children:(0,H.jsxs)(T,{value:r,onValueChange:t=>g(e,t),disabled:s,children:[(0,H.jsx)(j,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,H.jsx)(S,{placeholder:`Unspecified`,children:t?(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(w,{providerSlug:t.provider}),(0,H.jsx)(`span`,{className:`truncate`,children:A(t.model)})]}):`Unspecified`})}),(0,H.jsxs)(E,{children:[(0,H.jsx)(b,{value:U,children:`Unspecified`}),i.length>0&&(0,H.jsx)(C,{}),[...p.entries()].map(re)]})]})}),(0,H.jsx)(L,{className:Q,children:(0,H.jsx)(ee,{alias:e,target:t,supportedReasoningEfforts:a,disabled:s,onReasoningChange:x})})]},e)}),t[11]=s,t[12]=i,t[13]=v,t[14]=g,t[15]=x,t[16]=p,t[17]=n,t[18]=O):O=t[18];let M;return t[19]===O?M=t[20]:(M=(0,H.jsx)(`div`,{id:`model-aliases`,children:(0,H.jsxs)(R,{className:K,children:[D,(0,H.jsx)(F,{children:O})]})}),t[19]=O,t[20]=M),M}function re(e){let[t,n]=e;return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:h(l.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,H.jsx)(w,{providerSlug:t}),t]}),n.map(e=>{let n=f({provider:e.provider??t,model:e.id});return(0,H.jsx)(b,{value:n,children:A(e.id)},n)})]},t)}function ie(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?A(e.id).localeCompare(A(t.id)):n})}function $(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function ae(){let{data:e,isLoading:t}=a(),n=i(),[r,o]=(0,B.useState)({}),[c,l]=(0,B.useState)({}),u=(0,B.useRef)(c),[d,f]=(0,B.useState)([]),[p,m]=(0,B.useState)(!0),h=t||p,b=n.isPending;(0,B.useEffect)(function(){let e=!1;async function t(){m(!0);try{let t=await _().catch(()=>({}));e||f(ie(Object.values(t).flat()))}finally{e||m(!1)}}return t(),function(){e=!0}},[]);let S=e?.modelAliases;(0,B.useEffect)(function(){S&&(o(function(e){return $(e,u.current)?e:S}),u.current=S,l(S))},[S]);let C=z(`model-aliases`,[h]);function w(){return $(r,c)}async function T(){if(w())try{let e=Object.keys(r).length>0?r:void 0;if(e){let t=await _();s(e,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.map(e=>e.id)])))}await n.mutateAsync({modelAliases:e??null}),u.current=r,l(r),D()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}}return(0,H.jsx)(y,{loading:C,children:(0,H.jsxs)(x,{className:`shrink-0`,children:[(0,H.jsx)(O,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,H.jsx)(g,{onClick:()=>void T(),disabled:h||b||!w(),children:`Save`}),sticky:!1}),(0,H.jsx)(M,{className:`max-w-none pt-6`,children:(0,H.jsx)(ne,{value:r,onChange:o,enabledModels:d,disabled:h||b})})]})})}export{ae as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{a as i,i as a}from"./use-account-settings-query-DVhIle0W.js";import{_r as o,ar as s,cr as c,fn as l,gr as u,hr as d,lr as f,or as p,sr as m}from"./dist-DQEC_JS0.js";import{t as h}from"./utils-DfZXN5fy.js";import{t as g}from"./button-Djzr1B_4.js";import{it as _}from"./api-Cho1mlFq.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{Ft as y,Gt as b,Ht as x,Jt as S,Kt as C,Tt as w,Ut as T,Wt as E,Xt as D,jt as O,kt as k,on as A,qt as j,zt as M}from"./index-BlkYPP7B.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-BXRLirbI.js";import{t as z}from"./use-settings-page-loading-CpaBd260.js";var B=e(n(),1),V=t(),H=r(),U=`__unspecified__`,W=`__default__`,G=`Unsupported`,K=`table-fixed`,q=`[&_tr]:border-b-0`,J=`h-9 px-0 py-2`,Y=h(J,`w-40`),X=h(J,`w-56`),Z=`py-2 pl-0 pr-4 align-middle`,Q=`py-2 pl-0 align-middle`;function ee(e){let t=(0,V.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:o}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`span`,{className:l.bodyMuted,children:G}),t[0]=e):e=t[0],e}let s=r.reasoningEffort??W,c;t[1]!==n||t[2]!==o?(c=e=>o(n,e),t[1]=n,t[2]=o,t[3]=c):c=t[3];let d=`model-alias-${n}-reasoning`,f=`${p[n]} reasoning effort`,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,H.jsx)(S,{placeholder:`Model default`}),t[4]=m):m=t[4];let h;t[5]!==d||t[6]!==f?(h=(0,H.jsx)(j,{id:d,className:`w-full min-w-0`,"aria-label":f,children:m}),t[5]=d,t[6]=f,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,H.jsx)(b,{value:W,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(b,{value:`off`,children:u(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(te),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,H.jsxs)(E,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==s||t[16]!==y||t[17]!==c||t[18]!==h?(x=(0,H.jsxs)(T,{value:s,onValueChange:c,disabled:a,children:[h,y]}),t[14]=a,t[15]=s,t[16]=y,t[17]=c,t[18]=h,t[19]=x):x=t[19],x}function te(e){return(0,H.jsx)(b,{value:e,children:u(e)},e)}function ne(e){let t=(0,V.c)(21),{value:n,onChange:r,enabledModels:i,disabled:a}=e,l=a===void 0?!1:a,u;if(t[0]!==i){u=new Map;for(let e of i){let t=e.provider??`other`,n=u.get(t);n?n.push(e):u.set(t,[e])}t[0]=i,t[1]=u}else u=t[1];let d=u,h;t[2]!==r||t[3]!==n?(h=function(e,t){let i={...n};if(t===U){delete i[e],r(i);return}let a=c(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=h):h=t[4];let g=h,_;t[5]===i?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=_);let v=_,y;t[7]!==r||t[8]!==n?(y=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===W)delete a.reasoningEffort;else if(o(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=y):y=t[9];let x=y,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,H.jsx)(N,{className:q,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(P,{className:Y,children:`Name`}),(0,H.jsx)(P,{className:J,children:`Model`}),(0,H.jsx)(P,{className:X,children:`Reasoning`})]})}),t[10]=D):D=t[10];let O;t[11]!==l||t[12]!==i||t[13]!==v||t[14]!==g||t[15]!==x||t[16]!==d||t[17]!==n?(O=m.map(e=>{let t=n[e],r=t?f(t):U,a=v(t)?.supportedReasoningEfforts??[];return(0,H.jsxs)(I,{className:`hover:bg-transparent`,children:[(0,H.jsx)(L,{className:Z,children:(0,H.jsx)(k,{title:p[e],description:s[e]})}),(0,H.jsx)(L,{className:Z,children:(0,H.jsxs)(T,{value:r,onValueChange:t=>g(e,t),disabled:l,children:[(0,H.jsx)(j,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,H.jsx)(S,{placeholder:`Unspecified`,children:t?(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(w,{providerSlug:t.provider}),(0,H.jsx)(`span`,{className:`truncate`,children:A(t.model)})]}):`Unspecified`})}),(0,H.jsxs)(E,{children:[(0,H.jsx)(b,{value:U,children:`Unspecified`}),i.length>0&&(0,H.jsx)(C,{}),[...d.entries()].map(re)]})]})}),(0,H.jsx)(L,{className:Q,children:(0,H.jsx)(ee,{alias:e,target:t,supportedReasoningEfforts:a,disabled:l,onReasoningChange:x})})]},e)}),t[11]=l,t[12]=i,t[13]=v,t[14]=g,t[15]=x,t[16]=d,t[17]=n,t[18]=O):O=t[18];let M;return t[19]===O?M=t[20]:(M=(0,H.jsx)(`div`,{id:`model-aliases`,children:(0,H.jsxs)(R,{className:K,children:[D,(0,H.jsx)(F,{children:O})]})}),t[19]=O,t[20]=M),M}function re(e){let[t,n]=e;return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:h(l.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,H.jsx)(w,{providerSlug:t}),t]}),n.map(e=>{let n=f({provider:e.provider??t,model:e.id});return(0,H.jsx)(b,{value:n,children:A(e.id)},n)})]},t)}function ie(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?A(e.id).localeCompare(A(t.id)):n})}function $(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function ae(){let{data:e,isLoading:t}=a(),n=i(),[r,o]=(0,B.useState)({}),[s,c]=(0,B.useState)({}),l=(0,B.useRef)(s),[u,f]=(0,B.useState)([]),[p,m]=(0,B.useState)(!0),h=t||p,b=n.isPending;(0,B.useEffect)(function(){let e=!1;async function t(){m(!0);try{let t=await _().catch(()=>({}));e||f(ie(Object.values(t).flat()))}finally{e||m(!1)}}return t(),function(){e=!0}},[]);let S=e?.modelAliases;(0,B.useEffect)(function(){S&&(o(function(e){return $(e,l.current)?e:S}),l.current=S,c(S))},[S]);let C=z(`model-aliases`,[h]);function w(){return $(r,s)}async function T(){if(w())try{let e=Object.keys(r).length>0?r:void 0;if(e){let t=await _();d(e,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.map(e=>e.id)])))}await n.mutateAsync({modelAliases:e??null}),l.current=r,c(r),D()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}}return(0,H.jsx)(y,{loading:C,children:(0,H.jsxs)(x,{className:`shrink-0`,children:[(0,H.jsx)(O,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,H.jsx)(g,{onClick:()=>void T(),disabled:h||b||!w(),children:`Save`}),sticky:!1}),(0,H.jsx)(M,{className:`max-w-none pt-6`,children:(0,H.jsx)(ne,{value:r,onChange:o,enabledModels:u,disabled:h||b})})]})})}export{ae as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Jt as a,Qt as o,Zt as s,fn as c,qt as l}from"./dist-DQEC_JS0.js";import{r as u}from"./store-D151firE.js";import{Mt as d,pt as f}from"./lucide-react-BFzs_X2U.js";import{t as p}from"./button-Djzr1B_4.js";import{i as m,n as h,r as g,t as _}from"./tooltip-CXREivps.js";import{An as v,Tt as y,cr as b,li as x,lr as S,wt as C}from"./api-Cho1mlFq.js";import{t as w}from"./use-toast-xpb5jNtN.js";import{Ft as T,Ht as ee,Lr as te,Lt as ne,Ot as re,Rt as ie,W as ae,ar as oe,cr as E,ir as se,jt as ce,o as D,or as O,zt as le}from"./index-BlkYPP7B.js";import{t as ue}from"./use-settings-page-loading-CpaBd260.js";var k=t(),A=e(n(),1),j=r();function M(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`The selected file is not a readable image.`)),r.src=e})}async function de(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await C(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await y(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){w({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}function fe(e){return new Promise(function(t,n){let r=new FileReader;r.onload=function(){typeof r.result==`string`?t(r.result):n(Error(`The selected file could not be read.`))},r.onerror=function(){n(Error(`The selected file could not be read.`))},r.readAsDataURL(e)})}async function pe(e,t){try{let n=await M(e),r=await fetch(e);if(!r.ok)throw Error(`The selected file could not be read.`);let i=await r.blob(),o=l(new Uint8Array(await i.slice(0,12).arrayBuffer())),s=o?a(o):null;if(s?.mime===`image/webp`){t(await fe(i.slice(0,i.size,s.mime)));return}let c=document.createElement(`canvas`);c.width=256,c.height=256;let u=c.getContext(`2d`);if(!u)throw Error(`Could not prepare image conversion`);u.imageSmoothingEnabled=!0,u.imageSmoothingQuality=`high`;let d=Math.max(256/n.naturalWidth,256/n.naturalHeight),f=n.naturalWidth*d,p=n.naturalHeight*d;u.drawImage(n,(256-f)/2,(256-p)/2,f,p),t(c.toDataURL(`image/png`))}catch(e){w({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function me(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await pe(r,t)}finally{URL.revokeObjectURL(r)}}async function N(e,t,n){t!==n&&await S(e,t)}async function P(e,t,n){t!==n&&await v(e,`AGENTS.md`,t)}async function he(e,t,n){t!==n&&await b(e,{projectIcon:t})}async function ge(e,t,n,r,i,a){n.setSaving(!0);try{await N(e,t.name,t.originalName),await P(e,t.instructions,t.originalInstructions),await he(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){w({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function _e(e){let t=(0,k.c)(33),{projectIcon:n,entityNoun:r,fixed:i,disabled:a,inputRef:o,onFileChange:s,onButtonClick:l,onRemove:u}=e,f;t[0]===n?f=t[1]:(f=n?(0,j.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,j.jsx)(d,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[0]=n,t[1]=f);let p=f;if(i){let e;t[2]===p?e=t[3]:(e=(0,j.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border`,children:p}),t[2]=p,t[3]=e);let n;t[4]===r?n=t[5]:(n=(0,j.jsxs)(`p`,{className:c.caption,children:[`Tarsk ships the avatar for this `,r]}),t[4]=r,t[5]=n);let i;return t[6]!==e||t[7]!==n?(i=(0,j.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8],i}let v;t[9]!==a||t[10]!==o||t[11]!==s?(v=(0,j.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`sr-only`,onChange:s,disabled:a}),t[9]=a,t[10]=o,t[11]=s,t[12]=v):v=t[12];let y=n?`Change project icon`:`Choose project icon`,b;t[13]!==p||t[14]!==a||t[15]!==l||t[16]!==y?(b=(0,j.jsx)(E,{asChild:!0,children:(0,j.jsx)(m,{asChild:!0,children:(0,j.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:l,disabled:a,"aria-label":y,children:p})})}),t[13]=p,t[14]=a,t[15]=l,t[16]=y,t[17]=b):b=t[17];let x;t[18]===r?x=t[19]:(x=(0,j.jsxs)(h,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[18]=r,t[19]=x);let S;t[20]!==b||t[21]!==x?(S=(0,j.jsx)(g,{delayDuration:300,children:(0,j.jsxs)(_,{children:[b,x]})}),t[20]=b,t[21]=x,t[22]=S):S=t[22];let C;t[23]!==a||t[24]!==u||t[25]!==n?(C=n&&(0,j.jsx)(oe,{children:(0,j.jsx)(O,{disabled:a,onSelect:u,children:`Remove`})}),t[23]=a,t[24]=u,t[25]=n,t[26]=C):C=t[26];let w;t[27]!==S||t[28]!==C?(w=(0,j.jsxs)(se,{children:[S,C]}),t[27]=S,t[28]=C,t[29]=w):w=t[29];let T;return t[30]!==v||t[31]!==w?(T=(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[v,w]}),t[30]=v,t[31]=w,t[32]=T):T=t[32],T}function ve(e){let t=(0,k.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,j.jsx)(p,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function ye(e,t,n){let r=(0,k.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return pe(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!x())return;let e=function(e){let t=e.detail.dataUrl;a(t)};return window.addEventListener(`tarsk:project-icon-selected`,e),()=>{window.removeEventListener(`tarsk:project-icon-selected`,e)}},s=[a],r[2]=a,r[3]=o,r[4]=s),(0,A.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return me(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){x()&&t?D(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=u):u=r[9];let d=u,f;return r[10]!==d||r[11]!==l?(f={handleProjectIconChange:l,handleProjectIconButtonClick:d},r[10]=d,r[11]=l,r[12]=f):f=r[12],f}function F(e){let t=(0,k.c)(60),{projectId:n,onProjectUpdated:r}=e,a=i(),c;t[0]===n?c=t[1]:(c=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=c);let l=u(c),d;t[2]===n?d=t[3]:(d=e=>e.projects.find(e=>e.projectId===n)?.builtIn,t[2]=n,t[3]=d);let f=u(d),p=s({type:l})?`bot`:`project`,m;t[4]===f?m=t[5]:(m=o({builtIn:f}),t[4]=f,t[5]=m);let h=m,[g,_]=(0,A.useState)(``),[v,y]=(0,A.useState)(``),[b,x]=(0,A.useState)(``),[S,C]=(0,A.useState)(!1),[w,oe]=(0,A.useState)(!0),[E,se]=(0,A.useState)(``),[D,O]=(0,A.useState)(null),[M,fe]=(0,A.useState)(null),[pe,me]=(0,A.useState)(null),N=(0,A.useRef)(null),P;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(P={setProjectPath:me,setName:_,setInstructions:y,setProjectIcon:O,setOriginalName:se,setOriginalInstructions:x,setOriginalProjectIcon:fe,setLoading:oe,setSaving:C},t[6]=P):P=t[6];let he=P,F;t[7]===n?F=t[8]:(F=()=>de(n,he),t[7]=n,t[8]=F);let I=F,L,R;t[9]===n?(L=t[10],R=t[11]):(L=()=>{n&&oe(!0)},R=[n],t[9]=n,t[10]=L,t[11]=R),(0,A.useLayoutEffect)(L,R);let z,B;t[12]===I?(z=t[13],B=t[14]):(z=()=>{I()},B=[I],t[12]=I,t[13]=z,t[14]=B),(0,A.useEffect)(z,B);let V;t[15]===w?V=t[16]:(V=[w],t[15]=w,t[16]=V);let be=ue(n,V),{handleProjectIconChange:xe,handleProjectIconButtonClick:Se}=ye(O,pe,N),H;t[17]!==v||t[18]!==I||t[19]!==g||t[20]!==a||t[21]!==r||t[22]!==b||t[23]!==E||t[24]!==M||t[25]!==D||t[26]!==n?(H=async()=>{n&&await ge(n,{name:g,instructions:v,projectIcon:D,originalName:E,originalInstructions:b,originalProjectIcon:M},he,r,a,I)},t[17]=v,t[18]=I,t[19]=g,t[20]=a,t[21]=r,t[22]=b,t[23]=E,t[24]=M,t[25]=D,t[26]=n,t[27]=H):H=t[27];let Ce=H,U=w||S,we=g!==E||v!==b||D!==M;if(!n){let e;return t[28]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsx)(ie,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[28]=e):e=t[28],e}let Te=U||!we,W;t[29]!==Ce||t[30]!==S||t[31]!==Te?(W=(0,j.jsx)(ce,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,j.jsx)(ve,{saving:S,disabled:Te,onClick:Ce}),sticky:!1}),t[29]=Ce,t[30]=S,t[31]=Te,t[32]=W):W=t[32];let G;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>O(null),t[33]=G):G=t[33];let K;t[34]!==U||t[35]!==Se||t[36]!==xe||t[37]!==p||t[38]!==h||t[39]!==D?(K=(0,j.jsx)(`div`,{className:`flex justify-center`,children:(0,j.jsx)(_e,{projectIcon:D,entityNoun:p,fixed:h,disabled:U,inputRef:N,onFileChange:xe,onButtonClick:Se,onRemove:G})}),t[34]=U,t[35]=Se,t[36]=xe,t[37]=p,t[38]=h,t[39]=D,t[40]=K):K=t[40];let q;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>_(e.target.value),t[41]=q):q=t[41];let J;t[42]!==w||t[43]!==g?(J=(0,j.jsx)(re,{title:`Name`,controlLayout:`stack`,children:(0,j.jsx)(te,{id:`projectName`,value:g,onChange:q,placeholder:`Enter project name`,disabled:w})}),t[42]=w,t[43]=g,t[44]=J):J=t[44];let Y;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>y(e.target.value),t[45]=Y):Y=t[45];let X;t[46]!==v||t[47]!==w?(X=(0,j.jsx)(re,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,j.jsx)(ae,{id:`projectInstructions`,value:v,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:w})}),t[46]=v,t[47]=w,t[48]=X):X=t[48];let Z;t[49]!==K||t[50]!==J||t[51]!==X?(Z=(0,j.jsx)(le,{className:`max-w-none pt-6`,children:(0,j.jsxs)(ne,{children:[K,J,X]})}),t[49]=K,t[50]=J,t[51]=X,t[52]=Z):Z=t[52];let Q;t[53]!==W||t[54]!==Z?(Q=(0,j.jsxs)(ee,{className:`shrink-0`,children:[W,Z]}),t[53]=W,t[54]=Z,t[55]=Q):Q=t[55];let $;return t[56]!==be||t[57]!==n||t[58]!==Q?($=(0,j.jsx)(T,{loading:be,children:Q},n),t[56]=be,t[57]=n,t[58]=Q,t[59]=$):$=t[59],$}export{F as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Jt as a,Kt as o,Qt as s,Xt as c,Zt as l,ln as u,qt as d}from"./dist-PhNKneni.js";import{t as f}from"./utils-BHAZna1O.js";import{pt as p}from"./lucide-react-BFzs_X2U.js";import{t as m}from"./button-BvwSd5oT.js";import{Tt as h,cr as g}from"./api-DS1qgAo_.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{Ft as v,Ht as y,Rt as b,_t as x,jt as S,zt as C}from"./index-SP0wF0IN.js";import{t as w}from"./use-settings-page-loading-CpaBd260.js";var T=e(n(),1),E=t(),D=r(),O=s(),k=Math.ceil(O.length/2),A=[O.slice(0,k),O.slice(k)];function j(e){let t=(0,E.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,o;t[0]!==a||t[1]!==n.name?(o=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=o):o=t[2];let s;t[3]!==i||t[4]!==r||t[5]!==o||t[6]!==n.displayName?(s=(0,D.jsx)(x,{value:r,onChange:o,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=o,t[6]=n.displayName,t[7]=s):s=t[7];let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=f(u.body,`truncate`),t[8]=c):c=t[8];let l;t[9]===n.displayName?l=t[10]:(l=(0,D.jsx)(`span`,{className:c,children:n.displayName}),t[9]=n.displayName,t[10]=l);let d;return t[11]!==s||t[12]!==l?(d=(0,D.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[s,l]}),t[11]=s,t[12]=l,t[13]=d):d=t[13],d}function M(e,t,n){return!t.includes(e)&&!n.has(e)}function N(e,t,n){return t||n.has(e)}function P(e){let t=(0,E.c)(13),{tools:n,disabledTools:r,disabled:i,forceDisabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,r,a),disabled:N(e.name,i,a),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,D.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function F(e){let t=(0,E.c)(23),{disabledTools:n,onChange:r,disabled:i,forceDisabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=a??[],t[0]=a,t[1]=s);let c,l,u,d;t[2]!==o||t[3]!==n||t[4]!==r||t[5]!==s?(c=new Set(s.map(I)),l=function(e,t){let i=e.toLowerCase();if(!(c.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},u=`divide-y divide-table-border @md/settings-page:hidden`,d=O.map(e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,n,c),disabled:N(e.name,o,c),onToggle:l},e.name)),t[2]=o,t[3]=n,t[4]=r,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d):(c=t[6],l=t[7],u=t[8],d=t[9]);let f;t[10]!==u||t[11]!==d?(f=(0,D.jsx)(`div`,{className:u,children:d}),t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==l?(p=A.map((e,t)=>(0,D.jsx)(P,{tools:e,disabledTools:n,disabled:o,forceDisabledTools:c,onToggle:l},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=l,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,D.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:p}),t[18]=p,t[19]=m);let h;return t[20]!==f||t[21]!==m?(h=(0,D.jsxs)(D.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function I(e){return e.toLowerCase()}function L(e,t){return JSON.stringify([...e].sort())!==JSON.stringify([...t].sort())}function R(e,t){return e?l({type:o,disabledTools:t}):t}async function z(e){let t=await h(e);return{disabledTools:l(t),toolsLocked:a(t),standardProject:c(t)}}function B(e,t){_({title:`Error`,description:e instanceof Error?e.message:t,variant:`destructive`})}function V(e){let t=(0,E.c)(6),{saving:n,disabled:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(m,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,T.useState)([]),[o,s]=(0,T.useState)([]),[c,l]=(0,T.useState)(!0),[u,f]=(0,T.useState)(!1),[p,m]=(0,T.useState)(!1),[h,_]=(0,T.useState)(!1),x=(0,T.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=await z(e);a(t.disabledTools),s(t.disabledTools),m(t.toolsLocked),_(t.standardProject)}catch(e){B(e,`Failed to load tools settings`)}finally{l(!1)}},[e]);(0,T.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,T.useEffect)(()=>{x()},[x]);let E=w(e,[c]),O=L(r,o);async function k(){if(!(!e||!O)){f(!0);try{await g(e,{disabledTools:R(h,r)}),s(r),t&&await t(),await x(),n(`/`)}catch(e){B(e,`Failed to save tools settings`)}finally{f(!1)}}}return e?(0,D.jsx)(v,{loading:E,children:(0,D.jsxs)(y,{className:`shrink-0`,children:[(0,D.jsx)(S,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,D.jsx)(V,{saving:u,disabled:u||c||p||!O,onSave:()=>void k()}),sticky:!1}),(0,D.jsx)(C,{className:`max-w-none pt-6`,children:(0,D.jsx)(F,{disabledTools:r,onChange:a,disabled:c||u||p,forceDisabledTools:h?[...d]:void 0})})]})}):(0,D.jsx)(b,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{H as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{$t as a,Xt as o,Yt as s,Zt as c,en as l,fn as u,tn as d}from"./dist-DQEC_JS0.js";import{t as f}from"./utils-DfZXN5fy.js";import{pt as p}from"./lucide-react-BFzs_X2U.js";import{t as m}from"./button-Djzr1B_4.js";import{cr as h,wt as g}from"./api-Cho1mlFq.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{Ft as v,Ht as y,Rt as b,_t as x,jt as S,zt as C}from"./index-BlkYPP7B.js";import{t as w}from"./use-settings-page-loading-CpaBd260.js";var T=e(n(),1),E=t(),D=r(),O=d(),k=Math.ceil(O.length/2),A=[O.slice(0,k),O.slice(k)];function j(e){let t=(0,E.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,o;t[0]!==a||t[1]!==n.name?(o=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=o):o=t[2];let s;t[3]!==i||t[4]!==r||t[5]!==o||t[6]!==n.displayName?(s=(0,D.jsx)(x,{value:r,onChange:o,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=o,t[6]=n.displayName,t[7]=s):s=t[7];let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=f(u.body,`truncate`),t[8]=c):c=t[8];let l;t[9]===n.displayName?l=t[10]:(l=(0,D.jsx)(`span`,{className:c,children:n.displayName}),t[9]=n.displayName,t[10]=l);let d;return t[11]!==s||t[12]!==l?(d=(0,D.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[s,l]}),t[11]=s,t[12]=l,t[13]=d):d=t[13],d}function M(e,t,n){return!t.includes(e)&&!n.has(e)}function N(e,t,n){return t||n.has(e)}function P(e){let t=(0,E.c)(13),{tools:n,disabledTools:r,disabled:i,forceDisabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,r,a),disabled:N(e.name,i,a),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,D.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function F(e){let t=(0,E.c)(23),{disabledTools:n,onChange:r,disabled:i,forceDisabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=a??[],t[0]=a,t[1]=s);let c,l,u,d;t[2]!==o||t[3]!==n||t[4]!==r||t[5]!==s?(c=new Set(s.map(I)),l=function(e,t){let i=e.toLowerCase();if(!(c.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},u=`divide-y divide-table-border @md/settings-page:hidden`,d=O.map(e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,n,c),disabled:N(e.name,o,c),onToggle:l},e.name)),t[2]=o,t[3]=n,t[4]=r,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d):(c=t[6],l=t[7],u=t[8],d=t[9]);let f;t[10]!==u||t[11]!==d?(f=(0,D.jsx)(`div`,{className:u,children:d}),t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==l?(p=A.map((e,t)=>(0,D.jsx)(P,{tools:e,disabledTools:n,disabled:o,forceDisabledTools:c,onToggle:l},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=l,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,D.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:p}),t[18]=p,t[19]=m);let h;return t[20]!==f||t[21]!==m?(h=(0,D.jsxs)(D.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function I(e){return e.toLowerCase()}function L(e,t){return JSON.stringify([...e].sort())!==JSON.stringify([...t].sort())}function R(e,t){return e?l({type:s,disabledTools:t}):t}async function z(e){let t=await g(e);return{disabledTools:l(t),toolsLocked:c(t),standardProject:a(t)}}function B(e,t){_({title:`Error`,description:e instanceof Error?e.message:t,variant:`destructive`})}function V(e){let t=(0,E.c)(6),{saving:n,disabled:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(m,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,T.useState)([]),[s,c]=(0,T.useState)([]),[l,u]=(0,T.useState)(!0),[d,f]=(0,T.useState)(!1),[p,m]=(0,T.useState)(!1),[g,_]=(0,T.useState)(!1),x=(0,T.useCallback)(async()=>{if(!e){u(!1);return}u(!0);try{let t=await z(e);a(t.disabledTools),c(t.disabledTools),m(t.toolsLocked),_(t.standardProject)}catch(e){B(e,`Failed to load tools settings`)}finally{u(!1)}},[e]);(0,T.useLayoutEffect)(()=>{e&&u(!0)},[e]),(0,T.useEffect)(()=>{x()},[x]);let E=w(e,[l]),O=L(r,s);async function k(){if(!(!e||!O)){f(!0);try{await h(e,{disabledTools:R(g,r)}),c(r),t&&await t(),await x(),n(`/`)}catch(e){B(e,`Failed to save tools settings`)}finally{f(!1)}}}return e?(0,D.jsx)(v,{loading:E,children:(0,D.jsxs)(y,{className:`shrink-0`,children:[(0,D.jsx)(S,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,D.jsx)(V,{saving:d,disabled:d||l||p||!O,onSave:()=>void k()}),sticky:!1}),(0,D.jsx)(C,{className:`max-w-none pt-6`,children:(0,D.jsx)(F,{disabledTools:r,onChange:a,disabled:l||d||p,forceDisabledTools:g?[...o]:void 0})})]})}):(0,D.jsx)(b,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{H as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{c as i,s as a}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Wt as o,dn as s,fn as c,st as l}from"./dist-DQEC_JS0.js";import{$ as u,n as d}from"./store-D151firE.js";import{r as f,t as p}from"./utils-DfZXN5fy.js";import{A as m,I as h,Xt as g,Zt as _,pt as v,r as y,yn as b,yt as x}from"./lucide-react-BFzs_X2U.js";import{r as S,t as C}from"./button-Djzr1B_4.js";import{i as ee,n as te,r as w,t as T}from"./tooltip-CXREivps.js";import{Ft as E,H as D,K as ne,Mn as O,Mt as re,Nn as ie,R as ae,V as oe,hn as se,it as k,q as A,z as ce}from"./api-Cho1mlFq.js";import{t as le}from"./progress-indicator-Dr2oM_0d.js";import{n as j}from"./suspense-resource-DzlMlIgR.js";import{At as ue,Cr as M,Et as de,Ht as N,It as P,Lr as F,Lt as I,Qn as L,Rt as fe,Sr as pe,St as R,Xt as z,_t as B,jt as V,on as me,wr as H,xr as he,xt as ge,yt as U,zt as W}from"./index-BlkYPP7B.js";import{t as G}from"./async-error-boundary-BIrTHWz-.js";import{t as K}from"./sorting-DqwxPMRN.js";import{t as q}from"./pending-changes-Bn-0ak1d.js";import{o as J}from"./settings-list-mil_4_AR.js";import{t as Y}from"./use-deferred-search-Dgxosq55.js";import{n as X,r as _e,t as ve}from"./model-list-controls-CB81yfmg.js";var Z=e(n(),1),Q=t(),$=r(),ye=S(p(c.compact,`inline-flex items-center rounded-full border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`),{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function be(e){let t=(0,Q.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,variant:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==i?(a=p(ye({variant:i}),n),t[4]=n,t[5]=i,t[6]=a):a=t[6];let o;return t[7]!==r||t[8]!==a?(o=(0,$.jsx)(`div`,{className:a,...r}),t[7]=r,t[8]=a,t[9]=o):o=t[9],o}function xe(e,t,n){return n?e.find(e=>e.slug===n)??null:t?e.find(e=>e.name===t)??null:null}function Se(e,t,n){return e?!!(n&&e.slug===n||t&&e.name===t):!1}function Ce(e){return e instanceof Error?e.message:`Failed to load providers`}async function we({providerData:e,selectedProviderName:t,selectedProviderSlug:n,fetchProviders:r}){if(Se(e,t,n))return{provider:e};try{return{provider:xe(await r(),t,n)}}catch(e){return{error:Ce(e)}}}var Te=l(`app.use-provider-details.hook`);function Ee(){let e=(0,Q.c)(10),[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(``),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={},e[0]=h):h=e[0];let[g,_]=(0,Z.useState)(h),v;return e[1]!==a||e[2]!==r||e[3]!==s||e[4]!==p||e[5]!==g||e[6]!==d||e[7]!==t||e[8]!==l?(v={selectedProvider:t,setSelectedProvider:n,displayApiKey:r,setDisplayApiKey:i,balance:a,setBalance:o,error:s,setError:c,showApiKey:l,setShowApiKey:u,saveStatus:d,setSaveStatus:f,originalApiKey:p,setOriginalApiKey:m,providerEnvValues:g,setProviderEnvValues:_},e[1]=a,e[2]=r,e[3]=s,e[4]=p,e[5]=g,e[6]=d,e[7]=t,e[8]=l,e[9]=v):v=e[9],v}function De(){let e=(0,Q.c)(15),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Z.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Z.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Z.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Z.useState)(u),{query:p,setQuery:m,deferredQuery:h}=Y(),[g,_]=(0,Z.useState)(`alphabetical`),[v,y]=(0,Z.useState)(`all`),[b,x]=(0,Z.useState)(`coding`),S;return e[4]!==n||e[5]!==h||e[6]!==a||e[7]!==c||e[8]!==v||e[9]!==p||e[10]!==g||e[11]!==b||e[12]!==d||e[13]!==m?(S={availableModels:n,setAvailableModels:r,enabledModelIds:a,setEnabledModelIds:o,initialEnabledModelIds:c,setInitialEnabledModelIds:l,pendingChanges:d,setPendingChanges:f,modelSearchQuery:p,setModelSearchQuery:m,deferredModelSearchQuery:h,modelSortBy:g,setModelSortBy:_,modelFilter:v,setModelFilter:y,modelTab:b,setModelTab:x},e[4]=n,e[5]=h,e[6]=a,e[7]=c,e[8]=v,e[9]=p,e[10]=g,e[11]=b,e[12]=d,e[13]=m,e[14]=S):S=e[14],S}function Oe(){let e=(0,Q.c)(9),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Z.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Z.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Z.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Z.useState)(u),p;return e[4]!==n||e[5]!==a||e[6]!==c||e[7]!==d?(p={availableImageModels:n,setAvailableImageModels:r,enabledImageModelIds:a,setEnabledImageModelIds:o,initialEnabledImageModelIds:c,setInitialEnabledImageModelIds:l,pendingImageChanges:d,setPendingImageChanges:f},e[4]=n,e[5]=a,e[6]=c,e[7]=d,e[8]=p):p=e[8],p}function ke(){let e=(0,Q.c)(7),t=d(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(``),o=Ee(),s=De(),c=Oe(),l;return e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==o||e[4]!==s||e[5]!==c?(l={dispatch:t,modelsLoading:n,setModelsLoading:r,modelsError:i,setModelsError:a,...o,...s,...c},e[0]=t,e[1]=i,e[2]=n,e[3]=o,e[4]=s,e[5]=c,e[6]=l):l=e[6],l}function Ae({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:n}){let r=ke(),i=e=>me(e.id),a=(0,Z.useRef)(0);function s(){r.setAvailableModels([]),r.setAvailableImageModels([]),r.setEnabledModelIds(new Set),r.setInitialEnabledModelIds(new Set),r.setEnabledImageModelIds(new Set),r.setInitialEnabledImageModelIds(new Set),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}(0,Z.useEffect)(()=>{let i=++a.current;async function o(){r.setError(``);let o=await we({providerData:n,selectedProviderName:e,selectedProviderSlug:t,fetchProviders:E});if(i!==a.current)return;if(`error`in o){r.setError(o.error);return}let l=o.provider;r.setSelectedProvider(l),r.setOriginalApiKey(l?.apiKey??``),r.setDisplayApiKey(l?.apiKey??``),r.setProviderEnvValues(l?.envValues??{}),l?(d(l.slug,i),c(l.slug,i)):(s(),r.setBalance(null),r.setModelsLoading(!1),r.setModelsError(``))}o()},[e,t,n]);async function c(e,t=a.current){r.setBalance(null);try{let n=await re(e);if(t!==a.current)return;n.status===`success`&&r.setBalance(n.balance)}catch(t){Te.error(`Failed to load balance for ${e}:`,t)}}function l(e){return e instanceof Error?e.message:`Failed to load models from local API`}async function d(e,t=a.current){r.setModelsLoading(!0),r.setModelsError(``),r.setModelSearchQuery(``),r.setModelSortBy(`alphabetical`),r.setModelFilter(`all`),r.setModelTab(`coding`);try{let[n,i]=await Promise.all([A(e),ne(e)]);if(t!==a.current)return;r.setAvailableModels(n.models),r.setAvailableImageModels(i.models);let o=new Set(n.enabledModelIds);r.setEnabledModelIds(o),r.setInitialEnabledModelIds(o);let s=new Set(i.enabledModelIds);r.setEnabledImageModelIds(s),r.setInitialEnabledImageModelIds(s),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}catch(n){if(t!==a.current)return;Te.error(`Failed to load models for ${e}:`,n),s(),r.setModelsError(l(n))}finally{t===a.current&&r.setModelsLoading(!1)}}async function f(e){let t=a.current;r.setModelsLoading(!0),r.setModelsError(``);try{if(await se(e),t!==a.current||(await d(e,t),t!==a.current))return;r.dispatch({type:u.ConfigUpdated})}catch(n){if(t!==a.current)return;Te.error(`Failed to refresh models for ${e}:`,n),s(),r.setModelsError(l(n)),r.setModelsLoading(!1)}}let p=(e,t)=>{r.selectedProvider?.name===e&&(r.setDisplayApiKey(t),h(t))},m=(e,t)=>{r.setProviderEnvValues(n=>({...n,[e]:t}));let n=r.selectedProvider?.slug;n&&(async()=>{try{await O({[e]:t}),r.dispatch({type:u.ConfigUpdated}),r.setSaveStatus(`${ge(e)} saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save provider settings`);return}o(n)&&e===`LOCAL_API_URL`&&t.trim()&&await f(n)})()},h=async e=>{if(!(!r.selectedProvider||e===r.originalApiKey))try{await ie(r.selectedProvider.slug,e),r.dispatch({type:u.ConfigUpdated}),r.setOriginalApiKey(e),r.setSaveStatus(`API key saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save API key`)}},g=(e,t)=>{t===`image`?r.setPendingImageChanges(t=>{let n=new Map(t),i=r.enabledImageModelIds.has(e),a=n.has(e),o=n.get(e),s=!(a?o:i);return s===i?n.delete(e):n.set(e,s),_(e,(n.has(e)?n.get(e):i)??!1,`image`),n}):r.setPendingChanges(t=>{let n=q(t,e,r.enabledModelIds);return _(e,(n.has(e)?n.get(e):r.enabledModelIds.has(e))??!1,`coding`),n})},_=async(e,t,n=`coding`)=>{if(r.selectedProvider)try{n===`image`?(t?(await oe(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>new Set([...t,e]))):(await ae(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingImageChanges(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await D(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>new Set([...t,e]))):(await ce(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingChanges(t=>{let n=new Map(t);return n.delete(e),n}),z()),r.dispatch({type:u.ConfigUpdated}),r.setSaveStatus(`Model preferences saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save model changes`)}};async function v(e,t=`coding`){let n=t===`image`?r.availableImageModels:r.availableModels,i=t===`image`?r.enabledImageModelIds:r.enabledModelIds;(t===`image`?r.setPendingImageChanges:r.setPendingChanges)(t=>{let r=new Map(t);for(let t of n)i.has(t.id)===e?r.delete(t.id):r.set(t.id,e);return r});for(let r of n)i.has(r.id)!==e&&await _(r.id,e,t)}let y=r.displayApiKey!==void 0&&r.displayApiKey.trim().length>0,b=(0,Z.useMemo)(()=>K({models:r.availableModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledModelIds.has(e.id)}),[r.availableModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledModelIds,r.modelSortBy,i]),x=(0,Z.useMemo)(()=>K({models:r.availableImageModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy===`coding-index`||r.modelSortBy===`intelligence-by-price`?`alphabetical`:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledImageModelIds.has(e.id)}),[r.availableImageModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledImageModelIds,r.modelSortBy,i]);return{selectedProvider:r.selectedProvider,error:r.error,balance:r.balance,displayApiKey:r.displayApiKey,showApiKey:r.showApiKey,setShowApiKey:r.setShowApiKey,providerEnvValues:r.providerEnvValues,modelsLoading:r.modelsLoading,modelsError:r.modelsError,saveStatus:r.saveStatus,modelTab:r.modelTab,setModelTab:r.setModelTab,modelSearchQuery:r.modelSearchQuery,setModelSearchQuery:r.setModelSearchQuery,modelSortBy:r.modelSortBy,setModelSortBy:r.setModelSortBy,modelFilter:r.modelFilter,setModelFilter:r.setModelFilter,availableModels:r.availableModels,enabledModelIds:r.enabledModelIds,pendingChanges:r.pendingChanges,filteredAndSortedModels:b,availableImageModels:r.availableImageModels,enabledImageModelIds:r.enabledImageModelIds,pendingImageChanges:r.pendingImageChanges,filteredAndSortedImageModels:x,hasApiKey:y,getModelDisplayName:i,handleUpdateKeyLocal:p,handleUpdateProviderEnv:m,refreshLocalProviderModels:f,handleToggleModel:g,handleToggleAllModels:v}}function je(e){let t=(0,Q.c)(7),{provider:n,onBack:r}=e;if(!r&&!n.url)return null;let i;t[0]===n.url?i=t[1]:(i=n.url?(0,$.jsx)(U,{url:n.url,className:p(c.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(C,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(y,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{className:`sr-only`,children:`Close provider details`})]}):null,t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Me(e){let t=(0,Q.c)(6),{balance:n}=e;if(n===null)return null;let r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=p(c.compact,`inline-flex shrink-0 items-center gap-1.5 font-medium`),i=(0,$.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-green-500`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=f(n),t[2]=n,t[3]=a);let o;return t[4]===a?o=t[5]:(o=(0,$.jsxs)(`span`,{className:r,children:[i,`$`,a,` balance`]}),t[4]=a,t[5]=o),o}function Ne(e){let t=(0,Q.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=p(c.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(ee,{asChild:!0,children:(0,$.jsx)(`span`,{className:i,children:n})}),t[1]=n,t[2]=a);let o;t[3]===r?o=t[4]:(o=(0,$.jsx)(te,{children:r}),t[3]=r,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Pe(e){let t=(0,Q.c)(10),{provider:n,displayApiKey:r,showApiKey:i,onToggleShowApiKey:a,onUpdateKey:s,providerEnvValues:c,onUpdateEnv:l,modelsLoading:u,onRefreshModels:d}=e,f;return t[0]!==r||t[1]!==u||t[2]!==d||t[3]!==a||t[4]!==l||t[5]!==s||t[6]!==n||t[7]!==c||t[8]!==i?(f=(0,$.jsx)($.Fragment,{children:n.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(I,{children:[(0,$.jsx)(P,{label:(0,$.jsx)(Ne,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(x,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(F,{type:i?`text`:`password`,placeholder:n.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:r,onChange:e=>{s(n.name,e.target.value)}}),(0,$.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:a,disabled:!r,children:i?(0,$.jsx)(_,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(g,{className:`h-4 w-4 text-muted-foreground`})})]})}),R(n).map(e=>(0,$.jsx)(P,{label:(0,$.jsx)(Ne,{title:ge(e),tooltip:e}),control:o(n.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(F,{id:e,value:c[e]??``,onChange:t=>l(e,t.target.value),placeholder:n.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(ee,{asChild:!0,children:(0,$.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{d(n.slug)},disabled:u,children:u?(0,$.jsx)(v,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(h,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(te,{children:`Refresh models`})]})})]}):(0,$.jsx)(F,{id:e,value:c[e]??``,onChange:t=>l(e,t.target.value),placeholder:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`})},e))]})}):(0,$.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,$.jsx)(ue,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(C,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,n.name]})]})}),t[0]=r,t[1]=u,t[2]=d,t[3]=a,t[4]=l,t[5]=s,t[6]=n,t[7]=c,t[8]=i,t[9]=f):f=t[9],f}function Fe(e){let t=(0,Q.c)(6),{htmlFor:n,displayName:r,variant:i}=e,a=c[i],o;t[0]===a?o=t[1]:(o=p(a,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),t[0]=a,t[1]=o);let s;return t[2]!==r||t[3]!==n||t[4]!==o?(s=(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:n,className:o,children:r})}),t[2]=r,t[3]=n,t[4]=o,t[5]=s):s=t[5],s}function Ie(e){let t=(0,Q.c)(9),{pricing:n,className:r}=e,i=(n.prompt??0)===0&&(n.completion??0)===0,a;t[0]===r?a=t[1]:(a=p(c.caption,`whitespace-nowrap`,r),t[0]=r,t[1]=a);let o;t[2]!==i||t[3]!==n.completion||t[4]!==n.prompt?(o=i?``:`$${f(n.prompt??0)} in | $${f(n.completion??0)} out`,t[2]=i,t[3]=n.completion,t[4]=n.prompt,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,$.jsx)(`span`,{className:a,children:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function Le(e){let t=(0,Q.c)(15),{model:n,displayName:r,checkboxId:i,showStarRating:a}=e,o;t[0]!==i||t[1]!==r?(o=(0,$.jsx)(Fe,{htmlFor:i,displayName:r,variant:`body`}),t[0]=i,t[1]=r,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==n.coding_index||t[5]!==a?(s=a&&(0,$.jsx)(_e,{codingIndex:n.coding_index,modelName:r}),t[3]=r,t[4]=n.coding_index,t[5]=a,t[6]=s):s=t[6];let c;t[7]===n.pricing?c=t[8]:(c=n.pricing&&(0,$.jsx)(Ie,{pricing:n.pricing}),t[7]=n.pricing,t[8]=c);let l;t[9]!==s||t[10]!==c?(l=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[s,c]}),t[9]=s,t[10]=c,t[11]=l):l=t[11];let u;return t[12]!==o||t[13]!==l?(u=(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[o,l]}),t[12]=o,t[13]=l,t[14]=u):u=t[14],u}function Re(e){let t=(0,Q.c)(8),{model:n,displayName:r,checkboxId:i}=e,a;t[0]!==i||t[1]!==r?(a=(0,$.jsx)(Fe,{htmlFor:i,displayName:r,variant:`label`}),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===n.pricing?o=t[4]:(o=n.pricing&&(0,$.jsx)(Ie,{pricing:n.pricing,className:`flex-shrink-0`}),t[3]=n.pricing,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[a,o]}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function ze(e){let t=(0,Q.c)(22),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:s,onToggle:c}=e,l=n===`image`?`image-${r.id}`:r.id,u=r.id,d=!o&&`opacity-25`,f;t[0]===d?f=t[1]:(f=p(`flex cursor-default items-center space-x-3 px-3 py-2 transition-colors hover:bg-muted/30`,d),t[0]=d,t[1]=f);let m=!o,h=a??!1,g;t[2]!==r.id||t[3]!==c?(g=()=>c(r.id),t[2]=r.id,t[3]=c,t[4]=g):g=t[4];let _=`${i} ${a?`enabled`:`disabled`}`,v;t[5]!==l||t[6]!==m||t[7]!==h||t[8]!==g||t[9]!==_?(v=(0,$.jsx)(B,{id:l,disabled:m,value:h,onChange:g,ariaLabel:_}),t[5]=l,t[6]=m,t[7]=h,t[8]=g,t[9]=_,t[10]=v):v=t[10];let y;t[11]!==l||t[12]!==i||t[13]!==r||t[14]!==s||t[15]!==n?(y=n===`coding`?(0,$.jsx)(Le,{model:r,displayName:i,checkboxId:l,showStarRating:s}):(0,$.jsx)(Re,{model:r,displayName:i,checkboxId:l}),t[11]=l,t[12]=i,t[13]=r,t[14]=s,t[15]=n,t[16]=y):y=t[16];let b;return t[17]!==r.id||t[18]!==f||t[19]!==v||t[20]!==y?(b=(0,$.jsxs)(`div`,{className:f,children:[v,y]},u),t[17]=r.id,t[18]=f,t[19]=v,t[20]=y,t[21]=b):b=t[21],b}function Be(e){let t=(0,Q.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:a,modelsError:o,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:f,getModelDisplayName:m,onToggleModel:h}=e,g=n===`coding`,_=g?o?`No models loaded.`:`No models available for this provider.`:`No image models available for this provider.`,y;return t[0]!==_||t[1]!==u||t[2]!==i||t[3]!==m||t[4]!==l||t[5]!==g||t[6]!==f||t[7]!==r||t[8]!==a||t[9]!==h||t[10]!==d||t[11]!==n?(y=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:a?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,$.jsx)(v,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):r.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:c.bodyMuted,children:_})}):(0,$.jsx)(w,{children:(0,$.jsx)(`div`,{className:p(`grid grid-cols-1 gap-0`,s.tableWrapper),children:i.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:c.bodyMuted,children:`No models matching your filters.`})}):i.map(e=>{let t=u.has(e.id),r=d.has(e.id),i=d.get(e.id),a=(r?i:t)??!1;return(0,$.jsx)(ze,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:l,showStarRating:g&&(f===`coding-index`||f===`intelligence-by-price`),onToggle:e=>h(e,n)},e.id)})})})}),t[0]=_,t[1]=u,t[2]=i,t[3]=m,t[4]=l,t[5]=g,t[6]=f,t[7]=r,t[8]=a,t[9]=h,t[10]=d,t[11]=n,t[12]=y):y=t[12],y}function Ve(e){let t=(0,Q.c)(22),{tab:n,showImageTab:r,modelsLoading:i,models:a,hasApiKey:o,enabledModelIds:s,pendingChanges:c,modelSearchQuery:l,onModelSearchQueryChange:u,modelSortBy:d,onModelSortByChange:f,onToggleAllModels:h}=e,g=n===`coding`,_=g?`select-all-models`:`select-all-image-models`,v=!i&&a.length>0,y=v&&!o&&`opacity-25`,b;t[0]===y?b=t[1]:(b=p(`flex flex-col gap-2 md:flex-row md:items-center`,y),t[0]=y,t[1]=b);let x;t[2]===r?x=t[3]:(x=r?(0,$.jsxs)(M,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(H,{value:`coding`,children:`Coding`}),(0,$.jsx)(H,{value:`image`,children:`Image`})]}):null,t[2]=r,t[3]=x);let S;t[4]!==s||t[5]!==o||t[6]!==g||t[7]!==l||t[8]!==d||t[9]!==a||t[10]!==u||t[11]!==f||t[12]!==h||t[13]!==c||t[14]!==_||t[15]!==v||t[16]!==n?(S=v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(m,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(F,{placeholder:`Search`,className:`pl-10 h-8`,value:l,onChange:e=>u(e.target.value),disabled:!o})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(ve,{id:_,disabled:!o,checked:a.every(e=>{let t=c.has(e.id),n=c.get(e.id);return t?n:s.has(e.id)}),onChange:e=>{h(e,n)}}),(0,$.jsx)(X,{sortBy:d,showCodingIndex:g,showIntelligenceByPrice:g,onSortByChange:f})]})]}):null,t[4]=s,t[5]=o,t[6]=g,t[7]=l,t[8]=d,t[9]=a,t[10]=u,t[11]=f,t[12]=h,t[13]=c,t[14]=_,t[15]=v,t[16]=n,t[17]=S):S=t[17];let C;return t[18]!==b||t[19]!==x||t[20]!==S?(C=(0,$.jsxs)(`div`,{className:b,children:[x,S]}),t[18]=b,t[19]=x,t[20]=S,t[21]=C):C=t[21],C}function He(e){let t=(0,Q.c)(10),{title:n,description:r,action:i,tableHeader:a,children:o}=e,s;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==n?(s=(0,$.jsx)(V,{title:n,description:r,action:i,sticky:!1,tableHeader:a}),t[0]=i,t[1]=r,t[2]=a,t[3]=n,t[4]=s):s=t[4];let c;t[5]===o?c=t[6]:(c=(0,$.jsx)(`div`,{className:`px-6 pb-6`,children:o}),t[5]=o,t[6]=c);let l;return t[7]!==s||t[8]!==c?(l=(0,$.jsxs)(N,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function Ue(e){let t=(0,Q.c)(111),{selectedProviderName:n,selectedProviderSlug:r,providerData:i,onBack:a,className:o}=e,s=n===void 0?null:n,c=r===void 0?null:r,l;t[0]!==i||t[1]!==s||t[2]!==c?(l={selectedProviderName:s,selectedProviderSlug:c,providerData:i},t[0]=i,t[1]=s,t[2]=c,t[3]=l):l=t[3];let{selectedProvider:u,error:d,balance:f,displayApiKey:m,showApiKey:h,setShowApiKey:g,providerEnvValues:_,modelsLoading:v,modelsError:y,saveStatus:x,modelTab:S,setModelTab:ee,modelSearchQuery:te,setModelSearchQuery:w,modelSortBy:T,setModelSortBy:E,availableModels:D,enabledModelIds:ne,pendingChanges:O,filteredAndSortedModels:re,availableImageModels:ie,enabledImageModelIds:ae,pendingImageChanges:oe,filteredAndSortedImageModels:se,hasApiKey:k,getModelDisplayName:A,handleUpdateKeyLocal:ce,handleUpdateProviderEnv:le,refreshLocalProviderModels:j,handleToggleModel:M,handleToggleAllModels:de}=Ae(l);if(d){let e;t[4]===o?e=t[5]:(e=p(`flex h-full min-h-0 flex-col items-center justify-center gap-4 p-6`,o),t[4]=o,t[5]=e);let n;t[6]===d?n=t[7]:(n=(0,$.jsx)(ue,{variant:`error`,className:`mb-0`,children:d}),t[6]=d,t[7]=n);let r;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(C,{variant:`outline`,size:`sm`,onClick:We,children:`Retry`}),t[8]=r):r=t[8];let i;return t[9]!==e||t[10]!==n?(i=(0,$.jsxs)(`div`,{className:e,children:[n,r]}),t[9]=e,t[10]=n,t[11]=i):i=t[11],i}if(!u){let e;t[12]===o?e=t[13]:(e=p(`flex h-full min-h-0 items-center justify-center`,o),t[12]=o,t[13]=e);let n=s||c?`Provider not found`:`Select a Provider`,r;t[14]===a?r=t[15]:(r=a?(0,$.jsxs)(C,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(b,{className:`h-4 w-4 mr-1`}),`Back to Providers`]}):void 0,t[14]=a,t[15]=r);let i=a?`This provider could not be found.`:`Choose a provider from the list to configure its settings.`,l;t[16]!==n||t[17]!==r||t[18]!==i?(l=(0,$.jsx)(fe,{title:n,action:r,children:i}),t[16]=n,t[17]=r,t[18]=i,t[19]=l):l=t[19];let u;return t[20]!==e||t[21]!==l?(u=(0,$.jsx)(`div`,{className:e,children:l}),t[20]=e,t[21]=l,t[22]=u):u=t[22],u}let N;t[23]===o?N=t[24]:(N=p(`h-full min-h-0`,o),t[23]=o,t[24]=N);let P;t[25]!==a||t[26]!==u?(P=(0,$.jsx)(je,{provider:u,onBack:a}),t[25]=a,t[26]=u,t[27]=P):P=t[27];let F;t[28]!==g||t[29]!==h?(F=()=>g(!h),t[28]=g,t[29]=h,t[30]=F):F=t[30];let I;t[31]!==m||t[32]!==ce||t[33]!==le||t[34]!==v||t[35]!==_||t[36]!==j||t[37]!==u||t[38]!==h||t[39]!==F?(I=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Pe,{provider:u,displayApiKey:m,showApiKey:h,onToggleShowApiKey:F,onUpdateKey:ce,providerEnvValues:_,onUpdateEnv:le,modelsLoading:v,onRefreshModels:j})}),t[31]=m,t[32]=ce,t[33]=le,t[34]=v,t[35]=_,t[36]=j,t[37]=u,t[38]=h,t[39]=F,t[40]=I):I=t[40];let L;t[41]!==u.name||t[42]!==P||t[43]!==I?(L=(0,$.jsx)(He,{title:u.name,description:`Configure API keys and connection settings for this provider.`,action:P,children:I}),t[41]=u.name,t[42]=P,t[43]=I,t[44]=L):L=t[44];let R;t[45]!==w||t[46]!==E||t[47]!==ee?(R=e=>{ee(e),w(``),E(`alphabetical`)},t[45]=w,t[46]=E,t[47]=ee,t[48]=R):R=t[48];let z;t[49]===f?z=t[50]:(z=(0,$.jsx)(Me,{balance:f}),t[49]=f,t[50]=z);let B;t[51]===u.name?B=t[52]:(B=u.name.toLowerCase(),t[51]=u.name,t[52]=B);let V=B===`openrouter`,me=S===`coding`?D:ie,H=S===`coding`?ne:ae,ge=S===`coding`?O:oe,U;t[53]!==de||t[54]!==k||t[55]!==te||t[56]!==T||t[57]!==S||t[58]!==v||t[59]!==w||t[60]!==E||t[61]!==V||t[62]!==me||t[63]!==H||t[64]!==ge?(U=(0,$.jsx)(Ve,{tab:S,showImageTab:V,modelsLoading:v,models:me,hasApiKey:k,enabledModelIds:H,pendingChanges:ge,modelSearchQuery:te,onModelSearchQueryChange:w,modelSortBy:T,onModelSortByChange:E,onToggleAllModels:de}),t[53]=de,t[54]=k,t[55]=te,t[56]=T,t[57]=S,t[58]=v,t[59]=w,t[60]=E,t[61]=V,t[62]=me,t[63]=H,t[64]=ge,t[65]=U):U=t[65];let W;t[66]===y?W=t[67]:(W=y?(0,$.jsx)(ue,{variant:`error`,className:`mb-4`,children:y}):null,t[66]=y,t[67]=W);let G;t[68]!==D||t[69]!==ne||t[70]!==re||t[71]!==A||t[72]!==M||t[73]!==k||t[74]!==T||t[75]!==y||t[76]!==v||t[77]!==O||t[78]!==u?(G=(0,$.jsx)(pe,{value:`coding`,children:(0,$.jsx)(Be,{tab:`coding`,provider:u,models:D,filteredModels:re,modelsLoading:v,modelsError:y,hasApiKey:k,enabledModelIds:ne,pendingChanges:O,modelSortBy:T,getModelDisplayName:A,onToggleModel:M})}),t[68]=D,t[69]=ne,t[70]=re,t[71]=A,t[72]=M,t[73]=k,t[74]=T,t[75]=y,t[76]=v,t[77]=O,t[78]=u,t[79]=G):G=t[79];let K;t[80]!==ie||t[81]!==ae||t[82]!==se||t[83]!==A||t[84]!==M||t[85]!==k||t[86]!==T||t[87]!==y||t[88]!==v||t[89]!==oe||t[90]!==u?(K=(0,$.jsx)(pe,{value:`image`,children:(0,$.jsx)(Be,{tab:`image`,provider:u,models:ie,filteredModels:se,modelsLoading:v,modelsError:y,hasApiKey:k,enabledModelIds:ae,pendingChanges:oe,modelSortBy:T,getModelDisplayName:A,onToggleModel:M})}),t[80]=ie,t[81]=ae,t[82]=se,t[83]=A,t[84]=M,t[85]=k,t[86]=T,t[87]=y,t[88]=v,t[89]=oe,t[90]=u,t[91]=K):K=t[91];let q;t[92]===x?q=t[93]:(q=x?(0,$.jsx)(ue,{variant:x.includes(`error`)||x.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:x}):null,t[92]=x,t[93]=q);let J;t[94]!==z||t[95]!==U||t[96]!==W||t[97]!==G||t[98]!==K||t[99]!==q?(J=(0,$.jsxs)(He,{title:`Models`,description:`Enable coding and image models for this provider.`,action:z,tableHeader:U,children:[W,G,K,q]}),t[94]=z,t[95]=U,t[96]=W,t[97]=G,t[98]=K,t[99]=q,t[100]=J):J=t[100];let Y;t[101]!==S||t[102]!==J||t[103]!==R?(Y=(0,$.jsx)(he,{value:S,onValueChange:R,children:J}),t[101]=S,t[102]=J,t[103]=R,t[104]=Y):Y=t[104];let X;t[105]!==Y||t[106]!==L?(X=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[L,Y]})}),t[105]=Y,t[106]=L,t[107]=X):X=t[107];let _e;return t[108]!==X||t[109]!==N?(_e=(0,$.jsx)(`div`,{className:N,children:X}),t[108]=X,t[109]=N,t[110]=_e):_e=t[110],_e}function We(){return window.location.reload()}function Ge(e){return`providers:list:${e}`}async function Ke(){let[e,t]=await Promise.all([E(),k().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var qe=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Je=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Ye(e){let t=(0,Q.c)(9),{title:n,description:r,action:i,children:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,$.jsx)(V,{title:n,description:r,action:i,sticky:!1}),t[0]=i,t[1]=r,t[2]=n,t[3]=o):o=t[3];let s;t[4]===a?s=t[5]:(s=(0,$.jsx)(W,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(N,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Xe(e){let t=(0,Q.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=Y(),s;t[0]===n?s=t[1]:(s=Ge(n),t[0]=n,t[1]=s);let{providers:l,enabledModelCounts:u}=L(s,Ke),d;if(t[2]!==o||t[3]!==u||t[4]!==l){let e;t[6]===o?e=t[7]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[6]=o,t[7]=e);let n;t[8]===u?n=t[9]:(n=(e,t)=>{let n=(u[e.slug]??0)>0,r=(u[t.slug]??0)>0;return n&&!r?-1:!n&&r?1:e.name.localeCompare(t.name)},t[8]=u,t[9]=n),d=l.filter($e).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let f=d,m;if(t[10]!==o||t[11]!==l){let e;t[13]===o?e=t[14]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[13]=o,t[14]=e),m=l.filter(Qe).filter(e).sort(Ze),t[10]=o,t[11]=l,t[12]=m}else m=t[12];let h=m,g;t[15]!==i||t[16]!==a?(g=(0,$.jsx)(J,{placeholder:`Search`,value:i,onChange:a,className:`mb-0 w-64`}),t[15]=i,t[16]=a,t[17]=g):g=t[17];let _;t[18]!==f||t[19]!==u||t[20]!==r||t[21]!==i?(_=f.length===0?(0,$.jsx)(`p`,{className:p(c.bodyMuted,`py-4`),children:i?`No connected providers match your search.`:`No providers connected yet. Add an API key to get started.`}):(0,$.jsx)(`div`,{className:Je,children:f.map(e=>(0,$.jsx)(ot,{provider:e,modelCount:u[e.slug]??0,onClick:r},e.name))}),t[18]=f,t[19]=u,t[20]=r,t[21]=i,t[22]=_):_=t[22];let v;t[23]!==g||t[24]!==_?(v=(0,$.jsx)(Ye,{title:`Connected Providers`,description:`Providers you've connected with an API key or environment variable.`,action:g,children:_}),t[23]=g,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==h||t[27]!==r||t[28]!==i?(y=(0,$.jsx)(Ye,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:h.length===0?(0,$.jsx)(`p`,{className:p(c.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Je,children:h.map(e=>(0,$.jsx)(st,{provider:e,onClick:r},e.name))})}),t[26]=h,t[27]=r,t[28]=i,t[29]=y):y=t[29];let b;return t[30]!==v||t[31]!==y?(b=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[v,y]})}),t[30]=v,t[31]=y,t[32]=b):b=t[32],b}function Ze(e,t){return e.name.localeCompare(t.name)}function Qe(e){return!e.apiKey}function $e(e){return e.apiKey}function et(){let e=(0,Q.c)(21),t=a(),{providerSlug:n}=i(),[r,o]=(0,Z.useState)(0),s=(0,Z.useRef)(n),c,l;e[0]!==r||e[1]!==n?(c=()=>{s.current&&!n&&(j(Ge(r)),o(it)),s.current=n},l=[n,r],e[0]=r,e[1]=n,e[2]=c,e[3]=l):(c=e[2],l=e[3]),(0,Z.useEffect)(c,l);let u;e[4]===t?u=e[5]:(u=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=u);let d=u,f;e[6]!==r||e[7]!==t?(f=()=>{t(`/settings/providers`),j(Ge(r)),o(rt)},e[6]=r,e[7]=t,e[8]=f):f=e[8];let p=f,m;e[9]===r?m=e[10]:(m=function(){j(Ge(r)),o(nt)},e[9]=r,e[10]=m);let h=m;if(n){let t=decodeURIComponent(n),r;return e[11]!==p||e[12]!==t?(r=(0,$.jsx)(Ue,{selectedProviderSlug:t,onBack:p}),e[11]=p,e[12]=t,e[13]=r):r=e[13],r}let g;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(le,{centered:!0,label:`Loading providers...`,size:`lg`}),e[14]=g):g=e[14];let _;e[15]!==d||e[16]!==r?(_=(0,$.jsx)(Z.Suspense,{fallback:g,children:(0,$.jsx)(Xe,{loadVersion:r,onProviderClick:d},r)}),e[15]=d,e[16]=r,e[17]=_):_=e[17];let v;return e[18]!==h||e[19]!==_?(v=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:h,renderFallback:tt,children:_})}),e[18]=h,e[19]=_,e[20]=v):v=e[20],v}function tt(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(N,{className:`shrink-0`,children:[(0,$.jsx)(V,{title:`Providers`,description:`Manage your AI provider connections and API keys.`,sticky:!1}),(0,$.jsx)(`div`,{className:`flex items-center justify-center px-6 pb-6 pt-6`,children:(0,$.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,$.jsx)(ue,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(C,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function nt(e){return e+1}function rt(e){return e+1}function it(e){return e+1}function at(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function ot(e){let t=(0,Q.c)(25),{provider:n,modelCount:r,onClick:i}=e,a;t[0]!==i||t[1]!==n?(a=function(){i(n)},t[0]=i,t[1]=n,t[2]=a):a=t[2];let o=a,s;t[3]===o?s=t[4]:(s=e=>at(e,o),t[3]=o,t[4]=s);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(de,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=p(c.label,`truncate leading-normal`),t[7]=u):u=t[7];let d;t[8]===n.name?d=t[9]:(d=(0,$.jsx)(`span`,{className:u,children:n.name}),t[8]=n.name,t[9]=d);let f;t[10]!==l||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=f):f=t[12];let m;t[13]===n.isEnv?m=t[14]:(m=n.isEnv?(0,$.jsx)(be,{variant:`secondary`,className:p(c.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(be,{variant:`secondary`,className:p(c.compact,`px-2 py-0.5`),children:`API Key`}),t[13]=n.isEnv,t[14]=m);let h;t[15]===r?h=t[16]:(h=r>0&&(0,$.jsxs)(be,{variant:`default`,className:p(c.compact,`px-2 py-0.5`),children:[r,` `,r===1?`Model`:`Models`]}),t[15]=r,t[16]=h);let g;t[17]!==m||t[18]!==h?(g=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[m,h]}),t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==o||t[21]!==s||t[22]!==f||t[23]!==g?(_=(0,$.jsxs)(`div`,{className:qe,role:`button`,tabIndex:0,onClick:o,onKeyDown:s,children:[f,g]}),t[20]=o,t[21]=s,t[22]=f,t[23]=g,t[24]=_):_=t[24],_}function st(e){let t=(0,Q.c)(18),{provider:n,onClick:r}=e,i;t[0]!==r||t[1]!==n?(i=function(){r(n)},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;t[3]===a?o=t[4]:(o=e=>at(e,a),t[3]=a,t[4]=o);let s;t[5]===n?s=t[6]:(s=(0,$.jsx)(de,{provider:n}),t[5]=n,t[6]=s);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=p(c.label,`truncate leading-normal`),t[7]=l):l=t[7];let u;t[8]===n.name?u=t[9]:(u=(0,$.jsx)(`span`,{className:l,children:n.name}),t[8]=n.name,t[9]=u);let d;t[10]!==s||t[11]!==u?(d=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[s,u]}),t[10]=s,t[11]=u,t[12]=d):d=t[12];let f;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`span`,{className:p(c.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=f):f=t[13];let m;return t[14]!==a||t[15]!==o||t[16]!==d?(m=(0,$.jsxs)(`div`,{className:qe,role:`button`,tabIndex:0,onClick:a,onKeyDown:o,children:[d,f]}),t[14]=a,t[15]=o,t[16]=d,t[17]=m):m=t[17],m}export{et as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ln as ee}from"./dist-PhNKneni.js";import{x as te}from"./lucide-react-BFzs_X2U.js";import{t as i}from"./button-BvwSd5oT.js";import{i as a,n as ne,r as re,t as ie}from"./tooltip-CqktA8Zq.js";import{r as ae}from"./scroll-area-qgDSyMlD.js";import{t as o}from"./progress-indicator-Bub-larq.js";import{Br as oe,Hr as se,Ir as s,Kn as ce,Lr as le,Rr as ue,Ur as de,Vr as fe,W as pe,_t as me,zr as he}from"./index-SP0wF0IN.js";var ge=t(),_e=e(n(),1),c=r(),l=`pr-description`;function u(e){let t=(0,ge.c)(67),{open:n,onOpenChange:r,prTitle:u,onPrTitleChange:d,prDescription:f,onPrDescriptionChange:p,isGeneratingPRInfo:m,isLoading:h,onGeneratePRInfo:g,onCreatePR:_,currentBranch:v,createWorkspaceAfterPR:y,onCreateWorkspaceAfterPRChange:b}=e,[x,S]=(0,_e.useState)(!1),C;t[0]!==x||t[1]!==f?(C=!x&&f.trim().length>0,t[0]=x,t[1]=f,t[2]=C):C=t[2];let w=C,T;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(T=function(e){e.target.closest(`a`)||S(!0)},t[3]=T):T=t[3];let ve=T,E;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(E=function(e){e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S(!0))},t[4]=E):E=t[4];let ye=E,D;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,c.jsx)(de,{children:`Create Pull Request`}),t[5]=D):D=t[5];let O;t[6]===v?O=t[7]:(O=(0,c.jsxs)(se,{children:[D,(0,c.jsxs)(oe,{children:[`Create a pull request for branch `,v]})]}),t[6]=v,t[7]=O);let k;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,c.jsx)(s,{htmlFor:`pr-title`,children:`Title`}),t[8]=k):k=t[8];let A=v||`Enter PR title...`,j;t[9]===d?j=t[10]:(j=e=>d(e.target.value),t[9]=d,t[10]=j);let M;t[11]!==m||t[12]!==u||t[13]!==A||t[14]!==j?(M=(0,c.jsxs)(`div`,{className:`grid gap-2`,children:[k,(0,c.jsx)(le,{id:`pr-title`,placeholder:A,value:u,onChange:j,disabled:m})]}),t[11]=m,t[12]=u,t[13]=A,t[14]=j,t[15]=M):M=t[15];let N=w?void 0:l,P;t[16]===N?P=t[17]:(P=(0,c.jsx)(s,{htmlFor:N,children:`Description`}),t[16]=N,t[17]=P);let F;t[18]!==x||t[19]!==m||t[20]!==p||t[21]!==f||t[22]!==w?(F=w?(0,c.jsx)(ae,{className:`h-full min-h-[14rem] rounded-md border border-input bg-transparent`,children:(0,c.jsx)(`div`,{role:`button`,tabIndex:0,"aria-label":`Edit description`,onClick:ve,onKeyDown:ye,className:`flex h-full min-h-[14rem] cursor-text flex-col py-2 pl-3`,children:(0,c.jsx)(`div`,{className:`pr-8`,children:(0,c.jsx)(ce,{content:f})})})}):(0,c.jsx)(pe,{id:l,placeholder:`Enter PR description...`,value:f,onChange:e=>p(e.target.value),onFocus:()=>S(!0),disabled:m,autoFocus:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[18]=x,t[19]=m,t[20]=p,t[21]=f,t[22]=w,t[23]=F):F=t[23];let I=m||h,L;t[24]===m?L=t[25]:(L=m?(0,c.jsx)(o,{}):(0,c.jsx)(te,{className:`h-3.5 w-3.5`}),t[24]=m,t[25]=L);let R;t[26]!==g||t[27]!==I||t[28]!==L?(R=(0,c.jsx)(a,{asChild:!0,children:(0,c.jsx)(i,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:g,disabled:I,children:L})}),t[26]=g,t[27]=I,t[28]=L,t[29]=R):R=t[29];let z=m?`Generating PR description...`:`Generate PR title and description with AI`,B;t[30]===z?B=t[31]:(B=(0,c.jsx)(ne,{children:z}),t[30]=z,t[31]=B);let V;t[32]!==R||t[33]!==B?(V=(0,c.jsx)(re,{children:(0,c.jsxs)(ie,{children:[R,B]})}),t[32]=R,t[33]=B,t[34]=V):V=t[34];let H;t[35]!==F||t[36]!==V?(H=(0,c.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[F,V]}),t[35]=F,t[36]=V,t[37]=H):H=t[37];let U;t[38]!==P||t[39]!==H?(U=(0,c.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,H]}),t[38]=P,t[39]=H,t[40]=U):U=t[40];let W;t[41]!==U||t[42]!==M?(W=(0,c.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[M,U]}),t[41]=U,t[42]=M,t[43]=W):W=t[43];let G;t[44]!==y||t[45]!==b?(G=(0,c.jsx)(me,{value:y,onChange:b,ariaLabel:`Create a new branch`}),t[44]=y,t[45]=b,t[46]=G):G=t[46];let K;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,c.jsx)(s,{className:ee.labelNormal,children:`Create a new branch`}),t[47]=K):K=t[47];let q;t[48]===G?q=t[49]:(q=(0,c.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[48]=G,t[49]=q);let J=h||m,Y;t[50]===h?Y=t[51]:(Y=h?(0,c.jsxs)(c.Fragment,{children:[`Create PR`,(0,c.jsx)(o,{size:`sm`})]}):`Create PR`,t[50]=h,t[51]=Y);let X;t[52]!==_||t[53]!==J||t[54]!==Y?(X=(0,c.jsx)(i,{className:`ml-auto`,onClick:_,disabled:J,children:Y}),t[52]=_,t[53]=J,t[54]=Y,t[55]=X):X=t[55];let Z;t[56]!==q||t[57]!==X?(Z=(0,c.jsxs)(fe,{className:`w-full items-center gap-4`,children:[q,X]}),t[56]=q,t[57]=X,t[58]=Z):Z=t[58];let Q;t[59]!==W||t[60]!==Z||t[61]!==O?(Q=(0,c.jsxs)(he,{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:[O,W,Z]}),t[59]=W,t[60]=Z,t[61]=O,t[62]=Q):Q=t[62];let $;return t[63]!==r||t[64]!==n||t[65]!==Q?($=(0,c.jsx)(ue,{open:n,onOpenChange:r,children:Q}),t[63]=r,t[64]=n,t[65]=Q,t[66]=$):$=t[66],$}export{u as PullRequestDialog};
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{fn as ee}from"./dist-DQEC_JS0.js";import{x as te}from"./lucide-react-BFzs_X2U.js";import{t as i}from"./button-Djzr1B_4.js";import{i as a,n as ne,r as re,t as ie}from"./tooltip-CXREivps.js";import{r as ae}from"./scroll-area-BTSuUr9o.js";import{t as o}from"./progress-indicator-Dr2oM_0d.js";import{Br as oe,Hr as se,Ir as s,Kn as ce,Lr as le,Rr as ue,Ur as de,Vr as fe,W as pe,_t as me,zr as he}from"./index-BlkYPP7B.js";var ge=t(),_e=e(n(),1),c=r(),l=`pr-description`;function u(e){let t=(0,ge.c)(67),{open:n,onOpenChange:r,prTitle:u,onPrTitleChange:d,prDescription:f,onPrDescriptionChange:p,isGeneratingPRInfo:m,isLoading:h,onGeneratePRInfo:g,onCreatePR:_,currentBranch:v,createWorkspaceAfterPR:y,onCreateWorkspaceAfterPRChange:b}=e,[x,S]=(0,_e.useState)(!1),C;t[0]!==x||t[1]!==f?(C=!x&&f.trim().length>0,t[0]=x,t[1]=f,t[2]=C):C=t[2];let w=C,T;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(T=function(e){e.target.closest(`a`)||S(!0)},t[3]=T):T=t[3];let ve=T,E;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(E=function(e){e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S(!0))},t[4]=E):E=t[4];let ye=E,D;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,c.jsx)(de,{children:`Create Pull Request`}),t[5]=D):D=t[5];let O;t[6]===v?O=t[7]:(O=(0,c.jsxs)(se,{children:[D,(0,c.jsxs)(oe,{children:[`Create a pull request for branch `,v]})]}),t[6]=v,t[7]=O);let k;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,c.jsx)(s,{htmlFor:`pr-title`,children:`Title`}),t[8]=k):k=t[8];let A=v||`Enter PR title...`,j;t[9]===d?j=t[10]:(j=e=>d(e.target.value),t[9]=d,t[10]=j);let M;t[11]!==m||t[12]!==u||t[13]!==A||t[14]!==j?(M=(0,c.jsxs)(`div`,{className:`grid gap-2`,children:[k,(0,c.jsx)(le,{id:`pr-title`,placeholder:A,value:u,onChange:j,disabled:m})]}),t[11]=m,t[12]=u,t[13]=A,t[14]=j,t[15]=M):M=t[15];let N=w?void 0:l,P;t[16]===N?P=t[17]:(P=(0,c.jsx)(s,{htmlFor:N,children:`Description`}),t[16]=N,t[17]=P);let F;t[18]!==x||t[19]!==m||t[20]!==p||t[21]!==f||t[22]!==w?(F=w?(0,c.jsx)(ae,{className:`h-full min-h-[14rem] rounded-md border border-input bg-transparent`,children:(0,c.jsx)(`div`,{role:`button`,tabIndex:0,"aria-label":`Edit description`,onClick:ve,onKeyDown:ye,className:`flex h-full min-h-[14rem] cursor-text flex-col py-2 pl-3`,children:(0,c.jsx)(`div`,{className:`pr-8`,children:(0,c.jsx)(ce,{content:f})})})}):(0,c.jsx)(pe,{id:l,placeholder:`Enter PR description...`,value:f,onChange:e=>p(e.target.value),onFocus:()=>S(!0),disabled:m,autoFocus:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[18]=x,t[19]=m,t[20]=p,t[21]=f,t[22]=w,t[23]=F):F=t[23];let I=m||h,L;t[24]===m?L=t[25]:(L=m?(0,c.jsx)(o,{}):(0,c.jsx)(te,{className:`h-3.5 w-3.5`}),t[24]=m,t[25]=L);let R;t[26]!==g||t[27]!==I||t[28]!==L?(R=(0,c.jsx)(a,{asChild:!0,children:(0,c.jsx)(i,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:g,disabled:I,children:L})}),t[26]=g,t[27]=I,t[28]=L,t[29]=R):R=t[29];let z=m?`Generating PR description...`:`Generate PR title and description with AI`,B;t[30]===z?B=t[31]:(B=(0,c.jsx)(ne,{children:z}),t[30]=z,t[31]=B);let V;t[32]!==R||t[33]!==B?(V=(0,c.jsx)(re,{children:(0,c.jsxs)(ie,{children:[R,B]})}),t[32]=R,t[33]=B,t[34]=V):V=t[34];let H;t[35]!==F||t[36]!==V?(H=(0,c.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[F,V]}),t[35]=F,t[36]=V,t[37]=H):H=t[37];let U;t[38]!==P||t[39]!==H?(U=(0,c.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,H]}),t[38]=P,t[39]=H,t[40]=U):U=t[40];let W;t[41]!==U||t[42]!==M?(W=(0,c.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[M,U]}),t[41]=U,t[42]=M,t[43]=W):W=t[43];let G;t[44]!==y||t[45]!==b?(G=(0,c.jsx)(me,{value:y,onChange:b,ariaLabel:`Create a new branch`}),t[44]=y,t[45]=b,t[46]=G):G=t[46];let K;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,c.jsx)(s,{className:ee.labelNormal,children:`Create a new branch`}),t[47]=K):K=t[47];let q;t[48]===G?q=t[49]:(q=(0,c.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[48]=G,t[49]=q);let J=h||m,Y;t[50]===h?Y=t[51]:(Y=h?(0,c.jsxs)(c.Fragment,{children:[`Create PR`,(0,c.jsx)(o,{size:`sm`})]}):`Create PR`,t[50]=h,t[51]=Y);let X;t[52]!==_||t[53]!==J||t[54]!==Y?(X=(0,c.jsx)(i,{className:`ml-auto`,onClick:_,disabled:J,children:Y}),t[52]=_,t[53]=J,t[54]=Y,t[55]=X):X=t[55];let Z;t[56]!==q||t[57]!==X?(Z=(0,c.jsxs)(fe,{className:`w-full items-center gap-4`,children:[q,X]}),t[56]=q,t[57]=X,t[58]=Z):Z=t[58];let Q;t[59]!==W||t[60]!==Z||t[61]!==O?(Q=(0,c.jsxs)(he,{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:[O,W,Z]}),t[59]=W,t[60]=Z,t[61]=O,t[62]=Q):Q=t[62];let $;return t[63]!==r||t[64]!==n||t[65]!==Q?($=(0,c.jsx)(ue,{open:n,onOpenChange:r,children:Q}),t[63]=r,t[64]=n,t[65]=Q,t[66]=$):$=t[66],$}export{u as PullRequestDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ln as n}from"./dist-PhNKneni.js";import{At as r,Q as i,u as a}from"./lucide-react-BFzs_X2U.js";import{t as o}from"./button-BvwSd5oT.js";import{At as s,Br as c,Hr as l,Rr as u,Ur as d,Vr as f,zr as p}from"./index-SP0wF0IN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(l,{children:[(0,h.jsxs)(d,{className:`flex items-center gap-2`,children:[(0,h.jsx)(a,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(c,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),t[0]=C):C=t[0];let w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:n.bodyMuted,children:`Choose how you want to proceed:`}),t[1]=w):w=t[1];let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(r,{className:`h-4 w-4 mr-2`}),t[2]=T):T=t[2];let E;t[3]!==S||t[4]!==v?(E=(0,h.jsxs)(o,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),t[3]=S,t[4]=v,t[5]=E):E=t[5];let D;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(i,{className:`h-4 w-4 mr-2`}),t[6]=D):D=t[6];let O;t[7]!==S||t[8]!==y?(O=(0,h.jsxs)(o,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),t[7]=S,t[8]=y,t[9]=O):O=t[9];let k;t[10]!==E||t[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),t[10]=E,t[11]=O,t[12]=k):k=t[12];let A;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),t[13]=A):A=t[13];let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(s,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),t[14]=j):j=t[14];let M;t[15]===k?M=t[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),t[15]=k,t[16]=M);let N;t[17]!==S||t[18]!==b?(N=(0,h.jsx)(f,{children:(0,h.jsx)(o,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),t[17]=S,t[18]=b,t[19]=N):N=t[19];let P;t[20]!==M||t[21]!==N?(P=(0,h.jsxs)(p,{className:`sm:max-w-[425px]`,children:[C,M,N]}),t[20]=M,t[21]=N,t[22]=P):P=t[22];let F;return t[23]!==_||t[24]!==g||t[25]!==P?(F=(0,h.jsx)(u,{open:g,onOpenChange:_,children:P}),t[23]=_,t[24]=g,t[25]=P,t[26]=F):F=t[26],F}export{g as PullWithChangesDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{fn as n}from"./dist-DQEC_JS0.js";import{At as r,Q as i,u as a}from"./lucide-react-BFzs_X2U.js";import{t as o}from"./button-Djzr1B_4.js";import{At as s,Br as c,Hr as l,Rr as u,Ur as d,Vr as f,zr as p}from"./index-BlkYPP7B.js";var m=e(),h=t();function g(e){let t=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(l,{children:[(0,h.jsxs)(d,{className:`flex items-center gap-2`,children:[(0,h.jsx)(a,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(c,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),t[0]=C):C=t[0];let w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:n.bodyMuted,children:`Choose how you want to proceed:`}),t[1]=w):w=t[1];let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(r,{className:`h-4 w-4 mr-2`}),t[2]=T):T=t[2];let E;t[3]!==S||t[4]!==v?(E=(0,h.jsxs)(o,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),t[3]=S,t[4]=v,t[5]=E):E=t[5];let D;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(i,{className:`h-4 w-4 mr-2`}),t[6]=D):D=t[6];let O;t[7]!==S||t[8]!==y?(O=(0,h.jsxs)(o,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),t[7]=S,t[8]=y,t[9]=O):O=t[9];let k;t[10]!==E||t[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),t[10]=E,t[11]=O,t[12]=k):k=t[12];let A;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),t[13]=A):A=t[13];let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(s,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),t[14]=j):j=t[14];let M;t[15]===k?M=t[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),t[15]=k,t[16]=M);let N;t[17]!==S||t[18]!==b?(N=(0,h.jsx)(f,{children:(0,h.jsx)(o,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),t[17]=S,t[18]=b,t[19]=N):N=t[19];let P;t[20]!==M||t[21]!==N?(P=(0,h.jsxs)(p,{className:`sm:max-w-[425px]`,children:[C,M,N]}),t[20]=M,t[21]=N,t[22]=P):P=t[22];let F;return t[23]!==_||t[24]!==g||t[25]!==P?(F=(0,h.jsx)(u,{open:g,onOpenChange:_,children:P}),t[23]=_,t[24]=g,t[25]=P,t[26]=F):F=t[26],F}export{g as PullWithChangesDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-BvwSd5oT.js";import{Br as r,Hr as i,Rr as a,Ur as o,Vr as s,zr as c}from"./index-SP0wF0IN.js";var l=e(),u=t();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(i,{children:[(0,u.jsx)(o,{children:`Push Branch First`}),(0,u.jsx)(r,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(n,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(n,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(c,{children:[g,(0,u.jsxs)(s,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(a,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-Djzr1B_4.js";import{Br as r,Hr as i,Rr as a,Ur as o,Vr as s,zr as c}from"./index-BlkYPP7B.js";var l=e(),u=t();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(i,{children:[(0,u.jsx)(o,{children:`Push Branch First`}),(0,u.jsx)(r,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(n,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(n,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(c,{children:[g,(0,u.jsxs)(s,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(a,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i,t as a}from"./utils-BHAZna1O.js";import{a as o,g as s,h as c,l,n as u,u as d}from"./dist-T3Rfl3KQ.js";import{t as f}from"./dist-OixawqbU.js";var p=e(n(),1),m=t();function h(e,[t,n]){return Math.min(n,Math.max(t,e))}var g=r();function _(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var v=`ScrollArea`,[y,b]=c(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=p.useState(null),[u,m]=p.useState(null),[h,_]=p.useState(null),[v,y]=p.useState(null),[b,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>l(e)),M=f(a);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:_,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,g.jsx)(d.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});C.displayName=v;var w=`ScrollAreaViewport`,T=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=S(w,n),c=i(t,p.useRef(null),s.onViewportChange);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,g.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});T.displayName=w;var E=`ScrollAreaScrollbar`,D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,g.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,g.jsx)(k,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,g.jsx)(A,{...r,ref:t,forceMount:n}):i.type===`always`?(0,g.jsx)(j,{...r,ref:t}):null});D.displayName=E;var O=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,g.jsx)(u,{present:n||a,children:(0,g.jsx)(A,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),k=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>l(`SCROLL_END`),100),[c,l]=_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(c===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,g.jsx)(u,{present:n||c!==`hidden`,children:(0,g.jsx)(j,{"data-state":c===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:s(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:s(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),A=p.forwardRef((e,t)=>{let n=S(E,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,g.jsx)(u,{present:r||a,children:(0,g.jsx)(j,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),j=p.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=S(E,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=B(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return ie(e,o.current,s,t)}return n===`horizontal`?(0,g.jsx)(M,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=H(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,g.jsx)(ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=H(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),M=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=i(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=l(h),A=l(f),j=G(_,10);function M(e){w.current&&m({x:e.clientX-w.current.left,y:e.clientY-w.current.top})}return p.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,b,O,k]),p.useEffect(A,[r,A]),K(b,j),K(y.content,j),(0,g.jsx)(te,{scope:n,scrollbar:b,hasThumb:a,onThumbChange:l(o),onThumbPointerUp:l(c),onThumbPositionChange:A,onThumbPointerDown:l(u),children:(0,g.jsx)(d.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:s(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),w.current=b.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),M(e))}),onPointerMove:s(e.onPointerMove,M),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,y.viewport&&(y.viewport.style.scrollBehavior=``),w.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,g.jsx)(u,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=S(F,n),c=N(F,n),{onThumbPositionChange:l}=c,u=i(t,e=>c.onThumbChange(e)),f=p.useRef(void 0),m=G(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{m(),f.current||(f.current=ae(e,l),l())};return l(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,l]),(0,g.jsx)(d.div,{"data-state":c.hasThumb?`visible`:`hidden`,...a,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:s(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})}),onPointerUp:s(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=F;var L=`ScrollAreaCorner`,R=p.forwardRef((e,t)=>{let n=S(L,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,g.jsx)(re,{...e,ref:t}):null});R.displayName=L;var re=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=S(L,n),[a,o]=p.useState(0),[s,c]=p.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,g.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function B(e,t){let n=e/t;return isNaN(n)?0:n}function V(e){let t=B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ie(e,t,n,r=`ltr`){let i=V(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return U([c,l],d)(e)}function H(e,t,n=`ltr`){let r=V(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=h(e,n===`ltr`?[0,o]:[o*-1,0]);return U([0,o],[0,s])(c)}function U(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function W(e,t){return e>0&&e<t}var ae=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=l(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=l(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var q=C,J=T,Y=R,X=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(Z,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Z.displayName=D.displayName;var oe=`[&>div]:!box-border [&>div]:!pr-4`,Q=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`right-0 h-full w-2.5 p-0.5`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,o,s,c;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4],c=n[5]):({className:i,children:r,viewportRef:c,onViewportScroll:o,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s,n[5]=c);let l;n[6]===i?l=n[7]:(l=a(`relative overflow-hidden`,i),n[6]=i,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`h-full w-full rounded-[inherit]`,oe),n[8]=u):u=n[8];let d;n[9]!==r||n[10]!==o||n[11]!==c?(d=(0,g.jsx)(J,{ref:c,onScroll:o,className:u,children:r}),n[9]=r,n[10]=o,n[11]=c,n[12]=d):d=n[12];let f,p;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,g.jsx)(Q,{}),p=(0,g.jsx)(Y,{}),n[13]=f,n[14]=p):(f=n[13],p=n[14]);let h;return n[15]!==s||n[16]!==t||n[17]!==l||n[18]!==d?(h=(0,g.jsxs)(q,{ref:t,className:l,...s,children:[d,f,p]}),n[15]=s,n[16]=t,n[17]=l,n[18]=d,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2 p-0.5`,l=s===`horizontal`&&`h-2 w-full flex-col p-0.5`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none bg-transparent`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(se,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i,t as a}from"./utils-DfZXN5fy.js";import{a as o,g as s,h as c,l,n as u,u as d}from"./dist-67Q0Rzil.js";import{t as f}from"./dist-OixawqbU.js";var p=e(n(),1),m=t();function h(e,[t,n]){return Math.min(n,Math.max(t,e))}var g=r();function _(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var v=`ScrollArea`,[y,b]=c(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=p.useState(null),[u,m]=p.useState(null),[h,_]=p.useState(null),[v,y]=p.useState(null),[b,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>l(e)),M=f(a);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:_,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,g.jsx)(d.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});C.displayName=v;var w=`ScrollAreaViewport`,T=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=S(w,n),c=i(t,p.useRef(null),s.onViewportChange);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,g.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});T.displayName=w;var E=`ScrollAreaScrollbar`,D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,g.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,g.jsx)(k,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,g.jsx)(A,{...r,ref:t,forceMount:n}):i.type===`always`?(0,g.jsx)(j,{...r,ref:t}):null});D.displayName=E;var O=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,g.jsx)(u,{present:n||a,children:(0,g.jsx)(A,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),k=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>l(`SCROLL_END`),100),[c,l]=_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(c===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,g.jsx)(u,{present:n||c!==`hidden`,children:(0,g.jsx)(j,{"data-state":c===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:s(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:s(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),A=p.forwardRef((e,t)=>{let n=S(E,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,g.jsx)(u,{present:r||a,children:(0,g.jsx)(j,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),j=p.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=S(E,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=B(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return ie(e,o.current,s,t)}return n===`horizontal`?(0,g.jsx)(M,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=H(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,g.jsx)(ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=H(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),M=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=i(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=l(h),A=l(f),j=G(_,10);function M(e){w.current&&m({x:e.clientX-w.current.left,y:e.clientY-w.current.top})}return p.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,b,O,k]),p.useEffect(A,[r,A]),K(b,j),K(y.content,j),(0,g.jsx)(te,{scope:n,scrollbar:b,hasThumb:a,onThumbChange:l(o),onThumbPointerUp:l(c),onThumbPositionChange:A,onThumbPointerDown:l(u),children:(0,g.jsx)(d.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:s(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),w.current=b.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),M(e))}),onPointerMove:s(e.onPointerMove,M),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,y.viewport&&(y.viewport.style.scrollBehavior=``),w.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,g.jsx)(u,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=S(F,n),c=N(F,n),{onThumbPositionChange:l}=c,u=i(t,e=>c.onThumbChange(e)),f=p.useRef(void 0),m=G(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{m(),f.current||(f.current=ae(e,l),l())};return l(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,l]),(0,g.jsx)(d.div,{"data-state":c.hasThumb?`visible`:`hidden`,...a,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:s(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})}),onPointerUp:s(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=F;var L=`ScrollAreaCorner`,R=p.forwardRef((e,t)=>{let n=S(L,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,g.jsx)(re,{...e,ref:t}):null});R.displayName=L;var re=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=S(L,n),[a,o]=p.useState(0),[s,c]=p.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,g.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function B(e,t){let n=e/t;return isNaN(n)?0:n}function V(e){let t=B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ie(e,t,n,r=`ltr`){let i=V(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return U([c,l],d)(e)}function H(e,t,n=`ltr`){let r=V(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=h(e,n===`ltr`?[0,o]:[o*-1,0]);return U([0,o],[0,s])(c)}function U(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function W(e,t){return e>0&&e<t}var ae=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=l(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=l(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var q=C,J=T,Y=R,X=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(Z,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Z.displayName=D.displayName;var oe=`[&>div]:!box-border [&>div]:!pr-4`,Q=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`right-0 h-full w-2.5 p-0.5`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,o,s,c;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4],c=n[5]):({className:i,children:r,viewportRef:c,onViewportScroll:o,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s,n[5]=c);let l;n[6]===i?l=n[7]:(l=a(`relative overflow-hidden`,i),n[6]=i,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`h-full w-full rounded-[inherit]`,oe),n[8]=u):u=n[8];let d;n[9]!==r||n[10]!==o||n[11]!==c?(d=(0,g.jsx)(J,{ref:c,onScroll:o,className:u,children:r}),n[9]=r,n[10]=o,n[11]=c,n[12]=d):d=n[12];let f,p;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,g.jsx)(Q,{}),p=(0,g.jsx)(Y,{}),n[13]=f,n[14]=p):(f=n[13],p=n[14]);let h;return n[15]!==s||n[16]!==t||n[17]!==l||n[18]!==d?(h=(0,g.jsxs)(q,{ref:t,className:l,...s,children:[d,f,p]}),n[15]=s,n[16]=t,n[17]=l,n[18]=d,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2 p-0.5`,l=s===`horizontal`&&`h-2 w-full flex-col p-0.5`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none bg-transparent`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(se,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};