skypilot-nightly 1.0.0.dev20251008__py3-none-any.whl → 1.0.0.dev20251009__py3-none-any.whl
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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- sky/__init__.py +2 -2
- sky/backends/cloud_vm_ray_backend.py +68 -34
- sky/client/cli/command.py +6 -6
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/1141-3b40c39626f99c89.js +11 -0
- sky/dashboard/out/_next/static/chunks/{9037-d0c00018a5ba198c.js → 1871-49141c317f3a9020.js} +2 -2
- sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +15 -0
- sky/dashboard/out/_next/static/chunks/2755.97300e1362fe7c98.js +26 -0
- sky/dashboard/out/_next/static/chunks/3294.1fafbf42b3bcebff.js +1 -0
- sky/dashboard/out/_next/static/chunks/3785.a19328ba41517b8b.js +1 -0
- sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +15 -0
- sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +13 -0
- sky/dashboard/out/_next/static/chunks/7359-c8d04e06886000b3.js +30 -0
- sky/dashboard/out/_next/static/chunks/8640.5b9475a2d18c5416.js +16 -0
- sky/dashboard/out/_next/static/chunks/{5339.4a881570243431a5.js → 9360.71e83b2ddc844ec2.js} +4 -24
- sky/dashboard/out/_next/static/chunks/9847.3aaca6bb33455140.js +30 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/{[job]-72794fc3fcdd517a.js → [job]-8f058b0346db2aff.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-477555ab7c0b13d8.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/infra/{[context]-6563820e094f68ca.js → [context]-553b8b5cb65e100b.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/{infra-aabba60d57826e0f.js → infra-910a22500c50596f.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/jobs/{[job]-dd64309c3fe67ed2.js → [job]-4f7079dcab6ed653.js} +7 -2
- sky/dashboard/out/_next/static/chunks/pages/jobs/pools/{[pool]-509b2977a6373bf6.js → [pool]-bc979970c247d8f3.js} +7 -2
- sky/dashboard/out/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/users-98d2ed979084162a.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/volumes-835d14ba94808f79.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/workspaces/{[name]-af76bb06dbb3954f.js → [name]-e8688c35c06f0ac5.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/{workspaces-7528cc0ef8c522c5.js → workspaces-69c80d677d3c2949.js} +1 -1
- sky/dashboard/out/_next/static/chunks/webpack-6a5ddd0184bfa22c.js +1 -0
- sky/dashboard/out/_next/static/hIViZcQBkn0HE8SpaSsUU/_buildManifest.js +1 -0
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs/pools/[pool].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/jobs/controller.py +10 -2
- sky/jobs/recovery_strategy.py +3 -1
- sky/metrics/utils.py +28 -17
- sky/provision/kubernetes/instance.py +18 -3
- sky/templates/kubernetes-ray.yml.j2 +1 -1
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/METADATA +36 -36
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/RECORD +57 -57
- sky/dashboard/out/_next/static/MnvNdzHHpiZG1_oKSpbxF/_buildManifest.js +0 -1
- sky/dashboard/out/_next/static/chunks/1141-159df2d4c441a9d1.js +0 -1
- sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js +0 -40
- sky/dashboard/out/_next/static/chunks/3294.93d9336bdc032b3a.js +0 -6
- sky/dashboard/out/_next/static/chunks/3785.0fa442e16dd3f00e.js +0 -1
- sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -21
- sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -10
- sky/dashboard/out/_next/static/chunks/649.b9d7f7d10c1b8c53.js +0 -45
- sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -6
- sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -18
- sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -36
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-e052384df65ef200.js +0 -16
- sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -1
- sky/dashboard/out/_next/static/chunks/webpack-3286453d56f3c0a0.js +0 -1
- /sky/dashboard/out/_next/static/{MnvNdzHHpiZG1_oKSpbxF → hIViZcQBkn0HE8SpaSsUU}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20251008.dist-info → skypilot_nightly-1.0.0.dev20251009.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7359,2369],{27325:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
2
|
+
* @license lucide-react v0.407.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/let r=(0,n(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},16826:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,n(60998).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},6521:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
12
|
+
* @license lucide-react v0.407.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/let r=(0,n(60998).Z)("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]])},23293:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
17
|
+
* @license lucide-react v0.407.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/let r=(0,n(60998).Z)("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]])},13626:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
22
|
+
* @license lucide-react v0.407.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/let r=(0,n(60998).Z)("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]])},6327:function(e,t,n){n.d(t,{x8:function(){return eu},VY:function(){return eo},dk:function(){return ea},aV:function(){return er},h_:function(){return en},fC:function(){return ee},Dx:function(){return ei},xz:function(){return et}});var r=n(67294),o=n(36206),i=n(28771),a=n(25360),u=n(91276),l=n(77342),s=n(46063),c=n(95420),d=n(42651),f=n(9981),p=e=>{let t,n;let{present:o,children:a}=e,u=function(e){var t,n;let[o,i]=r.useState(),a=r.useRef(null),u=r.useRef(e),l=r.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>n[e][t]??e,t));return r.useEffect(()=>{let e=m(a.current);l.current="mounted"===s?e:"none"},[s]),(0,f.b)(()=>{let t=a.current,n=u.current;if(n!==e){let r=l.current,o=m(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),u.current=e}},[e,c]),(0,f.b)(()=>{if(o){let e;let t=o.ownerDocument.defaultView??window,n=n=>{let r=m(a.current).includes(n.animationName);if(n.target===o&&r&&(c("ANIMATION_END"),!u.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(l.current=m(a.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}c("ANIMATION_END")},[o,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:r.useCallback(e=>{a.current=e?getComputedStyle(e):null,i(e)},[])}}(o),l="function"==typeof a?a({present:u.isPresent}):r.Children.only(a),s=(0,i.e)(u.ref,(t=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.ref:(t=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.props.ref:l.props.ref||l.ref);return"function"==typeof a||u.isPresent?r.cloneElement(l,{ref:s}):null};function m(e){return e?.animationName||"none"}p.displayName="Presence";var g=n(75320),y=n(27552),h=n(6223),v=n(23541),N=n(88426),M=n(85893),D="Dialog",[x,R]=(0,a.b)(D),[w,O]=x(D),b=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=r.useRef(null),d=r.useRef(null),[f,p]=(0,l.T)({prop:o,defaultProp:i??!1,onChange:a,caller:D});return(0,M.jsx)(w,{scope:t,triggerRef:c,contentRef:d,contentId:(0,u.M)(),titleId:(0,u.M)(),descriptionId:(0,u.M)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:s,children:n})};b.displayName=D;var j="DialogTrigger",k=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=O(j,n),u=(0,i.e)(t,a.triggerRef);return(0,M.jsx)(g.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":K(a.open),...r,ref:u,onClick:(0,o.M)(e.onClick,a.onOpenToggle)})});k.displayName=j;var I="DialogPortal",[C,E]=x(I,{forceMount:void 0}),_=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:i}=e,a=O(I,t);return(0,M.jsx)(C,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,M.jsx)(p,{present:n||a.open,children:(0,M.jsx)(d.h,{asChild:!0,container:i,children:e})}))})};_.displayName=I;var T="DialogOverlay",F=r.forwardRef((e,t)=>{let n=E(T,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=O(T,e.__scopeDialog);return i.modal?(0,M.jsx)(p,{present:r||i.open,children:(0,M.jsx)(P,{...o,ref:t})}):null});F.displayName=T;var A=(0,N.Z8)("DialogOverlay.RemoveScroll"),P=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=O(T,n);return(0,M.jsx)(h.Z,{as:A,allowPinchZoom:!0,shards:[o.contentRef],children:(0,M.jsx)(g.WV.div,{"data-state":K(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),W="DialogContent",Z=r.forwardRef((e,t)=>{let n=E(W,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=O(W,e.__scopeDialog);return(0,M.jsx)(p,{present:r||i.open,children:i.modal?(0,M.jsx)(U,{...o,ref:t}):(0,M.jsx)(V,{...o,ref:t})})});Z.displayName=W;var U=r.forwardRef((e,t)=>{let n=O(W,e.__scopeDialog),a=r.useRef(null),u=(0,i.e)(t,n.contentRef,a);return r.useEffect(()=>{let e=a.current;if(e)return(0,v.Ry)(e)},[]),(0,M.jsx)(L,{...e,ref:u,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.M)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.M)(e.onFocusOutside,e=>e.preventDefault())})}),V=r.forwardRef((e,t)=>{let n=O(W,e.__scopeDialog),o=r.useRef(!1),i=r.useRef(!1);return(0,M.jsx)(L,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),L=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:u,...l}=e,d=O(W,n),f=r.useRef(null),p=(0,i.e)(t,f);return(0,y.EW)(),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(c.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:u,children:(0,M.jsx)(s.XB,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":K(d.open),...l,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(J,{titleId:d.titleId}),(0,M.jsx)(Q,{contentRef:f,descriptionId:d.descriptionId})]})]})}),S="DialogTitle",q=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=O(S,n);return(0,M.jsx)(g.WV.h2,{id:o.titleId,...r,ref:t})});q.displayName=S;var $="DialogDescription",H=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=O($,n);return(0,M.jsx)(g.WV.p,{id:o.descriptionId,...r,ref:t})});H.displayName=$;var B="DialogClose",z=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=O(B,n);return(0,M.jsx)(g.WV.button,{type:"button",...r,ref:t,onClick:(0,o.M)(e.onClick,()=>i.onOpenChange(!1))})});function K(e){return e?"open":"closed"}z.displayName=B;var X="DialogTitleWarning",[Y,G]=(0,a.k)(X,{contentName:W,titleName:S,docsSlug:"dialog"}),J=({titleId:e})=>{let t=G(X),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
27
|
+
|
|
28
|
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
29
|
+
|
|
30
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=b,et=k,en=_,er=F,eo=Z,ei=q,ea=H,eu=z}}]);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8640],{88507:function(e,n,t){t.d(n,{Z:function(){return r}});/**
|
|
2
|
+
* @license lucide-react v0.407.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/let r=(0,t(60998).Z)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},28586:function(e,n,t){t.d(n,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,t(60998).Z)("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]])},43767:function(e,n,t){t.d(n,{Z:function(){return r}});/**
|
|
12
|
+
* @license lucide-react v0.407.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/let r=(0,t(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},23001:function(e,n,t){t.d(n,{X:function(){return l}});var r=t(67294);function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[n,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let n=()=>{t(window.innerWidth<e)};return n(),window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}},[e]),n}},12003:function(e,n,t){t.d(n,{j:function(){return i}});var r=t(90512);let l=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,u=r.W,i=(e,n)=>t=>{var r;if((null==n?void 0:n.variants)==null)return u(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:i,defaultVariants:a}=n,d=Object.keys(i).map(e=>{let n=null==t?void 0:t[e],r=null==a?void 0:a[e];if(null===n)return null;let u=l(n)||l(r);return i[e][u]}),s=t&&Object.entries(t).reduce((e,n)=>{let[t,r]=n;return void 0===r||(e[t]=r),e},{});return u(e,d,null==n?void 0:null===(r=n.compoundVariants)||void 0===r?void 0:r.reduce((e,n)=>{let{class:t,className:r,...l}=n;return Object.entries(l).every(e=>{let[n,t]=e;return Array.isArray(t)?t.includes({...a,...s}[n]):({...a,...s})[n]===t})?[...e,t,r]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}}}]);
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
2
|
-
* @license lucide-react v0.407.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let r=(0,t(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},16826:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
7
|
-
* @license lucide-react v0.407.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/let r=(0,t(60998).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},6521:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
12
|
-
* @license lucide-react v0.407.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/let r=(0,t(60998).Z)("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]])},88507:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9360,8640],{88507:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
17
2
|
* @license lucide-react v0.407.0 - ISC
|
|
18
3
|
*
|
|
19
4
|
* This source code is licensed under the ISC license.
|
|
@@ -23,12 +8,7 @@
|
|
|
23
8
|
*
|
|
24
9
|
* This source code is licensed under the ISC license.
|
|
25
10
|
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/let r=(0,t(60998).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},
|
|
27
|
-
* @license lucide-react v0.407.0 - ISC
|
|
28
|
-
*
|
|
29
|
-
* This source code is licensed under the ISC license.
|
|
30
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/let r=(0,t(60998).Z)("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]])},47603:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
11
|
+
*/let r=(0,t(60998).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},47603:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
32
12
|
* @license lucide-react v0.407.0 - ISC
|
|
33
13
|
*
|
|
34
14
|
* This source code is licensed under the ISC license.
|
|
@@ -43,9 +23,9 @@
|
|
|
43
23
|
*
|
|
44
24
|
* This source code is licensed under the ISC license.
|
|
45
25
|
* See the LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/let r=(0,t(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},1812:function(e,s,t){t.d(s,{X:function(){return l}});var r=t(85893),a=t(67294);let n=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let s=e.message;return s.includes("failed:")&&(s=s.split("failed:")[1].trim()),s},l=e=>{let{error:s,title:t="Error",onDismiss:l}=e,[o,
|
|
26
|
+
*/let r=(0,t(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},1812:function(e,s,t){t.d(s,{X:function(){return l}});var r=t(85893),a=t(67294);let n=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let s=e.message;return s.includes("failed:")&&(s=s.split("failed:")[1].trim()),s},l=e=>{let{error:s,title:t="Error",onDismiss:l}=e,[o,i]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{s&&i(!1)},[s]),!s||o)return null;let c="string"==typeof s?s:n(s);return(0,r.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,r.jsx)("div",{className:"ml-3",children:(0,r.jsxs)("div",{className:"text-sm text-red-800",children:[(0,r.jsxs)("strong",{children:[t,":"]})," ",c]})})]}),(0,r.jsx)("button",{onClick:()=>{i(!0),l&&l()},className:"flex-shrink-0 ml-4 text-red-400 hover:text-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-red-50 rounded","aria-label":"Dismiss error",children:(0,r.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})})}},82077:function(e,s,t){t.r(s),t.d(s,{Workspaces:function(){return z},getWorkspaceClusters:function(){return _},getWorkspaceManagedJobs:function(){return L}});var r=t(85893),a=t(67294),n=t(11163);t(23266),t(68969);var l=t(17324),o=t(37673),i=t(68764),c=t(30803),d=t(55739),u=t(1272),m=t(50326);t(53850);var h=t(1812),x=t(13626),p=t(81260);/**
|
|
47
27
|
* @license lucide-react v0.407.0 - ISC
|
|
48
28
|
*
|
|
49
29
|
* This source code is licensed under the ISC license.
|
|
50
30
|
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
-
*/let f=(0,t(60998).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var g=t(47603),j=t(23001),k=t(23015),v=t(6378),w=t(51214),y=t(36856),b=t(47145),N=t(94545),C=t(93225),E=t(41664),Z=t.n(E);async function S(e){try{return(await b.x.fetch("/status",{cluster_names:null,all_users:!0,include_credentials:!1,override_skypilot_config:{active_workspace:e}})).map(e=>({status:"UP"===e.status?"RUNNING":"STOPPED"===e.status?"STOPPED":"INIT"===e.status?"LAUNCHING":"TERMINATED",cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,zone:e.zone,launched_at:e.launched_at,handle:e.handle,last_use:e.last_use,autostop:e.autostop,to_down:e.to_down,metadata:e.metadata,resources_str:e.resources_str,workspace:e.workspace||"default"})).filter(s=>s.workspace===e)}catch(s){return console.error("Error fetching clusters for workspace ".concat(e,":"),s),[]}}async function L(e){try{let s=(await b.x.post("/jobs/queue/v2",{all_users:!0,verbose:!0,override_skypilot_config:{active_workspace:e}})).headers.get("X-Skypilot-Request-ID"),t=await b.x.get("/api/get?request_id=".concat(s)),r=await t.json(),a=r.return_value?JSON.parse(r.return_value):{jobs:[]};return a.jobs&&(a.jobs=a.jobs.map(e=>({...e,workspace:e.workspace||"default"})),a.jobs=a.jobs.filter(s=>s.workspace===e)),a}catch(s){return console.error("Error fetching managed jobs for workspace ".concat(e,":"),s),{jobs:[]}}}let M=e=>{let{isPrivate:s}=e;return s?(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 border border-gray-300",children:"Private"}):(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-700 border border-green-300",children:"Public"})};function _(){let[e,s]=(0,a.useState)([]),[t,E]=(0,a.useState)({runningClusters:0,totalClusters:0,managedJobs:0}),[_,z]=(0,a.useState)(!0),[R,D]=(0,a.useState)(null),[T,F]=(0,a.useState)({key:"name",direction:"asc"}),[P,W]=(0,a.useState)(""),[q,O]=(0,a.useState)(!1),[J,A]=(0,a.useState)({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),[I,H]=(0,a.useState)({open:!1,message:"",userName:""}),[V,B]=(0,a.useState)(null),[X,U]=(0,a.useState)(!1),[G,K]=(0,a.useState)(null),[$,Q]=(0,a.useState)(null),Y=(0,n.useRouter)(),ee=(0,j.X)(),es=async()=>{if(V&&Date.now()-V.timestamp<3e5)return V;U(!0);try{let e=await b.x.get("/users/role");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to get user role")}let s=await e.json(),t={role:s.role,name:s.name,timestamp:Date.now()};return B(t),U(!1),t}catch(e){throw U(!1),e}},et=async(e,s)=>{try{let t=await es();if("admin"!==t.role)return H({open:!0,message:e,userName:t.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),H({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},er=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&z(!0);try{let e=await v.default.get(l.getWorkspaces);D(e);let t=Object.keys(e),r=t.map(async e=>{let[s,t,r]=await Promise.all([v.default.get(l.getEnabledClouds,[e]),v.default.get(S,[e]),v.default.get(L,[e])]);return{workspaceName:e,enabledClouds:s,clusters:t||[],managedJobs:r||{jobs:[]}}}),a=await Promise.all(r),n=[],o=[],c={};a.forEach(e=>{let{workspaceName:s,enabledClouds:t,clusters:r,managedJobs:a}=e;r.forEach(e=>{n.push(e)}),a.jobs.forEach(e=>{o.push(e)}),c[s]=t}),Object.fromEntries(n.map(e=>[e.cluster,e.workspace||"default"]));let i={};t.forEach(e=>{i[e]={name:e,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}});let d=0;n.forEach(e=>{let s=e.workspace||"default";i[s]||(i[s]={name:s,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}),i[s].totalClusterCount++,("RUNNING"===e.status||"LAUNCHING"===e.status)&&(i[s].runningClusterCount++,d++),e.cloud&&i[s].clouds.add(e.cloud)});let u=new Set(k.statusGroups.active),h=0;(o||[]).forEach(e=>{let s=e.workspace||"default";i[s]&&u.has(e.status)&&i[s].managedJobsCount++,u.has(e.status)&&h++});let m=Object.values(i).filter(e=>t.includes(e.name)).map(e=>{let s=Array.isArray(c[e.name])?c[e.name]:[];return{...e,clouds:s}}).sort((e,s)=>e.name.localeCompare(s.name));s(m),E({runningClusters:d,totalClusters:n.length,managedJobs:h})}catch(e){console.error("Error fetching workspace data:",e),s([]),E({runningClusters:0,totalClusters:0,managedJobs:0})}e&&z(!1)};(0,a.useEffect)(()=>{(async()=>{await y.ZP.preloadForPage("workspaces"),er(!0)})();let e=setInterval(()=>{er(!1)},w.nb.REFRESH_INTERVAL);return()=>clearInterval(e)},[]);let ea=e=>{let s="asc";T.key===e&&"asc"===T.direction&&(s="desc"),F({key:e,direction:s})},en=e=>T.key===e?"asc"===T.direction?" ↑":" ↓":"",el=a.useMemo(()=>{if(!e)return[];let s=e;if(P&&""!==P.trim()){let t=P.toLowerCase().trim();s=e.filter(e=>!!(e.name.toLowerCase().includes(t)||e.clouds.some(e=>{let s=C.Z2[e.toLowerCase()]||e;return e.toLowerCase().includes(t)||s.toLowerCase().includes(t)}))||!!(!0===((null==R?void 0:R[e.name])||{}).private?"private":"public").includes(t))}return(0,N.R0)(s,T.key,T.direction)},[e,T,P,R]),eo=e=>{et("cannot delete workspace",()=>{A({confirmOpen:!0,workspaceToDelete:e,deleting:!1,error:null})})},ec=async()=>{if(J.workspaceToDelete){A(e=>({...e,deleting:!0,error:null}));try{await (0,l.zl)(J.workspaceToDelete),Q('Workspace "'.concat(J.workspaceToDelete,'" deleted successfully!')),A({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),v.default.invalidate(l.getWorkspaces),v.default.invalidateFunction(S),v.default.invalidateFunction(L),await er(!0)}catch(e){console.error("Error deleting workspace:",e),A(e=>({...e,deleting:!1,error:null})),K(e)}}},ei=()=>{A({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null})},ed=e=>{et("cannot edit workspace",()=>{Y.push("/workspaces/".concat(e))})};return _&&0===e.length?(0,r.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,r.jsx)(d.Z,{}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading workspaces..."})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"fixed top-20 right-4 z-[9999] max-w-md",children:[$&&(0,r.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})}),(0,r.jsx)("div",{className:"ml-3",children:(0,r.jsx)("p",{className:"text-sm font-medium text-green-800",children:$})})]}),(0,r.jsx)("div",{className:"ml-auto pl-3",children:(0,r.jsxs)("button",{type:"button",onClick:()=>Q(null),className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100",children:[(0,r.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,r.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})]})}),(0,r.jsx)(m.X,{error:G,title:"Error",onDismiss:()=>K(null)})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,r.jsx)("div",{className:"text-base flex items-center",children:(0,r.jsx)("span",{className:"text-sky-blue leading-none",children:"Workspaces"})}),(0,r.jsxs)("div",{className:"flex items-center",children:[_&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(d.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-xs",children:"Refreshing..."})]}),(0,r.jsxs)("button",{onClick:()=>{v.default.invalidate(l.getWorkspaces),v.default.invalidateFunction(l.getEnabledClouds),v.default.invalidateFunction(S),v.default.invalidateFunction(L),er(!0)},disabled:_,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(x.Z,{className:"h-4 w-4 mr-1.5"}),!ee&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,r.jsx)("input",{type:"text",placeholder:"Filter workspaces",value:P,onChange:e=>W(e.target.value),className:"h-8 w-full px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),P&&(0,r.jsx)("button",{onClick:()=>W(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsx)("button",{onClick:()=>{et("cannot create workspace",()=>{Y.push("/workspace/new")})},disabled:X,className:"ml-4 bg-sky-600 hover:bg-sky-700 text-white flex items-center rounded-md px-3 py-1 text-sm font-medium transition-colors duration-200",title:"Create Workspace",children:X?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{children:"Create Workspace"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.Z,{className:"h-4 w-4 mr-2"}),"Create Workspace"]})})]}),0!==e.length||_?(0,r.jsx)(o.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(c.iA,{className:"min-w-full",children:[(0,r.jsx)(c.xD,{children:(0,r.jsxs)(c.SC,{children:[(0,r.jsxs)(c.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("name"),children:["Workspace",en("name")]}),(0,r.jsxs)(c.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("totalClusterCount"),children:["Clusters ",en("totalClusterCount")]}),(0,r.jsxs)(c.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("managedJobsCount"),children:["Jobs",en("managedJobsCount")]}),(0,r.jsx)(c.ss,{className:"whitespace-nowrap",children:"Enabled infra"}),(0,r.jsx)(c.ss,{className:"whitespace-nowrap",children:"Actions"})]})}),(0,r.jsx)(c.RM,{children:_&&0===el.length?(0,r.jsx)(c.SC,{children:(0,r.jsx)(c.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(d.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):el.length>0?el.map(e=>{let s=!0===((null==R?void 0:R[e.name])||{}).private;return(0,r.jsxs)(c.SC,{className:"hover:bg-gray-50",children:[(0,r.jsxs)(c.pj,{className:"",children:[(0,r.jsx)("button",{onClick:()=>ed(e.name),disabled:X,className:"text-blue-600 hover:text-blue-600 hover:underline text-left",children:e.name}),(0,r.jsx)("span",{className:"ml-2",children:(0,r.jsx)(M,{isPrivate:s})})]}),(0,r.jsx)(c.pj,{children:(0,r.jsxs)("button",{onClick:()=>{Y.push({pathname:"/clusters",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:[e.runningClusterCount," running,"," ",e.totalClusterCount," total"]})}),(0,r.jsx)(c.pj,{children:(0,r.jsx)("button",{onClick:()=>{Y.push({pathname:"/jobs",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.managedJobsCount})}),(0,r.jsx)(c.pj,{children:e.clouds.length>0?[...e.clouds].sort().map((s,t)=>{let a=C.Z2[s.toLowerCase()]||s;return(0,r.jsxs)("span",{children:[(0,r.jsx)(Z(),{href:"/infra",className:"inline-flex items-center px-2 py-1 rounded text-sm bg-sky-100 text-sky-800 hover:bg-sky-200 hover:text-sky-900 transition-colors duration-200",children:a}),t<e.clouds.length-1&&" "]},s)}):(0,r.jsx)("span",{className:"text-gray-500 text-sm",children:"-"})}),(0,r.jsxs)(c.pj,{children:[(0,r.jsx)(i.z,{variant:"ghost",size:"sm",onClick:()=>ed(e.name),disabled:X,className:"text-gray-600 hover:text-gray-800 mr-1",children:(0,r.jsx)(f,{className:"w-4 h-4"})}),(0,r.jsx)(i.z,{variant:"ghost",size:"sm",onClick:()=>eo(e.name),disabled:"default"===e.name||X,title:"default"===e.name?"Cannot delete default workspace":"Delete workspace",className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,r.jsx)(g.Z,{className:"w-4 h-4"})})]})]},e.name)}):(0,r.jsx)(c.SC,{children:(0,r.jsx)(c.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No workspaces found"})})})]})})}):(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-lg text-gray-600",children:"No workspaces found."}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Create a cluster to see its workspace here."})]}),R&&(0,r.jsx)(h.Vq,{open:q,onOpenChange:O,children:(0,r.jsxs)(h.cZ,{className:"sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl w-full max-h-[90vh] flex flex-col",children:[(0,r.jsx)(h.fK,{children:(0,r.jsx)(h.$N,{className:"pr-10",children:"All Workspaces Configuration"})}),(0,r.jsx)("div",{className:"flex-grow overflow-y-auto py-4",children:(0,r.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",overflowX:"auto",whiteSpace:"pre",wordBreak:"normal"},children:u.ZP.dump(R,{indent:2})})})]})}),(0,r.jsx)(h.Vq,{open:I.open,onOpenChange:e=>{H(s=>({...s,open:e})),e||K(null)},children:(0,r.jsxs)(h.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,r.jsxs)(h.fK,{children:[(0,r.jsx)(h.$N,{children:"Permission Denied"}),(0,r.jsx)(h.Be,{children:X?(0,r.jsxs)("div",{className:"flex items-center py-2",children:[(0,r.jsx)(d.Z,{size:16,className:"mr-2"}),(0,r.jsx)("span",{children:"Checking permissions..."})]}):(0,r.jsx)(r.Fragment,{children:I.userName?(0,r.jsxs)(r.Fragment,{children:[I.userName," is logged in as non-admin and ",I.message,"."]}):I.message})})]}),(0,r.jsx)(h.cN,{children:(0,r.jsx)(i.z,{variant:"outline",onClick:()=>H(e=>({...e,open:!1})),disabled:X,children:"OK"})})]})}),(0,r.jsx)(h.Vq,{open:J.confirmOpen,onOpenChange:e=>{e||(ei(),K(null))},children:(0,r.jsxs)(h.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(h.fK,{children:[(0,r.jsx)(h.$N,{children:"Delete Workspace"}),(0,r.jsxs)(h.Be,{children:['Are you sure you want to delete workspace "',J.workspaceToDelete,'"? This action cannot be undone.']})]}),(0,r.jsxs)(h.cN,{children:[(0,r.jsx)(i.z,{variant:"outline",onClick:ei,disabled:J.deleting,children:"Cancel"}),(0,r.jsx)(i.z,{variant:"destructive",onClick:ec,disabled:J.deleting,children:J.deleting?"Deleting...":"Delete"})]})]})})]})}w.nb.REFRESH_INTERVAL},23001:function(e,s,t){t.d(s,{X:function(){return a}});var r=t(67294);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[s,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let s=()=>{t(window.innerWidth<e)};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}},[e]),s}}}]);
|
|
31
|
+
*/let f=(0,t(60998).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var g=t(47603),j=t(23001),v=t(23015),w=t(6378),k=t(51214),b=t(36856),y=t(47145),N=t(94545),C=t(93225),E=t(41664),S=t.n(E);async function _(e){try{return(await y.x.fetch("/status",{cluster_names:null,all_users:!0,include_credentials:!1,override_skypilot_config:{active_workspace:e}})).map(e=>({status:"UP"===e.status?"RUNNING":"STOPPED"===e.status?"STOPPED":"INIT"===e.status?"LAUNCHING":"TERMINATED",cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,zone:e.zone,launched_at:e.launched_at,handle:e.handle,last_use:e.last_use,autostop:e.autostop,to_down:e.to_down,metadata:e.metadata,resources_str:e.resources_str,workspace:e.workspace||"default"})).filter(s=>s.workspace===e)}catch(s){return console.error("Error fetching clusters for workspace ".concat(e,":"),s),[]}}async function L(e){try{let s=(await y.x.post("/jobs/queue/v2",{all_users:!0,verbose:!0,override_skypilot_config:{active_workspace:e}})).headers.get("X-Skypilot-Request-ID"),t=await y.x.get("/api/get?request_id=".concat(s)),r=await t.json(),a=r.return_value?JSON.parse(r.return_value):{jobs:[]};return a.jobs&&(a.jobs=a.jobs.map(e=>({...e,workspace:e.workspace||"default"})),a.jobs=a.jobs.filter(s=>s.workspace===e)),a}catch(s){return console.error("Error fetching managed jobs for workspace ".concat(e,":"),s),{jobs:[]}}}let Z=e=>{let{isPrivate:s}=e;return s?(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 border border-gray-300",children:"Private"}):(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-700 border border-green-300",children:"Public"})};function z(){let[e,s]=(0,a.useState)([]),[t,E]=(0,a.useState)({runningClusters:0,totalClusters:0,managedJobs:0}),[z,M]=(0,a.useState)(!0),[R,D]=(0,a.useState)(null),[O,T]=(0,a.useState)({key:"name",direction:"asc"}),[W,P]=(0,a.useState)(""),[F,A]=(0,a.useState)(!1),[J,I]=(0,a.useState)({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),[q,V]=(0,a.useState)({open:!1,message:"",userName:""}),[B,H]=(0,a.useState)(null),[X,U]=(0,a.useState)(!1),[G,K]=(0,a.useState)(null),[$,Q]=(0,a.useState)(null),Y=(0,n.useRouter)(),ee=(0,j.X)(),es=async()=>{if(B&&Date.now()-B.timestamp<3e5)return B;U(!0);try{let e=await y.x.get("/users/role");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to get user role")}let s=await e.json(),t={role:s.role,name:s.name,timestamp:Date.now()};return H(t),U(!1),t}catch(e){throw U(!1),e}},et=async(e,s)=>{try{let t=await es();if("admin"!==t.role)return V({open:!0,message:e,userName:t.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),V({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},er=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&M(!0);try{let e=await w.default.get(l.getWorkspaces);D(e);let t=Object.keys(e),r=t.map(async e=>{let[s,t,r]=await Promise.all([w.default.get(l.getEnabledClouds,[e]),w.default.get(_,[e]),w.default.get(L,[e])]);return{workspaceName:e,enabledClouds:s,clusters:t||[],managedJobs:r||{jobs:[]}}}),a=await Promise.all(r),n=[],o=[],i={};a.forEach(e=>{let{workspaceName:s,enabledClouds:t,clusters:r,managedJobs:a}=e;r.forEach(e=>{n.push(e)}),a.jobs.forEach(e=>{o.push(e)}),i[s]=t}),Object.fromEntries(n.map(e=>[e.cluster,e.workspace||"default"]));let c={};t.forEach(e=>{c[e]={name:e,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}});let d=0;n.forEach(e=>{let s=e.workspace||"default";c[s]||(c[s]={name:s,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}),c[s].totalClusterCount++,("RUNNING"===e.status||"LAUNCHING"===e.status)&&(c[s].runningClusterCount++,d++),e.cloud&&c[s].clouds.add(e.cloud)});let u=new Set(v.statusGroups.active),m=0;(o||[]).forEach(e=>{let s=e.workspace||"default";c[s]&&u.has(e.status)&&c[s].managedJobsCount++,u.has(e.status)&&m++});let h=Object.values(c).filter(e=>t.includes(e.name)).map(e=>{let s=Array.isArray(i[e.name])?i[e.name]:[];return{...e,clouds:s}}).sort((e,s)=>e.name.localeCompare(s.name));s(h),E({runningClusters:d,totalClusters:n.length,managedJobs:m})}catch(e){console.error("Error fetching workspace data:",e),s([]),E({runningClusters:0,totalClusters:0,managedJobs:0})}e&&M(!1)};(0,a.useEffect)(()=>{(async()=>{await b.ZP.preloadForPage("workspaces"),er(!0)})();let e=setInterval(()=>{er(!1)},k.nb.REFRESH_INTERVAL);return()=>clearInterval(e)},[]);let ea=e=>{let s="asc";O.key===e&&"asc"===O.direction&&(s="desc"),T({key:e,direction:s})},en=e=>O.key===e?"asc"===O.direction?" ↑":" ↓":"",el=a.useMemo(()=>{if(!e)return[];let s=e;if(W&&""!==W.trim()){let t=W.toLowerCase().trim();s=e.filter(e=>!!(e.name.toLowerCase().includes(t)||e.clouds.some(e=>{let s=C.Z2[e.toLowerCase()]||e;return e.toLowerCase().includes(t)||s.toLowerCase().includes(t)}))||!!(!0===((null==R?void 0:R[e.name])||{}).private?"private":"public").includes(t))}return(0,N.R0)(s,O.key,O.direction)},[e,O,W,R]),eo=e=>{et("cannot delete workspace",()=>{I({confirmOpen:!0,workspaceToDelete:e,deleting:!1,error:null})})},ei=async()=>{if(J.workspaceToDelete){I(e=>({...e,deleting:!0,error:null}));try{await (0,l.zl)(J.workspaceToDelete),Q('Workspace "'.concat(J.workspaceToDelete,'" deleted successfully!')),I({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),w.default.invalidate(l.getWorkspaces),w.default.invalidateFunction(_),w.default.invalidateFunction(L),await er(!0)}catch(e){console.error("Error deleting workspace:",e),I(e=>({...e,deleting:!1,error:null})),K(e)}}},ec=()=>{I({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null})},ed=e=>{et("cannot edit workspace",()=>{Y.push("/workspaces/".concat(e))})};return z&&0===e.length?(0,r.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,r.jsx)(d.Z,{}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading workspaces..."})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"fixed top-20 right-4 z-[9999] max-w-md",children:[$&&(0,r.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})}),(0,r.jsx)("div",{className:"ml-3",children:(0,r.jsx)("p",{className:"text-sm font-medium text-green-800",children:$})})]}),(0,r.jsx)("div",{className:"ml-auto pl-3",children:(0,r.jsxs)("button",{type:"button",onClick:()=>Q(null),className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100",children:[(0,r.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,r.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})]})}),(0,r.jsx)(h.X,{error:G,title:"Error",onDismiss:()=>K(null)})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,r.jsx)("div",{className:"text-base flex items-center",children:(0,r.jsx)("span",{className:"text-sky-blue leading-none",children:"Workspaces"})}),(0,r.jsxs)("div",{className:"flex items-center",children:[z&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(d.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-xs",children:"Refreshing..."})]}),(0,r.jsxs)("button",{onClick:()=>{w.default.invalidate(l.getWorkspaces),w.default.invalidateFunction(l.getEnabledClouds),w.default.invalidateFunction(_),w.default.invalidateFunction(L),er(!0)},disabled:z,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(x.Z,{className:"h-4 w-4 mr-1.5"}),!ee&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,r.jsx)("input",{type:"text",placeholder:"Filter workspaces",value:W,onChange:e=>P(e.target.value),className:"h-8 w-full px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),W&&(0,r.jsx)("button",{onClick:()=>P(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsx)("button",{onClick:()=>{et("cannot create workspace",()=>{Y.push("/workspace/new")})},disabled:X,className:"ml-4 bg-sky-600 hover:bg-sky-700 text-white flex items-center rounded-md px-3 py-1 text-sm font-medium transition-colors duration-200",title:"Create Workspace",children:X?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{children:"Create Workspace"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.Z,{className:"h-4 w-4 mr-2"}),"Create Workspace"]})})]}),0!==e.length||z?(0,r.jsx)(o.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(i.iA,{className:"min-w-full",children:[(0,r.jsx)(i.xD,{children:(0,r.jsxs)(i.SC,{children:[(0,r.jsxs)(i.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("name"),children:["Workspace",en("name")]}),(0,r.jsxs)(i.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("totalClusterCount"),children:["Clusters ",en("totalClusterCount")]}),(0,r.jsxs)(i.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("managedJobsCount"),children:["Jobs",en("managedJobsCount")]}),(0,r.jsx)(i.ss,{className:"whitespace-nowrap",children:"Enabled infra"}),(0,r.jsx)(i.ss,{className:"whitespace-nowrap",children:"Actions"})]})}),(0,r.jsx)(i.RM,{children:z&&0===el.length?(0,r.jsx)(i.SC,{children:(0,r.jsx)(i.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(d.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):el.length>0?el.map(e=>{let s=!0===((null==R?void 0:R[e.name])||{}).private;return(0,r.jsxs)(i.SC,{className:"hover:bg-gray-50",children:[(0,r.jsxs)(i.pj,{className:"",children:[(0,r.jsx)("button",{onClick:()=>ed(e.name),disabled:X,className:"text-blue-600 hover:text-blue-600 hover:underline text-left",children:e.name}),(0,r.jsx)("span",{className:"ml-2",children:(0,r.jsx)(Z,{isPrivate:s})})]}),(0,r.jsx)(i.pj,{children:(0,r.jsxs)("button",{onClick:()=>{Y.push({pathname:"/clusters",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:[e.runningClusterCount," running,"," ",e.totalClusterCount," total"]})}),(0,r.jsx)(i.pj,{children:(0,r.jsx)("button",{onClick:()=>{Y.push({pathname:"/jobs",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.managedJobsCount})}),(0,r.jsx)(i.pj,{children:e.clouds.length>0?[...e.clouds].sort().map((s,t)=>{let a=C.Z2[s.toLowerCase()]||s;return(0,r.jsxs)("span",{children:[(0,r.jsx)(S(),{href:"/infra",className:"inline-flex items-center px-2 py-1 rounded text-sm bg-sky-100 text-sky-800 hover:bg-sky-200 hover:text-sky-900 transition-colors duration-200",children:a}),t<e.clouds.length-1&&" "]},s)}):(0,r.jsx)("span",{className:"text-gray-500 text-sm",children:"-"})}),(0,r.jsxs)(i.pj,{children:[(0,r.jsx)(c.z,{variant:"ghost",size:"sm",onClick:()=>ed(e.name),disabled:X,className:"text-gray-600 hover:text-gray-800 mr-1",children:(0,r.jsx)(f,{className:"w-4 h-4"})}),(0,r.jsx)(c.z,{variant:"ghost",size:"sm",onClick:()=>eo(e.name),disabled:"default"===e.name||X,title:"default"===e.name?"Cannot delete default workspace":"Delete workspace",className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,r.jsx)(g.Z,{className:"w-4 h-4"})})]})]},e.name)}):(0,r.jsx)(i.SC,{children:(0,r.jsx)(i.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No workspaces found"})})})]})})}):(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-lg text-gray-600",children:"No workspaces found."}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Create a cluster to see its workspace here."})]}),R&&(0,r.jsx)(m.Vq,{open:F,onOpenChange:A,children:(0,r.jsxs)(m.cZ,{className:"sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl w-full max-h-[90vh] flex flex-col",children:[(0,r.jsx)(m.fK,{children:(0,r.jsx)(m.$N,{className:"pr-10",children:"All Workspaces Configuration"})}),(0,r.jsx)("div",{className:"flex-grow overflow-y-auto py-4",children:(0,r.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",overflowX:"auto",whiteSpace:"pre",wordBreak:"normal"},children:u.ZP.dump(R,{indent:2})})})]})}),(0,r.jsx)(m.Vq,{open:q.open,onOpenChange:e=>{V(s=>({...s,open:e})),e||K(null)},children:(0,r.jsxs)(m.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,r.jsxs)(m.fK,{children:[(0,r.jsx)(m.$N,{children:"Permission Denied"}),(0,r.jsx)(m.Be,{children:X?(0,r.jsxs)("div",{className:"flex items-center py-2",children:[(0,r.jsx)(d.Z,{size:16,className:"mr-2"}),(0,r.jsx)("span",{children:"Checking permissions..."})]}):(0,r.jsx)(r.Fragment,{children:q.userName?(0,r.jsxs)(r.Fragment,{children:[q.userName," is logged in as non-admin and ",q.message,"."]}):q.message})})]}),(0,r.jsx)(m.cN,{children:(0,r.jsx)(c.z,{variant:"outline",onClick:()=>V(e=>({...e,open:!1})),disabled:X,children:"OK"})})]})}),(0,r.jsx)(m.Vq,{open:J.confirmOpen,onOpenChange:e=>{e||(ec(),K(null))},children:(0,r.jsxs)(m.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(m.fK,{children:[(0,r.jsx)(m.$N,{children:"Delete Workspace"}),(0,r.jsxs)(m.Be,{children:['Are you sure you want to delete workspace "',J.workspaceToDelete,'"? This action cannot be undone.']})]}),(0,r.jsxs)(m.cN,{children:[(0,r.jsx)(c.z,{variant:"outline",onClick:ec,disabled:J.deleting,children:"Cancel"}),(0,r.jsx)(c.z,{variant:"destructive",onClick:ei,disabled:J.deleting,children:J.deleting?"Deleting...":"Delete"})]})]})})]})}k.nb.REFRESH_INTERVAL},23001:function(e,s,t){t.d(s,{X:function(){return a}});var r=t(67294);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[s,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let s=()=>{t(window.innerWidth<e)};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}},[e]),s}},12003:function(e,s,t){t.d(s,{j:function(){return l}});var r=t(90512);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=r.W,l=(e,s)=>t=>{var r;if((null==s?void 0:s.variants)==null)return n(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:l,defaultVariants:o}=s,i=Object.keys(l).map(e=>{let s=null==t?void 0:t[e],r=null==o?void 0:o[e];if(null===s)return null;let n=a(s)||a(r);return l[e][n]}),c=t&&Object.entries(t).reduce((e,s)=>{let[t,r]=s;return void 0===r||(e[t]=r),e},{});return n(e,i,null==s?void 0:null===(r=s.compoundVariants)||void 0===r?void 0:r.reduce((e,s)=>{let{class:t,className:r,...a}=s;return Object.entries(a).every(e=>{let[s,t]=e;return Array.isArray(t)?t.includes({...o,...c}[s]):({...o,...c})[s]===t})?[...e,t,r]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}}}]);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9847],{65168:function(e,t,n){n.d(t,{ZP:function(){return eB}});var r=n(87462),o=n(63366),i=n(67294),l=n(90512),a=n(94780);function s(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function u(...e){return i.useMemo(()=>e.every(e=>null==e)?null:t=>{e.forEach(e=>{s(e,t)})},e)}var c=function(e){return"string"==typeof e},d=function(e,t=[]){if(void 0===e)return{};let n={};return Object.keys(e).filter(n=>n.match(/^on[A-Z]/)&&"function"==typeof e[n]&&!t.includes(n)).forEach(t=>{n[t]=e[t]}),n},p=function(e){if(void 0===e)return{};let t={};return Object.keys(e).filter(t=>!(t.match(/^on[A-Z]/)&&"function"==typeof e[t])).forEach(n=>{t[n]=e[n]}),t},f=function(e){let{getSlotProps:t,additionalProps:n,externalSlotProps:o,externalForwardedProps:i,className:a}=e;if(!t){let e=(0,l.Z)(null==n?void 0:n.className,a,null==i?void 0:i.className,null==o?void 0:o.className),t=(0,r.Z)({},null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),s=(0,r.Z)({},n,i,o);return e.length>0&&(s.className=e),Object.keys(t).length>0&&(s.style=t),{props:s,internalRef:void 0}}let s=d((0,r.Z)({},i,o)),u=p(o),c=p(i),f=t(s),v=(0,l.Z)(null==f?void 0:f.className,null==n?void 0:n.className,a,null==i?void 0:i.className,null==o?void 0:o.className),m=(0,r.Z)({},null==f?void 0:f.style,null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),h=(0,r.Z)({},f,n,c,u);return v.length>0&&(h.className=v),Object.keys(m).length>0&&(h.style=m),{props:h,internalRef:f.ref}};let v=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];var m=function(e){var t,n;let{elementType:i,externalSlotProps:l,ownerState:a,skipResolvingSlotProps:s=!1}=e,d=(0,o.Z)(e,v),p=s?{}:"function"==typeof l?l(a,void 0):l,{props:m,internalRef:h}=f((0,r.Z)({},d,{externalSlotProps:p})),g=u(h,null==p?void 0:p.ref,null==(t=e.additionalProps)?void 0:t.ref);return n=(0,r.Z)({},m,{ref:g}),void 0===i||c(i)?n:(0,r.Z)({},n,{ownerState:(0,r.Z)({},n.ownerState,a)})},h=n(30957),g=n(81079),y=function(e,t=166){let n;function r(...o){clearTimeout(n),n=setTimeout(()=>{e.apply(this,o)},t)}return r.clear=()=>{clearTimeout(n)},r};function E(e){return e&&e.ownerDocument||document}function x(e){return E(e).defaultView||window}let b={},R=[];class k{constructor(){this.currentId=null,this.clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new k}start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,t()},e)}}function N(e){if(parseInt(i.version,10)>=19){var t;return(null==e||null==(t=e.props)?void 0:t.ref)||null}return(null==e?void 0:e.ref)||null}function P(e,t){return(P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var Z=n(73935),T={disabled:!1},w=i.createContext(null),O="unmounted",M="exited",C="entering",I="entered",S="exiting",D=function(e){function t(t,n){r=e.call(this,t,n)||this;var r,o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=M,r.appearStatus=C):o=I:o=t.unmountOnExit||t.mountOnEnter?O:M,r.state={status:o},r.nextCallback=null,r}t.prototype=Object.create(e.prototype),t.prototype.constructor=t,P(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===O?{status:M}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==C&&n!==I&&(t=C):(n===C||n===I)&&(t=S)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){if(this.cancelNextCallback(),t===C){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Z.findDOMNode(this);n&&n.scrollTop}this.performEnter(e)}else this.performExit()}else this.props.unmountOnExit&&this.state.status===M&&this.setState({status:O})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[Z.findDOMNode(this),r],i=o[0],l=o[1],a=this.getTimeouts(),s=r?a.appear:a.enter;if(!e&&!n||T.disabled){this.safeSetState({status:I},function(){t.props.onEntered(i)});return}this.props.onEnter(i,l),this.safeSetState({status:C},function(){t.props.onEntering(i,l),t.onTransitionEnd(s,function(){t.safeSetState({status:I},function(){t.props.onEntered(i,l)})})})},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Z.findDOMNode(this);if(!t||T.disabled){this.safeSetState({status:M},function(){e.props.onExited(r)});return}this.props.onExit(r),this.safeSetState({status:S},function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:M},function(){e.props.onExited(r)})})})},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Z.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(!n||r){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],l=o[1];this.props.addEndListener(i,l)}null!=e&&setTimeout(this.nextCallback,e)},n.render=function(){var e=this.state.status;if(e===O)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,o.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(w.Provider,{value:null},"function"==typeof n?n(e,r):i.cloneElement(i.Children.only(n),r))},t}(i.Component);function j(){}D.contextType=w,D.propTypes={},D.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:j,onEntering:j,onEntered:j,onExit:j,onExiting:j,onExited:j},D.UNMOUNTED=O,D.EXITED=M,D.ENTERING=C,D.ENTERED=I,D.EXITING=S;var A=n(17172),F=n(87685),L=function(e=null){let t=i.useContext(F.T);return t&&0!==Object.keys(t).length?t:e};let _=(0,A.Z)();var U=n(2418),W=n(22453);function z(){let e=function(e=_){return L(e)}(U.Z);return e[W.Z]||e}let H=e=>e.scrollTop;function V(e,t){var n,r;let{timeout:o,easing:i,style:l={}}=e;return{duration:null!=(n=l.transitionDuration)?n:"number"==typeof o?o:o[t.mode]||0,easing:null!=(r=l.transitionTimingFunction)?r:"object"==typeof i?i[t.mode]:i,delay:l.transitionDelay}}var B=n(85893);let q=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function K(e){return"scale(".concat(e,", ").concat(e**2,")")}let X={entering:{opacity:1,transform:K(1)},entered:{opacity:1,transform:"none"}},Y="undefined"!=typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),$=i.forwardRef(function(e,t){let{addEndListener:n,appear:l=!0,children:a,easing:s,in:c,onEnter:d,onEntered:p,onEntering:f,onExit:v,onExited:m,onExiting:h,style:g,timeout:y="auto",TransitionComponent:E=D}=e,x=(0,o.Z)(e,q),P=function(){var e;let t=function(e,t){let n=i.useRef(b);return n.current===b&&(n.current=e(void 0)),n}(k.create).current;return e=t.disposeEffect,i.useEffect(e,R),t}(),Z=i.useRef(),T=z(),w=i.useRef(null),O=u(w,N(a),t),M=e=>t=>{if(e){let n=w.current;void 0===t?e(n):e(n,t)}},C=M(f),I=M((e,t)=>{let n;H(e);let{duration:r,delay:o,easing:i}=V({style:g,timeout:y,easing:s},{mode:"enter"});"auto"===y?(n=T.transitions.getAutoHeightDuration(e.clientHeight),Z.current=n):n=r,e.style.transition=[T.transitions.create("opacity",{duration:n,delay:o}),T.transitions.create("transform",{duration:Y?n:.666*n,delay:o,easing:i})].join(","),d&&d(e,t)}),S=M(p),j=M(h),A=M(e=>{let t;let{duration:n,delay:r,easing:o}=V({style:g,timeout:y,easing:s},{mode:"exit"});"auto"===y?(t=T.transitions.getAutoHeightDuration(e.clientHeight),Z.current=t):t=n,e.style.transition=[T.transitions.create("opacity",{duration:t,delay:r}),T.transitions.create("transform",{duration:Y?t:.666*t,delay:Y?r:r||.333*t,easing:o})].join(","),e.style.opacity=0,e.style.transform=K(.75),v&&v(e)}),F=M(m);return(0,B.jsx)(E,(0,r.Z)({appear:l,in:c,nodeRef:w,onEnter:I,onEntered:S,onEntering:C,onExit:A,onExited:F,onExiting:j,addEndListener:e=>{"auto"===y&&P.start(Z.current||0,e),n&&n(w.current,e)},timeout:"auto"===y?null:y},x,{children:(e,t)=>i.cloneElement(a,(0,r.Z)({style:(0,r.Z)({opacity:0,transform:K(.75),visibility:"exited"!==e||c?void 0:"hidden"},X[e],g,a.props.style),ref:O},t))}))});function G(e){let t=[],n=[];return Array.from(e.querySelectorAll('input,select,textarea,a[href],button,[tabindex],audio[controls],video[controls],[contenteditable]:not([contenteditable="false"])')).forEach((e,r)=>{let o=function(e){let t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?"true"===e.contentEditable||("AUDIO"===e.nodeName||"VIDEO"===e.nodeName||"DETAILS"===e.nodeName)&&null===e.getAttribute("tabindex")?0:e.tabIndex:t}(e);-1===o||e.disabled||"INPUT"===e.tagName&&"hidden"===e.type||function(e){if("INPUT"!==e.tagName||"radio"!==e.type||!e.name)return!1;let t=t=>e.ownerDocument.querySelector('input[type="radio"]'.concat(t)),n=t('[name="'.concat(e.name,'"]:checked'));return n||(n=t('[name="'.concat(e.name,'"]'))),n!==e}(e)||(0===o?t.push(e):n.push({documentOrder:r,tabIndex:o,node:e}))}),n.sort((e,t)=>e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex).map(e=>e.node).concat(t)}function J(){return!0}$.muiSupportAuto=!0;var Q=function(e){let{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:l=G,isEnabled:a=J,open:s}=e,c=i.useRef(!1),d=i.useRef(null),p=i.useRef(null),f=i.useRef(null),v=i.useRef(null),m=i.useRef(!1),h=i.useRef(null),g=u(N(t),h),y=i.useRef(null);i.useEffect(()=>{s&&h.current&&(m.current=!n)},[n,s]),i.useEffect(()=>{if(!s||!h.current)return;let e=E(h.current);return!h.current.contains(e.activeElement)&&(h.current.hasAttribute("tabIndex")||h.current.setAttribute("tabIndex","-1"),m.current&&h.current.focus()),()=>{o||(f.current&&f.current.focus&&(c.current=!0,f.current.focus()),f.current=null)}},[s]),i.useEffect(()=>{if(!s||!h.current)return;let e=E(h.current),t=t=>{y.current=t,!r&&a()&&"Tab"===t.key&&e.activeElement===h.current&&t.shiftKey&&(c.current=!0,p.current&&p.current.focus())},n=()=>{let t=h.current;if(null===t)return;if(!e.hasFocus()||!a()||c.current){c.current=!1;return}if(t.contains(e.activeElement)||r&&e.activeElement!==d.current&&e.activeElement!==p.current)return;if(e.activeElement!==v.current)v.current=null;else if(null!==v.current)return;if(!m.current)return;let n=[];if((e.activeElement===d.current||e.activeElement===p.current)&&(n=l(h.current)),n.length>0){var o,i;let e=!!((null==(o=y.current)?void 0:o.shiftKey)&&(null==(i=y.current)?void 0:i.key)==="Tab"),t=n[0],r=n[n.length-1];"string"!=typeof t&&"string"!=typeof r&&(e?r.focus():t.focus())}else t.focus()};e.addEventListener("focusin",n),e.addEventListener("keydown",t,!0);let o=setInterval(()=>{e.activeElement&&"BODY"===e.activeElement.tagName&&n()},50);return()=>{clearInterval(o),e.removeEventListener("focusin",n),e.removeEventListener("keydown",t,!0)}},[n,r,o,a,s,l]);let x=e=>{null===f.current&&(f.current=e.relatedTarget),m.current=!0};return(0,B.jsxs)(i.Fragment,{children:[(0,B.jsx)("div",{tabIndex:s?0:-1,onFocus:x,ref:d,"data-testid":"sentinelStart"}),i.cloneElement(t,{ref:g,onFocus:e=>{null===f.current&&(f.current=e.relatedTarget),m.current=!0,v.current=e.target;let n=t.props.onFocus;n&&n(e)}}),(0,B.jsx)("div",{tabIndex:s?0:-1,onFocus:x,ref:p,"data-testid":"sentinelEnd"})]})};let ee="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,et=i.forwardRef(function(e,t){let{children:n,container:r,disablePortal:o=!1}=e,[l,a]=i.useState(null),c=u(i.isValidElement(n)?N(n):null,t);return(ee(()=>{!o&&a(("function"==typeof r?r():r)||document.body)},[r,o]),ee(()=>{if(l&&!o)return s(t,l),()=>{s(t,null)}},[t,l,o]),o)?i.isValidElement(n)?i.cloneElement(n,{ref:c}):(0,B.jsx)(i.Fragment,{children:n}):(0,B.jsx)(i.Fragment,{children:l?Z.createPortal(n,l):l})}),en=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],er={entering:{opacity:1},entered:{opacity:1}},eo=i.forwardRef(function(e,t){let n=z(),l={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:s=!0,children:c,easing:d,in:p,onEnter:f,onEntered:v,onEntering:m,onExit:h,onExited:g,onExiting:y,style:E,timeout:x=l,TransitionComponent:b=D}=e,R=(0,o.Z)(e,en),k=i.useRef(null),P=u(k,N(c),t),Z=e=>t=>{if(e){let n=k.current;void 0===t?e(n):e(n,t)}},T=Z(m),w=Z((e,t)=>{H(e);let r=V({style:E,timeout:x,easing:d},{mode:"enter"});e.style.webkitTransition=n.transitions.create("opacity",r),e.style.transition=n.transitions.create("opacity",r),f&&f(e,t)}),O=Z(v),M=Z(y),C=Z(e=>{let t=V({style:E,timeout:x,easing:d},{mode:"exit"});e.style.webkitTransition=n.transitions.create("opacity",t),e.style.transition=n.transitions.create("opacity",t),h&&h(e)}),I=Z(g);return(0,B.jsx)(b,(0,r.Z)({appear:s,in:p,nodeRef:k,onEnter:w,onEntered:O,onEntering:T,onExit:C,onExited:I,onExiting:M,addEndListener:e=>{a&&a(k.current,e)},timeout:x},R,{children:(e,t)=>i.cloneElement(c,(0,r.Z)({style:(0,r.Z)({opacity:0,visibility:"exited"!==e||p?void 0:"hidden"},er[e],E,c.props.style),ref:P},t))}))});var ei=n(1588),el=n(27621);function ea(e){return(0,el.ZP)("MuiBackdrop",e)}(0,ei.Z)("MuiBackdrop",["root","invisible"]);let es=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],eu=e=>{let{classes:t,invisible:n}=e;return(0,a.Z)({root:["root",n&&"invisible"]},ea,t)},ec=(0,h.ZP)("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})(e=>{let{ownerState:t}=e;return(0,r.Z)({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},t.invisible&&{backgroundColor:"transparent"})}),ed=i.forwardRef(function(e,t){var n,i,a;let s=(0,g.i)({props:e,name:"MuiBackdrop"}),{children:u,className:c,component:d="div",components:p={},componentsProps:f={},invisible:v=!1,open:m,slotProps:h={},slots:y={},TransitionComponent:E=eo,transitionDuration:x}=s,b=(0,o.Z)(s,es),R=(0,r.Z)({},s,{component:d,invisible:v}),k=eu(R),N=null!=(n=h.root)?n:f.root;return(0,B.jsx)(E,(0,r.Z)({in:m,timeout:x},b,{children:(0,B.jsx)(ec,(0,r.Z)({"aria-hidden":!0},N,{as:null!=(i=null!=(a=y.root)?a:p.Root)?i:d,className:(0,l.Z)(k.root,c,null==N?void 0:N.className),ownerState:(0,r.Z)({},R,null==N?void 0:N.ownerState),classes:k,ref:t,children:u}))}))});var ep=function(e){let t=i.useRef(e);return ee(()=>{t.current=e}),i.useRef((...e)=>(0,t.current)(...e)).current};function ef(...e){return e.reduce((e,t)=>null==t?e:function(...n){e.apply(this,n),t.apply(this,n)},()=>{})}function ev(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function em(e){return parseInt(x(e).getComputedStyle(e).paddingRight,10)||0}function eh(e,t,n,r,o){let i=[t,n,...r];[].forEach.call(e.children,e=>{let t=-1===i.indexOf(e),n=!function(e){let t=-1!==["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}(e);t&&n&&ev(e,o)})}function eg(e,t){let n=-1;return e.some((e,r)=>!!t(e)&&(n=r,!0)),n}class ey{add(e,t){let n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&ev(e.modalRef,!1);let r=function(e){let t=[];return[].forEach.call(e.children,e=>{"true"===e.getAttribute("aria-hidden")&&t.push(e)}),t}(t);eh(t,e.mount,e.modalRef,r,!0);let o=eg(this.containers,e=>e.container===t);return -1!==o?this.containers[o].modals.push(e):this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n}mount(e,t){let n=eg(this.containers,t=>-1!==t.modals.indexOf(e)),r=this.containers[n];r.restore||(r.restore=function(e,t){let n=[],r=e.container;if(!t.disableScrollLock){let e;if(function(e){let t=E(e);return t.body===e?x(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(r)){let e=function(e){let t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}(E(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight="".concat(em(r)+e,"px");let t=E(r).querySelectorAll(".mui-fixed");[].forEach.call(t,t=>{n.push({value:t.style.paddingRight,property:"padding-right",el:t}),t.style.paddingRight="".concat(em(t)+e,"px")})}if(r.parentNode instanceof DocumentFragment)e=E(r).body;else{let t=r.parentElement,n=x(r);e=(null==t?void 0:t.nodeName)==="HTML"&&"scroll"===n.getComputedStyle(t).overflowY?t:r}n.push({value:e.style.overflow,property:"overflow",el:e},{value:e.style.overflowX,property:"overflow-x",el:e},{value:e.style.overflowY,property:"overflow-y",el:e}),e.style.overflow="hidden"}return()=>{n.forEach(e=>{let{value:t,el:n,property:r}=e;t?n.style.setProperty(r,t):n.style.removeProperty(r)})}}(r,t))}remove(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this.modals.indexOf(e);if(-1===n)return n;let r=eg(this.containers,t=>-1!==t.modals.indexOf(e)),o=this.containers[r];if(o.modals.splice(o.modals.indexOf(e),1),this.modals.splice(n,1),0===o.modals.length)o.restore&&o.restore(),e.modalRef&&ev(e.modalRef,t),eh(o.container,e.mount,e.modalRef,o.hiddenSiblings,!1),this.containers.splice(r,1);else{let e=o.modals[o.modals.length-1];e.modalRef&&ev(e.modalRef,!1)}return n}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}}let eE=new ey;var ex=function(e){let{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:o=!1,manager:l=eE,closeAfterTransition:a=!1,onTransitionEnter:s,onTransitionExited:c,children:p,onClose:f,open:v,rootRef:m}=e,h=i.useRef({}),g=i.useRef(null),y=i.useRef(null),x=u(y,m),[b,R]=i.useState(!v),k=!!p&&p.props.hasOwnProperty("in"),N=!0;("false"===e["aria-hidden"]||!1===e["aria-hidden"])&&(N=!1);let P=()=>E(g.current),Z=()=>(h.current.modalRef=y.current,h.current.mount=g.current,h.current),T=()=>{l.mount(Z(),{disableScrollLock:o}),y.current&&(y.current.scrollTop=0)},w=ep(()=>{let e=("function"==typeof t?t():t)||P().body;l.add(Z(),e),y.current&&T()}),O=i.useCallback(()=>l.isTopModal(Z()),[l]),M=ep(e=>{g.current=e,e&&(v&&O()?T():y.current&&ev(y.current,N))}),C=i.useCallback(()=>{l.remove(Z(),N)},[N,l]);i.useEffect(()=>()=>{C()},[C]),i.useEffect(()=>{v?w():k&&a||C()},[v,C,k,a,w]);let I=e=>t=>{var r;null==(r=e.onKeyDown)||r.call(e,t),"Escape"===t.key&&229!==t.which&&O()&&!n&&(t.stopPropagation(),f&&f(t,"escapeKeyDown"))},S=e=>t=>{var n;null==(n=e.onClick)||n.call(e,t),t.target===t.currentTarget&&f&&f(t,"backdropClick")};return{getRootProps:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=d(e);delete n.onTransitionEnter,delete n.onTransitionExited;let o=(0,r.Z)({},n,t);return(0,r.Z)({role:"presentation"},o,{onKeyDown:I(o),ref:x})},getBackdropProps:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,r.Z)({"aria-hidden":!0},e,{onClick:S(e),open:v})},getTransitionProps:()=>({onEnter:ef(()=>{R(!1),s&&s()},null==p?void 0:p.props.onEnter),onExited:ef(()=>{R(!0),c&&c(),a&&C()},null==p?void 0:p.props.onExited)}),rootRef:x,portalRef:M,isTopModal:O,exited:b,hasTransition:k}};function eb(e){return(0,el.ZP)("MuiModal",e)}(0,ei.Z)("MuiModal",["root","hidden","backdrop"]);let eR=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],ek=e=>{let{open:t,exited:n,classes:r}=e;return(0,a.Z)({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},eb,r)},eN=(0,h.ZP)("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(e=>{let{theme:t,ownerState:n}=e;return(0,r.Z)({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0},!n.open&&n.exited&&{visibility:"hidden"})}),eP=(0,h.ZP)(ed,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),eZ=i.forwardRef(function(e,t){var n,a,s,u,c,d;let p=(0,g.i)({name:"MuiModal",props:e}),{BackdropComponent:f=eP,BackdropProps:v,className:h,closeAfterTransition:y=!1,children:E,container:x,component:b,components:R={},componentsProps:k={},disableAutoFocus:N=!1,disableEnforceFocus:P=!1,disableEscapeKeyDown:Z=!1,disablePortal:T=!1,disableRestoreFocus:w=!1,disableScrollLock:O=!1,hideBackdrop:M=!1,keepMounted:C=!1,onBackdropClick:I,open:S,slotProps:D,slots:j}=p,A=(0,o.Z)(p,eR),F=(0,r.Z)({},p,{closeAfterTransition:y,disableAutoFocus:N,disableEnforceFocus:P,disableEscapeKeyDown:Z,disablePortal:T,disableRestoreFocus:w,disableScrollLock:O,hideBackdrop:M,keepMounted:C}),{getRootProps:L,getBackdropProps:_,getTransitionProps:U,portalRef:W,isTopModal:z,exited:H,hasTransition:V}=ex((0,r.Z)({},F,{rootRef:t})),q=(0,r.Z)({},F,{exited:H}),K=ek(q),X={};if(void 0===E.props.tabIndex&&(X.tabIndex="-1"),V){let{onEnter:e,onExited:t}=U();X.onEnter=e,X.onExited=t}let Y=null!=(n=null!=(a=null==j?void 0:j.root)?a:R.Root)?n:eN,$=null!=(s=null!=(u=null==j?void 0:j.backdrop)?u:R.Backdrop)?s:f,G=null!=(c=null==D?void 0:D.root)?c:k.root,J=null!=(d=null==D?void 0:D.backdrop)?d:k.backdrop,ee=m({elementType:Y,externalSlotProps:G,externalForwardedProps:A,getSlotProps:L,additionalProps:{ref:t,as:b},ownerState:q,className:(0,l.Z)(h,null==G?void 0:G.className,null==K?void 0:K.root,!q.open&&q.exited&&(null==K?void 0:K.hidden))}),en=m({elementType:$,externalSlotProps:J,additionalProps:v,getSlotProps:e=>_((0,r.Z)({},e,{onClick:t=>{I&&I(t),null!=e&&e.onClick&&e.onClick(t)}})),className:(0,l.Z)(null==J?void 0:J.className,null==v?void 0:v.className,null==K?void 0:K.backdrop),ownerState:q});return C||S||V&&!H?(0,B.jsx)(et,{ref:W,container:x,disablePortal:T,children:(0,B.jsxs)(Y,(0,r.Z)({},ee,{children:[!M&&f?(0,B.jsx)($,(0,r.Z)({},en)):null,(0,B.jsx)(Q,{disableEnforceFocus:P,disableAutoFocus:N,disableRestoreFocus:w,isEnabled:z,open:S,children:i.cloneElement(E,X)})]}))}):null});var eT=n(2101),ew=e=>((e<1?5.11916*e**2:4.5*Math.log(e+1)+2)/100).toFixed(2);function eO(e){return(0,el.ZP)("MuiPaper",e)}(0,ei.Z)("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);let eM=["className","component","elevation","square","variant"],eC=e=>{let{square:t,elevation:n,variant:r,classes:o}=e;return(0,a.Z)({root:["root",r,!t&&"rounded","elevation"===r&&"elevation".concat(n)]},eO,o)},eI=(0,h.ZP)("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t["elevation".concat(n.elevation)]]}})(e=>{var t;let{theme:n,ownerState:o}=e;return(0,r.Z)({backgroundColor:(n.vars||n).palette.background.paper,color:(n.vars||n).palette.text.primary,transition:n.transitions.create("box-shadow")},!o.square&&{borderRadius:n.shape.borderRadius},"outlined"===o.variant&&{border:"1px solid ".concat((n.vars||n).palette.divider)},"elevation"===o.variant&&(0,r.Z)({boxShadow:(n.vars||n).shadows[o.elevation]},!n.vars&&"dark"===n.palette.mode&&{backgroundImage:"linear-gradient(".concat((0,eT.Fq)("#fff",ew(o.elevation)),", ").concat((0,eT.Fq)("#fff",ew(o.elevation)),")")},n.vars&&{backgroundImage:null==(t=n.vars.overlays)?void 0:t[o.elevation]}))}),eS=i.forwardRef(function(e,t){let n=(0,g.i)({props:e,name:"MuiPaper"}),{className:i,component:a="div",elevation:s=1,square:u=!1,variant:c="elevation"}=n,d=(0,o.Z)(n,eM),p=(0,r.Z)({},n,{component:a,elevation:s,square:u,variant:c}),f=eC(p);return(0,B.jsx)(eI,(0,r.Z)({as:a,ownerState:p,className:(0,l.Z)(f.root,i),ref:t},d))});function eD(e){return(0,el.ZP)("MuiPopover",e)}(0,ei.Z)("MuiPopover",["root","paper"]);let ej=["onEntering"],eA=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],eF=["slotProps"];function eL(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function e_(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function eU(e){return[e.horizontal,e.vertical].map(e=>"number"==typeof e?"".concat(e,"px"):e).join(" ")}function eW(e){return"function"==typeof e?e():e}let ez=e=>{let{classes:t}=e;return(0,a.Z)({root:["root"],paper:["paper"]},eD,t)},eH=(0,h.ZP)(eZ,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),eV=(0,h.ZP)(eS,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0});var eB=i.forwardRef(function(e,t){var n,a,s;let d=(0,g.i)({props:e,name:"MuiPopover"}),{action:p,anchorEl:f,anchorOrigin:v={vertical:"top",horizontal:"left"},anchorPosition:h,anchorReference:b="anchorEl",children:R,className:k,container:N,elevation:P=8,marginThreshold:Z=16,open:T,PaperProps:w={},slots:O,slotProps:M,transformOrigin:C={vertical:"top",horizontal:"left"},TransitionComponent:I=$,transitionDuration:S="auto",TransitionProps:{onEntering:D}={},disableScrollLock:j=!1}=d,A=(0,o.Z)(d.TransitionProps,ej),F=(0,o.Z)(d,eA),L=null!=(n=null==M?void 0:M.paper)?n:w,_=i.useRef(),U=u(_,L.ref),W=(0,r.Z)({},d,{anchorOrigin:v,anchorReference:b,elevation:P,marginThreshold:Z,externalPaperSlotProps:L,transformOrigin:C,TransitionComponent:I,transitionDuration:S,TransitionProps:A}),z=ez(W),H=i.useCallback(()=>{if("anchorPosition"===b)return h;let e=eW(f),t=(e&&1===e.nodeType?e:E(_.current).body).getBoundingClientRect();return{top:t.top+eL(t,v.vertical),left:t.left+e_(t,v.horizontal)}},[f,v.horizontal,v.vertical,h,b]),V=i.useCallback(e=>({vertical:eL(e,C.vertical),horizontal:e_(e,C.horizontal)}),[C.horizontal,C.vertical]),q=i.useCallback(e=>{let t={width:e.offsetWidth,height:e.offsetHeight},n=V(t);if("none"===b)return{top:null,left:null,transformOrigin:eU(n)};let r=H(),o=r.top-n.vertical,i=r.left-n.horizontal,l=o+t.height,a=i+t.width,s=x(eW(f)),u=s.innerHeight-Z,c=s.innerWidth-Z;if(null!==Z&&o<Z){let e=o-Z;o-=e,n.vertical+=e}else if(null!==Z&&l>u){let e=l-u;o-=e,n.vertical+=e}if(null!==Z&&i<Z){let e=i-Z;i-=e,n.horizontal+=e}else if(a>c){let e=a-c;i-=e,n.horizontal+=e}return{top:"".concat(Math.round(o),"px"),left:"".concat(Math.round(i),"px"),transformOrigin:eU(n)}},[f,b,H,V,Z]),[K,X]=i.useState(T),Y=i.useCallback(()=>{let e=_.current;if(!e)return;let t=q(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,X(!0)},[q]);i.useEffect(()=>(j&&window.addEventListener("scroll",Y),()=>window.removeEventListener("scroll",Y)),[f,j,Y]),i.useEffect(()=>{T&&Y()}),i.useImperativeHandle(p,()=>T?{updatePosition:()=>{Y()}}:null,[T,Y]),i.useEffect(()=>{if(!T)return;let e=y(()=>{Y()}),t=x(f);return t.addEventListener("resize",e),()=>{e.clear(),t.removeEventListener("resize",e)}},[f,T,Y]);let G=S;"auto"!==S||I.muiSupportAuto||(G=void 0);let J=N||(f?E(eW(f)).body:void 0),Q=null!=(a=null==O?void 0:O.root)?a:eH,ee=null!=(s=null==O?void 0:O.paper)?s:eV,et=m({elementType:ee,externalSlotProps:(0,r.Z)({},L,{style:K?L.style:(0,r.Z)({},L.style,{opacity:0})}),additionalProps:{elevation:P,ref:U},ownerState:W,className:(0,l.Z)(z.paper,null==L?void 0:L.className)}),en=m({elementType:Q,externalSlotProps:(null==M?void 0:M.root)||{},externalForwardedProps:F,additionalProps:{ref:t,slotProps:{backdrop:{invisible:!0}},container:J,open:T},ownerState:W,className:(0,l.Z)(z.root,k)}),{slotProps:er}=en,eo=(0,o.Z)(en,eF);return(0,B.jsx)(Q,(0,r.Z)({},eo,!c(Q)&&{slotProps:er,disableScrollLock:j},{children:(0,B.jsx)(I,(0,r.Z)({appear:!0,in:T,onEntering:(e,t)=>{D&&D(e,t),Y()},onExited:()=>{X(!1)},timeout:G},A,{children:(0,B.jsx)(ee,(0,r.Z)({},et,{children:R}))}))}))})},88507:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
2
|
+
* @license lucide-react v0.407.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/let r=(0,n(60998).Z)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},13626:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,n(60998).Z)("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]])},47603:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
12
|
+
* @license lucide-react v0.407.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/let r=(0,n(60998).Z)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},28586:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
17
|
+
* @license lucide-react v0.407.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/let r=(0,n(60998).Z)("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]])},43767:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
22
|
+
* @license lucide-react v0.407.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/let r=(0,n(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},6327:function(e,t,n){n.d(t,{x8:function(){return ea},VY:function(){return eo},dk:function(){return el},aV:function(){return er},h_:function(){return en},fC:function(){return ee},Dx:function(){return ei},xz:function(){return et}});var r=n(67294),o=n(36206),i=n(28771),l=n(25360),a=n(91276),s=n(77342),u=n(46063),c=n(95420),d=n(42651),p=n(9981),f=e=>{let t,n;let{present:o,children:l}=e,a=function(e){var t,n;let[o,i]=r.useState(),l=r.useRef(null),a=r.useRef(e),s=r.useRef("none"),[u,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>n[e][t]??e,t));return r.useEffect(()=>{let e=v(l.current);s.current="mounted"===u?e:"none"},[u]),(0,p.b)(()=>{let t=l.current,n=a.current;if(n!==e){let r=s.current,o=v(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),a.current=e}},[e,c]),(0,p.b)(()=>{if(o){let e;let t=o.ownerDocument.defaultView??window,n=n=>{let r=v(l.current).includes(n.animationName);if(n.target===o&&r&&(c("ANIMATION_END"),!a.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(s.current=v(l.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}c("ANIMATION_END")},[o,c]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:r.useCallback(e=>{l.current=e?getComputedStyle(e):null,i(e)},[])}}(o),s="function"==typeof l?l({present:a.isPresent}):r.Children.only(l),u=(0,i.e)(a.ref,(t=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?s.ref:(t=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?s.props.ref:s.props.ref||s.ref);return"function"==typeof l||a.isPresent?r.cloneElement(s,{ref:u}):null};function v(e){return e?.animationName||"none"}f.displayName="Presence";var m=n(75320),h=n(27552),g=n(6223),y=n(23541),E=n(88426),x=n(85893),b="Dialog",[R,k]=(0,l.b)(b),[N,P]=R(b),Z=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:i,onOpenChange:l,modal:u=!0}=e,c=r.useRef(null),d=r.useRef(null),[p,f]=(0,s.T)({prop:o,defaultProp:i??!1,onChange:l,caller:b});return(0,x.jsx)(N,{scope:t,triggerRef:c,contentRef:d,contentId:(0,a.M)(),titleId:(0,a.M)(),descriptionId:(0,a.M)(),open:p,onOpenChange:f,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),modal:u,children:n})};Z.displayName=b;var T="DialogTrigger",w=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,l=P(T,n),a=(0,i.e)(t,l.triggerRef);return(0,x.jsx)(m.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":X(l.open),...r,ref:a,onClick:(0,o.M)(e.onClick,l.onOpenToggle)})});w.displayName=T;var O="DialogPortal",[M,C]=R(O,{forceMount:void 0}),I=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:i}=e,l=P(O,t);return(0,x.jsx)(M,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,x.jsx)(f,{present:n||l.open,children:(0,x.jsx)(d.h,{asChild:!0,container:i,children:e})}))})};I.displayName=O;var S="DialogOverlay",D=r.forwardRef((e,t)=>{let n=C(S,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=P(S,e.__scopeDialog);return i.modal?(0,x.jsx)(f,{present:r||i.open,children:(0,x.jsx)(A,{...o,ref:t})}):null});D.displayName=S;var j=(0,E.Z8)("DialogOverlay.RemoveScroll"),A=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=P(S,n);return(0,x.jsx)(g.Z,{as:j,allowPinchZoom:!0,shards:[o.contentRef],children:(0,x.jsx)(m.WV.div,{"data-state":X(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),F="DialogContent",L=r.forwardRef((e,t)=>{let n=C(F,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=P(F,e.__scopeDialog);return(0,x.jsx)(f,{present:r||i.open,children:i.modal?(0,x.jsx)(_,{...o,ref:t}):(0,x.jsx)(U,{...o,ref:t})})});L.displayName=F;var _=r.forwardRef((e,t)=>{let n=P(F,e.__scopeDialog),l=r.useRef(null),a=(0,i.e)(t,n.contentRef,l);return r.useEffect(()=>{let e=l.current;if(e)return(0,y.Ry)(e)},[]),(0,x.jsx)(W,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.M)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.M)(e.onFocusOutside,e=>e.preventDefault())})}),U=r.forwardRef((e,t)=>{let n=P(F,e.__scopeDialog),o=r.useRef(!1),i=r.useRef(!1);return(0,x.jsx)(W,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),W=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:l,onCloseAutoFocus:a,...s}=e,d=P(F,n),p=r.useRef(null),f=(0,i.e)(t,p);return(0,h.EW)(),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:l,onUnmountAutoFocus:a,children:(0,x.jsx)(u.XB,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":X(d.open),...s,ref:f,onDismiss:()=>d.onOpenChange(!1)})}),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(J,{titleId:d.titleId}),(0,x.jsx)(Q,{contentRef:p,descriptionId:d.descriptionId})]})]})}),z="DialogTitle",H=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=P(z,n);return(0,x.jsx)(m.WV.h2,{id:o.titleId,...r,ref:t})});H.displayName=z;var V="DialogDescription",B=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=P(V,n);return(0,x.jsx)(m.WV.p,{id:o.descriptionId,...r,ref:t})});B.displayName=V;var q="DialogClose",K=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=P(q,n);return(0,x.jsx)(m.WV.button,{type:"button",...r,ref:t,onClick:(0,o.M)(e.onClick,()=>i.onOpenChange(!1))})});function X(e){return e?"open":"closed"}K.displayName=q;var Y="DialogTitleWarning",[$,G]=(0,l.k)(Y,{contentName:F,titleName:z,docsSlug:"dialog"}),J=({titleId:e})=>{let t=G(Y),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
27
|
+
|
|
28
|
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
29
|
+
|
|
30
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=Z,et=w,en=I,er=D,eo=L,ei=H,el=B,ea=K},12003:function(e,t,n){n.d(t,{j:function(){return l}});var r=n(90512);let o=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=r.W,l=(e,t)=>n=>{var r;if((null==t?void 0:t.variants)==null)return i(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:l,defaultVariants:a}=t,s=Object.keys(l).map(e=>{let t=null==n?void 0:n[e],r=null==a?void 0:a[e];if(null===t)return null;let i=o(t)||o(r);return l[e][i]}),u=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return i(e,s,null==t?void 0:null===(r=t.compoundVariants)||void 0===r?void 0:r.reduce((e,t)=>{let{class:n,className:r,...o}=t;return Object.entries(o).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...a,...u}[t]):({...a,...u})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9826,2350
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9826,2350],{94966:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters/[cluster]/[job]",function(){return s(50190)}])},27325:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});/**
|
|
2
2
|
* @license lucide-react v0.407.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[722],{58706:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters/[cluster]",function(){return s(56996)}])},1125:function(e,t,s){"use strict";s.d(t,{C:function(){return c}});var a=s(85893),r=s(67294),l=s(34209),n=s(84283);let i=e=>{if(!e||"string"!=typeof e)return e;let t=e.split("\n"),s=[];for(let e=0;e<t.length;e++){let a=t[e];if(""===a.trim()){let r=!1,l=0;for(let s=e-1;s>=0;s--){let e=t[s],a=e.trim();if(a&&e.match(/:\s*[|>]\s*$/)){r=!0;for(let e=s+1;e<t.length;e++){let s=t[e];if(s.trim()){l=s.search(/\S/);break}}break}if(a&&0===e.search(/\S/))break}if(r)for(let r=e+1;r<t.length;r++){let e=t[r];if(e.trim()){e.search(/\S/)>=l?s.push(" #YAML_BLANK_LINE_MARKER#"):s.push(a);break}}else s.push(a)}else s.push(a)}return s.join("\n")};function c(e){let{children:t,className:s=""}=e,c=(0,r.useRef)(null),o=i(t);(0,r.useEffect)(()=>{if(c.current){let e=c.current;setTimeout(()=>{let t;let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);for(;t=s.nextNode();)t.textContent&&t.textContent.includes("#YAML_BLANK_LINE_MARKER#")&&(t.textContent=t.textContent.replace(/#YAML_BLANK_LINE_MARKER#/g,""))},0)}},[o]);let d={...n.mQ,'code[class*="language-"]':{...n.mQ['code[class*="language-"]'],whiteSpace:"pre !important"},'pre[class*="language-"]':{...n.mQ['pre[class*="language-"]'],whiteSpace:"pre !important"}};return(0,a.jsx)("div",{ref:c,className:s,children:(0,a.jsx)(l.Z,{language:"yaml",style:d,customStyle:{margin:0,padding:0,background:"transparent",fontSize:"0.875rem",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace'},wrapLines:!0,wrapLongLines:!0,showLineNumbers:!1,useInlineStyles:!0,children:o})})}},84303:function(e,t,s){"use strict";s.d(t,{_q:function(){return l},pJ:function(){return c}});var a=s(1272);let r={lineWidth:-1,quotingType:"'",forceQuotes:!1,noRefs:!0,sortKeys:!1,condenseFlow:!1,indent:2},l=e=>{if(!e)return"No YAML available";try{let t=a.ZP.load(e),s=a.ZP.dump(t,r).split("\n"),l=[],n=-1;for(let e=0;e<s.length;e++){let t=s[e],a=t.search(/\S/);0===a&&n>=0&&e>0&&l.push(""),l.push(t),n=a}return l.join("\n").trim()}catch(t){return console.error("YAML formatting error:",t),e}},n=e=>"string"==typeof e?e.substring(0,50)+"...":e&&e.name?"name: ".concat(e.name):e&&e.resources?"Task configuration":"YAML document",i=(e,t)=>{try{let s=a.ZP.load(e),l=a.ZP.dump(s,r).split("\n"),i=[],c=-1;for(let e=0;e<l.length;e++){let t=l[e],s=t.search(/\S/);0===s&&c>=0&&e>0&&i.push(""),i.push(t),c=s}return{index:t,content:i.join("\n").trim(),preview:n(s)}}catch(s){return console.error("YAML formatting error for document ".concat(t,":"),s),{index:t,content:e,preview:"Invalid YAML"}}},c=e=>{if(!e)return[];try{let t=[],s=e.split(/^---$/m);for(let e=0;e<s.length;e++){let a=s[e].trim();a&&""!==a&&t.push(a)}return(t.length>1?t.slice(1):t).map((e,t)=>i(e,t))}catch(t){return console.error("YAML formatting error:",t),[{index:0,content:e,preview:"Invalid YAML"}]}}},56996:function(e,t,s){"use strict";s.r(t);var a=s(85893),r=s(67294),l=s(55739),n=s(23015),i=s(11163);s(6135);var c=s(41664),o=s.n(c),d=s(39037),u=s(99307);s(37673);var m=s(23266),x=s(6378),h=s(13626),f=s(70282),g=s(27325),v=s(45895),j=s(6639);s(1272);var b=s(36989),p=s(17853),N=s(92128),y=s(23001),_=s(9008),w=s.n(_),S=s(84303),C=s(20546),k=s(1125);let M=(e,t)=>{let s="",a="";return e>=0&&(s=e+"m",a=" "),t&&(s+="".concat(a,"(down)")),""===s&&(s="-"),s};function L(e){var t,s,l,i;let{clusterData:c,clusterJobData:d,clusterJobsLoading:m,refreshClusterJobsOnly:x,isVSCodeModalOpen:h,setIsVSCodeModalOpen:p,timeRange:N,handleTimeRangePreset:y,buildGrafanaMetricsUrl:_,matchedClusterName:w,isLoadingClusterMatch:L,isGrafanaAvailable:A,isHistoricalCluster:E=!1}=e,[R,T]=(0,r.useState)(!1),[O,P]=(0,r.useState)(!1),[I,Z]=(0,r.useState)(!1),U=async()=>{try{let e=c.task_yaml||c.last_creation_yaml,t=(0,S._q)(e);await navigator.clipboard.writeText(t),P(!0),setTimeout(()=>P(!1),2e3)}catch(e){console.error("Failed to copy YAML to clipboard:",e)}},Y=async()=>{try{let e=c.command||c.last_creation_command;await navigator.clipboard.writeText(e),Z(!0),setTimeout(()=>Z(!1),2e3)}catch(e){console.error("Failed to copy command to clipboard:",e)}},D=(null==c?void 0:c.last_creation_command)||(null==c?void 0:c.last_creation_yaml)||(null==c?void 0:c.command)||(null==c?void 0:c.task_yaml);return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,a.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,a.jsx)("h3",{className:"text-lg font-semibold",children:E?"Historical Cluster Details":"Details"})}),(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Status"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(u.OE,{status:c.status})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cluster"}),(0,a.jsx)("div",{className:"text-base mt-1",children:c.cluster_name_on_cloud?(0,a.jsx)(b.Md,{content:"Name on ".concat(c.cloud||(null===(s=c.infra)||void 0===s?void 0:null===(t=s.split("(")[0])||void 0===t?void 0:t.trim())||"cloud",": ").concat(c.cluster_name_on_cloud),className:"text-sm text-muted-foreground",children:(0,a.jsx)("span",{className:"border-b border-dotted border-gray-400 cursor-help",children:c.cluster||c.name})}):c.cluster||c.name})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"User"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(C.H,{username:c.user,userHash:c.user_hash})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:E?"Cloud":"Infra"}),(0,a.jsx)("div",{className:"text-base mt-1",children:E?c.cloud||"N/A":c.infra?(0,a.jsx)(b.Md,{content:c.full_infra||c.infra,className:"text-sm text-muted-foreground",children:(0,a.jsxs)("span",{children:[(0,a.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:c.cloud||c.infra.split("(")[0].trim()}),c.infra.includes("(")&&(0,a.jsx)("span",{children:" "+c.infra.substring(c.infra.indexOf("("))})]})}):"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Resources"}),(0,a.jsx)("div",{className:"text-base mt-1",children:c.resources_str_full||c.resources_str||"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Started"}),(0,a.jsx)("div",{className:"text-base mt-1",children:c.time?(0,b.xn)(new Date(c.time)):"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Last Event"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(b.Md,{content:c.last_event||"-",className:"text-sm text-muted-foreground",children:(0,a.jsx)("span",{children:c.last_event||"-"})})})]}),E?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Duration"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(e=>{if(!e||0===e)return"-";let t=e=Math.floor(e),s="",a=0;for(let e of[{value:31536e3,label:"y"},{value:2592e3,label:"mo"},{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(t>=e.value&&a<2){let r=Math.floor(t/e.value);s+="".concat(r).concat(e.label," "),t%=e.value,a++}return s.trim()||"0s"})(c.duration)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cost"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(e=>{if(null==e||0===e)return"-";let t=Number(e);return isNaN(t)?"-":"$".concat(t.toFixed(2))})(c.total_cost)})]})]}):(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Autostop"}),(0,a.jsx)("div",{className:"text-base mt-1",children:M(c.autostop,c.to_down)})]}),D&&(0,a.jsxs)("div",{className:"col-span-2",children:[(c.command||c.last_creation_command)&&(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Entrypoint"}),c.command&&(0,a.jsx)(b.WH,{content:I?"Copied!":"Copy command",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:Y,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:I?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(g.Z,{className:"w-4 h-4"})})})]}),(0,a.jsxs)("div",{className:"space-y-4 mt-3",children:[(c.command||c.last_creation_command)&&(0,a.jsx)("div",{children:(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3",children:(0,a.jsx)("code",{className:"text-sm text-gray-800 font-mono break-all",children:c.command||c.last_creation_command})})}),(c.task_yaml||c.last_creation_yaml)&&"{}"!==c.task_yaml&&"{}"!==c.last_creation_yaml&&!(null===(l=c.cluster||c.name)||void 0===l?void 0:l.startsWith("sky-jobs-controller-"))&&!(null===(i=c.cluster||c.name)||void 0===i?void 0:i.startsWith("sky-serve-controller-"))&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center mb-2",children:[(0,a.jsxs)("button",{onClick:()=>{T(!R)},className:"flex items-center text-left focus:outline-none text-gray-700 hover:text-gray-900 transition-colors duration-200",children:[R?(0,a.jsx)(v.Z,{className:"w-4 h-4 mr-1"}):(0,a.jsx)(j.Z,{className:"w-4 h-4 mr-1"}),(0,a.jsx)("span",{className:"text-base",children:"Show SkyPilot YAML"})]}),(0,a.jsx)(b.WH,{content:O?"Copied!":"Copy YAML",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:U,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:O?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(g.Z,{className:"w-4 h-4"})})})]}),R&&(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 max-h-96 overflow-y-auto",children:(0,a.jsx)(k.C,{className:"whitespace-pre-wrap",children:(0,S._q)(c.task_yaml||c.last_creation_yaml)})})]})]})]})]})})]})}),c&&c.full_infra&&c.full_infra.includes("Kubernetes")&&!c.full_infra.includes("SSH")&&!c.full_infra.includes("ssh")&&A&&(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsx)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:(0,a.jsxs)("div",{className:"p-5",children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"GPU Metrics"})}),(0,a.jsxs)("div",{className:"mb-4 p-4 bg-gray-50 rounded-md border border-gray-200",children:[(0,a.jsx)("div",{className:"flex flex-col sm:flex-row gap-4 items-start sm:items-center",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:"Time Range:"}),(0,a.jsx)("div",{className:"flex gap-1",children:[{label:"15m",value:"15m"},{label:"1h",value:"1h"},{label:"6h",value:"6h"},{label:"24h",value:"24h"},{label:"7d",value:"7d"}].map(e=>(0,a.jsx)("button",{onClick:()=>y(e.value),className:"px-2 py-1 text-xs font-medium rounded border transition-colors ".concat(N.from==="now-".concat(e.value)&&"now"===N.to?"bg-sky-blue text-white border-sky-blue":"bg-white text-gray-600 border-gray-300 hover:bg-gray-50"),children:e.label},e.value))})]})}),(0,a.jsxs)("div",{className:"mt-2 text-xs text-gray-500",children:["Showing: ",null==c?void 0:c.cluster," • Time: ",N.from," to"," ",N.to,L&&(0,a.jsx)("span",{children:" • Finding cluster data..."})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:_("1"),width:"100%",height:"400",frameBorder:"0",title:"GPU Utilization",className:"rounded"},"gpu-util-".concat(null==c?void 0:c.cluster,"-").concat(N.from,"-").concat(N.to))})}),(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:_("2"),width:"100%",height:"400",frameBorder:"0",title:"GPU Memory Utilization",className:"rounded"},"gpu-memory-".concat(null==c?void 0:c.cluster,"-").concat(N.from,"-").concat(N.to))})}),(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:_("4"),width:"100%",height:"400",frameBorder:"0",title:"GPU Power Usage",className:"rounded"},"gpu-power-".concat(null==c?void 0:c.cluster,"-").concat(N.from,"-").concat(N.to))})})]})]})})}),!E&&(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsx)(n.ClusterJobs,{clusterName:c.cluster,clusterJobData:d,loading:m,refreshClusterJobsOnly:x,workspace:c.workspace})})]})}t.default=function(){let e=(0,i.useRouter)(),{cluster:t}=e.query,[s,n]=(0,r.useState)(!1),[c,u]=(0,r.useState)(!0),[f,g]=(0,r.useState)(!1),[v,j]=(0,r.useState)(!1),[_,S]=(0,r.useState)(null),[C,k]=(0,r.useState)(!1),[M,A]=(0,r.useState)(!1),E=(0,y.X)(),[R,T]=(0,r.useState)({from:"now-1h",to:"now"}),{clusterData:O,clusterJobData:P,loading:I,clusterDetailsLoading:Z,clusterJobsLoading:U,refreshData:Y,refreshClusterJobsOnly:D}=(0,m.QL)({cluster:t}),[F,G]=(0,r.useState)(null),[H,J]=(0,r.useState)(!1),[W,K]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(async()=>{K(await (0,p.TO)())})()},[]);let z=(0,r.useCallback)(async()=>{if(W&&(null==O?void 0:O.cluster)){J(!0);try{let e=(0,p.ki)(),t=await fetch("".concat(e).concat("/api/datasources/proxy/1/api/v1/label/label_skypilot_cluster/values"),{method:"GET",credentials:"include",headers:{Accept:"application/json"}});if(t.ok){let e=await t.json();if(e.data&&e.data.length>0){let t=e.data.find(e=>e.startsWith(O.cluster));t&&G(t)}}}catch(e){console.error("Error fetching matching cluster:",e)}finally{J(!1)}}},[null==O?void 0:O.cluster,W]);(0,r.useEffect)(()=>{W&&(null==O?void 0:O.cluster)&&z()},[null==O?void 0:O.cluster,z,W]);let B=e=>{let t=(0,p.ki)(),s=F||(null==O?void 0:O.cluster)||"$__all";return"".concat(t,"/d-solo/skypilot-dcgm-gpu/skypilot-dcgm-gpu-metrics?orgId=1&from=").concat(encodeURIComponent(R.from),"&to=").concat(encodeURIComponent(R.to),"&timezone=browser&var-cluster=").concat(encodeURIComponent(s),"&var-node=$__all&var-gpu=$__all&theme=light&panelId=").concat(e,"&__feature.dashboardSceneSolo")};r.useEffect(()=>{!Z&&c&&u(!1)},[Z,c]),r.useEffect(()=>{let e=async()=>{if(t&&!Z&&!O){A(!0);try{let e=(await x.default.get(m.uR,[t])).find(e=>e.cluster_hash===t||e.cluster===t);e&&(S(e),k(!0))}catch(e){console.error("Error fetching cluster history:",e)}finally{A(!1)}}};Z||O||e()},[t,Z,O]);let $=async()=>{n(!0),await Y(),n(!1)},q=e=>{T({from:"now-".concat(e),to:"now"})};if(!e.isReady)return(0,a.jsx)("div",{children:"Loading..."});let Q=t?"Cluster: ".concat(t," | SkyPilot Dashboard"):"Cluster Details | SkyPilot Dashboard";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(w(),{children:(0,a.jsx)("title",{children:Q})}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,a.jsxs)("div",{className:"text-base flex items-center",children:[(0,a.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline",children:"Sky Clusters"}),(0,a.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,a.jsx)(o(),{href:"/clusters/".concat(t),className:"text-sky-blue hover:underline",children:t})]}),(0,a.jsx)("div",{className:"text-sm flex items-center",children:(0,a.jsxs)("div",{className:"text-sm flex items-center",children:[(Z||s)&&(0,a.jsxs)("div",{className:"flex items-center mr-4",children:[(0,a.jsx)(l.Z,{size:15,className:"mt-0"}),(0,a.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),O&&(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(b.WH,{content:"Refresh",className:"text-sm text-muted-foreground",children:(0,a.jsxs)("button",{onClick:$,disabled:Z||s,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,a.jsx)(h.Z,{className:"w-4 h-4 mr-1.5"}),!E&&(0,a.jsx)("span",{children:"Refresh"})]})}),(0,a.jsx)(d.Status2Actions,{withLabel:!0,cluster:O.cluster,status:O.status,onOpenSSHModal:()=>{g(!0)},onOpenVSCodeModal:()=>{j(!0)}})]})]})})]}),Z&&c||M?(0,a.jsxs)("div",{className:"flex justify-center items-center py-12",children:[(0,a.jsx)(l.Z,{size:24,className:"mr-2"}),(0,a.jsx)("span",{className:"text-gray-500",children:"Loading cluster details..."})]}):O?(0,a.jsx)(L,{clusterData:O,clusterJobData:P,clusterJobsLoading:U,refreshClusterJobsOnly:D,isVSCodeModalOpen:v,setIsVSCodeModalOpen:j,timeRange:R,handleTimeRangePreset:q,buildGrafanaMetricsUrl:B,matchedClusterName:F,isLoadingClusterMatch:H,isGrafanaAvailable:W,isHistoricalCluster:!1}):C&&_?(0,a.jsx)(L,{clusterData:_,clusterJobData:[],clusterJobsLoading:!1,refreshClusterJobsOnly:()=>{},isVSCodeModalOpen:!1,setIsVSCodeModalOpen:()=>{},timeRange:R,handleTimeRangePreset:q,buildGrafanaMetricsUrl:B,matchedClusterName:null,isLoadingClusterMatch:!1,isGrafanaAvailable:!1,isHistoricalCluster:!0}):(0,a.jsx)("div",{className:"flex justify-center items-center py-12",children:(0,a.jsx)("span",{className:"text-gray-500",children:"Cluster not found in active clusters or history."})}),(0,a.jsx)(N.Oh,{isOpen:f,onClose:()=>g(!1),cluster:t}),(0,a.jsx)(N._R,{isOpen:v,onClose:()=>j(!1),cluster:t})]})]})}},17853:function(e,t,s){"use strict";s.d(t,{TO:function(){return l},ki:function(){return n}});let a=null,r=null,l=async()=>null!==a?a:r||(r=(async()=>{try{let e="".concat(window.location.origin,"/grafana"),t=await fetch("".concat(e,"/api/health"),{method:"GET",credentials:"include",headers:{Accept:"application/json"},signal:AbortSignal.timeout(5e3)});return 200==t.status}catch(e){return console.debug("Grafana availability check failed:",e),a=!1,!1}finally{r=null}})()),n=()=>"".concat(window.location.origin,"/grafana")}},function(e){e.O(0,[616,6130,5739,7411,1272,7359,6212,6989,3850,8969,6990,6135,1121,6601,3015,6856,1871,2888,9774,179],function(){return e(e.s=58706)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7810],{45833:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters",function(){return t(23450)}])},23450:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return l}});var r=t(85893);t(67294);var s=t(9008),u=t.n(s),i=t(5152);let c=t.n(i)()(()=>Promise.all([t.e(616),t.e(6130),t.e(5739),t.e(7411),t.e(1272),t.e(6989),t.e(3850),t.e(8969),t.e(6990),t.e(6135),t.e(1121),t.e(6601),t.e(6856),t.e(1871),t.e(2369)]).then(t.bind(t,39037)).then(e=>e.Clusters),{loadableGenerated:{webpack:()=>[39037]},ssr:!1});function l(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u(),{children:(0,r.jsx)("title",{children:"Clusters | SkyPilot Dashboard"})}),(0,r.jsx)(c,{})]})}},9008:function(e,n,t){e.exports=t(37219)}},function(e){e.O(0,[2888,9774,179],function(){return e(e.s=45833)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1233],{61803:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/infra/[context]",function(){return t(1200)}])},1200:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return o}});var r=t(85893);t(67294);var i=t(9008),s=t.n(i),u=t(5152);let c=t.n(u)()(()=>Promise.all([t.e(616),t.e(6130),t.e(5739),t.e(7411),t.e(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1233],{61803:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/infra/[context]",function(){return t(1200)}])},1200:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return o}});var r=t(85893);t(67294);var i=t(9008),s=t.n(i),u=t(5152);let c=t.n(u)()(()=>Promise.all([t.e(616),t.e(6130),t.e(5739),t.e(7411),t.e(4937),t.e(6989),t.e(3850),t.e(8969),t.e(6990),t.e(6135),t.e(1121),t.e(6856),t.e(3294)]).then(t.bind(t,53294)).then(e=>e.GPUs),{loadableGenerated:{webpack:()=>[53294]},ssr:!1});function o(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s(),{children:(0,r.jsx)("title",{children:"Infra | SkyPilot Dashboard"})}),(0,r.jsx)(c,{})]})}},9008:function(e,n,t){e.exports=t(37219)}},function(e){e.O(0,[2888,9774,179],function(){return e(e.s=61803)}),_N_E=e.O()}]);
|
sky/dashboard/out/_next/static/chunks/pages/{infra-aabba60d57826e0f.js → infra-910a22500c50596f.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1588],{56206:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/infra",function(){return t(89054)}])},89054:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return c}});var r=t(85893);t(67294);var i=t(9008),s=t.n(i),u=t(5152);let a=t.n(u)()(()=>Promise.all([t.e(616),t.e(6130),t.e(5739),t.e(7411),t.e(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1588],{56206:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/infra",function(){return t(89054)}])},89054:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return c}});var r=t(85893);t(67294);var i=t(9008),s=t.n(i),u=t(5152);let a=t.n(u)()(()=>Promise.all([t.e(616),t.e(6130),t.e(5739),t.e(7411),t.e(4937),t.e(6989),t.e(3850),t.e(8969),t.e(6990),t.e(6135),t.e(1121),t.e(6856),t.e(3294)]).then(t.bind(t,53294)).then(e=>e.GPUs),{loadableGenerated:{webpack:()=>[53294]},ssr:!1});function c(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s(),{children:(0,r.jsx)("title",{children:"Infra | SkyPilot Dashboard"})}),(0,r.jsx)(a,{})]})}},9008:function(e,n,t){e.exports=t(37219)}},function(e){e.O(0,[2888,9774,179],function(){return e(e.s=56206)}),_N_E=e.O()}]);
|