@nextclaw/ui 0.27.5-beta.0 → 0.27.5-beta.1
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/CHANGELOG.md +10 -0
- package/dist/.vite/manifest.json +99 -99
- package/dist/assets/{account-panel-DgqicWMm.js → account-panel-C83GDFuy.js} +1 -1
- package/dist/assets/agents-CJA15zzv.js +1 -0
- package/dist/assets/{agents-CTSR4ZKb.js → agents-Dr2KkEp2.js} +1 -1
- package/dist/assets/{app-presenter-provider-DdD2Q7jZ.js → app-presenter-provider-Cx9MwMtb.js} +12 -12
- package/dist/assets/{appearance-settings-page-CSWYLrsR.js → appearance-settings-page-3IfIzjic.js} +1 -1
- package/dist/assets/apps-CvIlb9Rn.js +1 -0
- package/dist/assets/{confirm-dialog-jz2cQKId.js → confirm-dialog-D30HJBXN.js} +1 -1
- package/dist/assets/{context-menu-C0qywo73.js → context-menu-C6m-WNpl.js} +65 -65
- package/dist/assets/cron-BWZWu80t.js +1 -0
- package/dist/assets/{dialog-DMKYZDFu.js → dialog-DB_l9LK0.js} +1 -1
- package/dist/assets/doc-browser-DQDsmRlr.js +1 -0
- package/dist/assets/inbox-CIsD65lW.js +1 -0
- package/dist/assets/{keyboard-shortcuts-settings-page-BCxB9m69.js → keyboard-shortcuts-settings-page-L4kLGuB8.js} +1 -1
- package/dist/assets/{main-C6VGoYNO.js → main-BNWRrWc_.js} +2 -2
- package/dist/assets/{marketplace-CXCLbyho.js → marketplace-BH1Sq8dL.js} +1 -1
- package/dist/assets/mcp-marketplace-page-BA-InAbJ.js +1 -0
- package/dist/assets/{model-config-page-CeVvZ29o.js → model-config-page-zqVWyIT0.js} +1 -1
- package/dist/assets/panel-apps-CMX4iWwQ.js +1 -0
- package/dist/assets/{panelStandalone-DomappXm.js → panelStandalone-C38o5B4Q.js} +1 -1
- package/dist/assets/{projects-BWM-oEo0.js → projects-DNe43T2d.js} +1 -1
- package/dist/assets/{provider-models-D8WOdsdu.js → provider-models-zGsDUBHG.js} +1 -1
- package/dist/assets/{provider-scoped-model-input-BOPkUOtD.js → provider-scoped-model-input-DpEyP1h8.js} +1 -1
- package/dist/assets/{providers-config-page-BilPL0kF.js → providers-config-page-J-1auWPu.js} +1 -1
- package/dist/assets/{pwa-Cp7pPvsZ.js → pwa-jmuWbrqH.js} +1 -1
- package/dist/assets/remote-C7H2o46-.js +1 -0
- package/dist/assets/{runtime-config-page-Dx6lWn3_.js → runtime-config-page-CJhqeDcu.js} +1 -1
- package/dist/assets/{service-apps-panel-9khaUSFI.js → service-apps-panel-Dj9okUgp.js} +1 -1
- package/dist/assets/{theme-provider-BsJ6HxeX.js → theme-provider-D4rd-tCP.js} +1 -1
- package/dist/index.html +10 -10
- package/dist/panel-standalone.html +4 -4
- package/package.json +7 -7
- package/src/features/marketplace/components/detail-doc/__tests__/marketplace-detail-doc.test.tsx +2 -0
- package/src/features/panel-apps/components/panel-app-runtime-surface.tsx +3 -1
- package/src/features/panel-apps/utils/panel-app-doc-browser.utils.tsx +25 -10
- package/src/features/right-panel-resources/components/__tests__/system-object-resource.test.tsx +25 -3
- package/src/features/right-panel-resources/components/native-object-resource.tsx +3 -1
- package/src/features/right-panel-resources/components/system-object-resource.tsx +15 -1
- package/src/features/right-panel-resources/pages/resource-page.tsx +29 -2
- package/src/shared/components/doc-browser/__tests__/doc-browser.test.tsx +16 -13
- package/src/shared/components/doc-browser/doc-browser-renderer.types.ts +3 -0
- package/src/shared/components/doc-browser/doc-browser.tsx +7 -1
- package/src/shared/components/ui/context-menu/context-menu-items.tsx +1 -0
- package/src/shared/components/ui/context-menu/context-menu.tsx +9 -0
- package/dist/assets/agents-i7167DcF.js +0 -1
- package/dist/assets/apps-DUP3aPpu.js +0 -1
- package/dist/assets/cron-DPBUHn7j.js +0 -1
- package/dist/assets/doc-browser-C7kvXGc_.js +0 -1
- package/dist/assets/inbox-C09MQO9k.js +0 -1
- package/dist/assets/mcp-marketplace-page-ZAm380SB.js +0 -1
- package/dist/assets/panel-apps-BQlyeAId.js +0 -1
- package/dist/assets/remote-DngM8iep.js +0 -1
- package/src/features/panel-apps/components/__tests__/panel-app-toolbar.test.tsx +0 -108
- package/src/features/panel-apps/components/panel-app-toolbar.tsx +0 -89
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{K as e}from"./app-presenter-provider-Cx9MwMtb.js";export{e as CronJobResource};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{_n as t,ur as n,xr as r}from"./api-CXWxExzS.js";import{B as i,C as a,D as o,E as s,H as c,O as l,T as u,U as d,V as f,h as p,k as m,r as h,w as g,z as _}from"./context-menu-
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{_n as t,ur as n,xr as r}from"./api-CXWxExzS.js";import{B as i,C as a,D as o,E as s,H as c,O as l,T as u,U as d,V as f,h as p,k as m,r as h,w as g,z as _}from"./context-menu-C6m-WNpl.js";import{t as v}from"./x-waP-WLuT.js";import{s as y}from"./i18n-ByVUrt9w.js";var b=e(r(),1),x=n(),S=f,C=c,w=b.forwardRef(({onFocus:e,...t},n)=>(0,x.jsx)(d,{ref:n,onFocus:t=>{e?.(t),!t.defaultPrevented&&!t.currentTarget.matches(`:focus-visible`)&&t.preventDefault()},...t}));w.displayName=d.displayName;var T=b.forwardRef(({className:e,side:n=`top`,sideOffset:r=4,...a},o)=>(0,x.jsx)(i,{children:(0,x.jsx)(_,{ref:o,"data-theme-overlay":`tooltip`,sideOffset:r,side:n,className:t(`z-[var(--z-tooltip,10150)] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,e),...a})}));T.displayName=_.displayName;var E={sm:`h-6 w-6 rounded-md p-1`,md:`h-7 w-7 rounded-md p-1.5`,lg:`h-8 w-8 rounded-lg p-1.5`};function D({children:e,className:n,...r}){return(0,x.jsx)(`div`,{...r,className:t(`flex shrink-0 items-center gap-1 max-md:gap-0`,n),children:e})}var O=b.forwardRef(({className:e,disabled:n=!1,icon:r,label:i,size:a=`md`,tone:o=`default`,tooltip:s,tooltipSide:c,...l},u)=>{let d=(0,x.jsx)(`button`,{...l,ref:u,type:`button`,disabled:n,"aria-label":i,"data-tone":o,className:t(`relative inline-flex shrink-0 items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:cursor-not-allowed`,E[a],`text-muted-foreground hover:text-accent-foreground disabled:text-muted-foreground/45 disabled:hover:text-muted-foreground/45`,p.icon,a===`sm`?`max-md:h-8 max-md:w-8`:`max-md:h-[var(--icon-control-size)] max-md:w-[var(--icon-control-size)]`,`before:pointer-events-none before:absolute before:inset-0 before:rounded-[inherit] before:transition-colors before:content-[''] max-md:before:inset-auto max-md:before:h-[var(--icon-feedback-size)] max-md:before:w-[var(--icon-feedback-size)]`,a===`sm`&&`max-md:before:h-7 max-md:before:w-7`,e),children:(0,x.jsx)(`span`,{className:`relative inline-flex items-center justify-center`,children:r})}),f=s===!1?null:s??i;return f?(0,x.jsx)(S,{delayDuration:250,children:(0,x.jsxs)(C,{disableHoverableContent:!0,children:[(0,x.jsx)(w,{asChild:!0,children:n?(0,x.jsx)(`span`,{className:`inline-flex`,children:d}):d}),(0,x.jsx)(T,{side:c,className:`text-xs`,children:f})]})}):d});O.displayName=`IconActionButton`;var k=l,A=o,j=b.forwardRef(({className:e,...n},r)=>(0,x.jsx)(s,{ref:r,"data-theme-overlay":`modal-backdrop`,className:t(`fixed inset-0 z-[var(--z-modal-backdrop,10000)] bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...n}));j.displayName=s.displayName;var M=b.forwardRef(({className:e,children:n,...r},i)=>(0,x.jsxs)(A,{children:[(0,x.jsx)(j,{}),(0,x.jsx)(g,{ref:i,"data-theme-overlay":`dialog`,className:t(`fixed left-[50%] top-[50%] z-[var(--z-modal,10050)] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border border-border bg-popover p-6 text-popover-foreground shadow-xl duration-base data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]`,`max-md:max-w-[calc(100vw-1.5rem)] max-h-[calc(100dvh-1.5rem)] max-md:max-h-[calc(100dvh-env(safe-area-inset-top,0px)-env(safe-area-inset-bottom,0px)-1.5rem)] overflow-y-auto overscroll-contain`,e),...r,onEscapeKeyDown:e=>{h(e)||r.onEscapeKeyDown?.(e)},children:n})]}));M.displayName=g.displayName;var N=({className:e,children:n,actions:r,showClose:i=!0,...o})=>(0,x.jsxs)(`div`,{"data-slot":`dialog-header`,className:t(`grid shrink-0 grid-cols-[minmax(0,1fr)_auto] items-start gap-3 text-left`,e),...o,children:[(0,x.jsx)(`div`,{className:`min-w-0 space-y-2 break-words`,children:n}),(0,x.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,"data-slot":`dialog-header-controls`,children:[r?(0,x.jsx)(`div`,{className:`flex items-center gap-1`,"data-slot":`dialog-header-actions`,children:r}):null,i?(0,x.jsx)(`div`,{className:t(`flex shrink-0`,r&&`pl-2`),children:(0,x.jsx)(a,{asChild:!0,children:(0,x.jsx)(O,{size:`sm`,label:y(`close`),icon:(0,x.jsx)(v,{className:`h-4 w-4`}),className:`max-md:h-11 max-md:w-11`})})}):null]})]});N.displayName=`DialogHeader`;var P=({className:e,...n})=>(0,x.jsx)(`div`,{className:t(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-3`,e),...n});P.displayName=`DialogFooter`;var F=b.forwardRef(({className:e,...n},r)=>(0,x.jsx)(m,{ref:r,className:t(`text-lg font-semibold leading-tight tracking-tight text-foreground`,e),...n}));F.displayName=m.displayName;var I=b.forwardRef(({className:e,...n},r)=>(0,x.jsx)(u,{ref:r,className:t(`text-sm text-muted-foreground leading-relaxed`,e),...n}));I.displayName=u.displayName;export{N as a,D as c,S as d,w as f,P as i,C as l,M as n,F as o,I as r,O as s,k as t,T as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{St as e}from"./app-presenter-provider-Cx9MwMtb.js";export{e as DocBrowser};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"./app-presenter-provider-Cx9MwMtb.js";export{e as InboxPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Jt as e,Kt as t,Zt as n,qt as r,ur as i}from"./api-CXWxExzS.js";import{et as a}from"./app-presenter-provider-
|
|
1
|
+
import{Jt as e,Kt as t,Zt as n,qt as r,ur as i}from"./api-CXWxExzS.js";import{et as a}from"./app-presenter-provider-Cx9MwMtb.js";import{t as o}from"./use-viewport-layout-Bnm5W5Qz.js";import{s}from"./i18n-ByVUrt9w.js";var c=i();function l(){let{isMobile:i}=o();return(0,c.jsx)(n,{title:s(`keyboardShortcuts`),children:i?(0,c.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`keyboardShortcutsDesktopOnly`)}):(0,c.jsx)(e,{children:(0,c.jsx)(r,{children:(0,c.jsx)(t,{title:s(`chatInputVoice`),layout:`stacked`,children:(0,c.jsx)(a,{})})})})})}export{l as KeyboardShortcutsSettingsPage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/projects-
|
|
2
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{t}from"./client-BDS360Kz.js";import{E as n,O as r,a as i,n as a,o,r as s,t as c}from"./theme-provider-BsJ6HxeX.js";import{i as l,n as u,t as d}from"./pwa-Cp7pPvsZ.js";import{Ht as f,Jn as p,Lt as m,Vt as ee,Yn as te,an as h,cr as ne,dn as g,qn as _,un as v,ur as re,x as y,xr as ie}from"./api-CXWxExzS.js";import{t as b}from"./preload-helper-DWTEM3RW.js";import{c as ae,i as x,l as S,n as C,o as w,s as T}from"./navigation-link-O9Wm0epj.js";import{B as oe,C as se,J as ce,Jt as E,Lt as le,S as ue,T as de,W as fe,Xt as D,Yt as O,_ as k,a as A,b as j,bt as M,g as N,h as P,i as F,l as I,n as L,nt as R,o as z,p as B,s as V,t as pe,u as H,w as me,x as he,xt as ge,y as _e,z as ve}from"./app-presenter-provider-DdD2Q7jZ.js";import{f as ye}from"./context-menu-C0qywo73.js";import{t as be}from"./agents-CTSR4ZKb.js";import{t as U}from"./use-viewport-layout-Bnm5W5Qz.js";import{i as xe,s as W}from"./i18n-ByVUrt9w.js";import{n as Se,t as Ce}from"./doc-browser-context-CoVMIiU8.js";import{t as we}from"./login-page--Njgbmpm.js";var G=n();if(l.syncTheme(G),r(G)===`island`){let e=document.createElement(`link`);e.rel=`preload`,e.as=`image`,e.href=`/themes/island/island-atmosphere-7a037243.webp`,e.fetchPriority=`high`,document.head.appendChild(e)}var Te=t(),K=e(ie(),1);function Ee(){let e=L();return(0,K.useEffect)(()=>(e.chatCompletionNotificationManager.start(),()=>{e.chatCompletionNotificationManager.stop()}),[e.chatCompletionNotificationManager]),null}var De=`NextClaw`,Oe=[{prefix:`/resource`,key:`resourcePageTitle`},{prefix:`/marketplace/mcp`,key:`marketplaceMcpPageTitle`},{prefix:`/marketplace/skills`,key:`marketplaceSkillsPageTitle`},{prefix:`/marketplace`,key:`marketplace`},{prefix:`/skills`,key:`marketplaceSkillsPageTitle`},{prefix:`/cron`,key:`cronPageTitle`},{prefix:`/agents`,key:`agentsPageTitle`},{prefix:`/projects`,key:`projectsTitle`},{prefix:`/chat`,key:`chat`},{prefix:`/model`,key:`modelPageTitle`},{prefix:`/search`,key:`searchPageTitle`},{prefix:`/providers`,key:`providersPageTitle`},{prefix:`/channels`,key:`channelsPageTitle`},{prefix:`/runtime`,key:`runtimePageTitle`},{prefix:`/updates`,key:`runtimeUpdatesPageTitle`},{prefix:`/remote`,key:`remotePageTitle`},{prefix:`/security`,key:`authSecurityTitle`},{prefix:`/secrets`,key:`secretsPageTitle`}];function ke(e,t){return e===t||e.startsWith(`${t}/`)}function Ae(e){let t=e.toLowerCase();for(let{prefix:e,key:n}of Oe)if(ke(t,e))return W(n);return W(`settings`)}function je(e){let t=e.toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||t===`[::1]`||t.startsWith(`127.`)}function Me(e){let t=e?.host.trim(),n=e?.hostname.trim(),r=e?.port.trim();return!t||!n?null:je(n)?r||null:t}function Ne(e,t){let n=Me(t);return`${De}${n?` ${n}`:``} - ${Ae(e)}`}var q=re(),Pe=e=>(0,q.jsx)(N,{uri:e});function Fe({children:e,sideDockManager:t}){let{isOpen:n,mode:r}=Se();ge();let{pathname:i}=S(),{language:a}=o(),{isMobile:s}=U(),c=me(),l=z(e=>e.isVisible);z(e=>e.pinnedItems);let u={getDockState:t.getDockState,pinTab:t.pinTab,unpinTab:t.unpinTab},d=B(),f=e=>d(P(e),`global`);return(0,K.useEffect)(()=>{document.title=Ne(i,window.location)},[i,a]),s&&c!==`win32`?(0,q.jsx)(se,{pathname:i,isDocBrowserOpen:n,docBrowserDockControls:u,docBrowserRenderers:H,docBrowserTabMenuGroups:f,topbarLeadingInset:c===`darwin`?`4.75rem`:void 0,children:e}):(0,q.jsx)(j,{pathname:i,isMobileLayout:s,isDocBrowserOpen:n,docBrowserMode:r,docBrowserDockControls:u,docBrowserRenderers:H,docBrowserTabMenuGroups:f,sideDock:l?(0,q.jsx)(A,{manager:t,getItemMenuGroups:e=>{let t=F().pageResourceManager.resolve(e.target.type===`right-panel-resource`?e.target.uri:e.target.url);return t?d(t):[]}}):null,children:e})}function Ie({children:e}){let t=F();return(0,q.jsx)(Ce,{manager:t.docBrowserManager,children:(0,q.jsx)(ye,{renderIcon:Pe,children:(0,q.jsx)(Fe,{sideDockManager:t.sideDockManager,children:e})})})}function Le(){let{isMobile:e}=U();return e?(0,q.jsx)(ue,{}):(0,q.jsx)(w,{to:`/model`,replace:!0})}var Re=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ProjectsPage:e}=await import(`./projects-BWM-oEo0.js`);return{ProjectsPage:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]))).ProjectsPage})),J=`max-w-[min(1180px,100%)]`;function ze(e){return e===`projects`?`relative flex flex-1 min-h-0 overflow-hidden bg-background`:`flex-1 min-h-0 overflow-hidden bg-background`}function Be(e){let{routeSessionKey:t,syncRouteSessionSelection:n}=e;(0,K.useLayoutEffect)(()=>{n(t)},[t,n])}function Ve({view:e}){let{onScroll:t,scrollRef:n}=le({restorationKey:e===`cron`||e===`agents`?`main-page:${e}`:null});switch(e){case`resource`:return(0,q.jsx)(I,{});case`projects`:return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{className:`h-full animate-pulse bg-card/30`}),children:(0,q.jsx)(Re,{})});case`panel-app`:return(0,q.jsx)(R,{});case`inbox`:return(0,q.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col md:px-6 md:py-5 ${J}`,children:(0,q.jsx)(ve,{})});case`cron`:case`agents`:return(0,q.jsx)(`div`,{ref:n,onScroll:t,className:`h-full overflow-auto custom-scrollbar`,children:(0,q.jsx)(`div`,{className:`mx-auto w-full px-4 py-4 sm:px-6 sm:py-5 ${J}`,children:e===`cron`?(0,q.jsx)(ce,{}):(0,q.jsx)(be,{})})});default:return(0,q.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col px-4 py-4 sm:px-6 sm:py-5 ${J}`,children:(0,q.jsx)(M,{forcedType:`skills`})})}}function He({view:e,confirmDialog:t}){let{isMobile:n}=U();return(0,q.jsxs)(`div`,{className:`h-full flex`,children:[n?null:(0,q.jsx)(_e,{}),e===`chat`?n?(0,q.jsx)(he,{}):(0,q.jsx)(fe,{}):(0,q.jsx)(`section`,{"data-theme-surface":`workspace`,className:`${ze(e)} flex flex-col`,children:(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,q.jsx)(Ve,{view:e})})}),t]})}function Ue(){let e=O();(0,K.useEffect)(()=>m.eventBus.on(_.uiShowContent,t=>{e.chatThreadManager.handleUiShowContentEvent(t)}),[e])}function We({view:e}){let t=O(),{pathname:n}=S();return Be({routeSessionKey:D(n.startsWith(`/chat/`)?n.slice(6):void 0),syncRouteSessionSelection:t.chatSessionListManager.syncRouteSessionSelection}),Ue(),(0,q.jsx)(He,{view:e})}function Y({view:e}){return(0,q.jsx)(We,{view:e})}function Ge(e){let t=e.trim().toLowerCase();return t?!t.startsWith(`skills`):!0}function Ke(e,t){t.startsWith(`mcp`)&&(e?.invalidateQueries({queryKey:[`marketplace-mcp-installed`]}),e?.invalidateQueries({queryKey:[`marketplace-mcp-items`]}),e?.invalidateQueries({queryKey:[`marketplace-mcp-doctor`]}))}function qe(e,t){e&&Ge(t)&&e.invalidateQueries({queryKey:[`config`]}),Ke(e,t)}function X(e){let t=e.trim().replace(/\\/g,`/`).replace(/\/+$/g,``);return/^[a-z]:/i.test(t)?t.toLowerCase():t}function Je(e,t){if(!e)return;let n=X(t);e.invalidateQueries({predicate:e=>e.queryKey[0]===`server-path-browse`&&typeof e.queryKey[1]==`string`&&X(e.queryKey[1])===n})}function Ye(e){let t=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let n=m.eventBus.on(_.connectionOpen,()=>{g.handleConnectionRestored(),h.refreshAfterRealtimeReconnect(),t.current&&(t.current=!1,E.getState().clearSessionRunStatuses(),e?.invalidateQueries({queryKey:[`ncp-sessions`]}),e?.invalidateQueries({queryKey:[`ncp-session-pages`]}))}),r=m.eventBus.on(_.connectionClose,()=>{g.handleConnectionInterrupted(null),t.current=!0}),i=m.eventBus.on(_.connectionError,e=>{g.handleConnectionInterrupted(e?.message??null),t.current=!0}),a=m.eventBus.on(_.configUpdated,({path:t})=>{qe(e,t)}),o=m.eventBus.on(_.serverPathChanged,({directoryPath:t})=>Je(e,t)),s=m.eventBus.on(_.runtimeUpdateSnapshot,e=>{h.reportSnapshot(e)}),c=m.eventBus.on(_.sessionRunStatus,t=>{E.getState().setSessionRunStatus(t.sessionKey,t.status),y(e,{type:`session.run-status`,payload:t})}),l=m.eventBus.on(_.sessionSummaryUpsert,t=>{y(e,{type:`session.summary.upsert`,payload:t})}),u=m.eventBus.on(_.sessionSummaryDelete,t=>{E.getState().setSessionRunStatus(t.sessionKey,`idle`),y(e,{type:`session.summary.delete`,payload:t})}),d=m.eventBus.on(_.error,e=>{console.error(`Realtime transport error:`,e.message)});return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u(),d()}},[e])}var Xe={"--width":`320px`},Ze=(0,K.lazy)(async()=>({default:(await V()).AccountPanel})),Qe=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ModelConfigPage:e}=await import(`./model-config-page-CeVvZ29o.js`);return{ModelConfigPage:e}},__vite__mapDeps([40,1,3,4,5,17,6,41,2,34,8,9,10,11,12,13,14,15,35,26,27,30,23,20,42,36,43]))).ModelConfigPage})),$e=(0,K.lazy)(async()=>({default:(await b(async()=>{let{AppearanceSettingsPage:e}=await import(`./appearance-settings-page-CSWYLrsR.js`);return{AppearanceSettingsPage:e}},__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).AppearanceSettingsPage})),et=(0,K.lazy)(async()=>({default:(await b(async()=>{let{KeyboardShortcutsSettingsPage:e}=await import(`./keyboard-shortcuts-settings-page-BCxB9m69.js`);return{KeyboardShortcutsSettingsPage:e}},__vite__mapDeps([45,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).KeyboardShortcutsSettingsPage})),tt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SearchConfigPage:e}=await import(`./search-config-page-DevSv1ZK.js`);return{SearchConfigPage:e}},__vite__mapDeps([46,1,3,4,5,10,6,22,23,26,11,27,47,42,35,2,36]))).SearchConfigPage})),nt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ProvidersConfigPage:e}=await import(`./providers-config-page-BilPL0kF.js`);return{ProvidersConfigPage:e}},__vite__mapDeps([48,1,2,3,4,5,6,8,9,10,11,12,13,14,15,22,23,24,39,25,29,47,42,33,19,34,35,36,43,27]))).ProvidersConfigPage})),rt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ExtensionsConfigPage:e}=await import(`./extensions-DXDFcRVC.js`);return{ExtensionsConfigPage:e}},__vite__mapDeps([49,3,1,4,5,16,6,12,24]))).ExtensionsConfigPage})),it=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ChannelsList:e}=await import(`./channels-list-page-lQOINLW8.js`);return{ChannelsList:e}},__vite__mapDeps([50,1,2,3,4,5,6,10,17,11,13,22,23,26,27,29,47,31,42,35,36,43]))).ChannelsList})),at=(0,K.lazy)(async()=>({default:(await b(async()=>{let{RuntimeConfig:e}=await import(`./runtime-config-page-Dx6lWn3_.js`);return{RuntimeConfig:e}},__vite__mapDeps([51,1,7,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,52,53,54,42]))).RuntimeConfig})),ot=(0,K.lazy)(async()=>({default:(await b(async()=>{let{DesktopUpdateConfig:e}=await import(`./desktop-update-config-C_SBtjA1.js`);return{DesktopUpdateConfig:e}},__vite__mapDeps([55,3,1,4,5,21,6,24,52,26,11,27,32,35,2]))).DesktopUpdateConfig})),st=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SecurityConfig:e}=await import(`./security-config-BGEs0SHi.js`);return{SecurityConfig:e}},__vite__mapDeps([56,3,1,4,5]))).SecurityConfig})),ct=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SecretsConfigPage:e}=await import(`./secrets-config-page-B4jWTV6V.js`);return{SecretsConfigPage:e}},__vite__mapDeps([57,1,3,4,5,14,6,53,25,42,35,2,36]))).SecretsConfigPage})),Z=(0,K.lazy)(async()=>({default:(await b(async()=>{let{PrivacySettingsPage:e}=await import(`./privacy-settings-page-CHDv9ppI.js`);return{PrivacySettingsPage:e}},__vite__mapDeps([58,3,1,4,5,35,2,6,36]))).PrivacySettingsPage})),lt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{DesktopCapabilitiesPage:e}=await import(`./desktop-capabilities-page-CKq2Miye.js`);return{DesktopCapabilitiesPage:e}},__vite__mapDeps([59,3,1,4,5,28]))).DesktopCapabilitiesPage})),ut=(0,K.lazy)(async()=>({default:(await b(async()=>{let{RemoteAccessPage:e}=await import(`./remote-DngM8iep.js`);return{RemoteAccessPage:e}},__vite__mapDeps([60,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).RemoteAccessPage})),dt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{McpMarketplacePage:e}=await import(`./mcp-marketplace-page-ZAm380SB.js`);return{McpMarketplacePage:e}},__vite__mapDeps([61,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).McpMarketplacePage}));function ft(){return(0,q.jsx)(`div`,{className:`h-full w-full animate-pulse rounded-2xl border border-border/40 bg-card/40`})}function pt({children:e}){return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(ft,{}),children:e})}function Q(e){return(0,q.jsx)(pt,{children:e})}var mt=[{path:`/resource`,element:Q((0,q.jsx)(Y,{view:`resource`}))},{path:`/projects/:projectId/:tab`,element:Q((0,q.jsx)(Y,{view:`projects`}))},{path:`/projects`,element:Q((0,q.jsx)(Y,{view:`projects`}))},{path:`/chat/skills`,redirectTo:`/skills`},{path:`/chat/cron`,redirectTo:`/cron`},{path:`/chat/agents`,redirectTo:`/agents`},{path:`/chat/:sessionId?`,element:Q((0,q.jsx)(Y,{view:`chat`}))},{path:`/agents`,element:Q((0,q.jsx)(Y,{view:`agents`}))},{path:`/skills`,element:Q((0,q.jsx)(Y,{view:`skills`}))},{path:`/skills/scenes/:scene`,element:Q((0,q.jsx)(Y,{view:`skills`}))},{path:`/cron`,element:Q((0,q.jsx)(Y,{view:`cron`}))},{path:`/inbox/:deliveryId?`,element:Q((0,q.jsx)(Y,{view:`inbox`}))},{path:`/apps/panel/:appId`,element:Q((0,q.jsx)(Y,{view:`panel-app`}))},{path:`/appearance`,element:Q((0,q.jsx)($e,{}))},{path:`/keyboard-shortcuts`,element:Q((0,q.jsx)(et,{}))},{path:`/model`,element:Q((0,q.jsx)(Qe,{}))},{path:`/search`,element:Q((0,q.jsx)(tt,{}))},{path:`/providers`,element:Q((0,q.jsx)(nt,{}))},{path:`/extensions`,element:Q((0,q.jsx)(rt,{}))},{path:`/channels`,element:Q((0,q.jsx)(it,{}))},{path:`/runtime`,element:Q((0,q.jsx)(at,{}))},{path:`/updates`,element:Q((0,q.jsx)(ot,{}))},{path:`/remote`,element:Q((0,q.jsx)(ut,{}))},{path:`/security`,element:Q((0,q.jsx)(st,{}))},{path:`/privacy`,element:Q((0,q.jsx)(Z,{}))},{path:`/desktop-capabilities`,element:Q((0,q.jsx)(lt,{}))},{path:`/secrets`,element:Q((0,q.jsx)(ct,{}))},{path:`/settings`,element:(0,q.jsx)(Le,{})},{path:`/marketplace/skills`,redirectTo:`/skills`},{path:`/marketplace`,redirectTo:`/skills`},{path:`/marketplace/mcp`,element:Q((0,q.jsx)(dt,{}))},{path:`/`,redirectTo:`/chat`},{path:`*`,redirectTo:`/chat`}];function ht(e){return`redirectTo`in e?(0,q.jsx)(T,{path:e.path,element:(0,q.jsx)(w,{to:e.redirectTo,replace:!0})},e.path):(0,q.jsx)(T,{path:e.path,element:e.element},e.path)}function gt(){return(0,q.jsx)(ae,{children:mt.map(ht)})}function $(){return Ye(p),v(),(0,K.useEffect)(()=>(h.start(),()=>{h.stop()}),[]),(0,q.jsx)(pe,{children:(0,q.jsxs)(k,{children:[(0,q.jsx)(Ee,{}),(0,q.jsx)(oe,{}),(0,q.jsx)(Ie,{children:(0,q.jsx)(gt,{})}),(0,q.jsx)(K.Suspense,{fallback:null,children:(0,q.jsx)(Ze,{})}),(0,q.jsx)(s,{}),(0,q.jsx)(de,{})]})})}function _t(){let e=f(),t=e.isError&&ee(e.error);return e.isLoading&&!e.isError||t||e.isError?(0,q.jsx)($,{}):e.data?.enabled&&!e.data.authenticated?(0,q.jsx)(we,{username:e.data.username}):(0,q.jsx)($,{})}function vt(){let{theme:e}=a();return(0,K.useEffect)(()=>{d()},[]),(0,K.useEffect)(()=>{l.syncTheme(e)},[e]),(0,q.jsxs)(ne,{client:p,children:[(0,q.jsx)(_t,{}),(0,q.jsx)(u,{}),(0,q.jsx)(te,{position:`top-right`,richColors:!0,offset:{top:window.nextclawDesktop?.platform===`win32`?56:44,right:72},mobileOffset:window.nextclawDesktop?.platform===`win32`?56:void 0,style:Xe})]})}await xe();var yt=window.nextclawDesktop?.platform===`win32`?x:C;(0,Te.createRoot)(document.getElementById(`root`)).render((0,q.jsx)(K.StrictMode,{children:(0,q.jsx)(c,{children:(0,q.jsx)(i,{children:(0,q.jsx)(yt,{children:(0,q.jsx)(vt,{})})})})}));
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/projects-DNe43T2d.js","assets/chunk-DF37yw5_.js","assets/dist-D9h2cWk3.js","assets/api-CXWxExzS.js","assets/i18n-ByVUrt9w.js","assets/preload-helper-DWTEM3RW.js","assets/createLucideIcon-C3LSyx-e.js","assets/app-presenter-provider-Cx9MwMtb.js","assets/context-menu-C6m-WNpl.js","assets/katex-BzT-4KBu.js","assets/search-Dpgv--de.js","assets/external-link-DZzwHRHW.js","assets/inbox-CI8ATevA.js","assets/x-waP-WLuT.js","assets/plus-C42o6xrD.js","assets/context-menu-DEcVZfaU.css","assets/puzzle-DmKVREoh.js","assets/book-open-B3Ac0voD.js","assets/theme-provider-D4rd-tCP.js","assets/dialog-DB_l9LK0.js","assets/navigation-history-CCnxsAKR.js","assets/download-C2gYe8n1.js","assets/use-viewport-layout-Bnm5W5Qz.js","assets/middleware-B--6mAUM.js","assets/refresh-cw-DOg2pWGu.js","assets/trash-2-BVQs-0ji.js","assets/navigation-link-O9Wm0epj.js","assets/host-capabilities-B107nwS3.js","assets/use-desktop-capabilities-BO_2CXgu.js","assets/status-dot-DlELD18e.js","assets/doc-browser-context-CoVMIiU8.js","assets/tag-chip-DFzDSvcF.js","assets/card-eFBmxYiI.js","assets/confirm-dialog-D30HJBXN.js","assets/provider-models-zGsDUBHG.js","assets/select-BJ-EjmCz.js","assets/use-config-M1L4xn8c.js","assets/app-presenter-provider-D3BuuOyZ.css","assets/circle-dashed-KGwElDWV.js","assets/settings-2-D3-m8a3v.js","assets/model-config-page-zqVWyIT0.js","assets/provider-scoped-model-input-DpEyP1h8.js","assets/form-actions-CZxcWXSm.js","assets/config-hints-CaB3I7KP.js","assets/appearance-settings-page-3IfIzjic.js","assets/keyboard-shortcuts-settings-page-L4kLGuB8.js","assets/search-config-page-DevSv1ZK.js","assets/config-split-page-BaHtm9OW.js","assets/providers-config-page-J-1auWPu.js","assets/extensions-DXDFcRVC.js","assets/channels-list-page-lQOINLW8.js","assets/runtime-config-page-CJhqeDcu.js","assets/rotate-cw-CWFIat29.js","assets/save-C1G0ZU-G.js","assets/pwa-jmuWbrqH.js","assets/desktop-update-config-C_SBtjA1.js","assets/security-config-BGEs0SHi.js","assets/secrets-config-page-B4jWTV6V.js","assets/privacy-settings-page-CHDv9ppI.js","assets/desktop-capabilities-page-CKq2Miye.js","assets/remote-C7H2o46-.js","assets/mcp-marketplace-page-BA-InAbJ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{t}from"./client-BDS360Kz.js";import{E as n,O as r,a as i,n as a,o,r as s,t as c}from"./theme-provider-D4rd-tCP.js";import{i as l,n as u,t as d}from"./pwa-jmuWbrqH.js";import{Ht as f,Jn as p,Lt as m,Vt as ee,Yn as te,an as h,cr as ne,dn as g,qn as _,un as v,ur as re,x as y,xr as ie}from"./api-CXWxExzS.js";import{t as b}from"./preload-helper-DWTEM3RW.js";import{c as ae,i as x,l as S,n as C,o as w,s as T}from"./navigation-link-O9Wm0epj.js";import{B as oe,C as se,J as ce,Jt as E,Lt as le,S as ue,T as de,W as fe,Xt as D,Yt as O,_ as k,a as A,b as j,bt as M,g as N,h as P,i as F,l as I,n as L,nt as R,o as z,p as B,s as V,t as pe,u as H,w as me,x as he,xt as ge,y as _e,z as ve}from"./app-presenter-provider-Cx9MwMtb.js";import{f as ye}from"./context-menu-C6m-WNpl.js";import{t as be}from"./agents-Dr2KkEp2.js";import{t as U}from"./use-viewport-layout-Bnm5W5Qz.js";import{i as xe,s as W}from"./i18n-ByVUrt9w.js";import{n as Se,t as Ce}from"./doc-browser-context-CoVMIiU8.js";import{t as we}from"./login-page--Njgbmpm.js";var G=n();if(l.syncTheme(G),r(G)===`island`){let e=document.createElement(`link`);e.rel=`preload`,e.as=`image`,e.href=`/themes/island/island-atmosphere-7a037243.webp`,e.fetchPriority=`high`,document.head.appendChild(e)}var Te=t(),K=e(ie(),1);function Ee(){let e=L();return(0,K.useEffect)(()=>(e.chatCompletionNotificationManager.start(),()=>{e.chatCompletionNotificationManager.stop()}),[e.chatCompletionNotificationManager]),null}var De=`NextClaw`,Oe=[{prefix:`/resource`,key:`resourcePageTitle`},{prefix:`/marketplace/mcp`,key:`marketplaceMcpPageTitle`},{prefix:`/marketplace/skills`,key:`marketplaceSkillsPageTitle`},{prefix:`/marketplace`,key:`marketplace`},{prefix:`/skills`,key:`marketplaceSkillsPageTitle`},{prefix:`/cron`,key:`cronPageTitle`},{prefix:`/agents`,key:`agentsPageTitle`},{prefix:`/projects`,key:`projectsTitle`},{prefix:`/chat`,key:`chat`},{prefix:`/model`,key:`modelPageTitle`},{prefix:`/search`,key:`searchPageTitle`},{prefix:`/providers`,key:`providersPageTitle`},{prefix:`/channels`,key:`channelsPageTitle`},{prefix:`/runtime`,key:`runtimePageTitle`},{prefix:`/updates`,key:`runtimeUpdatesPageTitle`},{prefix:`/remote`,key:`remotePageTitle`},{prefix:`/security`,key:`authSecurityTitle`},{prefix:`/secrets`,key:`secretsPageTitle`}];function ke(e,t){return e===t||e.startsWith(`${t}/`)}function Ae(e){let t=e.toLowerCase();for(let{prefix:e,key:n}of Oe)if(ke(t,e))return W(n);return W(`settings`)}function je(e){let t=e.toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||t===`[::1]`||t.startsWith(`127.`)}function Me(e){let t=e?.host.trim(),n=e?.hostname.trim(),r=e?.port.trim();return!t||!n?null:je(n)?r||null:t}function Ne(e,t){let n=Me(t);return`${De}${n?` ${n}`:``} - ${Ae(e)}`}var q=re(),Pe=e=>(0,q.jsx)(N,{uri:e});function Fe({children:e,sideDockManager:t}){let{isOpen:n,mode:r}=Se();ge();let{pathname:i}=S(),{language:a}=o(),{isMobile:s}=U(),c=me(),l=z(e=>e.isVisible);z(e=>e.pinnedItems);let u={getDockState:t.getDockState,pinTab:t.pinTab,unpinTab:t.unpinTab},d=B(),f=e=>d(P(e),`global`);return(0,K.useEffect)(()=>{document.title=Ne(i,window.location)},[i,a]),s&&c!==`win32`?(0,q.jsx)(se,{pathname:i,isDocBrowserOpen:n,docBrowserDockControls:u,docBrowserRenderers:H,docBrowserTabMenuGroups:f,topbarLeadingInset:c===`darwin`?`4.75rem`:void 0,children:e}):(0,q.jsx)(j,{pathname:i,isMobileLayout:s,isDocBrowserOpen:n,docBrowserMode:r,docBrowserDockControls:u,docBrowserRenderers:H,docBrowserTabMenuGroups:f,sideDock:l?(0,q.jsx)(A,{manager:t,getItemMenuGroups:e=>{let t=F().pageResourceManager.resolve(e.target.type===`right-panel-resource`?e.target.uri:e.target.url);return t?d(t):[]}}):null,children:e})}function Ie({children:e}){let t=F();return(0,q.jsx)(Ce,{manager:t.docBrowserManager,children:(0,q.jsx)(ye,{renderIcon:Pe,children:(0,q.jsx)(Fe,{sideDockManager:t.sideDockManager,children:e})})})}function Le(){let{isMobile:e}=U();return e?(0,q.jsx)(ue,{}):(0,q.jsx)(w,{to:`/model`,replace:!0})}var Re=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ProjectsPage:e}=await import(`./projects-DNe43T2d.js`);return{ProjectsPage:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]))).ProjectsPage})),J=`max-w-[min(1180px,100%)]`;function ze(e){return e===`projects`?`relative flex flex-1 min-h-0 overflow-hidden bg-background`:`flex-1 min-h-0 overflow-hidden bg-background`}function Be(e){let{routeSessionKey:t,syncRouteSessionSelection:n}=e;(0,K.useLayoutEffect)(()=>{n(t)},[t,n])}function Ve({view:e}){let{onScroll:t,scrollRef:n}=le({restorationKey:e===`cron`||e===`agents`?`main-page:${e}`:null});switch(e){case`resource`:return(0,q.jsx)(I,{});case`projects`:return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{className:`h-full animate-pulse bg-card/30`}),children:(0,q.jsx)(Re,{})});case`panel-app`:return(0,q.jsx)(R,{});case`inbox`:return(0,q.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col md:px-6 md:py-5 ${J}`,children:(0,q.jsx)(ve,{})});case`cron`:case`agents`:return(0,q.jsx)(`div`,{ref:n,onScroll:t,className:`h-full overflow-auto custom-scrollbar`,children:(0,q.jsx)(`div`,{className:`mx-auto w-full px-4 py-4 sm:px-6 sm:py-5 ${J}`,children:e===`cron`?(0,q.jsx)(ce,{}):(0,q.jsx)(be,{})})});default:return(0,q.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col px-4 py-4 sm:px-6 sm:py-5 ${J}`,children:(0,q.jsx)(M,{forcedType:`skills`})})}}function He({view:e,confirmDialog:t}){let{isMobile:n}=U();return(0,q.jsxs)(`div`,{className:`h-full flex`,children:[n?null:(0,q.jsx)(_e,{}),e===`chat`?n?(0,q.jsx)(he,{}):(0,q.jsx)(fe,{}):(0,q.jsx)(`section`,{"data-theme-surface":`workspace`,className:`${ze(e)} flex flex-col`,children:(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,q.jsx)(Ve,{view:e})})}),t]})}function Ue(){let e=O();(0,K.useEffect)(()=>m.eventBus.on(_.uiShowContent,t=>{e.chatThreadManager.handleUiShowContentEvent(t)}),[e])}function We({view:e}){let t=O(),{pathname:n}=S();return Be({routeSessionKey:D(n.startsWith(`/chat/`)?n.slice(6):void 0),syncRouteSessionSelection:t.chatSessionListManager.syncRouteSessionSelection}),Ue(),(0,q.jsx)(He,{view:e})}function Y({view:e}){return(0,q.jsx)(We,{view:e})}function Ge(e){let t=e.trim().toLowerCase();return t?!t.startsWith(`skills`):!0}function Ke(e,t){t.startsWith(`mcp`)&&(e?.invalidateQueries({queryKey:[`marketplace-mcp-installed`]}),e?.invalidateQueries({queryKey:[`marketplace-mcp-items`]}),e?.invalidateQueries({queryKey:[`marketplace-mcp-doctor`]}))}function qe(e,t){e&&Ge(t)&&e.invalidateQueries({queryKey:[`config`]}),Ke(e,t)}function X(e){let t=e.trim().replace(/\\/g,`/`).replace(/\/+$/g,``);return/^[a-z]:/i.test(t)?t.toLowerCase():t}function Je(e,t){if(!e)return;let n=X(t);e.invalidateQueries({predicate:e=>e.queryKey[0]===`server-path-browse`&&typeof e.queryKey[1]==`string`&&X(e.queryKey[1])===n})}function Ye(e){let t=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let n=m.eventBus.on(_.connectionOpen,()=>{g.handleConnectionRestored(),h.refreshAfterRealtimeReconnect(),t.current&&(t.current=!1,E.getState().clearSessionRunStatuses(),e?.invalidateQueries({queryKey:[`ncp-sessions`]}),e?.invalidateQueries({queryKey:[`ncp-session-pages`]}))}),r=m.eventBus.on(_.connectionClose,()=>{g.handleConnectionInterrupted(null),t.current=!0}),i=m.eventBus.on(_.connectionError,e=>{g.handleConnectionInterrupted(e?.message??null),t.current=!0}),a=m.eventBus.on(_.configUpdated,({path:t})=>{qe(e,t)}),o=m.eventBus.on(_.serverPathChanged,({directoryPath:t})=>Je(e,t)),s=m.eventBus.on(_.runtimeUpdateSnapshot,e=>{h.reportSnapshot(e)}),c=m.eventBus.on(_.sessionRunStatus,t=>{E.getState().setSessionRunStatus(t.sessionKey,t.status),y(e,{type:`session.run-status`,payload:t})}),l=m.eventBus.on(_.sessionSummaryUpsert,t=>{y(e,{type:`session.summary.upsert`,payload:t})}),u=m.eventBus.on(_.sessionSummaryDelete,t=>{E.getState().setSessionRunStatus(t.sessionKey,`idle`),y(e,{type:`session.summary.delete`,payload:t})}),d=m.eventBus.on(_.error,e=>{console.error(`Realtime transport error:`,e.message)});return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u(),d()}},[e])}var Xe={"--width":`320px`},Ze=(0,K.lazy)(async()=>({default:(await V()).AccountPanel})),Qe=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ModelConfigPage:e}=await import(`./model-config-page-zqVWyIT0.js`);return{ModelConfigPage:e}},__vite__mapDeps([40,1,3,4,5,17,6,41,2,34,8,9,10,11,12,13,14,15,35,26,27,30,23,20,42,36,43]))).ModelConfigPage})),$e=(0,K.lazy)(async()=>({default:(await b(async()=>{let{AppearanceSettingsPage:e}=await import(`./appearance-settings-page-3IfIzjic.js`);return{AppearanceSettingsPage:e}},__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).AppearanceSettingsPage})),et=(0,K.lazy)(async()=>({default:(await b(async()=>{let{KeyboardShortcutsSettingsPage:e}=await import(`./keyboard-shortcuts-settings-page-L4kLGuB8.js`);return{KeyboardShortcutsSettingsPage:e}},__vite__mapDeps([45,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).KeyboardShortcutsSettingsPage})),tt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SearchConfigPage:e}=await import(`./search-config-page-DevSv1ZK.js`);return{SearchConfigPage:e}},__vite__mapDeps([46,1,3,4,5,10,6,22,23,26,11,27,47,42,35,2,36]))).SearchConfigPage})),nt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ProvidersConfigPage:e}=await import(`./providers-config-page-J-1auWPu.js`);return{ProvidersConfigPage:e}},__vite__mapDeps([48,1,2,3,4,5,6,8,9,10,11,12,13,14,15,22,23,24,39,25,29,47,42,33,19,34,35,36,43,27]))).ProvidersConfigPage})),rt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ExtensionsConfigPage:e}=await import(`./extensions-DXDFcRVC.js`);return{ExtensionsConfigPage:e}},__vite__mapDeps([49,3,1,4,5,16,6,12,24]))).ExtensionsConfigPage})),it=(0,K.lazy)(async()=>({default:(await b(async()=>{let{ChannelsList:e}=await import(`./channels-list-page-lQOINLW8.js`);return{ChannelsList:e}},__vite__mapDeps([50,1,2,3,4,5,6,10,17,11,13,22,23,26,27,29,47,31,42,35,36,43]))).ChannelsList})),at=(0,K.lazy)(async()=>({default:(await b(async()=>{let{RuntimeConfig:e}=await import(`./runtime-config-page-CJhqeDcu.js`);return{RuntimeConfig:e}},__vite__mapDeps([51,1,7,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,52,53,54,42]))).RuntimeConfig})),ot=(0,K.lazy)(async()=>({default:(await b(async()=>{let{DesktopUpdateConfig:e}=await import(`./desktop-update-config-C_SBtjA1.js`);return{DesktopUpdateConfig:e}},__vite__mapDeps([55,3,1,4,5,21,6,24,52,26,11,27,32,35,2]))).DesktopUpdateConfig})),st=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SecurityConfig:e}=await import(`./security-config-BGEs0SHi.js`);return{SecurityConfig:e}},__vite__mapDeps([56,3,1,4,5]))).SecurityConfig})),ct=(0,K.lazy)(async()=>({default:(await b(async()=>{let{SecretsConfigPage:e}=await import(`./secrets-config-page-B4jWTV6V.js`);return{SecretsConfigPage:e}},__vite__mapDeps([57,1,3,4,5,14,6,53,25,42,35,2,36]))).SecretsConfigPage})),Z=(0,K.lazy)(async()=>({default:(await b(async()=>{let{PrivacySettingsPage:e}=await import(`./privacy-settings-page-CHDv9ppI.js`);return{PrivacySettingsPage:e}},__vite__mapDeps([58,3,1,4,5,35,2,6,36]))).PrivacySettingsPage})),lt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{DesktopCapabilitiesPage:e}=await import(`./desktop-capabilities-page-CKq2Miye.js`);return{DesktopCapabilitiesPage:e}},__vite__mapDeps([59,3,1,4,5,28]))).DesktopCapabilitiesPage})),ut=(0,K.lazy)(async()=>({default:(await b(async()=>{let{RemoteAccessPage:e}=await import(`./remote-C7H2o46-.js`);return{RemoteAccessPage:e}},__vite__mapDeps([60,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).RemoteAccessPage})),dt=(0,K.lazy)(async()=>({default:(await b(async()=>{let{McpMarketplacePage:e}=await import(`./mcp-marketplace-page-BA-InAbJ.js`);return{McpMarketplacePage:e}},__vite__mapDeps([61,7,1,5,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))).McpMarketplacePage}));function ft(){return(0,q.jsx)(`div`,{className:`h-full w-full animate-pulse rounded-2xl border border-border/40 bg-card/40`})}function pt({children:e}){return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(ft,{}),children:e})}function Q(e){return(0,q.jsx)(pt,{children:e})}var mt=[{path:`/resource`,element:Q((0,q.jsx)(Y,{view:`resource`}))},{path:`/projects/:projectId/:tab`,element:Q((0,q.jsx)(Y,{view:`projects`}))},{path:`/projects`,element:Q((0,q.jsx)(Y,{view:`projects`}))},{path:`/chat/skills`,redirectTo:`/skills`},{path:`/chat/cron`,redirectTo:`/cron`},{path:`/chat/agents`,redirectTo:`/agents`},{path:`/chat/:sessionId?`,element:Q((0,q.jsx)(Y,{view:`chat`}))},{path:`/agents`,element:Q((0,q.jsx)(Y,{view:`agents`}))},{path:`/skills`,element:Q((0,q.jsx)(Y,{view:`skills`}))},{path:`/skills/scenes/:scene`,element:Q((0,q.jsx)(Y,{view:`skills`}))},{path:`/cron`,element:Q((0,q.jsx)(Y,{view:`cron`}))},{path:`/inbox/:deliveryId?`,element:Q((0,q.jsx)(Y,{view:`inbox`}))},{path:`/apps/panel/:appId`,element:Q((0,q.jsx)(Y,{view:`panel-app`}))},{path:`/appearance`,element:Q((0,q.jsx)($e,{}))},{path:`/keyboard-shortcuts`,element:Q((0,q.jsx)(et,{}))},{path:`/model`,element:Q((0,q.jsx)(Qe,{}))},{path:`/search`,element:Q((0,q.jsx)(tt,{}))},{path:`/providers`,element:Q((0,q.jsx)(nt,{}))},{path:`/extensions`,element:Q((0,q.jsx)(rt,{}))},{path:`/channels`,element:Q((0,q.jsx)(it,{}))},{path:`/runtime`,element:Q((0,q.jsx)(at,{}))},{path:`/updates`,element:Q((0,q.jsx)(ot,{}))},{path:`/remote`,element:Q((0,q.jsx)(ut,{}))},{path:`/security`,element:Q((0,q.jsx)(st,{}))},{path:`/privacy`,element:Q((0,q.jsx)(Z,{}))},{path:`/desktop-capabilities`,element:Q((0,q.jsx)(lt,{}))},{path:`/secrets`,element:Q((0,q.jsx)(ct,{}))},{path:`/settings`,element:(0,q.jsx)(Le,{})},{path:`/marketplace/skills`,redirectTo:`/skills`},{path:`/marketplace`,redirectTo:`/skills`},{path:`/marketplace/mcp`,element:Q((0,q.jsx)(dt,{}))},{path:`/`,redirectTo:`/chat`},{path:`*`,redirectTo:`/chat`}];function ht(e){return`redirectTo`in e?(0,q.jsx)(T,{path:e.path,element:(0,q.jsx)(w,{to:e.redirectTo,replace:!0})},e.path):(0,q.jsx)(T,{path:e.path,element:e.element},e.path)}function gt(){return(0,q.jsx)(ae,{children:mt.map(ht)})}function $(){return Ye(p),v(),(0,K.useEffect)(()=>(h.start(),()=>{h.stop()}),[]),(0,q.jsx)(pe,{children:(0,q.jsxs)(k,{children:[(0,q.jsx)(Ee,{}),(0,q.jsx)(oe,{}),(0,q.jsx)(Ie,{children:(0,q.jsx)(gt,{})}),(0,q.jsx)(K.Suspense,{fallback:null,children:(0,q.jsx)(Ze,{})}),(0,q.jsx)(s,{}),(0,q.jsx)(de,{})]})})}function _t(){let e=f(),t=e.isError&&ee(e.error);return e.isLoading&&!e.isError||t||e.isError?(0,q.jsx)($,{}):e.data?.enabled&&!e.data.authenticated?(0,q.jsx)(we,{username:e.data.username}):(0,q.jsx)($,{})}function vt(){let{theme:e}=a();return(0,K.useEffect)(()=>{d()},[]),(0,K.useEffect)(()=>{l.syncTheme(e)},[e]),(0,q.jsxs)(ne,{client:p,children:[(0,q.jsx)(_t,{}),(0,q.jsx)(u,{}),(0,q.jsx)(te,{position:`top-right`,richColors:!0,offset:{top:window.nextclawDesktop?.platform===`win32`?56:44,right:72},mobileOffset:window.nextclawDesktop?.platform===`win32`?56:void 0,style:Xe})]})}await xe();var yt=window.nextclawDesktop?.platform===`win32`?x:C;(0,Te.createRoot)(document.getElementById(`root`)).render((0,q.jsx)(K.StrictMode,{children:(0,q.jsx)(c,{children:(0,q.jsx)(i,{children:(0,q.jsx)(yt,{children:(0,q.jsx)(vt,{})})})})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./api-CXWxExzS.js";import{st as e}from"./app-presenter-provider-
|
|
1
|
+
import"./api-CXWxExzS.js";import{st as e}from"./app-presenter-provider-Cx9MwMtb.js";export{e as McpMarketplacePage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{st as e}from"./app-presenter-provider-Cx9MwMtb.js";export{e as McpMarketplacePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Jt as n,Kt as r,Wt as i,Yt as a,Zt as o,qt as s,ur as c,xr as l}from"./api-CXWxExzS.js";import{t as u}from"./navigation-link-O9Wm0epj.js";import{t as d}from"./book-open-B3Ac0voD.js";import{t as f}from"./provider-scoped-model-input-
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Jt as n,Kt as r,Wt as i,Yt as a,Zt as o,qt as s,ur as c,xr as l}from"./api-CXWxExzS.js";import{t as u}from"./navigation-link-O9Wm0epj.js";import{t as d}from"./book-open-B3Ac0voD.js";import{t as f}from"./provider-scoped-model-input-DpEyP1h8.js";import{i as p}from"./x-waP-WLuT.js";import{s as m}from"./i18n-ByVUrt9w.js";import{n as h}from"./provider-models-zGsDUBHG.js";import{m as g,y as _}from"./doc-browser-context-CoVMIiU8.js";import{_ as v,f as y,p as b,r as x,t as S}from"./use-config-M1L4xn8c.js";import{t as C}from"./form-actions-CZxcWXSm.js";import{t as w}from"./config-hints-CaB3I7KP.js";var T=e(l(),1),E=c(),D=`provider/model`;function O(e){let{initialModel:o,initialWorkspace:c,isPending:l,modelHelpText:h,modelPlaceholder:_,onSubmit:v,providerCatalog:y,workspacePlaceholder:b}=e,[x,S]=(0,T.useState)(o),[w,D]=(0,T.useState)(c);return(0,E.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),v({model:x,workspace:w})},className:`space-y-5`,children:[(0,E.jsx)(n,{children:(0,E.jsxs)(s,{children:[(0,E.jsx)(r,{title:m(`defaultModel`),description:h,layout:`stacked`,children:(0,E.jsxs)(`div`,{className:`space-y-2`,children:[(0,E.jsx)(i,{htmlFor:`model`,className:`sr-only`,children:m(`defaultModel`)}),(0,E.jsx)(f,{id:`model`,value:x,onChange:S,providerCatalog:y,modelPlaceholder:_}),(0,E.jsx)(u,{href:g(`/guide/model-selection`),external:!0,icon:d,size:`xs`,children:m(`channelsGuideTitle`)})]})}),(0,E.jsx)(r,{title:m(`workspace`),layout:`stacked`,children:(0,E.jsxs)(`div`,{className:`space-y-2`,children:[(0,E.jsx)(i,{htmlFor:`workspace`,className:`sr-only`,children:m(`workspace`)}),(0,E.jsx)(t,{id:`workspace`,value:w,onChange:e=>D(e.target.value),placeholder:b,className:`rounded-xl`})]})})]})}),(0,E.jsx)(C,{children:(0,E.jsx)(a,{type:`submit`,disabled:l,size:`sm`,children:l?(0,E.jsx)(p,{className:`h-3.5 w-3.5 animate-spin`}):m(`saveChanges`)})})]})}function k(){let{data:e,isLoading:t}=S(),{data:n}=b(),{data:r}=y(),{data:i}=x(),a=v(),s=i?.uiHints,c=w(`agents.defaults.model`,s),l=w(`agents.defaults.workspace`,s),u=(0,T.useMemo)(()=>h({providersView:n,templatesView:r,config:e,onlyConfigured:!0}),[e,n,r]),d=m(`modelIdentifierHelp`)||c?.help||``,f=(e?.agents?.defaults?.model||``).trim(),p=e?.agents?.defaults?.workspace||``;return t?(0,E.jsx)(o,{title:m(`modelPageTitle`),description:m(`modelPageDescription`),children:(0,E.jsxs)(`div`,{className:`divide-y divide-border/55 overflow-hidden rounded-2xl bg-muted/45`,children:[(0,E.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,E.jsx)(_,{className:`h-5 w-24`}),(0,E.jsx)(_,{className:`h-10 w-full rounded-xl`})]}),(0,E.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,E.jsx)(_,{className:`h-5 w-24`}),(0,E.jsx)(_,{className:`h-10 w-full rounded-xl`})]})]})}):(0,E.jsx)(o,{title:m(`modelPageTitle`),description:m(`modelPageDescription`),children:(0,E.jsx)(O,{initialModel:f,initialWorkspace:p,isPending:a.isPending,modelHelpText:d,modelPlaceholder:c?.placeholder??D,onSubmit:({model:e,workspace:t})=>a.mutate({model:e,workspace:t}),providerCatalog:u,workspacePlaceholder:l?.placeholder??`/path/to/workspace`},`${f}::${p}`)})}export{k as ModelConfigPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,v as t}from"./theme-provider-D4rd-tCP.js";import"./app-presenter-provider-Cx9MwMtb.js";export{t as PanelAppHostProvider,e as PanelAppRuntimeSurface};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/login-page-CzvxaAU8.js","assets/login-page--Njgbmpm.js","assets/chunk-DF37yw5_.js","assets/api-CXWxExzS.js","assets/i18n-ByVUrt9w.js","assets/preload-helper-DWTEM3RW.js","assets/card-eFBmxYiI.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{t}from"./client-BDS360Kz.js";import{a as n,i as r,r as i,t as a,v as o}from"./theme-provider-
|
|
2
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{t}from"./client-BDS360Kz.js";import{a as n,i as r,r as i,t as a,v as o}from"./theme-provider-D4rd-tCP.js";import{Ht as s,Jn as c,Vt as l,Yn as u,cr as d,ur as f,xr as p}from"./api-CXWxExzS.js";import{t as m}from"./preload-helper-DWTEM3RW.js";import{a as h,s as g}from"./i18n-ByVUrt9w.js";var _=e(p(),1),v=t(),y=f(),b=(0,_.lazy)(async()=>({default:(await m(async()=>{let{LoginPage:e}=await import(`./login-page-CzvxaAU8.js`);return{LoginPage:e}},__vite__mapDeps([0,1,2,3,4,5,6]))).LoginPage})),x=/^\/apps\/panel\/([^/]+)\/standalone\/?$/;function S(e){let t=x.exec(e);if(!t)return null;try{return decodeURIComponent(t[1])}catch{return null}}function C({appId:e}){let t=s(),n=t.isError&&l(t.error);return t.isLoading&&!t.isError||n||t.isError?(0,y.jsx)(r,{appId:e}):t.data?.enabled&&!t.data.authenticated?(0,y.jsx)(_.Suspense,{fallback:(0,y.jsx)(w,{message:g(`loading`)}),children:(0,y.jsx)(b,{username:t.data.username})}):(0,y.jsx)(r,{appId:e})}function w({message:e}){return(0,y.jsx)(`main`,{className:`flex h-dvh items-center justify-center bg-background px-6 text-sm text-muted-foreground`,children:e})}function T({pathname:e=window.location.pathname}){let t=S(e);return t?(0,y.jsx)(d,{client:c,children:(0,y.jsxs)(o,{children:[(0,y.jsx)(C,{appId:t}),(0,y.jsx)(i,{}),(0,y.jsx)(u,{position:`top-right`,richColors:!0,offset:16})]})}):(0,y.jsx)(w,{message:g(`panelAppsMainUnavailable`)})}await h();var E=document.getElementById(`root`);E&&(0,v.createRoot)(E).render((0,y.jsx)(_.StrictMode,{children:(0,y.jsx)(a,{children:(0,y.jsx)(n,{children:(0,y.jsx)(T,{})})})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Lt as n,Qn as r,Xn as i,Yt as a,Zn as o,lr as s,qn as c,ur as l,xr as u}from"./api-CXWxExzS.js";import{d,f,l as p}from"./navigation-link-O9Wm0epj.js";import{G as m,Ut as h,Yt as g,_t as _,f as v,gt as y,ht as b,in as x,m as S,mt as C,n as w,pt as T,rn as E,vt as D,yt as O}from"./app-presenter-provider-DdD2Q7jZ.js";import{t as k}from"./createLucideIcon-C3LSyx-e.js";import{ht as A,rt as ee}from"./context-menu-C0qywo73.js";import{R as te,z as j}from"./dist-D9h2cWk3.js";import{t as ne}from"./circle-dashed-KGwElDWV.js";import{t as re}from"./external-link-DZzwHRHW.js";import{t as ie}from"./use-viewport-layout-Bnm5W5Qz.js";import{t as ae}from"./plus-C42o6xrD.js";import{t as oe}from"./settings-2-D3-m8a3v.js";import{t as se}from"./trash-2-BVQs-0ji.js";import{n as ce,r as le,s as M,t as ue}from"./i18n-ByVUrt9w.js";import{a as de,i as fe,n as pe,o as me,r as he,t as ge}from"./dialog-DMKYZDFu.js";import{a as _e,i as ve,n as ye,r as N}from"./tag-chip-DFzDSvcF.js";import{t as be}from"./confirm-dialog-jz2cQKId.js";import{a as P,i as F,n as I,r as L,t as R}from"./select-BJ-EjmCz.js";import{a as xe,i as Se,n as Ce,t as we}from"./card-eFBmxYiI.js";var Te=k(`CircleX`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),Ee=k(`Circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),De=k(`LayoutGrid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),Oe=k(`List`,[[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 18h.01`,key:`1tta3j`}],[`path`,{d:`M3 6h.01`,key:`1rqtza`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 18h13`,key:`1lx6n3`}],[`path`,{d:`M8 6h13`,key:`ik3vkj`}]]),ke=k(`Unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),z=e(u(),1),B=l();function V({title:e,children:t,className:n=``}){return(0,B.jsxs)(we,{hover:!1,surface:`flat`,className:n,children:[(0,B.jsx)(Se,{className:`p-4 pb-3`,children:(0,B.jsx)(xe,{children:e})}),(0,B.jsx)(Ce,{className:`p-4 pt-0`,children:t})]})}function H({children:e}){return(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:e})}function U({available:e,children:t,className:n,label:r,onOpen:i,path:a}){return e?(0,B.jsx)(`button`,{type:`button`,className:n,title:a,onClick:()=>i(a,r),children:t}):(0,B.jsx)(`div`,{className:n,children:t})}function Ae({agreement:e,isLoading:t,isError:n,onOpenFile:r}){return(0,B.jsxs)(V,{title:M(`projectsAgreementFile`),children:[(0,B.jsx)(`p`,{className:`mb-4 text-sm text-muted-foreground`,children:M(`projectsAgreementDescription`)}),t?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):n?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):e?.available?(0,B.jsxs)(U,{available:!0,path:e.path,label:e.path,onOpen:r,className:`block w-full rounded-xl bg-muted/45 p-3 text-left transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsx)(`span`,{className:`block text-sm font-medium`,children:e.path}),(0,B.jsx)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:M(`projectsAgreementOpen`)})]}):(0,B.jsx)(H,{children:M(`projectsNoAgreement`)})]})}var W=e=>[`project-work`,e],G=e=>[`project-work-summary`,e],K=e=>[`project-work-states`,e],q=e=>[`project-work-artifacts`,e],J=(e,t)=>[`project-work-item`,e,t],Y=(e,t)=>[`project-work-activity`,e,t];function je(e,t={}){return x({queryKey:[...W(e??``),t],enabled:!!e,initialPageParam:null,queryFn:async({pageParam:r})=>await n.projects.listWork(e,{...t,...r?{cursor:r}:{}}),getNextPageParam:e=>e.nextCursor})}function Me(e){return r({queryKey:G(e??``),enabled:!!e,queryFn:async()=>await n.projects.getWorkSummary(e)})}function Ne(e){return r({queryKey:K(e??``),enabled:!!e,queryFn:async()=>await n.projects.listWorkStates(e)})}function Pe(e,t={}){return x({queryKey:[...q(e??``),t],enabled:!!e,initialPageParam:null,queryFn:async({pageParam:r})=>await n.projects.listRecentWorkArtifacts(e,{...t,...r?{cursor:r}:{}}),getNextPageParam:e=>e.nextCursor})}function Fe(e,t){return r({queryKey:J(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await n.projects.getWorkItem(e,t)})}function Ie(e,t){return r({queryKey:Y(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await n.projects.listWorkItemActivities(e,t,{limit:100})})}function X(e){let t=s(),r=async n=>{await Promise.all([t.invalidateQueries({queryKey:W(e)}),t.invalidateQueries({queryKey:G(e)}),t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),...n?[t.invalidateQueries({queryKey:J(e,n)}),t.invalidateQueries({queryKey:Y(e,n)})]:[]])};return{createItem:o({mutationFn:async t=>await n.projects.createWorkItem(e,t),onSuccess:async e=>await r(e.id)}),updateItem:o({mutationFn:async t=>await n.projects.updateWorkItem(e,t.workItemId,t.patch),onSuccess:async e=>await r(e.id)}),deleteItem:o({mutationFn:async t=>await n.projects.deleteWorkItem(e,t),onSuccess:async e=>await r(e.id)}),restoreItem:o({mutationFn:async t=>await n.projects.restoreWorkItem(e,t),onSuccess:async e=>await r(e.id)}),linkArtifact:o({mutationFn:async t=>await n.projects.linkWorkItemArtifact(e,t.workItemId,{path:t.path,...t.label?{label:t.label}:{}}),onSuccess:async(e,t)=>await r(t.workItemId)}),unlinkArtifact:o({mutationFn:async t=>await n.projects.unlinkWorkItemArtifact(e,t.workItemId,t.artifactLinkId),onSuccess:async(e,t)=>await r(t.workItemId)}),createState:o({mutationFn:async t=>await n.projects.createWorkState(e,t),onSuccess:async()=>await r()}),updateState:o({mutationFn:async t=>await n.projects.updateWorkState(e,t.stateId,t.patch),onSuccess:async()=>await r()}),deleteState:o({mutationFn:async t=>await n.projects.deleteWorkState(e,t.stateId,t.migrateToStateId),onSuccess:async()=>await r()})}}function Z(e){let t=s();(0,z.useEffect)(()=>{if(e)return n.eventBus.on(c.projectWorkChanged,n=>{n.projectId===e&&(t.invalidateQueries({queryKey:W(e)}),t.invalidateQueries({queryKey:G(e)}),t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),n.workItemId&&(t.invalidateQueries({queryKey:J(e,n.workItemId)}),t.invalidateQueries({queryKey:Y(e,n.workItemId)})))})},[e,t])}function Le(e){return[...e].sort((e,t)=>e.position-t.position||e.name.localeCompare(t.name))}var Re={started:0,unstarted:1,backlog:2,completed:3,canceled:4};function ze(e){return[...e].sort((e,t)=>{let n=Re[e.category]-Re[t.category];return n===0?e.category===`completed`||e.category===`canceled`?e.position-t.position||e.name.localeCompare(t.name):t.position-e.position||e.name.localeCompare(t.name):n})}function Q(e,t){return`${e}${e.endsWith(`/`)||e.endsWith(`\\`)?``:`/`}${t}`}function Be(e,t=new Date){if(!e)return`-`;let n=new Date(e),r=t.getTime()-n.getTime();if(Number.isNaN(n.getTime()))return e;if(r<6e4)return M(`projectsTimeJustNow`);let i=Math.floor(r/6e4);if(i<60)return M(`projectsTimeMinutesAgo`).replace(`{count}`,String(i));let a=Math.floor(i/60);if(a<24)return M(`projectsTimeHoursAgo`).replace(`{count}`,String(a));let o=Math.floor(a/24);return o===1?M(`projectsTimeYesterday`):o<7?M(`projectsTimeDaysAgo`).replace(`{count}`,String(o)):ue(e)}var Ve=20;function He({projectId:e,onOpenFile:t}){let[n,r]=(0,z.useState)(``),i=Pe(e,{limit:Ve,...n.trim()?{query:n.trim()}:{}}),a=i.data?.pages??[],o=a.flatMap(e=>e.artifacts),s=a[0]?.total??0;return i.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):i.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(`section`,{className:`min-w-0`,"aria-label":M(`projectsArtifacts`),children:[(0,B.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,B.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[le(s),` `,M(`projectsArtifactsCountSuffix`)]}),(0,B.jsx)(`input`,{type:`search`,value:n,className:`h-8 w-full min-w-0 rounded-lg border border-border/60 bg-transparent px-3 text-sm outline-none placeholder:text-muted-foreground sm:w-60`,placeholder:M(`projectsArtifactsSearchPlaceholder`),onChange:e=>r(e.target.value)})]}),o.length?(0,B.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-border/60`,children:[(0,B.jsx)(`div`,{className:`divide-y divide-border/60`,children:o.map(e=>(0,B.jsxs)(U,{available:e.exists,path:e.path,label:e.label??e.path,onOpen:t,className:`flex w-full min-w-0 items-center gap-3 px-3 py-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`span`,{className:`block truncate font-medium`,children:e.label??e.path}),(0,B.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[e.path,` · `,e.workItemTitle]})]}),(0,B.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:e.createdAt,title:ce(e.createdAt),children:Be(e.createdAt)}),e.exists?null:(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-destructive`,children:M(`projectsUnavailable`)})]},e.id))}),i.hasNextPage?(0,B.jsx)(`button`,{type:`button`,className:`w-full border-t border-border/60 px-3 py-2.5 text-left text-sm text-muted-foreground transition-colors hover:bg-[var(--interaction-hover)] hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,disabled:i.isFetchingNextPage,onClick:()=>void i.fetchNextPage(),children:i.isFetchingNextPage?M(`projectsLoading`):M(`projectsArtifactsShowMore`)}):null]}):(0,B.jsx)(H,{children:n.trim()?M(`projectsArtifactsNoMatches`):M(`projectsNoArtifacts`)})]})}var Ue={Backlog:`projectsWorkState_backlog`,Planned:`projectsWorkState_planned`,"In Progress":`projectsWorkState_inProgress`,"In Review":`projectsWorkState_inReview`,"Awaiting Acceptance":`projectsWorkState_awaitingAcceptance`,Completed:`projectsWorkState_completed`,Canceled:`projectsWorkState_canceled`};function $(e,t){let n=Ue[e];return n?t?M(n,t):M(n):e}function We({projectId:e,onOpenArtifact:t,onOpenWorkItem:n}){Z(e);let r=Me(e),i=je(e,{limit:5}),a=Pe(e,{limit:5}),o=a.data?.pages[0]?.artifacts??[],s=i.data?.pages.flatMap(e=>e.items).slice(0,5)??[];return(0,B.jsxs)(`div`,{className:`space-y-5`,children:[(0,B.jsx)(`section`,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,"aria-label":M(`projectsWorkSummary`),children:r.data?[[`projectsWorkTotal`,r.data.total],[`projectsWorkActive`,r.data.active],[`projectsWorkNeedsAttention`,r.data.attention],[`projectsWorkCompleted`,r.data.completed]].map(([e,t])=>(0,B.jsxs)(`div`,{className:`rounded-xl border border-border/60 bg-card p-4`,children:[(0,B.jsx)(`div`,{className:`text-2xl font-semibold`,children:t}),(0,B.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:M(e)})]},e)):(0,B.jsx)(`div`,{className:`col-span-full rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:r.isError?M(`projectsLoadFailed`):M(`projectsLoading`)})}),(0,B.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[(0,B.jsx)(V,{title:M(`projectsWorkRecentlyUpdated`),children:i.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):i.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):s.length?(0,B.jsx)(`div`,{className:`space-y-2`,children:s.map(e=>(0,B.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 rounded-xl bg-muted/45 px-3 py-3 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>n(e.id),children:[(0,B.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:e.title}),(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:$(e.state.name)})]},e.id))}):(0,B.jsx)(H,{children:M(`projectsWorkEmpty`)})}),(0,B.jsx)(V,{title:M(`projectsRecentArtifacts`),children:a.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):a.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):o.length?(0,B.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>(0,B.jsxs)(U,{available:e.exists,path:e.path,label:e.label??e.path,onOpen:t,className:`block w-full rounded-xl bg-muted/45 p-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsx)(`span`,{className:`block truncate font-medium`,children:e.label??e.path}),(0,B.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[e.workItemTitle,(0,B.jsx)(`time`,{dateTime:e.createdAt,title:ce(e.createdAt),children:` · ${Be(e.createdAt)}`}),e.exists?``:` · ${M(`projectsUnavailable`)}`]})]},e.id))}):(0,B.jsx)(H,{children:M(`projectsNoRecentArtifacts`)})})]})]})}function Ge({skills:e,isLoading:t,isError:n,onOpen:r}){return t?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):n?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(`section`,{className:`min-w-0`,"aria-label":M(`projectsSkills`),children:[(0,B.jsxs)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:[le(e.length),` `,M(`projectsSkillsCountSuffix`)]}),e.length?(0,B.jsx)(`div`,{className:`grid min-w-0 gap-3 md:grid-cols-2`,children:e.map(e=>(0,B.jsxs)(`div`,{className:`relative group/page-row rounded-xl border border-border/60 transition-colors hover:border-border hover:bg-[var(--interaction-hover)] focus-within:bg-[var(--interaction-hover)] has-[[data-context-menu-open]]:bg-[var(--interaction-hover)]`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`w-full min-w-0 rounded-xl p-3 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>r(e),children:[(0,B.jsx)(`h3`,{className:`pr-7 text-sm font-medium`,children:e.name}),(0,B.jsx)(`p`,{className:`mt-1 truncate text-xs text-muted-foreground`,title:e.path,children:e.path}),(0,B.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs text-muted-foreground`,title:e.description??e.ref,children:e.description??e.ref})]}),(0,B.jsx)(`span`,{className:`absolute right-2 top-2`,children:(0,B.jsx)(v,{revealOnHover:!0,page:S(`skill`,e.ref,e.name)})})]},e.ref))}):(0,B.jsx)(H,{children:M(`projectsNoSkills`)})]})}function Ke({embedded:e=!1,onOpenArtifact:t,onOpenChange:n,projectId:r,projectRoot:i,workItemId:a}){let o=Fe(r,a),s=Ie(r,a);Z(r);let c=Ne(r),l=(0,B.jsxs)(B.Fragment,{children:[o.isLoading?(0,B.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):null,o.isError?(0,B.jsx)(`div`,{className:`p-6 text-sm text-destructive`,children:M(`projectsWorkItemLoadFailed`)}):null,o.data?(0,B.jsx)(qe,{item:o.data,states:c.data??[],activities:s.data?.activities??[],onOpenArtifact:(e,n)=>t(Q(i,e),n),onClose:()=>n(!1)},`${o.data.id}:${o.data.version}`):null]});return(0,B.jsx)(C,{open:!e&&!!a,onOpenChange:n,children:e?(0,B.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:l}):(0,B.jsx)(b,{side:`right`,closeLabel:M(`projectsCloseDetails`),className:`flex h-full w-full flex-col overflow-hidden p-0 sm:max-w-[680px]`,children:l})})}function qe({activities:e,item:n,onClose:r,onOpenArtifact:o,states:s}){let c=X(n.projectId),[l,u]=(0,z.useState)(n.title),[d,f]=(0,z.useState)(n.description),[p,m]=(0,z.useState)(n.stateId),[h,g]=(0,z.useState)(n.attention),[b,x]=(0,z.useState)(``),[C,w]=(0,z.useState)(``),[E,k]=(0,z.useState)(!1),A=async(e,t)=>{try{await e(),t?.()}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkActionFailed`))}},te=async()=>{try{await c.updateItem.mutateAsync({workItemId:n.id,patch:{title:l,description:d,stateId:p,attention:h,expectedVersion:n.version}}),i.success(M(`projectsWorkItemSaved`))}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkItemSaveFailed`))}},j=async()=>{if(b.trim())try{await c.linkArtifact.mutateAsync({workItemId:n.id,path:b.trim(),...C.trim()?{label:C.trim()}:{}}),x(``),w(``)}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkArtifactLinkFailed`))}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(D,{className:`shrink-0 border-b border-border/60 px-5 pb-5 pt-6 pr-14 sm:px-7 sm:pt-7`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,B.jsx)(O,{children:M(`projectsWorkDetails`)}),(0,B.jsx)(v,{page:S(`project-work`,JSON.stringify([n.projectId,n.id]),n.title)})]}),(0,B.jsxs)(y,{children:[n.id,` · `,M(`projectsWorkVersion`),` `,n.version]})]}),(0,B.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-6 overflow-y-auto px-5 py-6 sm:px-7`,children:[(0,B.jsxs)(`section`,{className:`space-y-3`,children:[(0,B.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkTitle`)}),(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value)}),(0,B.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkDescription`)}),(0,B.jsx)(T,{className:`min-h-28`,value:d,onChange:e=>f(e.target.value)}),(0,B.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:M(`projectsStatus`)}),(0,B.jsxs)(R,{value:p,onValueChange:m,children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:s.map(e=>(0,B.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkAttention`)}),(0,B.jsxs)(R,{value:h,onValueChange:e=>g(e),children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsxs)(I,{children:[(0,B.jsx)(L,{value:`none`,children:M(`projectsWorkAttention_none`)}),(0,B.jsx)(L,{value:`blocked`,children:M(`projectsWorkAttention_blocked`)}),(0,B.jsx)(L,{value:`awaiting-user`,children:M(`projectsWorkAttention_awaiting-user`)})]})]})]})]})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:M(`projectsWorkArtifacts`)}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[n.artifacts.map(e=>(0,B.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-border/60 p-2`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 rounded-lg px-2 py-1 text-left hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>o(e.path,e.label??e.path),children:[(0,B.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-sm font-medium`,children:[(0,B.jsx)(re,{className:`h-3.5 w-3.5 shrink-0`}),e.label??e.path]}),(0,B.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.path})]}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsWorkUnlinkArtifact`),onClick:()=>void A(()=>c.unlinkArtifact.mutateAsync({workItemId:n.id,artifactLinkId:e.id})),children:(0,B.jsx)(ke,{className:`h-4 w-4`})})]},e.id)),n.artifacts.length?null:(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:M(`projectsWorkNoArtifacts`)})]}),(0,B.jsxs)(`div`,{className:`mt-3 grid gap-2 sm:grid-cols-[1fr_12rem_auto]`,children:[(0,B.jsx)(t,{value:b,onChange:e=>x(e.target.value),placeholder:M(`projectsWorkArtifactPath`)}),(0,B.jsx)(t,{value:C,onChange:e=>w(e.target.value),placeholder:M(`projectsWorkArtifactLabel`)}),(0,B.jsxs)(a,{variant:`outline`,onClick:()=>void j(),disabled:!b.trim()||c.linkArtifact.isPending,children:[(0,B.jsx)(ee,{className:`mr-2 h-4 w-4`}),M(`projectsWorkLinkArtifact`)]})]})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:M(`projectsActivity`)}),(0,B.jsx)(`ol`,{className:`space-y-2`,children:e.map(e=>(0,B.jsxs)(`li`,{className:`rounded-xl bg-muted/35 px-3 py-2 text-sm`,children:[(0,B.jsx)(`span`,{className:`font-medium`,children:M(`projectsWorkActivity_${e.type}`)}),(0,B.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[e.actor.kind,` ·`,` `,new Date(e.createdAt).toLocaleString()]})]},e.id))})]})]}),(0,B.jsxs)(_,{className:`shrink-0 border-t border-border/60 bg-background px-5 py-4 sm:px-7`,children:[n.deletedAt?(0,B.jsx)(a,{variant:`outline`,onClick:()=>void A(()=>c.restoreItem.mutateAsync(n.id)),children:M(`projectsRestore`)}):(0,B.jsxs)(a,{variant:`destructive`,onClick:()=>k(!0),children:[(0,B.jsx)(se,{className:`mr-2 h-4 w-4`}),M(`projectsDelete`)]}),(0,B.jsx)(a,{onClick:()=>void te(),disabled:!l.trim()||c.updateItem.isPending,children:M(`save`)})]}),(0,B.jsx)(be,{open:E,onOpenChange:k,title:M(`projectsDeleteWorkItem`),description:M(`projectsDeleteWorkItemDescription`),confirmLabel:M(`projectsDelete`),variant:`destructive`,onCancel:()=>k(!1),onConfirm:()=>void A(()=>c.deleteItem.mutateAsync(n.id),r)})]})}var Je=[`backlog`,`unstarted`,`started`,`completed`,`canceled`];function Ye({open:e,onOpenChange:n,projectId:r,states:o}){let s=X(r),c=Le(o),[l,u]=(0,z.useState)(``),[d,f]=(0,z.useState)(`unstarted`),[p,m]=(0,z.useState)(null),[h,g]=(0,z.useState)(``),_=async e=>{try{await e()}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkActionFailed`))}},v=async()=>{l.trim()&&await _(async()=>{await s.createState.mutateAsync({name:l.trim(),category:d}),u(``)})},y=async(e,t)=>{let n=c[e],r=c[e+t];!n||!r||await _(async()=>{await s.updateState.mutateAsync({stateId:n.id,patch:{position:r.position}}),await s.updateState.mutateAsync({stateId:r.id,patch:{position:n.position}})})};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(ge,{open:e,onOpenChange:n,children:(0,B.jsxs)(pe,{className:`max-h-[85vh] overflow-y-auto sm:max-w-2xl`,children:[(0,B.jsxs)(de,{children:[(0,B.jsx)(me,{children:M(`projectsWorkStateSettings`)}),(0,B.jsx)(he,{children:M(`projectsWorkStateSettingsDescription`)})]}),(0,B.jsx)(`div`,{className:`space-y-2`,children:c.map((e,n)=>(0,B.jsxs)(`div`,{className:`grid gap-2 rounded-xl border border-border/60 p-3 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,B.jsx)(t,{"aria-label":M(`projectsWorkStateName`),defaultValue:$(e.name),onBlur:t=>{let n=t.currentTarget.value.trim();n&&n!==$(e.name)&&_(()=>s.updateState.mutateAsync({stateId:e.id,patch:{name:n}}))}}),(0,B.jsxs)(R,{value:e.category,onValueChange:t=>void _(()=>s.updateState.mutateAsync({stateId:e.id,patch:{category:t}})),children:[(0,B.jsx)(F,{"aria-label":M(`projectsWorkStateCategory`),children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:Je.map(e=>(0,B.jsx)(L,{value:e,children:M(`projectsWorkCategory_${e}`)},e))})]}),(0,B.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsMoveUp`),disabled:n===0,onClick:()=>void y(n,-1),children:(0,B.jsx)(te,{className:`h-4 w-4`})}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsMoveDown`),disabled:n===c.length-1,onClick:()=>void y(n,1),children:(0,B.jsx)(j,{className:`h-4 w-4`})}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsDeleteState`),disabled:c.length<=1,onClick:()=>{m(e),g(``)},children:(0,B.jsx)(se,{className:`h-4 w-4`})})]}),(0,B.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground sm:col-span-3`,children:[(0,B.jsx)(`input`,{type:`radio`,name:`default-state`,checked:e.isDefault,onChange:()=>void _(()=>s.updateState.mutateAsync({stateId:e.id,patch:{isDefault:!0}}))}),M(`projectsWorkDefaultState`)]})]},e.id))}),(0,B.jsxs)(`div`,{className:`grid gap-2 border-t border-border/60 pt-4 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value),placeholder:M(`projectsWorkNewState`)}),(0,B.jsxs)(R,{value:d,onValueChange:e=>f(e),children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:Je.map(e=>(0,B.jsx)(L,{value:e,children:M(`projectsWorkCategory_${e}`)},e))})]}),(0,B.jsxs)(a,{onClick:()=>void v(),disabled:!l.trim()||s.createState.isPending,children:[(0,B.jsx)(ae,{className:`mr-2 h-4 w-4`}),M(`projectsAdd`)]})]})]})}),(0,B.jsx)(ge,{open:!!p,onOpenChange:e=>{e||m(null)},children:(0,B.jsxs)(pe,{children:[(0,B.jsxs)(de,{children:[(0,B.jsx)(me,{children:M(`projectsDeleteState`)}),(0,B.jsx)(he,{children:M(`projectsDeleteStateDescription`)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:M(`projectsWorkStateMigration`)}),(0,B.jsxs)(R,{value:h,onValueChange:g,children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{placeholder:M(`projectsWorkStateMigrationOptional`)})}),(0,B.jsx)(I,{children:c.filter(e=>e.id!==p?.id).map(e=>(0,B.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,B.jsxs)(fe,{children:[(0,B.jsx)(a,{variant:`outline`,onClick:()=>m(null),children:M(`cancel`)}),(0,B.jsx)(a,{variant:`destructive`,onClick:()=>{p&&_(async()=>{await s.deleteState.mutateAsync({stateId:p.id,migrateToStateId:h||null}),m(null)})},children:M(`projectsDelete`)})]})]})})]})}function Xe({startedProgress:e,state:t}){if(t.category===`backlog`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`backlog`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,B.jsx)(ne,{className:`h-4 w-4`})});if(t.category===`unstarted`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`unstarted`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground`,children:(0,B.jsx)(Ee,{className:`h-4 w-4`,strokeWidth:2})});if(t.category===`completed`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`completed`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-emerald-600 dark:text-emerald-400`,children:(0,B.jsx)(E,{className:`h-4 w-4`,strokeWidth:2.25})});if(t.category===`canceled`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`canceled`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,B.jsx)(Te,{className:`h-4 w-4`})});let n=Math.round((e??.5)*100),r=n>=67?`text-emerald-600 dark:text-emerald-400`:n>=40?`text-orange-500 dark:text-orange-400`:`text-amber-500 dark:text-amber-400`;return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`started`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center ${r}`,children:(0,B.jsxs)(`svg`,{className:`h-4 w-4`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,stroke:`currentColor`,strokeWidth:`1.75`,opacity:`0.22`}),(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,pathLength:`100`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`${n} ${100-n}`,transform:`rotate(-90 8 8)`})]})})}function Ze({item:e,onOpen:t}){return(0,B.jsxs)(`button`,{type:`button`,className:`w-full rounded-xl border border-border/50 bg-card p-3 text-left text-sm shadow-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:t,children:[(0,B.jsx)(`span`,{className:`block font-medium`,children:e.title}),(0,B.jsxs)(`span`,{className:`mt-1 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,B.jsx)(`span`,{children:$(e.state.name)}),e.attention===`none`?null:(0,B.jsx)(`span`,{className:`rounded-full bg-amber-500/15 px-2 py-0.5 text-amber-700 dark:text-amber-300`,children:M(`projectsWorkAttention_${e.attention}`)}),e.deletedAt?(0,B.jsx)(`span`,{children:M(`projectsDeleted`)}):null]})]})}function Qe({hasNextPage:e,isError:t,isFetchingNextPage:n,isLoading:r,items:i,onLoadMore:o,onOpenWorkItem:s}){return r?(0,B.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:M(`projectsLoading`)}):t?(0,B.jsx)(`p`,{className:`py-3 text-xs text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(B.Fragment,{children:[i.length?i.map(e=>(0,B.jsx)(Ze,{item:e,onOpen:()=>s(e.id)},e.id)):(0,B.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:M(`projectsNoData`)}),e?(0,B.jsx)(a,{type:`button`,variant:`ghost`,size:`sm`,className:`w-full`,disabled:n,onClick:o,children:M(n?`projectsLoading`:`projectsWorkLoadMore`)}):null]})}function $e({includeDeleted:e,onOpenWorkItem:t,state:n,startedProgress:r,view:i}){let[a,o]=(0,z.useState)(!1),s=je(n.projectId,{stateId:n.id,includeDeleted:e,limit:20}),c=s.data?.pages.flatMap(e=>e.items)??[],l=s.data?.pages[0]?.total;return(0,B.jsxs)(`section`,{className:i===`board`?`flex h-full min-h-0 min-w-0 flex-col overflow-hidden`:`min-w-0`,"aria-label":$(n.name),children:[(0,B.jsxs)(`button`,{type:`button`,className:`flex w-full shrink-0 items-center gap-2 rounded-lg px-1 py-2 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,"aria-expanded":!a,onClick:()=>o(e=>!e),children:[a?(0,B.jsx)(A,{className:`h-4 w-4 shrink-0`}):(0,B.jsx)(j,{className:`h-4 w-4 shrink-0`}),(0,B.jsx)(Xe,{state:n,startedProgress:r}),(0,B.jsx)(`span`,{className:`min-w-0 truncate text-sm font-semibold`,children:$(n.name)}),(0,B.jsx)(`span`,{className:`ml-0.5 shrink-0 text-xs font-medium tabular-nums text-muted-foreground`,children:l??`…`})]}),a?null:(0,B.jsx)(`div`,{className:i===`board`?`min-h-0 flex-1 space-y-2 overflow-y-auto px-1 pb-3`:`space-y-2 px-1 pb-3`,children:(0,B.jsx)(Qe,{hasNextPage:s.hasNextPage,isError:s.isError,isFetchingNextPage:s.isFetchingNextPage,isLoading:s.isLoading,items:c,onLoadMore:()=>void s.fetchNextPage(),onOpenWorkItem:t})})]})}function et({onOpenWorkItem:e,projectId:n}){let[r,o]=(0,z.useState)(`list`),[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(``),[d,f]=(0,z.useState)(!1);Z(n);let p=Ne(n),m=X(n),h=async()=>{if(l.trim())try{let t=await m.createItem.mutateAsync({title:l.trim()});u(``),e(t.id)}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkItemCreateFailed`))}};if(p.isLoading)return(0,B.jsx)(`div`,{className:`rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)});if(p.isError)return(0,B.jsx)(`div`,{className:`rounded-xl border border-destructive/40 p-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)});let g=Le(p.data??[]),_=ze(p.data??[]),v=g.filter(e=>e.category===`started`),y=new Map(v.map((e,t)=>[e.id,(t+1)/(v.length+1)]));return(0,B.jsxs)(`section`,{"aria-label":M(`projectsWork`),className:`min-w-0 space-y-4`,children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,B.jsxs)(`div`,{className:`flex min-w-[16rem] flex-1 gap-2`,children:[(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h()},placeholder:M(`projectsWorkNewItem`)}),(0,B.jsxs)(a,{onClick:()=>void h(),disabled:!l.trim()||m.createItem.isPending,children:[(0,B.jsx)(ae,{className:`mr-2 h-4 w-4`}),M(`projectsCreate`)]})]}),(0,B.jsxs)(`div`,{className:`flex items-center gap-1 rounded-xl bg-muted/40 p-1`,role:`group`,"aria-label":M(`projectsWorkViews`),children:[(0,B.jsxs)(a,{size:`sm`,variant:r===`list`?`secondary`:`ghost`,"aria-pressed":r===`list`,onClick:()=>o(`list`),children:[(0,B.jsx)(Oe,{className:`mr-2 h-4 w-4`}),M(`projectsWorkList`)]}),(0,B.jsxs)(a,{size:`sm`,variant:r===`board`?`secondary`:`ghost`,"aria-pressed":r===`board`,onClick:()=>o(`board`),children:[(0,B.jsx)(De,{className:`mr-2 h-4 w-4`}),M(`projectsWorkBoard`)]})]}),(0,B.jsxs)(a,{variant:`outline`,size:`sm`,onClick:()=>f(!0),children:[(0,B.jsx)(oe,{className:`mr-2 h-4 w-4`}),M(`projectsWorkStateSettings`)]})]}),(0,B.jsxs)(`label`,{className:`flex w-fit items-center gap-2 text-xs text-muted-foreground`,children:[(0,B.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked)}),M(`projectsWorkShowDeleted`)]}),r===`list`?(0,B.jsx)(`div`,{className:`space-y-3`,children:_.map(t=>(0,B.jsx)($e,{state:t,startedProgress:y.get(t.id)??null,view:r,includeDeleted:s,onOpenWorkItem:e},t.id))}):null,r===`board`?(0,B.jsx)(`div`,{className:`grid h-[calc(100dvh-17rem)] min-h-[28rem] max-h-[52rem] min-w-0 auto-cols-[minmax(18rem,1fr)] grid-flow-col items-stretch gap-3 overflow-x-auto overflow-y-hidden pb-2`,children:g.map(t=>(0,B.jsx)($e,{state:t,startedProgress:y.get(t.id)??null,view:r,includeDeleted:s,onOpenWorkItem:e},t.id))}):null,(0,B.jsx)(Ye,{open:d,onOpenChange:f,projectId:n,states:g})]})}var tt=e=>[`project-agreement`,e],nt=e=>[`project-skills`,e];function rt(e){return r({queryKey:tt(e??``),enabled:!!e,queryFn:async()=>await n.projects.getAgreement(e)})}function it(e){return r({queryKey:nt(e??``),enabled:!!e,queryFn:async()=>await n.projects.listProjectSkills(e)})}function at(e){return e===`overview`||e===`work`||e===`artifacts`||e===`skills`||e===`agreement`}var ot=[`overview`,`work`,`artifacts`,`skills`,`agreement`];function st({resourceId:e,resourceWorkId:t}={}){let n=w(),{projectId:r,tab:i}=f(),a=e??r,[o,s]=(0,z.useState)(`overview`),c=e?o:i,l=d(),{state:u}=p(),_=g(),{isMobile:v}=ie(),y=h(),b=e=>n.pageResourceManager.open(S(`project-work`,JSON.stringify([a,e]),e),`default`,l),x=y.data?.projects??[],C=x.find(e=>e.id===a)??null,T=at(c)?c:null,E=rt(T===`agreement`?C?.id??null:null),D=it(T===`skills`?C?.id??null:null);if(y.isLoading)return(0,B.jsx)(`main`,{className:`flex h-full items-center justify-center p-6 text-sm text-muted-foreground`,children:M(`projectsLoading`)});if(y.isError)return(0,B.jsxs)(`main`,{className:`p-6 text-sm text-destructive`,children:[M(`projectsLoadFailed`),`: `,y.error.message]});if(e&&!C)return(0,B.jsx)(`p`,{role:`alert`,className:`p-4`,children:M(`resourceNotFound`)});if(!x.length)return(0,B.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:M(`projectsEmpty`)});if(!C||!T)return(0,B.jsxs)(`main`,{className:`space-y-3 p-4 text-sm text-muted-foreground sm:p-6`,children:[(0,B.jsx)(`label`,{htmlFor:`project-home-selection`,className:`block font-medium text-foreground`,children:M(`projectsChoose`)}),(0,B.jsxs)(`select`,{id:`project-home-selection`,value:``,onChange:e=>l(`/projects/${encodeURIComponent(e.target.value)}/overview`,{state:u}),className:`min-h-11 w-full rounded-xl border border-border bg-card px-3 text-base text-foreground`,children:[(0,B.jsx)(`option`,{value:``,disabled:!0,children:M(`projectsChoose`)}),x.map(e=>(0,B.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]});let O=(e,t)=>_.chatThreadManager.openFilePreview({path:e,label:t,viewMode:`preview`,previewViewer:`rendered`});return t?(0,B.jsx)(Ke,{embedded:!0,projectId:C.id,projectRoot:C.rootPath,workItemId:t,onOpenChange:e=>{e||l(`/projects/${encodeURIComponent(C.id)}/work`)},onOpenArtifact:O}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`main`,{className:`h-full min-w-0 flex-1 overflow-y-auto p-3 sm:p-4 md:p-6`,children:(0,B.jsxs)(`div`,{className:`mx-auto max-w-6xl space-y-4`,children:[(0,B.jsxs)(`header`,{className:`rounded-2xl border border-border/60 bg-card p-3 sm:p-4`,children:[(0,B.jsx)(`h1`,{className:`text-lg font-semibold`,children:C.name}),(0,B.jsx)(`p`,{className:`mt-1 break-all text-xs text-muted-foreground`,children:C.rootPath})]}),(0,B.jsxs)(ye,{value:T,onValueChange:t=>e&&at(t)?s(t):l(`/projects/${encodeURIComponent(C.id)}/${t}`,{state:u}),children:[(0,B.jsx)(`div`,{className:`min-w-0 overflow-x-auto pb-1`,children:(0,B.jsx)(ve,{className:`w-max`,children:ot.map(e=>(0,B.jsx)(_e,{value:e,children:M(`projects${e[0].toUpperCase()}${e.slice(1)}`)},e))})}),(0,B.jsx)(N,{value:`overview`,className:`mt-4`,children:(0,B.jsx)(We,{projectId:C.id,onOpenArtifact:(e,t)=>O(Q(C.rootPath,e),t),onOpenWorkItem:b})}),(0,B.jsx)(N,{value:`work`,className:`mt-4`,children:(0,B.jsx)(et,{projectId:C.id,onOpenWorkItem:b})}),(0,B.jsx)(N,{value:`artifacts`,className:`mt-4`,children:(0,B.jsx)(He,{projectId:C.id,onOpenFile:(e,t)=>O(Q(C.rootPath,e),t)})}),(0,B.jsx)(N,{value:`skills`,className:`mt-4`,children:(0,B.jsx)(Ge,{skills:D.data??[],isLoading:D.isLoading,isError:D.isError,onOpen:e=>n.pageResourceManager.open(S(`skill`,e.ref,e.name),`default`,l)})}),(0,B.jsx)(N,{value:`agreement`,className:`mt-4`,children:(0,B.jsx)(Ae,{agreement:E.data,isLoading:E.isLoading,isError:E.isError,onOpenFile:(e,t)=>O(Q(C.rootPath,e),t)})})]})]})}),!e&&(0,B.jsx)(m,{layoutMode:v?`mobile`:`desktop`,sessionKey:null,projectRoot:C.rootPath})]})}export{st as ProjectsPage};
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Lt as n,Qn as r,Xn as i,Yt as a,Zn as o,lr as s,qn as c,ur as l,xr as u}from"./api-CXWxExzS.js";import{d,f,l as p}from"./navigation-link-O9Wm0epj.js";import{G as m,Ut as h,Yt as g,_t as _,f as v,gt as y,ht as b,in as x,m as S,mt as C,n as w,pt as T,rn as E,vt as D,yt as O}from"./app-presenter-provider-Cx9MwMtb.js";import{t as k}from"./createLucideIcon-C3LSyx-e.js";import{ht as A,rt as ee}from"./context-menu-C6m-WNpl.js";import{R as te,z as j}from"./dist-D9h2cWk3.js";import{t as ne}from"./circle-dashed-KGwElDWV.js";import{t as re}from"./external-link-DZzwHRHW.js";import{t as ie}from"./use-viewport-layout-Bnm5W5Qz.js";import{t as ae}from"./plus-C42o6xrD.js";import{t as oe}from"./settings-2-D3-m8a3v.js";import{t as se}from"./trash-2-BVQs-0ji.js";import{n as ce,r as le,s as M,t as ue}from"./i18n-ByVUrt9w.js";import{a as de,i as fe,n as pe,o as me,r as he,t as ge}from"./dialog-DB_l9LK0.js";import{a as _e,i as ve,n as ye,r as N}from"./tag-chip-DFzDSvcF.js";import{t as be}from"./confirm-dialog-D30HJBXN.js";import{a as P,i as F,n as I,r as L,t as R}from"./select-BJ-EjmCz.js";import{a as xe,i as Se,n as Ce,t as we}from"./card-eFBmxYiI.js";var Te=k(`CircleX`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),Ee=k(`Circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),De=k(`LayoutGrid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),Oe=k(`List`,[[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 18h.01`,key:`1tta3j`}],[`path`,{d:`M3 6h.01`,key:`1rqtza`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 18h13`,key:`1lx6n3`}],[`path`,{d:`M8 6h13`,key:`ik3vkj`}]]),ke=k(`Unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),z=e(u(),1),B=l();function V({title:e,children:t,className:n=``}){return(0,B.jsxs)(we,{hover:!1,surface:`flat`,className:n,children:[(0,B.jsx)(Se,{className:`p-4 pb-3`,children:(0,B.jsx)(xe,{children:e})}),(0,B.jsx)(Ce,{className:`p-4 pt-0`,children:t})]})}function H({children:e}){return(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:e})}function U({available:e,children:t,className:n,label:r,onOpen:i,path:a}){return e?(0,B.jsx)(`button`,{type:`button`,className:n,title:a,onClick:()=>i(a,r),children:t}):(0,B.jsx)(`div`,{className:n,children:t})}function Ae({agreement:e,isLoading:t,isError:n,onOpenFile:r}){return(0,B.jsxs)(V,{title:M(`projectsAgreementFile`),children:[(0,B.jsx)(`p`,{className:`mb-4 text-sm text-muted-foreground`,children:M(`projectsAgreementDescription`)}),t?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):n?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):e?.available?(0,B.jsxs)(U,{available:!0,path:e.path,label:e.path,onOpen:r,className:`block w-full rounded-xl bg-muted/45 p-3 text-left transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsx)(`span`,{className:`block text-sm font-medium`,children:e.path}),(0,B.jsx)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:M(`projectsAgreementOpen`)})]}):(0,B.jsx)(H,{children:M(`projectsNoAgreement`)})]})}var W=e=>[`project-work`,e],G=e=>[`project-work-summary`,e],K=e=>[`project-work-states`,e],q=e=>[`project-work-artifacts`,e],J=(e,t)=>[`project-work-item`,e,t],Y=(e,t)=>[`project-work-activity`,e,t];function je(e,t={}){return x({queryKey:[...W(e??``),t],enabled:!!e,initialPageParam:null,queryFn:async({pageParam:r})=>await n.projects.listWork(e,{...t,...r?{cursor:r}:{}}),getNextPageParam:e=>e.nextCursor})}function Me(e){return r({queryKey:G(e??``),enabled:!!e,queryFn:async()=>await n.projects.getWorkSummary(e)})}function Ne(e){return r({queryKey:K(e??``),enabled:!!e,queryFn:async()=>await n.projects.listWorkStates(e)})}function Pe(e,t={}){return x({queryKey:[...q(e??``),t],enabled:!!e,initialPageParam:null,queryFn:async({pageParam:r})=>await n.projects.listRecentWorkArtifacts(e,{...t,...r?{cursor:r}:{}}),getNextPageParam:e=>e.nextCursor})}function Fe(e,t){return r({queryKey:J(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await n.projects.getWorkItem(e,t)})}function Ie(e,t){return r({queryKey:Y(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await n.projects.listWorkItemActivities(e,t,{limit:100})})}function X(e){let t=s(),r=async n=>{await Promise.all([t.invalidateQueries({queryKey:W(e)}),t.invalidateQueries({queryKey:G(e)}),t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),...n?[t.invalidateQueries({queryKey:J(e,n)}),t.invalidateQueries({queryKey:Y(e,n)})]:[]])};return{createItem:o({mutationFn:async t=>await n.projects.createWorkItem(e,t),onSuccess:async e=>await r(e.id)}),updateItem:o({mutationFn:async t=>await n.projects.updateWorkItem(e,t.workItemId,t.patch),onSuccess:async e=>await r(e.id)}),deleteItem:o({mutationFn:async t=>await n.projects.deleteWorkItem(e,t),onSuccess:async e=>await r(e.id)}),restoreItem:o({mutationFn:async t=>await n.projects.restoreWorkItem(e,t),onSuccess:async e=>await r(e.id)}),linkArtifact:o({mutationFn:async t=>await n.projects.linkWorkItemArtifact(e,t.workItemId,{path:t.path,...t.label?{label:t.label}:{}}),onSuccess:async(e,t)=>await r(t.workItemId)}),unlinkArtifact:o({mutationFn:async t=>await n.projects.unlinkWorkItemArtifact(e,t.workItemId,t.artifactLinkId),onSuccess:async(e,t)=>await r(t.workItemId)}),createState:o({mutationFn:async t=>await n.projects.createWorkState(e,t),onSuccess:async()=>await r()}),updateState:o({mutationFn:async t=>await n.projects.updateWorkState(e,t.stateId,t.patch),onSuccess:async()=>await r()}),deleteState:o({mutationFn:async t=>await n.projects.deleteWorkState(e,t.stateId,t.migrateToStateId),onSuccess:async()=>await r()})}}function Z(e){let t=s();(0,z.useEffect)(()=>{if(e)return n.eventBus.on(c.projectWorkChanged,n=>{n.projectId===e&&(t.invalidateQueries({queryKey:W(e)}),t.invalidateQueries({queryKey:G(e)}),t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),n.workItemId&&(t.invalidateQueries({queryKey:J(e,n.workItemId)}),t.invalidateQueries({queryKey:Y(e,n.workItemId)})))})},[e,t])}function Le(e){return[...e].sort((e,t)=>e.position-t.position||e.name.localeCompare(t.name))}var Re={started:0,unstarted:1,backlog:2,completed:3,canceled:4};function ze(e){return[...e].sort((e,t)=>{let n=Re[e.category]-Re[t.category];return n===0?e.category===`completed`||e.category===`canceled`?e.position-t.position||e.name.localeCompare(t.name):t.position-e.position||e.name.localeCompare(t.name):n})}function Q(e,t){return`${e}${e.endsWith(`/`)||e.endsWith(`\\`)?``:`/`}${t}`}function Be(e,t=new Date){if(!e)return`-`;let n=new Date(e),r=t.getTime()-n.getTime();if(Number.isNaN(n.getTime()))return e;if(r<6e4)return M(`projectsTimeJustNow`);let i=Math.floor(r/6e4);if(i<60)return M(`projectsTimeMinutesAgo`).replace(`{count}`,String(i));let a=Math.floor(i/60);if(a<24)return M(`projectsTimeHoursAgo`).replace(`{count}`,String(a));let o=Math.floor(a/24);return o===1?M(`projectsTimeYesterday`):o<7?M(`projectsTimeDaysAgo`).replace(`{count}`,String(o)):ue(e)}var Ve=20;function He({projectId:e,onOpenFile:t}){let[n,r]=(0,z.useState)(``),i=Pe(e,{limit:Ve,...n.trim()?{query:n.trim()}:{}}),a=i.data?.pages??[],o=a.flatMap(e=>e.artifacts),s=a[0]?.total??0;return i.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):i.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(`section`,{className:`min-w-0`,"aria-label":M(`projectsArtifacts`),children:[(0,B.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,B.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[le(s),` `,M(`projectsArtifactsCountSuffix`)]}),(0,B.jsx)(`input`,{type:`search`,value:n,className:`h-8 w-full min-w-0 rounded-lg border border-border/60 bg-transparent px-3 text-sm outline-none placeholder:text-muted-foreground sm:w-60`,placeholder:M(`projectsArtifactsSearchPlaceholder`),onChange:e=>r(e.target.value)})]}),o.length?(0,B.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-border/60`,children:[(0,B.jsx)(`div`,{className:`divide-y divide-border/60`,children:o.map(e=>(0,B.jsxs)(U,{available:e.exists,path:e.path,label:e.label??e.path,onOpen:t,className:`flex w-full min-w-0 items-center gap-3 px-3 py-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`span`,{className:`block truncate font-medium`,children:e.label??e.path}),(0,B.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[e.path,` · `,e.workItemTitle]})]}),(0,B.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:e.createdAt,title:ce(e.createdAt),children:Be(e.createdAt)}),e.exists?null:(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-destructive`,children:M(`projectsUnavailable`)})]},e.id))}),i.hasNextPage?(0,B.jsx)(`button`,{type:`button`,className:`w-full border-t border-border/60 px-3 py-2.5 text-left text-sm text-muted-foreground transition-colors hover:bg-[var(--interaction-hover)] hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,disabled:i.isFetchingNextPage,onClick:()=>void i.fetchNextPage(),children:i.isFetchingNextPage?M(`projectsLoading`):M(`projectsArtifactsShowMore`)}):null]}):(0,B.jsx)(H,{children:n.trim()?M(`projectsArtifactsNoMatches`):M(`projectsNoArtifacts`)})]})}var Ue={Backlog:`projectsWorkState_backlog`,Planned:`projectsWorkState_planned`,"In Progress":`projectsWorkState_inProgress`,"In Review":`projectsWorkState_inReview`,"Awaiting Acceptance":`projectsWorkState_awaitingAcceptance`,Completed:`projectsWorkState_completed`,Canceled:`projectsWorkState_canceled`};function $(e,t){let n=Ue[e];return n?t?M(n,t):M(n):e}function We({projectId:e,onOpenArtifact:t,onOpenWorkItem:n}){Z(e);let r=Me(e),i=je(e,{limit:5}),a=Pe(e,{limit:5}),o=a.data?.pages[0]?.artifacts??[],s=i.data?.pages.flatMap(e=>e.items).slice(0,5)??[];return(0,B.jsxs)(`div`,{className:`space-y-5`,children:[(0,B.jsx)(`section`,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,"aria-label":M(`projectsWorkSummary`),children:r.data?[[`projectsWorkTotal`,r.data.total],[`projectsWorkActive`,r.data.active],[`projectsWorkNeedsAttention`,r.data.attention],[`projectsWorkCompleted`,r.data.completed]].map(([e,t])=>(0,B.jsxs)(`div`,{className:`rounded-xl border border-border/60 bg-card p-4`,children:[(0,B.jsx)(`div`,{className:`text-2xl font-semibold`,children:t}),(0,B.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:M(e)})]},e)):(0,B.jsx)(`div`,{className:`col-span-full rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:r.isError?M(`projectsLoadFailed`):M(`projectsLoading`)})}),(0,B.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[(0,B.jsx)(V,{title:M(`projectsWorkRecentlyUpdated`),children:i.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):i.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):s.length?(0,B.jsx)(`div`,{className:`space-y-2`,children:s.map(e=>(0,B.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 rounded-xl bg-muted/45 px-3 py-3 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>n(e.id),children:[(0,B.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:e.title}),(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:$(e.state.name)})]},e.id))}):(0,B.jsx)(H,{children:M(`projectsWorkEmpty`)})}),(0,B.jsx)(V,{title:M(`projectsRecentArtifacts`),children:a.isLoading?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):a.isError?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):o.length?(0,B.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>(0,B.jsxs)(U,{available:e.exists,path:e.path,label:e.label??e.path,onOpen:t,className:`block w-full rounded-xl bg-muted/45 p-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,B.jsx)(`span`,{className:`block truncate font-medium`,children:e.label??e.path}),(0,B.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[e.workItemTitle,(0,B.jsx)(`time`,{dateTime:e.createdAt,title:ce(e.createdAt),children:` · ${Be(e.createdAt)}`}),e.exists?``:` · ${M(`projectsUnavailable`)}`]})]},e.id))}):(0,B.jsx)(H,{children:M(`projectsNoRecentArtifacts`)})})]})]})}function Ge({skills:e,isLoading:t,isError:n,onOpen:r}){return t?(0,B.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):n?(0,B.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(`section`,{className:`min-w-0`,"aria-label":M(`projectsSkills`),children:[(0,B.jsxs)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:[le(e.length),` `,M(`projectsSkillsCountSuffix`)]}),e.length?(0,B.jsx)(`div`,{className:`grid min-w-0 gap-3 md:grid-cols-2`,children:e.map(e=>(0,B.jsxs)(`div`,{className:`relative group/page-row rounded-xl border border-border/60 transition-colors hover:border-border hover:bg-[var(--interaction-hover)] focus-within:bg-[var(--interaction-hover)] has-[[data-context-menu-open]]:bg-[var(--interaction-hover)]`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`w-full min-w-0 rounded-xl p-3 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>r(e),children:[(0,B.jsx)(`h3`,{className:`pr-7 text-sm font-medium`,children:e.name}),(0,B.jsx)(`p`,{className:`mt-1 truncate text-xs text-muted-foreground`,title:e.path,children:e.path}),(0,B.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs text-muted-foreground`,title:e.description??e.ref,children:e.description??e.ref})]}),(0,B.jsx)(`span`,{className:`absolute right-2 top-2`,children:(0,B.jsx)(v,{revealOnHover:!0,page:S(`skill`,e.ref,e.name)})})]},e.ref))}):(0,B.jsx)(H,{children:M(`projectsNoSkills`)})]})}function Ke({embedded:e=!1,onOpenArtifact:t,onOpenChange:n,projectId:r,projectRoot:i,workItemId:a}){let o=Fe(r,a),s=Ie(r,a);Z(r);let c=Ne(r),l=(0,B.jsxs)(B.Fragment,{children:[o.isLoading?(0,B.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:M(`projectsLoading`)}):null,o.isError?(0,B.jsx)(`div`,{className:`p-6 text-sm text-destructive`,children:M(`projectsWorkItemLoadFailed`)}):null,o.data?(0,B.jsx)(qe,{item:o.data,states:c.data??[],activities:s.data?.activities??[],onOpenArtifact:(e,n)=>t(Q(i,e),n),onClose:()=>n(!1)},`${o.data.id}:${o.data.version}`):null]});return(0,B.jsx)(C,{open:!e&&!!a,onOpenChange:n,children:e?(0,B.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:l}):(0,B.jsx)(b,{side:`right`,closeLabel:M(`projectsCloseDetails`),className:`flex h-full w-full flex-col overflow-hidden p-0 sm:max-w-[680px]`,children:l})})}function qe({activities:e,item:n,onClose:r,onOpenArtifact:o,states:s}){let c=X(n.projectId),[l,u]=(0,z.useState)(n.title),[d,f]=(0,z.useState)(n.description),[p,m]=(0,z.useState)(n.stateId),[h,g]=(0,z.useState)(n.attention),[b,x]=(0,z.useState)(``),[C,w]=(0,z.useState)(``),[E,k]=(0,z.useState)(!1),A=async(e,t)=>{try{await e(),t?.()}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkActionFailed`))}},te=async()=>{try{await c.updateItem.mutateAsync({workItemId:n.id,patch:{title:l,description:d,stateId:p,attention:h,expectedVersion:n.version}}),i.success(M(`projectsWorkItemSaved`))}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkItemSaveFailed`))}},j=async()=>{if(b.trim())try{await c.linkArtifact.mutateAsync({workItemId:n.id,path:b.trim(),...C.trim()?{label:C.trim()}:{}}),x(``),w(``)}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkArtifactLinkFailed`))}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(D,{className:`shrink-0 border-b border-border/60 px-5 pb-5 pt-6 pr-14 sm:px-7 sm:pt-7`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,B.jsx)(O,{children:M(`projectsWorkDetails`)}),(0,B.jsx)(v,{page:S(`project-work`,JSON.stringify([n.projectId,n.id]),n.title)})]}),(0,B.jsxs)(y,{children:[n.id,` · `,M(`projectsWorkVersion`),` `,n.version]})]}),(0,B.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-6 overflow-y-auto px-5 py-6 sm:px-7`,children:[(0,B.jsxs)(`section`,{className:`space-y-3`,children:[(0,B.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkTitle`)}),(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value)}),(0,B.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkDescription`)}),(0,B.jsx)(T,{className:`min-h-28`,value:d,onChange:e=>f(e.target.value)}),(0,B.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:M(`projectsStatus`)}),(0,B.jsxs)(R,{value:p,onValueChange:m,children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:s.map(e=>(0,B.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:M(`projectsWorkAttention`)}),(0,B.jsxs)(R,{value:h,onValueChange:e=>g(e),children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsxs)(I,{children:[(0,B.jsx)(L,{value:`none`,children:M(`projectsWorkAttention_none`)}),(0,B.jsx)(L,{value:`blocked`,children:M(`projectsWorkAttention_blocked`)}),(0,B.jsx)(L,{value:`awaiting-user`,children:M(`projectsWorkAttention_awaiting-user`)})]})]})]})]})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:M(`projectsWorkArtifacts`)}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[n.artifacts.map(e=>(0,B.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-border/60 p-2`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 rounded-lg px-2 py-1 text-left hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>o(e.path,e.label??e.path),children:[(0,B.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-sm font-medium`,children:[(0,B.jsx)(re,{className:`h-3.5 w-3.5 shrink-0`}),e.label??e.path]}),(0,B.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.path})]}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsWorkUnlinkArtifact`),onClick:()=>void A(()=>c.unlinkArtifact.mutateAsync({workItemId:n.id,artifactLinkId:e.id})),children:(0,B.jsx)(ke,{className:`h-4 w-4`})})]},e.id)),n.artifacts.length?null:(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:M(`projectsWorkNoArtifacts`)})]}),(0,B.jsxs)(`div`,{className:`mt-3 grid gap-2 sm:grid-cols-[1fr_12rem_auto]`,children:[(0,B.jsx)(t,{value:b,onChange:e=>x(e.target.value),placeholder:M(`projectsWorkArtifactPath`)}),(0,B.jsx)(t,{value:C,onChange:e=>w(e.target.value),placeholder:M(`projectsWorkArtifactLabel`)}),(0,B.jsxs)(a,{variant:`outline`,onClick:()=>void j(),disabled:!b.trim()||c.linkArtifact.isPending,children:[(0,B.jsx)(ee,{className:`mr-2 h-4 w-4`}),M(`projectsWorkLinkArtifact`)]})]})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:M(`projectsActivity`)}),(0,B.jsx)(`ol`,{className:`space-y-2`,children:e.map(e=>(0,B.jsxs)(`li`,{className:`rounded-xl bg-muted/35 px-3 py-2 text-sm`,children:[(0,B.jsx)(`span`,{className:`font-medium`,children:M(`projectsWorkActivity_${e.type}`)}),(0,B.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[e.actor.kind,` ·`,` `,new Date(e.createdAt).toLocaleString()]})]},e.id))})]})]}),(0,B.jsxs)(_,{className:`shrink-0 border-t border-border/60 bg-background px-5 py-4 sm:px-7`,children:[n.deletedAt?(0,B.jsx)(a,{variant:`outline`,onClick:()=>void A(()=>c.restoreItem.mutateAsync(n.id)),children:M(`projectsRestore`)}):(0,B.jsxs)(a,{variant:`destructive`,onClick:()=>k(!0),children:[(0,B.jsx)(se,{className:`mr-2 h-4 w-4`}),M(`projectsDelete`)]}),(0,B.jsx)(a,{onClick:()=>void te(),disabled:!l.trim()||c.updateItem.isPending,children:M(`save`)})]}),(0,B.jsx)(be,{open:E,onOpenChange:k,title:M(`projectsDeleteWorkItem`),description:M(`projectsDeleteWorkItemDescription`),confirmLabel:M(`projectsDelete`),variant:`destructive`,onCancel:()=>k(!1),onConfirm:()=>void A(()=>c.deleteItem.mutateAsync(n.id),r)})]})}var Je=[`backlog`,`unstarted`,`started`,`completed`,`canceled`];function Ye({open:e,onOpenChange:n,projectId:r,states:o}){let s=X(r),c=Le(o),[l,u]=(0,z.useState)(``),[d,f]=(0,z.useState)(`unstarted`),[p,m]=(0,z.useState)(null),[h,g]=(0,z.useState)(``),_=async e=>{try{await e()}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkActionFailed`))}},v=async()=>{l.trim()&&await _(async()=>{await s.createState.mutateAsync({name:l.trim(),category:d}),u(``)})},y=async(e,t)=>{let n=c[e],r=c[e+t];!n||!r||await _(async()=>{await s.updateState.mutateAsync({stateId:n.id,patch:{position:r.position}}),await s.updateState.mutateAsync({stateId:r.id,patch:{position:n.position}})})};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(ge,{open:e,onOpenChange:n,children:(0,B.jsxs)(pe,{className:`max-h-[85vh] overflow-y-auto sm:max-w-2xl`,children:[(0,B.jsxs)(de,{children:[(0,B.jsx)(me,{children:M(`projectsWorkStateSettings`)}),(0,B.jsx)(he,{children:M(`projectsWorkStateSettingsDescription`)})]}),(0,B.jsx)(`div`,{className:`space-y-2`,children:c.map((e,n)=>(0,B.jsxs)(`div`,{className:`grid gap-2 rounded-xl border border-border/60 p-3 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,B.jsx)(t,{"aria-label":M(`projectsWorkStateName`),defaultValue:$(e.name),onBlur:t=>{let n=t.currentTarget.value.trim();n&&n!==$(e.name)&&_(()=>s.updateState.mutateAsync({stateId:e.id,patch:{name:n}}))}}),(0,B.jsxs)(R,{value:e.category,onValueChange:t=>void _(()=>s.updateState.mutateAsync({stateId:e.id,patch:{category:t}})),children:[(0,B.jsx)(F,{"aria-label":M(`projectsWorkStateCategory`),children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:Je.map(e=>(0,B.jsx)(L,{value:e,children:M(`projectsWorkCategory_${e}`)},e))})]}),(0,B.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsMoveUp`),disabled:n===0,onClick:()=>void y(n,-1),children:(0,B.jsx)(te,{className:`h-4 w-4`})}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsMoveDown`),disabled:n===c.length-1,onClick:()=>void y(n,1),children:(0,B.jsx)(j,{className:`h-4 w-4`})}),(0,B.jsx)(a,{size:`icon`,variant:`ghost`,"aria-label":M(`projectsDeleteState`),disabled:c.length<=1,onClick:()=>{m(e),g(``)},children:(0,B.jsx)(se,{className:`h-4 w-4`})})]}),(0,B.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground sm:col-span-3`,children:[(0,B.jsx)(`input`,{type:`radio`,name:`default-state`,checked:e.isDefault,onChange:()=>void _(()=>s.updateState.mutateAsync({stateId:e.id,patch:{isDefault:!0}}))}),M(`projectsWorkDefaultState`)]})]},e.id))}),(0,B.jsxs)(`div`,{className:`grid gap-2 border-t border-border/60 pt-4 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value),placeholder:M(`projectsWorkNewState`)}),(0,B.jsxs)(R,{value:d,onValueChange:e=>f(e),children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{})}),(0,B.jsx)(I,{children:Je.map(e=>(0,B.jsx)(L,{value:e,children:M(`projectsWorkCategory_${e}`)},e))})]}),(0,B.jsxs)(a,{onClick:()=>void v(),disabled:!l.trim()||s.createState.isPending,children:[(0,B.jsx)(ae,{className:`mr-2 h-4 w-4`}),M(`projectsAdd`)]})]})]})}),(0,B.jsx)(ge,{open:!!p,onOpenChange:e=>{e||m(null)},children:(0,B.jsxs)(pe,{children:[(0,B.jsxs)(de,{children:[(0,B.jsx)(me,{children:M(`projectsDeleteState`)}),(0,B.jsx)(he,{children:M(`projectsDeleteStateDescription`)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:M(`projectsWorkStateMigration`)}),(0,B.jsxs)(R,{value:h,onValueChange:g,children:[(0,B.jsx)(F,{children:(0,B.jsx)(P,{placeholder:M(`projectsWorkStateMigrationOptional`)})}),(0,B.jsx)(I,{children:c.filter(e=>e.id!==p?.id).map(e=>(0,B.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,B.jsxs)(fe,{children:[(0,B.jsx)(a,{variant:`outline`,onClick:()=>m(null),children:M(`cancel`)}),(0,B.jsx)(a,{variant:`destructive`,onClick:()=>{p&&_(async()=>{await s.deleteState.mutateAsync({stateId:p.id,migrateToStateId:h||null}),m(null)})},children:M(`projectsDelete`)})]})]})})]})}function Xe({startedProgress:e,state:t}){if(t.category===`backlog`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`backlog`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,B.jsx)(ne,{className:`h-4 w-4`})});if(t.category===`unstarted`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`unstarted`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground`,children:(0,B.jsx)(Ee,{className:`h-4 w-4`,strokeWidth:2})});if(t.category===`completed`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`completed`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-emerald-600 dark:text-emerald-400`,children:(0,B.jsx)(E,{className:`h-4 w-4`,strokeWidth:2.25})});if(t.category===`canceled`)return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`canceled`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,B.jsx)(Te,{className:`h-4 w-4`})});let n=Math.round((e??.5)*100),r=n>=67?`text-emerald-600 dark:text-emerald-400`:n>=40?`text-orange-500 dark:text-orange-400`:`text-amber-500 dark:text-amber-400`;return(0,B.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`started`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center ${r}`,children:(0,B.jsxs)(`svg`,{className:`h-4 w-4`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,stroke:`currentColor`,strokeWidth:`1.75`,opacity:`0.22`}),(0,B.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,pathLength:`100`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`${n} ${100-n}`,transform:`rotate(-90 8 8)`})]})})}function Ze({item:e,onOpen:t}){return(0,B.jsxs)(`button`,{type:`button`,className:`w-full rounded-xl border border-border/50 bg-card p-3 text-left text-sm shadow-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:t,children:[(0,B.jsx)(`span`,{className:`block font-medium`,children:e.title}),(0,B.jsxs)(`span`,{className:`mt-1 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,B.jsx)(`span`,{children:$(e.state.name)}),e.attention===`none`?null:(0,B.jsx)(`span`,{className:`rounded-full bg-amber-500/15 px-2 py-0.5 text-amber-700 dark:text-amber-300`,children:M(`projectsWorkAttention_${e.attention}`)}),e.deletedAt?(0,B.jsx)(`span`,{children:M(`projectsDeleted`)}):null]})]})}function Qe({hasNextPage:e,isError:t,isFetchingNextPage:n,isLoading:r,items:i,onLoadMore:o,onOpenWorkItem:s}){return r?(0,B.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:M(`projectsLoading`)}):t?(0,B.jsx)(`p`,{className:`py-3 text-xs text-destructive`,children:M(`projectsLoadFailed`)}):(0,B.jsxs)(B.Fragment,{children:[i.length?i.map(e=>(0,B.jsx)(Ze,{item:e,onOpen:()=>s(e.id)},e.id)):(0,B.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:M(`projectsNoData`)}),e?(0,B.jsx)(a,{type:`button`,variant:`ghost`,size:`sm`,className:`w-full`,disabled:n,onClick:o,children:M(n?`projectsLoading`:`projectsWorkLoadMore`)}):null]})}function $e({includeDeleted:e,onOpenWorkItem:t,state:n,startedProgress:r,view:i}){let[a,o]=(0,z.useState)(!1),s=je(n.projectId,{stateId:n.id,includeDeleted:e,limit:20}),c=s.data?.pages.flatMap(e=>e.items)??[],l=s.data?.pages[0]?.total;return(0,B.jsxs)(`section`,{className:i===`board`?`flex h-full min-h-0 min-w-0 flex-col overflow-hidden`:`min-w-0`,"aria-label":$(n.name),children:[(0,B.jsxs)(`button`,{type:`button`,className:`flex w-full shrink-0 items-center gap-2 rounded-lg px-1 py-2 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,"aria-expanded":!a,onClick:()=>o(e=>!e),children:[a?(0,B.jsx)(A,{className:`h-4 w-4 shrink-0`}):(0,B.jsx)(j,{className:`h-4 w-4 shrink-0`}),(0,B.jsx)(Xe,{state:n,startedProgress:r}),(0,B.jsx)(`span`,{className:`min-w-0 truncate text-sm font-semibold`,children:$(n.name)}),(0,B.jsx)(`span`,{className:`ml-0.5 shrink-0 text-xs font-medium tabular-nums text-muted-foreground`,children:l??`…`})]}),a?null:(0,B.jsx)(`div`,{className:i===`board`?`min-h-0 flex-1 space-y-2 overflow-y-auto px-1 pb-3`:`space-y-2 px-1 pb-3`,children:(0,B.jsx)(Qe,{hasNextPage:s.hasNextPage,isError:s.isError,isFetchingNextPage:s.isFetchingNextPage,isLoading:s.isLoading,items:c,onLoadMore:()=>void s.fetchNextPage(),onOpenWorkItem:t})})]})}function et({onOpenWorkItem:e,projectId:n}){let[r,o]=(0,z.useState)(`list`),[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(``),[d,f]=(0,z.useState)(!1);Z(n);let p=Ne(n),m=X(n),h=async()=>{if(l.trim())try{let t=await m.createItem.mutateAsync({title:l.trim()});u(``),e(t.id)}catch(e){i.error(e instanceof Error?e.message:M(`projectsWorkItemCreateFailed`))}};if(p.isLoading)return(0,B.jsx)(`div`,{className:`rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:M(`projectsLoading`)});if(p.isError)return(0,B.jsx)(`div`,{className:`rounded-xl border border-destructive/40 p-5 text-sm text-destructive`,children:M(`projectsLoadFailed`)});let g=Le(p.data??[]),_=ze(p.data??[]),v=g.filter(e=>e.category===`started`),y=new Map(v.map((e,t)=>[e.id,(t+1)/(v.length+1)]));return(0,B.jsxs)(`section`,{"aria-label":M(`projectsWork`),className:`min-w-0 space-y-4`,children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,B.jsxs)(`div`,{className:`flex min-w-[16rem] flex-1 gap-2`,children:[(0,B.jsx)(t,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h()},placeholder:M(`projectsWorkNewItem`)}),(0,B.jsxs)(a,{onClick:()=>void h(),disabled:!l.trim()||m.createItem.isPending,children:[(0,B.jsx)(ae,{className:`mr-2 h-4 w-4`}),M(`projectsCreate`)]})]}),(0,B.jsxs)(`div`,{className:`flex items-center gap-1 rounded-xl bg-muted/40 p-1`,role:`group`,"aria-label":M(`projectsWorkViews`),children:[(0,B.jsxs)(a,{size:`sm`,variant:r===`list`?`secondary`:`ghost`,"aria-pressed":r===`list`,onClick:()=>o(`list`),children:[(0,B.jsx)(Oe,{className:`mr-2 h-4 w-4`}),M(`projectsWorkList`)]}),(0,B.jsxs)(a,{size:`sm`,variant:r===`board`?`secondary`:`ghost`,"aria-pressed":r===`board`,onClick:()=>o(`board`),children:[(0,B.jsx)(De,{className:`mr-2 h-4 w-4`}),M(`projectsWorkBoard`)]})]}),(0,B.jsxs)(a,{variant:`outline`,size:`sm`,onClick:()=>f(!0),children:[(0,B.jsx)(oe,{className:`mr-2 h-4 w-4`}),M(`projectsWorkStateSettings`)]})]}),(0,B.jsxs)(`label`,{className:`flex w-fit items-center gap-2 text-xs text-muted-foreground`,children:[(0,B.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked)}),M(`projectsWorkShowDeleted`)]}),r===`list`?(0,B.jsx)(`div`,{className:`space-y-3`,children:_.map(t=>(0,B.jsx)($e,{state:t,startedProgress:y.get(t.id)??null,view:r,includeDeleted:s,onOpenWorkItem:e},t.id))}):null,r===`board`?(0,B.jsx)(`div`,{className:`grid h-[calc(100dvh-17rem)] min-h-[28rem] max-h-[52rem] min-w-0 auto-cols-[minmax(18rem,1fr)] grid-flow-col items-stretch gap-3 overflow-x-auto overflow-y-hidden pb-2`,children:g.map(t=>(0,B.jsx)($e,{state:t,startedProgress:y.get(t.id)??null,view:r,includeDeleted:s,onOpenWorkItem:e},t.id))}):null,(0,B.jsx)(Ye,{open:d,onOpenChange:f,projectId:n,states:g})]})}var tt=e=>[`project-agreement`,e],nt=e=>[`project-skills`,e];function rt(e){return r({queryKey:tt(e??``),enabled:!!e,queryFn:async()=>await n.projects.getAgreement(e)})}function it(e){return r({queryKey:nt(e??``),enabled:!!e,queryFn:async()=>await n.projects.listProjectSkills(e)})}function at(e){return e===`overview`||e===`work`||e===`artifacts`||e===`skills`||e===`agreement`}var ot=[`overview`,`work`,`artifacts`,`skills`,`agreement`];function st({resourceId:e,resourceWorkId:t}={}){let n=w(),{projectId:r,tab:i}=f(),a=e??r,[o,s]=(0,z.useState)(`overview`),c=e?o:i,l=d(),{state:u}=p(),_=g(),{isMobile:v}=ie(),y=h(),b=e=>n.pageResourceManager.open(S(`project-work`,JSON.stringify([a,e]),e),`default`,l),x=y.data?.projects??[],C=x.find(e=>e.id===a)??null,T=at(c)?c:null,E=rt(T===`agreement`?C?.id??null:null),D=it(T===`skills`?C?.id??null:null);if(y.isLoading)return(0,B.jsx)(`main`,{className:`flex h-full items-center justify-center p-6 text-sm text-muted-foreground`,children:M(`projectsLoading`)});if(y.isError)return(0,B.jsxs)(`main`,{className:`p-6 text-sm text-destructive`,children:[M(`projectsLoadFailed`),`: `,y.error.message]});if(e&&!C)return(0,B.jsx)(`p`,{role:`alert`,className:`p-4`,children:M(`resourceNotFound`)});if(!x.length)return(0,B.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:M(`projectsEmpty`)});if(!C||!T)return(0,B.jsxs)(`main`,{className:`space-y-3 p-4 text-sm text-muted-foreground sm:p-6`,children:[(0,B.jsx)(`label`,{htmlFor:`project-home-selection`,className:`block font-medium text-foreground`,children:M(`projectsChoose`)}),(0,B.jsxs)(`select`,{id:`project-home-selection`,value:``,onChange:e=>l(`/projects/${encodeURIComponent(e.target.value)}/overview`,{state:u}),className:`min-h-11 w-full rounded-xl border border-border bg-card px-3 text-base text-foreground`,children:[(0,B.jsx)(`option`,{value:``,disabled:!0,children:M(`projectsChoose`)}),x.map(e=>(0,B.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]});let O=(e,t)=>_.chatThreadManager.openFilePreview({path:e,label:t,viewMode:`preview`,previewViewer:`rendered`});return t?(0,B.jsx)(Ke,{embedded:!0,projectId:C.id,projectRoot:C.rootPath,workItemId:t,onOpenChange:e=>{e||l(`/projects/${encodeURIComponent(C.id)}/work`)},onOpenArtifact:O}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`main`,{className:`h-full min-w-0 flex-1 overflow-y-auto p-3 sm:p-4 md:p-6`,children:(0,B.jsxs)(`div`,{className:`mx-auto max-w-6xl space-y-4`,children:[(0,B.jsxs)(`header`,{className:`rounded-2xl border border-border/60 bg-card p-3 sm:p-4`,children:[(0,B.jsx)(`h1`,{className:`text-lg font-semibold`,children:C.name}),(0,B.jsx)(`p`,{className:`mt-1 break-all text-xs text-muted-foreground`,children:C.rootPath})]}),(0,B.jsxs)(ye,{value:T,onValueChange:t=>e&&at(t)?s(t):l(`/projects/${encodeURIComponent(C.id)}/${t}`,{state:u}),children:[(0,B.jsx)(`div`,{className:`min-w-0 overflow-x-auto pb-1`,children:(0,B.jsx)(ve,{className:`w-max`,children:ot.map(e=>(0,B.jsx)(_e,{value:e,children:M(`projects${e[0].toUpperCase()}${e.slice(1)}`)},e))})}),(0,B.jsx)(N,{value:`overview`,className:`mt-4`,children:(0,B.jsx)(We,{projectId:C.id,onOpenArtifact:(e,t)=>O(Q(C.rootPath,e),t),onOpenWorkItem:b})}),(0,B.jsx)(N,{value:`work`,className:`mt-4`,children:(0,B.jsx)(et,{projectId:C.id,onOpenWorkItem:b})}),(0,B.jsx)(N,{value:`artifacts`,className:`mt-4`,children:(0,B.jsx)(He,{projectId:C.id,onOpenFile:(e,t)=>O(Q(C.rootPath,e),t)})}),(0,B.jsx)(N,{value:`skills`,className:`mt-4`,children:(0,B.jsx)(Ge,{skills:D.data??[],isLoading:D.isLoading,isError:D.isError,onOpen:e=>n.pageResourceManager.open(S(`skill`,e.ref,e.name),`default`,l)})}),(0,B.jsx)(N,{value:`agreement`,className:`mt-4`,children:(0,B.jsx)(Ae,{agreement:E.data,isLoading:E.isLoading,isError:E.isError,onOpenFile:(e,t)=>O(Q(C.rootPath,e),t)})})]})]})}),!e&&(0,B.jsx)(m,{layoutMode:v?`mobile`:`desktop`,sessionKey:null,projectRoot:C.rootPath})]})}export{st as ProjectsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{_n as t,ur as n,xr as r}from"./api-CXWxExzS.js";import{S as i,b as a,r as o,v as s,x as c,y as l}from"./context-menu-
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{_n as t,ur as n,xr as r}from"./api-CXWxExzS.js";import{S as i,b as a,r as o,v as s,x as c,y as l}from"./context-menu-C6m-WNpl.js";var u=e(r(),1),d=n(),f=`2rem`;function p(e){return`min(${e}, max(0px, calc(var(--radix-popover-content-available-height, 100vh) - ${f})))`}var m=p(`24rem`),h=c,g=i,_=s,v=u.forwardRef(({className:e,variant:n=`default`,matchTriggerWidth:r=!1,sideOffset:i=8,align:s=`start`,collisionPadding:c=12,style:u,...f},p)=>(0,d.jsx)(a,{children:(0,d.jsx)(l,{ref:p,"data-theme-overlay":n===`menu`?`menu`:`popover`,sideOffset:i,align:s,collisionPadding:c,className:t(`z-[var(--z-popover,10100)] w-72 overflow-x-hidden overflow-y-auto rounded-xl border border-border/40 bg-popover p-4 text-popover-foreground shadow-floating animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,e,n===`menu`&&`w-max min-w-52 max-w-[min(18rem,calc(100vw-16px))] overflow-y-auto rounded-xl border border-border/40 bg-popover p-1 text-popover-foreground shadow-floating outline-none`),style:{maxHeight:m,...r&&{width:`var(--radix-popover-trigger-width)`,minWidth:0,maxWidth:`var(--radix-popover-content-available-width)`},...u},...f,onEscapeKeyDown:e=>{o(e)||f.onEscapeKeyDown?.(e)}})}));v.displayName=l.displayName;var y=[`off`,`minimal`,`low`,`medium`,`high`,`adaptive`,`xhigh`],b=new Set(y);function x(e){if(!e||e.length===0)return[];let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t]}function S(e,t){let n=e.trim(),r=t.trim();if(!n||!r)return n;let i=`${r}/`;return n.startsWith(i)?n.slice(i.length):n}function C(e,t){let n=e.trim();if(!n)return``;for(let e of t)n=S(n,e);return n.trim()}function w(e,t){let n=t.trim(),r=e.trim();return n?r?`${r}/${n}`:n:``}function T(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t&&b.has(t)?t:null}function E(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=T(n);!e||t.includes(e)||t.push(e)}return t}function D(e){return e.includes(`off`)?[...e]:[`off`,...e]}function O(e,t){if(!e)return{};let n={};for(let[r,i]of Object.entries(e)){let e=C(r,t);if(!e)continue;let a={},o=E(i?.thinking?.supported);if(o.length>0){let e=T(i?.thinking?.default);a.thinking=e&&o.includes(e)?{supported:o,default:e}:{supported:o}}i?.vision===!0&&(a.vision=!0),(a.thinking||a.vision===!0)&&(n[e]=a)}return n}function k(e){return Object.fromEntries(Object.entries(e).filter(e=>!!e[1].thinking).map(([e,t])=>[e,t.thinking]))}function A(e,t,n){let r=C(t,n);return r?e[r]??null:null}function j(e,t){let n=e.trim();if(!n)return null;let r=null;for(let e of t)for(let t of e.aliases){let i=t.trim();i&&(n===i||n.startsWith(`${i}/`))&&(!r||i.length>r.score)&&(r={name:e.name,score:i.length})}if(r)return r.name;for(let e of t){let t=C(n,e.aliases);if(t&&x(e.models??[]).some(e=>e===t))return e.name}return null}function M(e){return e?e.enabled!==!1&&(e.apiKeyRequired===!1||e.apiKeySet===!0):!1}function N(e){let{providersView:t,templatesView:n,config:r,onlyConfigured:i=!1}=e,a=new Map((n?.providerTemplates??[]).map(e=>[e.providerType,e])),o=Object.values(t?.providers??r?.providers??{}).map(e=>{let{providerId:t}=e,n=e.providerType?a.get(e.providerType):void 0,r=t.trim(),i=x([t,n?.modelPrefix||``,n?.providerType||``]),o=x((e?.models??[]).map(e=>C(e,i))),s={...O(n?.modelConfig,i),...O(e?.modelConfig,i)},c=k(s),l=e?.displayName?.trim(),u=M(e);return{name:t,displayName:l||n?.displayName||t,prefix:r,aliases:i,models:o,modelConfig:s,modelThinking:c,configured:u}});return i?o.filter(e=>e.configured&&e.models.length>0):o}export{p as _,M as a,E as c,D as d,C as f,g,v as h,j as i,T as l,_ as m,N as n,O as o,h as p,w as r,x as s,y as t,A as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,_n as n,ur as r,xr as i}from"./api-CXWxExzS.js";import{t as a}from"./createLucideIcon-C3LSyx-e.js";import{B as o}from"./dist-D9h2cWk3.js";import{s}from"./i18n-ByVUrt9w.js";import{_ as c,f as l,h as u,i as d,m as f,p,r as m}from"./provider-models-
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,_n as n,ur as r,xr as i}from"./api-CXWxExzS.js";import{t as a}from"./createLucideIcon-C3LSyx-e.js";import{B as o}from"./dist-D9h2cWk3.js";import{s}from"./i18n-ByVUrt9w.js";import{_ as c,f as l,h as u,i as d,m as f,p,r as m}from"./provider-models-zGsDUBHG.js";import{a as h,i as g,n as _,r as v,t as y}from"./select-BJ-EjmCz.js";var b=a(`ChevronsUpDown`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),x=e(i(),1),S=r(),C=c(`15rem`);function w(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function T({id:e,value:r,onChange:i,options:a,disabled:s=!1,placeholder:c,className:l,inputClassName:d,emptyText:m,createText:h,toggleLabel:g,maxItems:_=1/0,onEnter:v}){let[y,T]=(0,x.useState)(!1),E=(0,x.useRef)(null);(0,x.useEffect)(()=>{s&&y&&T(!1)},[s,y]);let D=(0,x.useMemo)(()=>w(a),[a]),O=r.trim().toLowerCase(),k=(0,x.useMemo)(()=>{let e=D.map((e,t)=>({option:e,index:t}));O.length>0&&e.sort((e,t)=>{let n=e.option.toLowerCase(),r=t.option.toLowerCase(),i=n===O?0:n.startsWith(O)?1:n.includes(O)?2:3,a=r===O?0:r.startsWith(O)?1:r.includes(O)?2:3;return i===a?e.index-t.index:i-a});let t=e.map(e=>e.option);return Number.isFinite(_)?t.slice(0,Math.max(1,_)):t},[D,O,_]),A=r.trim().length>0&&D.some(e=>e===r.trim()),j=()=>T(!1);return(0,S.jsxs)(p,{open:y&&!s,onOpenChange:e=>T(!s&&e),children:[(0,S.jsx)(f,{asChild:!0,children:(0,S.jsxs)(`div`,{ref:E,className:n(`relative`,l),children:[(0,S.jsx)(t,{id:e,value:r,disabled:s,onFocus:()=>{s||T(!0)},onChange:e=>{i(e.target.value),!y&&!s&&T(!0)},onKeyDown:e=>{e.key===`Enter`&&(v&&(e.preventDefault(),v()),j())},placeholder:c,className:n(`pr-10`,d)}),(0,S.jsx)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>T(e=>!e),disabled:s,className:n(`absolute inset-y-0 right-0 inline-flex w-10 items-center justify-center`,s?`cursor-not-allowed text-gray-300`:`text-gray-400 hover:text-gray-600`),"aria-label":g,children:(0,S.jsx)(b,{className:`h-4 w-4`})})]})}),(0,S.jsx)(u,{align:`start`,className:`flex w-[var(--radix-popover-trigger-width)] min-w-[12rem] flex-col overflow-hidden rounded-xl border border-gray-200 p-0 shadow-lg`,onInteractOutside:e=>{e.target instanceof Node&&E.current?.contains(e.target)&&e.preventDefault()},onOpenAutoFocus:e=>e.preventDefault(),style:{maxHeight:C},children:(0,S.jsxs)(`div`,{className:`custom-scrollbar min-h-0 flex-1 overflow-y-auto py-1`,children:[!A&&r.trim().length>0&&(0,S.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{i(r.trim()),j()},className:`flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[var(--interaction-hover)]`,children:[(0,S.jsx)(o,{className:`h-4 w-4 text-transparent`}),(0,S.jsx)(`span`,{className:`truncate text-gray-700`,children:h.replace(`{value}`,r.trim())})]}),k.map(e=>(0,S.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{i(e),j()},className:`flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[var(--interaction-hover)]`,children:[(0,S.jsx)(o,{className:n(`h-4 w-4`,e===r.trim()?`text-primary`:`text-transparent`)}),(0,S.jsx)(`span`,{className:`truncate text-gray-700`,children:e})]},e)),k.length===0&&r.trim().length===0&&(0,S.jsx)(`div`,{className:`px-3 py-2 text-sm text-gray-500`,children:m})]})})]})}var E=`provider/model`;function D(e){let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t]}function O({id:e,value:n,onChange:r,providerCatalog:i,disabled:a=!1,providerPlaceholder:o,modelPlaceholder:c,className:u}){let[f,p]=(0,x.useState)(``),[b,C]=(0,x.useState)(``),w=i.length>0,O=c??E,k=(0,x.useMemo)(()=>new Map(i.map(e=>[e.name,e])),[i]),A=k.get(f),j=(0,x.useMemo)(()=>A?.aliases??[],[A]),M=(0,x.useMemo)(()=>D(A?.models??[]),[A]);return(0,x.useEffect)(()=>{let e=n.trim();if(!w){p(``),C(e);return}if(!e){C(``),p(e=>k.has(e)?e:``);return}let t=d(e,i)??``,r=k.get(t)?.aliases??[];p(t),C(t?l(e,r):e)},[w,i,k,n]),w?(0,S.jsxs)(`div`,{className:u,children:[(0,S.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,S.jsx)(`div`,{className:`sm:w-[38%] sm:min-w-[170px]`,children:(0,S.jsxs)(y,{value:f,onValueChange:e=>{let t=D(k.get(e)?.models??[])[0]??``;if(p(e),C(t),!t){r(``);return}r(m(k.get(e)?.prefix??e,t))},disabled:a,children:[(0,S.jsx)(g,{className:`h-10 w-full rounded-xl`,children:(0,S.jsx)(h,{placeholder:o??s(`providersSelectPlaceholder`)})}),(0,S.jsx)(_,{children:i.map(e=>(0,S.jsx)(v,{value:e.name,children:e.displayName},e.name))})]})}),(0,S.jsx)(`span`,{className:`hidden h-10 items-center justify-center leading-none text-lg font-semibold text-gray-300 sm:inline-flex`,children:`/`}),(0,S.jsx)(T,{id:e,value:b,onChange:e=>{if(!A){let t=e.trim();C(t),r(t);return}let t=l(e,j);C(t),r(t?m(A.prefix,t):``)},options:M,disabled:a||!f,placeholder:O,className:`sm:flex-1`,inputClassName:`h-10 rounded-xl`,emptyText:s(`modelPickerNoOptions`),createText:s(`modelPickerUseCustom`),toggleLabel:s(`modelPickerToggleOptions`)},f)]}),(0,S.jsx)(`p`,{className:`mt-2 text-xs text-gray-500`,children:s(`modelInputCustomHint`)})]}):(0,S.jsxs)(`div`,{className:u,children:[(0,S.jsxs)(`div`,{className:`rounded-2xl border border-amber-200 bg-amber-50/70 px-4 py-3`,children:[(0,S.jsx)(`p`,{className:`text-sm font-semibold text-amber-950`,children:s(`providersEmptyTitle`)}),(0,S.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-amber-900`,children:s(`providersEmptyDescription`)})]}),(0,S.jsx)(t,{id:e,value:n,disabled:a,onChange:e=>r(e.target.value),placeholder:O,className:`mt-3 h-10 rounded-xl`}),(0,S.jsx)(`p`,{className:`mt-2 text-xs text-gray-500`,children:s(`modelInputCustomHint`)})]})}export{O as t};
|