tarsk 0.6.88 → 0.6.89
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.
- package/README.md +63 -24
- package/dist/index.js +787 -738
- package/dist/node_modules/@libsql/darwin-x64/README.md +3 -0
- package/dist/node_modules/@libsql/{darwin-arm64 → darwin-x64}/index.node +0 -0
- package/dist/node_modules/@libsql/{darwin-arm64 → darwin-x64}/package.json +6 -6
- package/dist/public/assets/api-8Rp2LlXt.js +1 -0
- package/dist/public/assets/api-Cp9I7CxD.js +2 -0
- package/dist/public/assets/{async-error-boundary-FT8_xvjy.js → async-error-boundary-CFVUPiuG.js} +1 -1
- package/dist/public/assets/{browser-tab-DCjHytQ8.js → browser-tab-CPPorbL6.js} +2 -2
- package/dist/public/assets/{chat-dock-context-a2bV9cnz.js → chat-dock-context-DbiJNr3O.js} +1 -1
- package/dist/public/assets/chat-handlers-context-DYU2LQ5V.js +9 -0
- package/dist/public/assets/{commit-dialog-C1oUFznJ.js → commit-dialog-DPaci3dp.js} +1 -1
- package/dist/public/assets/{commit-error-dialog--NTHg7Aw.js → commit-error-dialog-Dnlkgb_H.js} +1 -1
- package/dist/public/assets/{conversation-history-view-CdfE7JTD.js → conversation-history-view-CqIugfyO.js} +1 -1
- package/dist/public/assets/{create-project-dialog-BdR6iQE9.js → create-project-dialog-DStWPoDE.js} +2 -2
- package/dist/public/assets/{create-project-workspace-DSTTGom_.js → create-project-workspace-CJ94yHAB.js} +2 -2
- package/dist/public/assets/{create-repo-dialog-gw-8Rpdm.js → create-repo-dialog-B_QiEz-v.js} +1 -1
- package/dist/public/assets/diff-view-4koPcOcE.js +4 -0
- package/dist/public/assets/{explorer-file-drop-CzyAqZgf.js → explorer-file-drop-DAP7ha-E.js} +1 -1
- package/dist/public/assets/explorer-tab-view-Bt9hRZUm.js +2 -0
- package/dist/public/assets/explorer-tree-CAs89lPz.js +1 -0
- package/dist/public/assets/{explorer-view-Daxl93oM.js → explorer-view-B1JuejkU.js} +2 -2
- package/dist/public/assets/index-CcAwxnT5.js +97 -0
- package/dist/public/assets/index-dNrgKdYv.css +1 -0
- package/dist/public/assets/{markdown-renderer-D2VcKU4g.js → markdown-renderer-DQONI6WG.js} +3 -3
- package/dist/public/assets/{mcp-manager-D1HmLT3t.js → mcp-manager-D2FG-h2e.js} +1 -1
- package/dist/public/assets/{model-list-controls-rXmaDp2r.js → model-list-controls-B6ofHWh3.js} +1 -1
- package/dist/public/assets/{onboarding-dialog-DSqBJyBa.js → onboarding-dialog-DAut3X4K.js} +1 -1
- package/dist/public/assets/{pill-tabs-DtdTmrg7.js → pill-tabs-BAhOHad7.js} +1 -1
- package/dist/public/assets/{project-coding-view-DP4qKePE.js → project-coding-view-B2FpHeiO.js} +1 -1
- package/dist/public/assets/{project-danger-zone-view-CGxIenpr.js → project-danger-zone-view-BqP1dcRT.js} +1 -1
- package/dist/public/assets/{project-env-vars-view-DKyQkh7h.js → project-env-vars-view-zhigkQFG.js} +1 -1
- package/dist/public/assets/{project-model-aliases-view-BewwJZAx.js → project-model-aliases-view-APAVFfym.js} +1 -1
- package/dist/public/assets/{project-settings-view-CE4nAz5B.js → project-settings-view-FnK-LRsv.js} +1 -1
- package/dist/public/assets/project-tools-view-Dmp5ViRC.js +1 -0
- package/dist/public/assets/providers-list-view-Clbp73Hh.js +1 -0
- package/dist/public/assets/{pull-request-dialog-nKYATjbm.js → pull-request-dialog-D40BQPMk.js} +1 -1
- package/dist/public/assets/{pull-with-changes-dialog-zzoFzCv4.js → pull-with-changes-dialog-pkXK-VP2.js} +1 -1
- package/dist/public/assets/query-keys-CcnonAAG.js +1 -0
- package/dist/public/assets/{remote-media-url-CyuN31H_.js → remote-media-url-C-GdJb-D.js} +1 -1
- package/dist/public/assets/{scroll-area-CGEZ1gAL.js → scroll-area-DGF9wUqQ.js} +1 -1
- package/dist/public/assets/{select-BR2pG61R.js → select-DMcNYwgt.js} +1 -1
- package/dist/public/assets/{settings-general-tabs-view-BWR0UX2P.js → settings-general-tabs-view-DBZQbihJ.js} +2 -2
- package/dist/public/assets/settings-general-view-0dhBET2R.js +1 -0
- package/dist/public/assets/{settings-list-Dgip9HpD.js → settings-list-Co3JPr9w.js} +1 -1
- package/dist/public/assets/{settings-logs-view-CS29x4VT.js → settings-logs-view-DvHXUDko.js} +2 -2
- package/dist/public/assets/settings-mcp-servers-view-414Dt5py.js +5 -0
- package/dist/public/assets/{settings-models-view-DS7nm54P.js → settings-models-view-ByeR7Enb.js} +1 -1
- package/dist/public/assets/{settings-plugins-view-avaUE36r.js → settings-plugins-view-8te2MPyh.js} +2 -2
- package/dist/public/assets/{settings-providers-view-B39k1iRQ.js → settings-providers-view-BAuv9gam.js} +2 -2
- package/dist/public/assets/{settings-remote-machines-view-BXondQG_.js → settings-remote-machines-view-CHyywazU.js} +1 -1
- package/dist/public/assets/{settings-setup-view-I5MGUi_D.js → settings-setup-view-Btp46Vh_.js} +2 -2
- package/dist/public/assets/{settings-skills-view-BKrUABbi.js → settings-skills-view-BNVx4bZl.js} +2 -2
- package/dist/public/assets/{settings-slack-view-B0p-96GC.js → settings-slack-view-Caly5yGt.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-m6mp1knu.js +1 -0
- package/dist/public/assets/{settings-statistics-view-B3g6BD7p.js → settings-statistics-view-BnOxr4sZ.js} +1 -1
- package/dist/public/assets/settings-storage-view-Dg8xfpTG.js +1 -0
- package/dist/public/assets/{settings-subagents-view-BziLwvNq.js → settings-subagents-view-CucwEk2A.js} +1 -1
- package/dist/public/assets/{settings-system-prompt-view-BqAk56cD.js → settings-system-prompt-view-CEDU2saT.js} +1 -1
- package/dist/public/assets/{settings-tab-bar-DYzU_lmi.js → settings-tab-bar-CdIbQ0WI.js} +1 -1
- package/dist/public/assets/settings-view-XcJhRclT.js +2 -0
- package/dist/public/assets/task-utils-Cnq9Eszt.js +1 -0
- package/dist/public/assets/tasks-view-B8_jkq_a.js +1 -0
- package/dist/public/assets/{terminal-panel-Bm_ZelN-.js → terminal-panel-xoLVfA-h.js} +1 -1
- package/dist/public/assets/{use-account-settings-query-C-zOdREq.js → use-account-settings-query-D_qL1I4w.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-4Ss8lB9K.js → use-active-dock-panel-instance-kmJOnmL7.js} +1 -1
- package/dist/public/assets/use-git-check-BD9gdXpK.js +1 -0
- package/dist/public/assets/{use-installed-ai-files-DQey9Zm3.js → use-installed-ai-files-Nn-sN_V2.js} +1 -1
- package/dist/public/assets/{use-open-chat-dock-panel-DqfWJ8e8.js → use-open-chat-dock-panel-CXzpgxVs.js} +1 -1
- package/dist/public/assets/use-projects-B0xTjTaA.js +2 -0
- package/dist/public/assets/{web-CGP-jEpi.js → web-C1tBQoCB.js} +1 -1
- package/dist/public/assets/{web-CKC9gpFi.js → web-cJXG33sT.js} +1 -1
- package/dist/public/index.html +18 -18
- package/package.json +4 -4
- package/dist/node_modules/@libsql/darwin-arm64/README.md +0 -3
- package/dist/public/assets/account-view-DkuCOxkE.js +0 -1
- package/dist/public/assets/api-B_GSyYGh.js +0 -1
- package/dist/public/assets/api-C4ukGdyH.js +0 -2
- package/dist/public/assets/chat-handlers-context-2xSKzkKa.js +0 -9
- package/dist/public/assets/diff-view-B6JJNyn1.js +0 -4
- package/dist/public/assets/explorer-tab-view-CiUPh4uK.js +0 -2
- package/dist/public/assets/explorer-tree-BA12VLz_.js +0 -1
- package/dist/public/assets/index-CoY8DilQ.js +0 -97
- package/dist/public/assets/index-D14wLW4o.css +0 -1
- package/dist/public/assets/project-tools-view-CbDfst02.js +0 -1
- package/dist/public/assets/providers-list-view-BtwccvX2.js +0 -1
- package/dist/public/assets/query-keys-BwswkbMn.js +0 -1
- package/dist/public/assets/settings-general-view-BhtrDmJH.js +0 -1
- package/dist/public/assets/settings-mcp-servers-view-B5ithpfh.js +0 -5
- package/dist/public/assets/settings-slash-commands-view-DA1scWv1.js +0 -1
- package/dist/public/assets/settings-storage-view-BJvjhI4f.js +0 -1
- package/dist/public/assets/settings-view-zjMs7jNe.js +0 -2
- package/dist/public/assets/task-utils-BZPVmvY4.js +0 -1
- package/dist/public/assets/tasks-view-wFf77AQX.js +0 -1
- package/dist/public/assets/use-git-check-CumqGAvN.js +0 -1
- package/dist/public/assets/use-projects-CizIH2Fa.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i,x as a}from"./dist-v_MvKS2-.js";import{Fn as o,In as s,Jn as c,Lt as l,W as u,Y as d,ni as f,sn as p,v as m,zt as h}from"./api-C4ukGdyH.js";import{n as g,r as _,t as v}from"./use-git-check-CumqGAvN.js";import{r as y,t as b}from"./utils-CqsIXqSC.js";import{t as x}from"./check-skFQ1X72.js";import{t as S}from"./loader-circle-CrqRIqdA.js";import{a as C,i as w,o as T,r as E,s as D,t as O}from"./dialog-D_12AsZd.js";import{t as k}from"./button-DDaJhJP1.js";import{i as A,n as j,r as M,t as N}from"./tooltip-CqwCZ7wt.js";import{t as P}from"./label-BCs5CZEs.js";import{n as F}from"./scroll-area-CGEZ1gAL.js";import{Fr as I,G as L,J as ee,K as R,Ln as z,Or as B,Q as te,X as ne,Y as V,Z as H,gn as U,it as W,jr as G,ut as re,vr as ie,vt as ae,wt as K}from"./index-CoY8DilQ.js";import{n as q,t as oe}from"./toggle-group-CPmseZfb.js";import{t as se}from"./sorting-DqwxPMRN.js";import{t as ce}from"./pending-changes-Bn-0ak1d.js";var J=t(),Y=r();function le(e){let t=(0,J.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Y.jsx)(S,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,Y.jsx)(g,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,Y.jsx)(_,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}var X=e(n(),1);function ue(e){let t=(0,J.c)(34),{model:n,disabled:r,willBeEnabled:a,isRecommended:o,onToggle:s}=e,c;t[0]===n.id?c=t[1]:(c=K(n.id),t[0]=n.id,t[1]=c);let l=c,u=n.pricing,d=a&&o,f;t[2]!==n.id||t[3]!==s?(f=function(){s(n.id)},t[2]=n.id,t[3]=s,t[4]=f):f=t[4];let p=f,m=r&&`opacity-25`,h;t[5]===m?h=t[6]:(h=b(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,m),t[5]=m,t[6]=h);let g=`${l} ${a?`enabled`:`disabled`}`,_;t[7]!==r||t[8]!==p||t[9]!==n.id||t[10]!==g||t[11]!==a?(_=(0,Y.jsx)(L,{id:n.id,disabled:r,value:a,onChange:p,ariaLabel:g}),t[7]=r,t[8]=p,t[9]=n.id,t[10]=g,t[11]=a,t[12]=_):_=t[12];let v=n.id,x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=b(i.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=x):x=t[13];let S;t[14]===d?S=t[15]:(S=d&&(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=d,t[15]=S);let C;t[16]!==l||t[17]!==n.id||t[18]!==S?(C=(0,Y.jsxs)(`label`,{htmlFor:v,className:x,children:[l,S]}),t[16]=l,t[17]=n.id,t[18]=S,t[19]=C):C=t[19];let w;t[20]===u?w=t[21]:(w=u&&(0,Y.jsx)(`span`,{className:b(i.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(u.prompt??0)<=0&&(u.completion??0)<=0?`Free`:`${y(u.prompt??0)} in | ${y(u.completion??0)} out`}),t[20]=u,t[21]=w);let T;t[22]!==C||t[23]!==w?(T=(0,Y.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[C,w]}),t[22]=C,t[23]=w,t[24]=T):T=t[24];let E;t[25]!==T||t[26]!==h||t[27]!==_?(E=(0,Y.jsx)(A,{asChild:!0,children:(0,Y.jsxs)(`div`,{className:h,children:[_,T]})}),t[25]=T,t[26]=h,t[27]=_,t[28]=E):E=t[28];let D;t[29]===n.description?D=t[30]:(D=n.description&&(0,Y.jsx)(j,{side:`top`,className:`max-w-xs`,children:(0,Y.jsx)(`p`,{className:i.body,children:n.description})}),t[29]=n.description,t[30]=D);let O;return t[31]!==E||t[32]!==D?(O=(0,Y.jsxs)(N,{children:[E,D]}),t[31]=E,t[32]=D,t[33]=O):O=t[33],O}function de(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function fe(e){return[K(e.id),e.name,de(e.name)]}function pe(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return fe(e).some(e=>n.has(e.toLowerCase()))}function me(e,t){return e.filter(e=>pe(e,t)).map(e=>e.id)}var Z=a(`app.model-selector.ui`),Q=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function he({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:a=`grid`,autoSelectRecommended:o=!1}){let[s,c]=(0,X.useState)([]),[l,u]=(0,X.useState)(new Set),[f,p]=(0,X.useState)(new Set),[m,g]=(0,X.useState)(new Map),[_,v]=(0,X.useState)(!1),[y,x]=(0,X.useState)(``),[C,w]=(0,X.useState)(`alphabetical`);(0,X.useEffect)(()=>{T()},[e]);let T=async()=>{v(!0),x(``),w(`alphabetical`);try{let t=await d(e);c(t.models);let n=new Set(t.enabledModelIds);u(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await h();i=new Set(me(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){Z.error(`Failed to load recommended models:`,e)}p(i),g(r),E(n,r,t.models)}catch(t){Z.error(`Failed to load models for ${e}:`,t),c([]),u(new Set),p(new Set)}finally{v(!1)}},E=(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)},D=e=>{g(t=>{let n=ce(t,e,l);return E(l,n),n})},O=e=>{g(t=>{let n=new Map(t);return s.forEach(t=>{let r=l.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),E(l,n),n})},k=e=>K(e.id);function A(e,t=m){let n=t.has(e),r=t.get(e);return n?!!r:l.has(e)}let j=se({models:s,query:y,sortBy:C,getDisplayName:k,getPriority:e=>+!A(e.id)}),N=C===`alphabetical`?`alphabetical`:`price`;function P(e){if(e===`alphabetical`){w(`alphabetical`);return}e===`price`&&w(`price-low`)}function F(){C!==`alphabetical`&&w(e=>e===`price-low`?`price-high`:`price-low`)}return _||n?(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Y.jsx)(S,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,Y.jsx)(`div`,{className:`text-center py-8`,children:(0,Y.jsx)(`p`,{className:i.bodyMuted,children:`No models available for this provider.`})}):a===`compact`?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:b(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Y.jsx)(L,{id:`select-all-models`,disabled:r,value:s.every(e=>A(e.id)),onChange:e=>O(e),ariaLabel:`Select all models`}),(0,Y.jsx)(`label`,{htmlFor:`select-all-models`,className:b(i.body,`cursor-pointer`),children:`Select all models`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,Y.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,Y.jsx)(z,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,Y.jsx)(U,{placeholder:`Search models...`,value:y,onChange:e=>x(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,Y.jsxs)(oe,{type:`single`,value:N,onValueChange:P,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,Y.jsx)(q,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:Q,children:(0,Y.jsx)(G,{className:`h-4 w-4`})}),(0,Y.jsx)(q,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:Q,onClick:F,children:(0,Y.jsx)(ie,{className:`h-4 w-4`})})]})]})]}),(0,Y.jsx)(M,{children:(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:j.length===0?(0,Y.jsx)(`div`,{className:`text-center py-4`,children:(0,Y.jsx)(`p`,{className:i.bodyMuted,children:y?`No models match your search.`:`No models available.`})}):j.map(e=>(0,Y.jsx)(ue,{model:e,disabled:r,willBeEnabled:A(e.id),isRecommended:f.has(e.id),onToggle:D},e.id))})})]}):null}function ge(e){let t=(0,J.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(he,{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 _e(e,t,n){return e||t||n}function ve(e,t,n){return e||!t.trim()||!n}function ye(e){let t=(0,J.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:u,onContinue:d,onValidate:f,onFinish:p}=e,m,h;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(m=_e(r,a,o),h=ve(m,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=m,t[6]=h):(m=t[5],h=t[6]);let g=h,_;t[7]!==n||t[8]!==l||t[9]!==m?(_=n===`provider-selection`?(0,Y.jsx)(k,{variant:`ghost`,onClick:l,disabled:m,children:`Skip for now`}):null,t[7]=n,t[8]=l,t[9]=m,t[10]=_):_=t[10];let v;t[11]===_?v=t[12]:(v=(0,Y.jsx)(`div`,{children:_}),t[11]=_,t[12]=v);let y;t[13]!==n||t[14]!==u||t[15]!==m?(y=n===`git-check`?null:(0,Y.jsx)(k,{variant:`outline`,onClick:u,disabled:m,children:`Back`}),t[13]=n,t[14]=u,t[15]=m,t[16]=y):y=t[16];let b;t[17]!==n||t[18]!==i||t[19]!==d?(b=n===`git-check`?(0,Y.jsxs)(k,{onClick:d,disabled:i,className:`gap-2`,children:[`Continue `,(0,Y.jsx)(B,{className:`h-4 w-4`})]}):null,t[17]=n,t[18]=i,t[19]=d,t[20]=b):b=t[20];let w;t[21]!==n||t[22]!==f||t[23]!==g||t[24]!==a?(w=n===`provider-selection`?(0,Y.jsx)(k,{onClick:f,disabled:g,className:`gap-2`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(S,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,Y.jsxs)(Y.Fragment,{children:[`Next `,(0,Y.jsx)(B,{className:`h-4 w-4`})]})}):null,t[21]=n,t[22]=f,t[23]=g,t[24]=a,t[25]=w):w=t[25];let T;t[26]!==n||t[27]!==p||t[28]!==r?(T=n===`model-selection`?(0,Y.jsx)(k,{onClick:p,disabled:r,className:`gap-2`,children:r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(S,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,Y.jsxs)(Y.Fragment,{children:[`Finish `,(0,Y.jsx)(x,{className:`h-4 w-4`})]})}):null,t[26]=n,t[27]=p,t[28]=r,t[29]=T):T=t[29];let E;t[30]!==y||t[31]!==b||t[32]!==w||t[33]!==T?(E=(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[y,b,w,T]}),t[30]=y,t[31]=b,t[32]=w,t[33]=T,t[34]=E):E=t[34];let D;return t[35]!==v||t[36]!==E?(D=(0,Y.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,Y.jsxs)(C,{className:`flex items-center justify-between`,children:[v,E]})}),t[35]=v,t[36]=E,t[37]=D):D=t[37],D}function be(e){let t=(0,J.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:a,onApiKeyChange:o,validatingKey:s,connectingOpenRouter:c,savingOnboarding:l,providerEnvValues:u,onProviderEnvChange:d,keyError:f,onConnectOpenRouter:p}=e,m;t[0]!==c||t[1]!==l||t[2]!==s?(m=_e(l,s,c),t[0]=c,t[1]=l,t[2]=s,t[3]=m):m=t[3];let h=m,g;t[4]!==a||t[5]!==o||t[6]!==p||t[7]!==r||t[8]!==h||t[9]!==n?(g=(0,Y.jsx)(R,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:a,onApiKeyChange:o,variant:`dropdown`,isLoading:h,onConnectOpenRouter:p}),t[4]=a,t[5]=o,t[6]=p,t[7]=r,t[8]=h,t[9]=n,t[10]=g):g=t[10];let _;t[11]!==d||t[12]!==h||t[13]!==u||t[14]!==n?(_=n&&ne(n).map(e=>(0,Y.jsx)(re,{label:(0,Y.jsx)(P,{htmlFor:e,children:V(e)}),control:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`input`,{id:e,value:u[e]??``,onChange:t=>d(e,t.target.value),disabled:h,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,Y.jsx)(`p`,{className:b(i.bodyMuted,`mt-2 break-all`),children:te(n,u)||n.api}):null]}),align:`start`},e)),t[11]=d,t[12]=h,t[13]=u,t[14]=n,t[15]=_):_=t[15];let v;t[16]===f?v=t[17]:(v=f?(0,Y.jsx)(W,{variant:`error`,className:`mb-0`,children:f}):null,t[16]=f,t[17]=v);let y;return t[18]!==g||t[19]!==_||t[20]!==v?(y=(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[g,_,v]}),t[18]=g,t[19]=_,t[20]=v,t[21]=y):y=t[21],y}function xe(e){let t=(0,J.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Select an AI Provider`}),(0,Y.jsx)(w,{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,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Select Models`}),(0,Y.jsx)(w,{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,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Let's get started`}),(0,Y.jsx)(w,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function Se(e){let t=(0,J.c)(26),{currentStep:n}=e,r=function(e){return e===`provider-selection`&&n===`provider-selection`||n===`model-selection`},a=function(e){return n===e},o=a(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,o),t[0]=o,t[1]=s);let c;t[2]===s?c=t[3]:(c=(0,Y.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=b(`h-0.5 flex-1`,l),t[4]=l,t[5]=u);let d;t[6]===u?d=t[7]:(d=(0,Y.jsx)(`div`,{className:u}),t[6]=u,t[7]=d);let f=a(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,p;t[8]===f?p=t[9]:(p=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,f),t[8]=f,t[9]=p);let m;t[10]===p?m=t[11]:(m=(0,Y.jsx)(`div`,{className:p,children:`2`}),t[10]=p,t[11]=m);let h=r(`model-selection`)?`bg-primary`:`bg-muted`,g;t[12]===h?g=t[13]:(g=b(`h-0.5 flex-1`,h),t[12]=h,t[13]=g);let _;t[14]===g?_=t[15]:(_=(0,Y.jsx)(`div`,{className:g}),t[14]=g,t[15]=_);let v=a(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,y;t[16]===v?y=t[17]:(y=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,v),t[16]=v,t[17]=y);let x;t[18]===y?x=t[19]:(x=(0,Y.jsx)(`div`,{className:y,children:`3`}),t[18]=y,t[19]=x);let S;return t[20]!==_||t[21]!==x||t[22]!==c||t[23]!==d||t[24]!==m?(S=(0,Y.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[c,d,m,_,x]}),t[20]=_,t[21]=x,t[22]=c,t[23]=d,t[24]=m,t[25]=S):S=t[25],S}var $=a(`app.onboarding-dialog.ui`);async function Ce(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),f.invalidate(`providers`);let e=(await l()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function we(e,t,n){let[r,i]=(0,X.useState)(`git-check`),a=v({enabled:e&&r===`git-check`}),f=(0,X.useRef)(!1),[h,g]=(0,X.useState)([]),[_,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)({}),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(new Set),[M,N]=(0,X.useState)(!1),[P,F]=(0,X.useState)(!1);async function I(){try{let e=await l();if(g(e),e.length>0&&!_){let t=ee(e);t&&(y(t),x(t.apiKey??``),T(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}}async function L(){if(_){N(!0);try{await d(_.name),j(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{N(!1)}}}(0,X.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!f.current&&(f.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,X.useEffect)(()=>{e&&r===`provider-selection`&&h.length===0&&I()},[e,r,h.length]),(0,X.useEffect)(()=>{e&&r===`model-selection`&&_&&L()},[e,r,_]);async function R(){if(!_||!b.trim()){k(`Please enter an API key`);return}let e=ne(_),t=e.find(e=>!w[e]?.trim());if(t){k(`Please enter ${V(t)}`);return}D(!0),k(``);try{e.length>0&&await o(Object.fromEntries(e.map(e=>[e,w[e].trim()]))),await s(_.slug,b),i(`model-selection`)}catch(e){k(e instanceof Error?e.message:`Failed to validate API key`)}finally{D(!1)}}async function z(){if(_){F(!0);try{for(let e of A)await u(_.slug,e);ae(),await m(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{F(!1)}}}async function B(){F(!0);try{await m(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{F(!1)}}function te(e){y(e),x(e.apiKey??``),T(e.envValues??{}),k(``)}function H(e,t){T(n=>({...n,[e]:t}))}function U(){i(`provider-selection`)}async function W(){if(!S){C(!0),k(``);try{let e=await c();await p(e);let t=await Ce();if(!t){k(`OpenRouter connection timed out. You can enter an API key manually.`);return}y(t),x(t.apiKey??``),i(`model-selection`)}catch(e){k(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{C(!1)}}}function G(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return{currentStep:r,git:a,selectedProvider:_,apiKey:b,setApiKey:x,connectingOpenRouter:S,validatingKey:E,savingOnboarding:P,providerEnvValues:w,keyError:O,modelsLoading:M,setEnabledModelIds:j,handleProviderChange:te,handleProviderEnvChange:H,handleGitCheckProceed:U,handleConnectOpenRouter:W,handleBack:G,skipOnboarding:B,validateAndMoveNext:R,finishOnboarding:z}}function Te(e){e.preventDefault()}function Ee(e){let t=(0,J.c)(47),{open:n,onOpenChange:r,onComplete:i}=e,a=we(n,r,i),o;t[0]===a.currentStep?o=t[1]:(o=(0,Y.jsx)(Se,{currentStep:a.currentStep}),t[0]=a.currentStep,t[1]=o);let s;t[2]===a.currentStep?s=t[3]:(s=(0,Y.jsx)(T,{children:(0,Y.jsx)(xe,{currentStep:a.currentStep})}),t[2]=a.currentStep,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,Y.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]!==a.currentStep||t[8]!==a.git?(l=a.currentStep===`git-check`?(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(le,{gitLoading:a.git.loading,gitInstalled:a.git.gitInstalled,version:a.git.version,platform:a.git.platform,plan:a.git.plan,onCheckAgain:()=>void a.git.check()})}):null,t[7]=a.currentStep,t[8]=a.git,t[9]=l):l=t[9];let u;t[10]===a?u=t[11]:(u=a.currentStep===`provider-selection`?(0,Y.jsx)(be,{selectedProvider:a.selectedProvider,onProviderChange:a.handleProviderChange,apiKey:a.apiKey,onApiKeyChange:a.setApiKey,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,savingOnboarding:a.savingOnboarding,providerEnvValues:a.providerEnvValues,onProviderEnvChange:a.handleProviderEnvChange,keyError:a.keyError,onConnectOpenRouter:()=>void a.handleConnectOpenRouter()}):null,t[10]=a,t[11]=u);let d;t[12]!==a.currentStep||t[13]!==a.modelsLoading||t[14]!==a.selectedProvider||t[15]!==a.setEnabledModelIds?(d=a.currentStep===`model-selection`&&a.selectedProvider?(0,Y.jsx)(ge,{providerSlug:a.selectedProvider.slug,modelsLoading:a.modelsLoading,onModelsChange:a.setEnabledModelIds}):null,t[12]=a.currentStep,t[13]=a.modelsLoading,t[14]=a.selectedProvider,t[15]=a.setEnabledModelIds,t[16]=d):d=t[16];let f;t[17]!==l||t[18]!==u||t[19]!==d?(f=(0,Y.jsx)(F,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,Y.jsxs)(`div`,{className:`px-6 py-4`,children:[l,u,d]})}),t[17]=l,t[18]=u,t[19]=d,t[20]=f):f=t[20];let p=!!a.selectedProvider,m;t[21]===a?m=t[22]:(m=()=>void a.skipOnboarding(),t[21]=a,t[22]=m);let h,g;t[23]===a?(h=t[24],g=t[25]):(h=()=>void a.validateAndMoveNext(),g=()=>void a.finishOnboarding(),t[23]=a,t[24]=h,t[25]=g);let _;t[26]!==a.apiKey||t[27]!==a.connectingOpenRouter||t[28]!==a.currentStep||t[29]!==a.git.loading||t[30]!==a.handleBack||t[31]!==a.handleGitCheckProceed||t[32]!==a.savingOnboarding||t[33]!==a.validatingKey||t[34]!==h||t[35]!==g||t[36]!==p||t[37]!==m?(_=(0,Y.jsx)(ye,{currentStep:a.currentStep,savingOnboarding:a.savingOnboarding,gitLoading:a.git.loading,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,apiKey:a.apiKey,hasProvider:p,onSkip:m,onBack:a.handleBack,onContinue:a.handleGitCheckProceed,onValidate:h,onFinish:g}),t[26]=a.apiKey,t[27]=a.connectingOpenRouter,t[28]=a.currentStep,t[29]=a.git.loading,t[30]=a.handleBack,t[31]=a.handleGitCheckProceed,t[32]=a.savingOnboarding,t[33]=a.validatingKey,t[34]=h,t[35]=g,t[36]=p,t[37]=m,t[38]=_):_=t[38];let v;t[39]!==_||t[40]!==c||t[41]!==f?(v=(0,Y.jsxs)(E,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:Te,children:[c,f,_]}),t[39]=_,t[40]=c,t[41]=f,t[42]=v):v=t[42];let y;return t[43]!==r||t[44]!==n||t[45]!==v?(y=(0,Y.jsx)(O,{open:n,onOpenChange:r,children:v}),t[43]=r,t[44]=n,t[45]=v,t[46]=y):y=t[46],y}export{ye as OnboardingFooter,Ee as default};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i,x as a}from"./dist-v_MvKS2-.js";import{Fn as o,It as s,Kn as c,Pn as l,Rt as u,U as d,Y as f,_ as p,ei as m,on as h}from"./api-Cp9I7CxD.js";import{n as g,r as _,t as v}from"./use-git-check-BD9gdXpK.js";import{r as y,t as b}from"./utils-CqsIXqSC.js";import{t as x}from"./check-skFQ1X72.js";import{t as S}from"./loader-circle-CrqRIqdA.js";import{a as C,i as w,o as T,r as E,s as D,t as O}from"./dialog-D_12AsZd.js";import{t as k}from"./button-DDaJhJP1.js";import{i as A,n as j,r as M,t as N}from"./tooltip-CqwCZ7wt.js";import{t as P}from"./label-BCs5CZEs.js";import{n as F}from"./scroll-area-DGF9wUqQ.js";import{Er as I,G as L,In as R,J as ee,K as z,Nr as B,Q as te,X as ne,Y as V,Z as H,_r as U,gn as W,it as G,kr as re,ut as ie,vt as ae,wt as K}from"./index-CcAwxnT5.js";import{n as q,t as oe}from"./toggle-group-CPmseZfb.js";import{t as se}from"./sorting-DqwxPMRN.js";import{t as ce}from"./pending-changes-Bn-0ak1d.js";var J=t(),Y=r();function le(e){let t=(0,J.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Y.jsx)(S,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,Y.jsx)(g,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,Y.jsx)(_,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}var X=e(n(),1);function ue(e){let t=(0,J.c)(34),{model:n,disabled:r,willBeEnabled:a,isRecommended:o,onToggle:s}=e,c;t[0]===n.id?c=t[1]:(c=K(n.id),t[0]=n.id,t[1]=c);let l=c,u=n.pricing,d=a&&o,f;t[2]!==n.id||t[3]!==s?(f=function(){s(n.id)},t[2]=n.id,t[3]=s,t[4]=f):f=t[4];let p=f,m=r&&`opacity-25`,h;t[5]===m?h=t[6]:(h=b(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,m),t[5]=m,t[6]=h);let g=`${l} ${a?`enabled`:`disabled`}`,_;t[7]!==r||t[8]!==p||t[9]!==n.id||t[10]!==g||t[11]!==a?(_=(0,Y.jsx)(L,{id:n.id,disabled:r,value:a,onChange:p,ariaLabel:g}),t[7]=r,t[8]=p,t[9]=n.id,t[10]=g,t[11]=a,t[12]=_):_=t[12];let v=n.id,x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=b(i.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=x):x=t[13];let S;t[14]===d?S=t[15]:(S=d&&(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=d,t[15]=S);let C;t[16]!==l||t[17]!==n.id||t[18]!==S?(C=(0,Y.jsxs)(`label`,{htmlFor:v,className:x,children:[l,S]}),t[16]=l,t[17]=n.id,t[18]=S,t[19]=C):C=t[19];let w;t[20]===u?w=t[21]:(w=u&&(0,Y.jsx)(`span`,{className:b(i.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(u.prompt??0)<=0&&(u.completion??0)<=0?`Free`:`${y(u.prompt??0)} in | ${y(u.completion??0)} out`}),t[20]=u,t[21]=w);let T;t[22]!==C||t[23]!==w?(T=(0,Y.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[C,w]}),t[22]=C,t[23]=w,t[24]=T):T=t[24];let E;t[25]!==T||t[26]!==h||t[27]!==_?(E=(0,Y.jsx)(A,{asChild:!0,children:(0,Y.jsxs)(`div`,{className:h,children:[_,T]})}),t[25]=T,t[26]=h,t[27]=_,t[28]=E):E=t[28];let D;t[29]===n.description?D=t[30]:(D=n.description&&(0,Y.jsx)(j,{side:`top`,className:`max-w-xs`,children:(0,Y.jsx)(`p`,{className:i.body,children:n.description})}),t[29]=n.description,t[30]=D);let O;return t[31]!==E||t[32]!==D?(O=(0,Y.jsxs)(N,{children:[E,D]}),t[31]=E,t[32]=D,t[33]=O):O=t[33],O}function de(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function fe(e){return[K(e.id),e.name,de(e.name)]}function pe(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return fe(e).some(e=>n.has(e.toLowerCase()))}function me(e,t){return e.filter(e=>pe(e,t)).map(e=>e.id)}var Z=a(`app.model-selector.ui`),Q=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function he({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:a=`grid`,autoSelectRecommended:o=!1}){let[s,c]=(0,X.useState)([]),[l,d]=(0,X.useState)(new Set),[p,m]=(0,X.useState)(new Set),[h,g]=(0,X.useState)(new Map),[_,v]=(0,X.useState)(!1),[y,x]=(0,X.useState)(``),[C,w]=(0,X.useState)(`alphabetical`);(0,X.useEffect)(()=>{T()},[e]);let T=async()=>{v(!0),x(``),w(`alphabetical`);try{let t=await f(e);c(t.models);let n=new Set(t.enabledModelIds);d(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await u();i=new Set(me(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){Z.error(`Failed to load recommended models:`,e)}m(i),g(r),E(n,r,t.models)}catch(t){Z.error(`Failed to load models for ${e}:`,t),c([]),d(new Set),m(new Set)}finally{v(!1)}},E=(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)},D=e=>{g(t=>{let n=ce(t,e,l);return E(l,n),n})},O=e=>{g(t=>{let n=new Map(t);return s.forEach(t=>{let r=l.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),E(l,n),n})},k=e=>K(e.id);function A(e,t=h){let n=t.has(e),r=t.get(e);return n?!!r:l.has(e)}let j=se({models:s,query:y,sortBy:C,getDisplayName:k,getPriority:e=>+!A(e.id)}),N=C===`alphabetical`?`alphabetical`:`price`;function P(e){if(e===`alphabetical`){w(`alphabetical`);return}e===`price`&&w(`price-low`)}function F(){C!==`alphabetical`&&w(e=>e===`price-low`?`price-high`:`price-low`)}return _||n?(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Y.jsx)(S,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,Y.jsx)(`div`,{className:`text-center py-8`,children:(0,Y.jsx)(`p`,{className:i.bodyMuted,children:`No models available for this provider.`})}):a===`compact`?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:b(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Y.jsx)(L,{id:`select-all-models`,disabled:r,value:s.every(e=>A(e.id)),onChange:e=>O(e),ariaLabel:`Select all models`}),(0,Y.jsx)(`label`,{htmlFor:`select-all-models`,className:b(i.body,`cursor-pointer`),children:`Select all models`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,Y.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,Y.jsx)(R,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,Y.jsx)(W,{placeholder:`Search models...`,value:y,onChange:e=>x(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,Y.jsxs)(oe,{type:`single`,value:N,onValueChange:P,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,Y.jsx)(q,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:Q,children:(0,Y.jsx)(re,{className:`h-4 w-4`})}),(0,Y.jsx)(q,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:Q,onClick:F,children:(0,Y.jsx)(U,{className:`h-4 w-4`})})]})]})]}),(0,Y.jsx)(M,{children:(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:j.length===0?(0,Y.jsx)(`div`,{className:`text-center py-4`,children:(0,Y.jsx)(`p`,{className:i.bodyMuted,children:y?`No models match your search.`:`No models available.`})}):j.map(e=>(0,Y.jsx)(ue,{model:e,disabled:r,willBeEnabled:A(e.id),isRecommended:p.has(e.id),onToggle:D},e.id))})})]}):null}function ge(e){let t=(0,J.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(he,{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 _e(e,t,n){return e||t||n}function ve(e,t,n){return e||!t.trim()||!n}function ye(e){let t=(0,J.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:u,onContinue:d,onValidate:f,onFinish:p}=e,m,h;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(m=_e(r,a,o),h=ve(m,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=m,t[6]=h):(m=t[5],h=t[6]);let g=h,_;t[7]!==n||t[8]!==l||t[9]!==m?(_=n===`provider-selection`?(0,Y.jsx)(k,{variant:`ghost`,onClick:l,disabled:m,children:`Skip for now`}):null,t[7]=n,t[8]=l,t[9]=m,t[10]=_):_=t[10];let v;t[11]===_?v=t[12]:(v=(0,Y.jsx)(`div`,{children:_}),t[11]=_,t[12]=v);let y;t[13]!==n||t[14]!==u||t[15]!==m?(y=n===`git-check`?null:(0,Y.jsx)(k,{variant:`outline`,onClick:u,disabled:m,children:`Back`}),t[13]=n,t[14]=u,t[15]=m,t[16]=y):y=t[16];let b;t[17]!==n||t[18]!==i||t[19]!==d?(b=n===`git-check`?(0,Y.jsxs)(k,{onClick:d,disabled:i,className:`gap-2`,children:[`Continue `,(0,Y.jsx)(I,{className:`h-4 w-4`})]}):null,t[17]=n,t[18]=i,t[19]=d,t[20]=b):b=t[20];let w;t[21]!==n||t[22]!==f||t[23]!==g||t[24]!==a?(w=n===`provider-selection`?(0,Y.jsx)(k,{onClick:f,disabled:g,className:`gap-2`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(S,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,Y.jsxs)(Y.Fragment,{children:[`Next `,(0,Y.jsx)(I,{className:`h-4 w-4`})]})}):null,t[21]=n,t[22]=f,t[23]=g,t[24]=a,t[25]=w):w=t[25];let T;t[26]!==n||t[27]!==p||t[28]!==r?(T=n===`model-selection`?(0,Y.jsx)(k,{onClick:p,disabled:r,className:`gap-2`,children:r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(S,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,Y.jsxs)(Y.Fragment,{children:[`Finish `,(0,Y.jsx)(x,{className:`h-4 w-4`})]})}):null,t[26]=n,t[27]=p,t[28]=r,t[29]=T):T=t[29];let E;t[30]!==y||t[31]!==b||t[32]!==w||t[33]!==T?(E=(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[y,b,w,T]}),t[30]=y,t[31]=b,t[32]=w,t[33]=T,t[34]=E):E=t[34];let D;return t[35]!==v||t[36]!==E?(D=(0,Y.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,Y.jsxs)(C,{className:`flex items-center justify-between`,children:[v,E]})}),t[35]=v,t[36]=E,t[37]=D):D=t[37],D}function be(e){let t=(0,J.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:a,onApiKeyChange:o,validatingKey:s,connectingOpenRouter:c,savingOnboarding:l,providerEnvValues:u,onProviderEnvChange:d,keyError:f,onConnectOpenRouter:p}=e,m;t[0]!==c||t[1]!==l||t[2]!==s?(m=_e(l,s,c),t[0]=c,t[1]=l,t[2]=s,t[3]=m):m=t[3];let h=m,g;t[4]!==a||t[5]!==o||t[6]!==p||t[7]!==r||t[8]!==h||t[9]!==n?(g=(0,Y.jsx)(z,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:a,onApiKeyChange:o,variant:`dropdown`,isLoading:h,onConnectOpenRouter:p}),t[4]=a,t[5]=o,t[6]=p,t[7]=r,t[8]=h,t[9]=n,t[10]=g):g=t[10];let _;t[11]!==d||t[12]!==h||t[13]!==u||t[14]!==n?(_=n&&ne(n).map(e=>(0,Y.jsx)(ie,{label:(0,Y.jsx)(P,{htmlFor:e,children:V(e)}),control:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`input`,{id:e,value:u[e]??``,onChange:t=>d(e,t.target.value),disabled:h,className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:B(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===H(n)||B(n.slug)&&e===`LOCAL_API_URL`?(0,Y.jsx)(`p`,{className:b(i.bodyMuted,`mt-2 break-all`),children:te(n,u)||n.api}):null]}),align:`start`},e)),t[11]=d,t[12]=h,t[13]=u,t[14]=n,t[15]=_):_=t[15];let v;t[16]===f?v=t[17]:(v=f?(0,Y.jsx)(G,{variant:`error`,className:`mb-0`,children:f}):null,t[16]=f,t[17]=v);let y;return t[18]!==g||t[19]!==_||t[20]!==v?(y=(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[g,_,v]}),t[18]=g,t[19]=_,t[20]=v,t[21]=y):y=t[21],y}function xe(e){let t=(0,J.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Select an AI Provider`}),(0,Y.jsx)(w,{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,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Select Models`}),(0,Y.jsx)(w,{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,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(D,{children:`Let's get started`}),(0,Y.jsx)(w,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function Se(e){let t=(0,J.c)(26),{currentStep:n}=e,r=function(e){return e===`provider-selection`&&n===`provider-selection`||n===`model-selection`},a=function(e){return n===e},o=a(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,o),t[0]=o,t[1]=s);let c;t[2]===s?c=t[3]:(c=(0,Y.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=b(`h-0.5 flex-1`,l),t[4]=l,t[5]=u);let d;t[6]===u?d=t[7]:(d=(0,Y.jsx)(`div`,{className:u}),t[6]=u,t[7]=d);let f=a(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,p;t[8]===f?p=t[9]:(p=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,f),t[8]=f,t[9]=p);let m;t[10]===p?m=t[11]:(m=(0,Y.jsx)(`div`,{className:p,children:`2`}),t[10]=p,t[11]=m);let h=r(`model-selection`)?`bg-primary`:`bg-muted`,g;t[12]===h?g=t[13]:(g=b(`h-0.5 flex-1`,h),t[12]=h,t[13]=g);let _;t[14]===g?_=t[15]:(_=(0,Y.jsx)(`div`,{className:g}),t[14]=g,t[15]=_);let v=a(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,y;t[16]===v?y=t[17]:(y=b(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,v),t[16]=v,t[17]=y);let x;t[18]===y?x=t[19]:(x=(0,Y.jsx)(`div`,{className:y,children:`3`}),t[18]=y,t[19]=x);let S;return t[20]!==_||t[21]!==x||t[22]!==c||t[23]!==d||t[24]!==m?(S=(0,Y.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[c,d,m,_,x]}),t[20]=_,t[21]=x,t[22]=c,t[23]=d,t[24]=m,t[25]=S):S=t[25],S}var $=a(`app.onboarding-dialog.ui`);async function Ce(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),m.invalidate(`providers`);let e=(await s()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function we(e,t,n){let[r,i]=(0,X.useState)(`git-check`),a=v({enabled:e&&r===`git-check`}),u=(0,X.useRef)(!1),[m,g]=(0,X.useState)([]),[_,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)({}),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(new Set),[M,N]=(0,X.useState)(!1),[P,F]=(0,X.useState)(!1);async function I(){try{let e=await s();if(g(e),e.length>0&&!_){let t=ee(e);t&&(y(t),x(t.apiKey??``),T(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}}async function L(){if(_){N(!0);try{await f(_.name),j(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{N(!1)}}}(0,X.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!u.current&&(u.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,X.useEffect)(()=>{e&&r===`provider-selection`&&m.length===0&&I()},[e,r,m.length]),(0,X.useEffect)(()=>{e&&r===`model-selection`&&_&&L()},[e,r,_]);async function R(){if(!_||!b.trim()){k(`Please enter an API key`);return}let e=ne(_),t=e.find(e=>!w[e]?.trim());if(t){k(`Please enter ${V(t)}`);return}D(!0),k(``);try{e.length>0&&await l(Object.fromEntries(e.map(e=>[e,w[e].trim()]))),await o(_.slug,b),i(`model-selection`)}catch(e){k(e instanceof Error?e.message:`Failed to validate API key`)}finally{D(!1)}}async function z(){if(_){F(!0);try{for(let e of A)await d(_.slug,e);ae(),await p(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{F(!1)}}}async function B(){F(!0);try{await p(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{F(!1)}}function te(e){y(e),x(e.apiKey??``),T(e.envValues??{}),k(``)}function H(e,t){T(n=>({...n,[e]:t}))}function U(){i(`provider-selection`)}async function W(){if(!S){C(!0),k(``);try{let e=await c();await h(e);let t=await Ce();if(!t){k(`OpenRouter connection timed out. You can enter an API key manually.`);return}y(t),x(t.apiKey??``),i(`model-selection`)}catch(e){k(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{C(!1)}}}function G(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return{currentStep:r,git:a,selectedProvider:_,apiKey:b,setApiKey:x,connectingOpenRouter:S,validatingKey:E,savingOnboarding:P,providerEnvValues:w,keyError:O,modelsLoading:M,setEnabledModelIds:j,handleProviderChange:te,handleProviderEnvChange:H,handleGitCheckProceed:U,handleConnectOpenRouter:W,handleBack:G,skipOnboarding:B,validateAndMoveNext:R,finishOnboarding:z}}function Te(e){e.preventDefault()}function Ee(e){let t=(0,J.c)(47),{open:n,onOpenChange:r,onComplete:i}=e,a=we(n,r,i),o;t[0]===a.currentStep?o=t[1]:(o=(0,Y.jsx)(Se,{currentStep:a.currentStep}),t[0]=a.currentStep,t[1]=o);let s;t[2]===a.currentStep?s=t[3]:(s=(0,Y.jsx)(T,{children:(0,Y.jsx)(xe,{currentStep:a.currentStep})}),t[2]=a.currentStep,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,Y.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]!==a.currentStep||t[8]!==a.git?(l=a.currentStep===`git-check`?(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(le,{gitLoading:a.git.loading,gitInstalled:a.git.gitInstalled,version:a.git.version,platform:a.git.platform,plan:a.git.plan,onCheckAgain:()=>void a.git.check()})}):null,t[7]=a.currentStep,t[8]=a.git,t[9]=l):l=t[9];let u;t[10]===a?u=t[11]:(u=a.currentStep===`provider-selection`?(0,Y.jsx)(be,{selectedProvider:a.selectedProvider,onProviderChange:a.handleProviderChange,apiKey:a.apiKey,onApiKeyChange:a.setApiKey,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,savingOnboarding:a.savingOnboarding,providerEnvValues:a.providerEnvValues,onProviderEnvChange:a.handleProviderEnvChange,keyError:a.keyError,onConnectOpenRouter:()=>void a.handleConnectOpenRouter()}):null,t[10]=a,t[11]=u);let d;t[12]!==a.currentStep||t[13]!==a.modelsLoading||t[14]!==a.selectedProvider||t[15]!==a.setEnabledModelIds?(d=a.currentStep===`model-selection`&&a.selectedProvider?(0,Y.jsx)(ge,{providerSlug:a.selectedProvider.slug,modelsLoading:a.modelsLoading,onModelsChange:a.setEnabledModelIds}):null,t[12]=a.currentStep,t[13]=a.modelsLoading,t[14]=a.selectedProvider,t[15]=a.setEnabledModelIds,t[16]=d):d=t[16];let f;t[17]!==l||t[18]!==u||t[19]!==d?(f=(0,Y.jsx)(F,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,Y.jsxs)(`div`,{className:`px-6 py-4`,children:[l,u,d]})}),t[17]=l,t[18]=u,t[19]=d,t[20]=f):f=t[20];let p=!!a.selectedProvider,m;t[21]===a?m=t[22]:(m=()=>void a.skipOnboarding(),t[21]=a,t[22]=m);let h,g;t[23]===a?(h=t[24],g=t[25]):(h=()=>void a.validateAndMoveNext(),g=()=>void a.finishOnboarding(),t[23]=a,t[24]=h,t[25]=g);let _;t[26]!==a.apiKey||t[27]!==a.connectingOpenRouter||t[28]!==a.currentStep||t[29]!==a.git.loading||t[30]!==a.handleBack||t[31]!==a.handleGitCheckProceed||t[32]!==a.savingOnboarding||t[33]!==a.validatingKey||t[34]!==h||t[35]!==g||t[36]!==p||t[37]!==m?(_=(0,Y.jsx)(ye,{currentStep:a.currentStep,savingOnboarding:a.savingOnboarding,gitLoading:a.git.loading,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,apiKey:a.apiKey,hasProvider:p,onSkip:m,onBack:a.handleBack,onContinue:a.handleGitCheckProceed,onValidate:h,onFinish:g}),t[26]=a.apiKey,t[27]=a.connectingOpenRouter,t[28]=a.currentStep,t[29]=a.git.loading,t[30]=a.handleBack,t[31]=a.handleGitCheckProceed,t[32]=a.savingOnboarding,t[33]=a.validatingKey,t[34]=h,t[35]=g,t[36]=p,t[37]=m,t[38]=_):_=t[38];let v;t[39]!==_||t[40]!==c||t[41]!==f?(v=(0,Y.jsxs)(E,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:Te,children:[c,f,_]}),t[39]=_,t[40]=c,t[41]=f,t[42]=v):v=t[42];let y;return t[43]!==r||t[44]!==n||t[45]!==v?(y=(0,Y.jsx)(O,{open:n,onOpenChange:r,children:v}),t[43]=r,t[44]=n,t[45]=v,t[46]=y):y=t[46],y}export{ye as OnboardingFooter,Ee as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{i,n as a,r as o,t as s}from"./tooltip-CqwCZ7wt.js";import{$t as c,Zt as l,en as u}from"./index-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{i,n as a,r as o,t as s}from"./tooltip-CqwCZ7wt.js";import{$t as c,Zt as l,en as u}from"./index-CcAwxnT5.js";var d=t(),f=e(n(),1),p=r(),m=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,h=`rounded-full bg-foreground shadow-sm`,g=`h-7 rounded-full px-4 data-[state=active]:text-background`;function _(e){let t=(0,d.c)(12),{value:n,onValueChange:r,options:_,className:v}=e,y;t[0]===r?y=t[1]:(y=e=>r(e),t[0]=r,t[1]=y);let b;if(t[2]!==_){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=function(e){let t=(0,p.jsx)(u,{value:e.value,className:g,children:e.label});return e.tooltip?(0,p.jsxs)(s,{children:[(0,p.jsx)(i,{asChild:!0,children:t}),(0,p.jsx)(a,{children:e.tooltip})]},e.value):(0,p.jsx)(f.Fragment,{children:t},e.value)},t[4]=e):e=t[4],b=_.map(e),t[2]=_,t[3]=b}else b=t[3];let x;t[5]===b?x=t[6]:(x=(0,p.jsx)(c,{className:m,indicatorClassName:h,children:b}),t[5]=b,t[6]=x);let S;return t[7]!==v||t[8]!==y||t[9]!==x||t[10]!==n?(S=(0,p.jsx)(o,{children:(0,p.jsx)(l,{value:n,onValueChange:y,className:v,children:x})}),t[7]=v,t[8]=y,t[9]=x,t[10]=n,t[11]=S):S=t[11],S}export{_ as t};
|
package/dist/public/assets/{project-coding-view-DP4qKePE.js → project-coding-view-B2FpHeiO.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{Y as a}from"./dist-v_MvKS2-.js";import{Z as o,n as s}from"./store-W78TGOIO.js";import{Et as c,fr as l,or as u,sr as d}from"./api-C4ukGdyH.js";import{t as f}from"./loader-circle-CrqRIqdA.js";import{t as p}from"./button-DDaJhJP1.js";import{i as m,n as h,r as g,t as _}from"./tooltip-CqwCZ7wt.js";import{t as v}from"./use-toast-CKgZ8YeP.js";import{t as y}from"./progress-indicator-hJ74ac5W.js";import{G as b,Nn as x,at as S,dt as C,ft as w,gn as T,gt as E,hn as D,lt as O,nt as k,pt as A}from"./index-CoY8DilQ.js";import{i as j}from"./commit-method-fields-Xt3vbwUg.js";import{t as M}from"./use-settings-page-loading-B5WU5d1c.js";var N=t(),P=r();function ee(e){let t=(0,N.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,P.jsx)(k,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,P.jsx)(b,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function F(e){return e===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function I(e){let t=(0,N.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=F(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,P.jsx)(j,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,P.jsx)(k,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function L(e){let t=(0,N.c)(22),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==n||t[4]!==c?(l=(0,P.jsx)(T,{id:`runCommand`,value:n,onChange:c,placeholder:`e.g. npm run dev`,className:`font-mono pr-10`,disabled:r}),t[2]=r,t[3]=n,t[4]=c,t[5]=l):l=t[5];let u;t[6]===s?u=t[7]:(u=()=>void s(),t[6]=s,t[7]=u);let d;t[8]===i?d=t[9]:(d=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(x,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=d);let f;t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,P.jsx)(m,{asChild:!0,children:(0,P.jsx)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 h-8 w-8`,onClick:u,disabled:a,"aria-label":`Generate run command with AI`,children:d})}),t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13];let v=i?`Working out the run command...`:`Detect the project's dev script, or generate one with AI`,b;t[14]===v?b=t[15]:(b=(0,P.jsx)(h,{children:v}),t[14]=v,t[15]=b);let S;t[16]!==f||t[17]!==b?(S=(0,P.jsx)(g,{children:(0,P.jsxs)(_,{children:[f,b]})}),t[16]=f,t[17]=b,t[18]=S):S=t[18];let C;return t[19]!==l||t[20]!==S?(C=(0,P.jsx)(k,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[l,S]})}),t[19]=l,t[20]=S,t[21]=C):C=t[21],C}function R(e){let t=(0,N.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,P.jsx)(p,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function z(e){let t=(0,N.c)(22),{value:n,loading:r,suggestingScript:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==c||t[4]!==n?(l=(0,P.jsx)(D,{id:`setupScript`,value:n,onChange:c,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none pr-10`,disabled:r}),t[2]=r,t[3]=c,t[4]=n,t[5]=l):l=t[5];let u;t[6]===s?u=t[7]:(u=()=>void s(),t[6]=s,t[7]=u);let d;t[8]===i?d=t[9]:(d=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(x,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=d);let f;t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,P.jsx)(m,{asChild:!0,children:(0,P.jsx)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:u,disabled:a,"aria-label":`Generate setup script with AI`,children:d})}),t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13];let v=i?`Working out the setup script...`:`Generate the dependency install script with AI`,b;t[14]===v?b=t[15]:(b=(0,P.jsx)(h,{children:v}),t[14]=v,t[15]=b);let S;t[16]!==f||t[17]!==b?(S=(0,P.jsx)(g,{children:(0,P.jsxs)(_,{children:[f,b]})}),t[16]=f,t[17]=b,t[18]=S):S=t[18];let C;return t[19]!==l||t[20]!==S?(C=(0,P.jsx)(k,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[l,S]})}),t[19]=l,t[20]=S,t[21]=C):C=t[21],C}var B=e(n(),1);async function V(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await c(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??a.PullRequest),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function H(e,t,n){n(!0);try{let n=await u(e);if(!n.runCommand){v({title:`No run command found`,description:n.reason??`Could not detect a dev script in the project's package.json`});return}t(n.runCommand),v({title:n.source===`ai`?`Generated run command`:`Detected run command`,description:n.runCommand})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function U(e,t,n){n(!0);try{let n=await d(e);if(!n.setupScript){v({title:`No setup script found`,description:n.reason??`Could not work out how to install this project's dependencies`});return}t(n.setupScript),v({title:n.source===`ai`?`Generated setup script`:`Detected setup script`,description:n.setupScript})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest setup script`,variant:`destructive`})}finally{n(!1)}}async function W(e,t,n,r){await l(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function G(e,t,n){t!==n&&await l(e,{useBuiltInBrowser:t})}function te(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ne(e,t,n){n.setSaving(!0);try{return await W(e,t.value,t.runCmd,t.commitMethod),await G(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return v({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function re(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setUseBuiltInBrowser:i,setOriginalValue:a,setOriginalRunCmd:o,setOriginalCommitMethod:s,setOriginalUseBuiltInBrowser:c,setLoading:l,setSaving:u,setSuggestingCommand:d}=e;return e}function ie(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:o,setCommitMethod:s,useBuiltInBrowser:c,setUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function ae(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:o,setOriginalCommitMethod:s,originalUseBuiltInBrowser:c,setOriginalUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function K(e,t){let n=(0,N.c)(71),r=i(),a=s(),c=ie(),l=ae(),{value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,setCommitMethod:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=c,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalUseBuiltInBrowser:w,setOriginalUseBuiltInBrowser:T}=l,[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[A,j]=(0,B.useState)(!1),[P,ee]=(0,B.useState)(!0),F;n[0]!==h||n[1]!==C||n[2]!==x||n[3]!==T||n[4]!==y||n[5]!==p||n[6]!==_||n[7]!==d?(F={setValue:d,setRunCmd:p,setCommitMethod:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalUseBuiltInBrowser:T,setLoading:ee,setSaving:D,setSuggestingCommand:k},n[0]=h,n[1]=C,n[2]=x,n[3]=T,n[4]=y,n[5]=p,n[6]=_,n[7]=d,n[8]=F):F=n[8];let I=re(F),L;n[9]!==e||n[10]!==I?(L=()=>V(e,I),n[9]=e,n[10]=I,n[11]=L):L=n[11];let R=L,z,W;n[12]===e?(z=n[13],W=n[14]):(z=()=>{e&&ee(!0)},W=[e],n[12]=e,n[13]=z,n[14]=W),(0,B.useLayoutEffect)(z,W);let G,K;n[15]===R?(G=n[16],K=n[17]):(G=()=>{R()},K=[R],n[15]=R,n[16]=G,n[17]=K),(0,B.useEffect)(G,K);let q;n[18]===P?q=n[19]:(q=[P],n[18]=P,n[19]=q);let se=M(e,q),J;n[20]===h?J=n[21]:(J=function(e){h(e)},n[20]=h,n[21]=J);let ce=J,Y;n[22]!==e||n[23]!==p?(Y=async function(){e&&await H(e,p,k)},n[22]=e,n[23]=p,n[24]=Y):Y=n[24];let le=Y,X;n[25]!==e||n[26]!==d?(X=async function(){e&&await U(e,d,j)},n[25]=e,n[26]=d,n[27]=X):X=n[27];let ue=X,Z;n[28]!==m||n[29]!==a||n[30]!==r||n[31]!==t||n[32]!==S||n[33]!==b||n[34]!==w||n[35]!==v||n[36]!==e||n[37]!==f||n[38]!==I||n[39]!==g||n[40]!==u?(Z=async function(){if(!e)return;let n=f.trim()!==``&&b.trim()===``;await ne(e,{value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w},I)&&(n&&a({type:o.SetRunCommandSaved,projectId:e}),t&&t().catch(oe),r(`/`))},n[28]=m,n[29]=a,n[30]=r,n[31]=t,n[32]=S,n[33]=b,n[34]=w,n[35]=v,n[36]=e,n[37]=f,n[38]=I,n[39]=g,n[40]=u,n[41]=Z):Z=n[41];let de=Z,fe=P||E,pe=P||O||A,Q;n[42]!==m||n[43]!==S||n[44]!==b||n[45]!==w||n[46]!==v||n[47]!==f||n[48]!==g||n[49]!==u?(Q=te({value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w}),n[42]=m,n[43]=S,n[44]=b,n[45]=w,n[46]=v,n[47]=f,n[48]=g,n[49]=u,n[50]=Q):Q=n[50];let me=Q,$;return n[51]!==m||n[52]!==fe||n[53]!==ce||n[54]!==de||n[55]!==le||n[56]!==ue||n[57]!==me||n[58]!==P||n[59]!==se||n[60]!==f||n[61]!==E||n[62]!==p||n[63]!==_||n[64]!==d||n[65]!==pe||n[66]!==O||n[67]!==A||n[68]!==g||n[69]!==u?($={value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,saving:E,suggestingCommand:O,suggestingScript:A,loading:P,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:se,handleCommitMethodChange:ce,handleSuggestCommand:le,handleSuggestSetupScript:ue,handleSave:de,controlsDisabled:fe,suggestDisabled:pe,hasUnsavedChanges:me},n[51]=m,n[52]=fe,n[53]=ce,n[54]=de,n[55]=le,n[56]=ue,n[57]=me,n[58]=P,n[59]=se,n[60]=f,n[61]=E,n[62]=p,n[63]=_,n[64]=d,n[65]=pe,n[66]=O,n[67]=A,n[68]=g,n[69]=u,n[70]=$):$=n[70],$}function oe(){}function q(e){let t=(0,N.c)(39),{projectId:n,onProjectUpdated:r}=e,{value:i,setValue:a,runCmd:o,setRunCmd:s,commitMethod:c,saving:l,suggestingCommand:u,suggestingScript:d,loading:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m,pageLoading:h,handleCommitMethodChange:g,handleSuggestCommand:_,handleSuggestSetupScript:v,handleSave:y,controlsDisabled:b,suggestDisabled:x,hasUnsavedChanges:T}=K(n,r);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(w,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let D=b||!T,k;t[1]!==y||t[2]!==l||t[3]!==D?(k=(0,P.jsx)(S,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,P.jsx)(R,{saving:l,disabled:D,onSave:y}),sticky:!1}),t[1]=y,t[2]=l,t[3]=D,t[4]=k):k=t[4];let j;t[5]!==v||t[6]!==f||t[7]!==a||t[8]!==x||t[9]!==d||t[10]!==i?(j=(0,P.jsx)(z,{value:i,loading:f,suggestingScript:d,suggestDisabled:x,onChange:a,onSuggest:v}),t[5]=v,t[6]=f,t[7]=a,t[8]=x,t[9]=d,t[10]=i,t[11]=j):j=t[11];let M;t[12]!==_||t[13]!==f||t[14]!==o||t[15]!==s||t[16]!==x||t[17]!==u?(M=(0,P.jsx)(L,{runCmd:o,loading:f,suggestingCommand:u,suggestDisabled:x,onChange:s,onSuggest:_}),t[12]=_,t[13]=f,t[14]=o,t[15]=s,t[16]=x,t[17]=u,t[18]=M):M=t[18];let F;t[19]!==c||t[20]!==g||t[21]!==f?(F=(0,P.jsx)(I,{commitMethod:c,loading:f,onChange:g}),t[19]=c,t[20]=g,t[21]=f,t[22]=F):F=t[22];let B;t[23]!==b||t[24]!==m||t[25]!==p?(B=(0,P.jsx)(ee,{useBuiltInBrowser:p,disabled:b,onChange:m}),t[23]=b,t[24]=m,t[25]=p,t[26]=B):B=t[26];let V;t[27]!==j||t[28]!==M||t[29]!==F||t[30]!==B?(V=(0,P.jsx)(A,{className:`max-w-none pt-6`,children:(0,P.jsxs)(C,{children:[j,M,F,B]})}),t[27]=j,t[28]=M,t[29]=F,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==k||t[33]!==V?(H=(0,P.jsxs)(E,{className:`shrink-0`,children:[k,V]}),t[32]=k,t[33]=V,t[34]=H):H=t[34];let U;return t[35]!==h||t[36]!==n||t[37]!==H?(U=(0,P.jsx)(O,{loading:h,children:H},n),t[35]=h,t[36]=n,t[37]=H,t[38]=U):U=t[38],U}export{q as default};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{Y as a}from"./dist-v_MvKS2-.js";import{Z as o,n as s}from"./store-W78TGOIO.js";import{Tt as c,ar as l,ir as u,ur as d}from"./api-Cp9I7CxD.js";import{t as f}from"./loader-circle-CrqRIqdA.js";import{t as p}from"./button-DDaJhJP1.js";import{i as m,n as h,r as g,t as _}from"./tooltip-CqwCZ7wt.js";import{t as v}from"./use-toast-CKgZ8YeP.js";import{t as y}from"./progress-indicator-hJ74ac5W.js";import{G as b,Mn as x,at as S,dt as C,ft as w,gn as T,gt as E,hn as D,lt as O,nt as k,pt as A}from"./index-CcAwxnT5.js";import{i as j}from"./commit-method-fields-Xt3vbwUg.js";import{t as M}from"./use-settings-page-loading-B5WU5d1c.js";var N=t(),P=r();function ee(e){let t=(0,N.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,P.jsx)(k,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,P.jsx)(b,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function F(e){return e===a.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function I(e){let t=(0,N.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=F(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,P.jsx)(j,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,P.jsx)(k,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function L(e){let t=(0,N.c)(22),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==n||t[4]!==c?(l=(0,P.jsx)(T,{id:`runCommand`,value:n,onChange:c,placeholder:`e.g. npm run dev`,className:`font-mono pr-10`,disabled:r}),t[2]=r,t[3]=n,t[4]=c,t[5]=l):l=t[5];let u;t[6]===s?u=t[7]:(u=()=>void s(),t[6]=s,t[7]=u);let d;t[8]===i?d=t[9]:(d=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(x,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=d);let f;t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,P.jsx)(m,{asChild:!0,children:(0,P.jsx)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 h-8 w-8`,onClick:u,disabled:a,"aria-label":`Generate run command with AI`,children:d})}),t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13];let v=i?`Working out the run command...`:`Detect the project's dev script, or generate one with AI`,b;t[14]===v?b=t[15]:(b=(0,P.jsx)(h,{children:v}),t[14]=v,t[15]=b);let S;t[16]!==f||t[17]!==b?(S=(0,P.jsx)(g,{children:(0,P.jsxs)(_,{children:[f,b]})}),t[16]=f,t[17]=b,t[18]=S):S=t[18];let C;return t[19]!==l||t[20]!==S?(C=(0,P.jsx)(k,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[l,S]})}),t[19]=l,t[20]=S,t[21]=C):C=t[21],C}function R(e){let t=(0,N.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,P.jsx)(p,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function z(e){let t=(0,N.c)(22),{value:n,loading:r,suggestingScript:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,c;t[0]===o?c=t[1]:(c=e=>o(e.target.value),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==c||t[4]!==n?(l=(0,P.jsx)(D,{id:`setupScript`,value:n,onChange:c,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none pr-10`,disabled:r}),t[2]=r,t[3]=c,t[4]=n,t[5]=l):l=t[5];let u;t[6]===s?u=t[7]:(u=()=>void s(),t[6]=s,t[7]=u);let d;t[8]===i?d=t[9]:(d=i?(0,P.jsx)(y,{size:`sm`}):(0,P.jsx)(x,{className:`h-3.5 w-3.5`}),t[8]=i,t[9]=d);let f;t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,P.jsx)(m,{asChild:!0,children:(0,P.jsx)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:u,disabled:a,"aria-label":`Generate setup script with AI`,children:d})}),t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13];let v=i?`Working out the setup script...`:`Generate the dependency install script with AI`,b;t[14]===v?b=t[15]:(b=(0,P.jsx)(h,{children:v}),t[14]=v,t[15]=b);let S;t[16]!==f||t[17]!==b?(S=(0,P.jsx)(g,{children:(0,P.jsxs)(_,{children:[f,b]})}),t[16]=f,t[17]=b,t[18]=S):S=t[18];let C;return t[19]!==l||t[20]!==S?(C=(0,P.jsx)(k,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,P.jsxs)(`div`,{className:`relative`,children:[l,S]})}),t[19]=l,t[20]=S,t[21]=C):C=t[21],C}var B=e(n(),1);async function V(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await c(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??a.PullRequest),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??a.PullRequest),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function H(e,t,n){n(!0);try{let n=await u(e);if(!n.runCommand){v({title:`No run command found`,description:n.reason??`Could not detect a dev script in the project's package.json`});return}t(n.runCommand),v({title:n.source===`ai`?`Generated run command`:`Detected run command`,description:n.runCommand})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function U(e,t,n){n(!0);try{let n=await l(e);if(!n.setupScript){v({title:`No setup script found`,description:n.reason??`Could not work out how to install this project's dependencies`});return}t(n.setupScript),v({title:n.source===`ai`?`Generated setup script`:`Detected setup script`,description:n.setupScript})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest setup script`,variant:`destructive`})}finally{n(!1)}}async function W(e,t,n,r){await d(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function G(e,t,n){t!==n&&await d(e,{useBuiltInBrowser:t})}function te(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ne(e,t,n){n.setSaving(!0);try{return await W(e,t.value,t.runCmd,t.commitMethod),await G(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return v({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function re(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setUseBuiltInBrowser:i,setOriginalValue:a,setOriginalRunCmd:o,setOriginalCommitMethod:s,setOriginalUseBuiltInBrowser:c,setLoading:l,setSaving:u,setSuggestingCommand:d}=e;return e}function ie(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:o,setCommitMethod:s,useBuiltInBrowser:c,setUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function ae(){let e=(0,N.c)(5),[t,n]=(0,B.useState)(``),[r,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(a.PullRequest),[c,l]=(0,B.useState)(!0),u;return e[0]!==o||e[1]!==r||e[2]!==c||e[3]!==t?(u={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:o,setOriginalCommitMethod:s,originalUseBuiltInBrowser:c,setOriginalUseBuiltInBrowser:l},e[0]=o,e[1]=r,e[2]=c,e[3]=t,e[4]=u):u=e[4],u}function K(e,t){let n=(0,N.c)(71),r=i(),a=s(),c=ie(),l=ae(),{value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,setCommitMethod:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=c,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalUseBuiltInBrowser:w,setOriginalUseBuiltInBrowser:T}=l,[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[A,j]=(0,B.useState)(!1),[P,ee]=(0,B.useState)(!0),F;n[0]!==h||n[1]!==C||n[2]!==x||n[3]!==T||n[4]!==y||n[5]!==p||n[6]!==_||n[7]!==d?(F={setValue:d,setRunCmd:p,setCommitMethod:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalUseBuiltInBrowser:T,setLoading:ee,setSaving:D,setSuggestingCommand:k},n[0]=h,n[1]=C,n[2]=x,n[3]=T,n[4]=y,n[5]=p,n[6]=_,n[7]=d,n[8]=F):F=n[8];let I=re(F),L;n[9]!==e||n[10]!==I?(L=()=>V(e,I),n[9]=e,n[10]=I,n[11]=L):L=n[11];let R=L,z,W;n[12]===e?(z=n[13],W=n[14]):(z=()=>{e&&ee(!0)},W=[e],n[12]=e,n[13]=z,n[14]=W),(0,B.useLayoutEffect)(z,W);let G,K;n[15]===R?(G=n[16],K=n[17]):(G=()=>{R()},K=[R],n[15]=R,n[16]=G,n[17]=K),(0,B.useEffect)(G,K);let q;n[18]===P?q=n[19]:(q=[P],n[18]=P,n[19]=q);let se=M(e,q),J;n[20]===h?J=n[21]:(J=function(e){h(e)},n[20]=h,n[21]=J);let ce=J,Y;n[22]!==e||n[23]!==p?(Y=async function(){e&&await H(e,p,k)},n[22]=e,n[23]=p,n[24]=Y):Y=n[24];let le=Y,X;n[25]!==e||n[26]!==d?(X=async function(){e&&await U(e,d,j)},n[25]=e,n[26]=d,n[27]=X):X=n[27];let ue=X,Z;n[28]!==m||n[29]!==a||n[30]!==r||n[31]!==t||n[32]!==S||n[33]!==b||n[34]!==w||n[35]!==v||n[36]!==e||n[37]!==f||n[38]!==I||n[39]!==g||n[40]!==u?(Z=async function(){if(!e)return;let n=f.trim()!==``&&b.trim()===``;await ne(e,{value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w},I)&&(n&&a({type:o.SetRunCommandSaved,projectId:e}),t&&t().catch(oe),r(`/`))},n[28]=m,n[29]=a,n[30]=r,n[31]=t,n[32]=S,n[33]=b,n[34]=w,n[35]=v,n[36]=e,n[37]=f,n[38]=I,n[39]=g,n[40]=u,n[41]=Z):Z=n[41];let de=Z,fe=P||E,pe=P||O||A,Q;n[42]!==m||n[43]!==S||n[44]!==b||n[45]!==w||n[46]!==v||n[47]!==f||n[48]!==g||n[49]!==u?(Q=te({value:u,runCmd:f,commitMethod:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalUseBuiltInBrowser:w}),n[42]=m,n[43]=S,n[44]=b,n[45]=w,n[46]=v,n[47]=f,n[48]=g,n[49]=u,n[50]=Q):Q=n[50];let me=Q,$;return n[51]!==m||n[52]!==fe||n[53]!==ce||n[54]!==de||n[55]!==le||n[56]!==ue||n[57]!==me||n[58]!==P||n[59]!==se||n[60]!==f||n[61]!==E||n[62]!==p||n[63]!==_||n[64]!==d||n[65]!==pe||n[66]!==O||n[67]!==A||n[68]!==g||n[69]!==u?($={value:u,setValue:d,runCmd:f,setRunCmd:p,commitMethod:m,saving:E,suggestingCommand:O,suggestingScript:A,loading:P,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:se,handleCommitMethodChange:ce,handleSuggestCommand:le,handleSuggestSetupScript:ue,handleSave:de,controlsDisabled:fe,suggestDisabled:pe,hasUnsavedChanges:me},n[51]=m,n[52]=fe,n[53]=ce,n[54]=de,n[55]=le,n[56]=ue,n[57]=me,n[58]=P,n[59]=se,n[60]=f,n[61]=E,n[62]=p,n[63]=_,n[64]=d,n[65]=pe,n[66]=O,n[67]=A,n[68]=g,n[69]=u,n[70]=$):$=n[70],$}function oe(){}function q(e){let t=(0,N.c)(39),{projectId:n,onProjectUpdated:r}=e,{value:i,setValue:a,runCmd:o,setRunCmd:s,commitMethod:c,saving:l,suggestingCommand:u,suggestingScript:d,loading:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m,pageLoading:h,handleCommitMethodChange:g,handleSuggestCommand:_,handleSuggestSetupScript:v,handleSave:y,controlsDisabled:b,suggestDisabled:x,hasUnsavedChanges:T}=K(n,r);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(w,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let D=b||!T,k;t[1]!==y||t[2]!==l||t[3]!==D?(k=(0,P.jsx)(S,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,P.jsx)(R,{saving:l,disabled:D,onSave:y}),sticky:!1}),t[1]=y,t[2]=l,t[3]=D,t[4]=k):k=t[4];let j;t[5]!==v||t[6]!==f||t[7]!==a||t[8]!==x||t[9]!==d||t[10]!==i?(j=(0,P.jsx)(z,{value:i,loading:f,suggestingScript:d,suggestDisabled:x,onChange:a,onSuggest:v}),t[5]=v,t[6]=f,t[7]=a,t[8]=x,t[9]=d,t[10]=i,t[11]=j):j=t[11];let M;t[12]!==_||t[13]!==f||t[14]!==o||t[15]!==s||t[16]!==x||t[17]!==u?(M=(0,P.jsx)(L,{runCmd:o,loading:f,suggestingCommand:u,suggestDisabled:x,onChange:s,onSuggest:_}),t[12]=_,t[13]=f,t[14]=o,t[15]=s,t[16]=x,t[17]=u,t[18]=M):M=t[18];let F;t[19]!==c||t[20]!==g||t[21]!==f?(F=(0,P.jsx)(I,{commitMethod:c,loading:f,onChange:g}),t[19]=c,t[20]=g,t[21]=f,t[22]=F):F=t[22];let B;t[23]!==b||t[24]!==m||t[25]!==p?(B=(0,P.jsx)(ee,{useBuiltInBrowser:p,disabled:b,onChange:m}),t[23]=b,t[24]=m,t[25]=p,t[26]=B):B=t[26];let V;t[27]!==j||t[28]!==M||t[29]!==F||t[30]!==B?(V=(0,P.jsx)(A,{className:`max-w-none pt-6`,children:(0,P.jsxs)(C,{children:[j,M,F,B]})}),t[27]=j,t[28]=M,t[29]=F,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==k||t[33]!==V?(H=(0,P.jsxs)(E,{className:`shrink-0`,children:[k,V]}),t[32]=k,t[33]=V,t[34]=H):H=t[34];let U;return t[35]!==h||t[36]!==n||t[37]!==H?(U=(0,P.jsx)(O,{loading:h,children:H},n),t[35]=h,t[36]=n,t[37]=H,t[38]=U):U=t[38],U}export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{U as n}from"./dist-v_MvKS2-.js";import{r}from"./store-W78TGOIO.js";import{p as i}from"./utils-CqsIXqSC.js";import{t as a}from"./button-DDaJhJP1.js";import{at as o,ft as s,gt as c,lt as l,pt as u,r as d}from"./index-
|
|
1
|
+
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{U as n}from"./dist-v_MvKS2-.js";import{r}from"./store-W78TGOIO.js";import{p as i}from"./utils-CqsIXqSC.js";import{t as a}from"./button-DDaJhJP1.js";import{at as o,ft as s,gt as c,lt as l,pt as u,r as d}from"./index-CcAwxnT5.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=d(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(o,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(l,{loading:!1,children:(0,p.jsxs)(c,{className:`shrink-0`,children:[x,(0,p.jsx)(u,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
|
package/dist/public/assets/{project-env-vars-view-DKyQkh7h.js → project-env-vars-view-zhigkQFG.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{U as a}from"./dist-v_MvKS2-.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{U as a}from"./dist-v_MvKS2-.js";import{Ot as o,or as s}from"./api-Cp9I7CxD.js";import{t as c}from"./utils-CqsIXqSC.js";import{t as l}from"./loader-circle-CrqRIqdA.js";import{t as u}from"./x-ByOPrz5I.js";import{t as d}from"./button-DDaJhJP1.js";import{t as f}from"./use-toast-CKgZ8YeP.js";import{at as p,ft as m,gn as h,gt as g,hr as _,lt as v,mr as y,pt as b}from"./index-CcAwxnT5.js";import{t as x}from"./use-settings-page-loading-B5WU5d1c.js";function S(e){let t=e.toLowerCase();return t.includes(`token`)||t.includes(`password`)||t.includes(`key`)}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:a}=e,o=S(n.name),[s,l]=(0,w.useState)(!1),u=n.value.length>0||n.hasExistingValue,f=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{o||l(!1)},[o]);let p=h,m=o&&!s?`password`:`text`,g=n.value,v;t[0]!==r||t[1]!==a?(v=e=>a(r,e.target.value),t[0]=r,t[1]=a,t[2]=v):v=t[2];let b=c(`font-mono`,o&&`pr-10`),x;t[3]!==p||t[4]!==n.value||t[5]!==i||t[6]!==f||t[7]!==m||t[8]!==v||t[9]!==b?(x=(0,T.jsx)(p,{type:m,placeholder:f,value:g,onChange:v,className:b,disabled:i}),t[3]=p,t[4]=n.value,t[5]=i,t[6]=f,t[7]=m,t[8]=v,t[9]=b,t[10]=x):x=t[10];let E;t[11]!==u||t[12]!==o||t[13]!==i||t[14]!==l||t[15]!==s?(E=o?(0,T.jsx)(d,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>l(D),disabled:i||!u,"aria-label":s?`Hide value`:`Show value`,children:s?(0,T.jsx)(_,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(y,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=u,t[12]=o,t[13]=i,t[14]=l,t[15]=s,t[16]=E):E=t[16];let O;return t[17]!==x||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[x,E]}),t[17]=x,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O(e){let t=(0,C.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,T.jsx)(d,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function k({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[c,l]=(0,w.useState)([]),[_,y]=(0,w.useState)(!0),[S,C]=(0,w.useState)(!1),D=(0,w.useCallback)(async()=>{if(!e){y(!1);return}y(!0);try{let t=(await o(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),l(t)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{y(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&y(!0)},[e]),(0,w.useEffect)(()=>{D()},[D]);let k=x(e,[_]);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!==c.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=c[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(e&&P()){C(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await s(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),l(n.map(e=>({...e,value:``}))),await D(),t(`/`)}catch(e){f({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{C(!1)}}}let I=P();return e?(0,T.jsx)(v,{loading:k,children:(0,T.jsxs)(g,{className:`shrink-0`,children:[(0,T.jsx)(p,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsx)(d,{onClick:A,disabled:_||S,children:`Add`}),sticky:!1}),(0,T.jsxs)(b,{className:`max-w-none pt-6`,children:[n.length===0?(0,T.jsx)(`p`,{className:a.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)(h,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:_}),(0,T.jsx)(E,{entry:e,index:t,loading:_,onValueChange:M}),(0,T.jsx)(d,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:_||S,"aria-label":`Remove variable`,children:(0,T.jsx)(u,{className:`h-3.5 w-3.5`})})]},t))}),I?(0,T.jsx)(`div`,{className:`flex justify-end pt-6`,children:(0,T.jsx)(O,{saving:S,disabled:S||_,onSave:F})}):null]})]})}):(0,T.jsx)(m,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{a as i,i as a}from"./use-account-settings-query-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{a as i,i as a}from"./use-account-settings-query-D_qL1I4w.js";import{U as o,_t as s,at as c,ct as l,dt as u,gt as d,ht as f,it as p,ot as m,st as h}from"./dist-v_MvKS2-.js";import{at as g}from"./api-Cp9I7CxD.js";import{t as _}from"./utils-CqsIXqSC.js";import{t as v}from"./button-DDaJhJP1.js";import{t as y}from"./use-toast-CKgZ8YeP.js";import{a as b,i as x,n as S,o as C,r as w,t as T}from"./select-DMcNYwgt.js";import{$ as E,at as D,gt as O,lt as k,pt as A,rt as j,vt as M,wt as N}from"./index-CcAwxnT5.js";import{a as P,i as F,n as I,o as L,r as R,t as z}from"./table-CQMqIW_-.js";import{t as B}from"./use-settings-page-loading-B5WU5d1c.js";var V=e(n(),1),H=t(),U=r(),W=`__unspecified__`,G=`__default__`,K=`Unsupported`,q=`table-fixed`,J=`[&_tr]:border-b-0`,Y=`h-9 px-0 py-2`,X=_(Y,`w-40`),Z=_(Y,`w-56`),Q=`py-2 pl-0 pr-4 align-middle`,$=`py-2 pl-0 align-middle`;function ee(e){let t=(0,H.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:s}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,U.jsx)(`span`,{className:o.bodyMuted,children:K}),t[0]=e):e=t[0],e}let l=r.reasoningEffort??G,u;t[1]!==n||t[2]!==s?(u=e=>s(n,e),t[1]=n,t[2]=s,t[3]=u):u=t[3];let f=`model-alias-${n}-reasoning`,p=`${c[n]} reasoning effort`,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,U.jsx)(C,{placeholder:`Model default`}),t[4]=m):m=t[4];let h;t[5]!==f||t[6]!==p?(h=(0,U.jsx)(b,{id:f,className:`w-full min-w-0`,"aria-label":p,children:m}),t[5]=f,t[6]=p,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,U.jsx)(w,{value:G,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,U.jsx)(w,{value:`off`,children:d(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(te),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,U.jsxs)(S,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==l||t[16]!==y||t[17]!==u||t[18]!==h?(x=(0,U.jsxs)(T,{value:l,onValueChange:u,disabled:a,children:[h,y]}),t[14]=a,t[15]=l,t[16]=y,t[17]=u,t[18]=h,t[19]=x):x=t[19],x}function te(e){return(0,U.jsx)(w,{value:e,children:d(e)},e)}function ne(e){let t=(0,H.c)(21),{value:n,onChange:r,enabledModels:i,disabled:a}=e,o=a!==void 0&&a,u;if(t[0]!==i){u=new Map;for(let e of i){let t=e.provider??`other`,n=u.get(t);n?n.push(e):u.set(t,[e])}t[0]=i,t[1]=u}else u=t[1];let d=u,f;t[2]!==r||t[3]!==n?(f=function(e,t){let i={...n};if(t===W){delete i[e],r(i);return}let a=h(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=f):f=t[4];let g=f,_;t[5]===i?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=_);let v=_,y;t[7]!==r||t[8]!==n?(y=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===G)delete a.reasoningEffort;else if(s(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=y):y=t[9];let D=y,O;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,U.jsx)(P,{className:J,children:(0,U.jsxs)(`tr`,{children:[(0,U.jsx)(F,{className:X,children:`Name`}),(0,U.jsx)(F,{className:Y,children:`Model`}),(0,U.jsx)(F,{className:Z,children:`Reasoning`})]})}),t[10]=O):O=t[10];let k;t[11]!==o||t[12]!==i||t[13]!==v||t[14]!==g||t[15]!==D||t[16]!==d||t[17]!==n?(k=m.map(e=>{let t=n[e],r=t?l(t):W,a=v(t)?.supportedReasoningEfforts??[];return(0,U.jsxs)(L,{className:`hover:bg-transparent`,children:[(0,U.jsx)(R,{className:Q,children:(0,U.jsx)(j,{title:c[e],description:p[e]})}),(0,U.jsx)(R,{className:Q,children:(0,U.jsxs)(T,{value:r,onValueChange:t=>g(e,t),disabled:o,children:[(0,U.jsx)(b,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,U.jsx)(C,{placeholder:`Unspecified`,children:t?(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(E,{providerSlug:t.provider}),(0,U.jsx)(`span`,{className:`truncate`,children:N(t.model)})]}):`Unspecified`})}),(0,U.jsxs)(S,{children:[(0,U.jsx)(w,{value:W,children:`Unspecified`}),i.length>0&&(0,U.jsx)(x,{}),[...d.entries()].map(re)]})]})}),(0,U.jsx)(R,{className:$,children:(0,U.jsx)(ee,{alias:e,target:t,supportedReasoningEfforts:a,disabled:o,onReasoningChange:D})})]},e)}),t[11]=o,t[12]=i,t[13]=v,t[14]=g,t[15]=D,t[16]=d,t[17]=n,t[18]=k):k=t[18];let A;return t[19]===k?A=t[20]:(A=(0,U.jsx)(`div`,{id:`model-aliases`,children:(0,U.jsxs)(z,{className:q,children:[O,(0,U.jsx)(I,{children:k})]})}),t[19]=k,t[20]=A),A}function re(e){let[t,n]=e;return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:_(o.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,U.jsx)(E,{providerSlug:t}),t]}),n.map(e=>{let n=l({provider:e.provider??t,model:e.id});return(0,U.jsx)(w,{value:n,children:N(e.id)},n)})]},t)}function ie(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?N(e.id).localeCompare(N(t.id)):n})}function ae(){let{data:e,isLoading:t}=a(),n=i(),[r,o]=(0,V.useState)({}),[s,c]=(0,V.useState)({}),l=(0,V.useRef)(s),[d,p]=(0,V.useState)([]),[m,h]=(0,V.useState)(!0),_=t||m,b=n.isPending;(0,V.useEffect)(function(){let e=!1;async function t(){h(!0);try{let t=await g().catch(()=>({}));e||p(ie(Object.values(t).flat()))}finally{e||h(!1)}}return t(),function(){e=!0}},[]);let x=e?.modelAliases;(0,V.useEffect)(function(){if(!x)return;let e=l.current;o(function(t){return u(t,e)?x:t}),l.current=x,c(x)},[x]);let S=B(`model-aliases`,[_]);function C(){return!u(r,s)}async function w(){if(C())try{let e=Object.keys(r).length>0?r:void 0;if(e){let t=await g(),n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.map(e=>e.id)]));f(e,n)}await n.mutateAsync({modelAliases:e??null}),l.current=r,c(r),M()}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}}return(0,U.jsx)(k,{loading:S,children:(0,U.jsxs)(O,{className:`shrink-0`,children:[(0,U.jsx)(D,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,U.jsx)(v,{onClick:()=>void w(),disabled:_||b||!C(),children:`Save`}),sticky:!1}),(0,U.jsx)(A,{className:`max-w-none pt-6`,children:(0,U.jsx)(ne,{value:r,onChange:o,enabledModels:d,disabled:_||b})})]})})}export{ae as default};
|
package/dist/public/assets/{project-settings-view-CE4nAz5B.js → project-settings-view-FnK-LRsv.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{A as a,T as o,U as s,k as c,w as l}from"./dist-v_MvKS2-.js";import{r as u}from"./store-W78TGOIO.js";import{Dt as d,Et as f,Nn as p,fr as m,pi as h,pr as g}from"./api-C4ukGdyH.js";import{t as _}from"./loader-circle-CrqRIqdA.js";import{t as v}from"./button-DDaJhJP1.js";import{i as ee,n as y,r as te,t as b}from"./tooltip-CqwCZ7wt.js";import{t as x}from"./use-toast-CKgZ8YeP.js";import{Gt as S,Jt as ne,Kt as C,Wt as re,a as w,at as ie,dt as ae,ft as oe,gn as se,gt as ce,hn as le,lr as T,lt as ue,nt as de,pt as fe}from"./index-CoY8DilQ.js";import{t as pe}from"./use-settings-page-loading-B5WU5d1c.js";var E=t(),D=e(n(),1),O=r();function k(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 me(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await f(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await d(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}function he(e){return new Promise(function(t,n){let r=new FileReader;r.onload=function(){typeof r.result==`string`?t(r.result):n(Error(`The selected file could not be read.`))},r.onerror=function(){n(Error(`The selected file could not be read.`))},r.readAsDataURL(e)})}async function ge(e,t){try{let n=await k(e),r=await fetch(e);if(!r.ok)throw Error(`The selected file could not be read.`);let i=await r.blob(),a=l(new Uint8Array(await i.slice(0,12).arrayBuffer())),s=a?o(a):null;if(s?.mime===`image/webp`){t(await he(i.slice(0,i.size,s.mime)));return}let c=document.createElement(`canvas`);c.width=256,c.height=256;let u=c.getContext(`2d`);if(!u)throw Error(`Could not prepare image conversion`);u.imageSmoothingEnabled=!0,u.imageSmoothingQuality=`high`;let d=Math.max(256/n.naturalWidth,256/n.naturalHeight),f=n.naturalWidth*d,p=n.naturalHeight*d;u.drawImage(n,(256-f)/2,(256-p)/2,f,p),t(c.toDataURL(`image/png`))}catch(e){x({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function _e(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await ge(r,t)}finally{URL.revokeObjectURL(r)}}async function ve(e,t,n){t!==n&&await g(e,t)}async function A(e,t,n){t!==n&&await p(e,`AGENTS.md`,t)}async function j(e,t,n){t!==n&&await m(e,{projectIcon:t})}async function ye(e,t,n,r,i,a){n.setSaving(!0);try{await ve(e,t.name,t.originalName),await A(e,t.instructions,t.originalInstructions),await j(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function be(e){let t=(0,E.c)(33),{projectIcon:n,entityNoun:r,fixed:i,disabled:a,inputRef:o,onFileChange:c,onButtonClick:l,onRemove:u}=e,d;t[0]===n?d=t[1]:(d=n?(0,O.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,O.jsx)(T,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[0]=n,t[1]=d);let f=d;if(i){let e;t[2]===f?e=t[3]:(e=(0,O.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border`,children:f}),t[2]=f,t[3]=e);let n;t[4]===r?n=t[5]:(n=(0,O.jsxs)(`p`,{className:s.caption,children:[`Tarsk ships the avatar for this `,r]}),t[4]=r,t[5]=n);let i;return t[6]!==e||t[7]!==n?(i=(0,O.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8],i}let p;t[9]!==a||t[10]!==o||t[11]!==c?(p=(0,O.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`sr-only`,onChange:c,disabled:a}),t[9]=a,t[10]=o,t[11]=c,t[12]=p):p=t[12];let m=n?`Change project icon`:`Choose project icon`,h;t[13]!==f||t[14]!==a||t[15]!==l||t[16]!==m?(h=(0,O.jsx)(ne,{asChild:!0,children:(0,O.jsx)(ee,{asChild:!0,children:(0,O.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:l,disabled:a,"aria-label":m,children:f})})}),t[13]=f,t[14]=a,t[15]=l,t[16]=m,t[17]=h):h=t[17];let g;t[18]===r?g=t[19]:(g=(0,O.jsxs)(y,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[18]=r,t[19]=g);let _;t[20]!==h||t[21]!==g?(_=(0,O.jsx)(te,{delayDuration:300,children:(0,O.jsxs)(b,{children:[h,g]})}),t[20]=h,t[21]=g,t[22]=_):_=t[22];let v;t[23]!==a||t[24]!==u||t[25]!==n?(v=n&&(0,O.jsx)(S,{children:(0,O.jsx)(C,{disabled:a,onSelect:u,children:`Remove`})}),t[23]=a,t[24]=u,t[25]=n,t[26]=v):v=t[26];let x;t[27]!==_||t[28]!==v?(x=(0,O.jsxs)(re,{children:[_,v]}),t[27]=_,t[28]=v,t[29]=x):x=t[29];let w;return t[30]!==p||t[31]!==x?(w=(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,x]}),t[30]=p,t[31]=x,t[32]=w):w=t[32],w}function xe(e){let t=(0,E.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(_,{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,O.jsx)(v,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Se(e,t,n){let r=(0,E.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return ge(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,D.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return _e(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){h()&&t?w(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 M(e){let t=(0,E.c)(60),{projectId:n,onProjectUpdated:r}=e,o=i(),s;t[0]===n?s=t[1]:(s=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=s);let l=u(s),d;t[2]===n?d=t[3]:(d=e=>e.projects.find(e=>e.projectId===n)?.builtIn,t[2]=n,t[3]=d);let f=u(d),p=c({type:l})?`bot`:`project`,m;t[4]===f?m=t[5]:(m=a({builtIn:f}),t[4]=f,t[5]=m);let h=m,[g,_]=(0,D.useState)(``),[v,ee]=(0,D.useState)(``),[y,te]=(0,D.useState)(``),[b,x]=(0,D.useState)(!1),[S,ne]=(0,D.useState)(!0),[C,re]=(0,D.useState)(``),[w,T]=(0,D.useState)(null),[k,he]=(0,D.useState)(null),[ge,_e]=(0,D.useState)(null),ve=(0,D.useRef)(null),A;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(A={setProjectPath:_e,setName:_,setInstructions:ee,setProjectIcon:T,setOriginalName:re,setOriginalInstructions:te,setOriginalProjectIcon:he,setLoading:ne,setSaving:x},t[6]=A):A=t[6];let j=A,M;t[7]===n?M=t[8]:(M=()=>me(n,j),t[7]=n,t[8]=M);let N=M,P,F;t[9]===n?(P=t[10],F=t[11]):(P=()=>{n&&ne(!0)},F=[n],t[9]=n,t[10]=P,t[11]=F),(0,D.useLayoutEffect)(P,F);let I,L;t[12]===N?(I=t[13],L=t[14]):(I=()=>{N()},L=[N],t[12]=N,t[13]=I,t[14]=L),(0,D.useEffect)(I,L);let R;t[15]===S?R=t[16]:(R=[S],t[15]=S,t[16]=R);let z=pe(n,R),{handleProjectIconChange:B,handleProjectIconButtonClick:V}=Se(T,ge,ve),H;t[17]!==v||t[18]!==N||t[19]!==g||t[20]!==o||t[21]!==r||t[22]!==y||t[23]!==C||t[24]!==k||t[25]!==w||t[26]!==n?(H=async()=>{n&&await ye(n,{name:g,instructions:v,projectIcon:w,originalName:C,originalInstructions:y,originalProjectIcon:k},j,r,o,N)},t[17]=v,t[18]=N,t[19]=g,t[20]=o,t[21]=r,t[22]=y,t[23]=C,t[24]=k,t[25]=w,t[26]=n,t[27]=H):H=t[27];let Ce=H,U=S||b,we=g!==C||v!==y||w!==k;if(!n){let e;return t[28]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(oe,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[28]=e):e=t[28],e}let Te=U||!we,W;t[29]!==Ce||t[30]!==b||t[31]!==Te?(W=(0,O.jsx)(ie,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,O.jsx)(xe,{saving:b,disabled:Te,onClick:Ce}),sticky:!1}),t[29]=Ce,t[30]=b,t[31]=Te,t[32]=W):W=t[32];let G;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>T(null),t[33]=G):G=t[33];let K;t[34]!==U||t[35]!==V||t[36]!==B||t[37]!==p||t[38]!==h||t[39]!==w?(K=(0,O.jsx)(`div`,{className:`flex justify-center`,children:(0,O.jsx)(be,{projectIcon:w,entityNoun:p,fixed:h,disabled:U,inputRef:ve,onFileChange:B,onButtonClick:V,onRemove:G})}),t[34]=U,t[35]=V,t[36]=B,t[37]=p,t[38]=h,t[39]=w,t[40]=K):K=t[40];let q;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>_(e.target.value),t[41]=q):q=t[41];let J;t[42]!==S||t[43]!==g?(J=(0,O.jsx)(de,{title:`Name`,controlLayout:`stack`,children:(0,O.jsx)(se,{id:`projectName`,value:g,onChange:q,placeholder:`Enter project name`,disabled:S})}),t[42]=S,t[43]=g,t[44]=J):J=t[44];let Y;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>ee(e.target.value),t[45]=Y):Y=t[45];let X;t[46]!==v||t[47]!==S?(X=(0,O.jsx)(de,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,O.jsx)(le,{id:`projectInstructions`,value:v,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:S})}),t[46]=v,t[47]=S,t[48]=X):X=t[48];let Z;t[49]!==K||t[50]!==J||t[51]!==X?(Z=(0,O.jsx)(fe,{className:`max-w-none pt-6`,children:(0,O.jsxs)(ae,{children:[K,J,X]})}),t[49]=K,t[50]=J,t[51]=X,t[52]=Z):Z=t[52];let Q;t[53]!==W||t[54]!==Z?(Q=(0,O.jsxs)(ce,{className:`shrink-0`,children:[W,Z]}),t[53]=W,t[54]=Z,t[55]=Q):Q=t[55];let $;return t[56]!==z||t[57]!==n||t[58]!==Q?($=(0,O.jsx)(ue,{loading:z,children:Q},n),t[56]=z,t[57]=n,t[58]=Q,t[59]=$):$=t[59],$}export{M as default};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{A as a,T as o,U as s,k as c,w as l}from"./dist-v_MvKS2-.js";import{r as u}from"./store-W78TGOIO.js";import{Et as d,Mn as f,Tt as p,di as m,dr as h,ur as g}from"./api-Cp9I7CxD.js";import{t as _}from"./loader-circle-CrqRIqdA.js";import{t as v}from"./button-DDaJhJP1.js";import{i as ee,n as y,r as te,t as b}from"./tooltip-CqwCZ7wt.js";import{t as x}from"./use-toast-CKgZ8YeP.js";import{Gt as S,Jt as ne,Kt as C,Wt as re,a as w,at as ie,cr as T,dt as ae,ft as oe,gn as se,gt as ce,hn as le,lt as ue,nt as de,pt as fe}from"./index-CcAwxnT5.js";import{t as pe}from"./use-settings-page-loading-B5WU5d1c.js";var E=t(),D=e(n(),1),O=r();function k(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 me(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await p(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await d(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}function he(e){return new Promise(function(t,n){let r=new FileReader;r.onload=function(){typeof r.result==`string`?t(r.result):n(Error(`The selected file could not be read.`))},r.onerror=function(){n(Error(`The selected file could not be read.`))},r.readAsDataURL(e)})}async function ge(e,t){try{let n=await k(e),r=await fetch(e);if(!r.ok)throw Error(`The selected file could not be read.`);let i=await r.blob(),a=l(new Uint8Array(await i.slice(0,12).arrayBuffer())),s=a?o(a):null;if(s?.mime===`image/webp`){t(await he(i.slice(0,i.size,s.mime)));return}let c=document.createElement(`canvas`);c.width=256,c.height=256;let u=c.getContext(`2d`);if(!u)throw Error(`Could not prepare image conversion`);u.imageSmoothingEnabled=!0,u.imageSmoothingQuality=`high`;let d=Math.max(256/n.naturalWidth,256/n.naturalHeight),f=n.naturalWidth*d,p=n.naturalHeight*d;u.drawImage(n,(256-f)/2,(256-p)/2,f,p),t(c.toDataURL(`image/png`))}catch(e){x({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function _e(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await ge(r,t)}finally{URL.revokeObjectURL(r)}}async function ve(e,t,n){t!==n&&await h(e,t)}async function A(e,t,n){t!==n&&await f(e,`AGENTS.md`,t)}async function j(e,t,n){t!==n&&await g(e,{projectIcon:t})}async function ye(e,t,n,r,i,a){n.setSaving(!0);try{await ve(e,t.name,t.originalName),await A(e,t.instructions,t.originalInstructions),await j(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function be(e){let t=(0,E.c)(33),{projectIcon:n,entityNoun:r,fixed:i,disabled:a,inputRef:o,onFileChange:c,onButtonClick:l,onRemove:u}=e,d;t[0]===n?d=t[1]:(d=n?(0,O.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,O.jsx)(T,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[0]=n,t[1]=d);let f=d;if(i){let e;t[2]===f?e=t[3]:(e=(0,O.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border`,children:f}),t[2]=f,t[3]=e);let n;t[4]===r?n=t[5]:(n=(0,O.jsxs)(`p`,{className:s.caption,children:[`Tarsk ships the avatar for this `,r]}),t[4]=r,t[5]=n);let i;return t[6]!==e||t[7]!==n?(i=(0,O.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8],i}let p;t[9]!==a||t[10]!==o||t[11]!==c?(p=(0,O.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`sr-only`,onChange:c,disabled:a}),t[9]=a,t[10]=o,t[11]=c,t[12]=p):p=t[12];let m=n?`Change project icon`:`Choose project icon`,h;t[13]!==f||t[14]!==a||t[15]!==l||t[16]!==m?(h=(0,O.jsx)(ne,{asChild:!0,children:(0,O.jsx)(ee,{asChild:!0,children:(0,O.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:l,disabled:a,"aria-label":m,children:f})})}),t[13]=f,t[14]=a,t[15]=l,t[16]=m,t[17]=h):h=t[17];let g;t[18]===r?g=t[19]:(g=(0,O.jsxs)(y,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[18]=r,t[19]=g);let _;t[20]!==h||t[21]!==g?(_=(0,O.jsx)(te,{delayDuration:300,children:(0,O.jsxs)(b,{children:[h,g]})}),t[20]=h,t[21]=g,t[22]=_):_=t[22];let v;t[23]!==a||t[24]!==u||t[25]!==n?(v=n&&(0,O.jsx)(S,{children:(0,O.jsx)(C,{disabled:a,onSelect:u,children:`Remove`})}),t[23]=a,t[24]=u,t[25]=n,t[26]=v):v=t[26];let x;t[27]!==_||t[28]!==v?(x=(0,O.jsxs)(re,{children:[_,v]}),t[27]=_,t[28]=v,t[29]=x):x=t[29];let w;return t[30]!==p||t[31]!==x?(w=(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,x]}),t[30]=p,t[31]=x,t[32]=w):w=t[32],w}function xe(e){let t=(0,E.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(_,{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,O.jsx)(v,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Se(e,t,n){let r=(0,E.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return ge(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!m())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,D.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return _e(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){m()&&t?w(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 M(e){let t=(0,E.c)(60),{projectId:n,onProjectUpdated:r}=e,o=i(),s;t[0]===n?s=t[1]:(s=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=s);let l=u(s),d;t[2]===n?d=t[3]:(d=e=>e.projects.find(e=>e.projectId===n)?.builtIn,t[2]=n,t[3]=d);let f=u(d),p=c({type:l})?`bot`:`project`,m;t[4]===f?m=t[5]:(m=a({builtIn:f}),t[4]=f,t[5]=m);let h=m,[g,_]=(0,D.useState)(``),[v,ee]=(0,D.useState)(``),[y,te]=(0,D.useState)(``),[b,x]=(0,D.useState)(!1),[S,ne]=(0,D.useState)(!0),[C,re]=(0,D.useState)(``),[w,T]=(0,D.useState)(null),[k,he]=(0,D.useState)(null),[ge,_e]=(0,D.useState)(null),ve=(0,D.useRef)(null),A;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(A={setProjectPath:_e,setName:_,setInstructions:ee,setProjectIcon:T,setOriginalName:re,setOriginalInstructions:te,setOriginalProjectIcon:he,setLoading:ne,setSaving:x},t[6]=A):A=t[6];let j=A,M;t[7]===n?M=t[8]:(M=()=>me(n,j),t[7]=n,t[8]=M);let N=M,P,F;t[9]===n?(P=t[10],F=t[11]):(P=()=>{n&&ne(!0)},F=[n],t[9]=n,t[10]=P,t[11]=F),(0,D.useLayoutEffect)(P,F);let I,L;t[12]===N?(I=t[13],L=t[14]):(I=()=>{N()},L=[N],t[12]=N,t[13]=I,t[14]=L),(0,D.useEffect)(I,L);let R;t[15]===S?R=t[16]:(R=[S],t[15]=S,t[16]=R);let z=pe(n,R),{handleProjectIconChange:B,handleProjectIconButtonClick:V}=Se(T,ge,ve),H;t[17]!==v||t[18]!==N||t[19]!==g||t[20]!==o||t[21]!==r||t[22]!==y||t[23]!==C||t[24]!==k||t[25]!==w||t[26]!==n?(H=async()=>{n&&await ye(n,{name:g,instructions:v,projectIcon:w,originalName:C,originalInstructions:y,originalProjectIcon:k},j,r,o,N)},t[17]=v,t[18]=N,t[19]=g,t[20]=o,t[21]=r,t[22]=y,t[23]=C,t[24]=k,t[25]=w,t[26]=n,t[27]=H):H=t[27];let Ce=H,U=S||b,we=g!==C||v!==y||w!==k;if(!n){let e;return t[28]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(oe,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[28]=e):e=t[28],e}let Te=U||!we,W;t[29]!==Ce||t[30]!==b||t[31]!==Te?(W=(0,O.jsx)(ie,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,O.jsx)(xe,{saving:b,disabled:Te,onClick:Ce}),sticky:!1}),t[29]=Ce,t[30]=b,t[31]=Te,t[32]=W):W=t[32];let G;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>T(null),t[33]=G):G=t[33];let K;t[34]!==U||t[35]!==V||t[36]!==B||t[37]!==p||t[38]!==h||t[39]!==w?(K=(0,O.jsx)(`div`,{className:`flex justify-center`,children:(0,O.jsx)(be,{projectIcon:w,entityNoun:p,fixed:h,disabled:U,inputRef:ve,onFileChange:B,onButtonClick:V,onRemove:G})}),t[34]=U,t[35]=V,t[36]=B,t[37]=p,t[38]=h,t[39]=w,t[40]=K):K=t[40];let q;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>_(e.target.value),t[41]=q):q=t[41];let J;t[42]!==S||t[43]!==g?(J=(0,O.jsx)(de,{title:`Name`,controlLayout:`stack`,children:(0,O.jsx)(se,{id:`projectName`,value:g,onChange:q,placeholder:`Enter project name`,disabled:S})}),t[42]=S,t[43]=g,t[44]=J):J=t[44];let Y;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>ee(e.target.value),t[45]=Y):Y=t[45];let X;t[46]!==v||t[47]!==S?(X=(0,O.jsx)(de,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,O.jsx)(le,{id:`projectInstructions`,value:v,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:S})}),t[46]=v,t[47]=S,t[48]=X):X=t[48];let Z;t[49]!==K||t[50]!==J||t[51]!==X?(Z=(0,O.jsx)(fe,{className:`max-w-none pt-6`,children:(0,O.jsxs)(ae,{children:[K,J,X]})}),t[49]=K,t[50]=J,t[51]=X,t[52]=Z):Z=t[52];let Q;t[53]!==W||t[54]!==Z?(Q=(0,O.jsxs)(ce,{className:`shrink-0`,children:[W,Z]}),t[53]=W,t[54]=Z,t[55]=Q):Q=t[55];let $;return t[56]!==z||t[57]!==n||t[58]!==Q?($=(0,O.jsx)(ue,{loading:z,children:Q},n),t[56]=z,t[57]=n,t[58]=Q,t[59]=$):$=t[59],$}export{M as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{D as a,M as o,N as s,O as c,U as l,j as u,k as d}from"./dist-v_MvKS2-.js";import{K as f,Tt as p,ur as m}from"./api-Cp9I7CxD.js";import{t as h}from"./utils-CqsIXqSC.js";import{t as g}from"./loader-circle-CrqRIqdA.js";import{t as _}from"./button-DDaJhJP1.js";import{t as v}from"./use-toast-CKgZ8YeP.js";import{G as y,at as b,ft as x,gt as S,lt as C,pt as w}from"./index-CcAwxnT5.js";import{t as T}from"./use-settings-page-loading-B5WU5d1c.js";var E=e(n(),1),D=t(),O=r(),k=s(),A=Math.ceil(k.length/2),j=[k.slice(0,A),k.slice(A)];function M(e){let t=(0,D.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,o;t[0]!==a||t[1]!==n.name?(o=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=o):o=t[2];let s;t[3]!==i||t[4]!==r||t[5]!==o||t[6]!==n.displayName?(s=(0,O.jsx)(y,{value:r,onChange:o,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=o,t[6]=n.displayName,t[7]=s):s=t[7];let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=h(l.body,`truncate`),t[8]=c):c=t[8];let u;t[9]===n.displayName?u=t[10]:(u=(0,O.jsx)(`span`,{className:c,children:n.displayName}),t[9]=n.displayName,t[10]=u);let d;return t[11]!==s||t[12]!==u?(d=(0,O.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[s,u]}),t[11]=s,t[12]=u,t[13]=d):d=t[13],d}function N(e,t,n){return!t.includes(e)&&!n.has(e)}function P(e,t,n){return t||n.has(e)}function F(e){let t=(0,D.c)(13),{tools:n,disabledTools:r,disabled:i,forceDisabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,r,a),disabled:P(e.name,i,a),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,O.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function I(e){let t=(0,D.c)(23),{disabledTools:n,onChange:r,disabled:i,forceDisabledTools:a}=e,o=i!==void 0&&i,s;t[0]===a?s=t[1]:(s=a??[],t[0]=a,t[1]=s);let c,l,u,d;t[2]!==o||t[3]!==n||t[4]!==r||t[5]!==s?(c=new Set(s.map(L)),l=function(e,t){let i=e.toLowerCase();if(!(c.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},u=`divide-y divide-table-border @md/settings-page:hidden`,d=k.map(e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,n,c),disabled:P(e.name,o,c),onToggle:l},e.name)),t[2]=o,t[3]=n,t[4]=r,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d):(c=t[6],l=t[7],u=t[8],d=t[9]);let f;t[10]!==u||t[11]!==d?(f=(0,O.jsx)(`div`,{className:u,children:d}),t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==l?(p=j.map((e,t)=>(0,O.jsx)(F,{tools:e,disabledTools:n,disabled:o,forceDisabledTools:c,onToggle:l},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=l,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,O.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,O.jsxs)(O.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function L(e){return e.toLowerCase()}function R(e,t){return JSON.stringify([...e].sort())!==JSON.stringify([...t].sort())}function z(e,t){return e?o({type:a,disabledTools:t}):t}async function B(e){let t=await p(e);return{disabledTools:o(t),toolsLocked:d(t),standardProject:u(t)}}function V(e,t){v({title:`Error`,description:e instanceof Error?e.message:t,variant:`destructive`})}function H(e){let t=(0,D.c)(6),{saving:n,disabled:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(g,{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,O.jsx)(_,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function U({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,E.useState)([]),[o,s]=(0,E.useState)([]),[l,u]=(0,E.useState)(!0),[d,p]=(0,E.useState)(!1),[h,y]=(0,E.useState)(!1),[D,k]=(0,E.useState)(!1),[A,j]=(0,E.useState)(!1),M=(0,E.useCallback)(async()=>{if(!e){u(!1);return}u(!0);try{let t=await B(e);a(t.disabledTools),s(t.disabledTools),k(t.toolsLocked),j(t.standardProject)}catch(e){V(e,`Failed to load tools settings`)}finally{u(!1)}},[e]);(0,E.useLayoutEffect)(()=>{e&&u(!0)},[e]),(0,E.useEffect)(()=>{M()},[M]);let N=T(e,[l]),P=R(r,o);async function F(){if(e&&P){p(!0);try{await m(e,{disabledTools:z(A,r)}),s(r),t&&await t(),await M(),n(`/`)}catch(e){V(e,`Failed to save tools settings`)}finally{p(!1)}}}async function L(){if(e&&!h){y(!0);try{let t=await f(e),n=t.copied.length+t.overwritten.length,r=t.skipped===`tarsk-checkout`?`The tool definitions are already in this Tarsk repository.`:n>0?`Exported ${n} tool skill${n===1?``:`s`} to .agents/skills.`:`No tool skills needed exporting. Existing project copies were left unchanged.`;v({title:`Tool definitions exported`,description:r})}catch(e){V(e,`Failed to export tool definitions`)}finally{y(!1)}}}return e?(0,O.jsx)(C,{loading:N,children:(0,O.jsxs)(S,{className:`shrink-0`,children:[(0,O.jsx)(b,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,O.jsx)(H,{saving:d,disabled:d||l||D||!P,onSave:()=>void F()}),sticky:!1}),(0,O.jsxs)(w,{className:`max-w-none pt-6`,children:[(0,O.jsx)(I,{disabledTools:r,onChange:a,disabled:l||d||D,forceDisabledTools:A?[...c]:void 0}),(0,O.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3 border-t border-divider pt-5 sm:flex-row sm:items-center sm:justify-between`,children:[(0,O.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Export the tool definitions to this repository so that /tarsk-improve can improve the tools for this project`}),(0,O.jsx)(_,{onClick:()=>void L(),disabled:h||l,children:h?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(g,{className:`mr-2 h-4 w-4 animate-spin`}),`Exporting...`]}):`Eject`})]})]})]})}):(0,O.jsx)(x,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{U as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{c as i,s as a}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{H as o,U as s,x as c}from"./dist-v_MvKS2-.js";import{Z as l,n as u}from"./store-W78TGOIO.js";import{B as d,Fn as f,H as p,It as m,J as h,Nt as g,Pn as _,U as v,Y as y,_n as b,at as x,z as S}from"./api-Cp9I7CxD.js";import{r as C,t as w}from"./utils-CqsIXqSC.js";import{t as T}from"./loader-circle-CrqRIqdA.js";import{t as E}from"./x-ByOPrz5I.js";import{t as D}from"./button-DDaJhJP1.js";import{i as O,n as k,r as A,t as j}from"./tooltip-CqwCZ7wt.js";import{t as ee}from"./progress-indicator-hJ74ac5W.js";import{n as M}from"./suspense-resource-DzlMlIgR.js";import{t as te}from"./use-suspense-resource-uCX26gOk.js";import{$t as ne,Bn as N,Ft as P,G as re,In as ie,Nr as ae,Qt as oe,Sr as se,X as F,Y as ce,Zt as le,at as I,dt as L,en as R,et as z,ft as ue,gn as B,gt as V,hr as H,ir as de,it as fe,mr as pe,pt as me,q as he,ut as ge,vt as U,wt as W}from"./index-CcAwxnT5.js";import{t as G}from"./async-error-boundary-CFVUPiuG.js";import{t as K}from"./sorting-DqwxPMRN.js";import{t as q}from"./pending-changes-Bn-0ak1d.js";import{o as J}from"./settings-list-Co3JPr9w.js";import{t as Y}from"./use-deferred-search-xgS_2fMW.js";import{n as X,r as _e,t as ve}from"./model-list-controls-B6ofHWh3.js";var Z=e(n(),1),Q=t();function ye(e,t,n){return n?e.find(e=>e.slug===n)??null:t?e.find(e=>e.name===t)??null:null}function be(e,t,n){return e?!!(n&&e.slug===n||t&&e.name===t):!1}function xe(e){return e instanceof Error?e.message:`Failed to load providers`}async function Se({providerData:e,selectedProviderName:t,selectedProviderSlug:n,fetchProviders:r}){if(be(e,t,n))return{provider:e};try{return{provider:ye(await r(),t,n)}}catch(e){return{error:xe(e)}}}var Ce=c(`app.use-provider-details.hook`);function we(){let e=(0,Q.c)(10),[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(``),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={},e[0]=h):h=e[0];let[g,_]=(0,Z.useState)(h),v;return e[1]!==a||e[2]!==r||e[3]!==s||e[4]!==p||e[5]!==g||e[6]!==d||e[7]!==t||e[8]!==l?(v={selectedProvider:t,setSelectedProvider:n,displayApiKey:r,setDisplayApiKey:i,balance:a,setBalance:o,error:s,setError:c,showApiKey:l,setShowApiKey:u,saveStatus:d,setSaveStatus:f,originalApiKey:p,setOriginalApiKey:m,providerEnvValues:g,setProviderEnvValues:_},e[1]=a,e[2]=r,e[3]=s,e[4]=p,e[5]=g,e[6]=d,e[7]=t,e[8]=l,e[9]=v):v=e[9],v}function Te(){let e=(0,Q.c)(15),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Z.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Z.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Z.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Z.useState)(u),{query:p,setQuery:m,deferredQuery:h}=Y(),[g,_]=(0,Z.useState)(`alphabetical`),[v,y]=(0,Z.useState)(`all`),[b,x]=(0,Z.useState)(`coding`),S;return e[4]!==n||e[5]!==h||e[6]!==a||e[7]!==c||e[8]!==v||e[9]!==p||e[10]!==g||e[11]!==b||e[12]!==d||e[13]!==m?(S={availableModels:n,setAvailableModels:r,enabledModelIds:a,setEnabledModelIds:o,initialEnabledModelIds:c,setInitialEnabledModelIds:l,pendingChanges:d,setPendingChanges:f,modelSearchQuery:p,setModelSearchQuery:m,deferredModelSearchQuery:h,modelSortBy:g,setModelSortBy:_,modelFilter:v,setModelFilter:y,modelTab:b,setModelTab:x},e[4]=n,e[5]=h,e[6]=a,e[7]=c,e[8]=v,e[9]=p,e[10]=g,e[11]=b,e[12]=d,e[13]=m,e[14]=S):S=e[14],S}function Ee(){let e=(0,Q.c)(9),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Z.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Z.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Z.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Z.useState)(u),p;return e[4]!==n||e[5]!==a||e[6]!==c||e[7]!==d?(p={availableImageModels:n,setAvailableImageModels:r,enabledImageModelIds:a,setEnabledImageModelIds:o,initialEnabledImageModelIds:c,setInitialEnabledImageModelIds:l,pendingImageChanges:d,setPendingImageChanges:f},e[4]=n,e[5]=a,e[6]=c,e[7]=d,e[8]=p):p=e[8],p}function De(){let e=(0,Q.c)(7),t=u(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(``),o=we(),s=Te(),c=Ee(),l;return e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==o||e[4]!==s||e[5]!==c?(l={dispatch:t,modelsLoading:n,setModelsLoading:r,modelsError:i,setModelsError:a,...o,...s,...c},e[0]=t,e[1]=i,e[2]=n,e[3]=o,e[4]=s,e[5]=c,e[6]=l):l=e[6],l}function Oe({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:n}){let r=De(),i=e=>W(e.id),a=(0,Z.useRef)(0);function o(){r.setAvailableModels([]),r.setAvailableImageModels([]),r.setEnabledModelIds(new Set),r.setInitialEnabledModelIds(new Set),r.setEnabledImageModelIds(new Set),r.setInitialEnabledImageModelIds(new Set),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}(0,Z.useEffect)(()=>{let i=++a.current;async function c(){r.setError(``);let c=await Se({providerData:n,selectedProviderName:e,selectedProviderSlug:t,fetchProviders:m});if(i!==a.current)return;if(`error`in c){r.setError(c.error);return}let l=c.provider;r.setSelectedProvider(l),r.setOriginalApiKey(l?.apiKey??``),r.setDisplayApiKey(l?.apiKey??``),r.setProviderEnvValues(l?.envValues??{}),l?(u(l.slug,i),s(l.slug,i)):(o(),r.setBalance(null),r.setModelsLoading(!1),r.setModelsError(``))}c()},[e,t,n]);async function s(e,t=a.current){r.setBalance(null);try{let n=await g(e);if(t!==a.current)return;n.status===`success`&&r.setBalance(n.balance)}catch(t){Ce.error(`Failed to load balance for ${e}:`,t)}}function c(e){return e instanceof Error?e.message:`Failed to load models from local API`}async function u(e,t=a.current){r.setModelsLoading(!0),r.setModelsError(``),r.setModelSearchQuery(``),r.setModelSortBy(`alphabetical`),r.setModelFilter(`all`),r.setModelTab(`coding`);try{let[n,i]=await Promise.all([y(e),h(e)]);if(t!==a.current)return;r.setAvailableModels(n.models),r.setAvailableImageModels(i.models);let o=new Set(n.enabledModelIds);r.setEnabledModelIds(o),r.setInitialEnabledModelIds(o);let s=new Set(i.enabledModelIds);r.setEnabledImageModelIds(s),r.setInitialEnabledImageModelIds(s),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}catch(n){if(t!==a.current)return;Ce.error(`Failed to load models for ${e}:`,n),o(),r.setModelsError(c(n))}finally{t===a.current&&r.setModelsLoading(!1)}}async function x(e){let t=a.current;r.setModelsLoading(!0),r.setModelsError(``);try{if(await b(e),t!==a.current||(await u(e,t),t!==a.current))return;r.dispatch({type:l.ConfigUpdated})}catch(n){if(t!==a.current)return;Ce.error(`Failed to refresh models for ${e}:`,n),o(),r.setModelsError(c(n)),r.setModelsLoading(!1)}}let C=(e,t)=>{r.selectedProvider?.name===e&&(r.setDisplayApiKey(t),T(t))},w=(e,t)=>{r.setProviderEnvValues(n=>({...n,[e]:t}));let n=r.selectedProvider?.slug;n&&(async()=>{try{await _({[e]:t}),r.dispatch({type:l.ConfigUpdated}),r.setSaveStatus(`${ce(e)} saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save provider settings`);return}ae(n)&&e===`LOCAL_API_URL`&&t.trim()&&await x(n)})()},T=async e=>{if(r.selectedProvider&&e!==r.originalApiKey)try{await f(r.selectedProvider.slug,e),r.dispatch({type:l.ConfigUpdated}),r.setOriginalApiKey(e),r.setSaveStatus(`API key saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save API key`)}},E=(e,t)=>{t===`image`?r.setPendingImageChanges(t=>{let n=new Map(t),i=r.enabledImageModelIds.has(e),a=n.has(e),o=n.get(e),s=!(a?o:i);s===i?n.delete(e):n.set(e,s);let c=n.has(e)?n.get(e):i;return D(e,c??!1,`image`),n}):r.setPendingChanges(t=>{let n=q(t,e,r.enabledModelIds),i=n.has(e)?n.get(e):r.enabledModelIds.has(e);return D(e,i??!1,`coding`),n})},D=async(e,t,n=`coding`)=>{if(r.selectedProvider)try{n===`image`?(t?(await p(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>new Set([...t,e]))):(await S(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingImageChanges(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await v(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>new Set([...t,e]))):(await d(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingChanges(t=>{let n=new Map(t);return n.delete(e),n}),U()),r.dispatch({type:l.ConfigUpdated}),r.setSaveStatus(`Model preferences saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save model changes`)}};async function O(e,t=`coding`){let n=t===`image`?r.availableImageModels:r.availableModels,i=t===`image`?r.enabledImageModelIds:r.enabledModelIds;(t===`image`?r.setPendingImageChanges:r.setPendingChanges)(t=>{let r=new Map(t);for(let t of n)i.has(t.id)===e?r.delete(t.id):r.set(t.id,e);return r});for(let r of n)i.has(r.id)!==e&&await D(r.id,e,t)}let k=r.displayApiKey!==void 0&&r.displayApiKey.trim().length>0,A=(0,Z.useMemo)(()=>K({models:r.availableModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledModelIds.has(e.id)}),[r.availableModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledModelIds,r.modelSortBy,i]),j=(0,Z.useMemo)(()=>K({models:r.availableImageModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy===`coding-index`||r.modelSortBy===`intelligence-by-price`?`alphabetical`:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledImageModelIds.has(e.id)}),[r.availableImageModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledImageModelIds,r.modelSortBy,i]);return{selectedProvider:r.selectedProvider,error:r.error,balance:r.balance,displayApiKey:r.displayApiKey,showApiKey:r.showApiKey,setShowApiKey:r.setShowApiKey,providerEnvValues:r.providerEnvValues,modelsLoading:r.modelsLoading,modelsError:r.modelsError,saveStatus:r.saveStatus,modelTab:r.modelTab,setModelTab:r.setModelTab,modelSearchQuery:r.modelSearchQuery,setModelSearchQuery:r.setModelSearchQuery,modelSortBy:r.modelSortBy,setModelSortBy:r.setModelSortBy,modelFilter:r.modelFilter,setModelFilter:r.setModelFilter,availableModels:r.availableModels,enabledModelIds:r.enabledModelIds,pendingChanges:r.pendingChanges,filteredAndSortedModels:A,availableImageModels:r.availableImageModels,enabledImageModelIds:r.enabledImageModelIds,pendingImageChanges:r.pendingImageChanges,filteredAndSortedImageModels:j,hasApiKey:k,getModelDisplayName:i,handleUpdateKeyLocal:C,handleUpdateProviderEnv:w,refreshLocalProviderModels:x,handleToggleModel:E,handleToggleAllModels:O}}var $=r();function ke(e){let t=(0,Q.c)(7),{provider:n,onBack:r}=e;if(!r&&!n.url)return null;let i;t[0]===n.url?i=t[1]:(i=n.url?(0,$.jsx)(he,{url:n.url,className:w(s.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(D,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(E,{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 Ae(e){let t=(0,Q.c)(6),{balance:n}=e;if(n===null)return null;let r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=w(s.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-brand`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=C(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 je(e){let t=(0,Q.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=w(s.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(O,{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)(k,{children:r}),t[3]=r,t[4]=o);let c;return t[5]!==a||t[6]!==o?(c=(0,$.jsx)(A,{children:(0,$.jsxs)(j,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=c):c=t[7],c}function Me(e){let t=(0,Q.c)(10),{provider:n,displayApiKey:r,showApiKey:i,onToggleShowApiKey:a,onUpdateKey:o,providerEnvValues:s,onUpdateEnv:c,modelsLoading:l,onRefreshModels:u}=e,d;return t[0]!==r||t[1]!==l||t[2]!==u||t[3]!==a||t[4]!==c||t[5]!==o||t[6]!==n||t[7]!==s||t[8]!==i?(d=(0,$.jsx)($.Fragment,{children:n.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(L,{children:[(0,$.jsx)(ge,{label:(0,$.jsx)(je,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(de,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(B,{type:i?`text`:`password`,placeholder:n.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:r,onChange:e=>{o(n.name,e.target.value)}}),(0,$.jsx)(D,{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)(H,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(pe,{className:`h-4 w-4 text-muted-foreground`})})]})}),F(n).map(e=>(0,$.jsx)(ge,{label:(0,$.jsx)(je,{title:ce(e),tooltip:e}),control:ae(n.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(B,{id:e,value:s[e]??``,onChange:t=>c(e,t.target.value),placeholder:n.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(A,{children:(0,$.jsxs)(j,{children:[(0,$.jsx)(O,{asChild:!0,children:(0,$.jsx)(D,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{u(n.slug)},disabled:l,children:l?(0,$.jsx)(T,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(N,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(k,{children:`Refresh models`})]})})]}):(0,$.jsx)(B,{id:e,value:s[e]??``,onChange:t=>c(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)(fe,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(D,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,n.name]})]})}),t[0]=r,t[1]=l,t[2]=u,t[3]=a,t[4]=c,t[5]=o,t[6]=n,t[7]=s,t[8]=i,t[9]=d):d=t[9],d}function Ne(e){let t=(0,Q.c)(6),{htmlFor:n,displayName:r,variant:i}=e,a=s[i],o;t[0]===a?o=t[1]:(o=w(a,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),t[0]=a,t[1]=o);let c;return t[2]!==r||t[3]!==n||t[4]!==o?(c=(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:n,className:o,children:r})}),t[2]=r,t[3]=n,t[4]=o,t[5]=c):c=t[5],c}function Pe(e){let t=(0,Q.c)(9),{pricing:n,className:r}=e,i=(n.prompt??0)===0&&(n.completion??0)===0,a;t[0]===r?a=t[1]:(a=w(s.caption,`whitespace-nowrap`,r),t[0]=r,t[1]=a);let o;t[2]!==i||t[3]!==n.completion||t[4]!==n.prompt?(o=i?``:`$${C(n.prompt??0)} in | $${C(n.completion??0)} out`,t[2]=i,t[3]=n.completion,t[4]=n.prompt,t[5]=o):o=t[5];let c;return t[6]!==a||t[7]!==o?(c=(0,$.jsx)(`span`,{className:a,children:o}),t[6]=a,t[7]=o,t[8]=c):c=t[8],c}function Fe(e){let t=(0,Q.c)(15),{model:n,displayName:r,checkboxId:i,showStarRating:a}=e,o;t[0]!==i||t[1]!==r?(o=(0,$.jsx)(Ne,{htmlFor:i,displayName:r,variant:`body`}),t[0]=i,t[1]=r,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==n.coding_index||t[5]!==a?(s=a&&(0,$.jsx)(_e,{codingIndex:n.coding_index,modelName:r}),t[3]=r,t[4]=n.coding_index,t[5]=a,t[6]=s):s=t[6];let c;t[7]===n.pricing?c=t[8]:(c=n.pricing&&(0,$.jsx)(Pe,{pricing:n.pricing}),t[7]=n.pricing,t[8]=c);let l;t[9]!==s||t[10]!==c?(l=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[s,c]}),t[9]=s,t[10]=c,t[11]=l):l=t[11];let u;return t[12]!==o||t[13]!==l?(u=(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[o,l]}),t[12]=o,t[13]=l,t[14]=u):u=t[14],u}function Ie(e){let t=(0,Q.c)(8),{model:n,displayName:r,checkboxId:i}=e,a;t[0]!==i||t[1]!==r?(a=(0,$.jsx)(Ne,{htmlFor:i,displayName:r,variant:`label`}),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===n.pricing?o=t[4]:(o=n.pricing&&(0,$.jsx)(Pe,{pricing:n.pricing,className:`flex-shrink-0`}),t[3]=n.pricing,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[a,o]}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Le(e){let t=(0,Q.c)(22),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:s,onToggle:c}=e,l=n===`image`?`image-${r.id}`:r.id,u=r.id,d=!o&&`opacity-25`,f;t[0]===d?f=t[1]:(f=w(`flex cursor-default items-center space-x-3 px-3 py-2 transition-colors hover:bg-muted/30`,d),t[0]=d,t[1]=f);let p=!o,m=a??!1,h;t[2]!==r.id||t[3]!==c?(h=()=>c(r.id),t[2]=r.id,t[3]=c,t[4]=h):h=t[4];let g=`${i} ${a?`enabled`:`disabled`}`,_;t[5]!==l||t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==g?(_=(0,$.jsx)(re,{id:l,disabled:p,value:m,onChange:h,ariaLabel:g}),t[5]=l,t[6]=p,t[7]=m,t[8]=h,t[9]=g,t[10]=_):_=t[10];let v;t[11]!==l||t[12]!==i||t[13]!==r||t[14]!==s||t[15]!==n?(v=n===`coding`?(0,$.jsx)(Fe,{model:r,displayName:i,checkboxId:l,showStarRating:s}):(0,$.jsx)(Ie,{model:r,displayName:i,checkboxId:l}),t[11]=l,t[12]=i,t[13]=r,t[14]=s,t[15]=n,t[16]=v):v=t[16];let y;return t[17]!==r.id||t[18]!==f||t[19]!==_||t[20]!==v?(y=(0,$.jsxs)(`div`,{className:f,children:[_,v]},u),t[17]=r.id,t[18]=f,t[19]=_,t[20]=v,t[21]=y):y=t[21],y}function Re(e){let t=(0,Q.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:a,modelsError:c,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:f,getModelDisplayName:p,onToggleModel:m}=e,h=n===`coding`,g=h?c?`No models loaded.`:`No models available for this provider.`:`No image models available for this provider.`,_;return t[0]!==g||t[1]!==u||t[2]!==i||t[3]!==p||t[4]!==l||t[5]!==h||t[6]!==f||t[7]!==r||t[8]!==a||t[9]!==m||t[10]!==d||t[11]!==n?(_=(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)(T,{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:s.bodyMuted,children:g})}):(0,$.jsx)(A,{children:(0,$.jsx)(`div`,{className:w(`grid grid-cols-1 gap-0`,o.tableWrapper),children:i.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:s.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)(Le,{tab:n,model:e,displayName:p(e),willBeEnabled:a,hasApiKey:l,showStarRating:h&&(f===`coding-index`||f===`intelligence-by-price`),onToggle:e=>m(e,n)},e.id)})})})}),t[0]=g,t[1]=u,t[2]=i,t[3]=p,t[4]=l,t[5]=h,t[6]=f,t[7]=r,t[8]=a,t[9]=m,t[10]=d,t[11]=n,t[12]=_):_=t[12],_}function ze(e){let t=(0,Q.c)(22),{tab:n,showImageTab:r,modelsLoading:i,models:a,hasApiKey:o,enabledModelIds:s,pendingChanges:c,modelSearchQuery:l,onModelSearchQueryChange:u,modelSortBy:d,onModelSortByChange:f,onToggleAllModels:p}=e,m=n===`coding`,h=m?`select-all-models`:`select-all-image-models`,g=!i&&a.length>0,_=g&&!o&&`opacity-25`,v;t[0]===_?v=t[1]:(v=w(`flex flex-col gap-2 md:flex-row md:items-center`,_),t[0]=_,t[1]=v);let y;t[2]===r?y=t[3]:(y=r?(0,$.jsxs)(ne,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(R,{value:`coding`,children:`Coding`}),(0,$.jsx)(R,{value:`image`,children:`Image`})]}):null,t[2]=r,t[3]=y);let b;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?(b=g?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(ie,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(B,{placeholder:`Search`,className:`pl-10 h-8`,value:l,onChange:e=>u(e.target.value),disabled:!o})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(ve,{id: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)(X,{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]=b):b=t[17];let x;return t[18]!==v||t[19]!==y||t[20]!==b?(x=(0,$.jsxs)(`div`,{className:v,children:[y,b]}),t[18]=v,t[19]=y,t[20]=b,t[21]=x):x=t[21],x}function Be(e){let t=(0,Q.c)(10),{title:n,description:r,action:i,tableHeader:a,children:o}=e,s;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==n?(s=(0,$.jsx)(I,{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)(V,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function Ve(e){let t=(0,Q.c)(111),{selectedProviderName:n,selectedProviderSlug:r,providerData:i,onBack:a,className:o}=e,s=n===void 0?null:n,c=r===void 0?null:r,l;t[0]!==i||t[1]!==s||t[2]!==c?(l={selectedProviderName:s,selectedProviderSlug:c,providerData:i},t[0]=i,t[1]=s,t[2]=c,t[3]=l):l=t[3];let{selectedProvider:u,error:d,balance:f,displayApiKey:p,showApiKey:m,setShowApiKey:h,providerEnvValues:g,modelsLoading:_,modelsError:v,saveStatus:y,modelTab:b,setModelTab:x,modelSearchQuery:S,setModelSearchQuery:C,modelSortBy:T,setModelSortBy:E,availableModels:O,enabledModelIds:k,pendingChanges:A,filteredAndSortedModels:j,availableImageModels:ee,enabledImageModelIds:M,pendingImageChanges:te,filteredAndSortedImageModels:ne,hasApiKey:N,getModelDisplayName:P,handleUpdateKeyLocal:re,handleUpdateProviderEnv:ie,refreshLocalProviderModels:ae,handleToggleModel:F,handleToggleAllModels:ce}=Oe(l);if(d){let e;t[4]===o?e=t[5]:(e=w(`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)(fe,{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)(D,{variant:`outline`,size:`sm`,onClick:He,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=w(`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)(D,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(se,{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)(ue,{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 I;t[23]===o?I=t[24]:(I=w(`h-full min-h-0`,o),t[23]=o,t[24]=I);let L;t[25]!==a||t[26]!==u?(L=(0,$.jsx)(ke,{provider:u,onBack:a}),t[25]=a,t[26]=u,t[27]=L):L=t[27];let R;t[28]!==h||t[29]!==m?(R=()=>h(!m),t[28]=h,t[29]=m,t[30]=R):R=t[30];let z;t[31]!==p||t[32]!==re||t[33]!==ie||t[34]!==_||t[35]!==g||t[36]!==ae||t[37]!==u||t[38]!==m||t[39]!==R?(z=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Me,{provider:u,displayApiKey:p,showApiKey:m,onToggleShowApiKey:R,onUpdateKey:re,providerEnvValues:g,onUpdateEnv:ie,modelsLoading:_,onRefreshModels:ae})}),t[31]=p,t[32]=re,t[33]=ie,t[34]=_,t[35]=g,t[36]=ae,t[37]=u,t[38]=m,t[39]=R,t[40]=z):z=t[40];let B;t[41]!==u.name||t[42]!==L||t[43]!==z?(B=(0,$.jsx)(Be,{title:u.name,description:`Configure API keys and connection settings for this provider.`,action:L,children:z}),t[41]=u.name,t[42]=L,t[43]=z,t[44]=B):B=t[44];let V;t[45]!==C||t[46]!==E||t[47]!==x?(V=e=>{x(e),C(``),E(`alphabetical`)},t[45]=C,t[46]=E,t[47]=x,t[48]=V):V=t[48];let H;t[49]===f?H=t[50]:(H=(0,$.jsx)(Ae,{balance:f}),t[49]=f,t[50]=H);let de;t[51]===u.name?de=t[52]:(de=u.name.toLowerCase(),t[51]=u.name,t[52]=de);let pe=de===`openrouter`,me=b===`coding`?O:ee,he=b===`coding`?k:M,ge=b===`coding`?A:te,U;t[53]!==ce||t[54]!==N||t[55]!==S||t[56]!==T||t[57]!==b||t[58]!==_||t[59]!==C||t[60]!==E||t[61]!==pe||t[62]!==me||t[63]!==he||t[64]!==ge?(U=(0,$.jsx)(ze,{tab:b,showImageTab:pe,modelsLoading:_,models:me,hasApiKey:N,enabledModelIds:he,pendingChanges:ge,modelSearchQuery:S,onModelSearchQueryChange:C,modelSortBy:T,onModelSortByChange:E,onToggleAllModels:ce}),t[53]=ce,t[54]=N,t[55]=S,t[56]=T,t[57]=b,t[58]=_,t[59]=C,t[60]=E,t[61]=pe,t[62]=me,t[63]=he,t[64]=ge,t[65]=U):U=t[65];let W;t[66]===v?W=t[67]:(W=v?(0,$.jsx)(fe,{variant:`error`,className:`mb-4`,children:v}):null,t[66]=v,t[67]=W);let G;t[68]!==O||t[69]!==k||t[70]!==j||t[71]!==P||t[72]!==F||t[73]!==N||t[74]!==T||t[75]!==v||t[76]!==_||t[77]!==A||t[78]!==u?(G=(0,$.jsx)(oe,{value:`coding`,children:(0,$.jsx)(Re,{tab:`coding`,provider:u,models:O,filteredModels:j,modelsLoading:_,modelsError:v,hasApiKey:N,enabledModelIds:k,pendingChanges:A,modelSortBy:T,getModelDisplayName:P,onToggleModel:F})}),t[68]=O,t[69]=k,t[70]=j,t[71]=P,t[72]=F,t[73]=N,t[74]=T,t[75]=v,t[76]=_,t[77]=A,t[78]=u,t[79]=G):G=t[79];let K;t[80]!==ee||t[81]!==M||t[82]!==ne||t[83]!==P||t[84]!==F||t[85]!==N||t[86]!==T||t[87]!==v||t[88]!==_||t[89]!==te||t[90]!==u?(K=(0,$.jsx)(oe,{value:`image`,children:(0,$.jsx)(Re,{tab:`image`,provider:u,models:ee,filteredModels:ne,modelsLoading:_,modelsError:v,hasApiKey:N,enabledModelIds:M,pendingChanges:te,modelSortBy:T,getModelDisplayName:P,onToggleModel:F})}),t[80]=ee,t[81]=M,t[82]=ne,t[83]=P,t[84]=F,t[85]=N,t[86]=T,t[87]=v,t[88]=_,t[89]=te,t[90]=u,t[91]=K):K=t[91];let q;t[92]===y?q=t[93]:(q=y?(0,$.jsx)(fe,{variant:y.includes(`error`)||y.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:y}):null,t[92]=y,t[93]=q);let J;t[94]!==H||t[95]!==U||t[96]!==W||t[97]!==G||t[98]!==K||t[99]!==q?(J=(0,$.jsxs)(Be,{title:`Models`,description:`Enable coding and image models for this provider.`,action:H,tableHeader:U,children:[W,G,K,q]}),t[94]=H,t[95]=U,t[96]=W,t[97]=G,t[98]=K,t[99]=q,t[100]=J):J=t[100];let Y;t[101]!==b||t[102]!==J||t[103]!==V?(Y=(0,$.jsx)(le,{value:b,onValueChange:V,children:J}),t[101]=b,t[102]=J,t[103]=V,t[104]=Y):Y=t[104];let X;t[105]!==Y||t[106]!==B?(X=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[B,Y]})}),t[105]=Y,t[106]=B,t[107]=X):X=t[107];let _e;return t[108]!==X||t[109]!==I?(_e=(0,$.jsx)(`div`,{className:I,children:X}),t[108]=X,t[109]=I,t[110]=_e):_e=t[110],_e}function He(){return window.location.reload()}function Ue(e){return`providers:list:${e}`}async function We(){let[e,t]=await Promise.all([m(),x().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Ge=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Ke=`[&>*+*]:border-t [&>*+*]:border-table-border`;function qe(e){let t=(0,Q.c)(9),{title:n,description:r,action:i,children:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,$.jsx)(I,{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)(me,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(V,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Je(e){let t=(0,Q.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=Y(),c;t[0]===n?c=t[1]:(c=Ue(n),t[0]=n,t[1]=c);let{providers:l,enabledModelCounts:u}=te(c,We),d;if(t[2]!==o||t[3]!==u||t[4]!==l){let e;t[6]===o?e=t[7]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[6]=o,t[7]=e);let n;t[8]===u?n=t[9]:(n=(e,t)=>{let n=(u[e.slug]??0)>0,r=(u[t.slug]??0)>0;return n&&!r?-1:!n&&r?1:e.name.localeCompare(t.name)},t[8]=u,t[9]=n),d=l.filter(Ze).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let f=d,p;if(t[10]!==o||t[11]!==l){let e;t[13]===o?e=t[14]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[13]=o,t[14]=e),p=l.filter(Xe).filter(e).sort(Ye),t[10]=o,t[11]=l,t[12]=p}else p=t[12];let m=p,h;t[15]!==i||t[16]!==a?(h=(0,$.jsx)(J,{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:w(s.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:Ke,children:f.map(e=>(0,$.jsx)(at,{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)(qe,{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)(qe,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:m.length===0?(0,$.jsx)(`p`,{className:w(s.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Ke,children:m.map(e=>(0,$.jsx)(ot,{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 Ye(e,t){return e.name.localeCompare(t.name)}function Xe(e){return!e.apiKey}function Ze(e){return e.apiKey}function Qe(){let e=(0,Q.c)(21),t=a(),{providerSlug:n}=i(),[r,o]=(0,Z.useState)(0),s=(0,Z.useRef)(n),c,l;e[0]!==r||e[1]!==n?(c=()=>{s.current&&!n&&(M(Ue(r)),o(nt)),s.current=n},l=[n,r],e[0]=r,e[1]=n,e[2]=c,e[3]=l):(c=e[2],l=e[3]),(0,Z.useEffect)(c,l);let u;e[4]===t?u=e[5]:(u=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=u);let d=u,f;e[6]!==r||e[7]!==t?(f=()=>{t(`/settings/providers`),M(Ue(r)),o(tt)},e[6]=r,e[7]=t,e[8]=f):f=e[8];let p=f,m;e[9]===r?m=e[10]:(m=function(){M(Ue(r)),o(et)},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)(Ve,{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)(ee,{centered:!0,label:`Loading providers...`,size:`lg`}),e[14]=g):g=e[14];let _;e[15]!==d||e[16]!==r?(_=(0,$.jsx)(Z.Suspense,{fallback:g,children:(0,$.jsx)(Je,{loadVersion:r,onProviderClick:d},r)}),e[15]=d,e[16]=r,e[17]=_):_=e[17];let v;return e[18]!==h||e[19]!==_?(v=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:h,renderFallback:$e,children:_})}),e[18]=h,e[19]=_,e[20]=v):v=e[20],v}function $e(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(V,{className:`shrink-0`,children:[(0,$.jsx)(I,{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)(fe,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(D,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function et(e){return e+1}function tt(e){return e+1}function nt(e){return e+1}function rt(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function it(e){let t=(0,Q.c)(18),{provider:n,onClick:r,details:i}=e,a;t[0]!==r||t[1]!==n?(a=function(){r(n)},t[0]=r,t[1]=n,t[2]=a):a=t[2];let o=a,c;t[3]===o?c=t[4]:(c=e=>rt(e,o),t[3]=o,t[4]=c);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(z,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=w(s.label,`truncate leading-normal`),t[7]=u):u=t[7];let d;t[8]===n.name?d=t[9]:(d=(0,$.jsx)(`span`,{className:u,children:n.name}),t[8]=n.name,t[9]=d);let f;t[10]!==l||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==o||t[14]!==i||t[15]!==c||t[16]!==f?(p=(0,$.jsxs)(`div`,{className:Ge,role:`button`,tabIndex:0,onClick:o,onKeyDown:c,children:[f,i]}),t[13]=o,t[14]=i,t[15]=c,t[16]=f,t[17]=p):p=t[17],p}function at(e){let t=(0,Q.c)(12),{provider:n,modelCount:r,onClick:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=w(s.compact,`px-2 py-0.5`),t[0]=a):a=t[0];let o=n.isEnv?`Environment`:`API Key`,c;t[1]===o?c=t[2]:(c=(0,$.jsx)(P,{variant:`secondary`,className:a,children:o}),t[1]=o,t[2]=c);let l;t[3]===r?l=t[4]:(l=r>0&&(0,$.jsxs)(P,{variant:`default`,className:w(s.compact,`px-2 py-0.5`),children:[r,` `,r===1?`Model`:`Models`]}),t[3]=r,t[4]=l);let u;t[5]!==c||t[6]!==l?(u=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[c,l]}),t[5]=c,t[6]=l,t[7]=u):u=t[7];let d;return t[8]!==i||t[9]!==n||t[10]!==u?(d=(0,$.jsx)(it,{provider:n,onClick:i,details:u}),t[8]=i,t[9]=n,t[10]=u,t[11]=d):d=t[11],d}function ot(e){let t=(0,Q.c)(4),{provider:n,onClick:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`span`,{className:w(s.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[0]=i):i=t[0];let a;return t[1]!==r||t[2]!==n?(a=(0,$.jsx)(it,{provider:n,onClick:r,details:i}),t[1]=r,t[2]=n,t[3]=a):a=t[3],a}export{Qe as default};
|
package/dist/public/assets/{pull-request-dialog-nKYATjbm.js → pull-request-dialog-D40BQPMk.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{t as ee}from"./markdown-renderer-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{t as ee}from"./markdown-renderer-DQONI6WG.js";import{a,o,r as te,s as ne,t as s}from"./dialog-D_12AsZd.js";import{t as c}from"./button-DDaJhJP1.js";import{i as re,n as ie,r as ae,t as oe}from"./tooltip-CqwCZ7wt.js";import{t as l}from"./label-BCs5CZEs.js";import{r as u}from"./scroll-area-DGF9wUqQ.js";import{t as d}from"./progress-indicator-hJ74ac5W.js";import{G as f,Mn as p,bt as se,gn as ce,hn as le}from"./index-CcAwxnT5.js";var ue=t(),de=e(n(),1),m=r(),h=`pr-description`;function g(e){let t=(0,ue.c)(57),{open:n,onOpenChange:r,prTitle:g,onPrTitleChange:_,prDescription:v,onPrDescriptionChange:y,isGeneratingPRInfo:b,isLoading:x,onGeneratePRInfo:S,onCreatePR:C,currentBranch:w,createWorkspaceAfterPR:T,onCreateWorkspaceAfterPRChange:E}=e,[D,O]=(0,de.useState)(!1),k;t[0]!==D||t[1]!==v?(k=!D&&v.trim().length>0,t[0]=D,t[1]=v,t[2]=k):k=t[2];let A=k,j;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(j=function(e){e.target.closest(`a`)||O(!0)},t[3]=j):j=t[3];let fe=j,M;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(M=function(e){e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),O(!0))},t[4]=M):M=t[4];let pe=M,N;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,m.jsx)(o,{children:(0,m.jsx)(ne,{children:`Create Pull Request`})}),t[5]=N):N=t[5];let P;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,m.jsx)(l,{htmlFor:`pr-title`,children:`Title`}),t[6]=P):P=t[6];let F=w||`Enter PR title...`,I;t[7]===_?I=t[8]:(I=e=>_(e.target.value),t[7]=_,t[8]=I);let L;t[9]!==b||t[10]!==g||t[11]!==F||t[12]!==I?(L=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[P,(0,m.jsx)(ce,{id:`pr-title`,placeholder:F,value:g,onChange:I,disabled:b})]}),t[9]=b,t[10]=g,t[11]=F,t[12]=I,t[13]=L):L=t[13];let R=A||b?void 0:h,z;t[14]===R?z=t[15]:(z=(0,m.jsx)(l,{htmlFor:R,children:`Description`}),t[14]=R,t[15]=z);let B;t[16]!==D||t[17]!==b||t[18]!==y||t[19]!==v||t[20]!==A?(B=b?(0,m.jsxs)(`div`,{className:`flex h-full min-h-[14rem] flex-col items-center justify-center gap-4 rounded-md border border-input bg-transparent px-6 text-center`,children:[(0,m.jsx)(`div`,{className:`bot-message-float`,children:(0,m.jsx)(se,{size:64,"aria-label":`Generating PR title and description`})}),(0,m.jsx)(`p`,{className:i.bodyMuted,children:`Generating PR title and description…`})]}):A?(0,m.jsx)(u,{className:`h-full min-h-[14rem] rounded-md border border-input bg-transparent`,children:(0,m.jsx)(`div`,{role:`button`,tabIndex:0,"aria-label":`Edit description`,onClick:fe,onKeyDown:pe,className:`flex h-full min-h-[14rem] cursor-text flex-col py-2 pl-3`,children:(0,m.jsx)(`div`,{className:`pr-8`,children:(0,m.jsx)(ee,{content:v})})})}):(0,m.jsx)(le,{id:h,placeholder:`Enter PR description...`,value:v,onChange:e=>y(e.target.value),onFocus:()=>O(!0),disabled:b,autoFocus:D,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[16]=D,t[17]=b,t[18]=y,t[19]=v,t[20]=A,t[21]=B):B=t[21];let V;t[22]!==b||t[23]!==x||t[24]!==S?(V=!b&&(0,m.jsx)(ae,{children:(0,m.jsxs)(oe,{children:[(0,m.jsx)(re,{asChild:!0,children:(0,m.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:S,disabled:x,children:(0,m.jsx)(p,{className:`h-3.5 w-3.5`})})}),(0,m.jsx)(ie,{children:`Generate PR title and description with AI`})]})}),t[22]=b,t[23]=x,t[24]=S,t[25]=V):V=t[25];let H;t[26]!==B||t[27]!==V?(H=(0,m.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[B,V]}),t[26]=B,t[27]=V,t[28]=H):H=t[28];let U;t[29]!==z||t[30]!==H?(U=(0,m.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[z,H]}),t[29]=z,t[30]=H,t[31]=U):U=t[31];let W;t[32]!==U||t[33]!==L?(W=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[L,U]}),t[32]=U,t[33]=L,t[34]=W):W=t[34];let G;t[35]!==T||t[36]!==E?(G=(0,m.jsx)(f,{value:T,onChange:E,ariaLabel:`Create a new branch`}),t[35]=T,t[36]=E,t[37]=G):G=t[37];let K;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,m.jsx)(l,{className:i.labelNormal,children:`Create a new branch`}),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=x||b,Y;t[41]===x?Y=t[42]:(Y=x?(0,m.jsxs)(m.Fragment,{children:[`Create PR`,(0,m.jsx)(d,{size:`sm`})]}):`Create PR`,t[41]=x,t[42]=Y);let X;t[43]!==C||t[44]!==J||t[45]!==Y?(X=(0,m.jsx)(c,{className:`ml-auto`,onClick:C,disabled:J,children:Y}),t[43]=C,t[44]=J,t[45]=Y,t[46]=X):X=t[46];let Z;t[47]!==q||t[48]!==X?(Z=(0,m.jsxs)(a,{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]!==Z?(Q=(0,m.jsxs)(te,{"aria-describedby":void 0,className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[N,W,Z]}),t[50]=W,t[51]=Z,t[52]=Q):Q=t[52];let $;return t[53]!==r||t[54]!==n||t[55]!==Q?($=(0,m.jsx)(s,{open:n,onOpenChange:r,children:Q}),t[53]=r,t[54]=n,t[55]=Q,t[56]=$):$=t[56],$}export{g as PullRequestDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{U as n}from"./dist-v_MvKS2-.js";import{a as r,i,o as a,r as o,s,t as c}from"./dialog-D_12AsZd.js";import{t as l}from"./button-DDaJhJP1.js";import{
|
|
1
|
+
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{U as n}from"./dist-v_MvKS2-.js";import{a as r,i,o as a,r as o,s,t as c}from"./dialog-D_12AsZd.js";import{t as l}from"./button-DDaJhJP1.js";import{Sn as u,Yn as d,it as f,sr as p}from"./index-CcAwxnT5.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&&x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(a,{children:[(0,h.jsxs)(s,{className:`flex items-center gap-2`,children:[(0,h.jsx)(u,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(i,{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)(p,{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)(l,{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)(d,{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)(l,{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)(f,{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)(r,{children:(0,h.jsx)(l,{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)(o,{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)(c,{open:g,onOpenChange:_,children:P}),t[23]=_,t[24]=g,t[25]=P,t[26]=F):F=t[26],F}export{g as PullWithChangesDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={account:{settings:()=>[`account`,`settings`]},onboarding:{status:()=>[`onboarding`,`status`]},app:{update:()=>[`app`,`update`]},models:{enabled:e=>[`models`,`enabled`,e],enabledImage:e=>[`models`,`enabled-image`,e]},threads:{files:e=>[`threads`,`files`,e]},conversations:{recent:()=>[`conversations`,`recent`],unread:e=>[`conversations`,`unread`,e??null],unreadAll:()=>[`conversations`,`unread`],archived:e=>[`conversations`,`archived`,e??null],archivedAll:()=>[`conversations`,`archived`],completed:e=>[`conversations`,`completions`,e],completedAll:()=>[`conversations`,`completions`]},goals:{byConversation:e=>[`goals`,e],all:()=>[`goals`]}};export{e as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import"./dist-v_MvKS2-.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import"./dist-v_MvKS2-.js";import{Ca as i,ei as a}from"./api-Cp9I7CxD.js";import{t as o}from"./use-open-chat-dock-panel-CXzpgxVs.js";var s=t(),c=e(n(),1),l=r(),u=`tarsk:browser-url-request`;function d(e){typeof window<`u`&&window.dispatchEvent(new CustomEvent(u,{detail:e}))}function f(e){if(typeof e!=`string`)return null;try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.toString():null}catch{return null}}var p=(0,c.createContext)(null);function m(e){let t=(0,s.c)(16),{children:n}=e,{openChatDockPanel:r}=o(),[i,a]=(0,c.useState)(null),[d,m]=(0,c.useState)(0),[g,_]=(0,c.useState)(`desktop`),[v,y]=(0,c.useState)(!1),[b,x]=(0,c.useState)(!1),[S,C]=(0,c.useState)(null),[w,T]=(0,c.useState)(!1),[E,D]=(0,c.useState)(null),O,k;t[0]===r?(O=t[1],k=t[2]):(O=()=>{let e=function(e){let t=f(e.detail);t&&(r(`browser`),a(t))};return window.addEventListener(u,e),function(){window.removeEventListener(u,e)}},k=[r],t[0]=r,t[1]=O,t[2]=k),(0,c.useEffect)(O,k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{m(h)},t[3]=A):A=t[3];let j=A,M;t[4]!==E||t[5]!==g||t[6]!==d||t[7]!==i||t[8]!==b||t[9]!==v||t[10]!==w||t[11]!==S?(M={browserUrlRequest:i,setBrowserUrlRequest:a,browserResetTrigger:d,triggerBrowserReset:j,browserDeviceMode:g,setBrowserDeviceMode:_,isSelectModeEnabled:v,setIsSelectModeEnabled:y,isEditModeEnabled:b,setIsEditModeEnabled:x,selectedBrowserElement:S,setSelectedBrowserElement:C,isSelectionPromptOpen:w,setIsSelectionPromptOpen:T,browserAgentProcessingThreadId:E,setBrowserAgentProcessingThreadId:D},t[4]=E,t[5]=g,t[6]=d,t[7]=i,t[8]=b,t[9]=v,t[10]=w,t[11]=S,t[12]=M):M=t[12];let N=M,P;return t[13]!==n||t[14]!==N?(P=(0,l.jsx)(p.Provider,{value:N,children:n}),t[13]=n,t[14]=N,t[15]=P):P=t[15],P}function h(e){return e+1}function g(){let e=(0,c.useContext)(p);if(!e)throw Error(`useBrowserTab must be used within a BrowserTabProvider`);return e}function _(e){let t=a.getSync(`thread-${e}`);return t?{...t,threadId:e}:a.getSync(`projects`)?.projects.flatMap(e=>e.threads).find(t=>t.threadId===e)}function v(e){if(!e||/\s/.test(e)||!e.startsWith(`/api/`)&&!/^https?:\/\//i.test(e))return null;try{let t=new URL(e,`http://localhost`);return t.username||t.password||!/^\/api\/threads\/[^/]+\/explorer\/media$/.test(t.pathname)||t.searchParams.getAll(`path`).length!==1||!t.searchParams.get(`path`)?null:t}catch{return null}}function y(e,t){if(!t.remoteMachineId||!t.remoteThreadId||!t.remotePublicUrl)return null;let n=v(e);if(!n)return null;try{let r=decodeURIComponent(n.pathname.split(`/`)[3]);if(r!==t.remoteThreadId&&r!==t.threadId||!e.startsWith(`/api/`)&&!i(n.hostname)&&n.origin!==new URL(t.remotePublicUrl).origin)return null;let a=new URLSearchParams({path:n.searchParams.get(`path`)});for(let e of[`download`,`inline`]){let t=n.searchParams.get(e);t!==null&&a.set(e,t)}return`/api/threads/${encodeURIComponent(t.threadId)}/explorer/media?${a}${n.hash}`}catch{return null}}export{d as a,m as i,v as n,g as o,y as r,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{c as i,t as a}from"./utils-CqsIXqSC.js";import{a as o,g as s,h as c,l,n as u,u as d}from"./dist-AbkJBHH5.js";import{t as f}from"./dist-Dx8OsX8-.js";var p=e(n(),1),m=t();function h(e,[t,n]){return Math.min(n,Math.max(t,e))}var g=r();function _(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var v=`ScrollArea`,[y,b]=c(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=p.useState(null),[u,m]=p.useState(null),[h,_]=p.useState(null),[v,y]=p.useState(null),[b,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>l(e)),M=f(a);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:_,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,g.jsx)(d.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});C.displayName=v;var w=`ScrollAreaViewport`,T=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=S(w,n),c=p.useRef(null),l=i(t,c,s.onViewportChange);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,g.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...o,ref:l,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});T.displayName=w;var E=`ScrollAreaScrollbar`,D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,g.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,g.jsx)(k,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,g.jsx)(A,{...r,ref:t,forceMount:n}):i.type===`always`?(0,g.jsx)(j,{...r,ref:t}):null});D.displayName=E;var O=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,g.jsx)(u,{present:n||a,children:(0,g.jsx)(A,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),k=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>l(`SCROLL_END`),100),[c,l]=_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(c===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,g.jsx)(u,{present:n||c!==`hidden`,children:(0,g.jsx)(j,{"data-state":c===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:s(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:s(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),A=p.forwardRef((e,t)=>{let n=S(E,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,g.jsx)(u,{present:r||a,children:(0,g.jsx)(j,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),j=p.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=S(E,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=B(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return ie(e,o.current,s,t)}return n===`horizontal`?(0,g.jsx)(M,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=H(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,g.jsx)(ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=H(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),M=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=i(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=l(h),A=l(f),j=G(_,10);function M(e){if(w.current){let t=e.clientX-w.current.left,n=e.clientY-w.current.top;m({x:t,y:n})}}return p.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,b,O,k]),p.useEffect(A,[r,A]),K(b,j),K(y.content,j),(0,g.jsx)(te,{scope:n,scrollbar:b,hasThumb:a,onThumbChange:l(o),onThumbPointerUp:l(c),onThumbPositionChange:A,onThumbPointerDown:l(u),children:(0,g.jsx)(d.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:s(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),w.current=b.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),M(e))}),onPointerMove:s(e.onPointerMove,M),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,y.viewport&&(y.viewport.style.scrollBehavior=``),w.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,g.jsx)(u,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=S(F,n),c=N(F,n),{onThumbPositionChange:l}=c,u=i(t,e=>c.onThumbChange(e)),f=p.useRef(void 0),m=G(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{if(m(),!f.current){let t=ae(e,l);f.current=t,l()}};return l(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,l]),(0,g.jsx)(d.div,{"data-state":c.hasThumb?`visible`:`hidden`,...a,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:s(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})}),onPointerUp:s(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=F;var L=`ScrollAreaCorner`,R=p.forwardRef((e,t)=>{let n=S(L,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,g.jsx)(re,{...e,ref:t}):null});R.displayName=L;var re=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=S(L,n),[a,o]=p.useState(0),[s,c]=p.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,g.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function B(e,t){let n=e/t;return isNaN(n)?0:n}function V(e){let t=B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ie(e,t,n,r=`ltr`){let i=V(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return U([c,l],d)(e)}function H(e,t,n=`ltr`){let r=V(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=h(e,n===`ltr`?[0,o]:[o*-1,0]);return U([0,o],[0,s])(c)}function U(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function W(e,t){return e>0&&e<t}var ae=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=l(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=l(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var q=C,J=T,Y=R,X=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(Z,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Z.displayName=D.displayName;var oe=`[&>div]:!box-border [&>div]:!pr-4`,Q=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`right-0 h-full w-2.5 p-0.5`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,o,s,c;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4],c=n[5]):({className:i,children:r,viewportRef:c,onViewportScroll:o,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s,n[5]=c);let l;n[6]===i?l=n[7]:(l=a(`relative overflow-hidden`,i),n[6]=i,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`h-full w-full rounded-[inherit]`,oe),n[8]=u):u=n[8];let d;n[9]!==r||n[10]!==o||n[11]!==c?(d=(0,g.jsx)(J,{ref:c,onScroll:o,className:u,children:r}),n[9]=r,n[10]=o,n[11]=c,n[12]=d):d=n[12];let f,p;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,g.jsx)(Q,{}),p=(0,g.jsx)(Y,{}),n[13]=f,n[14]=p):(f=n[13],p=n[14]);let h;return n[15]!==s||n[16]!==t||n[17]!==l||n[18]!==d?(h=(0,g.jsxs)(q,{ref:t,className:l,...s,children:[d,f,p]}),n[15]=s,n[16]=t,n[17]=l,n[18]=d,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2 p-0.5`,l=s===`horizontal`&&`h-2 w-full flex-col p-0.5`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none bg-transparent`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(se,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{c as i,t as a}from"./utils-CqsIXqSC.js";import{a as o,g as s,h as c,l,n as u,u as d}from"./dist-AbkJBHH5.js";import{t as f}from"./dist-Dx8OsX8-.js";var p=e(n(),1),m=t();function h(e,[t,n]){return Math.min(n,Math.max(t,e))}var g=r();function _(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var v=`ScrollArea`,[y,b]=c(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=p.useState(null),[u,m]=p.useState(null),[h,_]=p.useState(null),[v,y]=p.useState(null),[b,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>l(e)),M=f(a);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:_,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,g.jsx)(d.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});C.displayName=v;var w=`ScrollAreaViewport`,T=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=S(w,n),c=p.useRef(null),l=i(t,c,s.onViewportChange);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,g.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...o,ref:l,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});T.displayName=w;var E=`ScrollAreaScrollbar`,D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,g.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,g.jsx)(k,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,g.jsx)(A,{...r,ref:t,forceMount:n}):i.type===`always`?(0,g.jsx)(j,{...r,ref:t}):null});D.displayName=E;var O=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,g.jsx)(u,{present:n||a,children:(0,g.jsx)(A,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),k=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>l(`SCROLL_END`),100),[c,l]=_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(c===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,g.jsx)(u,{present:n||c!==`hidden`,children:(0,g.jsx)(j,{"data-state":c===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:s(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:s(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),A=p.forwardRef((e,t)=>{let n=S(E,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,g.jsx)(u,{present:r||a,children:(0,g.jsx)(j,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),j=p.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=S(E,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=B(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return ie(e,o.current,s,t)}return n===`horizontal`?(0,g.jsx)(M,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=H(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,g.jsx)(ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=H(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),M=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=i(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=l(h),A=l(f),j=G(_,10);function M(e){if(w.current){let t=e.clientX-w.current.left,n=e.clientY-w.current.top;m({x:t,y:n})}}return p.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,b,O,k]),p.useEffect(A,[r,A]),K(b,j),K(y.content,j),(0,g.jsx)(te,{scope:n,scrollbar:b,hasThumb:a,onThumbChange:l(o),onThumbPointerUp:l(c),onThumbPositionChange:A,onThumbPointerDown:l(u),children:(0,g.jsx)(d.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:s(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),w.current=b.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),M(e))}),onPointerMove:s(e.onPointerMove,M),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,y.viewport&&(y.viewport.style.scrollBehavior=``),w.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,g.jsx)(u,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=S(F,n),c=N(F,n),{onThumbPositionChange:l}=c,u=i(t,e=>c.onThumbChange(e)),f=p.useRef(void 0),m=G(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{if(m(),!f.current){let t=ae(e,l);f.current=t,l()}};return l(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,l]),(0,g.jsx)(d.div,{"data-state":c.hasThumb?`visible`:`hidden`,...a,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:s(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})}),onPointerUp:s(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=F;var L=`ScrollAreaCorner`,R=p.forwardRef((e,t)=>{let n=S(L,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,g.jsx)(re,{...e,ref:t}):null});R.displayName=L;var re=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=S(L,n),[a,o]=p.useState(0),[s,c]=p.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,g.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function B(e,t){let n=e/t;return isNaN(n)?0:n}function V(e){let t=B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ie(e,t,n,r=`ltr`){let i=V(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return U([c,l],d)(e)}function H(e,t,n=`ltr`){let r=V(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=h(e,n===`ltr`?[0,o]:[o*-1,0]);return U([0,o],[0,s])(c)}function U(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function W(e,t){return e>0&&e<t}var ae=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=l(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=l(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var q=C,J=T,Y=R,X=p.forwardRef((e,t)=>{let n=(0,m.c)(17),r,i,o,s;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4]):({className:i,children:r,viewportRef:s,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s);let c;n[5]===i?c=n[6]:(c=a(`relative overflow-hidden`,i),n[5]=i,n[6]=c);let l;n[7]!==r||n[8]!==s?(l=(0,g.jsx)(J,{ref:s,className:`h-full w-full rounded-[inherit]`,children:r}),n[7]=r,n[8]=s,n[9]=l):l=n[9];let u,d;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(Z,{}),d=(0,g.jsx)(Y,{}),n[10]=u,n[11]=d):(u=n[10],d=n[11]);let f;return n[12]!==o||n[13]!==t||n[14]!==c||n[15]!==l?(f=(0,g.jsxs)(q,{ref:t,className:c,...o,children:[l,u,d]}),n[12]=o,n[13]=t,n[14]=c,n[15]=l,n[16]=f):f=n[16],f});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Z.displayName=D.displayName;var oe=`[&>div]:!box-border [&>div]:!pr-4`,Q=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`right-0 h-full w-2.5 p-0.5`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,o,s,c;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4],c=n[5]):({className:i,children:r,viewportRef:c,onViewportScroll:o,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s,n[5]=c);let l;n[6]===i?l=n[7]:(l=a(`relative overflow-hidden`,i),n[6]=i,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`h-full w-full rounded-[inherit]`,oe),n[8]=u):u=n[8];let d;n[9]!==r||n[10]!==o||n[11]!==c?(d=(0,g.jsx)(J,{ref:c,onScroll:o,className:u,children:r}),n[9]=r,n[10]=o,n[11]=c,n[12]=d):d=n[12];let f,p;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,g.jsx)(Q,{}),p=(0,g.jsx)(Y,{}),n[13]=f,n[14]=p):(f=n[13],p=n[14]);let h;return n[15]!==s||n[16]!==t||n[17]!==l||n[18]!==d?(h=(0,g.jsxs)(q,{ref:t,className:l,...s,children:[d,f,p]}),n[15]=s,n[16]=t,n[17]=l,n[18]=d,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2 p-0.5`,l=s===`horizontal`&&`h-2 w-full flex-col p-0.5`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none bg-transparent`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(se,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};
|