tarsk 0.5.73 → 0.5.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/index.js +145120 -178397
  2. package/dist/public/assets/{Combination-lwI_j-mU.js → Combination-BdvBzSm4.js} +1 -1
  3. package/dist/public/assets/{account-view-DKQdyGPK.js → account-view-c-UG0JKH.js} +1 -1
  4. package/dist/public/assets/{alert-dialog-Cb1PEgra.js → alert-dialog-DAHkynVZ.js} +1 -1
  5. package/dist/public/assets/api-D1GxdEEp.js +2 -0
  6. package/dist/public/assets/{async-error-boundary-J8P6NVvc.js → async-error-boundary-DNJqC4BV.js} +1 -1
  7. package/dist/public/assets/{async-loading-fallback-B_JNgWJR.js → async-loading-fallback-D2X0o4Qa.js} +1 -1
  8. package/dist/public/assets/browser-tab-BKQJKTg8.js +12 -0
  9. package/dist/public/assets/{button-DeNw35VZ.js → button-B6HDsfd5.js} +1 -1
  10. package/dist/public/assets/{card-B4eI0NI-.js → card-DZGd45nw.js} +1 -1
  11. package/dist/public/assets/chat-dock-context-8_5G30KG.js +1 -0
  12. package/dist/public/assets/{commit-dialog-DDLaQVzY.js → commit-dialog-OQFa4W6i.js} +1 -1
  13. package/dist/public/assets/{commit-error-dialog-Cp0Aic7I.js → commit-error-dialog-BFByxoUG.js} +1 -1
  14. package/dist/public/assets/{commit-method-fields-CD3PTIox.js → commit-method-fields-BihSf23f.js} +1 -1
  15. package/dist/public/assets/context-menu-e5jeH0Jl.js +1 -0
  16. package/dist/public/assets/{conversation-history-view-JymxZFJ2.js → conversation-history-view-BUlO9oJ6.js} +1 -1
  17. package/dist/public/assets/create-project-dialog-CY5wIGQV.js +2 -0
  18. package/dist/public/assets/{create-project-workspace-BcIx6FNf.js → create-project-workspace-ClILToZd.js} +1 -1
  19. package/dist/public/assets/{create-repo-dialog-DcvSMy3g.js → create-repo-dialog-CKUQoOaX.js} +1 -1
  20. package/dist/public/assets/{delete-confirm-dialog-C9NASyh6.js → delete-confirm-dialog-3DX1u0Dg.js} +1 -1
  21. package/dist/public/assets/{dialog-Do98zzAW.js → dialog--0foS3aw.js} +1 -1
  22. package/dist/public/assets/{diff-view-ePD0sdsW.js → diff-view-DLPu21IR.js} +2 -2
  23. package/dist/public/assets/{dist-CWnEmdyL.js → dist-Bxyh1Ml_.js} +1 -1
  24. package/dist/public/assets/{dist-BZvmHCxP.js → dist-CFXDhuA_.js} +1 -1
  25. package/dist/public/assets/{dist-DIjomljy.js → dist-CNOCRPxn.js} +1 -1
  26. package/dist/public/assets/{dist-DiMgghKn.js → dist-Cda_ffeR.js} +1 -1
  27. package/dist/public/assets/{dist-CWq9XRXF.js → dist-CkQILg8A.js} +1 -1
  28. package/dist/public/assets/{dist-DjKXDRW7.js → dist-CqGsum35.js} +1 -1
  29. package/dist/public/assets/dist-DjiNKpTV.js +2 -0
  30. package/dist/public/assets/{dist-CjhvxqFU.js → dist-eMdiO0P3.js} +1 -1
  31. package/dist/public/assets/{dist-mdooLpmq.js → dist-rO95BjzU.js} +1 -1
  32. package/dist/public/assets/explorer-tab-view-nzl0M0Vm.js +2 -0
  33. package/dist/public/assets/explorer-tree-Bkb6dzmf.js +1 -0
  34. package/dist/public/assets/explorer-view-NcArt0_H.js +75 -0
  35. package/dist/public/assets/{git-history-dialog-DWhJ1-ba.js → git-history-dialog-rWkjoaR5.js} +1 -1
  36. package/dist/public/assets/index-BOB3ZUQs.js +3386 -0
  37. package/dist/public/assets/index-BdGMz8sL.css +1 -0
  38. package/dist/public/assets/{markdown-renderer-qLede1zH.js → markdown-renderer-BkKibNMs.js} +3 -3
  39. package/dist/public/assets/{mcp-server-card-zm-ss-7h.js → mcp-server-card-DFT7uyRh.js} +1 -1
  40. package/dist/public/assets/{merged-pr-dialog-Due9WdB4.js → merged-pr-dialog-BOrFaYk6.js} +1 -1
  41. package/dist/public/assets/model-list-controls-CpQjn6i7.js +1 -0
  42. package/dist/public/assets/onboarding-dialog-HJpyzVWa.js +1 -0
  43. package/dist/public/assets/{project-env-vars-view-N1Io1Pau.js → project-env-vars-view-C9VTTfTo.js} +1 -1
  44. package/dist/public/assets/project-model-aliases-view-DKRoV7Gc.js +1 -0
  45. package/dist/public/assets/{project-settings-view-BalZ6Fe1.js → project-settings-view-BDYqpibk.js} +1 -1
  46. package/dist/public/assets/{project-tools-view-OnCN0jKz.js → project-tools-view-9WUc4Yca.js} +1 -1
  47. package/dist/public/assets/providers-list-view-BgvIWP_0.js +1 -0
  48. package/dist/public/assets/pull-request-dialog-BM1dkFpK.js +1 -0
  49. package/dist/public/assets/{pull-with-changes-dialog-B9y2_lt_.js → pull-with-changes-dialog-Bjl_esir.js} +1 -1
  50. package/dist/public/assets/{push-before-pr-dialog-D3pMFe9A.js → push-before-pr-dialog-Cbc_zaI8.js} +1 -1
  51. package/dist/public/assets/{radio-group-CU59hGiA.js → radio-group-CMW5ku-w.js} +1 -1
  52. package/dist/public/assets/{scroll-area-nbNFO91g.js → scroll-area-BMQFeWmq.js} +1 -1
  53. package/dist/public/assets/settings-general-view-BaMVw6kD.js +1 -0
  54. package/dist/public/assets/{settings-instructions-view-GjQivhLy.js → settings-instructions-view-BRE87H2U.js} +1 -1
  55. package/dist/public/assets/{settings-list-DU82HNPX.js → settings-list-BpPbGcpS.js} +1 -1
  56. package/dist/public/assets/{settings-logs-view-DnQ_4O9b.js → settings-logs-view-Bbue8ZOn.js} +4 -4
  57. package/dist/public/assets/settings-mcp-servers-view-BiMCy8sH.js +5 -0
  58. package/dist/public/assets/{settings-models-view-CTjnBd74.js → settings-models-view-BkZtGcUP.js} +1 -1
  59. package/dist/public/assets/{settings-rules-view-DiTC-cBE.js → settings-rules-view-TK7LEC-0.js} +3 -3
  60. package/dist/public/assets/settings-skills-view-Bv9Kn55r.js +3 -0
  61. package/dist/public/assets/{settings-slack-view-CiuJZ-9i.js → settings-slack-view-Dy2bFJqU.js} +1 -1
  62. package/dist/public/assets/{settings-slash-commands-view-CnXff39A.js → settings-slash-commands-view-DiR1IyMF.js} +1 -1
  63. package/dist/public/assets/{settings-statistics-view-D8SvAGE_.js → settings-statistics-view-DX1UVeCJ.js} +1 -1
  64. package/dist/public/assets/settings-storage-view-D8tHP8XT.js +1 -0
  65. package/dist/public/assets/{settings-subagents-view-B4HugfzU.js → settings-subagents-view-Bz7jBhbB.js} +2 -2
  66. package/dist/public/assets/{settings-system-prompt-view-DNQKxcFg.js → settings-system-prompt-view-VHGAqfQk.js} +1 -1
  67. package/dist/public/assets/settings-view-QBOhYAyv.js +2 -0
  68. package/dist/public/assets/store-CHF6tOp2.js +9 -0
  69. package/dist/public/assets/{switch-pIBaqatj.js → switch-P5m18oUl.js} +1 -1
  70. package/dist/public/assets/{table-B3fLagUj.js → table-MUx4ZxvS.js} +1 -1
  71. package/dist/public/assets/tasks-view-l00Nc2fV.js +2 -0
  72. package/dist/public/assets/terminal-panel-DHDoOXAH.js +38 -0
  73. package/dist/public/assets/{toggle-group-5tREtjoW.js → toggle-group-DMR7z3pz.js} +1 -1
  74. package/dist/public/assets/{tooltip-B6ziVyTv.js → tooltip-BtJG5fZl.js} +1 -1
  75. package/dist/public/assets/{use-active-dock-panel-instance-BSch6-Fx.js → use-active-dock-panel-instance-cO_DR87G.js} +1 -1
  76. package/dist/public/assets/use-installed-ai-files-CJr_PVcY.js +1 -0
  77. package/dist/public/assets/{use-open-chat-dock-panel-Cr1bQYOH.js → use-open-chat-dock-panel-B31lwcQF.js} +1 -1
  78. package/dist/public/assets/{web-BKpP7kYB.js → web-C7jr0n2X.js} +1 -1
  79. package/dist/public/assets/{web-DaiDQ9WA.js → web-D0nlJHDu.js} +1 -1
  80. package/dist/public/assets/{web-W5CC9Cq4.js → web-DPW3m0cL.js} +1 -1
  81. package/dist/public/assets/{web-CtDn8Ggo.js → web-jJ1krOD-.js} +1 -1
  82. package/dist/public/index.html +24 -24
  83. package/dist/recommended-models.txt +1 -1
  84. package/package.json +4 -3
  85. package/dist/public/assets/api-BMo_Lz8f.js +0 -2
  86. package/dist/public/assets/browser-tab-D_GXZ93G.js +0 -12
  87. package/dist/public/assets/chat-dock-context-BXoAs38w.js +0 -1
  88. package/dist/public/assets/context-menu-Dx5Jy21w.js +0 -1
  89. package/dist/public/assets/create-project-dialog-qbwqSqGU.js +0 -6
  90. package/dist/public/assets/dist-BWuYHVi8.js +0 -2
  91. package/dist/public/assets/explorer-tab-view-D6hsKrXY.js +0 -2
  92. package/dist/public/assets/explorer-tree-BG8ShRwn.js +0 -1
  93. package/dist/public/assets/explorer-view-BZcNnLd9.js +0 -75
  94. package/dist/public/assets/index-DhOeeft5.css +0 -1
  95. package/dist/public/assets/index-DjaVbFDB.js +0 -3386
  96. package/dist/public/assets/is-macos-client-BIb4ZSEa.js +0 -1
  97. package/dist/public/assets/model-list-controls-D86_87E4.js +0 -1
  98. package/dist/public/assets/onboarding-dialog-DlqbPvG0.js +0 -1
  99. package/dist/public/assets/project-model-aliases-view-B4FEze4g.js +0 -1
  100. package/dist/public/assets/providers-list-view-DXvcxXDM.js +0 -1
  101. package/dist/public/assets/pull-request-dialog-BeeTNIN_.js +0 -1
  102. package/dist/public/assets/settings-general-view-CAYlYs3J.js +0 -1
  103. package/dist/public/assets/settings-mcp-servers-view-C6OZHR3K.js +0 -5
  104. package/dist/public/assets/settings-skills-view-DHoSorOw.js +0 -3
  105. package/dist/public/assets/settings-storage-view-CUsa7Lwv.js +0 -1
  106. package/dist/public/assets/settings-view-DoZmXguf.js +0 -2
  107. package/dist/public/assets/store-BaMSfYoJ.js +0 -9
  108. package/dist/public/assets/tasks-view-BaMd8ZM0.js +0 -2
  109. package/dist/public/assets/terminal-panel-BjD6z-3y.js +0 -38
  110. package/dist/public/assets/use-installed-ai-files-E4BAFIPG.js +0 -1
