@sentry/junior-dashboard 0.290.0 → 0.292.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/app.js +3 -3
  2. package/dist/client-manifest.json +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/public/chunks/{AdminPage-htjffg0n.js → AdminPage-fdz3hucf.js} +1 -1
  5. package/dist/public/chunks/{Area-hr2tz6ad.js → Area-f1nin66q.js} +1 -1
  6. package/dist/public/chunks/{AutomationPage-eihr9acm.js → AutomationPage-d5mdkrn9.js} +3 -3
  7. package/dist/public/chunks/{AutomationRunDetails-op6rfaji.js → AutomationRunDetails-hyjcewq8.js} +1 -1
  8. package/dist/public/chunks/AutomationRunsPage-fcez9yb2.js +1 -0
  9. package/dist/public/chunks/AutomationsPage-in07jyvb.js +15 -0
  10. package/dist/public/chunks/{BarChart-cg02osy4.js → BarChart-hdlbq093.js} +1 -1
  11. package/dist/public/chunks/{BoardPage-mbypholh.js → BoardPage-jmv26j4s.js} +1 -1
  12. package/dist/public/chunks/{CodeChangeRow-oyge0uo2.js → CodeChangeRow-enn40527.js} +2 -2
  13. package/dist/public/chunks/CodePage-ous0utk0.js +1 -0
  14. package/dist/public/chunks/{CodeSummaryCards-gikkczl6.js → CodeSummaryCards-d2oxdoq1.js} +1 -1
  15. package/dist/public/chunks/{ConnectionsPage-l2d6sesm.js → ConnectionsPage-lilwyiau.js} +2 -2
  16. package/dist/public/chunks/{DrawerContent-jt25bpic.js → DrawerContent-jg0soa2u.js} +1 -1
  17. package/dist/public/chunks/{FilterBar-h4ab22b1.js → FilterBar-lsllb7tj.js} +1 -1
  18. package/dist/public/chunks/{FormNotice-oukmcfaj.js → FormNotice-mmzuj60h.js} +1 -1
  19. package/dist/public/chunks/{LocationDetailPage-gldsmom2.js → LocationDetailPage-cf82jjul.js} +1 -1
  20. package/dist/public/chunks/{LocationsPage-glec25wm.js → LocationsPage-g9b4zhrs.js} +1 -1
  21. package/dist/public/chunks/{McpSettingsPage-nfv7qia1.js → McpSettingsPage-gibci7qd.js} +1 -1
  22. package/dist/public/chunks/{PeoplePage-kd1ad63d.js → PeoplePage-cphdlfgf.js} +1 -1
  23. package/dist/public/chunks/{PersonProfilePage-diqz6hmw.js → PersonProfilePage-mf6i9tif.js} +1 -1
  24. package/dist/public/chunks/{PersonalTokensPage-mwkwnlc7.js → PersonalTokensPage-iodbv05e.js} +1 -1
  25. package/dist/public/chunks/PluginReportRecordSet-fossppyd.js +1 -0
  26. package/dist/public/chunks/{PluginUserPage-l7q0ylyz.js → PluginUserPage-ismd883z.js} +2 -2
  27. package/dist/public/chunks/RepositoryPage-dwvax7uv.js +1 -0
  28. package/dist/public/chunks/SettingsPage-f9kssan6.js +1 -0
  29. package/dist/public/chunks/{SystemPage-mpp6dtwm.js → SystemPage-a5t28k3w.js} +1 -1
  30. package/dist/public/chunks/{WorkspaceFormPage-o74u0sno.js → WorkspaceFormPage-h21lnuo4.js} +2 -2
  31. package/dist/public/chunks/WorkspacesPage-h0lwq044.js +1 -0
  32. package/dist/public/chunks/{automationFormat-bhjz2hx6.js → automationFormat-nmiq4qj2.js} +1 -1
  33. package/dist/public/chunks/{chart-mxqu3c8e.js → chart-dbzd0ka8.js} +1 -1
  34. package/dist/public/chunks/{code-highlighter-dd09ntlw.js → code-highlighter-lmx9nqyd.js} +1 -1
  35. package/dist/public/chunks/{format-eev8is9c.js → format-c4b0iyrx.js} +2 -2
  36. package/dist/public/chunks/{junior-btnqqkq5.js → junior-gfsokzu9.js} +2 -2
  37. package/dist/public/chunks/{workspaceQueries-i5xdl0za.js → workspaceQueries-l3p6sri7.js} +1 -1
  38. package/dist/public/client-mgf2bxi7.js +165 -0
  39. package/dist/public/styles-6XAAC7O5.css +2 -0
  40. package/dist/tailwind.css +1 -1
  41. package/package.json +4 -4
  42. package/src/client/conversations/ConversationMeta.tsx +127 -34
  43. package/src/client/conversations/ConversationWorkspace.tsx +45 -30
  44. package/src/client/conversations/conversationSections.ts +3 -2
  45. package/src/client/format.ts +1 -0
  46. package/src/client/types.ts +2 -0
  47. package/dist/public/chunks/AutomationRunsPage-sx9tdkxv.js +0 -1
  48. package/dist/public/chunks/AutomationsPage-mnstyn9j.js +0 -15
  49. package/dist/public/chunks/CodePage-ojiokuht.js +0 -1
  50. package/dist/public/chunks/PluginReportRecordSet-ea6phh3k.js +0 -1
  51. package/dist/public/chunks/RepositoryPage-f61pzf0s.js +0 -1
  52. package/dist/public/chunks/SettingsPage-oqgh66n1.js +0 -1
  53. package/dist/public/chunks/WorkspacesPage-kfphmgpt.js +0 -1
  54. package/dist/public/client-ll3qwj84.js +0 -165
  55. package/dist/public/styles-GFFU7LPU.css +0 -2
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-bnnw9q4a.js";import{ot as t,pt as n}from"./vendor-lthmb2su.js";import{C as r,S as i,_ as a,h as o,r as s}from"./vendor-react-ggbyvons.js";import{n as c,t as l}from"./button-loz3etho.js";import{O as u,Pt as d,l as f,lt as p}from"./vendor-icons-mxz7yi04.js";import{t as ee}from"./plus-gndielka.js";import{a as m,n as h,t as g}from"./tooltip-c9bbl0em.js";import{r as te}from"./http-cdq677qt.js";import{t as ne}from"./styles-j0007fov.js";import{t as _}from"./Card-hy4bfgq7.js";import{t as v}from"./skeleton-h6p83ux1.js";import{t as y}from"./PageContentSkeleton-b7dkba0l.js";import{l as re,m as b,t as x}from"./PageHeader-kvp1fo95.js";import{U as S,c as ie,g as C,l as ae,x as w,y as T}from"./format-eev8is9c.js";import{t as oe}from"./PageLayout-l6dhbimv.js";import{t as se}from"./AnchorHeading-cp3vx8qa.js";import{$t as ce,A as E,D,E as O,I as k,L as A,O as j,R as M,T as N,a as P,en as F,j as I,k as L,pt as R}from"../client-ll3qwj84.js";import{t as z}from"./FormNotice-oukmcfaj.js";import{t as B}from"./SelectableRow-j8fwjsjz.js";import{C as V,a as H,d as U,n as W,o as G,r as le,s as ue,t as de,u as fe}from"./chart-mxqu3c8e.js";import{n as pe,t as me}from"./BarChart-cg02osy4.js";import{t as he}from"./ChartHeader-c1zg4xt5.js";import{a as K,i as ge,n as _e,o as q,r as ve,t as ye}from"./workspaceQueries-i5xdl0za.js";var J=/* @__PURE__ */ e(r(),1),Y=i();function be(e){let t=e.snapshot;return/* @__PURE__ */ (0,Y.jsx)(_,{as:`section`,className:`mb-0`,padding:`md`,variant:`section`,children:/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`grid gap-4`,children:[/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`min-w-0 grid gap-1`,children:[/* @__PURE__ */ (0,Y.jsx)(se,{anchor:`base-sandbox`,className:`m-0 text-base font-semibold text-dashboard-text`,title:`Base Sandbox`}),/* @__PURE__ */ (0,Y.jsx)(`p`,{className:`m-0 text-sm leading-relaxed text-dashboard-text-muted`,children:`The base snapshot is inherited by all Workspaces.`})]}),/* @__PURE__ */ (0,Y.jsxs)(`dl`,{className:`m-0 grid grid-cols-[max-content_minmax(0,1fr)] gap-x-6 gap-y-2 text-sm`,children:[/* @__PURE__ */ (0,Y.jsx)(X,{label:`Size`,children:q(e.defaultVcpus)}),t?/* @__PURE__ */ (0,Y.jsxs)(Y.Fragment,{children:[t.dependencyCount==null?null:/* @__PURE__ */ (0,Y.jsx)(X,{label:`Dependencies`,children:t.dependencyCount}),/* @__PURE__ */ (0,Y.jsx)(X,{label:`Build time`,children:C(t.buildDurationMs)}),/* @__PURE__ */ (0,Y.jsx)(X,{label:`Generated`,children:/* @__PURE__ */ (0,Y.jsx)(`span`,{title:w(t.generatedAt),children:T(t.generatedAt)})}),/* @__PURE__ */ (0,Y.jsx)(X,{label:`Snapshot`,children:/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`break-all font-mono text-xs`,children:t.id})})]}):/* @__PURE__ */ (0,Y.jsx)(X,{label:`Snapshot`,children:/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:`Not built yet. The first Sandbox without a Workspace builds it.`})})]})]})})}function X(e){return/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`contents`,children:[/* @__PURE__ */ (0,Y.jsx)(`dt`,{className:`text-dashboard-text-muted`,children:e.label}),/* @__PURE__ */ (0,Y.jsx)(`dd`,{className:`m-0 min-w-0 tabular-nums text-dashboard-text`,children:e.children})]})}function xe(e){let[r,i]=(0,J.useState)(!0),a=n(),o=F(),s=t({mutationFn:()=>te(`/api/workspaces/${encodeURIComponent(e.workspace.id)}`),onSuccess:async()=>{await a.cancelQueries({queryKey:K}),a.setQueryData(K,t=>t&&{...t,workspaces:t.workspaces.filter(t=>t.id!==e.workspace.id)}),e.onDeleted(),a.removeQueries({queryKey:ge(e.workspace.id)}),o.add({title:`Workspace deleted`,description:e.workspace.name,type:`success`}),i(!1)}});return/* @__PURE__ */ (0,Y.jsx)(N,{open:r,onOpenChange:(e,t)=>{s.isPending?t.cancel():i(e)},onOpenChangeComplete:t=>{t||e.onClose()},children:/* @__PURE__ */ (0,Y.jsxs)(j,{finalFocus:e.returnFocus,children:[/* @__PURE__ */ (0,Y.jsx)(I,{children:`Delete Workspace?`}),/* @__PURE__ */ (0,Y.jsxs)(L,{children:[`Delete`,` `,/* @__PURE__ */ (0,Y.jsx)(`strong`,{className:`font-medium text-dashboard-text`,children:e.workspace.name}),`? Active conversations keep their current Sandbox until the next switch.`]}),s.error?/* @__PURE__ */ (0,Y.jsx)(z,{tone:`error`,title:ye(s.error,`Could not delete the Workspace. Try again.`)}):null,/* @__PURE__ */ (0,Y.jsxs)(E,{children:[/* @__PURE__ */ (0,Y.jsx)(D,{disabled:s.isPending,children:`Cancel`}),/* @__PURE__ */ (0,Y.jsx)(O,{disabled:s.isPending,onClick:()=>s.mutate(),variant:`danger`,children:s.isPending?`Deleting…`:`Delete Workspace`})]})]})})}const Z=`var(--color-violet-400)`,Q={count:{color:Z,label:`Usage`}};function Se(e){let t=e.days.map(e=>e.count),n=Math.max(1,...t),r=fe(t),i=t.reduce((e,t)=>e+t,0),a=i>0;return/* @__PURE__ */ (0,Y.jsxs)(_,{children:[/* @__PURE__ */ (0,Y.jsx)(he,{description:`Successful switches into “${e.workspaceName}”.`,title:`Usage`,total:ae(i),totalLabel:`last ${e.range} days`}),/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`relative px-2 py-3 sm:px-4 sm:py-4`,children:[/* @__PURE__ */ (0,Y.jsx)(de,{className:`aspect-auto h-50 w-full`,config:Q,children:/* @__PURE__ */ (0,Y.jsxs)(me,{"aria-label":`Usage for ${e.workspaceName} during the last ${e.range} days`,data:e.days,margin:U,role:`img`,children:[/* @__PURE__ */ (0,Y.jsx)(V,{strokeDasharray:`3 5`,vertical:!1}),/* @__PURE__ */ (0,Y.jsx)(ue,{maximum:n}),/* @__PURE__ */ (0,Y.jsx)(G,{keys:e.days.map(e=>e.date)}),/* @__PURE__ */ (0,Y.jsx)(W,{content:/* @__PURE__ */ (0,Y.jsx)(H,{rows:e=>[[`usage`,e.count]]})}),/* @__PURE__ */ (0,Y.jsx)(pe,{dataKey:`count`,fill:`var(--color-count)`,fillOpacity:.82,isAnimationActive:!1,maxBarSize:13,minPointSize:e=>e?2:0,radius:2}),/* @__PURE__ */ (0,Y.jsx)(le,{average:r,format:ie,stroke:Z})]})}),a?null:/* @__PURE__ */ (0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-0 grid place-items-center pt-12 font-sans text-xs text-dashboard-text-muted`,children:`No usage in this period.`})]})]})}function Ce(e,t=Date.now()){let n=new Date(t);return n.setUTCHours(0,0,0,0),Array.from({length:e},(t,r)=>{let i=new Date(n);return i.setUTCDate(n.getUTCDate()-(e-1-r)),i.toISOString().slice(0,10)})}function we(e){let t=/* @__PURE__ */ new Map;for(let n of e.stats)n.namespace===`junior`&&n.metric===`workspace_switch`&&n.name===e.workspaceId&&t.set(n.date,(t.get(n.date)??0)+n.count);return Ce(e.range,e.nowMs).map(e=>({count:t.get(e)??0,date:e}))}function Te(e){let t=_e(e.workspaceId),n=ce(),r=t.data??e.workspace,i=!r&&(t.isError||e.listError);return/* @__PURE__ */ (0,Y.jsx)(M,{actions:r?/* @__PURE__ */ (0,Y.jsxs)(Y.Fragment,{children:[/* @__PURE__ */ (0,Y.jsxs)(g,{children:[/* @__PURE__ */ (0,Y.jsx)(m,{render:/* @__PURE__ */ (0,Y.jsx)(s,{"aria-label":`Edit ${r.name}`,className:c({size:`icon`}),to:`${S(r.id)}/edit`,children:/* @__PURE__ */ (0,Y.jsx)(u,{"aria-hidden":`true`,size:15})})}),/* @__PURE__ */ (0,Y.jsx)(h,{size:`compact`,children:`Edit Workspace`})]}),/* @__PURE__ */ (0,Y.jsxs)(g,{children:[/* @__PURE__ */ (0,Y.jsx)(m,{render:/* @__PURE__ */ (0,Y.jsx)(l,{"aria-label":`Delete ${r.name}`,onClick:t=>e.onDelete(r,t.currentTarget),size:`icon`,children:/* @__PURE__ */ (0,Y.jsx)(f,{"aria-hidden":`true`,size:15})})}),/* @__PURE__ */ (0,Y.jsx)(h,{size:`compact`,children:`Delete Workspace`})]})]}):void 0,label:`Workspace details`,onClose:e.onClose,sheetTitle:r?.name,title:/* @__PURE__ */ (0,Y.jsx)(`h2`,{className:`m-0 break-words font-display text-base font-medium text-dashboard-text`,children:r?.name??`Workspace details`}),children:/* @__PURE__ */ (0,Y.jsx)(`div`,{className:`p-4 [overflow-wrap:anywhere]`,children:r?/* @__PURE__ */ (0,Y.jsx)(Ee,{defaultVcpus:e.defaultVcpus,error:!!n.error,loading:n.isPending,snapshot:t.data?`ready`:t.isError?`error`:`loading`,stats:n.data,workspace:r}):i?/* @__PURE__ */ (0,Y.jsx)(R,{children:`Workspace not found. It may have been deleted.`}):/* @__PURE__ */ (0,Y.jsx)(y,{label:`Loading Workspace details`,variant:`panel`})})})}function Ee(e){let{workspace:t}=e;return/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`grid min-w-0 gap-4`,children:[/* @__PURE__ */ (0,Y.jsxs)(A,{children:[/* @__PURE__ */ (0,Y.jsx)(k,{label:`Repositories`,children:t.repos.length===0?/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:`None`}):/* @__PURE__ */ (0,Y.jsx)(`ul`,{className:`m-0 grid list-none gap-1.5 p-0`,children:t.repos.map(e=>/* @__PURE__ */ (0,Y.jsxs)(`li`,{className:`min-w-0`,children:[/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`block font-mono text-xs text-dashboard-text`,children:[e.provider,`:`,e.repo]}),/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`block font-mono text-xs text-dashboard-text-muted`,children:e.checkoutPath})]},`${e.provider}:${e.repo}`))})}),/* @__PURE__ */ (0,Y.jsxs)(k,{label:`Sandbox size`,children:[q(t.vcpus??e.defaultVcpus),t.vcpus===null?/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:` · default`}):null]}),/* @__PURE__ */ (0,Y.jsx)(k,{label:`Snapshot`,children:/* @__PURE__ */ (0,Y.jsx)(De,{state:e.snapshot,workspace:t})}),/* @__PURE__ */ (0,Y.jsx)(k,{label:`Setup script`,children:t.setupScript.trim()?/* @__PURE__ */ (0,Y.jsx)(`pre`,{className:`m-0 max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-dashboard-fill-soft p-2 font-mono text-xs leading-relaxed text-dashboard-text`,children:t.setupScript}):/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:`None`})})]}),e.stats?/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[e.error?/* @__PURE__ */ (0,Y.jsx)(`p`,{className:`m-0 font-sans text-xs text-rose-200/65`,children:`Workspace usage refresh failed. Showing cached data.`}):null,/* @__PURE__ */ (0,Y.jsx)(Se,{days:we({workspaceId:t.id,range:30,stats:e.stats.stats}),range:30,workspaceName:t.name})]}):/* @__PURE__ */ (0,Y.jsx)(R,{children:e.error?`Workspace usage failed to load.`:e.loading?`Loading Workspace usage.`:`No usage in this period.`})]})}function De(e){if(e.state===`loading`)return/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`grid gap-1.5`,role:`status`,children:[/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`sr-only`,children:`Loading snapshot`}),/* @__PURE__ */ (0,Y.jsx)(v,{className:`h-4 w-36`}),/* @__PURE__ */ (0,Y.jsx)(v,{className:`h-3.5 w-48`})]});if(e.state===`error`)return/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:`Snapshot status could not be loaded.`});let t=e.workspace.snapshot;return t?/* @__PURE__ */ (0,Y.jsxs)(Y.Fragment,{children:[/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`block tabular-nums`,children:[/* @__PURE__ */ (0,Y.jsx)(`span`,{title:w(t.generatedAt),children:T(t.generatedAt)}),` `,`· built in `,C(t.buildDurationMs)]}),/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`block break-all font-mono text-xs text-dashboard-text-muted`,children:t.id})]}):/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`text-dashboard-text-muted`,children:`Not built yet. The first successful prepare builds it.`})}function Oe(e){return/* @__PURE__ */ (0,Y.jsx)(_,{padding:`none`,children:e.workspaces.length===0?/* @__PURE__ */ (0,Y.jsx)(`div`,{className:`p-5`,children:/* @__PURE__ */ (0,Y.jsx)(R,{children:`No Workspaces yet. Create one so agents can switch into a prepared multi-repo Sandbox.`})}):/* @__PURE__ */ (0,Y.jsx)(`ul`,{className:`m-0 list-none p-0`,children:e.workspaces.map(t=>/* @__PURE__ */ (0,Y.jsx)(ke,{defaultVcpus:e.defaultVcpus,onSelect:()=>e.onSelect(t),selected:t.id===e.selectedId,workspace:t},t.id))})})}function ke(e){let{workspace:t}=e;return/* @__PURE__ */ (0,Y.jsx)(`li`,{className:`border-b border-dashboard-border-subtle last:border-b-0`,"data-workspace-id":t.id,children:/* @__PURE__ */ (0,Y.jsx)(B,{className:`px-4 py-3.5`,onSelect:e.onSelect,selected:e.selected,children:/* @__PURE__ */ (0,Y.jsxs)(`button`,{"aria-expanded":e.selected,"aria-label":`View Workspace details: ${t.name}`,className:`flex w-full min-w-0 cursor-pointer items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left focus-visible:outline focus-visible:outline-2 focus-visible:outline-dashboard-focus`,onClick:e.onSelect,type:`button`,children:[/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`grid size-9 shrink-0 place-items-center rounded-md border border-dashboard-border-strong bg-dashboard-fill-soft text-dashboard-accent transition-colors group-hover:border-dashboard-accent/20 group-hover:bg-dashboard-accent/[0.06] group-hover:text-dashboard-accent-text`,children:/* @__PURE__ */ (0,Y.jsx)(p,{"aria-hidden":`true`,size:16})}),/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`font-display text-base font-medium leading-tight text-dashboard-text`,children:t.name}),/* @__PURE__ */ (0,Y.jsxs)(`span`,{className:`font-mono text-xs text-dashboard-text-muted`,children:[t.repos.length,` repo`,t.repos.length===1?``:`s`,` ·`,` `,q(t.vcpus??e.defaultVcpus)]})]}),/* @__PURE__ */ (0,Y.jsx)(`span`,{className:`mt-1.5 block truncate font-mono text-xs text-dashboard-text-muted`,children:t.repos.length?t.repos.map(e=>`${e.provider}:${e.repo}`).join(` · `):`No repositories`})]}),/* @__PURE__ */ (0,Y.jsx)(d,{"aria-hidden":`true`,className:`shrink-0 text-dashboard-text-muted transition-transform group-hover:translate-x-0.5 group-hover:text-dashboard-text`,size:16})]})})})}const $=`/system/workspaces`;function Ae(){let{workspaceId:e}=a(),t=o(),n=(0,J.useRef)(null),r=(0,J.useRef)(null),[i,l]=(0,J.useState)(),u=ve(),d=u.data?.workspaces??[],f=u.data?.defaultVcpus??null,p=d.find(t=>t.id===e);return re(p?.name??`Workspaces`),/* @__PURE__ */ (0,Y.jsxs)(P,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] md:grid-rows-[minmax(0,1fr)]`,children:[/* @__PURE__ */ (0,Y.jsxs)(`div`,{className:ne(`grid h-full min-h-0 min-w-0`,e&&`xl:grid-cols-[minmax(0,1fr)_25rem]`),children:[/* @__PURE__ */ (0,Y.jsx)(`div`,{"aria-label":`Workspaces list`,className:`min-h-0 overflow-y-auto overscroll-contain outline-none focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-dashboard-focus`,ref:n,role:`region`,tabIndex:0,children:/* @__PURE__ */ (0,Y.jsxs)(oe,{children:[/* @__PURE__ */ (0,Y.jsx)(x,{actions:/* @__PURE__ */ (0,Y.jsxs)(s,{className:c(),to:`${$}/new`,children:[/* @__PURE__ */ (0,Y.jsx)(ee,{"aria-hidden":`true`,size:14}),`New Workspace`]}),description:`Named repository recipes ${b()} can switch into without cloning each turn.`,title:`Workspaces`}),u.error?/* @__PURE__ */ (0,Y.jsx)(_,{padding:`sm`,children:/* @__PURE__ */ (0,Y.jsx)(R,{children:`Workspaces failed to load. Try refreshing the dashboard.`})}):u.data?/* @__PURE__ */ (0,Y.jsxs)(Y.Fragment,{children:[/* @__PURE__ */ (0,Y.jsx)(be,{defaultVcpus:f,snapshot:u.data.baselineSnapshot}),/* @__PURE__ */ (0,Y.jsx)(Oe,{defaultVcpus:f,onSelect:n=>t(n.id===e?$:S(n.id)),selectedId:e,workspaces:d})]}):/* @__PURE__ */ (0,Y.jsx)(y,{label:`Loading Workspaces`,variant:`list`})]})}),e?/* @__PURE__ */ (0,Y.jsx)(Te,{defaultVcpus:f,listError:!!u.error,onClose:()=>{let r=e?n.current?.querySelector(`[data-workspace-id="${CSS.escape(e)}"] button`):void 0;t($),(r??n.current)?.focus()},onDelete:(e,t)=>{r.current=t,l(e)},workspace:p,workspaceId:e},e):null]}),i?/* @__PURE__ */ (0,Y.jsx)(xe,{onClose:()=>l(void 0),onDeleted:()=>{e===i.id&&t($)},returnFocus:()=>r.current?.isConnected?r.current:n.current??!1,workspace:i}):null]})}export{Ae as WorkspacesPage};