@@ -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{G as i,S as a,ot as o}from"./dist-DjiNKpTV.js";import{En as s,Et as c,Rn as l,Vn as u,hn as d,jn as f,q as p,un as m}from"./dist-CNOCRPxn.js";import{n as h,t as g}from"./utils-CT-Dw22R.js";import{t as _}from"./button-B6HDsfd5.js";import{G as v,V as y,h as b,jt as x,kt as S,s as C,vn as w,yn as T}from"./api-D1GxdEEp.js";import{i as E,n as D,r as O,t as k}from"./tooltip-BtJG5fZl.js";import{n as A}from"./scroll-area-BMQFeWmq.js";import{a as j,i as M,o as N,r as P,s as F,t as I}from"./dialog--0foS3aw.js";import{Ct as L,En as R,Et as z,Ft as B,It as V,St as ee,Tt as H,bn as U,bt as W,hn as G,o as K,wt as q}from"./index-BOB3ZUQs.js";import{n as J,t as Y}from"./toggle-group-DMR7z3pz.js";import{t as te}from"./sorting-DqwxPMRN.js";import{t as ne}from"./pending-changes-Bn-0ak1d.js";function re(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function ie(e){return[G(e.id),e.name,re(e.name)]}function ae(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return ie(e).some(e=>n.has(e.toLowerCase()))}function oe(e,t){return e.filter(e=>ae(e,t)).map(e=>e.id)}var X=t(),Z=e(n(),1),Q=r(),se=a(`app.model-selector.ui`),ce=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function le({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:i=`grid`,autoSelectRecommended:a=!1}){let[s,l]=(0,Z.useState)([]),[f,m]=(0,Z.useState)(new Set),[_,y]=(0,Z.useState)(new Set),[b,S]=(0,Z.useState)(new Map),[C,w]=(0,Z.useState)(!1),[T,A]=(0,Z.useState)(``),[j,M]=(0,Z.useState)(`alphabetical`);(0,Z.useEffect)(()=>{N()},[e]);let N=async()=>{w(!0),A(``),M(`alphabetical`);try{let t=await v(e);l(t.models);let n=new Set(t.enabledModelIds);m(n);let r=new Map,i=new Set;if(a)try{let{models:e}=await x();i=new Set(oe(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){se.error(`Failed to load recommended models:`,e)}y(i),S(r),P(n,r,t.models)}catch(t){se.error(`Failed to load models for ${e}:`,t),l([]),m(new Set),y(new Set)}finally{w(!1)}},P=(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)},F=e=>{S(t=>{let n=ne(t,e,f);return P(f,n),n})},I=e=>{S(t=>{let n=new Map(t);return s.forEach(t=>{let r=f.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),P(f,n),n})},L=e=>G(e.id);function R(e,t=b){let n=t.has(e),r=t.get(e);return n?!!r:f.has(e)}let z=te({models:s,query:T,sortBy:j,getDisplayName:L,getPriority:e=>+!R(e.id)}),B=j===`alphabetical`?`alphabetical`:`price`;function ee(e){if(e===`alphabetical`){M(`alphabetical`);return}e===`price`&&M(`price-low`)}function H(){j!==`alphabetical`&&M(e=>e===`price-low`?`price-high`:`price-low`)}return C||n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(c,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8`,children:(0,Q.jsx)(`p`,{className:o.bodyMuted,children:`No models available for this provider.`})}):i===`compact`?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:g(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(K,{id:`select-all-models`,disabled:r,checked:s.every(e=>R(e.id)),onCheckedChange:e=>I(e===!0)}),(0,Q.jsx)(`label`,{htmlFor:`select-all-models`,className:g(o.body,`cursor-pointer`),children:`Select all models`})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,Q.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,Q.jsx)(p,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,Q.jsx)(V,{placeholder:`Search models...`,value:T,onChange:e=>A(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,Q.jsxs)(Y,{type:`single`,value:B,onValueChange:ee,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,Q.jsx)(J,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:ce,children:(0,Q.jsx)(u,{className:`h-4 w-4`})}),(0,Q.jsx)(J,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:ce,onClick:H,children:(0,Q.jsx)(d,{className:`h-4 w-4`})})]})]})]}),(0,Q.jsx)(O,{children:(0,Q.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:z.length===0?(0,Q.jsx)(`div`,{className:`text-center py-4`,children:(0,Q.jsx)(`p`,{className:o.bodyMuted,children:T?`No models match your search.`:`No models available.`})}):z.map(e=>{let t=R(e.id),n=e.pricing,i=t&&_.has(e.id);return(0,Q.jsxs)(k,{children:[(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(`div`,{className:g(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,r&&`opacity-25`),children:[(0,Q.jsx)(K,{id:e.id,disabled:r,checked:t??!1,onCheckedChange:()=>F(e.id),className:`mt-0`}),(0,Q.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,Q.jsxs)(`label`,{htmlFor:e.id,className:g(o.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),children:[L(e),i&&(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`})]}),n&&(0,Q.jsx)(`span`,{className:g(o.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(n.prompt??0)<=0&&(n.completion??0)<=0?`Free`:`${h(n.prompt??0)} in | ${h(n.completion??0)} out`})]})]})}),e.description&&(0,Q.jsx)(D,{side:`top`,className:`max-w-xs`,children:(0,Q.jsx)(`p`,{className:o.body,children:e.description})})]},e.id)})})})]}):null}var $=a(`app.onboarding-dialog.ui`);function ue(e){let t=(0,X.c)(26),{currentStep:n}=e,r=e=>e===`provider-selection`&&n===`provider-selection`||n===`model-selection`,i=e=>n===e,a=i(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===a?s=t[1]:(s=g(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,a),t[0]=a,t[1]=s);let c;t[2]===s?c=t[3]:(c=(0,Q.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=c);let l=r(`provider-selection`)?`bg-primary`:`bg-muted`,u;t[4]===l?u=t[5]:(u=g(`h-0.5 flex-1`,l),t[4]=l,t[5]=u);let d;t[6]===u?d=t[7]:(d=(0,Q.jsx)(`div`,{className:u}),t[6]=u,t[7]=d);let f=i(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,p;t[8]===f?p=t[9]:(p=g(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,f),t[8]=f,t[9]=p);let m;t[10]===p?m=t[11]:(m=(0,Q.jsx)(`div`,{className:p,children:`2`}),t[10]=p,t[11]=m);let h=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===h?_=t[13]:(_=g(`h-0.5 flex-1`,h),t[12]=h,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,Q.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=g(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,Q.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==c||t[23]!==d||t[24]!==m?(S=(0,Q.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[c,d,m,v,x]}),t[20]=v,t[21]=x,t[22]=c,t[23]=d,t[24]=m,t[25]=S):S=t[25],S}function de(e){let t=(0,X.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{children:`Select an AI Provider`}),(0,Q.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,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{children:`Select Models`}),(0,Q.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,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{children:`Let's get started`}),(0,Q.jsx)(M,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function fe(e){let t=(0,X.c)(7),{gitLoading:n,gitInstalled:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(c,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(U,{variant:`success`,className:`mb-0 flex items-start gap-3`,children:[(0,Q.jsx)(f,{className:`h-5 w-5 text-green-600 flex-shrink-0 mt-0.5`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{className:g(o.label,`text-green-900`),children:`Git is installed`}),(0,Q.jsx)(`p`,{className:o.bodyMuted,children:`You're all set to use Git features in Tarsk.`})]})]}),t[1]=e):e=t[1],e}let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(s,{className:`h-5 w-5 text-yellow-600 flex-shrink-0 mt-0.5`}),t[2]=i):i=t[2];let a,l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(`p`,{className:o.label,children:`Git is not installed`}),l=(0,Q.jsx)(`p`,{className:o.bodyMuted,children:`Git is required for some features in Tarsk. You can continue without it, but we recommend installing it.`}),t[3]=a,t[4]=l):(a=t[3],l=t[4]);let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=g(o.caption,`text-brand hover:underline mt-2 inline-flex items-center gap-1`),t[5]=u):u=t[5];let d;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsxs)(U,{variant:`hint`,className:`mb-0 flex items-start gap-3`,children:[i,(0,Q.jsxs)(`div`,{className:`flex-1`,children:[a,l,(0,Q.jsxs)(`a`,{href:`https://git-scm.com/downloads`,target:`_blank`,rel:`noreferrer`,className:u,children:[`Download Git `,(0,Q.jsx)(m,{className:`h-3 w-3`})]})]})]}),t[6]=d):d=t[6],d}function pe(e){let t=(0,X.c)(16),{selectedProvider:n,onProviderChange:r,apiKey:a,onApiKeyChange:s,validatingKey:c,providerEnvValues:l,onProviderEnvChange:u,keyError:d}=e,f;t[0]!==a||t[1]!==s||t[2]!==r||t[3]!==n||t[4]!==c?(f=(0,Q.jsx)(W,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:a,onApiKeyChange:s,variant:`dropdown`,isLoading:c}),t[0]=a,t[1]=s,t[2]=r,t[3]=n,t[4]=c,t[5]=f):f=t[5];let p;t[6]!==u||t[7]!==l||t[8]!==n?(p=n&&q(n).map(e=>(0,Q.jsx)(R,{label:(0,Q.jsx)(B,{htmlFor:e,children:L(e)}),control:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`input`,{id:e,value:l[e]??``,onChange:t=>u(e,t.target.value),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===H(n)||i(n.slug)&&e===`LOCAL_API_URL`?(0,Q.jsx)(`p`,{className:g(o.bodyMuted,`mt-2 break-all`),children:z(n,l)||n.api}):null]}),align:`start`},e)),t[6]=u,t[7]=l,t[8]=n,t[9]=p):p=t[9];let m;t[10]===d?m=t[11]:(m=d&&(0,Q.jsx)(U,{variant:`error`,className:`mb-0`,children:d}),t[10]=d,t[11]=m);let h;return t[12]!==f||t[13]!==p||t[14]!==m?(h=(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[f,p,m]}),t[12]=f,t[13]=p,t[14]=m,t[15]=h):h=t[15],h}function me(e){let t=(0,X.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,Q.jsx)(`div`,{className:`space-y-4`,children:(0,Q.jsx)(le,{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 he(e){let t=(0,X.c)(32),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,apiKey:o,hasProvider:s,onSkip:u,onBack:d,onContinue:p,onValidate:m,onFinish:h}=e,g;t[0]!==n||t[1]!==u||t[2]!==r?(g=n===`provider-selection`&&(0,Q.jsx)(_,{variant:`ghost`,onClick:u,disabled:r,children:`Skip for now`}),t[0]=n,t[1]=u,t[2]=r,t[3]=g):g=t[3];let v;t[4]===g?v=t[5]:(v=(0,Q.jsx)(`div`,{children:g}),t[4]=g,t[5]=v);let y;t[6]!==n||t[7]!==d||t[8]!==r?(y=n!==`git-check`&&(0,Q.jsx)(_,{variant:`outline`,onClick:d,disabled:r,children:`Back`}),t[6]=n,t[7]=d,t[8]=r,t[9]=y):y=t[9];let b;t[10]!==n||t[11]!==i||t[12]!==p?(b=n===`git-check`&&(0,Q.jsxs)(_,{onClick:p,disabled:i,className:`gap-2`,children:[`Continue `,(0,Q.jsx)(l,{className:`h-4 w-4`})]}),t[10]=n,t[11]=i,t[12]=p,t[13]=b):b=t[13];let x;t[14]!==o||t[15]!==n||t[16]!==s||t[17]!==m||t[18]!==a?(x=n===`provider-selection`&&(0,Q.jsx)(_,{onClick:m,disabled:a||!o.trim()||!s,className:`gap-2`,children:a?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Next `,(0,Q.jsx)(l,{className:`h-4 w-4`})]})}),t[14]=o,t[15]=n,t[16]=s,t[17]=m,t[18]=a,t[19]=x):x=t[19];let S;t[20]!==n||t[21]!==h||t[22]!==r?(S=n===`model-selection`&&(0,Q.jsx)(_,{onClick:h,disabled:r,className:`gap-2`,children:r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Finish `,(0,Q.jsx)(f,{className:`h-4 w-4`})]})}),t[20]=n,t[21]=h,t[22]=r,t[23]=S):S=t[23];let C;t[24]!==y||t[25]!==b||t[26]!==x||t[27]!==S?(C=(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[y,b,x,S]}),t[24]=y,t[25]=b,t[26]=x,t[27]=S,t[28]=C):C=t[28];let w;return t[29]!==v||t[30]!==C?(w=(0,Q.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,Q.jsxs)(j,{className:`flex items-center justify-between`,children:[v,C]})}),t[29]=v,t[30]=C,t[31]=w):w=t[31],w}function ge({open:e,onOpenChange:t,onComplete:n}){let[r,i]=(0,Z.useState)(`git-check`),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)([]),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)({}),[_,x]=(0,Z.useState)(!1),[E,D]=(0,Z.useState)(``),[O,k]=(0,Z.useState)(new Set),[j,M]=(0,Z.useState)(!1),[F,R]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{e&&r===`git-check`&&z()},[e,r]),(0,Z.useEffect)(()=>{e&&r===`provider-selection`&&l.length===0&&B()},[e,r,l.length]),(0,Z.useEffect)(()=>{e&&r===`model-selection`&&d&&V()},[e,r,d]);let z=async()=>{c(!0);try{let e=await C();o(e.gitInstalled),e.gitInstalled&&i(`provider-selection`)}catch(e){$.error(`Failed to check git installation:`,e),o(!1)}finally{c(!1)}},B=async()=>{try{let e=await S();if(u(e),e.length>0&&!d){let t=ee(e);t&&(f(t),m(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}},V=async()=>{if(d){M(!0);try{await v(d.name),k(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{M(!1)}}},H=async()=>{if(!d||!p.trim()){D(`Please enter an API key`);return}let e=q(d),t=e.find(e=>!h[e]?.trim());if(t){D(`Please enter ${L(t)}`);return}x(!0),D(``);try{e.length>0&&await w(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await T(d.slug,p),i(`model-selection`)}catch(e){D(e instanceof Error?e.message:`Failed to validate API key`)}finally{x(!1)}},U=async()=>{if(d){R(!0);try{for(let e of O)await y(d.slug,e);await b(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{R(!1)}}},W=async()=>{R(!0);try{await b(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{R(!1)}},G=e=>{f(e),m(e.apiKey??``),g(e.envValues??{}),D(``)},K=(e,t)=>{g(n=>({...n,[e]:t}))},J=()=>{i(`provider-selection`)};function Y(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return(0,Q.jsx)(I,{open:e,onOpenChange:t,children:(0,Q.jsxs)(P,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,children:[(0,Q.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[(0,Q.jsx)(ue,{currentStep:r}),(0,Q.jsx)(N,{children:(0,Q.jsx)(de,{currentStep:r})})]}),(0,Q.jsx)(A,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,Q.jsxs)(`div`,{className:`px-6 py-4`,children:[r===`git-check`&&(0,Q.jsx)(`div`,{className:`space-y-4`,children:(0,Q.jsx)(fe,{gitLoading:s,gitInstalled:a})}),r===`provider-selection`&&(0,Q.jsx)(pe,{selectedProvider:d,onProviderChange:G,apiKey:p,onApiKeyChange:m,validatingKey:_,providerEnvValues:h,onProviderEnvChange:K,keyError:E}),r===`model-selection`&&d&&(0,Q.jsx)(me,{providerSlug:d.slug,modelsLoading:j,onModelsChange:k})]})}),(0,Q.jsx)(he,{currentStep:r,savingOnboarding:F,gitLoading:s,validatingKey:_,apiKey:p,hasProvider:!!d,onSkip:()=>void W(),onBack:Y,onContinue:J,onValidate:()=>void H(),onFinish:()=>void U()})]})})}export{ge as OnboardingDialog,ge 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{L as a,ot as o}from"./dist-BWuYHVi8.js";import{Et as s,ln as c,un as l,y as u}from"./dist-DIjomljy.js";import{t as d}from"./utils-CT-Dw22R.js";import{t as f}from"./button-DeNw35VZ.js";import{Ln as p,xt as m}from"./api-BMo_Lz8f.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{Bn as g,Ft as _,In as v,Ln as y,Nn as b,kn as x}from"./index-DjaVbFDB.js";import{t as S}from"./use-settings-page-loading-BTySlInF.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,s=a(n.name),[u,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{s||p(!1)},[s]);let g=_,v=s&&!u?`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=d(`font-mono`,s&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==v||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(g,{type:v,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]=v,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==s||t[13]!==i||t[14]!==p||t[15]!==u?(E=s?(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,children:u?(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]=s,t[13]=i,t[14]=p,t[15]=u,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({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[a,c]=(0,w.useState)([]),[l,d]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let t=(await m(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),c(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{d(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[l]);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())){D(!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 p(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),c(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}return e?(0,T.jsx)(b,{loading:k,children:(0,T.jsxs)(g,{className:`shrink-0`,children:[(0,T.jsx)(x,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(f,{variant:`ghost`,size:`sm`,onClick:A,disabled:l,children:`Add variable`}),(0,T.jsx)(f,{onClick:()=>void F(),disabled:C||l,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(y,{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)(_,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:l}),(0,T.jsx)(E,{entry:e,index:t,loading:l,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:l||C,children:(0,T.jsx)(u,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(v,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O 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{L as a,ot as o}from"./dist-DjiNKpTV.js";import{Et as s,cn as c,ln as l,y as u}from"./dist-CNOCRPxn.js";import{t as d}from"./utils-CT-Dw22R.js";import{t as f}from"./button-B6HDsfd5.js";import{Rn as p,xt as m}from"./api-D1GxdEEp.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{It as g,Mn as _,On as v,Tn as y,kn as b,xn as x}from"./index-BOB3ZUQs.js";import{t as S}from"./use-settings-page-loading-BTySlInF.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,s=a(n.name),[u,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{s||p(!1)},[s]);let _=g,v=s&&!u?`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=d(`font-mono`,s&&`pr-10`),S;t[3]!==_||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==v||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(_,{type:v,placeholder:h,value:y,onChange:b,className:x,disabled:i}),t[3]=_,t[4]=n.value,t[5]=i,t[6]=h,t[7]=v,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==s||t[13]!==i||t[14]!==p||t[15]!==u?(E=s?(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,children:u?(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]=s,t[13]=i,t[14]=p,t[15]=u,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({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[a,c]=(0,w.useState)([]),[l,d]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let t=(await m(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),c(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{d(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[l]);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())){D(!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 p(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),c(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}return e?(0,T.jsx)(y,{loading:k,children:(0,T.jsxs)(_,{className:`shrink-0`,children:[(0,T.jsx)(x,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(f,{variant:`ghost`,size:`sm`,onClick:A,disabled:l,children:`Add variable`}),(0,T.jsx)(f,{onClick:()=>void F(),disabled:C||l,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(b,{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)(g,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:l}),(0,T.jsx)(E,{entry:e,index:t,loading:l,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:l||C,children:(0,T.jsx)(u,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(v,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O 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{Bt as i,It as a,Jt as o,Kt as s,Lt as c,Rt as l,ot as u,qt as d,zt as f}from"./dist-DjiNKpTV.js";import{Et as p}from"./dist-CNOCRPxn.js";import{t as m}from"./utils-CT-Dw22R.js";import{t as h}from"./button-B6HDsfd5.js";import{$ as g,tt as _,zn as v}from"./api-D1GxdEEp.js";import{t as y}from"./use-toast-xpb5jNtN.js";import{At as b,Dn as x,Mn as S,Mt as C,Nt as w,Pt as T,Tn as E,hn as D,jt as O,kn as k,kt as A,xn as j,yn as M,zt as N}from"./index-BOB3ZUQs.js";import{t as P}from"./use-settings-page-loading-BTySlInF.js";var F=e(n(),1),I=t(),L=r(),R=`__unspecified__`,z=`__default__`;function B(e){let t=(0,I.c)(20),{value:n,onChange:r,enabledModels:s,disabled:u}=e,p=u===void 0?!1:u,m;if(t[0]!==s){m=new Map;for(let e of s){let t=e.provider??`other`,n=m.get(t);n?n.push(e):m.set(t,[e])}t[0]=s,t[1]=m}else m=t[1];let h=m,g;t[2]!==r||t[3]!==n?(g=function(e,t){let i={...n};if(t===R){delete i[e],r(i);return}let a=f(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=g):g=t[4];let _=g,v;t[5]===s?v=t[6]:(v=function(e){if(!e)return;let t=e.provider.toLowerCase();return s.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=s,t[6]=v);let y=v,S;t[7]!==r||t[8]!==n?(S=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===z)delete a.reasoningEffort;else if(o(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=S):S=t[9];let E=S,D;t[10]!==p||t[11]!==s||t[12]!==y||t[13]!==_||t[14]!==E||t[15]!==h||t[16]!==n?(D=l.map(e=>{let t=n[e],r=t?i(t):R,o=y(t)?.supportedReasoningEfforts??[];return(0,L.jsx)(M,{title:c[e],description:a[e],children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsxs)(A,{value:r,onValueChange:t=>_(e,t),disabled:p,children:[(0,L.jsx)(w,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,L.jsx)(T,{placeholder:`Unspecified`})}),(0,L.jsxs)(b,{children:[(0,L.jsx)(O,{value:R,children:`Unspecified`}),s.length>0&&(0,L.jsx)(C,{}),[...h.entries()].map(H)]})]}),t&&o.length>0&&(0,L.jsxs)(A,{value:t.reasoningEffort??z,onValueChange:t=>E(e,t),disabled:p,children:[(0,L.jsx)(w,{id:`model-alias-${e}-reasoning`,className:`w-full min-w-0`,children:(0,L.jsx)(T,{placeholder:`Model default`})}),(0,L.jsxs)(b,{children:[(0,L.jsx)(O,{value:z,children:`Model default`}),(0,L.jsx)(O,{value:`off`,children:d(`off`)}),o.map(V)]})]})]})},e)}),t[10]=p,t[11]=s,t[12]=y,t[13]=_,t[14]=E,t[15]=h,t[16]=n,t[17]=D):D=t[17];let k;return t[18]===D?k=t[19]:(k=(0,L.jsx)(x,{id:`model-aliases`,children:D}),t[18]=D,t[19]=k),k}function V(e){return(0,L.jsx)(O,{value:e,children:d(e)},e)}function H(e){let[t,n]=e;return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:m(u.dropdownGroupHeading,`px-2 py-1.5 uppercase`),children:t}),n.map(e=>{let n=i({provider:e.provider??t,model:e.id});return(0,L.jsx)(O,{value:n,children:D(e.id)},n)})]},t)}function U(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?D(e.id).localeCompare(D(t.id)):n})}function W(){let[e,t]=(0,F.useState)({}),[n,r]=(0,F.useState)({}),[i,a]=(0,F.useState)([]),[o,c]=(0,F.useState)(!0),[l,u]=(0,F.useState)(!1),d=(0,F.useCallback)(async()=>{c(!0);try{let[e,n]=await Promise.all([g(),_().catch(()=>({}))]),i=e.modelAliases??{};a(U(Object.values(n).flat())),t(i),r(i)}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{c(!1)}},[]);(0,F.useEffect)(()=>{d()},[d]);let f=P(`model-aliases`,[o]);function m(){return JSON.stringify(e)!==JSON.stringify(n)}async function b(){if(m()){u(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();s(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await v({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(N)),await d()}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{u(!1)}}}return(0,L.jsx)(E,{loading:f,children:(0,L.jsxs)(S,{className:`shrink-0`,children:[(0,L.jsx)(j,{title:`Model Aliases`,description:`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,L.jsx)(h,{onClick:()=>void b(),disabled:l||o,children:l?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(p,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,L.jsx)(k,{className:`max-w-none pt-6`,children:(0,L.jsx)(B,{value:e,onChange:t,enabledModels:i,disabled:o||l})})]})})}export{W 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{Dt as a,ot as o}from"./dist-BWuYHVi8.js";import{Et as s,Gt as c}from"./dist-DIjomljy.js";import{t as l}from"./utils-CT-Dw22R.js";import{t as u}from"./button-DeNw35VZ.js";import{Bn as d,In as f,Lr as p,yt as m,zn as h}from"./api-BMo_Lz8f.js";import{t as g}from"./use-toast-xpb5jNtN.js";import{An as ee,Bn as te,Dn as _,Fn as ne,Ft as re,In as ie,Ln as ae,Nn as oe,Pt as se,Y as ce,i as le,kn as ue,s as v,vt as de}from"./index-DjaVbFDB.js";import{i as fe}from"./commit-method-fields-CD3PTIox.js";import{a as pe,n as y,r as me,t as b}from"./context-menu-Dx5Jy21w.js";import{t as he}from"./use-settings-page-loading-BTySlInF.js";var x=t(),S=e(n(),1),C=r();function ge(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 _e(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await m(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setValue(n.setupScript??``),t.setValidationScript(n.validationScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalProjectIcon(n.projectIcon??null)}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function w(e,t){try{let n=await ge(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){g({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function ve(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await w(r,t)}finally{URL.revokeObjectURL(r)}}async function ye(e,t,n){n(!0);try{let n=await f(e);n.runCommand?(t(n.runCommand),g({title:`Success`,description:`Suggested: ${n.runCommand}`})):g({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function T(e,t,n){t!==n&&await d(e,t)}async function be(e,t,n,r,i){await h(e,{setupScript:t.trim()||null,validationScript:n.trim()||null,runCommand:r.trim()||null,commitMethod:i})}async function xe(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await h(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function Se(e,t,n){t!==n&&await h(e,{useBuiltInBrowser:t})}async function E(e,t,n){t!==n&&await h(e,{projectIcon:t})}async function Ce(e,t,n,r,i,a){n.setSaving(!0);try{await T(e,t.name,t.originalName),await be(e,t.value,t.validationScript,t.runCmd,t.commitMethod),await xe(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await Se(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),await E(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function we(e){let t=(0,x.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:a}=e;if(n||r.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,C.jsx)(se,{children:`Allowed command patterns`}),t[0]=s):s=t[0];let c;if(t[1]!==i||t[2]!==a||t[3]!==r){let e;t[5]!==i||t[6]!==a?(e=e=>(0,C.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,C.jsx)(`code`,{className:l(o.mono,o.bodyMuted),children:e}),(0,C.jsx)(u,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>a(e),children:`Remove`})]},e),t[5]=i,t[6]=a,t[7]=e):e=t[7],c=r.map(e),t[1]=i,t[2]=a,t[3]=r,t[4]=c}else c=t[4];let d;return t[8]===c?d=t[9]:(d=(0,C.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[s,(0,C.jsx)(`ul`,{className:`space-y-1`,children:c})]}),t[8]=c,t[9]=d),d}function Te(e){let t=(0,x.c)(21),{projectIcon:n,disabled:r,inputRef:i,onFileChange:a,onButtonClick:o,onRemove:s}=e,l;t[0]!==r||t[1]!==i||t[2]!==a?(l=(0,C.jsx)(`input`,{ref:i,type:`file`,accept:`image/*`,className:`sr-only`,onChange:a,disabled:r}),t[0]=r,t[1]=i,t[2]=a,t[3]=l):l=t[3];let u=n?`Change project icon`:`Choose project icon`,d;t[4]===n?d=t[5]:(d=n?(0,C.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,C.jsx)(c,{className:`h-4 w-4 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=d);let f;t[6]!==r||t[7]!==o||t[8]!==u||t[9]!==d?(f=(0,C.jsx)(pe,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,className:`flex h-8 w-8 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:o,disabled:r,"aria-label":u,children:d})}),t[6]=r,t[7]=o,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]!==r||t[12]!==s||t[13]!==n?(p=n&&(0,C.jsx)(y,{children:(0,C.jsx)(me,{disabled:r,onSelect:s,children:`Remove`})}),t[11]=r,t[12]=s,t[13]=n,t[14]=p):p=t[14];let m;t[15]!==f||t[16]!==p?(m=(0,C.jsxs)(b,{children:[f,p]}),t[15]=f,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==l||t[19]!==m?(h=(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,m]}),t[18]=l,t[19]=m,t[20]=h):h=t[20],h}function Ee(e){let t=(0,x.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{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,C.jsx)(u,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function De(e,t,n){let r=(0,x.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return w(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!p())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,S.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return ve(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){p()&&t?v(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 Oe(e){let t=(0,x.c)(117),{projectId:n,onProjectUpdated:r}=e,c=i(),d=le(),[f,p]=(0,S.useState)(``),[m,h]=(0,S.useState)(``),[g,se]=(0,S.useState)(``),[v,pe]=(0,S.useState)(a.PullRequest),[y,me]=(0,S.useState)(``),[b,ge]=(0,S.useState)(!1),[w,ve]=(0,S.useState)(!1),[T,be]=(0,S.useState)(!0),[xe,Se]=(0,S.useState)(``),[E,Oe]=(0,S.useState)(!0),D;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(D=[],t[0]=D):D=t[0];let[O,ke]=(0,S.useState)(D),[Ae,je]=(0,S.useState)(!0),Me;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(Me=[],t[1]=Me):Me=t[1];let[Ne,Pe]=(0,S.useState)(Me),[k,Fe]=(0,S.useState)(!0),[Ie,Le]=(0,S.useState)(!0),[A,Re]=(0,S.useState)(null),[ze,Be]=(0,S.useState)(null),[Ve,He]=(0,S.useState)(null),Ue=(0,S.useRef)(null),We;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(We={setProjectPath:He,setName:p,setValue:h,setRunCmd:se,setCommitMethod:pe,setValidationScript:me,setAllowAllCommands:Oe,setAllowedCommandPatterns:ke,setUseBuiltInBrowser:Fe,setProjectIcon:Re,setOriginalName:Se,setOriginalAllowAllCommands:je,setOriginalAllowedCommandPatterns:Pe,setOriginalUseBuiltInBrowser:Le,setOriginalProjectIcon:Be,setLoading:be,setSaving:ge},t[2]=We):We=t[2];let Ge=We,Ke;t[3]===n?Ke=t[4]:(Ke=()=>_e(n,Ge),t[3]=n,t[4]=Ke);let j=Ke,qe,M;t[5]===n?(qe=t[6],M=t[7]):(qe=()=>{n&&be(!0)},M=[n],t[5]=n,t[6]=qe,t[7]=M),(0,S.useLayoutEffect)(qe,M);let Je,Ye;t[8]===j?(Je=t[9],Ye=t[10]):(Je=()=>{j()},Ye=[j],t[8]=j,t[9]=Je,t[10]=Ye),(0,S.useEffect)(Je,Ye);let Xe;t[11]===T?Xe=t[12]:(Xe=[T],t[11]=T,t[12]=Xe);let Ze=he(n,Xe),Qe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=function(e){pe(e)},t[13]=Qe):Qe=t[13];let $e=Qe,{handleProjectIconChange:et,handleProjectIconButtonClick:tt}=De(Re,Ve,Ue),nt;t[14]===n?nt=t[15]:(nt=async()=>{n&&await ye(n,se,ve)},t[14]=n,t[15]=nt);let rt=nt,it;t[16]!==E||t[17]!==O||t[18]!==v||t[19]!==j||t[20]!==f||t[21]!==c||t[22]!==r||t[23]!==Ae||t[24]!==Ne||t[25]!==xe||t[26]!==ze||t[27]!==Ie||t[28]!==A||t[29]!==n||t[30]!==g||t[31]!==k||t[32]!==y||t[33]!==m?(it=async()=>{n&&await Ce(n,{name:f,value:m,runCmd:g,commitMethod:v,validationScript:y,allowAllCommands:E,allowedCommandPatterns:O,useBuiltInBrowser:k,projectIcon:A,originalName:xe,originalAllowAllCommands:Ae,originalAllowedCommandPatterns:Ne,originalUseBuiltInBrowser:Ie,originalProjectIcon:ze},Ge,r,c,j)},t[16]=E,t[17]=O,t[18]=v,t[19]=j,t[20]=f,t[21]=c,t[22]=r,t[23]=Ae,t[24]=Ne,t[25]=xe,t[26]=ze,t[27]=Ie,t[28]=A,t[29]=n,t[30]=g,t[31]=k,t[32]=y,t[33]=m,t[34]=it):it=t[34];let at=it,N=T||b,ot=T||w;if(!n){let e;return t[35]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsx)(ie,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[35]=e):e=t[35],e}let P;t[36]!==N||t[37]!==at||t[38]!==b?(P=(0,C.jsx)(ue,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,C.jsx)(Ee,{saving:b,disabled:N,onClick:at}),sticky:!1}),t[36]=N,t[37]=at,t[38]=b,t[39]=P):P=t[39];let st;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(st=e=>p(e.target.value),t[40]=st):st=t[40];let F;t[41]!==T||t[42]!==f?(F=(0,C.jsx)(_,{title:`Project Name`,children:(0,C.jsx)(re,{id:`projectName`,value:f,onChange:st,placeholder:`Enter project name`,disabled:T})}),t[41]=T,t[42]=f,t[43]=F):F=t[43];let ct;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ct=e=>h(e.target.value),t[44]=ct):ct=t[44];let I;t[45]!==T||t[46]!==m?(I=(0,C.jsx)(_,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,C.jsx)(ce,{id:`setupScript`,value:m,onChange:ct,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:T})}),t[45]=T,t[46]=m,t[47]=I):I=t[47];let lt;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(lt=e=>me(e.target.value),t[48]=lt):lt=t[48];let L;t[49]!==T||t[50]!==y?(L=(0,C.jsx)(_,{title:`Validation Script`,description:`This script runs after each chat response. If it fails, Tarsk will try to fix issues automatically up to the retry limit.`,children:(0,C.jsx)(ce,{id:`validationScript`,value:y,onChange:lt,placeholder:`e.g. npm run lint && npm test`,className:`font-mono min-h-[80px] resize-none`,disabled:T})}),t[49]=T,t[50]=y,t[51]=L):L=t[51];let ut;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ut=e=>se(e.target.value),t[52]=ut):ut=t[52];let R;t[53]!==T||t[54]!==g?(R=(0,C.jsx)(re,{id:`runCommand`,value:g,onChange:ut,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:T}),t[53]=T,t[54]=g,t[55]=R):R=t[55];let z;t[56]===w?z=t[57]:(z=w?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[56]=w,t[57]=z);let B;t[58]!==rt||t[59]!==ot||t[60]!==z?(B=(0,C.jsx)(u,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:rt,disabled:ot,children:z}),t[58]=rt,t[59]=ot,t[60]=z,t[61]=B):B=t[61];let V;t[62]!==R||t[63]!==B?(V=(0,C.jsx)(_,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,C.jsxs)(`div`,{className:`relative`,children:[R,B]})}),t[62]=R,t[63]=B,t[64]=V):V=t[64];let dt=v===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,H;t[65]!==v||t[66]!==T?(H=(0,C.jsx)(fe,{commitMethod:v,onCommitMethodChange:$e,disabled:T}),t[65]=v,t[66]=T,t[67]=H):H=t[67];let U;t[68]!==dt||t[69]!==H?(U=(0,C.jsx)(_,{title:`Commit Method`,description:dt,controlLayout:`row-end`,action:H}),t[68]=dt,t[69]=H,t[70]=U):U=t[70];let ft=!E,pt;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(pt=e=>Oe(!e),t[71]=pt):pt=t[71];let W;t[72]!==T||t[73]!==ft?(W=(0,C.jsx)(de,{value:ft,onChange:pt,disabled:T,ariaLabel:`Confirm Commands`}),t[72]=T,t[73]=ft,t[74]=W):W=t[74];let G;t[75]!==E||t[76]!==O||t[77]!==N?(G=!E&&O.length>0&&(0,C.jsx)(we,{allowAllCommands:E,patterns:O,disabled:N,onRemove:e=>ke(t=>t.filter(t=>t!==e))}),t[75]=E,t[76]=O,t[77]=N,t[78]=G):G=t[78];let K;t[79]!==W||t[80]!==G?(K=(0,C.jsx)(_,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:W,children:G}),t[79]=W,t[80]=G,t[81]=K):K=t[81];let q;t[82]!==N||t[83]!==k?(q=(0,C.jsx)(_,{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,C.jsx)(de,{value:k,onChange:Fe,disabled:N,ariaLabel:`Built-in Browser`})}),t[82]=N,t[83]=k,t[84]=q):q=t[84];let mt;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(mt=()=>Re(null),t[85]=mt):mt=t[85];let J;t[86]!==N||t[87]!==tt||t[88]!==et||t[89]!==A?(J=(0,C.jsx)(_,{title:`Project Icon`,description:`Choose an image to use for this project on the Projects page. It will be center-cropped to a 256×256 PNG.`,controlLayout:`row-end`,action:(0,C.jsx)(Te,{projectIcon:A,disabled:N,inputRef:Ue,onFileChange:et,onButtonClick:tt,onRemove:mt})}),t[86]=N,t[87]=tt,t[88]=et,t[89]=A,t[90]=J):J=t[90];let Y;t[91]!==F||t[92]!==I||t[93]!==L||t[94]!==V||t[95]!==U||t[96]!==K||t[97]!==q||t[98]!==J?(Y=(0,C.jsx)(ae,{className:`max-w-none pt-6`,children:(0,C.jsxs)(ne,{children:[F,I,L,V,U,K,q,J]})}),t[91]=F,t[92]=I,t[93]=L,t[94]=V,t[95]=U,t[96]=K,t[97]=q,t[98]=J,t[99]=Y):Y=t[99];let X;t[100]!==P||t[101]!==Y?(X=(0,C.jsxs)(te,{className:`shrink-0`,children:[P,Y]}),t[100]=P,t[101]=Y,t[102]=X):X=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,C.jsx)(ee,{title:`Delete Project`}),t[103]=ht):ht=t[103];let gt;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(gt=(0,C.jsx)(`div`,{className:`min-w-0`,children:(0,C.jsx)(`p`,{className:l(o.bodyMuted),children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`})}),t[104]=gt):gt=t[104];let Z;t[105]!==f||t[106]!==n||t[107]!==d?(Z=()=>{n&&d({id:n,name:f})},t[105]=f,t[106]=n,t[107]=d,t[108]=Z):Z=t[108];let Q;t[109]!==N||t[110]!==Z?(Q=(0,C.jsxs)(te,{className:`shrink-0 rounded-none border-t border-table-border pt-6 mt-8`,children:[ht,(0,C.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[gt,(0,C.jsx)(u,{type:`button`,variant:`destructive`,disabled:N,onClick:Z,children:`Delete Project`})]})]}),t[109]=N,t[110]=Z,t[111]=Q):Q=t[111];let $;return t[112]!==Ze||t[113]!==n||t[114]!==X||t[115]!==Q?($=(0,C.jsxs)(oe,{loading:Ze,children:[X,Q]},n),t[112]=Ze,t[113]=n,t[114]=X,t[115]=Q,t[116]=$):$=t[116],$}export{Oe 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,ot as o}from"./dist-DjiNKpTV.js";import{Et as s,Wt as c}from"./dist-CNOCRPxn.js";import{t as l}from"./utils-CT-Dw22R.js";import{t as u}from"./button-B6HDsfd5.js";import{Bn as d,Ln as f,Vn as p,yt as m,zr as h}from"./api-D1GxdEEp.js";import{t as g}from"./use-toast-xpb5jNtN.js";import{Dn as ee,Ft as te,It as ne,Mn as re,On as ie,Sn as ae,Tn as oe,X as se,i as ce,kn as le,s as _,xn as ue,yn as v,yt as de}from"./index-BOB3ZUQs.js";import{i as fe}from"./commit-method-fields-BihSf23f.js";import{a as pe,n as y,r as me,t as b}from"./context-menu-e5jeH0Jl.js";import{t as he}from"./use-settings-page-loading-BTySlInF.js";var x=t(),S=e(n(),1),C=r();function ge(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 _e(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await m(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setValue(n.setupScript??``),t.setValidationScript(n.validationScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalProjectIcon(n.projectIcon??null)}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function w(e,t){try{let n=await ge(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){g({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function ve(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await w(r,t)}finally{URL.revokeObjectURL(r)}}async function ye(e,t,n){n(!0);try{let n=await f(e);n.runCommand?(t(n.runCommand),g({title:`Success`,description:`Suggested: ${n.runCommand}`})):g({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function T(e,t,n){t!==n&&await p(e,t)}async function be(e,t,n,r,i){await d(e,{setupScript:t.trim()||null,validationScript:n.trim()||null,runCommand:r.trim()||null,commitMethod:i})}async function xe(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await d(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function Se(e,t,n){t!==n&&await d(e,{useBuiltInBrowser:t})}async function E(e,t,n){t!==n&&await d(e,{projectIcon:t})}async function Ce(e,t,n,r,i,a){n.setSaving(!0);try{await T(e,t.name,t.originalName),await be(e,t.value,t.validationScript,t.runCmd,t.commitMethod),await xe(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await Se(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),await E(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function we(e){let t=(0,x.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:a}=e;if(n||r.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,C.jsx)(te,{children:`Allowed command patterns`}),t[0]=s):s=t[0];let c;if(t[1]!==i||t[2]!==a||t[3]!==r){let e;t[5]!==i||t[6]!==a?(e=e=>(0,C.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,C.jsx)(`code`,{className:l(o.mono,o.bodyMuted),children:e}),(0,C.jsx)(u,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>a(e),children:`Remove`})]},e),t[5]=i,t[6]=a,t[7]=e):e=t[7],c=r.map(e),t[1]=i,t[2]=a,t[3]=r,t[4]=c}else c=t[4];let d;return t[8]===c?d=t[9]:(d=(0,C.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[s,(0,C.jsx)(`ul`,{className:`space-y-1`,children:c})]}),t[8]=c,t[9]=d),d}function Te(e){let t=(0,x.c)(21),{projectIcon:n,disabled:r,inputRef:i,onFileChange:a,onButtonClick:o,onRemove:s}=e,l;t[0]!==r||t[1]!==i||t[2]!==a?(l=(0,C.jsx)(`input`,{ref:i,type:`file`,accept:`image/*`,className:`sr-only`,onChange:a,disabled:r}),t[0]=r,t[1]=i,t[2]=a,t[3]=l):l=t[3];let u=n?`Change project icon`:`Choose project icon`,d;t[4]===n?d=t[5]:(d=n?(0,C.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,C.jsx)(c,{className:`h-4 w-4 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=d);let f;t[6]!==r||t[7]!==o||t[8]!==u||t[9]!==d?(f=(0,C.jsx)(pe,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,className:`flex h-8 w-8 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:o,disabled:r,"aria-label":u,children:d})}),t[6]=r,t[7]=o,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]!==r||t[12]!==s||t[13]!==n?(p=n&&(0,C.jsx)(y,{children:(0,C.jsx)(me,{disabled:r,onSelect:s,children:`Remove`})}),t[11]=r,t[12]=s,t[13]=n,t[14]=p):p=t[14];let m;t[15]!==f||t[16]!==p?(m=(0,C.jsxs)(b,{children:[f,p]}),t[15]=f,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==l||t[19]!==m?(h=(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,m]}),t[18]=l,t[19]=m,t[20]=h):h=t[20],h}function Ee(e){let t=(0,x.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{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,C.jsx)(u,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function De(e,t,n){let r=(0,x.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return w(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!h())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,S.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return ve(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){h()&&t?_(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 Oe(e){let t=(0,x.c)(117),{projectId:n,onProjectUpdated:r}=e,c=i(),d=ce(),[f,p]=(0,S.useState)(``),[m,h]=(0,S.useState)(``),[g,te]=(0,S.useState)(``),[_,pe]=(0,S.useState)(a.PullRequest),[y,me]=(0,S.useState)(``),[b,ge]=(0,S.useState)(!1),[w,ve]=(0,S.useState)(!1),[T,be]=(0,S.useState)(!0),[xe,Se]=(0,S.useState)(``),[E,Oe]=(0,S.useState)(!0),D;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(D=[],t[0]=D):D=t[0];let[O,ke]=(0,S.useState)(D),[Ae,je]=(0,S.useState)(!0),Me;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(Me=[],t[1]=Me):Me=t[1];let[Ne,Pe]=(0,S.useState)(Me),[k,Fe]=(0,S.useState)(!0),[Ie,Le]=(0,S.useState)(!0),[A,Re]=(0,S.useState)(null),[ze,Be]=(0,S.useState)(null),[Ve,He]=(0,S.useState)(null),Ue=(0,S.useRef)(null),We;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(We={setProjectPath:He,setName:p,setValue:h,setRunCmd:te,setCommitMethod:pe,setValidationScript:me,setAllowAllCommands:Oe,setAllowedCommandPatterns:ke,setUseBuiltInBrowser:Fe,setProjectIcon:Re,setOriginalName:Se,setOriginalAllowAllCommands:je,setOriginalAllowedCommandPatterns:Pe,setOriginalUseBuiltInBrowser:Le,setOriginalProjectIcon:Be,setLoading:be,setSaving:ge},t[2]=We):We=t[2];let Ge=We,Ke;t[3]===n?Ke=t[4]:(Ke=()=>_e(n,Ge),t[3]=n,t[4]=Ke);let j=Ke,qe,M;t[5]===n?(qe=t[6],M=t[7]):(qe=()=>{n&&be(!0)},M=[n],t[5]=n,t[6]=qe,t[7]=M),(0,S.useLayoutEffect)(qe,M);let Je,Ye;t[8]===j?(Je=t[9],Ye=t[10]):(Je=()=>{j()},Ye=[j],t[8]=j,t[9]=Je,t[10]=Ye),(0,S.useEffect)(Je,Ye);let Xe;t[11]===T?Xe=t[12]:(Xe=[T],t[11]=T,t[12]=Xe);let Ze=he(n,Xe),Qe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=function(e){pe(e)},t[13]=Qe):Qe=t[13];let $e=Qe,{handleProjectIconChange:et,handleProjectIconButtonClick:tt}=De(Re,Ve,Ue),nt;t[14]===n?nt=t[15]:(nt=async()=>{n&&await ye(n,te,ve)},t[14]=n,t[15]=nt);let rt=nt,it;t[16]!==E||t[17]!==O||t[18]!==_||t[19]!==j||t[20]!==f||t[21]!==c||t[22]!==r||t[23]!==Ae||t[24]!==Ne||t[25]!==xe||t[26]!==ze||t[27]!==Ie||t[28]!==A||t[29]!==n||t[30]!==g||t[31]!==k||t[32]!==y||t[33]!==m?(it=async()=>{n&&await Ce(n,{name:f,value:m,runCmd:g,commitMethod:_,validationScript:y,allowAllCommands:E,allowedCommandPatterns:O,useBuiltInBrowser:k,projectIcon:A,originalName:xe,originalAllowAllCommands:Ae,originalAllowedCommandPatterns:Ne,originalUseBuiltInBrowser:Ie,originalProjectIcon:ze},Ge,r,c,j)},t[16]=E,t[17]=O,t[18]=_,t[19]=j,t[20]=f,t[21]=c,t[22]=r,t[23]=Ae,t[24]=Ne,t[25]=xe,t[26]=ze,t[27]=Ie,t[28]=A,t[29]=n,t[30]=g,t[31]=k,t[32]=y,t[33]=m,t[34]=it):it=t[34];let at=it,N=T||b,ot=T||w;if(!n){let e;return t[35]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsx)(ie,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[35]=e):e=t[35],e}let P;t[36]!==N||t[37]!==at||t[38]!==b?(P=(0,C.jsx)(ue,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,C.jsx)(Ee,{saving:b,disabled:N,onClick:at}),sticky:!1}),t[36]=N,t[37]=at,t[38]=b,t[39]=P):P=t[39];let st;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(st=e=>p(e.target.value),t[40]=st):st=t[40];let F;t[41]!==T||t[42]!==f?(F=(0,C.jsx)(v,{title:`Project Name`,children:(0,C.jsx)(ne,{id:`projectName`,value:f,onChange:st,placeholder:`Enter project name`,disabled:T})}),t[41]=T,t[42]=f,t[43]=F):F=t[43];let ct;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ct=e=>h(e.target.value),t[44]=ct):ct=t[44];let I;t[45]!==T||t[46]!==m?(I=(0,C.jsx)(v,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,C.jsx)(se,{id:`setupScript`,value:m,onChange:ct,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:T})}),t[45]=T,t[46]=m,t[47]=I):I=t[47];let lt;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(lt=e=>me(e.target.value),t[48]=lt):lt=t[48];let L;t[49]!==T||t[50]!==y?(L=(0,C.jsx)(v,{title:`Validation Script`,description:`This script runs after each chat response. If it fails, Tarsk will try to fix issues automatically up to the retry limit.`,children:(0,C.jsx)(se,{id:`validationScript`,value:y,onChange:lt,placeholder:`e.g. npm run lint && npm test`,className:`font-mono min-h-[80px] resize-none`,disabled:T})}),t[49]=T,t[50]=y,t[51]=L):L=t[51];let ut;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ut=e=>te(e.target.value),t[52]=ut):ut=t[52];let R;t[53]!==T||t[54]!==g?(R=(0,C.jsx)(ne,{id:`runCommand`,value:g,onChange:ut,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:T}),t[53]=T,t[54]=g,t[55]=R):R=t[55];let z;t[56]===w?z=t[57]:(z=w?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[56]=w,t[57]=z);let B;t[58]!==rt||t[59]!==ot||t[60]!==z?(B=(0,C.jsx)(u,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:rt,disabled:ot,children:z}),t[58]=rt,t[59]=ot,t[60]=z,t[61]=B):B=t[61];let V;t[62]!==R||t[63]!==B?(V=(0,C.jsx)(v,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,C.jsxs)(`div`,{className:`relative`,children:[R,B]})}),t[62]=R,t[63]=B,t[64]=V):V=t[64];let dt=_===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,H;t[65]!==_||t[66]!==T?(H=(0,C.jsx)(fe,{commitMethod:_,onCommitMethodChange:$e,disabled:T}),t[65]=_,t[66]=T,t[67]=H):H=t[67];let U;t[68]!==dt||t[69]!==H?(U=(0,C.jsx)(v,{title:`Commit Method`,description:dt,controlLayout:`row-end`,action:H}),t[68]=dt,t[69]=H,t[70]=U):U=t[70];let ft=!E,pt;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(pt=e=>Oe(!e),t[71]=pt):pt=t[71];let W;t[72]!==T||t[73]!==ft?(W=(0,C.jsx)(de,{value:ft,onChange:pt,disabled:T,ariaLabel:`Confirm Commands`}),t[72]=T,t[73]=ft,t[74]=W):W=t[74];let G;t[75]!==E||t[76]!==O||t[77]!==N?(G=!E&&O.length>0&&(0,C.jsx)(we,{allowAllCommands:E,patterns:O,disabled:N,onRemove:e=>ke(t=>t.filter(t=>t!==e))}),t[75]=E,t[76]=O,t[77]=N,t[78]=G):G=t[78];let K;t[79]!==W||t[80]!==G?(K=(0,C.jsx)(v,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:W,children:G}),t[79]=W,t[80]=G,t[81]=K):K=t[81];let q;t[82]!==N||t[83]!==k?(q=(0,C.jsx)(v,{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,C.jsx)(de,{value:k,onChange:Fe,disabled:N,ariaLabel:`Built-in Browser`})}),t[82]=N,t[83]=k,t[84]=q):q=t[84];let mt;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(mt=()=>Re(null),t[85]=mt):mt=t[85];let J;t[86]!==N||t[87]!==tt||t[88]!==et||t[89]!==A?(J=(0,C.jsx)(v,{title:`Project Icon`,description:`Choose an image to use for this project on the Projects page. It will be center-cropped to a 256×256 PNG.`,controlLayout:`row-end`,action:(0,C.jsx)(Te,{projectIcon:A,disabled:N,inputRef:Ue,onFileChange:et,onButtonClick:tt,onRemove:mt})}),t[86]=N,t[87]=tt,t[88]=et,t[89]=A,t[90]=J):J=t[90];let Y;t[91]!==F||t[92]!==I||t[93]!==L||t[94]!==V||t[95]!==U||t[96]!==K||t[97]!==q||t[98]!==J?(Y=(0,C.jsx)(le,{className:`max-w-none pt-6`,children:(0,C.jsxs)(ee,{children:[F,I,L,V,U,K,q,J]})}),t[91]=F,t[92]=I,t[93]=L,t[94]=V,t[95]=U,t[96]=K,t[97]=q,t[98]=J,t[99]=Y):Y=t[99];let X;t[100]!==P||t[101]!==Y?(X=(0,C.jsxs)(re,{className:`shrink-0`,children:[P,Y]}),t[100]=P,t[101]=Y,t[102]=X):X=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,C.jsx)(ae,{title:`Delete Project`}),t[103]=ht):ht=t[103];let gt;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(gt=(0,C.jsx)(`div`,{className:`min-w-0`,children:(0,C.jsx)(`p`,{className:l(o.bodyMuted),children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`})}),t[104]=gt):gt=t[104];let Z;t[105]!==f||t[106]!==n||t[107]!==d?(Z=()=>{n&&d({id:n,name:f})},t[105]=f,t[106]=n,t[107]=d,t[108]=Z):Z=t[108];let Q;t[109]!==N||t[110]!==Z?(Q=(0,C.jsxs)(re,{className:`shrink-0 rounded-none border-t border-table-border pt-6 mt-8`,children:[ht,(0,C.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[gt,(0,C.jsx)(u,{type:`button`,variant:`destructive`,disabled:N,onClick:Z,children:`Delete Project`})]})]}),t[109]=N,t[110]=Z,t[111]=Q):Q=t[111];let $;return t[112]!==Ze||t[113]!==n||t[114]!==X||t[115]!==Q?($=(0,C.jsxs)(oe,{loading:Ze,children:[X,Q]},n),t[112]=Ze,t[113]=n,t[114]=X,t[115]=Q,t[116]=$):$=t[116],$}export{Oe 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{X as a,ot as o}from"./dist-BWuYHVi8.js";import{Et as s}from"./dist-DIjomljy.js";import{t as c}from"./utils-CT-Dw22R.js";import{t as l}from"./button-DeNw35VZ.js";import{yt as u,zn as d}from"./api-BMo_Lz8f.js";import{t as f}from"./use-toast-xpb5jNtN.js";import{Bn as p,Dn as m,In as h,Ln as g,Nn as _,kn as v,vt as y}from"./index-DjaVbFDB.js";import{t as b}from"./use-settings-page-loading-BTySlInF.js";var x=e(n(),1),S=t(),C=r(),w=a(),T=Math.ceil(w.length/2),E=[w.slice(0,T),w.slice(T)];function D(e){let t=(0,S.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,s;t[0]!==a||t[1]!==n.name?(s=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=s):s=t[2];let l;t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.displayName?(l=(0,C.jsx)(y,{value:r,onChange:s,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=s,t[6]=n.displayName,t[7]=l):l=t[7];let u;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=c(o.body,`truncate`),t[8]=u):u=t[8];let d;t[9]===n.displayName?d=t[10]:(d=(0,C.jsx)(`span`,{className:u,children:n.displayName}),t[9]=n.displayName,t[10]=d);let f;return t[11]!==l||t[12]!==d?(f=(0,C.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[l,d]}),t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function O(e){let t=(0,S.c)(13),{tools:n,disabledTools:r,disabled:i,forceEnabledTools: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,C.jsx)(D,{tool:e,enabled:!r.includes(e.name),disabled:i||a.has(e.name),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,C.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function k(e){let t=(0,S.c)(23),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=new Set((a??[]).map(A)),t[0]=a,t[1]=s);let c=s,l;t[2]!==n||t[3]!==c||t[4]!==r?(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())}},t[2]=n,t[3]=c,t[4]=r,t[5]=l):l=t[5];let u=l,d;t[6]!==o||t[7]!==n||t[8]!==c||t[9]!==u?(d=w.map(e=>(0,C.jsx)(D,{tool:e,enabled:!n.includes(e.name),disabled:o||c.has(e.name),onToggle:u},e.name)),t[6]=o,t[7]=n,t[8]=c,t[9]=u,t[10]=d):d=t[10];let f;t[11]===d?f=t[12]:(f=(0,C.jsx)(`div`,{className:`divide-y divide-table-border @md/settings-page:hidden`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==u?(p=E.map((e,t)=>(0,C.jsx)(O,{tools:e,disabledTools:n,disabled:o,forceEnabledTools:c,onToggle:u},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=u,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,C.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,C.jsxs)(C.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function A(e){return e.toLowerCase()}function j({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,x.useState)([]),[o,c]=(0,x.useState)([]),[S,w]=(0,x.useState)(!1),[T,E]=(0,x.useState)(!1),[D,O]=(0,x.useState)(!0),[A,j]=(0,x.useState)(!1),M=(0,x.useCallback)(async()=>{if(!e){O(!1);return}O(!0);try{let t=await u(e),n=t.disabledTools??[],r=t.smartJsEnabled===!0;a(n),c(n),w(r),E(r)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{O(!1)}},[e]);(0,x.useLayoutEffect)(()=>{e&&O(!0)},[e]),(0,x.useEffect)(()=>{M()},[M]);let N=b(e,[D]);function P(){return JSON.stringify([...r].sort())!==JSON.stringify([...o].sort())}function F(){return P()||S!==T}async function I(){if(!(!e||!F())){j(!0);try{let i={};P()&&(i.disabledTools=r.length>0?r:null),S!==T&&(i.smartJsEnabled=S),await d(e,i),c(r),E(S),t&&await t(),await M(),n(`/`)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{j(!1)}}}function L(e){w(e),e&&a(e=>e.filter(e=>e!==`run_js`))}return e?(0,C.jsx)(_,{loading:N,children:(0,C.jsxs)(p,{className:`shrink-0`,children:[(0,C.jsx)(v,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,C.jsx)(l,{onClick:()=>void I(),disabled:A||D,children:A?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,C.jsxs)(g,{className:`max-w-none pt-6`,children:[(0,C.jsx)(m,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,C.jsx)(y,{value:S,onChange:L,disabled:D||A,ariaLabel:`Smart JS`})}),(0,C.jsx)(`div`,{className:`mt-8`,children:(0,C.jsx)(k,{disabledTools:r,onChange:a,disabled:D||A,forceEnabledTools:S?[`run_js`]:void 0})})]})]})}):(0,C.jsx)(h,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{j 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{X as a,ot as o}from"./dist-DjiNKpTV.js";import{Et as s}from"./dist-CNOCRPxn.js";import{t as c}from"./utils-CT-Dw22R.js";import{t as l}from"./button-B6HDsfd5.js";import{Bn as u,yt as d}from"./api-D1GxdEEp.js";import{t as f}from"./use-toast-xpb5jNtN.js";import{Mn as p,On as m,Tn as h,kn as g,xn as _,yn as v,yt as y}from"./index-BOB3ZUQs.js";import{t as b}from"./use-settings-page-loading-BTySlInF.js";var x=e(n(),1),S=t(),C=r(),w=a(),T=Math.ceil(w.length/2),E=[w.slice(0,T),w.slice(T)];function D(e){let t=(0,S.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,s;t[0]!==a||t[1]!==n.name?(s=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=s):s=t[2];let l;t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.displayName?(l=(0,C.jsx)(y,{value:r,onChange:s,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=s,t[6]=n.displayName,t[7]=l):l=t[7];let u;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=c(o.body,`truncate`),t[8]=u):u=t[8];let d;t[9]===n.displayName?d=t[10]:(d=(0,C.jsx)(`span`,{className:u,children:n.displayName}),t[9]=n.displayName,t[10]=d);let f;return t[11]!==l||t[12]!==d?(f=(0,C.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[l,d]}),t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function O(e){let t=(0,S.c)(13),{tools:n,disabledTools:r,disabled:i,forceEnabledTools: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,C.jsx)(D,{tool:e,enabled:!r.includes(e.name),disabled:i||a.has(e.name),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,C.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function k(e){let t=(0,S.c)(23),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=new Set((a??[]).map(A)),t[0]=a,t[1]=s);let c=s,l;t[2]!==n||t[3]!==c||t[4]!==r?(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())}},t[2]=n,t[3]=c,t[4]=r,t[5]=l):l=t[5];let u=l,d;t[6]!==o||t[7]!==n||t[8]!==c||t[9]!==u?(d=w.map(e=>(0,C.jsx)(D,{tool:e,enabled:!n.includes(e.name),disabled:o||c.has(e.name),onToggle:u},e.name)),t[6]=o,t[7]=n,t[8]=c,t[9]=u,t[10]=d):d=t[10];let f;t[11]===d?f=t[12]:(f=(0,C.jsx)(`div`,{className:`divide-y divide-table-border @md/settings-page:hidden`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==u?(p=E.map((e,t)=>(0,C.jsx)(O,{tools:e,disabledTools:n,disabled:o,forceEnabledTools:c,onToggle:u},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=u,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,C.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,C.jsxs)(C.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function A(e){return e.toLowerCase()}function j({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,x.useState)([]),[o,c]=(0,x.useState)([]),[S,w]=(0,x.useState)(!1),[T,E]=(0,x.useState)(!1),[D,O]=(0,x.useState)(!0),[A,j]=(0,x.useState)(!1),M=(0,x.useCallback)(async()=>{if(!e){O(!1);return}O(!0);try{let t=await d(e),n=t.disabledTools??[],r=t.smartJsEnabled===!0;a(n),c(n),w(r),E(r)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{O(!1)}},[e]);(0,x.useLayoutEffect)(()=>{e&&O(!0)},[e]),(0,x.useEffect)(()=>{M()},[M]);let N=b(e,[D]);function P(){return JSON.stringify([...r].sort())!==JSON.stringify([...o].sort())}function F(){return P()||S!==T}async function I(){if(!(!e||!F())){j(!0);try{let i={};P()&&(i.disabledTools=r.length>0?r:null),S!==T&&(i.smartJsEnabled=S),await u(e,i),c(r),E(S),t&&await t(),await M(),n(`/`)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{j(!1)}}}function L(e){w(e),e&&a(e=>e.filter(e=>e!==`run_js`))}return e?(0,C.jsx)(h,{loading:N,children:(0,C.jsxs)(p,{className:`shrink-0`,children:[(0,C.jsx)(_,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,C.jsx)(l,{onClick:()=>void I(),disabled:A||D,children:A?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,C.jsxs)(g,{className:`max-w-none pt-6`,children:[(0,C.jsx)(v,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,C.jsx)(y,{value:S,onChange:L,disabled:D||A,ariaLabel:`Smart JS`})}),(0,C.jsx)(`div`,{className:`mt-8`,children:(0,C.jsx)(k,{disabledTools:r,onChange:a,disabled:D||A,forceEnabledTools:S?[`run_js`]:void 0})})]})]})}):(0,C.jsx)(m,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{j 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{G as o,S as s,at as c,ot as l}from"./dist-DjiNKpTV.js";import{Q as u,n as d}from"./store-CHF6tOp2.js";import{$ as f,Et as p,cn as m,jt as h,kn as g,ln as _,q as v,y}from"./dist-CNOCRPxn.js";import{n as b,o as x,t as S}from"./utils-CT-Dw22R.js";import{t as C}from"./button-B6HDsfd5.js";import{B as ee,Et as te,G as ne,L as w,R as re,V as ie,W as ae,an as oe,kt as se,tt as T,vn as ce,yn as le}from"./api-D1GxdEEp.js";import{i as ue,n as E,r as D,t as O}from"./tooltip-BtJG5fZl.js";import{n as de}from"./async-loading-fallback-D2X0o4Qa.js";import{t as k}from"./suspense-resource-DnYnmTbs.js";import{t as A}from"./use-suspense-resource-Dkz6ddFN.js";import{Ct as fe,Dn as j,Dt as M,En as N,I as P,It as F,L as pe,Mn as I,On as me,R as L,bn as R,hn as z,kn as B,o as he,wt as V,xn as H,xt as ge,z as U}from"./index-BOB3ZUQs.js";import{t as W}from"./async-error-boundary-DNJqC4BV.js";import{t as G}from"./sorting-DqwxPMRN.js";import{t as _e}from"./pending-changes-Bn-0ak1d.js";import{o as K}from"./settings-list-BpPbGcpS.js";import{t as q}from"./use-deferred-search-Dgxosq55.js";import{n as J,r as Y,t as X}from"./model-list-controls-CpQjn6i7.js";var Z=t(),Q=e(n(),1),$=r(),ve=x(S(l.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 ye(e){let t=(0,Z.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=S(ve({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}var be=s(`app.use-provider-details.hook`);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({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:n}){let r=d(),[i,a]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(``),[l,f]=(0,Q.useState)(!1),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)([]),[y,b]=(0,Q.useState)(new Set),[x,S]=(0,Q.useState)(new Set),[C,T]=(0,Q.useState)(new Map),{query:ue,setQuery:E,deferredQuery:D}=q(),[O,de]=(0,Q.useState)(`alphabetical`),[k,A]=(0,Q.useState)(`all`),[j,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(``),[F,pe]=(0,Q.useState)(``),[I,me]=(0,Q.useState)(``),[L,R]=(0,Q.useState)(`coding`),[B,he]=(0,Q.useState)([]),[V,H]=(0,Q.useState)(new Set),[ge,U]=(0,Q.useState)(new Set),[W,K]=(0,Q.useState)(new Map),[J,Y]=(0,Q.useState)({}),X=e=>z(e.id);(0,Q.useEffect)(()=>{(async()=>{if(g(``),n&&(t&&n.slug===t||e&&n.name===e)){a(n),me(n.apiKey??``),c(n.apiKey??``),Y(n.envValues??{}),ye(n.slug),Z(n.slug);return}try{let n=xe(await se(),e,t);a(n),me(n?.apiKey??``),c(n?.apiKey??``),Y(n?.envValues??{}),n&&(ye(n.slug),Z(n.slug))}catch(e){g(e instanceof Error?e.message:`Failed to load providers`)}})()},[e,t,n]);let Z=async e=>{m(null);try{let t=await te(e);t.status===`success`&&m(t.balance)}catch(t){be.error(`Failed to load balance for ${e}:`,t)}};function $(){v([]),he([]),b(new Set),S(new Set),H(new Set),U(new Set),T(new Map),K(new Map)}function ve(e){return e instanceof Error?e.message:`Failed to load models from local API`}let ye=async e=>{f(!0),pe(``),E(``),de(`alphabetical`),A(`all`),R(`coding`);try{let[t,n]=await Promise.all([ne(e),ae(e)]);v(t.models),he(n.models);let r=new Set(t.enabledModelIds);b(r),S(r);let i=new Set(n.enabledModelIds);H(i),U(i),T(new Map),K(new Map)}catch(t){be.error(`Failed to load models for ${e}:`,t),$(),pe(ve(t))}finally{f(!1)}};async function Se(e){f(!0),pe(``);try{await oe(e),await ye(e),r({type:u.ConfigUpdated})}catch(t){be.error(`Failed to refresh models for ${e}:`,t),$(),pe(ve(t)),f(!1)}}let Ce=(e,t)=>{i?.name===e&&(c(t),Te(t))},we=(e,t)=>{Y(n=>({...n,[e]:t})),i&&(async()=>{try{await ce({[e]:t}),r({type:u.ConfigUpdated}),P(`${fe(e)} saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save provider settings`);return}o(i.slug)&&e===`LOCAL_API_URL`&&t.trim()&&await Se(i.slug)})()},Te=async e=>{if(!(!i||e===I))try{await le(i.slug,e),r({type:u.ConfigUpdated}),me(e),P(`API key saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save API key`)}},Ee=(e,t)=>{t===`image`?K(t=>{let n=new Map(t),r=V.has(e),i=n.has(e),a=n.get(e),o=!(i?a:r);return o===r?n.delete(e):n.set(e,o),De(e,(n.has(e)?n.get(e):r)??!1,`image`),n}):T(t=>{let n=_e(t,e,y);return De(e,(n.has(e)?n.get(e):y.has(e))??!1,`coding`),n})},De=async(e,t,n=`coding`)=>{if(i)try{n===`image`?(t?(await ee(i.slug,e),H(t=>new Set([...t,e]))):(await w(i.slug,e),H(t=>{let n=new Set(t);return n.delete(e),n})),K(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await ie(i.slug,e),b(t=>new Set([...t,e]))):(await re(i.slug,e),b(t=>{let n=new Set(t);return n.delete(e),n})),T(t=>{let n=new Map(t);return n.delete(e),n})),r({type:u.ConfigUpdated}),P(`Model preferences saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save model changes`)}};async function Oe(e,t=`coding`){let n=t===`image`?B:_,r=t===`image`?V:y;(t===`image`?K:T)(t=>{let i=new Map(t);for(let t of n)r.has(t.id)===e?i.delete(t.id):i.set(t.id,e);return i});for(let i of n)r.has(i.id)!==e&&await De(i.id,e,t)}let ke=s!==void 0&&s.trim().length>0;return{selectedProvider:i,error:h,balance:p,displayApiKey:s,showApiKey:j,setShowApiKey:M,providerEnvValues:J,modelsLoading:l,modelsError:F,saveStatus:N,modelTab:L,setModelTab:R,modelSearchQuery:ue,setModelSearchQuery:E,modelSortBy:O,setModelSortBy:de,modelFilter:k,setModelFilter:A,availableModels:_,enabledModelIds:y,pendingChanges:C,filteredAndSortedModels:(0,Q.useMemo)(()=>G({models:_,query:D,sortBy:O,getDisplayName:X,freeOnly:k===`free`,groupByProvider:!0,getPriority:e=>+!x.has(e.id)}),[_,D,k,x,O,X]),availableImageModels:B,enabledImageModelIds:V,pendingImageChanges:W,filteredAndSortedImageModels:(0,Q.useMemo)(()=>G({models:B,query:D,sortBy:O===`coding-index`||O===`intelligence-by-price`?`alphabetical`:O,getDisplayName:X,freeOnly:k===`free`,groupByProvider:!0,getPriority:e=>+!ge.has(e.id)}),[B,D,k,ge,O,X]),hasApiKey:ke,getModelDisplayName:X,handleUpdateKeyLocal:Ce,handleUpdateProviderEnv:we,refreshLocalProviderModels:Se,handleToggleModel:Ee,handleToggleAllModels:Oe}}function Ce(e){let t=(0,Z.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)(ge,{url:n.url,className:S(l.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 we(e){let t=(0,Z.c)(6),{balance:n}=e;if(n===null)return null;let r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=S(l.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=b(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 Te(e){let t=(0,Z.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=S(l.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(ue,{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)(E,{children:r}),t[3]=r,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,$.jsx)(D,{children:(0,$.jsxs)(O,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Ee(e){let t=(0,Z.c)(10),{provider:n,displayApiKey:r,showApiKey:i,onToggleShowApiKey:a,onUpdateKey:s,providerEnvValues:c,onUpdateEnv:l,modelsLoading:u,onRefreshModels:d}=e,g;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?(g=(0,$.jsx)($.Fragment,{children:n.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(j,{children:[(0,$.jsx)(N,{label:(0,$.jsx)(Te,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(h,{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)(m,{className:`h-4 w-4 text-muted-foreground`})})]})}),V(n).map(e=>(0,$.jsx)(N,{label:(0,$.jsx)(Te,{title:fe(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)(D,{children:(0,$.jsxs)(O,{children:[(0,$.jsx)(ue,{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)(p,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(f,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(E,{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)(R,{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]=g):g=t[9],g}function De(e){let t=(0,Z.c)(22),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:s,onToggle:c}=e,u=r.pricing,d=n===`image`?`image-${r.id}`:r.id,f=r.id,p=!o&&`opacity-25`,m;t[0]===p?m=t[1]:(m=S(`flex cursor-default items-center space-x-3 p-3 transition-colors hover:bg-muted/30`,p),t[0]=p,t[1]=m);let h=!o,g=a??!1,_;t[2]!==r.id||t[3]!==c?(_=()=>c(r.id),t[2]=r.id,t[3]=c,t[4]=_):_=t[4];let v;t[5]!==d||t[6]!==h||t[7]!==g||t[8]!==_?(v=(0,$.jsx)(he,{id:d,disabled:h,checked:g,onCheckedChange:_,className:`mt-0`}),t[5]=d,t[6]=h,t[7]=g,t[8]=_,t[9]=v):v=t[9];let y;t[10]!==d||t[11]!==i||t[12]!==r.coding_index||t[13]!==u||t[14]!==s||t[15]!==n?(y=n===`coding`?(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:S(l.body,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[s&&(0,$.jsx)(Y,{codingIndex:r.coding_index,modelName:i}),u&&(0,$.jsx)(`span`,{className:S(l.caption,`whitespace-nowrap`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${b(u.prompt??0)} in | $${b(u.completion??0)} out`})]})]}):(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:S(l.label,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),u&&(0,$.jsx)(`span`,{className:S(l.caption,`whitespace-nowrap flex-shrink-0`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${b(u.prompt??0)} in | $${b(u.completion??0)} out`})]}),t[10]=d,t[11]=i,t[12]=r.coding_index,t[13]=u,t[14]=s,t[15]=n,t[16]=y):y=t[16];let x;return t[17]!==r.id||t[18]!==m||t[19]!==v||t[20]!==y?(x=(0,$.jsxs)(`div`,{className:m,children:[v,y]},f),t[17]=r.id,t[18]=m,t[19]=v,t[20]=y,t[21]=x):x=t[21],x}function Oe(e){let t=(0,Z.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:a,modelsError:o,hasApiKey:s,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.`,v;return t[0]!==_||t[1]!==u||t[2]!==i||t[3]!==m||t[4]!==s||t[5]!==g||t[6]!==f||t[7]!==r||t[8]!==a||t[9]!==h||t[10]!==d||t[11]!==n?(v=(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)(p,{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:l.bodyMuted,children:_})}):(0,$.jsx)(D,{children:(0,$.jsx)(`div`,{className:S(`grid grid-cols-1 gap-0`,c.tableWrapper),children:i.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:l.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)(De,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:s,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]=s,t[5]=g,t[6]=f,t[7]=r,t[8]=a,t[9]=h,t[10]=d,t[11]=n,t[12]=v):v=t[12],v}function ke(e){let t=(0,Z.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:p}=e,m=n===`coding`,h=m?`select-all-models`:`select-all-image-models`,g=!i&&a.length>0,_=g&&!o&&`opacity-25`,y;t[0]===_?y=t[1]:(y=S(`flex flex-col gap-2 md:flex-row md:items-center`,_),t[0]=_,t[1]=y);let b;t[2]===r?b=t[3]:(b=r?(0,$.jsxs)(L,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(U,{value:`coding`,children:`Coding`}),(0,$.jsx)(U,{value:`image`,children:`Image`})]}):null,t[2]=r,t[3]=b);let x;t[4]!==s||t[5]!==o||t[6]!==m||t[7]!==l||t[8]!==d||t[9]!==a||t[10]!==u||t[11]!==f||t[12]!==p||t[13]!==c||t[14]!==h||t[15]!==g||t[16]!==n?(x=g?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(v,{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)(X,{id:h,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=>{p(e,n)}}),(0,$.jsx)(J,{sortBy:d,showCodingIndex:m,showIntelligenceByPrice:m,onSortByChange:f})]})]}):null,t[4]=s,t[5]=o,t[6]=m,t[7]=l,t[8]=d,t[9]=a,t[10]=u,t[11]=f,t[12]=p,t[13]=c,t[14]=h,t[15]=g,t[16]=n,t[17]=x):x=t[17];let C;return t[18]!==y||t[19]!==b||t[20]!==x?(C=(0,$.jsxs)(`div`,{className:y,children:[b,x]}),t[18]=y,t[19]=b,t[20]=x,t[21]=C):C=t[21],C}function Ae(e){let t=(0,Z.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)(H,{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)(I,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function je(e){let t=(0,Z.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:p,showApiKey:m,setShowApiKey:h,providerEnvValues:_,modelsLoading:v,modelsError:y,saveStatus:b,modelTab:x,setModelTab:ee,modelSearchQuery:te,setModelSearchQuery:ne,modelSortBy:w,setModelSortBy:re,availableModels:ie,enabledModelIds:ae,pendingChanges:oe,filteredAndSortedModels:se,availableImageModels:T,enabledImageModelIds:ce,pendingImageChanges:le,filteredAndSortedImageModels:ue,hasApiKey:E,getModelDisplayName:D,handleUpdateKeyLocal:O,handleUpdateProviderEnv:de,refreshLocalProviderModels:k,handleToggleModel:A,handleToggleAllModels:fe}=Se(l);if(d){let e;t[4]===o?e=t[5]:(e=S(`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)(R,{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:Me,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=S(`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)(g,{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)(me,{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 j;t[23]===o?j=t[24]:(j=S(`h-full min-h-0`,o),t[23]=o,t[24]=j);let M;t[25]!==a||t[26]!==u?(M=(0,$.jsx)(Ce,{provider:u,onBack:a}),t[25]=a,t[26]=u,t[27]=M):M=t[27];let N;t[28]!==h||t[29]!==m?(N=()=>h(!m),t[28]=h,t[29]=m,t[30]=N):N=t[30];let F;t[31]!==p||t[32]!==O||t[33]!==de||t[34]!==v||t[35]!==_||t[36]!==k||t[37]!==u||t[38]!==m||t[39]!==N?(F=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Ee,{provider:u,displayApiKey:p,showApiKey:m,onToggleShowApiKey:N,onUpdateKey:O,providerEnvValues:_,onUpdateEnv:de,modelsLoading:v,onRefreshModels:k})}),t[31]=p,t[32]=O,t[33]=de,t[34]=v,t[35]=_,t[36]=k,t[37]=u,t[38]=m,t[39]=N,t[40]=F):F=t[40];let I;t[41]!==u.name||t[42]!==M||t[43]!==F?(I=(0,$.jsx)(Ae,{title:u.name,description:`Configure API keys and connection settings for this provider.`,action:M,children:F}),t[41]=u.name,t[42]=M,t[43]=F,t[44]=I):I=t[44];let L;t[45]!==ne||t[46]!==re||t[47]!==ee?(L=e=>{ee(e),ne(``),re(`alphabetical`)},t[45]=ne,t[46]=re,t[47]=ee,t[48]=L):L=t[48];let z;t[49]===f?z=t[50]:(z=(0,$.jsx)(we,{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 he=B===`openrouter`,V=x===`coding`?ie:T,H=x===`coding`?ae:ce,ge=x===`coding`?oe:le,U;t[53]!==fe||t[54]!==E||t[55]!==te||t[56]!==w||t[57]!==x||t[58]!==v||t[59]!==ne||t[60]!==re||t[61]!==he||t[62]!==V||t[63]!==H||t[64]!==ge?(U=(0,$.jsx)(ke,{tab:x,showImageTab:he,modelsLoading:v,models:V,hasApiKey:E,enabledModelIds:H,pendingChanges:ge,modelSearchQuery:te,onModelSearchQueryChange:ne,modelSortBy:w,onModelSortByChange:re,onToggleAllModels:fe}),t[53]=fe,t[54]=E,t[55]=te,t[56]=w,t[57]=x,t[58]=v,t[59]=ne,t[60]=re,t[61]=he,t[62]=V,t[63]=H,t[64]=ge,t[65]=U):U=t[65];let W;t[66]===y?W=t[67]:(W=y?(0,$.jsx)(R,{variant:`error`,className:`mb-4`,children:y}):null,t[66]=y,t[67]=W);let G;t[68]!==ie||t[69]!==ae||t[70]!==se||t[71]!==D||t[72]!==A||t[73]!==E||t[74]!==w||t[75]!==y||t[76]!==v||t[77]!==oe||t[78]!==u?(G=(0,$.jsx)(pe,{value:`coding`,children:(0,$.jsx)(Oe,{tab:`coding`,provider:u,models:ie,filteredModels:se,modelsLoading:v,modelsError:y,hasApiKey:E,enabledModelIds:ae,pendingChanges:oe,modelSortBy:w,getModelDisplayName:D,onToggleModel:A})}),t[68]=ie,t[69]=ae,t[70]=se,t[71]=D,t[72]=A,t[73]=E,t[74]=w,t[75]=y,t[76]=v,t[77]=oe,t[78]=u,t[79]=G):G=t[79];let _e;t[80]!==T||t[81]!==ce||t[82]!==ue||t[83]!==D||t[84]!==A||t[85]!==E||t[86]!==w||t[87]!==y||t[88]!==v||t[89]!==le||t[90]!==u?(_e=(0,$.jsx)(pe,{value:`image`,children:(0,$.jsx)(Oe,{tab:`image`,provider:u,models:T,filteredModels:ue,modelsLoading:v,modelsError:y,hasApiKey:E,enabledModelIds:ce,pendingChanges:le,modelSortBy:w,getModelDisplayName:D,onToggleModel:A})}),t[80]=T,t[81]=ce,t[82]=ue,t[83]=D,t[84]=A,t[85]=E,t[86]=w,t[87]=y,t[88]=v,t[89]=le,t[90]=u,t[91]=_e):_e=t[91];let K;t[92]===b?K=t[93]:(K=b?(0,$.jsx)(R,{variant:b.includes(`error`)||b.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:b}):null,t[92]=b,t[93]=K);let q;t[94]!==z||t[95]!==U||t[96]!==W||t[97]!==G||t[98]!==_e||t[99]!==K?(q=(0,$.jsxs)(Ae,{title:`Models`,description:`Enable coding and image models for this provider.`,action:z,tableHeader:U,children:[W,G,_e,K]}),t[94]=z,t[95]=U,t[96]=W,t[97]=G,t[98]=_e,t[99]=K,t[100]=q):q=t[100];let J;t[101]!==x||t[102]!==q||t[103]!==L?(J=(0,$.jsx)(P,{value:x,onValueChange:L,children:q}),t[101]=x,t[102]=q,t[103]=L,t[104]=J):J=t[104];let Y;t[105]!==J||t[106]!==I?(Y=(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:[I,J]})}),t[105]=J,t[106]=I,t[107]=Y):Y=t[107];let X;return t[108]!==Y||t[109]!==j?(X=(0,$.jsx)(`div`,{className:j,children:Y}),t[108]=Y,t[109]=j,t[110]=X):X=t[110],X}function Me(){return window.location.reload()}function Ne(e){return`providers:list:${e}`}async function Pe(){let[e,t]=await Promise.all([se(),T().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Fe=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Ie=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Le(e){let t=(0,Z.c)(9),{title:n,description:r,action:i,children:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,$.jsx)(H,{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)(B,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(I,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Re(e){let t=(0,Z.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=q(),s;t[0]===n?s=t[1]:(s=Ne(n),t[0]=n,t[1]=s);let{providers:c,enabledModelCounts:u}=A(s,Pe),d;if(t[2]!==o||t[3]!==u||t[4]!==c){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=c.filter(Ve).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=c,t[5]=d}else d=t[5];let f=d,p;if(t[10]!==o||t[11]!==c){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),p=c.filter(Be).filter(e).sort(ze),t[10]=o,t[11]=c,t[12]=p}else p=t[12];let m=p,h;t[15]!==i||t[16]!==a?(h=(0,$.jsx)(K,{placeholder:`Search`,value:i,onChange:a,className:`mb-0 w-64`}),t[15]=i,t[16]=a,t[17]=h):h=t[17];let g;t[18]!==f||t[19]!==u||t[20]!==r||t[21]!==i?(g=f.length===0?(0,$.jsx)(`p`,{className:S(l.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:Ie,children:f.map(e=>(0,$.jsx)(Je,{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]=g):g=t[22];let _;t[23]!==h||t[24]!==g?(_=(0,$.jsx)(Le,{title:`Connected Providers`,description:`Providers you've connected with an API key or environment variable.`,action:h,children:g}),t[23]=h,t[24]=g,t[25]=_):_=t[25];let v;t[26]!==m||t[27]!==r||t[28]!==i?(v=(0,$.jsx)(Le,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:m.length===0?(0,$.jsx)(`p`,{className:S(l.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Ie,children:m.map(e=>(0,$.jsx)(Ye,{provider:e,onClick:r},e.name))})}),t[26]=m,t[27]=r,t[28]=i,t[29]=v):v=t[29];let y;return t[30]!==_||t[31]!==v?(y=(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]})}),t[30]=_,t[31]=v,t[32]=y):y=t[32],y}function ze(e,t){return e.name.localeCompare(t.name)}function Be(e){return!e.apiKey}function Ve(e){return e.apiKey}function He(){let e=(0,Z.c)(21),t=a(),{providerSlug:n}=i(),[r,o]=(0,Q.useState)(0),s=(0,Q.useRef)(n),c,l;e[0]!==r||e[1]!==n?(c=()=>{s.current&&!n&&(k(Ne(r)),o(Ke)),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,Q.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`),k(Ne(r)),o(Ge)},e[6]=r,e[7]=t,e[8]=f):f=e[8];let p=f,m;e[9]===r?m=e[10]:(m=function(){k(Ne(r)),o(We)},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)(je,{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)(de,{label:`Loading providers...`,size:`lg`}),e[14]=g):g=e[14];let _;e[15]!==d||e[16]!==r?(_=(0,$.jsx)(Q.Suspense,{fallback:g,children:(0,$.jsx)(Re,{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)(W,{fallbackTitle:`Failed to load providers`,onRetry:h,renderFallback:Ue,children:_})}),e[18]=h,e[19]=_,e[20]=v):v=e[20],v}function Ue(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(I,{className:`shrink-0`,children:[(0,$.jsx)(H,{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)(R,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(C,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function We(e){return e+1}function Ge(e){return e+1}function Ke(e){return e+1}function qe(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function Je(e){let t=(0,Z.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=>qe(e,o),t[3]=o,t[4]=s);let c;t[5]===n?c=t[6]:(c=(0,$.jsx)(M,{provider:n}),t[5]=n,t[6]=c);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=S(l.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]!==c||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[c,d]}),t[10]=c,t[11]=d,t[12]=f):f=t[12];let p;t[13]===n.isEnv?p=t[14]:(p=n.isEnv?(0,$.jsx)(ye,{variant:`secondary`,className:S(l.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(ye,{variant:`secondary`,className:S(l.compact,`px-2 py-0.5`),children:`API Key`}),t[13]=n.isEnv,t[14]=p);let m;t[15]===r?m=t[16]:(m=r>0&&(0,$.jsxs)(ye,{variant:`default`,className:S(l.compact,`px-2 py-0.5`),children:[r,` `,r===1?`Model`:`Models`]}),t[15]=r,t[16]=m);let h;t[17]!==p||t[18]!==m?(h=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[p,m]}),t[17]=p,t[18]=m,t[19]=h):h=t[19];let g;return t[20]!==o||t[21]!==s||t[22]!==f||t[23]!==h?(g=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:o,onKeyDown:s,children:[f,h]}),t[20]=o,t[21]=s,t[22]=f,t[23]=h,t[24]=g):g=t[24],g}function Ye(e){let t=(0,Z.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=>qe(e,a),t[3]=a,t[4]=o);let s;t[5]===n?s=t[6]:(s=(0,$.jsx)(M,{provider:n}),t[5]=n,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=S(l.label,`truncate leading-normal`),t[7]=c):c=t[7];let u;t[8]===n.name?u=t[9]:(u=(0,$.jsx)(`span`,{className:c,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:S(l.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=f):f=t[13];let p;return t[14]!==a||t[15]!==o||t[16]!==d?(p=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:a,onKeyDown:o,children:[d,f]}),t[14]=a,t[15]=o,t[16]=d,t[17]=p):p=t[17],p}export{He as ProvidersListView,He as default};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ot as ee}from"./dist-DjiNKpTV.js";import{I as te}from"./dist-CNOCRPxn.js";import{t as n}from"./button-B6HDsfd5.js";import{i as r,n as ne,r as i,t as a}from"./tooltip-BtJG5fZl.js";import{a as o,i as s,o as c,r as l,s as u,t as d}from"./dialog--0foS3aw.js";import{Ft as f,It as re,X as ie,fn as p,yt as ae}from"./index-BOB3ZUQs.js";var oe=e(),m=t();function h(e){let t=(0,oe.c)(58),{open:h,onOpenChange:g,prTitle:_,onPrTitleChange:v,prDescription:y,onPrDescriptionChange:b,isGeneratingPRInfo:x,isLoading:S,onGeneratePRInfo:C,onCreatePR:w,currentBranch:T,createWorkspaceAfterPR:E,onCreateWorkspaceAfterPRChange:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,m.jsx)(u,{children:`Create Pull Request`}),t[0]=O):O=t[0];let k;t[1]===T?k=t[2]:(k=(0,m.jsxs)(c,{children:[O,(0,m.jsxs)(s,{children:[`Create a pull request for branch `,T]})]}),t[1]=T,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(f,{htmlFor:`pr-title`,children:`Title`}),t[3]=A):A=t[3];let j=T||`Enter PR title...`,M;t[4]===v?M=t[5]:(M=e=>v(e.target.value),t[4]=v,t[5]=M);let N;t[6]!==x||t[7]!==_||t[8]!==j||t[9]!==M?(N=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(re,{id:`pr-title`,placeholder:j,value:_,onChange:M,disabled:x})]}),t[6]=x,t[7]=_,t[8]=j,t[9]=M,t[10]=N):N=t[10];let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,m.jsx)(f,{htmlFor:`pr-description`,children:`Description`}),t[11]=P):P=t[11];let F;t[12]===b?F=t[13]:(F=e=>b(e.target.value),t[12]=b,t[13]=F);let I;t[14]!==x||t[15]!==y||t[16]!==F?(I=(0,m.jsx)(ie,{id:`pr-description`,placeholder:`Enter PR description...`,value:y,onChange:F,disabled:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=x,t[15]=y,t[16]=F,t[17]=I):I=t[17];let L=x||S,R;t[18]===x?R=t[19]:(R=x?(0,m.jsx)(p,{}):(0,m.jsx)(te,{className:`h-3.5 w-3.5`}),t[18]=x,t[19]=R);let z;t[20]!==C||t[21]!==L||t[22]!==R?(z=(0,m.jsx)(r,{asChild:!0,children:(0,m.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:C,disabled:L,children:R})}),t[20]=C,t[21]=L,t[22]=R,t[23]=z):z=t[23];let B=x?`Generating PR description...`:`Generate PR title and description with AI`,V;t[24]===B?V=t[25]:(V=(0,m.jsx)(ne,{children:B}),t[24]=B,t[25]=V);let H;t[26]!==z||t[27]!==V?(H=(0,m.jsx)(i,{children:(0,m.jsxs)(a,{children:[z,V]})}),t[26]=z,t[27]=V,t[28]=H):H=t[28];let U;t[29]!==H||t[30]!==I?(U=(0,m.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,m.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]}),t[29]=H,t[30]=I,t[31]=U):U=t[31];let W;t[32]!==U||t[33]!==N?(W=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[N,U]}),t[32]=U,t[33]=N,t[34]=W):W=t[34];let G;t[35]!==E||t[36]!==D?(G=(0,m.jsx)(ae,{value:E,onChange:D,ariaLabel:`Also create new workspace`}),t[35]=E,t[36]=D,t[37]=G):G=t[37];let K;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,m.jsx)(f,{className:ee.labelNormal,children:`Also create new workspace`}),t[38]=K):K=t[38];let q;t[39]===G?q=t[40]:(q=(0,m.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[39]=G,t[40]=q);let J=S||x,Y;t[41]===S?Y=t[42]:(Y=S?(0,m.jsxs)(m.Fragment,{children:[`Create PR`,(0,m.jsx)(p,{size:`sm`})]}):`Create PR`,t[41]=S,t[42]=Y);let X;t[43]!==w||t[44]!==J||t[45]!==Y?(X=(0,m.jsx)(n,{className:`ml-auto`,onClick:w,disabled:J,children:Y}),t[43]=w,t[44]=J,t[45]=Y,t[46]=X):X=t[46];let Z;t[47]!==q||t[48]!==X?(Z=(0,m.jsxs)(o,{className:`w-full items-center gap-4`,children:[q,X]}),t[47]=q,t[48]=X,t[49]=Z):Z=t[49];let Q;t[50]!==W||t[51]!==k||t[52]!==Z?(Q=(0,m.jsxs)(l,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[k,W,Z]}),t[50]=W,t[51]=k,t[52]=Z,t[53]=Q):Q=t[53];let $;return t[54]!==g||t[55]!==h||t[56]!==Q?($=(0,m.jsx)(d,{open:h,onOpenChange:g,children:Q}),t[54]=g,t[55]=h,t[56]=Q,t[57]=$):$=t[57],$}export{h as PullRequestDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{ot as n}from"./dist-BWuYHVi8.js";import{E as r,Ut as i,pt as a}from"./dist-DIjomljy.js";import{t as o}from"./button-DeNw35VZ.js";import{a as s,i as c,o as l,r as u,s as d,t as f}from"./dialog-Do98zzAW.js";import{On as p}from"./index-DjaVbFDB.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)(r,{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)(i,{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)(a,{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)(p,{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)(s,{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)(u,{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)(f,{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{ot as n}from"./dist-DjiNKpTV.js";import{E as r,Ht as i,pt as a}from"./dist-CNOCRPxn.js";import{t as o}from"./button-B6HDsfd5.js";import{a as s,i as c,o as l,r as u,s as d,t as f}from"./dialog--0foS3aw.js";import{bn as p}from"./index-BOB3ZUQs.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)(r,{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)(i,{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)(a,{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)(p,{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)(s,{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)(u,{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)(f,{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-DeNw35VZ.js";import{a as r,i,o as a,r as o,s,t as c}from"./dialog-Do98zzAW.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)(a,{children:[(0,u.jsx)(s,{children:`Push Branch First`}),(0,u.jsx)(i,{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)(o,{children:[g,(0,u.jsxs)(r,{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)(c,{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-B6HDsfd5.js";import{a as r,i,o as a,r as o,s,t as c}from"./dialog--0foS3aw.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)(a,{children:[(0,u.jsx)(s,{children:`Push Branch First`}),(0,u.jsx)(i,{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)(o,{children:[g,(0,u.jsxs)(r,{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)(c,{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{g as i,h as a,n as o,t as s,u as c,xn as l}from"./dist-DIjomljy.js";import{c as u,t as d}from"./utils-CT-Dw22R.js";import{t as f}from"./dist-mdooLpmq.js";import{t as p}from"./dist-OixawqbU.js";import{n as m,r as h,t as g}from"./dist-CWnEmdyL.js";import{t as _}from"./dist-CSssbxDI.js";var v=t(),y=e(n(),1),b=r(),x=`Radio`,[S,C]=a(x),[w,T]=S(x),E=y.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:a=!1,required:o,disabled:s,value:l=`on`,onCheck:d,form:f,...p}=e,[m,h]=y.useState(null),g=u(t,e=>h(e)),_=y.useRef(!1),v=m?f||!!m.closest(`form`):!0;return(0,b.jsxs)(w,{scope:n,checked:a,disabled:s,children:[(0,b.jsx)(c.button,{type:`button`,role:`radio`,"aria-checked":a,"data-state":j(a),"data-disabled":s?``:void 0,disabled:s,value:l,...p,ref:g,onClick:i(e.onClick,e=>{a||d?.(),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,b.jsx)(A,{control:m,bubbles:!_.current,name:r,value:l,checked:a,required:o,disabled:s,form:f,style:{transform:`translateX(-100%)`}})]})});E.displayName=x;var D=`RadioIndicator`,O=y.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=T(D,n);return(0,b.jsx)(o,{present:r||a.checked,children:(0,b.jsx)(c.span,{"data-state":j(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});O.displayName=D;var k=`RadioBubbleInput`,A=y.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=y.useRef(null),s=u(o,a),l=_(n),d=f(t);return y.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[l,n,r]),(0,b.jsx)(c.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...d,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});A.displayName=k;function j(e){return e?`checked`:`unchecked`}var M=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],N=`RadioGroup`,[P,F]=a(N,[h,C]),I=h(),L=C(),[R,z]=P(N),B=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:l=!1,orientation:u,dir:d,loop:f=!0,onValueChange:h,...g}=e,_=I(n),v=p(d),[y,x]=s({prop:a,defaultProp:i??null,onChange:h,caller:N});return(0,b.jsx)(R,{scope:n,name:r,required:o,disabled:l,value:y,onValueChange:x,children:(0,b.jsx)(m,{asChild:!0,..._,orientation:u,dir:v,loop:f,children:(0,b.jsx)(c.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":u,"data-disabled":l?``:void 0,dir:v,...g,ref:t})})})});B.displayName=N;var V=`RadioGroupItem`,H=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...a}=e,o=z(V,n),s=o.disabled||r,c=I(n),l=L(n),d=y.useRef(null),f=u(t,d),p=o.value===a.value,m=y.useRef(!1);return y.useEffect(()=>{let e=e=>{M.includes(e.key)&&(m.current=!0)},t=()=>m.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,b.jsx)(g,{asChild:!0,...c,focusable:!s,active:p,children:(0,b.jsx)(E,{disabled:s,required:o.required,checked:p,...l,...a,name:o.name,ref:f,onCheck:()=>o.onValueChange(a.value),onKeyDown:i(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:i(a.onFocus,()=>{m.current&&d.current?.click()})})})});H.displayName=V;var U=`RadioGroupIndicator`,W=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e;return(0,b.jsx)(O,{...L(n),...r,ref:t})});W.displayName=U;var G=B,K=H,q=W,J=y.forwardRef((e,t)=>{let n=(0,v.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=d(`grid gap-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,b.jsx)(G,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});J.displayName=G.displayName;var Y=y.forwardRef((e,t)=>{let n=(0,v.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=d(`aspect-square h-4 w-4 rounded-full border border-brand text-brand ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,b.jsx)(q,{className:`flex items-center justify-center`,children:(0,b.jsx)(l,{className:`h-2.5 w-2.5 fill-current text-current`})}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,b.jsx)(K,{ref:t,className:a,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});Y.displayName=K.displayName;export{Y as n,J 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{Sn as i,g as a,h as o,n as s,t as c,u as l}from"./dist-CNOCRPxn.js";import{c as u,t as d}from"./utils-CT-Dw22R.js";import{t as f}from"./dist-rO95BjzU.js";import{t as p}from"./dist-OixawqbU.js";import{n as m,r as h,t as g}from"./dist-Bxyh1Ml_.js";import{t as _}from"./dist-CSssbxDI.js";var v=t(),y=e(n(),1),b=r(),x=`Radio`,[S,C]=o(x),[w,T]=S(x),E=y.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:i=!1,required:o,disabled:s,value:c=`on`,onCheck:d,form:f,...p}=e,[m,h]=y.useState(null),g=u(t,e=>h(e)),_=y.useRef(!1),v=m?f||!!m.closest(`form`):!0;return(0,b.jsxs)(w,{scope:n,checked:i,disabled:s,children:[(0,b.jsx)(l.button,{type:`button`,role:`radio`,"aria-checked":i,"data-state":j(i),"data-disabled":s?``:void 0,disabled:s,value:c,...p,ref:g,onClick:a(e.onClick,e=>{i||d?.(),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,b.jsx)(A,{control:m,bubbles:!_.current,name:r,value:c,checked:i,required:o,disabled:s,form:f,style:{transform:`translateX(-100%)`}})]})});E.displayName=x;var D=`RadioIndicator`,O=y.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=T(D,n);return(0,b.jsx)(s,{present:r||a.checked,children:(0,b.jsx)(l.span,{"data-state":j(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});O.displayName=D;var k=`RadioBubbleInput`,A=y.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=y.useRef(null),s=u(o,a),c=_(n),d=f(t);return y.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,b.jsx)(l.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...d,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});A.displayName=k;function j(e){return e?`checked`:`unchecked`}var M=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],N=`RadioGroup`,[P,F]=o(N,[h,C]),I=h(),L=C(),[R,z]=P(N),B=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:s=!1,orientation:u,dir:d,loop:f=!0,onValueChange:h,...g}=e,_=I(n),v=p(d),[y,x]=c({prop:a,defaultProp:i??null,onChange:h,caller:N});return(0,b.jsx)(R,{scope:n,name:r,required:o,disabled:s,value:y,onValueChange:x,children:(0,b.jsx)(m,{asChild:!0,..._,orientation:u,dir:v,loop:f,children:(0,b.jsx)(l.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":u,"data-disabled":s?``:void 0,dir:v,...g,ref:t})})})});B.displayName=N;var V=`RadioGroupItem`,H=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...i}=e,o=z(V,n),s=o.disabled||r,c=I(n),l=L(n),d=y.useRef(null),f=u(t,d),p=o.value===i.value,m=y.useRef(!1);return y.useEffect(()=>{let e=e=>{M.includes(e.key)&&(m.current=!0)},t=()=>m.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,b.jsx)(g,{asChild:!0,...c,focusable:!s,active:p,children:(0,b.jsx)(E,{disabled:s,required:o.required,checked:p,...l,...i,name:o.name,ref:f,onCheck:()=>o.onValueChange(i.value),onKeyDown:a(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:a(i.onFocus,()=>{m.current&&d.current?.click()})})})});H.displayName=V;var U=`RadioGroupIndicator`,W=y.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e;return(0,b.jsx)(O,{...L(n),...r,ref:t})});W.displayName=U;var G=B,K=H,q=W,J=y.forwardRef((e,t)=>{let n=(0,v.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=d(`grid gap-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,b.jsx)(G,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});J.displayName=G.displayName;var Y=y.forwardRef((e,t)=>{let n=(0,v.c)(10),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=d(`aspect-square h-4 w-4 rounded-full border border-brand text-brand ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,r),n[3]=r,n[4]=o);let s;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,b.jsx)(q,{className:`flex items-center justify-center`,children:(0,b.jsx)(i,{className:`h-2.5 w-2.5 fill-current text-current`})}),n[5]=s):s=n[5];let c;return n[6]!==a||n[7]!==t||n[8]!==o?(c=(0,b.jsx)(K,{ref:t,className:o,...a,children:s}),n[6]=a,n[7]=t,n[8]=o,n[9]=c):c=n[9],c});Y.displayName=K.displayName;export{Y as n,J 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{a as i,g as a,h as o,l as s,n as c,u as l}from"./dist-DIjomljy.js";import{c as u,t as d}from"./utils-CT-Dw22R.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]=o(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=p.useState(null),[d,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=u(t,e=>c(e)),M=f(i);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:a,scrollArea:s,viewport:d,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)(l.div,{dir:M,...o,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:i,...a}=e,o=S(w,n),s=u(t,p.useRef(null),o.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:i}),(0,g.jsx)(l.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:o.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)(c,{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),o=e.orientation===`horizontal`,s=G(()=>u(`SCROLL_END`),100),[l,u]=_(`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(l===`idle`){let e=window.setTimeout(()=>u(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[l,i.scrollHideDelay,u]),p.useEffect(()=>{let e=i.viewport,t=o?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(u(`SCROLL`),s()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,o,u,s]),(0,g.jsx)(c,{present:n||l!==`hidden`,children:(0,g.jsx)(j,{"data-state":l===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:a(e.onPointerEnter,()=>u(`POINTER_ENTER`)),onPointerLeave:a(e.onPointerLeave,()=>u(`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`,l=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,l),K(n.content,l),(0,g.jsx)(c,{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,...i}=e,a=S(E,e.__scopeScrollArea),[o,s]=p.useState(),c=p.useRef(null),l=u(t,c,a.onScrollbarXChange);return p.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:z(o.paddingLeft),paddingEnd:z(o.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=S(E,e.__scopeScrollArea),[o,s]=p.useState(),c=p.useRef(null),l=u(t,c,a.onScrollbarYChange);return p.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,g.jsx)(P,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:z(o.paddingTop),paddingEnd:z(o.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:d,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=u(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=s(h),A=s(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:i,onThumbChange:s(o),onThumbPointerUp:s(c),onThumbPositionChange:A,onThumbPointerDown:s(d),children:(0,g.jsx)(l.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:a(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:a(e.onPointerMove,M),onPointerUp:a(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)(c,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,o=S(F,n),s=N(F,n),{onThumbPositionChange:c}=s,d=u(t,e=>s.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,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,c]),(0,g.jsx)(l.div,{"data-state":s.hasThumb?`visible`:`hidden`,...i,ref:d,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:a(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:a(e.onPointerUp,s.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),u=!!(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)}),u?(0,g.jsx)(l.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=s(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=s(t);i(()=>{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,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=d(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(Z,{}),l=(0,g.jsx)(Y,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,g.jsxs)(q,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,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,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`right-0 h-full w-2.5 p-0.5`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,children:r,viewportRef:s,onViewportScroll:a,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c;n[6]===i?c=n[7]:(c=d(`relative overflow-hidden`,i),n[6]=i,n[7]=c);let l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=d(`h-full w-full rounded-[inherit]`,oe),n[8]=l):l=n[8];let u;n[9]!==r||n[10]!==a||n[11]!==s?(u=(0,g.jsx)(J,{ref:s,onScroll:a,className:l,children:r}),n[9]=r,n[10]=a,n[11]=s,n[12]=u):u=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]!==o||n[16]!==t||n[17]!==c||n[18]!==u?(h=(0,g.jsxs)(q,{ref:t,className:c,...o,children:[u,f,p]}),n[15]=o,n[16]=t,n[17]=c,n[18]=u,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2 p-0.5`,c=o===`horizontal`&&`h-2 w-full flex-col p-0.5`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none bg-transparent`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=d(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(se,{}),l=(0,g.jsx)(Y,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,g.jsxs)(q,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});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{a as i,g as a,h as o,l as s,n as c,u as l}from"./dist-CNOCRPxn.js";import{c as u,t as d}from"./utils-CT-Dw22R.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]=o(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=p.useState(null),[d,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=u(t,e=>c(e)),M=f(i);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:a,scrollArea:s,viewport:d,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)(l.div,{dir:M,...o,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:i,...a}=e,o=S(w,n),s=u(t,p.useRef(null),o.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:i}),(0,g.jsx)(l.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:o.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)(c,{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),o=e.orientation===`horizontal`,s=G(()=>u(`SCROLL_END`),100),[l,u]=_(`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(l===`idle`){let e=window.setTimeout(()=>u(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[l,i.scrollHideDelay,u]),p.useEffect(()=>{let e=i.viewport,t=o?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(u(`SCROLL`),s()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,o,u,s]),(0,g.jsx)(c,{present:n||l!==`hidden`,children:(0,g.jsx)(j,{"data-state":l===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:a(e.onPointerEnter,()=>u(`POINTER_ENTER`)),onPointerLeave:a(e.onPointerLeave,()=>u(`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`,l=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,l),K(n.content,l),(0,g.jsx)(c,{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,...i}=e,a=S(E,e.__scopeScrollArea),[o,s]=p.useState(),c=p.useRef(null),l=u(t,c,a.onScrollbarXChange);return p.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:z(o.paddingLeft),paddingEnd:z(o.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=S(E,e.__scopeScrollArea),[o,s]=p.useState(),c=p.useRef(null),l=u(t,c,a.onScrollbarYChange);return p.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,g.jsx)(P,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:z(o.paddingTop),paddingEnd:z(o.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:d,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=u(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=s(h),A=s(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:i,onThumbChange:s(o),onThumbPointerUp:s(c),onThumbPositionChange:A,onThumbPointerDown:s(d),children:(0,g.jsx)(l.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:a(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:a(e.onPointerMove,M),onPointerUp:a(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)(c,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,o=S(F,n),s=N(F,n),{onThumbPositionChange:c}=s,d=u(t,e=>s.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,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,c]),(0,g.jsx)(l.div,{"data-state":s.hasThumb?`visible`:`hidden`,...i,ref:d,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:a(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:a(e.onPointerUp,s.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),u=!!(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)}),u?(0,g.jsx)(l.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=s(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=s(t);i(()=>{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,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=d(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(Z,{}),l=(0,g.jsx)(Y,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,g.jsxs)(q,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,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,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`right-0 h-full w-2.5 p-0.5`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,children:r,viewportRef:s,onViewportScroll:a,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c;n[6]===i?c=n[7]:(c=d(`relative overflow-hidden`,i),n[6]=i,n[7]=c);let l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=d(`h-full w-full rounded-[inherit]`,oe),n[8]=l):l=n[8];let u;n[9]!==r||n[10]!==a||n[11]!==s?(u=(0,g.jsx)(J,{ref:s,onScroll:a,className:l,children:r}),n[9]=r,n[10]=a,n[11]=s,n[12]=u):u=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]!==o||n[16]!==t||n[17]!==c||n[18]!==u?(h=(0,g.jsxs)(q,{ref:t,className:c,...o,children:[u,f,p]}),n[15]=o,n[16]=t,n[17]=c,n[18]=u,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2 p-0.5`,c=o===`horizontal`&&`h-2 w-full flex-col p-0.5`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=d(`flex touch-none select-none bg-transparent`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=u):u=n[8];let f;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(f=(0,g.jsx)(D,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=d(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(se,{}),l=(0,g.jsx)(Y,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,g.jsxs)(q,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{S as i,ot as a}from"./dist-DjiNKpTV.js";import{Cn as o,En as s,Et as c,Hn as l,M as u,Mt as d,N as f,Tn as p,Z as m,g as h,gt as g,h as _,ht as v,jn as y,t as b,u as x,vn as S}from"./dist-CNOCRPxn.js";import{c as C,t as w}from"./utils-CT-Dw22R.js";import{t as T}from"./button-B6HDsfd5.js";import{$ as E,Fr as D,Pi as ee,hi as te,jr as ne,zn as O}from"./api-D1GxdEEp.js";import{t as re}from"./dist-rO95BjzU.js";import{i as ie,n as ae,t as oe}from"./tooltip-BtJG5fZl.js";import{t as se}from"./dist-CkQILg8A.js";import{t as ce}from"./dist-OixawqbU.js";import{i as le}from"./scroll-area-BMQFeWmq.js";import{t as ue}from"./use-toast-xpb5jNtN.js";import{t as k}from"./dist-CSssbxDI.js";import{Dn as de,F as fe,It as pe,Mn as me,P as he,Tn as ge,U as _e,W as ve,_t as ye,kn as be,n as xe,r as Se,t as Ce,vt as we,xn as Te,yn as A,yt as Ee}from"./index-BOB3ZUQs.js";import{n as j,t as De}from"./toggle-group-DMR7z3pz.js";import{t as Oe}from"./use-settings-page-loading-BTySlInF.js";var M=t(),N=e(n(),1),P=r(),ke=[`PageUp`,`PageDown`],Ae=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],je={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},F=`Slider`,[Me,Ne,Pe]=se(F),[Fe,Ie]=_(F,[Pe]),[Le,Re]=Fe(F),ze=N.forwardRef((e,t)=>{let{name:n,min:r=0,max:i=100,step:a=1,orientation:o=`horizontal`,disabled:s=!1,minStepsBetweenThumbs:c=0,defaultValue:l=[r],value:u,onValueChange:d=()=>{},onValueCommit:f=()=>{},inverted:p=!1,form:m,...g}=e,_=N.useRef(new Set),v=N.useRef(0),y=o===`horizontal`?Ve:He,[x=[],S]=b({prop:u,defaultProp:l,onChange:e=>{[..._.current][v.current]?.focus(),d(e)}}),C=N.useRef(x);function w(e){D(e,tt(x,e))}function T(e){D(e,v.current)}function E(){let e=C.current[v.current];x[v.current]!==e&&f(x)}function D(e,t,{commit:n}={commit:!1}){let o=z(a),s=le(B(Math.round((e-r)/a)*a+r,o),[r,i]);S((e=[])=>{let r=Qe(e,s,t);if(it(r,c*a)){v.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&f(r),t?r:e}else return e})}return(0,P.jsx)(Le,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:v,thumbs:_.current,values:x,orientation:o,form:m,children:(0,P.jsx)(Me.Provider,{scope:e.__scopeSlider,children:(0,P.jsx)(Me.Slot,{scope:e.__scopeSlider,children:(0,P.jsx)(y,{"aria-disabled":s,"data-disabled":s?``:void 0,...g,ref:t,onPointerDown:h(g.onPointerDown,()=>{s||(C.current=x)}),min:r,max:i,inverted:p,onSlideStart:s?void 0:w,onSlideMove:s?void 0:T,onSlideEnd:s?void 0:E,onHomeKeyDown:()=>!s&&D(r,0,{commit:!0}),onEndKeyDown:()=>!s&&D(i,x.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!s){let n=ke.includes(e.key)||e.shiftKey&&Ae.includes(e.key)?10:1,r=v.current,i=x[r];D(i+a*n*t,r,{commit:!0})}}})})})})});ze.displayName=F;var[Be,I]=Fe(F,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),Ve=N.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,[d,f]=N.useState(null),p=C(t,e=>f(e)),m=N.useRef(void 0),h=ce(i),g=h===`ltr`,_=g&&!a||!g&&a;function v(e){let t=m.current||d.getBoundingClientRect(),i=R([0,t.width],_?[n,r]:[r,n]);return m.current=t,i(e-t.left)}return(0,P.jsx)(Be,{scope:e.__scopeSlider,startEdge:_?`left`:`right`,endEdge:_?`right`:`left`,direction:_?1:-1,size:`width`,children:(0,P.jsx)(L,{dir:h,"data-orientation":`horizontal`,...u,ref:p,style:{...u.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=v(e.clientX);o?.(t)},onSlideMove:e=>{let t=v(e.clientX);s?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{let t=je[_?`from-left`:`from-right`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),He=N.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:a,onSlideMove:o,onSlideEnd:s,onStepKeyDown:c,...l}=e,u=N.useRef(null),d=C(t,u),f=N.useRef(void 0),p=!i;function m(e){let t=f.current||u.current.getBoundingClientRect(),i=R([0,t.height],p?[r,n]:[n,r]);return f.current=t,i(e-t.top)}return(0,P.jsx)(Be,{scope:e.__scopeSlider,startEdge:p?`bottom`:`top`,endEdge:p?`top`:`bottom`,size:`height`,direction:p?1:-1,children:(0,P.jsx)(L,{"data-orientation":`vertical`,...l,ref:d,style:{...l.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=m(e.clientY);a?.(t)},onSlideMove:e=>{let t=m(e.clientY);o?.(t)},onSlideEnd:()=>{f.current=void 0,s?.()},onStepKeyDown:e=>{let t=je[p?`from-bottom`:`from-top`].includes(e.key);c?.({event:e,direction:t?-1:1})}})})}),L=N.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=Re(F,n);return(0,P.jsx)(x.span,{...l,ref:t,onKeyDown:h(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(s(e),e.preventDefault()):ke.concat(Ae).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:h(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:h(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:h(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),Ue=`SliderTrack`,We=N.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=Re(Ue,n);return(0,P.jsx)(x.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});We.displayName=Ue;var Ge=`SliderRange`,Ke=N.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=Re(Ge,n),a=I(Ge,n),o=C(t,N.useRef(null)),s=i.values.length,c=i.values.map(e=>$e(e,i.min,i.max)),l=s>1?Math.min(...c):0,u=100-Math.max(...c);return(0,P.jsx)(x.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,ref:o,style:{...e.style,[a.startEdge]:l+`%`,[a.endEdge]:u+`%`}})});Ke.displayName=Ge;var qe=`SliderThumb`,Je=N.forwardRef((e,t)=>{let n=Ne(e.__scopeSlider),[r,i]=N.useState(null),a=C(t,e=>i(e)),o=N.useMemo(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,P.jsx)(Ye,{...e,ref:a,index:o})}),Ye=N.forwardRef((e,t)=>{let{__scopeSlider:n,index:r,name:i,...a}=e,o=Re(qe,n),s=I(qe,n),[c,l]=N.useState(null),u=C(t,e=>l(e)),d=c?o.form||!!c.closest(`form`):!0,f=re(c),p=o.values[r],m=p===void 0?0:$e(p,o.min,o.max),g=et(r,o.values.length),_=f?.[s.size],v=_?nt(_,m,s.direction):0;return N.useEffect(()=>{if(c)return o.thumbs.add(c),()=>{o.thumbs.delete(c)}},[c,o.thumbs]),(0,P.jsxs)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[s.startEdge]:`calc(${m}% + ${v}px)`},children:[(0,P.jsx)(Me.ItemSlot,{scope:e.__scopeSlider,children:(0,P.jsx)(x.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":o.min,"aria-valuenow":p,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,tabIndex:o.disabled?void 0:0,...a,ref:u,style:p===void 0?{display:`none`}:e.style,onFocus:h(e.onFocus,()=>{o.valueIndexToChangeRef.current=r})})}),d&&(0,P.jsx)(Ze,{name:i??(o.name?o.name+(o.values.length>1?`[]`:``):void 0),form:o.form,value:p},r)]})});Je.displayName=qe;var Xe=`RadioBubbleInput`,Ze=N.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{let i=N.useRef(null),a=C(i,r),o=k(t);return N.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`input`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,P.jsx)(x.input,{style:{display:`none`},...n,ref:a,defaultValue:t})});Ze.displayName=Xe;function Qe(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function $e(e,t,n){return le(100/(n-t)*(e-t),[0,100])}function et(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function tt(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function nt(e,t,n){let r=e/2;return(r-R([0,50],[0,r])(t)*n)*n}function rt(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function it(e,t){if(t>0){let n=rt(e);return Math.min(...n)>=t}return!0}function R(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 z(e){return(String(e).split(`.`)[1]||``).length}function B(e,t){let n=10**t;return Math.round(e*n)/n}var at=ze,ot=We,st=Ke,ct=Je,lt=N.forwardRef((e,t)=>{let n=(0,M.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,s]=N.useState(!1),[c,l]=N.useState(!1),u,d;n[4]===c?(u=n[5],d=n[6]):(u=()=>{if(!c)return;let e=function(){l(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},d=[c],n[4]=c,n[5]=u,n[6]=d),N.useEffect(u,d);let f;n[7]===a?f=n[8]:(f=(0,P.jsx)(ct,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,onPointerDown:()=>{a!=null&&(l(!0),s(!0))}}),n[7]=a,n[8]=f);let p=f,m;n[9]===r?m=n[10]:(m=w(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=m);let h;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,P.jsx)(ot,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,P.jsx)(st,{className:`absolute h-full bg-primary`})}),n[11]=h):h=n[11];let g;n[12]!==c||n[13]!==o||n[14]!==p||n[15]!==a?(g=a==null?p:(0,P.jsxs)(oe,{open:o||c,onOpenChange:s,children:[(0,P.jsx)(ie,{asChild:!0,children:p}),(0,P.jsx)(ae,{side:`top`,children:a})]}),n[12]=c,n[13]=o,n[14]=p,n[15]=a,n[16]=g):g=n[16];let _;return n[17]!==i||n[18]!==t||n[19]!==m||n[20]!==g?(_=(0,P.jsxs)(at,{ref:t,className:m,...i,children:[h,g]}),n[17]=i,n[18]=t,n[19]=m,n[20]=g,n[21]=_):_=n[21],_});lt.displayName=at.displayName;var V=i(`app.use-maximum-turn-count.hook`),ut=100;function dt(){let[e,t]=(0,N.useState)(ut),[n,r]=(0,N.useState)(ut.toString()),[i,a]=(0,N.useState)(!0),[o,s]=(0,N.useState)(!1);(0,N.useEffect)(()=>{let e=!1;async function n(){try{let n=await E();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){V.error(`Failed to load maximum turn count:`,e)}finally{e||a(!1)}}return n(),()=>{e=!0}},[]);function c(e){r(e)}async function l(e){s(!0);try{let n=await O({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw V.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:ut,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var H=i(`app.use-screen-recording-permission.hook`),U={isMacOS:!1,granted:!1,available:!1,message:``};function ft(){return{...U,isMacOS:_e()}}function pt(){let[e,t]=(0,N.useState)(ft),[n,r]=(0,N.useState)(!0),[i,a]=(0,N.useState)(null),[o,s]=(0,N.useState)(!1),[c,l]=(0,N.useState)(null),u=(0,N.useCallback)(async()=>{r(!0),a(null);try{t(await ne(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...U,isMacOS:e?.isMacOS??_e(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,N.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,N.useCallback)(async()=>{s(!0),l(null);try{let e=await D(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;H.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;H.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var mt=i(`app.use-server-bind-mode.hook`),W=`local`,ht=`tarsk-server-bind-mode-changed`;function G(e){ee(e)}function gt(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(ht)===`true`}catch{return!1}}function _t(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(ht,`true`):sessionStorage.removeItem(ht)}catch{}}function vt(){let[e,t]=(0,N.useState)(()=>te()?.serverBindMode??W),[n,r]=(0,N.useState)(null),[i,a]=(0,N.useState)(()=>te()?.networkAddresses??[]),[o,s]=(0,N.useState)(()=>te()===null),[c,l]=(0,N.useState)(!1),[u,d]=(0,N.useState)(gt);(0,N.useEffect)(()=>{let e=!1;async function n(){try{let n=await E();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),G({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){mt.error(`Failed to load server bind mode:`,e)}finally{e||s(!1)}}return n(),()=>{e=!0}},[]);async function f(e){l(!0);try{let n=await O({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),G({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),_t(!0)}catch(e){throw mt.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:W,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var K=i(`app.use-logging.hook`);function yt(){let[e,t]=(0,N.useState)(!1),[n,r]=(0,N.useState)(null),[i,a]=(0,N.useState)(!1),[o,s]=(0,N.useState)(null),[c,l]=(0,N.useState)(!0),[u,d]=(0,N.useState)(!1);(0,N.useEffect)(()=>{let e=!1;async function n(){try{let n=await E();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){K.error(`Failed to load logging setting:`,e)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);async function f(e){d(!0);try{let n=await O({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw K.error(`Failed to update logging setting:`,e),e}finally{d(!1)}}return{ingestingHost:o,isEnabled:e,isEnvConfigured:i,isLoading:c,isSaving:u,logPath:n,updateIsEnabled:f}}var bt=Object.defineProperty,q=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Ct=(e,t,n)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t)=>{for(var n in t||={})xt.call(t,n)&&Ct(e,n,t[n]);if(q)for(var n of q(t))St.call(t,n)&&Ct(e,n,t[n]);return e},Y=(e,t)=>{var n={};for(var r in e)xt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&q)for(var r of q(e))t.indexOf(r)<0&&St.call(e,r)&&(n[r]=e[r]);return n},X;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(X||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(X||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(X||={});var Z=X,wt={L:Z.QrCode.Ecc.LOW,M:Z.QrCode.Ecc.MEDIUM,Q:Z.QrCode.Ecc.QUARTILE,H:Z.QrCode.Ecc.HIGH},Tt=128,Et=`L`,Dt=`#FFFFFF`,Q=`#000000`,Ot=!1,$=1,kt=4,At=0,jt=.1;function Mt(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Nt(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Pt(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*jt),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Ft(e,t){return t==null?e?kt:At:Math.max(Math.floor(t),0)}function It({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=N.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...Z.QrSegment.makeSegments(t)),e),[]);return Z.QrCode.encodeSegments(r,wt[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=N.useMemo(()=>{let e=c.getModules(),t=Ft(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Pt(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Lt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Rt=N.forwardRef(function(e,t){let n=e,{value:r,size:i=Tt,level:a=Et,bgColor:o=Dt,fgColor:s=Q,includeMargin:c=Ot,minVersion:l=$,boostLevel:u,marginSize:d,imageSettings:f}=n,p=Y(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=Y(p,[`style`]),g=f?.src,_=N.useRef(null),v=N.useRef(null),y=N.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=N.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=It({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});N.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Nt(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Lt?t.fill(new Path2D(Mt(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),N.useEffect(()=>{x(!1)},[g]);let E=J({height:i,width:i},m),D=null;return g!=null&&(D=N.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),N.createElement(N.Fragment,null,N.createElement(`canvas`,J({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Rt.displayName=`QRCodeCanvas`;var zt=N.forwardRef(function(e,t){let n=e,{value:r,size:i=Tt,level:a=Et,bgColor:o=Dt,fgColor:s=Q,includeMargin:c=Ot,minVersion:l=$,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=Y(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=It({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Nt(g,v.excavation)),b=N.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Mt(y,h);return N.createElement(`svg`,J({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&N.createElement(`title`,null,d),N.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),N.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});zt.displayName=`QRCodeSVG`;var Bt=[{value:`light`,label:`Light`,icon:u},{value:`dark`,label:`Dark`,icon:v},{value:`system`,label:`System`,icon:f}],Vt=[{value:`image`,label:`Image`,icon:d},{value:`background`,label:`Background`,icon:l}],Ht=`flex h-7 w-7 min-h-0 min-w-0 items-center justify-center rounded-full border-0 bg-background p-0 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`,Ut=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,Wt=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,Gt=600;function Kt(e){let t=(0,M.c)(159),{onboardingResetSignal:n}=e,r=qt(n===void 0?0:n),{theme:i,setTheme:o}=he(),{scale:s,updateScale:c,min:l,max:u}=Se(),{opacity:d,updateOpacity:f,min:p,max:m}=xe(),{mode:h,color:g,updateMode:_,updateColor:v}=ve(),{color:y,updateColor:b,resetColor:x}=Ce(),{defaultMaximumTurnCount:S,draftMaximumTurnCount:C,isLoading:T,isSaving:E,resetDraftMaximumTurnCount:D,setDraftMaximumTurnCount:ee,updateMaximumTurnCount:te}=dt(),{status:ne,isLoading:O,isOpeningSettings:re,openSettingsError:ie,refresh:ae,openSystemSettings:oe}=pt(),{isLoading:se,isSaving:ce,needsRestart:le,networkAddresses:k,serverBindMode:pe,updateServerBindMode:_e}=vt(),{isEnabled:Ee,isLoading:j,isSaving:De,updateIsEnabled:ke}=ye(),{isEnabled:Ae,isLoading:je,isSaving:F,updateIsEnabled:Me}=fe(),{isEnabled:Ne,isSupported:Pe,isHealthy:Fe,statusMessage:Ie,isLoading:Le,isSaving:Re,updateIsEnabled:ze}=we(),{isEnabled:Be,logPath:I,isEnvConfigured:Ve,ingestingHost:He,isLoading:L,isSaving:Ue,updateIsEnabled:We}=yt(),Ge;t[0]!==L||t[1]!==T||t[2]!==O||t[3]!==Le||t[4]!==se||t[5]!==je||t[6]!==j?(Ge=[T,O,se,j,je,Le,L],t[0]=L,t[1]=T,t[2]=O,t[3]=Le,t[4]=se,t[5]=je,t[6]=j,t[7]=Ge):Ge=t[7];let Ke=Oe(`general`,Ge),qe;t[8]===ee?qe=t[9]:(qe=function(e){ee(e.target.value)},t[8]=ee,t[9]=qe);let Je=qe,Ye;t[10]!==S||t[11]!==C||t[12]!==D||t[13]!==te?(Ye=async function(){let e=Number.parseInt(C,10),t=Number.isFinite(e)&&e>0?e:S;try{await te(t)}catch{D()}},t[10]=S,t[11]=C,t[12]=D,t[13]=te,t[14]=Ye):Ye=t[14];let Xe=Ye,Ze;t[15]===c?Ze=t[16]:(Ze=function(e){e.length>0&&c(e[0])},t[15]=c,t[16]=Ze);let Qe=Ze,$e;t[17]===f?$e=t[18]:($e=function(e){e.length>0&&f(e[0])},t[17]=f,t[18]=$e);let et=$e,tt;t[19]===I?tt=t[20]:(tt=async function(){if(I)try{await navigator.clipboard.writeText(I),ue({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;ue({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[19]=I,t[20]=tt);let nt=tt,[rt,it]=(0,N.useState)(!1),R,z,B;t[21]!==k||t[22]!==pe?(R=async function(){if(z)try{await navigator.clipboard.writeText(z),it(!0),ue({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{it(!1)},1500)}catch(e){let t=e;ue({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},B=pe===`network`&&k.length>0,z=B?`http://${k[0]}:${Wt}`:null,t[21]=k,t[22]=pe,t[23]=R,t[24]=z,t[25]=B):(R=t[23],z=t[24],B=t[25]);let at=r&&`animate-headline-reset`,ot;t[26]===at?ot=t[27]:(ot=w(at),t[26]=at,t[27]=ot);let st;t[28]===ot?st=t[29]:(st=(0,P.jsx)(Te,{title:`Appearance`,titleClassName:ot,className:`[&>div:first-child]:py-2`,sticky:!1}),t[28]=ot,t[29]=st);let ct;t[30]===l?ct=t[31]:(ct=(0,P.jsxs)(`span`,{className:`${a.bodyMuted} w-8 shrink-0 text-right`,children:[l,`%`]}),t[30]=l,t[31]=ct);let V;t[32]===s?V=t[33]:(V=[s],t[32]=s,t[33]=V);let ut=`${s}%`,H;t[34]!==Qe||t[35]!==u||t[36]!==l||t[37]!==V||t[38]!==ut?(H=(0,P.jsx)(lt,{value:V,min:l,max:u,step:5,onValueChange:Qe,"aria-label":`Font size`,valueTooltip:ut}),t[34]=Qe,t[35]=u,t[36]=l,t[37]=V,t[38]=ut,t[39]=H):H=t[39];let U;t[40]===u?U=t[41]:(U=(0,P.jsxs)(`span`,{className:`${a.bodyMuted} w-9 shrink-0`,children:[u,`%`]}),t[40]=u,t[41]=U);let ft;t[42]!==ct||t[43]!==H||t[44]!==U?(ft=(0,P.jsx)(A,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,P.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[ct,H,U]})}),t[42]=ct,t[43]=H,t[44]=U,t[45]=ft):ft=t[45];let mt;t[46]===p?mt=t[47]:(mt=(0,P.jsxs)(`span`,{className:`${a.bodyMuted} w-8 shrink-0 text-right`,children:[p,`%`]}),t[46]=p,t[47]=mt);let W;t[48]===d?W=t[49]:(W=[d],t[48]=d,t[49]=W);let ht=`${d}%`,G;t[50]!==m||t[51]!==p||t[52]!==et||t[53]!==W||t[54]!==ht?(G=(0,P.jsx)(lt,{value:W,min:p,max:m,step:5,onValueChange:et,"aria-label":`Panel opacity`,valueTooltip:ht}),t[50]=m,t[51]=p,t[52]=et,t[53]=W,t[54]=ht,t[55]=G):G=t[55];let gt;t[56]===m?gt=t[57]:(gt=(0,P.jsxs)(`span`,{className:`${a.bodyMuted} w-9 shrink-0`,children:[m,`%`]}),t[56]=m,t[57]=gt);let _t;t[58]!==mt||t[59]!==G||t[60]!==gt?(_t=(0,P.jsx)(A,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,P.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[mt,G,gt]})}),t[58]=mt,t[59]=G,t[60]=gt,t[61]=_t):_t=t[61];let K;t[62]!==o||t[63]!==i?(K=(0,P.jsx)(Jt,{theme:i,onThemeChange:o}),t[62]=o,t[63]=i,t[64]=K):K=t[64];let bt;t[65]!==v||t[66]!==_||t[67]!==g||t[68]!==h?(bt=(0,P.jsx)(Xt,{wallpaperMode:h,wallpaperColor:g,onModeChange:_,onColorChange:v}),t[65]=v,t[66]=_,t[67]=g,t[68]=h,t[69]=bt):bt=t[69];let q;t[70]!==y||t[71]!==x||t[72]!==b?(q=(0,P.jsx)(Qt,{brandColor:y,onColorChange:b,onReset:x}),t[70]=y,t[71]=x,t[72]=b,t[73]=q):q=t[73];let xt;t[74]!==ft||t[75]!==_t||t[76]!==K||t[77]!==bt||t[78]!==q?(xt=(0,P.jsx)(be,{className:`max-w-none pt-0`,children:(0,P.jsxs)(de,{children:[ft,_t,K,bt,q]})}),t[74]=ft,t[75]=_t,t[76]=K,t[77]=bt,t[78]=q,t[79]=xt):xt=t[79];let St;t[80]!==st||t[81]!==xt?(St=(0,P.jsxs)(me,{className:`shrink-0`,children:[st,xt]}),t[80]=st,t[81]=xt,t[82]=St):St=t[82];let Ct;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,P.jsx)(Te,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[83]=Ct):Ct=t[83];let J;t[84]!==S||t[85]!==C||t[86]!==Xe||t[87]!==Je||t[88]!==T||t[89]!==E?(J=(0,P.jsx)($t,{draftValue:C,defaultTurnCount:S,isLoading:T,isSaving:E,onChange:Je,onBlur:Xe}),t[84]=S,t[85]=C,t[86]=Xe,t[87]=Je,t[88]=T,t[89]=E,t[90]=J):J=t[90];let Y;t[91]===ke?Y=t[92]:(Y=e=>{ke(e)},t[91]=ke,t[92]=Y);let X;t[93]!==j||t[94]!==De||t[95]!==Y||t[96]!==Ee?(X=(0,P.jsx)(en,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,value:Ee,isLoading:j,isSaving:De,ariaLabel:`AI Voice Cleanup`,onChange:Y}),t[93]=j,t[94]=De,t[95]=Y,t[96]=Ee,t[97]=X):X=t[97];let Z;t[98]===Me?Z=t[99]:(Z=e=>{Me(e)},t[98]=Me,t[99]=Z);let wt;t[100]!==je||t[101]!==F||t[102]!==Ae||t[103]!==Z?(wt=(0,P.jsx)(en,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,value:Ae,isLoading:je,isSaving:F,ariaLabel:`Spend`,onChange:Z}),t[100]=je,t[101]=F,t[102]=Ae,t[103]=Z,t[104]=wt):wt=t[104];let Tt;t[105]!==re||t[106]!==O||t[107]!==oe||t[108]!==ae||t[109]!==ie||t[110]!==ne?(Tt=(0,P.jsx)(tn,{status:ne,isLoading:O,isOpeningSettings:re,openSettingsError:ie,onRefresh:ae,onOpenSettings:oe}),t[105]=re,t[106]=O,t[107]=oe,t[108]=ae,t[109]=ie,t[110]=ne,t[111]=Tt):Tt=t[111];let Et;t[112]!==Le||t[113]!==Re||t[114]!==Ne||t[115]!==Fe||t[116]!==Ie||t[117]!==Pe||t[118]!==ze?(Et=(0,P.jsx)(nn,{supported:Pe,enabled:Ne,healthy:Fe,message:Ie,isLoading:Le,isSaving:Re,onChange:ze}),t[112]=Le,t[113]=Re,t[114]=Ne,t[115]=Fe,t[116]=Ie,t[117]=Pe,t[118]=ze,t[119]=Et):Et=t[119];let Dt;t[120]===We?Dt=t[121]:(Dt=e=>{We(e)},t[120]=We,t[121]=Dt);let Q;t[122]!==He||t[123]!==nt||t[124]!==Ve||t[125]!==L||t[126]!==Ue||t[127]!==Be||t[128]!==I||t[129]!==Dt?(Q=(0,P.jsx)(an,{enabled:Be,logPath:I,isEnvConfigured:Ve,ingestingHost:He,isLoading:L,isSaving:Ue,onChange:Dt,onCopyPath:nt}),t[122]=He,t[123]=nt,t[124]=Ve,t[125]=L,t[126]=Ue,t[127]=Be,t[128]=I,t[129]=Dt,t[130]=Q):Q=t[130];let Ot;t[131]!==rt||t[132]!==R||t[133]!==se||t[134]!==ce||t[135]!==z||t[136]!==le||t[137]!==k||t[138]!==pe||t[139]!==B||t[140]!==_e?(Ot=(0,P.jsx)(on,{bindMode:pe,isLoading:se,isSaving:ce,networkAddresses:k,needsRestart:le,showMobileQrCode:B,mobileNetworkUrl:z,copiedUrl:rt,onChangeMode:_e,onCopyUrl:R}),t[131]=rt,t[132]=R,t[133]=se,t[134]=ce,t[135]=z,t[136]=le,t[137]=k,t[138]=pe,t[139]=B,t[140]=_e,t[141]=Ot):Ot=t[141];let $;t[142]!==J||t[143]!==X||t[144]!==wt||t[145]!==Tt||t[146]!==Et||t[147]!==Q||t[148]!==Ot?($=(0,P.jsxs)(me,{className:`shrink-0`,children:[Ct,(0,P.jsx)(be,{className:`max-w-none pt-0`,children:(0,P.jsxs)(de,{children:[J,X,wt,Tt,Et,Q,Ot]})})]}),t[142]=J,t[143]=X,t[144]=wt,t[145]=Tt,t[146]=Et,t[147]=Q,t[148]=Ot,t[149]=$):$=t[149];let kt;t[150]===z?kt=t[151]:(kt=(0,P.jsx)(sn,{url:z}),t[150]=z,t[151]=kt);let At;t[152]!==St||t[153]!==$||t[154]!==kt?(At=(0,P.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[St,$,kt]}),t[152]=St,t[153]=$,t[154]=kt,t[155]=At):At=t[155];let jt;return t[156]!==Ke||t[157]!==At?(jt=(0,P.jsx)(ge,{loading:Ke,children:At}),t[156]=Ke,t[157]=At,t[158]=jt):jt=t[158],jt}function qt(e){let t=(0,M.c)(3),[n,r]=(0,N.useState)(!1),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e===0)return;r(!0);let t=setTimeout(()=>{r(!1)},Gt);return()=>{clearTimeout(t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,N.useEffect)(i,a),n}function Jt(e){let t=(0,M.c)(6),{theme:n,onThemeChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>{(e===`light`||e===`dark`||e===`system`)&&r(e)},t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=Bt.map(Yt),t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==n?(o=(0,P.jsx)(A,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,P.jsx)(De,{type:`single`,value:n,onValueChange:i,"aria-label":`Appearance`,className:Ut,children:a})}),t[3]=i,t[4]=n,t[5]=o):o=t[5],o}function Yt(e){let t=e.icon;return(0,P.jsx)(j,{value:e.value,"aria-label":e.label,className:Ht,children:(0,P.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Xt(e){let t=(0,M.c)(22),{wallpaperMode:n,wallpaperColor:r,onModeChange:i,onColorChange:a}=e,o;t[0]===i?o=t[1]:(o=e=>{(e===`image`||e===`background`||e===`color`)&&i(e)},t[0]=i,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=Vt.map(Zt),t[2]=s):s=t[2];let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=w(Ht,`relative overflow-hidden`),t[3]=c):c=t[3];let l;t[4]===r?l=t[5]:(l=(0,P.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:r},"aria-hidden":`true`}),t[4]=r,t[5]=l);let u;t[6]===i?u=t[7]:(u=()=>{i(`color`)},t[6]=i,t[7]=u);let d;t[8]!==a||t[9]!==i?(d=e=>{a(e.target.value),i(`color`)},t[8]=a,t[9]=i,t[10]=d):d=t[10];let f;t[11]!==u||t[12]!==d||t[13]!==r?(f=(0,P.jsx)(`input`,{type:`color`,value:r,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:u,onChange:d}),t[11]=u,t[12]=d,t[13]=r,t[14]=f):f=t[14];let p;t[15]!==l||t[16]!==f?(p=(0,P.jsxs)(j,{value:`color`,"aria-label":`Custom color`,className:c,children:[l,f]}),t[15]=l,t[16]=f,t[17]=p):p=t[17];let m;return t[18]!==o||t[19]!==p||t[20]!==n?(m=(0,P.jsx)(A,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,P.jsxs)(De,{type:`single`,value:n,onValueChange:o,"aria-label":`Wallpaper`,className:Ut,children:[s,p]})}),t[18]=o,t[19]=p,t[20]=n,t[21]=m):m=t[21],m}function Zt(e){let t=e.icon;return(0,P.jsx)(j,{value:e.value,"aria-label":e.label,className:Ht,children:(0,P.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Qt(e){let t=(0,M.c)(14),{brandColor:n,onColorChange:r,onReset:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=w(Ht,`relative cursor-pointer overflow-hidden`),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,P.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:n},"aria-hidden":`true`}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=e=>{r(e.target.value)},t[3]=r,t[4]=s);let c;t[5]!==n||t[6]!==s?(c=(0,P.jsx)(`input`,{type:`color`,value:n,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:s}),t[5]=n,t[6]=s,t[7]=c):c=t[7];let l;t[8]!==o||t[9]!==c?(l=(0,P.jsx)(`div`,{className:Ut,children:(0,P.jsxs)(`label`,{className:a,children:[o,c]})}),t[8]=o,t[9]=c,t[10]=l):l=t[10];let u;return t[11]!==i||t[12]!==l?(u=(0,P.jsx)(A,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:i,action:l}),t[11]=i,t[12]=l,t[13]=u):u=t[13],u}function $t(e){let t=(0,M.c)(10),{draftValue:n,defaultTurnCount:r,isLoading:i,isSaving:a,onChange:o,onBlur:s}=e,c=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${r} turns.`,l;t[0]===s?l=t[1]:(l=()=>{s()},t[0]=s,t[1]=l);let u=i||a,d;t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==u?(d=(0,P.jsx)(pe,{type:`number`,min:1,step:1,value:n,onChange:o,onBlur:l,disabled:u,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[2]=n,t[3]=o,t[4]=l,t[5]=u,t[6]=d):d=t[6];let f;return t[7]!==c||t[8]!==d?(f=(0,P.jsx)(A,{title:`Maximum Turn Count`,description:c,controlLayout:`row-end`,action:d}),t[7]=c,t[8]=d,t[9]=f):f=t[9],f}function en(e){let t=(0,M.c)(9),{title:n,description:r,value:i,isLoading:a,isSaving:o,ariaLabel:s,onChange:c}=e,l=a||o,u;t[0]!==s||t[1]!==c||t[2]!==l||t[3]!==i?(u=(0,P.jsx)(Ee,{value:i,onChange:c,disabled:l,ariaLabel:s}),t[0]=s,t[1]=c,t[2]=l,t[3]=i,t[4]=u):u=t[4];let d;return t[5]!==r||t[6]!==u||t[7]!==n?(d=(0,P.jsx)(A,{title:n,description:r,controlLayout:`row-end`,action:u}),t[5]=r,t[6]=u,t[7]=n,t[8]=d):d=t[8],d}function tn(e){let t=(0,M.c)(25),{status:n,isLoading:r,isOpeningSettings:i,openSettingsError:l,onRefresh:u,onOpenSettings:d}=e;if(!n?.isMacOS)return null;let f;t[0]!==r||t[1]!==n?.granted?(f=!r&&n?.granted?(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(p,{className:`h-4 w-4 text-green-500`}),(0,P.jsx)(`span`,{className:w(a.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}):r?null:(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(o,{className:`h-4 w-4 text-amber-500`}),(0,P.jsx)(`span`,{className:w(a.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),t[0]=r,t[1]=n?.granted,t[2]=f):f=t[2];let h;t[3]===u?h=t[4]:(h=()=>void u(),t[3]=u,t[4]=h);let _;t[5]===r?_=t[6]:(_=r?(0,P.jsx)(c,{className:`h-3.5 w-3.5 animate-spin`}):(0,P.jsx)(m,{className:`h-3.5 w-3.5`}),t[5]=r,t[6]=_);let v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,P.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`}),t[7]=v):v=t[7];let y;t[8]!==r||t[9]!==h||t[10]!==_?(y=(0,P.jsxs)(T,{variant:`ghost`,size:`icon-sm`,className:`h-7 w-7 shrink-0 rounded-full border-0 bg-background hover:bg-background hover:text-foreground`,onClick:h,disabled:r,children:[_,v]}),t[8]=r,t[9]=h,t[10]=_,t[11]=y):y=t[11];let b;t[12]!==f||t[13]!==y?(b=(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[f,y]}),t[12]=f,t[13]=y,t[14]=b):b=t[14];let x;t[15]!==r||t[16]!==i||t[17]!==d||t[18]!==l||t[19]!==n?.granted||t[20]!==n?.message?(x=!r&&!n?.granted?(0,P.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,P.jsx)(`p`,{className:a.bodyMuted,children:n?.message??`Tarsk needs Screen & Audio Recording permission to use browser tools.`}),(0,P.jsx)(T,{size:`sm`,onClick:()=>void d(),disabled:i,className:`w-fit`,children:i?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(c,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(g,{className:`h-4 w-4 mr-2`}),`Open System Settings`]})}),l&&(0,P.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[(0,P.jsx)(s,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),(0,P.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,P.jsx)(`p`,{className:a.body,children:`Failed to open System Settings`}),(0,P.jsx)(`p`,{className:a.bodyMuted,children:l}),(0,P.jsxs)(`p`,{className:a.bodyMuted,children:[`Please open it manually:`,` `,(0,P.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]})]})]})]}):null,t[15]=r,t[16]=i,t[17]=d,t[18]=l,t[19]=n?.granted,t[20]=n?.message,t[21]=x):x=t[21];let S;return t[22]!==b||t[23]!==x?(S=(0,P.jsx)(A,{title:`Screen & Audio Recording`,description:`Tarsk needs this macOS permission to capture screen content for browser tools and screen sharing features.`,controlLayout:`row-end`,action:b,children:x}),t[22]=b,t[23]=x,t[24]=S):S=t[24],S}function nn(e){let t=(0,M.c)(15),{supported:n,enabled:r,healthy:i,message:s,isLoading:c,isSaving:l,onChange:u}=e;if(!n)return null;let d=r&&i,f;t[0]!==i||t[1]!==u?(f=e=>{e&&!i||u(e).catch(rn)},t[0]=i,t[1]=u,t[2]=f):f=t[2];let p=c||l,m=!i,h;t[3]!==d||t[4]!==f||t[5]!==p||t[6]!==m?(h=(0,P.jsx)(Ee,{value:d,onChange:f,disabled:p,disableOn:m,ariaLabel:`Sandbox`}),t[3]=d,t[4]=f,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g;t[8]!==i||t[9]!==c||t[10]!==s?(g=!c&&!i?(0,P.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,P.jsx)(o,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,P.jsx)(`p`,{className:a.bodyMuted,children:s||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null,t[8]=i,t[9]=c,t[10]=s,t[11]=g):g=t[11];let _;return t[12]!==h||t[13]!==g?(_=(0,P.jsx)(A,{title:`Sandbox`,description:`Sandbox tools like bash and skill script execution to allow running and testing code safely without risking your system, files, or data.`,controlLayout:`row-end`,action:h,children:g}),t[12]=h,t[13]=g,t[14]=_):_=t[14],_}function rn(){}function an(e){let t=(0,M.c)(25),{enabled:n,logPath:r,isEnvConfigured:i,ingestingHost:o,isLoading:s,isSaving:c,onChange:l,onCopyPath:u}=e,d=s||c,f;t[0]!==n||t[1]!==l||t[2]!==d?(f=(0,P.jsx)(ie,{asChild:!0,children:(0,P.jsx)(`span`,{className:`inline-flex`,children:(0,P.jsx)(Ee,{value:n,onChange:l,disabled:d,ariaLabel:`Logging`})})}),t[0]=n,t[1]=l,t[2]=d,t[3]=f):f=t[3];let p=n&&r?`max-w-sm cursor-pointer`:`max-w-sm`,m;t[4]!==n||t[5]!==r||t[6]!==u?(m=n&&r?()=>void u():void 0,t[4]=n,t[5]=r,t[6]=u,t[7]=m):m=t[7];let h;t[8]!==n||t[9]!==r?(h=n&&r?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`p`,{children:`Click to copy log file path`}),(0,P.jsx)(`p`,{className:w(a.mono,`mt-1 break-all`),children:r})]}):(0,P.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[8]=n,t[9]=r,t[10]=h):h=t[10];let g;t[11]!==p||t[12]!==m||t[13]!==h?(g=(0,P.jsx)(ae,{className:p,onClick:m,children:h}),t[11]=p,t[12]=m,t[13]=h,t[14]=g):g=t[14];let _;t[15]!==f||t[16]!==g?(_=(0,P.jsxs)(oe,{children:[f,g]}),t[15]=f,t[16]=g,t[17]=_):_=t[17];let v;t[18]!==n||t[19]!==o||t[20]!==i?(v=n&&i&&o&&(0,P.jsxs)(`p`,{className:`${a.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,P.jsx)(`span`,{className:a.mono,children:o})]}),t[18]=n,t[19]=o,t[20]=i,t[21]=v):v=t[21];let y;return t[22]!==_||t[23]!==v?(y=(0,P.jsx)(A,{title:`Logging`,description:`Write verbose application logs to a local file. When Better Stack environment variables are configured, logs are sent there too.`,controlLayout:`row-end`,action:_,children:v}),t[22]=_,t[23]=v,t[24]=y):y=t[24],y}function on(e){let t=(0,M.c)(23),{bindMode:n,isLoading:r,isSaving:i,networkAddresses:o,needsRestart:s,showMobileQrCode:c,mobileNetworkUrl:l,copiedUrl:u,onChangeMode:d,onCopyUrl:f}=e,p=n===`network`,m;t[0]===d?m=t[1]:(m=e=>{d(e?`network`:`local`)},t[0]=d,t[1]=m);let h=r||i,g;t[2]!==p||t[3]!==m||t[4]!==h?(g=(0,P.jsx)(Ee,{value:p,onChange:m,disabled:h,ariaLabel:`Mobile & Network Access`}),t[2]=p,t[3]=m,t[4]=h,t[5]=g):g=t[5];let _;t[6]!==u||t[7]!==l||t[8]!==s||t[9]!==f||t[10]!==c?(_=c&&l&&(0,P.jsxs)(`div`,{className:`mt-3`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsxs)(`p`,{className:a.bodyMuted,children:[`Available on the network at:`,` `,(0,P.jsx)(`span`,{className:a.mono,children:l})]}),(0,P.jsxs)(oe,{children:[(0,P.jsx)(ie,{asChild:!0,children:(0,P.jsxs)(`button`,{type:`button`,onClick:()=>void f(),className:`inline-flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm transition-colors hover:bg-background`,children:[u?(0,P.jsx)(y,{className:`h-3.5 w-3.5 text-green-500`}):(0,P.jsx)(S,{className:`h-3.5 w-3.5`}),(0,P.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,P.jsx)(ae,{children:u?`Copied!`:`Copy to clipboard`})]})]}),s&&(0,P.jsx)(`p`,{className:`${a.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[6]=u,t[7]=l,t[8]=s,t[9]=f,t[10]=c,t[11]=_):_=t[11];let v;t[12]!==n||t[13]!==o?(v=n===`network`&&o.length===0&&(0,P.jsx)(`p`,{className:`${a.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[12]=n,t[13]=o,t[14]=v):v=t[14];let b;t[15]!==n||t[16]!==s?(b=s&&n===`local`&&(0,P.jsx)(`p`,{className:`${a.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[15]=n,t[16]=s,t[17]=b):b=t[17];let x;return t[18]!==g||t[19]!==_||t[20]!==v||t[21]!==b?(x=(0,P.jsxs)(A,{title:`Mobile & Network Access`,description:`Allow the Tarsk mobile app or other web browsers to access Tarsk on the wifi network.`,controlLayout:`row-end`,action:g,children:[_,v,b]}),t[18]=g,t[19]=_,t[20]=v,t[21]=b,t[22]=x):x=t[22],x}function sn(e){let t=(0,M.c)(3),{url:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,P.jsx)(Te,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,P.jsxs)(me,{className:`shrink-0`,children:[r,(0,P.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,P.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,P.jsx)(zt,{value:n,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}),t[1]=n,t[2]=i),i}export{Kt as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-BWuYHVi8.js";import{r as i}from"./store-BaMSfYoJ.js";import{Et as a}from"./dist-DIjomljy.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-DeNw35VZ.js";import{Bt as c,bn as l}from"./api-BMo_Lz8f.js";import{t as u}from"./use-toast-xpb5jNtN.js";import{In as d,Ln as f,Mn as p,Y as m,jn as h,kn as g}from"./index-DjaVbFDB.js";import{t as _}from"./use-settings-page-loading-BTySlInF.js";var v=e(t(),1),y=n();function b(){let e=i(e=>e.selectedThreadId),[t,n]=(0,v.useState)(``),[b,x]=(0,v.useState)(!0),[S,C]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{e&&x(!0)},[e]),(0,v.useEffect)(()=>{if(!e){x(!1);return}x(!0),c(e,`AGENTS.md`).then(e=>n(e.content)).catch(()=>n(``)).finally(()=>x(!1))},[e]);let w=_(e,[b]);async function T(){if(e){C(!0);try{await l(e,`AGENTS.md`,t),u({title:`Instructions saved`})}catch(e){u({title:`Error`,description:e instanceof Error?e.message:`Failed to save instructions`,variant:`destructive`})}finally{C(!1)}}}return e?(0,y.jsx)(p,{loading:w,children:(0,y.jsx)(h,{children:(0,y.jsxs)(f,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,y.jsx)(g,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md.`,sticky:!1,action:(0,y.jsx)(s,{onClick:T,disabled:S,children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,y.jsx)(m,{value:t,onChange:e=>n(e.target.value),className:o(r.mono,`frosted-scrollbar flex-1 min-h-0 resize-none`),placeholder:`Add instructions for your agent in AGENTS.md...`,disabled:S})]})})}):(0,y.jsx)(d,{children:`Select a thread to edit instructions.`})}export{b as SettingsInstructionsView,b as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{r as i}from"./store-CHF6tOp2.js";import{Et as a}from"./dist-CNOCRPxn.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-B6HDsfd5.js";import{Bt as c,bn as l}from"./api-D1GxdEEp.js";import{t as u}from"./use-toast-xpb5jNtN.js";import{Cn as d,On as f,X as p,kn as m,wn as h,xn as g}from"./index-BOB3ZUQs.js";import{t as _}from"./use-settings-page-loading-BTySlInF.js";var v=e(t(),1),y=n();function b(){let e=i(e=>e.selectedThreadId),[t,n]=(0,v.useState)(``),[b,x]=(0,v.useState)(!0),[S,C]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{e&&x(!0)},[e]),(0,v.useEffect)(()=>{if(!e){x(!1);return}x(!0),c(e,`AGENTS.md`).then(e=>n(e.content)).catch(()=>n(``)).finally(()=>x(!1))},[e]);let w=_(e,[b]);async function T(){if(e){C(!0);try{await l(e,`AGENTS.md`,t),u({title:`Instructions saved`})}catch(e){u({title:`Error`,description:e instanceof Error?e.message:`Failed to save instructions`,variant:`destructive`})}finally{C(!1)}}}return e?(0,y.jsx)(h,{loading:w,children:(0,y.jsx)(d,{children:(0,y.jsxs)(m,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,y.jsx)(g,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md.`,sticky:!1,action:(0,y.jsx)(s,{onClick:T,disabled:S,children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,y.jsx)(p,{value:t,onChange:e=>n(e.target.value),className:o(r.mono,`frosted-scrollbar flex-1 min-h-0 resize-none`),placeholder:`Add instructions for your agent in AGENTS.md...`,disabled:S})]})})}):(0,y.jsx)(f,{children:`Select a thread to edit instructions.`})}export{b as SettingsInstructionsView,b as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-aKtaBQYM.js";import{n as e,o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-BWuYHVi8.js";import{D as i,q as a}from"./dist-DIjomljy.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-DeNw35VZ.js";import{i as c,n as l,r as u,t as d}from"./tooltip-B6ziVyTv.js";import{An as f,Ft as p}from"./index-DjaVbFDB.js";import{t as m}from"./skeleton-DvLd14RU.js";import"./card-B4eI0NI-.js";var h=e();t();var g=n();function _(e){let t=(0,h.c)(14),{icon:n,title:i,description:a,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=o(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,g.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=o(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===i?f=t[6]:(f=(0,g.jsx)(`h3`,{className:d,children:i}),t[5]=i,t[6]=f);let p;t[7]===a?p=t[8]:(p=a?(0,g.jsx)(`p`,{className:o(r.bodyMuted,`mb-3`),children:a}):null,t[7]=a,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function v(e){let t=(0,h.c)(12),{placeholder:n,value:r,onChange:i,className:s}=e,c=s??`mb-4`,l;t[0]===c?l=t[1]:(l=o(`relative`,c),t[0]=c,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(a,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),t[2]=u):u=t[2];let d;t[3]===i?d=t[4]:(d=e=>i(e.target.value),t[3]=i,t[4]=d);let f;t[5]!==n||t[6]!==d||t[7]!==r?(f=(0,g.jsx)(p,{placeholder:n,value:r,onChange:d,className:`pl-8`}),t[5]=n,t[6]=d,t[7]=r,t[8]=f):f=t[8];let m;return t[9]!==l||t[10]!==f?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f]}),t[9]=l,t[10]=f,t[11]=m):m=t[11],m}function y(e){let t=(0,h.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,g.jsx)(`div`,{className:`grid gap-2 [grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))]`,children:n}),t[0]=n,t[1]=r),r}function b(e){let t=(0,h.c)(3),{searchQuery:n,emptyLabel:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=o(r.bodyMuted,`text-center py-8`),t[0]=a):a=t[0];let s=n.trim()?`No results for "${n}"`:i,c;return t[1]===s?c=t[2]:(c=(0,g.jsx)(`p`,{className:a,children:s}),t[1]=s,t[2]=c),c}function x(e){let t=(0,h.c)(3),{message:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=o(r.bodyMuted,`text-center py-8`),t[0]=i):i=t[0];let a;return t[1]===n?a=t[2]:(a=(0,g.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=a),a}var S=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function C(e){let t=(0,h.c)(19),{loading:n,items:r,emptyState:a,getKey:p,columnsClassName:v,compact:y,showHeader:b,renderContent:x,renderMiddle:C,onItemClick:w,itemClickLabel:T,onDelete:E,deleteAriaLabel:D,deleteTooltip:O}=e,k=v===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:v,A=y===void 0?!1:y,j=b===void 0?!0:b,M;t[0]===j?M=t[1]:(M=j?(0,g.jsx)(f,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==D||t[5]!==O||t[6]!==a||t[7]!==p||t[8]!==T||t[9]!==r||t[10]!==n||t[11]!==E||t[12]!==w||t[13]!==x||t[14]!==C?(N=n?(0,g.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,g.jsx)(m,{className:o(`w-full`,A?`h-9`:`h-12`)}),(0,g.jsx)(m,{className:o(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,g.jsx)(_,{...a}):(0,g.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,g.jsxs)(`div`,{className:o(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,w&&`cursor-pointer`),role:w?`button`:void 0,tabIndex:w?0:void 0,"aria-label":w?T?.(e):void 0,onClick:w?()=>w(e):void 0,onKeyDown:w?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),w(e))}:void 0,children:[x(e),C?.(e),(0,g.jsx)(u,{children:(0,g.jsxs)(d,{children:[(0,g.jsx)(c,{asChild:!0,children:(0,g.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,className:S,onClick:t=>{t.stopPropagation(),E(e)},"aria-label":D(e),children:(0,g.jsx)(i,{className:`h-4 w-4`})})}),(0,g.jsx)(l,{children:O})]})})]},p(e)))}),t[2]=k,t[3]=A,t[4]=D,t[5]=O,t[6]=a,t[7]=p,t[8]=T,t[9]=r,t[10]=n,t[11]=E,t[12]=w,t[13]=x,t[14]=C,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,g.jsxs)(g.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{b as a,y as i,_ as n,v as o,C as r,x as s,S as t};
1
+ import"./rolldown-runtime-aKtaBQYM.js";import{n as e,o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{D as i,q as a}from"./dist-CNOCRPxn.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-B6HDsfd5.js";import{i as c,n as l,r as u,t as d}from"./tooltip-BtJG5fZl.js";import{It as f,Sn as p}from"./index-BOB3ZUQs.js";import{t as m}from"./skeleton-DvLd14RU.js";import"./card-DZGd45nw.js";var h=e();t();var g=n();function _(e){let t=(0,h.c)(14),{icon:n,title:i,description:a,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=o(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,g.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=o(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===i?f=t[6]:(f=(0,g.jsx)(`h3`,{className:d,children:i}),t[5]=i,t[6]=f);let p;t[7]===a?p=t[8]:(p=a?(0,g.jsx)(`p`,{className:o(r.bodyMuted,`mb-3`),children:a}):null,t[7]=a,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function v(e){let t=(0,h.c)(12),{placeholder:n,value:r,onChange:i,className:s}=e,c=s??`mb-4`,l;t[0]===c?l=t[1]:(l=o(`relative`,c),t[0]=c,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(a,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),t[2]=u):u=t[2];let d;t[3]===i?d=t[4]:(d=e=>i(e.target.value),t[3]=i,t[4]=d);let p;t[5]!==n||t[6]!==d||t[7]!==r?(p=(0,g.jsx)(f,{placeholder:n,value:r,onChange:d,className:`pl-8`}),t[5]=n,t[6]=d,t[7]=r,t[8]=p):p=t[8];let m;return t[9]!==l||t[10]!==p?(m=(0,g.jsxs)(`div`,{className:l,children:[u,p]}),t[9]=l,t[10]=p,t[11]=m):m=t[11],m}function y(e){let t=(0,h.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,g.jsx)(`div`,{className:`grid gap-2 [grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))]`,children:n}),t[0]=n,t[1]=r),r}function b(e){let t=(0,h.c)(3),{searchQuery:n,emptyLabel:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=o(r.bodyMuted,`text-center py-8`),t[0]=a):a=t[0];let s=n.trim()?`No results for "${n}"`:i,c;return t[1]===s?c=t[2]:(c=(0,g.jsx)(`p`,{className:a,children:s}),t[1]=s,t[2]=c),c}function x(e){let t=(0,h.c)(3),{message:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=o(r.bodyMuted,`text-center py-8`),t[0]=i):i=t[0];let a;return t[1]===n?a=t[2]:(a=(0,g.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=a),a}var S=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function C(e){let t=(0,h.c)(19),{loading:n,items:r,emptyState:a,getKey:f,columnsClassName:v,compact:y,showHeader:b,renderContent:x,renderMiddle:C,onItemClick:w,itemClickLabel:T,onDelete:E,deleteAriaLabel:D,deleteTooltip:O}=e,k=v===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:v,A=y===void 0?!1:y,j=b===void 0?!0:b,M;t[0]===j?M=t[1]:(M=j?(0,g.jsx)(p,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==D||t[5]!==O||t[6]!==a||t[7]!==f||t[8]!==T||t[9]!==r||t[10]!==n||t[11]!==E||t[12]!==w||t[13]!==x||t[14]!==C?(N=n?(0,g.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,g.jsx)(m,{className:o(`w-full`,A?`h-9`:`h-12`)}),(0,g.jsx)(m,{className:o(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,g.jsx)(_,{...a}):(0,g.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,g.jsxs)(`div`,{className:o(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,w&&`cursor-pointer`),role:w?`button`:void 0,tabIndex:w?0:void 0,"aria-label":w?T?.(e):void 0,onClick:w?()=>w(e):void 0,onKeyDown:w?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),w(e))}:void 0,children:[x(e),C?.(e),(0,g.jsx)(u,{children:(0,g.jsxs)(d,{children:[(0,g.jsx)(c,{asChild:!0,children:(0,g.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,className:S,onClick:t=>{t.stopPropagation(),E(e)},"aria-label":D(e),children:(0,g.jsx)(i,{className:`h-4 w-4`})})}),(0,g.jsx)(l,{children:O})]})})]},f(e)))}),t[2]=k,t[3]=A,t[4]=D,t[5]=O,t[6]=a,t[7]=f,t[8]=T,t[9]=r,t[10]=n,t[11]=E,t[12]=w,t[13]=x,t[14]=C,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,g.jsxs)(g.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{b as a,y as i,_ as n,v as o,C as r,x as s,S as t};