@omniviewdev/ui 0.1.9 → 0.1.10

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.
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("react/jsx-runtime"),o=require("@mui/material/Box"),x=require("./CopyButton-CACe3RCF.cjs");function l({children:r,lineNumbers:a=!1,copy:i=!0,maxHeight:d,wrap:n=!1,sx:t}){const c=r.split(`
1
+ "use strict";const e=require("react/jsx-runtime"),o=require("@mui/material/Box"),x=require("./CopyButton-3fq1UAiv.cjs");function l({children:r,lineNumbers:a=!1,copy:i=!0,maxHeight:d,wrap:n=!1,sx:t}){const c=r.split(`
2
2
  `);return e.jsxs(o,{sx:{position:"relative",bgcolor:"var(--ov-bg-surface-inset)",borderRadius:"6px",border:"1px solid var(--ov-border-muted)",overflow:"hidden",...typeof t=="object"&&!Array.isArray(t)?t:{}},children:[i&&e.jsx(o,{sx:{position:"absolute",top:4,right:4,zIndex:1},children:e.jsx(x.CopyButton,{value:r,size:"xs"})}),e.jsx(o,{component:"pre",sx:{m:0,p:1.5,pr:i?5:1.5,overflow:"auto",maxHeight:d,fontFamily:"var(--ov-font-mono)",fontSize:"13px",lineHeight:1.6,color:"var(--ov-fg-default)",whiteSpace:n?"pre-wrap":"pre",wordBreak:n?"break-all":void 0},children:a?e.jsx(o,{component:"table",sx:{borderCollapse:"collapse",width:"100%"},children:e.jsx("tbody",{children:c.map((p,s)=>e.jsxs("tr",{children:[e.jsx(o,{component:"td",sx:{pr:2,pl:.5,textAlign:"right",userSelect:"none",color:"var(--ov-fg-faint)",width:1,whiteSpace:"nowrap",verticalAlign:"top"},children:s+1}),e.jsx("td",{children:p})]},s))})}):e.jsx("code",{children:r})})]})}l.displayName="CodeBlock";exports.CodeBlock=l;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as o } from "react/jsx-runtime";
2
2
  import e from "@mui/material/Box";
3
- import { C as f } from "./CopyButton-DPBgL0K8.js";
3
+ import { C as f } from "./CopyButton-DWVcqdPe.js";
4
4
  function v({
5
5
  children: r,
6
6
  lineNumbers: p = !1,
@@ -0,0 +1 @@
1
+ "use strict";const r=require("react/jsx-runtime"),l=require("react"),q=require("@mui/icons-material/ContentCopy"),I=require("@mui/icons-material/Check"),b=require("@mui/material/IconButton"),M=require("@mui/material/CircularProgress"),a=require("./types.cjs"),d=l.forwardRef(function({children:t,color:s="neutral",emphasis:e,size:o="sm",shape:c="rounded",loading:n=!1,disabled:x,onClick:y,title:f,sx:u,...h},B){const S=a.toMuiColor(s),j=a.toMuiSize(o),p={xs:24,sm:32,md:40,lg:48,xl:56},C={xs:14,sm:18,md:22,lg:26,xl:30};return r.jsx(b,{ref:B,color:S,size:j,disabled:x||n,onClick:y,title:f,sx:{borderRadius:a.toBorderRadius(c),width:p[o],height:p[o],fontSize:C[o],...typeof u=="object"&&!Array.isArray(u)?u:{}},...h,children:n?r.jsx(M,{size:C[o]-4,color:"inherit"}):t})});d.displayName="IconButton";function m({value:i,size:t="sm",label:s}){const[e,o]=l.useState(!1),c=l.useCallback(()=>{navigator.clipboard.writeText(i).then(()=>{o(!0),setTimeout(()=>o(!1),1500)})},[i]),n=t==="xs"?12:t==="sm"?14:t==="md"?16:18;return r.jsx(d,{size:t,color:e?"success":"neutral",onClick:c,"aria-label":s??(e?"Copied":"Copy to clipboard"),title:s??(e?"Copied!":"Copy"),children:e?r.jsx(I,{sx:{fontSize:n}}):r.jsx(q,{sx:{fontSize:n}})})}m.displayName="CopyButton";exports.CopyButton=m;exports.IconButton=d;
@@ -0,0 +1,78 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import S, { useState as B, useCallback as I } from "react";
3
+ import b from "@mui/icons-material/ContentCopy";
4
+ import M from "@mui/icons-material/Check";
5
+ import g from "@mui/material/IconButton";
6
+ import R from "@mui/material/CircularProgress";
7
+ import { toBorderRadius as k, toMuiSize as w, toMuiColor as z } from "./types.js";
8
+ const p = S.forwardRef(function({
9
+ children: t,
10
+ color: n = "neutral",
11
+ emphasis: r,
12
+ size: o = "sm",
13
+ shape: c = "rounded",
14
+ loading: e = !1,
15
+ disabled: u,
16
+ onClick: d,
17
+ title: f,
18
+ sx: a,
19
+ ...C
20
+ }, y) {
21
+ const h = z(n), x = w(o), m = {
22
+ xs: 24,
23
+ sm: 32,
24
+ md: 40,
25
+ lg: 48,
26
+ xl: 56
27
+ }, l = {
28
+ xs: 14,
29
+ sm: 18,
30
+ md: 22,
31
+ lg: 26,
32
+ xl: 30
33
+ };
34
+ return /* @__PURE__ */ i(
35
+ g,
36
+ {
37
+ ref: y,
38
+ color: h,
39
+ size: x,
40
+ disabled: u || e,
41
+ onClick: d,
42
+ title: f,
43
+ sx: {
44
+ borderRadius: k(c),
45
+ width: m[o],
46
+ height: m[o],
47
+ fontSize: l[o],
48
+ ...typeof a == "object" && !Array.isArray(a) ? a : {}
49
+ },
50
+ ...C,
51
+ children: e ? /* @__PURE__ */ i(R, { size: l[o] - 4, color: "inherit" }) : t
52
+ }
53
+ );
54
+ });
55
+ p.displayName = "IconButton";
56
+ function j({ value: s, size: t = "sm", label: n }) {
57
+ const [r, o] = B(!1), c = I(() => {
58
+ navigator.clipboard.writeText(s).then(() => {
59
+ o(!0), setTimeout(() => o(!1), 1500);
60
+ });
61
+ }, [s]), e = t === "xs" ? 12 : t === "sm" ? 14 : t === "md" ? 16 : 18;
62
+ return /* @__PURE__ */ i(
63
+ p,
64
+ {
65
+ size: t,
66
+ color: r ? "success" : "neutral",
67
+ onClick: c,
68
+ "aria-label": n ?? (r ? "Copied" : "Copy to clipboard"),
69
+ title: n ?? (r ? "Copied!" : "Copy"),
70
+ children: r ? /* @__PURE__ */ i(M, { sx: { fontSize: e } }) : /* @__PURE__ */ i(b, { sx: { fontSize: e } })
71
+ }
72
+ );
73
+ }
74
+ j.displayName = "CopyButton";
75
+ export {
76
+ j as C,
77
+ p as I
78
+ };
@@ -1 +1 @@
1
- "use strict";const e=require("react/jsx-runtime"),o=require("@mui/material/Box"),i=require("@mui/material/Typography"),c=require("@mui/icons-material/ErrorOutline"),d=require("./Button-Dmu1cikC.cjs"),g=require("./CopyButton-CACe3RCF.cjs"),p={xs:2,sm:3,md:4,lg:6,xl:8};function u({icon:s,title:a,description:n,primaryAction:l,secondaryAction:x,size:t="md",sx:r}){const f=t==="xs"||t==="sm"?32:t==="md"?40:48;return e.jsxs(o,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",textAlign:"center",py:p[t],px:2,...typeof r=="object"&&!Array.isArray(r)?r:{}},children:[s&&e.jsx(o,{sx:{mb:2,color:"var(--ov-fg-faint)",fontSize:f,display:"flex"},children:s}),e.jsx(i,{variant:t==="xs"||t==="sm"?"subtitle2":"h6",sx:{color:"var(--ov-fg-default)",fontWeight:600,mb:n?.5:0},children:a}),n&&e.jsx(i,{variant:"body2",sx:{color:"var(--ov-fg-muted)",maxWidth:400,lineHeight:1.5},children:n}),(l||x)&&e.jsxs(o,{sx:{display:"flex",gap:1,mt:2.5},children:[l,x]})]})}u.displayName="EmptyState";function m({message:s,errorId:a,onRetry:n,variant:l="panel"}){const x=l==="inline",t=l==="page",r=t?56:x?20:40;return x?e.jsxs(o,{sx:{display:"inline-flex",alignItems:"center",gap:1,color:"var(--ov-danger-default)"},children:[e.jsx(c,{sx:{fontSize:r}}),e.jsx(i,{variant:"body2",sx:{color:"var(--ov-danger-default)"},children:s}),n&&e.jsx(d.Button,{size:"xs",emphasis:"ghost",color:"danger",onClick:n,children:"Retry"})]}):e.jsxs(o,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",textAlign:"center",py:t?8:4,px:2,...t&&{minHeight:"60vh"}},children:[e.jsx(c,{sx:{fontSize:r,color:"var(--ov-danger-default)",mb:2}}),e.jsx(i,{variant:t?"h5":"subtitle1",sx:{color:"var(--ov-fg-default)",fontWeight:600,mb:.5},children:"Something went wrong"}),e.jsx(i,{variant:"body2",sx:{color:"var(--ov-fg-muted)",maxWidth:420,lineHeight:1.5,mb:1},children:s}),a&&e.jsxs(o,{sx:{display:"inline-flex",alignItems:"center",gap:.5,mb:2,px:1.5,py:.5,borderRadius:"4px",bgcolor:"var(--ov-bg-surface-inset)"},children:[e.jsxs(i,{variant:"caption",sx:{fontFamily:"var(--ov-font-mono)",color:"var(--ov-fg-muted)",fontSize:"var(--ov-text-xs)"},children:["Error ID: ",a]}),e.jsx(g.CopyButton,{value:a,size:"xs"})]}),n&&e.jsx(d.Button,{emphasis:"outline",color:"primary",size:"sm",onClick:n,children:"Try again"})]})}m.displayName="ErrorState";exports.EmptyState=u;exports.ErrorState=m;
1
+ "use strict";const e=require("react/jsx-runtime"),o=require("@mui/material/Box"),i=require("@mui/material/Typography"),c=require("@mui/icons-material/ErrorOutline"),d=require("./Button-Dmu1cikC.cjs"),g=require("./CopyButton-3fq1UAiv.cjs"),p={xs:2,sm:3,md:4,lg:6,xl:8};function u({icon:s,title:a,description:n,primaryAction:l,secondaryAction:x,size:t="md",sx:r}){const f=t==="xs"||t==="sm"?32:t==="md"?40:48;return e.jsxs(o,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",textAlign:"center",py:p[t],px:2,...typeof r=="object"&&!Array.isArray(r)?r:{}},children:[s&&e.jsx(o,{sx:{mb:2,color:"var(--ov-fg-faint)",fontSize:f,display:"flex"},children:s}),e.jsx(i,{variant:t==="xs"||t==="sm"?"subtitle2":"h6",sx:{color:"var(--ov-fg-default)",fontWeight:600,mb:n?.5:0},children:a}),n&&e.jsx(i,{variant:"body2",sx:{color:"var(--ov-fg-muted)",maxWidth:400,lineHeight:1.5},children:n}),(l||x)&&e.jsxs(o,{sx:{display:"flex",gap:1,mt:2.5},children:[l,x]})]})}u.displayName="EmptyState";function m({message:s,errorId:a,onRetry:n,variant:l="panel"}){const x=l==="inline",t=l==="page",r=t?56:x?20:40;return x?e.jsxs(o,{sx:{display:"inline-flex",alignItems:"center",gap:1,color:"var(--ov-danger-default)"},children:[e.jsx(c,{sx:{fontSize:r}}),e.jsx(i,{variant:"body2",sx:{color:"var(--ov-danger-default)"},children:s}),n&&e.jsx(d.Button,{size:"xs",emphasis:"ghost",color:"danger",onClick:n,children:"Retry"})]}):e.jsxs(o,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",textAlign:"center",py:t?8:4,px:2,...t&&{minHeight:"60vh"}},children:[e.jsx(c,{sx:{fontSize:r,color:"var(--ov-danger-default)",mb:2}}),e.jsx(i,{variant:t?"h5":"subtitle1",sx:{color:"var(--ov-fg-default)",fontWeight:600,mb:.5},children:"Something went wrong"}),e.jsx(i,{variant:"body2",sx:{color:"var(--ov-fg-muted)",maxWidth:420,lineHeight:1.5,mb:1},children:s}),a&&e.jsxs(o,{sx:{display:"inline-flex",alignItems:"center",gap:.5,mb:2,px:1.5,py:.5,borderRadius:"4px",bgcolor:"var(--ov-bg-surface-inset)"},children:[e.jsxs(i,{variant:"caption",sx:{fontFamily:"var(--ov-font-mono)",color:"var(--ov-fg-muted)",fontSize:"var(--ov-text-xs)"},children:["Error ID: ",a]}),e.jsx(g.CopyButton,{value:a,size:"xs"})]}),n&&e.jsx(d.Button,{emphasis:"outline",color:"primary",size:"sm",onClick:n,children:"Try again"})]})}m.displayName="ErrorState";exports.EmptyState=u;exports.ErrorState=m;
@@ -3,7 +3,7 @@ import a from "@mui/material/Box";
3
3
  import i from "@mui/material/Typography";
4
4
  import d from "@mui/icons-material/ErrorOutline";
5
5
  import { B as f } from "./Button-lr02bh_m.js";
6
- import { C as p } from "./CopyButton-DPBgL0K8.js";
6
+ import { C as p } from "./CopyButton-DWVcqdPe.js";
7
7
  const g = {
8
8
  xs: 2,
9
9
  sm: 3,
@@ -1,20 +1,20 @@
1
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
2
  import x from "@mui/material/Tooltip";
3
- import n from "@mui/material/Box";
3
+ import i from "@mui/material/Box";
4
4
  function a({
5
- title: e,
6
- content: l,
5
+ title: l,
6
+ content: n,
7
7
  variant: o = "default",
8
8
  placement: p = "top",
9
9
  delay: r,
10
10
  children: s
11
11
  }) {
12
- const i = e ?? l ?? "";
13
- return /* @__PURE__ */ t(
12
+ const t = l ?? n ?? "";
13
+ return /* @__PURE__ */ e(
14
14
  x,
15
15
  {
16
- title: o === "code" ? /* @__PURE__ */ t(
17
- n,
16
+ title: o === "code" ? /* @__PURE__ */ e(
17
+ i,
18
18
  {
19
19
  sx: {
20
20
  fontFamily: "var(--ov-font-mono)",
@@ -24,9 +24,9 @@ function a({
24
24
  py: 0.5,
25
25
  borderRadius: "3px"
26
26
  },
27
- children: i
27
+ children: t
28
28
  }
29
- ) : o === "rich" ? /* @__PURE__ */ t(n, { sx: { p: 1, maxWidth: 320 }, children: i }) : e,
29
+ ) : o === "rich" ? /* @__PURE__ */ e(i, { sx: { p: 1, maxWidth: 320 }, children: t }) : t,
30
30
  placement: p,
31
31
  enterDelay: r,
32
32
  enterNextDelay: r,
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),p=require("@mui/material/Tooltip"),i=require("@mui/material/Box");function s({title:n,content:l,variant:o="default",placement:c="top",delay:r,children:x}){const t=n??l??"",u=o==="code"?e.jsx(i,{sx:{fontFamily:"var(--ov-font-mono)",fontSize:"var(--ov-text-xs)",bgcolor:"var(--ov-bg-surface-inset)",px:1,py:.5,borderRadius:"3px"},children:t}):o==="rich"?e.jsx(i,{sx:{p:1,maxWidth:320},children:t}):t;return e.jsx(p,{title:u,placement:c,enterDelay:r,enterNextDelay:r,arrow:o==="default",children:x})}s.displayName="Tooltip";exports.Tooltip=s;
@@ -14,8 +14,5 @@ export interface IconButtonProps {
14
14
  title?: string;
15
15
  sx?: SxProps<Theme>;
16
16
  }
17
- declare function IconButton({ children, color, emphasis, size, shape, loading, disabled, onClick, title, sx, ...rest }: IconButtonProps): import("react/jsx-runtime").JSX.Element;
18
- declare namespace IconButton {
19
- var displayName: string;
20
- }
17
+ declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
21
18
  export default IconButton;
package/dist/buttons.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./Button-Dmu1cikC.cjs"),B=require("./CopyButton-CACe3RCF.cjs"),o=require("react/jsx-runtime"),g=require("react"),O=require("@mui/material/Popover"),m=require("@mui/material/Box"),z=require("@mui/material/Typography"),w=require("@mui/material/Menu"),N=require("@mui/material/MenuItem"),E=require("@mui/material/ListItemIcon"),$=require("@mui/material/ListItemText"),D=require("@mui/material/Divider"),K=require("@mui/icons-material/MoreVert"),W=require("@mui/material/ButtonGroup"),d=require("./types.cjs"),v=require("@mui/material/IconButton"),C=require("@mui/material/Tooltip"),F=require("@mui/material/ToggleButton"),U=require("@mui/material/ToggleButtonGroup"),V=require("@mui/material/InputBase"),P=require("@mui/icons-material/Search"),b=require("react-icons/lu");function q({onConfirm:n,confirmMessage:e="Are you sure?",children:c,...t}){const[s,i]=g.useState(!1),a=g.useRef(null);return o.jsxs(o.Fragment,{children:[o.jsx(m,{component:"span",ref:a,sx:{display:"inline-flex"},children:o.jsx(y.Button,{...t,onClick:()=>i(!0),children:c})}),o.jsxs(O,{open:s,anchorEl:a.current,onClose:()=>i(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},slotProps:{paper:{sx:{p:2,mt:.5,minWidth:200,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:[o.jsx(z,{variant:"body2",sx:{color:"var(--ov-fg-default)",mb:1.5},children:e}),o.jsxs(m,{sx:{display:"flex",gap:1,justifyContent:"flex-end"},children:[o.jsx(y.Button,{size:"xs",emphasis:"ghost",color:"neutral",onClick:()=>i(!1),children:"Cancel"}),o.jsx(y.Button,{size:"xs",emphasis:"solid",color:"danger",onClick:()=>{i(!1),n()},children:"Confirm"})]})]})]})}q.displayName="ConfirmButton";function S({items:n,trigger:e,size:c="sm"}){const[t,s]=g.useState(!1),i=g.useRef(null),a=()=>s(!1);return o.jsxs(o.Fragment,{children:[o.jsx("span",{ref:i,children:e?o.jsx("span",{onClick:()=>s(!0),style:{cursor:"pointer"},children:e}):o.jsx(B.IconButton,{size:c,color:"neutral",onClick:()=>s(!0),"aria-label":"Actions",children:o.jsx(K,{fontSize:"inherit"})})}),o.jsx(w,{open:t,anchorEl:i.current,onClose:a,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{minWidth:160,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:n.map(r=>[o.jsxs(N,{disabled:r.disabled,onClick:()=>{a(),r.onClick()},sx:{fontSize:"var(--ov-text-sm)",color:r.color==="danger"||r.color==="error"?"var(--ov-danger-default)":"var(--ov-fg-default)"},children:[r.icon&&o.jsx(E,{sx:{color:"inherit",minWidth:28},children:r.icon}),o.jsx($,{children:r.label})]},r.key),r.dividerAfter&&o.jsx(D,{},`${r.key}-divider`)])})]})}S.displayName="ActionMenu";function k({children:n,emphasis:e="outline",size:c="sm",color:t="neutral",fullWidth:s,orientation:i="horizontal",disabled:a,sx:r}){const p=d.toMuiColor(t),u=d.toMuiVariant(e),l=d.toMuiSize(c);return o.jsx(W,{color:p,variant:u,size:l,fullWidth:s,orientation:i,disabled:a,sx:r,children:n})}k.displayName="ButtonGroup";const _={default:36,dense:28};function M({children:n,variant:e="default",dividers:c=!1,sx:t}){const s=_[e];return o.jsx(m,{sx:{display:"flex",alignItems:"center",height:s,gap:c?0:.5,px:.5,bgcolor:"var(--ov-bg-surface)",...c&&{"& > *:not(:last-child)::after":{content:'""',display:"block",width:"1px",height:"60%",bgcolor:"var(--ov-border-muted)",ml:.5,mr:.5,flexShrink:0}},...typeof t=="object"&&!Array.isArray(t)?t:{}},children:n})}M.displayName="Toolbar";function T({children:n,sx:e}){return o.jsx(m,{sx:{display:"flex",alignItems:"center",gap:"2px",...typeof e=="object"&&!Array.isArray(e)?e:{}},children:n})}T.displayName="ToolbarGroup";function A({selected:n,onChange:e,icon:c,label:t,size:s="sm",color:i="primary",disabled:a,sx:r}){const p=d.toMuiSize(s),u=d.toCssColor(i),l=o.jsx(v,{size:p,disabled:a,onClick:()=>e(!n),sx:{borderRadius:"4px",color:n?u:"var(--ov-fg-muted)",bgcolor:n?"var(--ov-state-hover)":"transparent","&:hover":{bgcolor:"var(--ov-state-hover)"},...typeof r=="object"&&!Array.isArray(r)?r:{}},children:c});return t?o.jsx(C,{title:t,children:l}):l}A.displayName="ToggleButton";function I({value:n,onChange:e,options:c,exclusive:t=!0,size:s="sm",color:i="primary",sx:a}){const r=d.toMuiSize(s),p=d.toCssColor(i),u=(l,x)=>{x!==null&&e(x)};return o.jsx(U,{value:n,exclusive:t,onChange:u,size:r,sx:{"& .Mui-selected":{color:`${p} !important`,bgcolor:"var(--ov-state-hover) !important"},...typeof a=="object"&&!Array.isArray(a)?a:{}},children:c.map(l=>o.jsxs(F,{value:l.key,disabled:l.disabled,sx:{fontSize:"var(--ov-text-sm)",textTransform:"none",px:1.5,gap:.5},children:[l.icon,l.label]},l.key))})}I.displayName="ToggleGroup";const H={xs:24,sm:28,md:32,lg:36,xl:40};function G({value:n,onChange:e,placeholder:c="Search...",regex:t,caseSensitive:s,onRegexChange:i,onCaseSensitiveChange:a,matchCount:r,currentMatch:p,onNext:u,onPrev:l,size:x="sm",sx:j}){const R=H[x],h=x==="xs"?12:14,L=g.useCallback(f=>{f.key==="Enter"&&(f.shiftKey?l?.():u?.()),f.key==="Escape"&&f.target.blur()},[u,l]);return o.jsxs(m,{sx:{display:"flex",alignItems:"center",height:R,border:"1px solid var(--ov-border-default)",borderRadius:"4px",bgcolor:"var(--ov-bg-surface)",px:.5,gap:"2px","&:focus-within":{borderColor:"var(--ov-accent)"},...typeof j=="object"&&!Array.isArray(j)?j:{}},children:[o.jsx(P,{sx:{fontSize:h+2,color:"var(--ov-fg-muted)",ml:.25}}),o.jsx(V,{value:n,onChange:f=>e(f.target.value),onKeyDown:L,placeholder:c,sx:{flex:1,fontSize:x==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",color:"var(--ov-fg-default)","& input":{py:0,px:.5},"& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}}),a&&o.jsx(C,{title:"Match Case",children:o.jsx(v,{size:"small",onClick:()=>a(!s),sx:{borderRadius:"3px",p:"2px",color:s?"var(--ov-accent-fg)":"var(--ov-fg-faint)",bgcolor:s?"var(--ov-accent-subtle)":"transparent"},children:o.jsx(b.LuCaseSensitive,{size:h})})}),i&&o.jsx(C,{title:"Use Regular Expression",children:o.jsx(v,{size:"small",onClick:()=>i(!t),sx:{borderRadius:"3px",p:"2px",color:t?"var(--ov-accent-fg)":"var(--ov-fg-faint)",bgcolor:t?"var(--ov-accent-subtle)":"transparent"},children:o.jsx(b.LuRegex,{size:h})})}),r!==void 0&&o.jsx(z,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",whiteSpace:"nowrap",px:.5},children:r===0?"No results":`${(p??0)+1}/${r}`}),l&&o.jsx(v,{size:"small",onClick:l,sx:{p:"2px"},children:o.jsx(b.LuChevronUp,{size:h})}),u&&o.jsx(v,{size:"small",onClick:u,sx:{p:"2px"},children:o.jsx(b.LuChevronDown,{size:h})})]})}G.displayName="SearchBar";exports.Button=y.Button;exports.CopyButton=B.CopyButton;exports.IconButton=B.IconButton;exports.ActionMenu=S;exports.ButtonGroup=k;exports.ConfirmButton=q;exports.SearchBar=G;exports.ToggleButton=A;exports.ToggleGroup=I;exports.Toolbar=M;exports.ToolbarGroup=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./Button-Dmu1cikC.cjs"),B=require("./CopyButton-3fq1UAiv.cjs"),o=require("react/jsx-runtime"),g=require("react"),O=require("@mui/material/Popover"),m=require("@mui/material/Box"),z=require("@mui/material/Typography"),w=require("@mui/material/Menu"),N=require("@mui/material/MenuItem"),E=require("@mui/material/ListItemIcon"),$=require("@mui/material/ListItemText"),D=require("@mui/material/Divider"),K=require("@mui/icons-material/MoreVert"),W=require("@mui/material/ButtonGroup"),d=require("./types.cjs"),v=require("@mui/material/IconButton"),C=require("@mui/material/Tooltip"),F=require("@mui/material/ToggleButton"),U=require("@mui/material/ToggleButtonGroup"),V=require("@mui/material/InputBase"),P=require("@mui/icons-material/Search"),b=require("react-icons/lu");function q({onConfirm:n,confirmMessage:e="Are you sure?",children:c,...t}){const[s,i]=g.useState(!1),a=g.useRef(null);return o.jsxs(o.Fragment,{children:[o.jsx(m,{component:"span",ref:a,sx:{display:"inline-flex"},children:o.jsx(y.Button,{...t,onClick:()=>i(!0),children:c})}),o.jsxs(O,{open:s,anchorEl:a.current,onClose:()=>i(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},slotProps:{paper:{sx:{p:2,mt:.5,minWidth:200,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:[o.jsx(z,{variant:"body2",sx:{color:"var(--ov-fg-default)",mb:1.5},children:e}),o.jsxs(m,{sx:{display:"flex",gap:1,justifyContent:"flex-end"},children:[o.jsx(y.Button,{size:"xs",emphasis:"ghost",color:"neutral",onClick:()=>i(!1),children:"Cancel"}),o.jsx(y.Button,{size:"xs",emphasis:"solid",color:"danger",onClick:()=>{i(!1),n()},children:"Confirm"})]})]})]})}q.displayName="ConfirmButton";function S({items:n,trigger:e,size:c="sm"}){const[t,s]=g.useState(!1),i=g.useRef(null),a=()=>s(!1);return o.jsxs(o.Fragment,{children:[o.jsx("span",{ref:i,children:e?o.jsx("span",{onClick:()=>s(!0),style:{cursor:"pointer"},children:e}):o.jsx(B.IconButton,{size:c,color:"neutral",onClick:()=>s(!0),"aria-label":"Actions",children:o.jsx(K,{fontSize:"inherit"})})}),o.jsx(w,{open:t,anchorEl:i.current,onClose:a,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{minWidth:160,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:n.map(r=>[o.jsxs(N,{disabled:r.disabled,onClick:()=>{a(),r.onClick()},sx:{fontSize:"var(--ov-text-sm)",color:r.color==="danger"||r.color==="error"?"var(--ov-danger-default)":"var(--ov-fg-default)"},children:[r.icon&&o.jsx(E,{sx:{color:"inherit",minWidth:28},children:r.icon}),o.jsx($,{children:r.label})]},r.key),r.dividerAfter&&o.jsx(D,{},`${r.key}-divider`)])})]})}S.displayName="ActionMenu";function k({children:n,emphasis:e="outline",size:c="sm",color:t="neutral",fullWidth:s,orientation:i="horizontal",disabled:a,sx:r}){const p=d.toMuiColor(t),u=d.toMuiVariant(e),l=d.toMuiSize(c);return o.jsx(W,{color:p,variant:u,size:l,fullWidth:s,orientation:i,disabled:a,sx:r,children:n})}k.displayName="ButtonGroup";const _={default:36,dense:28};function M({children:n,variant:e="default",dividers:c=!1,sx:t}){const s=_[e];return o.jsx(m,{sx:{display:"flex",alignItems:"center",height:s,gap:c?0:.5,px:.5,bgcolor:"var(--ov-bg-surface)",...c&&{"& > *:not(:last-child)::after":{content:'""',display:"block",width:"1px",height:"60%",bgcolor:"var(--ov-border-muted)",ml:.5,mr:.5,flexShrink:0}},...typeof t=="object"&&!Array.isArray(t)?t:{}},children:n})}M.displayName="Toolbar";function T({children:n,sx:e}){return o.jsx(m,{sx:{display:"flex",alignItems:"center",gap:"2px",...typeof e=="object"&&!Array.isArray(e)?e:{}},children:n})}T.displayName="ToolbarGroup";function A({selected:n,onChange:e,icon:c,label:t,size:s="sm",color:i="primary",disabled:a,sx:r}){const p=d.toMuiSize(s),u=d.toCssColor(i),l=o.jsx(v,{size:p,disabled:a,onClick:()=>e(!n),sx:{borderRadius:"4px",color:n?u:"var(--ov-fg-muted)",bgcolor:n?"var(--ov-state-hover)":"transparent","&:hover":{bgcolor:"var(--ov-state-hover)"},...typeof r=="object"&&!Array.isArray(r)?r:{}},children:c});return t?o.jsx(C,{title:t,children:l}):l}A.displayName="ToggleButton";function I({value:n,onChange:e,options:c,exclusive:t=!0,size:s="sm",color:i="primary",sx:a}){const r=d.toMuiSize(s),p=d.toCssColor(i),u=(l,x)=>{x!==null&&e(x)};return o.jsx(U,{value:n,exclusive:t,onChange:u,size:r,sx:{"& .Mui-selected":{color:`${p} !important`,bgcolor:"var(--ov-state-hover) !important"},...typeof a=="object"&&!Array.isArray(a)?a:{}},children:c.map(l=>o.jsxs(F,{value:l.key,disabled:l.disabled,sx:{fontSize:"var(--ov-text-sm)",textTransform:"none",px:1.5,gap:.5},children:[l.icon,l.label]},l.key))})}I.displayName="ToggleGroup";const H={xs:24,sm:28,md:32,lg:36,xl:40};function G({value:n,onChange:e,placeholder:c="Search...",regex:t,caseSensitive:s,onRegexChange:i,onCaseSensitiveChange:a,matchCount:r,currentMatch:p,onNext:u,onPrev:l,size:x="sm",sx:j}){const R=H[x],h=x==="xs"?12:14,L=g.useCallback(f=>{f.key==="Enter"&&(f.shiftKey?l?.():u?.()),f.key==="Escape"&&f.target.blur()},[u,l]);return o.jsxs(m,{sx:{display:"flex",alignItems:"center",height:R,border:"1px solid var(--ov-border-default)",borderRadius:"4px",bgcolor:"var(--ov-bg-surface)",px:.5,gap:"2px","&:focus-within":{borderColor:"var(--ov-accent)"},...typeof j=="object"&&!Array.isArray(j)?j:{}},children:[o.jsx(P,{sx:{fontSize:h+2,color:"var(--ov-fg-muted)",ml:.25}}),o.jsx(V,{value:n,onChange:f=>e(f.target.value),onKeyDown:L,placeholder:c,sx:{flex:1,fontSize:x==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",color:"var(--ov-fg-default)","& input":{py:0,px:.5},"& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}}),a&&o.jsx(C,{title:"Match Case",children:o.jsx(v,{size:"small",onClick:()=>a(!s),sx:{borderRadius:"3px",p:"2px",color:s?"var(--ov-accent-fg)":"var(--ov-fg-faint)",bgcolor:s?"var(--ov-accent-subtle)":"transparent"},children:o.jsx(b.LuCaseSensitive,{size:h})})}),i&&o.jsx(C,{title:"Use Regular Expression",children:o.jsx(v,{size:"small",onClick:()=>i(!t),sx:{borderRadius:"3px",p:"2px",color:t?"var(--ov-accent-fg)":"var(--ov-fg-faint)",bgcolor:t?"var(--ov-accent-subtle)":"transparent"},children:o.jsx(b.LuRegex,{size:h})})}),r!==void 0&&o.jsx(z,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",whiteSpace:"nowrap",px:.5},children:r===0?"No results":`${(p??0)+1}/${r}`}),l&&o.jsx(v,{size:"small",onClick:l,sx:{p:"2px"},children:o.jsx(b.LuChevronUp,{size:h})}),u&&o.jsx(v,{size:"small",onClick:u,sx:{p:"2px"},children:o.jsx(b.LuChevronDown,{size:h})})]})}G.displayName="SearchBar";exports.Button=y.Button;exports.CopyButton=B.CopyButton;exports.IconButton=B.IconButton;exports.ActionMenu=S;exports.ButtonGroup=k;exports.ConfirmButton=q;exports.SearchBar=G;exports.ToggleButton=A;exports.ToggleGroup=I;exports.Toolbar=M;exports.ToolbarGroup=T;
package/dist/buttons.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { B as b } from "./Button-lr02bh_m.js";
2
- import { I } from "./CopyButton-DPBgL0K8.js";
3
- import { C as jo } from "./CopyButton-DPBgL0K8.js";
2
+ import { I } from "./CopyButton-DWVcqdPe.js";
3
+ import { C as jo } from "./CopyButton-DWVcqdPe.js";
4
4
  import { jsxs as f, Fragment as z, jsx as o } from "react/jsx-runtime";
5
5
  import { useState as k, useRef as B, useCallback as j } from "react";
6
6
  import G from "@mui/material/Popover";
package/dist/charts.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),De=require("@mui/material/styles"),o=require("react/jsx-runtime"),Le=require("react-dom"),j=require("@mui/material/Box"),Te=require("@mui/material/Popper"),xe=require("@mui/x-charts/LineChart"),ie=require("@mui/x-charts/ChartsReferenceLine"),Z=require("@mui/x-charts/hooks"),se=require("react-icons/lu"),le=require("./Skeleton-CfdQWLQM.cjs"),fe=require("./ErrorState-CnIR-1xa.cjs"),Fe=require("@mui/x-charts/BarChart"),Pe=require("@mui/x-charts/PieChart"),qe=require("@mui/x-charts/ScatterChart"),Ee=require("@mui/x-charts/SparkLineChart"),ce=require("@mui/material/Typography"),Be=require("@mui/x-charts/Gauge"),me=require("@mui/material/IconButton"),Ne=require("@mui/material/MenuItem"),He=require("@mui/material/Menu"),Ge=require("./Select-CnRBSc5w.cjs"),ge={primary:"--ov-accent",secondary:"--ov-fg-muted",success:"--ov-success-default",warning:"--ov-warning-default",error:"--ov-danger-default",info:"--ov-info-default",neutral:"--ov-fg-default",accent:"--ov-accent",danger:"--ov-danger-default",muted:"--ov-fg-muted"},Ie=new Set(Object.keys(ge)),ue=new Map;function $(e){const t=ue.get(e);if(t!==void 0)return t;let a;if(Ie.has(e)){const r=ge[e];typeof document<"u"?a=getComputedStyle(document.documentElement).getPropertyValue(r).trim()||`var(${r})`:a=`var(${r})`}else a=e;return ue.set(e,a),a}function We(){ue.clear()}const Ve=["primary","success","warning","info","error","secondary","accent","neutral"];function N(e){return(e&&e.length>0?e:Ve).map($)}const w=new Intl.NumberFormat(void 0,{maximumFractionDigits:1}),Oe=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"});function pe(e,t){const a=Math.abs(e);return a<1024?`${e} ${t??"B"}`:a<1024**2?`${w.format(e/1024)} ${t??"KiB"}`:a<1024**3?`${w.format(e/1024**2)} ${t??"MiB"}`:a<1024**4?`${w.format(e/1024**3)} ${t??"GiB"}`:`${w.format(e/1024**4)} ${t??"TiB"}`}function ve(e,t){return`${w.format(e)}${t??"%"}`}function ye(e,t){const a=Math.abs(e);return t?`${w.format(e)} ${t}`:a<1e3?`${w.format(e)} ms`:a<6e4?`${w.format(e/1e3)} s`:a<36e5?`${w.format(e/6e4)} m`:`${w.format(e/36e5)} h`}const Y=["","k","M","G","T","P"];function be(e,t){const a=Math.abs(e);let r=0,n=a;for(;n>=1e3&&r<Y.length-1;)n/=1e3,r++;return`${e<0?"-":""}${w.format(n)} ${Y[r]}${t??"/s"}`}function Ce(e,t){const a=Math.abs(e);let r=0,n=a;for(;n>=1e3&&r<Y.length-1;)n/=1e3,r++;const i=e<0?"-":"",s=t?` ${t}`:Y[r]?` ${Y[r]}`:"";return`${i}${w.format(n)}${s}`}function Se(e,t){const a=new Intl.NumberFormat(void 0).format(e);return t?`${a} ${t}`:a}function Re(e){return Oe.format(e)}function B(e,t){const a=(()=>{switch(e){case"bytes":return r=>pe(r,t);case"percent":return r=>ve(r,t);case"duration":return r=>ye(r,t);case"rate":return r=>be(r,t);case"si":return r=>Ce(r,t);case"number":return r=>Se(r,t)}})();return r=>r==null?"–":a(r)}const de=new Map;function R(e,t){if(typeof document>"u")return t;const a=de.get(e);if(a!==void 0)return a;const n=getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t;return de.set(e,n),n}function K(){const e=De.useTheme(),t=e.palette.mode==="dark";return l.useEffect(()=>{de.clear(),We()},[t]),l.useMemo(()=>({axisLineColor:R("--ov-border-default",t?"#3a3a3a":"#d4d4d4"),gridColor:R("--ov-border-subtle",t?"#2a2a2a":"#e8e8e8"),tooltipBg:R("--ov-bg-surface",t?"#1e1e1e":"#ffffff"),tooltipFg:R("--ov-fg-default",t?"#e0e0e0":"#1a1a1a"),fontFamily:R("--ov-font-sans",e.typography.fontFamily??"sans-serif"),fontSize:11,areaOpacity:.15}),[t,e.typography.fontFamily])}function X({loading:e,error:t,onRetry:a,empty:r,width:n,height:i,children:s}){return e?o.jsx(j,{sx:{width:n??"100%",height:i},children:o.jsx(le.Skeleton,{variant:"rectangular",width:"100%",height:i})}):t?o.jsx(j,{sx:{width:n??"100%",height:i,display:"flex",alignItems:"center",justifyContent:"center"},children:o.jsx(fe.ErrorState,{message:t,onRetry:a,variant:"panel"})}):r?o.jsx(j,{sx:{width:n??"100%",height:i,display:"flex",alignItems:"center",justifyContent:"center"},children:o.jsx(fe.EmptyState,{icon:o.jsx(se.LuChartBar,{size:32}),title:"No data",description:"There is no data to display.",size:"sm"})}):o.jsx(o.Fragment,{children:s})}const Ye={xs:120,sm:180,md:260,lg:360,xl:480};function Ke({markers:e}){const t=Z.useXScale(),{top:a}=Z.useDrawingArea(),[r,n]=l.useState(null),i=l.useCallback((c,m)=>{const v=m.currentTarget.getBoundingClientRect();n({index:c,anchor:{getBoundingClientRect:()=>v}})},[]),s=l.useCallback(()=>n(null),[]),d=r!=null?e[r.index]:null;return o.jsxs("g",{children:[e.map((c,m)=>{const v=c.timestamp instanceof Date?c.timestamp:new Date(c.timestamp),x=t(v);if(x==null||isNaN(x))return null;const y=$(c.color??"muted"),f=!!c.tooltip;return o.jsxs("g",{style:f?{cursor:"pointer"}:void 0,onPointerEnter:f?h=>i(m,h):void 0,onPointerLeave:f?s:void 0,children:[f&&o.jsx("rect",{x:x-16,y:a-(c.label?20:12),width:32,height:c.label?20:12,fill:"transparent"}),o.jsx("text",{x,y:a-1,textAnchor:"middle",fill:y,fontSize:8,children:"▼"}),c.label&&o.jsx("text",{x,y:a-9,textAnchor:"middle",fill:y,fontSize:9,fontWeight:500,children:c.label})]},`evt-${m}`)}),r&&d?.tooltip&&Le.createPortal(o.jsx(Te,{open:!0,anchorEl:r.anchor,placement:"top",modifiers:[{name:"offset",options:{offset:[0,6]}}],sx:{zIndex:1500,pointerEvents:"none"},children:o.jsx(j,{sx:{bgcolor:"var(--ov-bg-elevated, #1e1e2e)",color:"var(--ov-fg-default, #cdd6f4)",border:"1px solid var(--ov-border-subtle, #45475a)",borderRadius:"6px",px:1.25,py:.75,fontSize:"0.75rem",lineHeight:1.4,maxWidth:260,boxShadow:"0 4px 12px rgba(0,0,0,0.4)"},children:d.tooltip})}),document.body)]})}function Xe({formatter:e,color:t,position:a="right"}){const r=Z.useYScale(),{left:n,top:i,width:s,height:d}=Z.useDrawingArea(),c=r.ticks?.()??[],m=a==="right",v=m?n+s-4:n+4,x=m?"end":"start";return o.jsx("g",{children:c.map(y=>{const f=r(y);if(f==null||isNaN(f)||f<i-2||f>i+d+2)return null;const h=e(y);return o.jsx("text",{x:v,y:f-4,textAnchor:x,fill:t,fontSize:10,opacity:.7,children:h},y)})})}function he({series:e,timeRange:t,yAxisLabel:a,valueFormat:r="number",unit:n,valueFormatter:i,annotations:s,area:d=!1,grid:c=!0,showLegend:m=!1,showMarks:v=!1,colors:x,yAxisPosition:y="left",xAxisPosition:f="bottom",compact:h=!1,margin:g,yAxisWidth:p,xAxisHeight:A,yAxisInline:k=!1,yAxisInlinePosition:D="right",eventMarkers:b,size:F="md",height:S,loading:C,error:q,onRetry:H,skipAnimation:_=!1,sx:ee}){const L=K(),J=S??Ye[F],G=l.useMemo(()=>N(x),[x]),P=l.useMemo(()=>i??B(r,n),[i,r,n]),I=e.length===0||e.every(u=>u.data.length===0),{xData:te,alignedValues:W}=l.useMemo(()=>{if(e.length===0||e.every(z=>z.data.length===0))return{xData:[],alignedValues:e.map(()=>[])};const u=new Set;for(const z of e)for(const E of z.data)u.add(E.timestamp);const T=Array.from(u).sort((z,E)=>z-E),M=T.map(z=>new Date(z)),ne=e.map(z=>{const E=new Map;for(const U of z.data)E.set(U.timestamp,U.value);return T.map(U=>E.get(U)??null)});return{xData:M,alignedValues:ne}},[e]),V=l.useMemo(()=>e.map((u,T)=>({id:u.id,label:u.label,data:W[T]??[],color:u.color?$(u.color):G[T%G.length],area:u.area??d,showMark:v,valueFormatter:P,...u.lineStyle==="dashed"?{strokeDasharray:"6 3"}:{},...u.lineStyle==="dotted"?{strokeDasharray:"2 2"}:{}})),[e,W,d,v,P,G]),Q=h?{top:4,right:2,bottom:2,left:2}:{top:8,right:8,bottom:8,left:8},re=b?.length?b.some(u=>u.label)?20:10:0,oe={...Q,...g,top:(g?.top??Q.top)+re},O=k?0:p??(h?30:40),ae=A??(h?20:24);return o.jsx(j,{sx:ee,children:o.jsx(X,{loading:C,error:q,onRetry:H,empty:I,height:J,children:o.jsxs(xe.LineChart,{height:J,series:V,xAxis:[{data:te,scaleType:"time",height:ae,position:f,...t&&{min:t.from,max:t.to}}],yAxis:[{label:a,valueFormatter:P,position:y,width:O}],grid:c?{horizontal:!0}:void 0,skipAnimation:_,hideLegend:!m,margin:oe,sx:{"& .MuiChartsAxis-line":h?{display:"none"}:{stroke:L.axisLineColor},"& .MuiChartsAxis-tick":h?{display:"none"}:{stroke:L.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:L.tooltipFg,fontSize:L.fontSize},...k&&{"& .MuiChartsAxis-left, & .MuiChartsAxis-right":{display:"none"}},"& .MuiChartsGrid-line":{stroke:L.gridColor,opacity:.5},"& .MuiAreaElement-root":{opacity:L.areaOpacity}},children:[s?.map((u,T)=>o.jsx(ie.ChartsReferenceLine,{y:u.value,label:u.label,lineStyle:{stroke:u.color?$(u.color):"var(--ov-fg-muted)",strokeDasharray:u.lineStyle==="dashed"?"6 3":void 0},labelStyle:{fill:L.tooltipFg,fontSize:L.fontSize}},`ann-${T}`)),b?.map((u,T)=>o.jsx(ie.ChartsReferenceLine,{x:u.timestamp instanceof Date?u.timestamp:new Date(u.timestamp),lineStyle:{stroke:$(u.color??"muted"),strokeDasharray:u.lineStyle==="solid"?void 0:"4 3",strokeWidth:1}},`evt-line-${T}`)),b?.length&&o.jsx(Ke,{markers:b}),k&&o.jsx(Xe,{formatter:P,color:L.tooltipFg,position:D})]})})})}he.displayName="TimeSeriesChart";const Je={xs:120,sm:180,md:260,lg:360,xl:480};function Me({data:e,horizontal:t=!1,valueFormat:a="number",unit:r,valueFormatter:n,showLabels:i=!1,colors:s,size:d="md",height:c,loading:m,error:v,onRetry:x,skipAnimation:y=!1,sx:f}){const h=K(),g=c??Je[d],p=l.useMemo(()=>N(s),[s]),A=l.useMemo(()=>n??B(a,r),[n,a,r]),k=e.length===0,D=l.useMemo(()=>e.map((S,C)=>S.color?$(S.color):p[C%p.length]),[e,p]),b=l.useMemo(()=>e.map(S=>S.label),[e]),F=l.useMemo(()=>e.map(S=>S.value),[e]);return o.jsx(j,{sx:f,children:o.jsx(X,{loading:m,error:v,onRetry:x,empty:k,height:g,children:o.jsx(Fe.BarChart,{height:g,layout:t?"horizontal":"vertical",series:[{data:F,valueFormatter:A,label:i?"Value":void 0}],xAxis:t?[{valueFormatter:A}]:[{data:b,scaleType:"band"}],yAxis:t?[{data:b,scaleType:"band"}]:[{valueFormatter:A}],colors:D,skipAnimation:y,hideLegend:!0,sx:{"& .MuiChartsAxis-line":{stroke:h.axisLineColor},"& .MuiChartsAxis-tick":{stroke:h.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:h.tooltipFg,fontSize:h.fontSize}}})})})}Me.displayName="BarChart";const Qe={xs:120,sm:180,md:260,lg:360,xl:480};function je({data:e,innerRadius:t,showLabels:a=!1,colors:r,size:n="md",height:i,loading:s,error:d,onRetry:c,skipAnimation:m=!1,sx:v}){const x=i??Qe[n],y=l.useMemo(()=>N(r),[r]),f=e.length===0,h=l.useMemo(()=>e.map((g,p)=>({id:g.id,value:g.value,label:g.label,color:g.color?$(g.color):y[p%y.length]})),[e,y]);return o.jsx(j,{sx:v,children:o.jsx(X,{loading:s,error:d,onRetry:c,empty:f,height:x,children:o.jsx(Pe.PieChart,{height:x,series:[{data:h,innerRadius:t??0,arcLabel:a?g=>g.label??"":void 0}],skipAnimation:m})})})}je.displayName="PieChart";const Ue={xs:120,sm:180,md:260,lg:360,xl:480};function ke({series:e,xAxisLabel:t,yAxisLabel:a,xFormat:r="number",yFormat:n="number",colors:i,size:s="md",height:d,loading:c,error:m,onRetry:v,skipAnimation:x=!1,sx:y}){const f=K(),h=d??Ue[s],g=l.useMemo(()=>N(i),[i]),p=e.length===0||e.every(b=>b.data.length===0),A=l.useMemo(()=>B(r),[r]),k=l.useMemo(()=>B(n),[n]),D=l.useMemo(()=>e.map((b,F)=>({id:b.id,label:b.label,data:b.data.map((S,C)=>({x:S.x,y:S.y,id:S.id??C})),color:b.color?$(b.color):g[F%g.length]})),[e,g]);return o.jsx(j,{sx:y,children:o.jsx(X,{loading:c,error:m,onRetry:v,empty:p,height:h,children:o.jsx(qe.ScatterChart,{height:h,series:D,xAxis:[{label:t,valueFormatter:A}],yAxis:[{label:a,valueFormatter:k}],skipAnimation:x,sx:{"& .MuiChartsAxis-line":{stroke:f.axisLineColor},"& .MuiChartsAxis-tick":{stroke:f.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:f.tooltipFg,fontSize:f.fontSize}}})})})}ke.displayName="ScatterChart";const Ze={top:2,bottom:2,left:2,right:2};function Ae({data:e,plotType:t="line",area:a=!1,color:r="primary",height:n=40,width:i="100%",showTooltip:s=!1,skipAnimation:d=!1}){const c=$(r);return o.jsx(Ee.SparkLineChart,{data:e,plotType:t,area:a,height:n,width:typeof i=="number"?i:void 0,color:c,curve:"natural",margin:Ze,showTooltip:s,skipAnimation:d,sx:typeof i=="string"?{width:i}:void 0})}Ae.displayName="Sparkline";const _e={xs:80,sm:100,md:140,lg:180,xl:220};function et(e,t,a,r){const n=(e-t)/(a-t)*100;return n<r[0]?"success":n<r[1]?"warning":"danger"}function $e({value:e,min:t=0,max:a=100,label:r,unit:n,color:i,thresholds:s=[60,85],size:d="md",loading:c=!1}){const m=_e[d],v=l.useMemo(()=>$(i??et(e,t,a,s)),[i,e,t,a,s]);return c?o.jsxs(j,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[o.jsx(le.Skeleton,{variant:"circular",width:m,height:m}),o.jsx(le.Skeleton,{variant:"text",width:"60%"})]}):o.jsxs(j,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",alignItems:"center",gap:.5},children:[o.jsx(Be.Gauge,{value:e,valueMin:t,valueMax:a,startAngle:-110,endAngle:110,width:m,height:m,sx:{"& .MuiGauge-valueArc":{fill:v},"& .MuiGauge-referenceArc":{fill:"var(--ov-bg-surface-inset)"}},text:n?`${e}${n}`:`${e}`}),o.jsx(ce,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em",textAlign:"center"},children:r})]})}$e.displayName="GaugeCard";const tt=[{label:"15m",duration:900*1e3},{label:"1h",duration:3600*1e3},{label:"6h",duration:360*60*1e3},{label:"24h",duration:1440*60*1e3},{label:"7d",duration:10080*60*1e3}];function rt(e,t){const a=e.to.getTime()-e.from.getTime();let r=t[0],n=Math.abs(a-r.duration);for(const i of t){const s=Math.abs(a-i.duration);s<n&&(r=i,n=s)}return String(r.duration)}function ze({title:e,icon:t,subtitle:a,series:r,timeRange:n,onTimeRangeChange:i,refreshInterval:s=0,onRefresh:d,valueFormat:c="number",unit:m,valueFormatter:v,annotations:x,eventMarkers:y,area:f=!1,presets:h=tt,colors:g,headerActions:p,toolbar:A,menuItems:k,yAxisPosition:D="none",xAxisPosition:b="none",margin:F,yAxisWidth:S,xAxisHeight:C,yAxisInline:q=!0,yAxisInlinePosition:H,variant:_="default",height:ee=260,loading:L,error:J,onRetry:G}){const P=l.useRef(null),[I,te]=l.useState(s>0),[W,V]=l.useState(null),Q=_==="compact",re=l.useMemo(()=>rt(n,h),[n,h]),oe=l.useMemo(()=>h.map(M=>({value:String(M.duration),label:M.label})),[h]),O=l.useCallback(()=>{P.current&&(clearInterval(P.current),P.current=null)},[]);l.useEffect(()=>(O(),I&&s>0&&d&&(P.current=setInterval(d,s)),O),[I,s,d,O]);const ae=M=>{if(!i)return;const ne=Number(Array.isArray(M)?M[0]:M),z=new Date;i({from:new Date(z.getTime()-ne),to:z})},u=i||A||p||d,T=k&&k.length>0;return o.jsxs(j,{sx:{display:"flex",flexDirection:"column",overflow:"hidden",...Q?{bgcolor:"transparent"}:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px"}},children:[o.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:.75,px:1,py:.5,minHeight:32},children:[t&&o.jsx(j,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)",flexShrink:0},children:t}),o.jsxs(j,{sx:{minWidth:0,flex:1},children:[o.jsx(ce,{variant:"subtitle2",noWrap:!0,sx:{fontWeight:600,color:"var(--ov-fg-default)",fontSize:"0.75rem",lineHeight:1.2},children:e}),a&&o.jsx(ce,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-muted)",fontSize:"0.625rem",lineHeight:1.2,display:"block"},children:a})]}),u&&o.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:.25,flexShrink:0},children:[i&&o.jsx(Ge.Select,{options:oe,value:re,onChange:ae,size:"xs"}),A,p,d&&o.jsx(me,{size:"small",onClick:()=>{s>0?te(M=>!M):d()},sx:{color:I?"var(--ov-accent)":"var(--ov-fg-muted)",p:.25},children:o.jsx(se.LuRefreshCw,{size:12})})]}),T&&o.jsxs(o.Fragment,{children:[o.jsx(me,{size:"small",onClick:M=>V(M.currentTarget),sx:{color:"var(--ov-fg-muted)",p:.25,flexShrink:0},children:o.jsx(se.LuEllipsisVertical,{size:13})}),o.jsx(He,{anchorEl:W,open:!!W,onClose:()=>V(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-subtle)",minWidth:140}}},children:k.map(M=>o.jsx(Ne,{onClick:()=>{V(null),M.onClick()},sx:{fontSize:"0.8125rem"},children:M.label},M.label))})]})]}),o.jsx(he,{series:r,timeRange:n,valueFormat:c,unit:m,valueFormatter:v,annotations:x,eventMarkers:y,area:f,colors:g,height:ee,loading:L,error:J,onRetry:G,skipAnimation:!0,yAxisPosition:D,xAxisPosition:b,margin:F,yAxisWidth:S,xAxisHeight:C,yAxisInline:q,yAxisInlinePosition:H,compact:!0,grid:!0})]})}ze.displayName="MetricsPanel";const ot={xs:120,sm:180,md:260,lg:360,xl:480};function we({series:e,capacity:t,timeRange:a,valueFormat:r="number",unit:n,valueFormatter:i,stacked:s=!0,colors:d,yAxisPosition:c="left",size:m="md",height:v,loading:x,error:y,onRetry:f,skipAnimation:h=!1,sx:g}){const p=K(),A=v??ot[m],k=l.useMemo(()=>N(d),[d]),D=l.useMemo(()=>i??B(r,n),[i,r,n]),b=e.length===0||e.every(C=>C.data.length===0),F=l.useMemo(()=>{for(const C of e)if(C.data.length>0)return C.data.map(q=>new Date(q.timestamp));return[]},[e]),S=l.useMemo(()=>e.map((C,q)=>({id:C.id,label:C.label,data:C.data.map(H=>H.value),color:C.color?$(C.color):k[q%k.length],area:!0,showMark:!1,stack:s?"total":void 0,valueFormatter:D})),[e,s,D,k]);return o.jsx(j,{sx:g,children:o.jsx(X,{loading:x,error:y,onRetry:f,empty:b,height:A,children:o.jsx(xe.LineChart,{height:A,series:S,xAxis:[{data:F,scaleType:"time",...a&&{min:a.from,max:a.to}}],yAxis:[{valueFormatter:D,position:c}],grid:{horizontal:!0},skipAnimation:h,hideLegend:!0,sx:{"& .MuiChartsAxis-line":{stroke:p.axisLineColor},"& .MuiChartsAxis-tick":{stroke:p.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:p.tooltipFg,fontSize:p.fontSize},"& .MuiChartsGrid-line":{stroke:p.gridColor},"& .MuiAreaElement-root":{opacity:p.areaOpacity}},children:t!=null&&o.jsx(ie.ChartsReferenceLine,{y:t,label:"Capacity",lineStyle:{stroke:$("danger"),strokeDasharray:"6 3"},labelStyle:{fill:p.tooltipFg,fontSize:p.fontSize}})})})})}we.displayName="StackedAreaChart";exports.BarChart=Me;exports.GaugeCard=$e;exports.MetricsPanel=ze;exports.PieChart=je;exports.ScatterChart=ke;exports.Sparkline=Ae;exports.StackedAreaChart=we;exports.TimeSeriesChart=he;exports.chartPalette=N;exports.formatBytes=pe;exports.formatDuration=ye;exports.formatNumber=Se;exports.formatPercent=ve;exports.formatRate=be;exports.formatSI=Ce;exports.formatTimeAxisTick=Re;exports.getValueFormatter=B;exports.resolveChartColor=$;exports.useChartTheme=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),De=require("@mui/material/styles"),o=require("react/jsx-runtime"),Le=require("react-dom"),j=require("@mui/material/Box"),Te=require("@mui/material/Popper"),xe=require("@mui/x-charts/LineChart"),ie=require("@mui/x-charts/ChartsReferenceLine"),Z=require("@mui/x-charts/hooks"),se=require("react-icons/lu"),le=require("./Skeleton-CfdQWLQM.cjs"),fe=require("./ErrorState-Cwwem5yh.cjs"),Fe=require("@mui/x-charts/BarChart"),Pe=require("@mui/x-charts/PieChart"),qe=require("@mui/x-charts/ScatterChart"),Ee=require("@mui/x-charts/SparkLineChart"),ce=require("@mui/material/Typography"),Be=require("@mui/x-charts/Gauge"),me=require("@mui/material/IconButton"),Ne=require("@mui/material/MenuItem"),He=require("@mui/material/Menu"),Ge=require("./Select-CnRBSc5w.cjs"),ge={primary:"--ov-accent",secondary:"--ov-fg-muted",success:"--ov-success-default",warning:"--ov-warning-default",error:"--ov-danger-default",info:"--ov-info-default",neutral:"--ov-fg-default",accent:"--ov-accent",danger:"--ov-danger-default",muted:"--ov-fg-muted"},Ie=new Set(Object.keys(ge)),ue=new Map;function $(e){const t=ue.get(e);if(t!==void 0)return t;let a;if(Ie.has(e)){const r=ge[e];typeof document<"u"?a=getComputedStyle(document.documentElement).getPropertyValue(r).trim()||`var(${r})`:a=`var(${r})`}else a=e;return ue.set(e,a),a}function We(){ue.clear()}const Ve=["primary","success","warning","info","error","secondary","accent","neutral"];function N(e){return(e&&e.length>0?e:Ve).map($)}const w=new Intl.NumberFormat(void 0,{maximumFractionDigits:1}),Oe=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"});function pe(e,t){const a=Math.abs(e);return a<1024?`${e} ${t??"B"}`:a<1024**2?`${w.format(e/1024)} ${t??"KiB"}`:a<1024**3?`${w.format(e/1024**2)} ${t??"MiB"}`:a<1024**4?`${w.format(e/1024**3)} ${t??"GiB"}`:`${w.format(e/1024**4)} ${t??"TiB"}`}function ve(e,t){return`${w.format(e)}${t??"%"}`}function ye(e,t){const a=Math.abs(e);return t?`${w.format(e)} ${t}`:a<1e3?`${w.format(e)} ms`:a<6e4?`${w.format(e/1e3)} s`:a<36e5?`${w.format(e/6e4)} m`:`${w.format(e/36e5)} h`}const Y=["","k","M","G","T","P"];function be(e,t){const a=Math.abs(e);let r=0,n=a;for(;n>=1e3&&r<Y.length-1;)n/=1e3,r++;return`${e<0?"-":""}${w.format(n)} ${Y[r]}${t??"/s"}`}function Ce(e,t){const a=Math.abs(e);let r=0,n=a;for(;n>=1e3&&r<Y.length-1;)n/=1e3,r++;const i=e<0?"-":"",s=t?` ${t}`:Y[r]?` ${Y[r]}`:"";return`${i}${w.format(n)}${s}`}function Se(e,t){const a=new Intl.NumberFormat(void 0).format(e);return t?`${a} ${t}`:a}function Re(e){return Oe.format(e)}function B(e,t){const a=(()=>{switch(e){case"bytes":return r=>pe(r,t);case"percent":return r=>ve(r,t);case"duration":return r=>ye(r,t);case"rate":return r=>be(r,t);case"si":return r=>Ce(r,t);case"number":return r=>Se(r,t)}})();return r=>r==null?"–":a(r)}const de=new Map;function R(e,t){if(typeof document>"u")return t;const a=de.get(e);if(a!==void 0)return a;const n=getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t;return de.set(e,n),n}function K(){const e=De.useTheme(),t=e.palette.mode==="dark";return l.useEffect(()=>{de.clear(),We()},[t]),l.useMemo(()=>({axisLineColor:R("--ov-border-default",t?"#3a3a3a":"#d4d4d4"),gridColor:R("--ov-border-subtle",t?"#2a2a2a":"#e8e8e8"),tooltipBg:R("--ov-bg-surface",t?"#1e1e1e":"#ffffff"),tooltipFg:R("--ov-fg-default",t?"#e0e0e0":"#1a1a1a"),fontFamily:R("--ov-font-sans",e.typography.fontFamily??"sans-serif"),fontSize:11,areaOpacity:.15}),[t,e.typography.fontFamily])}function X({loading:e,error:t,onRetry:a,empty:r,width:n,height:i,children:s}){return e?o.jsx(j,{sx:{width:n??"100%",height:i},children:o.jsx(le.Skeleton,{variant:"rectangular",width:"100%",height:i})}):t?o.jsx(j,{sx:{width:n??"100%",height:i,display:"flex",alignItems:"center",justifyContent:"center"},children:o.jsx(fe.ErrorState,{message:t,onRetry:a,variant:"panel"})}):r?o.jsx(j,{sx:{width:n??"100%",height:i,display:"flex",alignItems:"center",justifyContent:"center"},children:o.jsx(fe.EmptyState,{icon:o.jsx(se.LuChartBar,{size:32}),title:"No data",description:"There is no data to display.",size:"sm"})}):o.jsx(o.Fragment,{children:s})}const Ye={xs:120,sm:180,md:260,lg:360,xl:480};function Ke({markers:e}){const t=Z.useXScale(),{top:a}=Z.useDrawingArea(),[r,n]=l.useState(null),i=l.useCallback((c,m)=>{const v=m.currentTarget.getBoundingClientRect();n({index:c,anchor:{getBoundingClientRect:()=>v}})},[]),s=l.useCallback(()=>n(null),[]),d=r!=null?e[r.index]:null;return o.jsxs("g",{children:[e.map((c,m)=>{const v=c.timestamp instanceof Date?c.timestamp:new Date(c.timestamp),x=t(v);if(x==null||isNaN(x))return null;const y=$(c.color??"muted"),f=!!c.tooltip;return o.jsxs("g",{style:f?{cursor:"pointer"}:void 0,onPointerEnter:f?h=>i(m,h):void 0,onPointerLeave:f?s:void 0,children:[f&&o.jsx("rect",{x:x-16,y:a-(c.label?20:12),width:32,height:c.label?20:12,fill:"transparent"}),o.jsx("text",{x,y:a-1,textAnchor:"middle",fill:y,fontSize:8,children:"▼"}),c.label&&o.jsx("text",{x,y:a-9,textAnchor:"middle",fill:y,fontSize:9,fontWeight:500,children:c.label})]},`evt-${m}`)}),r&&d?.tooltip&&Le.createPortal(o.jsx(Te,{open:!0,anchorEl:r.anchor,placement:"top",modifiers:[{name:"offset",options:{offset:[0,6]}}],sx:{zIndex:1500,pointerEvents:"none"},children:o.jsx(j,{sx:{bgcolor:"var(--ov-bg-elevated, #1e1e2e)",color:"var(--ov-fg-default, #cdd6f4)",border:"1px solid var(--ov-border-subtle, #45475a)",borderRadius:"6px",px:1.25,py:.75,fontSize:"0.75rem",lineHeight:1.4,maxWidth:260,boxShadow:"0 4px 12px rgba(0,0,0,0.4)"},children:d.tooltip})}),document.body)]})}function Xe({formatter:e,color:t,position:a="right"}){const r=Z.useYScale(),{left:n,top:i,width:s,height:d}=Z.useDrawingArea(),c=r.ticks?.()??[],m=a==="right",v=m?n+s-4:n+4,x=m?"end":"start";return o.jsx("g",{children:c.map(y=>{const f=r(y);if(f==null||isNaN(f)||f<i-2||f>i+d+2)return null;const h=e(y);return o.jsx("text",{x:v,y:f-4,textAnchor:x,fill:t,fontSize:10,opacity:.7,children:h},y)})})}function he({series:e,timeRange:t,yAxisLabel:a,valueFormat:r="number",unit:n,valueFormatter:i,annotations:s,area:d=!1,grid:c=!0,showLegend:m=!1,showMarks:v=!1,colors:x,yAxisPosition:y="left",xAxisPosition:f="bottom",compact:h=!1,margin:g,yAxisWidth:p,xAxisHeight:A,yAxisInline:k=!1,yAxisInlinePosition:D="right",eventMarkers:b,size:F="md",height:S,loading:C,error:q,onRetry:H,skipAnimation:_=!1,sx:ee}){const L=K(),J=S??Ye[F],G=l.useMemo(()=>N(x),[x]),P=l.useMemo(()=>i??B(r,n),[i,r,n]),I=e.length===0||e.every(u=>u.data.length===0),{xData:te,alignedValues:W}=l.useMemo(()=>{if(e.length===0||e.every(z=>z.data.length===0))return{xData:[],alignedValues:e.map(()=>[])};const u=new Set;for(const z of e)for(const E of z.data)u.add(E.timestamp);const T=Array.from(u).sort((z,E)=>z-E),M=T.map(z=>new Date(z)),ne=e.map(z=>{const E=new Map;for(const U of z.data)E.set(U.timestamp,U.value);return T.map(U=>E.get(U)??null)});return{xData:M,alignedValues:ne}},[e]),V=l.useMemo(()=>e.map((u,T)=>({id:u.id,label:u.label,data:W[T]??[],color:u.color?$(u.color):G[T%G.length],area:u.area??d,showMark:v,valueFormatter:P,...u.lineStyle==="dashed"?{strokeDasharray:"6 3"}:{},...u.lineStyle==="dotted"?{strokeDasharray:"2 2"}:{}})),[e,W,d,v,P,G]),Q=h?{top:4,right:2,bottom:2,left:2}:{top:8,right:8,bottom:8,left:8},re=b?.length?b.some(u=>u.label)?20:10:0,oe={...Q,...g,top:(g?.top??Q.top)+re},O=k?0:p??(h?30:40),ae=A??(h?20:24);return o.jsx(j,{sx:ee,children:o.jsx(X,{loading:C,error:q,onRetry:H,empty:I,height:J,children:o.jsxs(xe.LineChart,{height:J,series:V,xAxis:[{data:te,scaleType:"time",height:ae,position:f,...t&&{min:t.from,max:t.to}}],yAxis:[{label:a,valueFormatter:P,position:y,width:O}],grid:c?{horizontal:!0}:void 0,skipAnimation:_,hideLegend:!m,margin:oe,sx:{"& .MuiChartsAxis-line":h?{display:"none"}:{stroke:L.axisLineColor},"& .MuiChartsAxis-tick":h?{display:"none"}:{stroke:L.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:L.tooltipFg,fontSize:L.fontSize},...k&&{"& .MuiChartsAxis-left, & .MuiChartsAxis-right":{display:"none"}},"& .MuiChartsGrid-line":{stroke:L.gridColor,opacity:.5},"& .MuiAreaElement-root":{opacity:L.areaOpacity}},children:[s?.map((u,T)=>o.jsx(ie.ChartsReferenceLine,{y:u.value,label:u.label,lineStyle:{stroke:u.color?$(u.color):"var(--ov-fg-muted)",strokeDasharray:u.lineStyle==="dashed"?"6 3":void 0},labelStyle:{fill:L.tooltipFg,fontSize:L.fontSize}},`ann-${T}`)),b?.map((u,T)=>o.jsx(ie.ChartsReferenceLine,{x:u.timestamp instanceof Date?u.timestamp:new Date(u.timestamp),lineStyle:{stroke:$(u.color??"muted"),strokeDasharray:u.lineStyle==="solid"?void 0:"4 3",strokeWidth:1}},`evt-line-${T}`)),b?.length&&o.jsx(Ke,{markers:b}),k&&o.jsx(Xe,{formatter:P,color:L.tooltipFg,position:D})]})})})}he.displayName="TimeSeriesChart";const Je={xs:120,sm:180,md:260,lg:360,xl:480};function Me({data:e,horizontal:t=!1,valueFormat:a="number",unit:r,valueFormatter:n,showLabels:i=!1,colors:s,size:d="md",height:c,loading:m,error:v,onRetry:x,skipAnimation:y=!1,sx:f}){const h=K(),g=c??Je[d],p=l.useMemo(()=>N(s),[s]),A=l.useMemo(()=>n??B(a,r),[n,a,r]),k=e.length===0,D=l.useMemo(()=>e.map((S,C)=>S.color?$(S.color):p[C%p.length]),[e,p]),b=l.useMemo(()=>e.map(S=>S.label),[e]),F=l.useMemo(()=>e.map(S=>S.value),[e]);return o.jsx(j,{sx:f,children:o.jsx(X,{loading:m,error:v,onRetry:x,empty:k,height:g,children:o.jsx(Fe.BarChart,{height:g,layout:t?"horizontal":"vertical",series:[{data:F,valueFormatter:A,label:i?"Value":void 0}],xAxis:t?[{valueFormatter:A}]:[{data:b,scaleType:"band"}],yAxis:t?[{data:b,scaleType:"band"}]:[{valueFormatter:A}],colors:D,skipAnimation:y,hideLegend:!0,sx:{"& .MuiChartsAxis-line":{stroke:h.axisLineColor},"& .MuiChartsAxis-tick":{stroke:h.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:h.tooltipFg,fontSize:h.fontSize}}})})})}Me.displayName="BarChart";const Qe={xs:120,sm:180,md:260,lg:360,xl:480};function je({data:e,innerRadius:t,showLabels:a=!1,colors:r,size:n="md",height:i,loading:s,error:d,onRetry:c,skipAnimation:m=!1,sx:v}){const x=i??Qe[n],y=l.useMemo(()=>N(r),[r]),f=e.length===0,h=l.useMemo(()=>e.map((g,p)=>({id:g.id,value:g.value,label:g.label,color:g.color?$(g.color):y[p%y.length]})),[e,y]);return o.jsx(j,{sx:v,children:o.jsx(X,{loading:s,error:d,onRetry:c,empty:f,height:x,children:o.jsx(Pe.PieChart,{height:x,series:[{data:h,innerRadius:t??0,arcLabel:a?g=>g.label??"":void 0}],skipAnimation:m})})})}je.displayName="PieChart";const Ue={xs:120,sm:180,md:260,lg:360,xl:480};function ke({series:e,xAxisLabel:t,yAxisLabel:a,xFormat:r="number",yFormat:n="number",colors:i,size:s="md",height:d,loading:c,error:m,onRetry:v,skipAnimation:x=!1,sx:y}){const f=K(),h=d??Ue[s],g=l.useMemo(()=>N(i),[i]),p=e.length===0||e.every(b=>b.data.length===0),A=l.useMemo(()=>B(r),[r]),k=l.useMemo(()=>B(n),[n]),D=l.useMemo(()=>e.map((b,F)=>({id:b.id,label:b.label,data:b.data.map((S,C)=>({x:S.x,y:S.y,id:S.id??C})),color:b.color?$(b.color):g[F%g.length]})),[e,g]);return o.jsx(j,{sx:y,children:o.jsx(X,{loading:c,error:m,onRetry:v,empty:p,height:h,children:o.jsx(qe.ScatterChart,{height:h,series:D,xAxis:[{label:t,valueFormatter:A}],yAxis:[{label:a,valueFormatter:k}],skipAnimation:x,sx:{"& .MuiChartsAxis-line":{stroke:f.axisLineColor},"& .MuiChartsAxis-tick":{stroke:f.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:f.tooltipFg,fontSize:f.fontSize}}})})})}ke.displayName="ScatterChart";const Ze={top:2,bottom:2,left:2,right:2};function Ae({data:e,plotType:t="line",area:a=!1,color:r="primary",height:n=40,width:i="100%",showTooltip:s=!1,skipAnimation:d=!1}){const c=$(r);return o.jsx(Ee.SparkLineChart,{data:e,plotType:t,area:a,height:n,width:typeof i=="number"?i:void 0,color:c,curve:"natural",margin:Ze,showTooltip:s,skipAnimation:d,sx:typeof i=="string"?{width:i}:void 0})}Ae.displayName="Sparkline";const _e={xs:80,sm:100,md:140,lg:180,xl:220};function et(e,t,a,r){const n=(e-t)/(a-t)*100;return n<r[0]?"success":n<r[1]?"warning":"danger"}function $e({value:e,min:t=0,max:a=100,label:r,unit:n,color:i,thresholds:s=[60,85],size:d="md",loading:c=!1}){const m=_e[d],v=l.useMemo(()=>$(i??et(e,t,a,s)),[i,e,t,a,s]);return c?o.jsxs(j,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[o.jsx(le.Skeleton,{variant:"circular",width:m,height:m}),o.jsx(le.Skeleton,{variant:"text",width:"60%"})]}):o.jsxs(j,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",alignItems:"center",gap:.5},children:[o.jsx(Be.Gauge,{value:e,valueMin:t,valueMax:a,startAngle:-110,endAngle:110,width:m,height:m,sx:{"& .MuiGauge-valueArc":{fill:v},"& .MuiGauge-referenceArc":{fill:"var(--ov-bg-surface-inset)"}},text:n?`${e}${n}`:`${e}`}),o.jsx(ce,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em",textAlign:"center"},children:r})]})}$e.displayName="GaugeCard";const tt=[{label:"15m",duration:900*1e3},{label:"1h",duration:3600*1e3},{label:"6h",duration:360*60*1e3},{label:"24h",duration:1440*60*1e3},{label:"7d",duration:10080*60*1e3}];function rt(e,t){const a=e.to.getTime()-e.from.getTime();let r=t[0],n=Math.abs(a-r.duration);for(const i of t){const s=Math.abs(a-i.duration);s<n&&(r=i,n=s)}return String(r.duration)}function ze({title:e,icon:t,subtitle:a,series:r,timeRange:n,onTimeRangeChange:i,refreshInterval:s=0,onRefresh:d,valueFormat:c="number",unit:m,valueFormatter:v,annotations:x,eventMarkers:y,area:f=!1,presets:h=tt,colors:g,headerActions:p,toolbar:A,menuItems:k,yAxisPosition:D="none",xAxisPosition:b="none",margin:F,yAxisWidth:S,xAxisHeight:C,yAxisInline:q=!0,yAxisInlinePosition:H,variant:_="default",height:ee=260,loading:L,error:J,onRetry:G}){const P=l.useRef(null),[I,te]=l.useState(s>0),[W,V]=l.useState(null),Q=_==="compact",re=l.useMemo(()=>rt(n,h),[n,h]),oe=l.useMemo(()=>h.map(M=>({value:String(M.duration),label:M.label})),[h]),O=l.useCallback(()=>{P.current&&(clearInterval(P.current),P.current=null)},[]);l.useEffect(()=>(O(),I&&s>0&&d&&(P.current=setInterval(d,s)),O),[I,s,d,O]);const ae=M=>{if(!i)return;const ne=Number(Array.isArray(M)?M[0]:M),z=new Date;i({from:new Date(z.getTime()-ne),to:z})},u=i||A||p||d,T=k&&k.length>0;return o.jsxs(j,{sx:{display:"flex",flexDirection:"column",overflow:"hidden",...Q?{bgcolor:"transparent"}:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px"}},children:[o.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:.75,px:1,py:.5,minHeight:32},children:[t&&o.jsx(j,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)",flexShrink:0},children:t}),o.jsxs(j,{sx:{minWidth:0,flex:1},children:[o.jsx(ce,{variant:"subtitle2",noWrap:!0,sx:{fontWeight:600,color:"var(--ov-fg-default)",fontSize:"0.75rem",lineHeight:1.2},children:e}),a&&o.jsx(ce,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-muted)",fontSize:"0.625rem",lineHeight:1.2,display:"block"},children:a})]}),u&&o.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:.25,flexShrink:0},children:[i&&o.jsx(Ge.Select,{options:oe,value:re,onChange:ae,size:"xs"}),A,p,d&&o.jsx(me,{size:"small",onClick:()=>{s>0?te(M=>!M):d()},sx:{color:I?"var(--ov-accent)":"var(--ov-fg-muted)",p:.25},children:o.jsx(se.LuRefreshCw,{size:12})})]}),T&&o.jsxs(o.Fragment,{children:[o.jsx(me,{size:"small",onClick:M=>V(M.currentTarget),sx:{color:"var(--ov-fg-muted)",p:.25,flexShrink:0},children:o.jsx(se.LuEllipsisVertical,{size:13})}),o.jsx(He,{anchorEl:W,open:!!W,onClose:()=>V(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-subtle)",minWidth:140}}},children:k.map(M=>o.jsx(Ne,{onClick:()=>{V(null),M.onClick()},sx:{fontSize:"0.8125rem"},children:M.label},M.label))})]})]}),o.jsx(he,{series:r,timeRange:n,valueFormat:c,unit:m,valueFormatter:v,annotations:x,eventMarkers:y,area:f,colors:g,height:ee,loading:L,error:J,onRetry:G,skipAnimation:!0,yAxisPosition:D,xAxisPosition:b,margin:F,yAxisWidth:S,xAxisHeight:C,yAxisInline:q,yAxisInlinePosition:H,compact:!0,grid:!0})]})}ze.displayName="MetricsPanel";const ot={xs:120,sm:180,md:260,lg:360,xl:480};function we({series:e,capacity:t,timeRange:a,valueFormat:r="number",unit:n,valueFormatter:i,stacked:s=!0,colors:d,yAxisPosition:c="left",size:m="md",height:v,loading:x,error:y,onRetry:f,skipAnimation:h=!1,sx:g}){const p=K(),A=v??ot[m],k=l.useMemo(()=>N(d),[d]),D=l.useMemo(()=>i??B(r,n),[i,r,n]),b=e.length===0||e.every(C=>C.data.length===0),F=l.useMemo(()=>{for(const C of e)if(C.data.length>0)return C.data.map(q=>new Date(q.timestamp));return[]},[e]),S=l.useMemo(()=>e.map((C,q)=>({id:C.id,label:C.label,data:C.data.map(H=>H.value),color:C.color?$(C.color):k[q%k.length],area:!0,showMark:!1,stack:s?"total":void 0,valueFormatter:D})),[e,s,D,k]);return o.jsx(j,{sx:g,children:o.jsx(X,{loading:x,error:y,onRetry:f,empty:b,height:A,children:o.jsx(xe.LineChart,{height:A,series:S,xAxis:[{data:F,scaleType:"time",...a&&{min:a.from,max:a.to}}],yAxis:[{valueFormatter:D,position:c}],grid:{horizontal:!0},skipAnimation:h,hideLegend:!0,sx:{"& .MuiChartsAxis-line":{stroke:p.axisLineColor},"& .MuiChartsAxis-tick":{stroke:p.axisLineColor},"& .MuiChartsAxis-tickLabel":{fill:p.tooltipFg,fontSize:p.fontSize},"& .MuiChartsGrid-line":{stroke:p.gridColor},"& .MuiAreaElement-root":{opacity:p.areaOpacity}},children:t!=null&&o.jsx(ie.ChartsReferenceLine,{y:t,label:"Capacity",lineStyle:{stroke:$("danger"),strokeDasharray:"6 3"},labelStyle:{fill:p.tooltipFg,fontSize:p.fontSize}})})})})}we.displayName="StackedAreaChart";exports.BarChart=Me;exports.GaugeCard=$e;exports.MetricsPanel=ze;exports.PieChart=je;exports.ScatterChart=ke;exports.Sparkline=Ae;exports.StackedAreaChart=we;exports.TimeSeriesChart=he;exports.chartPalette=N;exports.formatBytes=pe;exports.formatDuration=ye;exports.formatNumber=Se;exports.formatPercent=ve;exports.formatRate=be;exports.formatSI=Ce;exports.formatTimeAxisTick=Re;exports.getValueFormatter=B;exports.resolveChartColor=$;exports.useChartTheme=K;
package/dist/charts.js CHANGED
@@ -9,7 +9,7 @@ import { ChartsReferenceLine as lt } from "@mui/x-charts/ChartsReferenceLine";
9
9
  import { useXScale as Mt, useDrawingArea as xt, useYScale as $t } from "@mui/x-charts/hooks";
10
10
  import { LuChartBar as At, LuRefreshCw as zt, LuEllipsisVertical as wt } from "react-icons/lu";
11
11
  import { S as st } from "./Skeleton-BUYyXUiC.js";
12
- import { a as Dt, E as Lt } from "./ErrorState-CexYrMpy.js";
12
+ import { a as Dt, E as Lt } from "./ErrorState-DNOrahZX.js";
13
13
  import { BarChart as Tt } from "@mui/x-charts/BarChart";
14
14
  import { PieChart as Ft } from "@mui/x-charts/PieChart";
15
15
  import { ScatterChart as Pt } from "@mui/x-charts/ScatterChart";
package/dist/domain.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("@mui/material/Box"),d=require("@mui/material/Typography"),g=require("@mui/material/Chip"),V=require("./StatusPill-C7yn7dSA.cjs"),F=require("./Tooltip-44-P5KfQ.cjs"),M=require("./CopyButton-CACe3RCF.cjs"),p=require("react"),S=require("./TabPanel-CkUSl6Bt.cjs"),z=require("./CodeBlock-CIyG0DbW.cjs"),K=require("@mui/material/CircularProgress"),k=require("./Skeleton-CfdQWLQM.cjs"),J=require("@mui/material/IconButton"),y=require("react-icons/lu"),G=require("./types.cjs"),U=require("@mui/material/Popover"),X=require("@mui/material/TextField"),Y=require("@mui/material/MenuItem"),_=require("@mui/material/Select"),C={xs:{fontSize:"0.6875rem",chipSize:"small"},sm:{fontSize:"0.75rem",chipSize:"small"},md:{fontSize:"0.8125rem",chipSize:"small"},lg:{fontSize:"0.875rem",chipSize:"medium"},xl:{fontSize:"1rem",chipSize:"medium"}};function I({kind:r,name:n,namespace:i,icon:l,onNavigate:o,size:a="sm",interactive:t=!1}){const u=C[a]||C.sm;return e.jsxs(s,{sx:{display:"inline-flex",alignItems:"center",gap:.5,cursor:t?"pointer":void 0,"&:hover":t?{"& .resource-name":{textDecoration:"underline"}}:void 0},onClick:t?o:void 0,children:[l&&e.jsx(s,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)",fontSize:u.fontSize},children:l}),e.jsx(g,{label:r,size:u.chipSize,variant:"outlined",sx:{height:"auto",fontSize:"0.625rem",fontWeight:600,color:"var(--ov-fg-muted)",borderColor:"var(--ov-border-default)",py:0,"& .MuiChip-label":{px:.5,py:0}}}),e.jsx(d,{className:"resource-name",variant:"body2",sx:{fontSize:u.fontSize,fontWeight:500,color:t?"var(--ov-accent-fg)":"var(--ov-fg-base)"},noWrap:!0,children:n}),i&&e.jsxs(d,{variant:"caption",sx:{color:"var(--ov-fg-faint)",fontSize:u.fontSize},children:["(",i,")"]})]})}I.displayName="ResourceRef";const Q={Running:"healthy",Active:"healthy",Bound:"healthy",Available:"healthy",Ready:"healthy",Succeeded:"healthy",Completed:"healthy",Pending:"pending",ContainerCreating:"pending",Terminating:"warning",Warning:"warning",Degraded:"degraded",CrashLoopBackOff:"error",Failed:"error",Error:"error",ImagePullBackOff:"error",ErrImagePull:"error",OOMKilled:"error",Unknown:"unknown"};function T({status:r,conditions:n,size:i="sm",showTooltip:l=!0}){const o=Q[r]??"unknown",a=e.jsx(V.StatusPill,{status:o,label:r,size:i});return l&&n&&n.length>0?e.jsx(F.Tooltip,{variant:"rich",title:e.jsxs(s,{sx:{maxWidth:360},children:[e.jsx(d,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:"Conditions"}),n.map((t,u)=>e.jsxs(s,{sx:{mb:.5},children:[e.jsxs(d,{variant:"caption",sx:{fontWeight:600},children:[t.type,": ",t.status]}),t.reason&&e.jsx(d,{variant:"caption",sx:{display:"block",color:"text.secondary"},children:t.reason}),t.message&&e.jsx(d,{variant:"caption",sx:{display:"block",color:"text.secondary",fontSize:"0.65rem"},children:t.message})]},u))]}),children:e.jsx(s,{sx:{display:"inline-flex"},children:a})}):a}T.displayName="ResourceStatus";const w={xs:{labelSize:"0.625rem",valueSize:"0.6875rem",gap:1},sm:{labelSize:"0.6875rem",valueSize:"0.75rem",gap:1.5},md:{labelSize:"0.75rem",valueSize:"0.8125rem",gap:2},lg:{labelSize:"0.8125rem",valueSize:"0.875rem",gap:2.5},xl:{labelSize:"0.875rem",valueSize:"1rem",gap:3}};function j({items:r,columns:n=1,size:i="md"}){const l=w[i]||w.md;return e.jsx(s,{sx:{display:"grid",gridTemplateColumns:`repeat(${n}, 1fr)`,gap:l.gap},children:r.map((o,a)=>e.jsxs(s,{children:[e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.25},children:[o.icon&&e.jsx(s,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)"},children:o.icon}),e.jsx(d,{variant:"caption",sx:{fontSize:l.labelSize,fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:o.label})]}),e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(d,{variant:"body2",sx:{fontSize:l.valueSize,color:"var(--ov-fg-base)",wordBreak:"break-word"},children:o.value}),o.copyable&&e.jsx(M.CopyButton,{value:String(o.value),size:"xs"})]})]},a))})}j.displayName="DescriptionList";function A(r,n=""){const i=[];for(const[l,o]of Object.entries(r)){const a=n?`${n}.${l}`:l;o!==null&&typeof o=="object"&&!Array.isArray(o)?i.push(...A(o,a)):i.push({label:a,value:Array.isArray(o)?o.join(", "):String(o??"—"),copyable:!0})}return i}function W({data:r,title:n,tabs:i,defaultTab:l,sx:o}){const a=p.useMemo(()=>A(r),[r]),t=p.useMemo(()=>{try{return JSON.stringify(r,null,2)}catch{return"{}"}},[r]),u=p.useMemo(()=>[{key:"summary",label:"Summary",content:e.jsx(j,{items:a,columns:2})},{key:"yaml",label:"YAML",content:e.jsx(z.CodeBlock,{language:"yaml",lineNumbers:!0,children:t})},{key:"json",label:"JSON",content:e.jsx(z.CodeBlock,{language:"json",lineNumbers:!0,children:t})}],[a,t]),x=p.useMemo(()=>[...u,...i??[]],[u,i]),[m,b]=p.useState(l??x[0]?.key??"summary");return e.jsxs(s,{sx:{border:"1px solid var(--ov-border-default)",borderRadius:"6px",overflow:"hidden",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[n&&e.jsx(s,{sx:{px:2,py:1,borderBottom:"1px solid var(--ov-border-default)",bgcolor:"var(--ov-bg-surface)"},children:e.jsx(d,{variant:"subtitle2",sx:{fontWeight:600,color:"var(--ov-fg-base)"},children:n})}),e.jsx(s,{sx:{px:2,pt:1},children:e.jsx(S.Tabs,{tabs:x.map(h=>({key:h.key,label:h.label})),value:m,onChange:b,size:"sm"})}),e.jsx(s,{sx:{p:2},children:x.map(h=>e.jsx(S.TabPanel,{value:h.key,activeValue:m,children:h.content},h.key))})]})}W.displayName="ObjectInspector";function Z(r){if(!r)return"—";const n=Date.now()-new Date(r).getTime(),i=Math.floor(n/6e4);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function ee({event:r}){return e.jsxs(s,{sx:{display:"flex",alignItems:"flex-start",gap:1.5,py:1,px:1.5,borderBottom:"1px solid var(--ov-border-muted)","&:last-child":{borderBottom:"none"}},children:[e.jsx(g,{label:r.type,size:"small",color:r.type==="Warning"?"warning":"info",variant:"outlined",sx:{fontSize:"0.625rem",height:20,flexShrink:0,mt:.25}}),e.jsxs(s,{sx:{flex:1,minWidth:0},children:[e.jsx(d,{variant:"body2",sx:{fontWeight:600,fontSize:"0.8125rem",color:"var(--ov-fg-base)"},children:r.reason}),e.jsx(d,{variant:"body2",sx:{fontSize:"0.75rem",color:"var(--ov-fg-default)",mt:.25},children:r.message}),r.involvedObject&&e.jsxs(d,{variant:"caption",sx:{color:"var(--ov-fg-muted)",mt:.25,display:"block"},children:[r.involvedObject.kind,"/",r.involvedObject.name,r.involvedObject.namespace?` (${r.involvedObject.namespace})`:""]})]}),e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:1,flexShrink:0},children:[r.count!=null&&r.count>1&&e.jsx(g,{label:`×${r.count}`,size:"small",sx:{fontSize:"0.625rem",height:18}}),e.jsx(d,{variant:"caption",sx:{color:"var(--ov-fg-faint)",whiteSpace:"nowrap"},children:Z(r.lastTimestamp??r.firstTimestamp)})]})]})}function B({events:r,loading:n=!1}){return n?e.jsx(s,{sx:{display:"flex",justifyContent:"center",py:4},children:e.jsx(K,{size:24})}):r.length===0?e.jsx(s,{sx:{textAlign:"center",py:4,color:"var(--ov-fg-muted)"},children:e.jsx(d,{variant:"body2",children:"No events"})}):e.jsx(s,{children:r.map((i,l)=>e.jsx(ee,{event:i},l))})}B.displayName="EventsList";const re={info:"var(--ov-fg-default)",warn:"var(--ov-warning)",error:"var(--ov-danger)",debug:"var(--ov-fg-faint)"},R=20;function O({lines:r,follow:n=!1,wrap:i=!1,timestamps:l=!0,maxLines:o,severity:a}){const t=p.useRef(null),u=p.useMemo(()=>{let x=r;return a&&(x=x.filter(m=>m.severity===a)),o&&(x=x.slice(-o)),x},[r,a,o]);return p.useEffect(()=>{n&&t.current&&(t.current.scrollTop=t.current.scrollHeight)},[u.length,n]),e.jsx(s,{ref:t,sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.75rem",lineHeight:`${R}px`,bgcolor:"#0d1117",color:"var(--ov-fg-default)",border:"1px solid var(--ov-border-default)",borderRadius:"6px",overflow:"auto",maxHeight:400,p:1,whiteSpace:i?"pre-wrap":"pre",wordBreak:i?"break-all":void 0},children:u.length===0?e.jsx(d,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontFamily:"inherit",fontSize:"inherit",py:2,textAlign:"center"},children:"No log lines"}):u.map((x,m)=>e.jsxs(s,{sx:{display:"flex",gap:1,color:re[x.severity??"info"],minHeight:R,"&:hover":{bgcolor:"rgba(255,255,255,0.03)"}},children:[e.jsx(s,{sx:{color:"var(--ov-fg-faint)",userSelect:"none",width:40,textAlign:"right",flexShrink:0},children:m+1}),l&&x.timestamp&&e.jsx(s,{sx:{color:"var(--ov-fg-muted)",flexShrink:0},children:x.timestamp}),e.jsx(s,{sx:{flex:1},children:x.content})]},m))})}O.displayName="LogsViewer";const oe={up:"var(--ov-success)",down:"var(--ov-danger)",neutral:"var(--ov-fg-muted)"};function q({label:r,value:n,unit:i,delta:l,deltaDirection:o="neutral",sparkline:a,loading:t=!1}){return t?e.jsxs(s,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)"},children:[e.jsx(k.Skeleton,{variant:"text",width:"40%"}),e.jsx(k.Skeleton,{variant:"text",width:"60%",height:32})]}):e.jsxs(s,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",gap:.5},children:[e.jsx(d,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:r}),e.jsxs(s,{sx:{display:"flex",alignItems:"baseline",gap:.5},children:[e.jsx(d,{variant:"h5",sx:{fontWeight:700,color:"var(--ov-fg-base)",lineHeight:1},children:n}),i&&e.jsx(d,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontSize:"0.75rem"},children:i})]}),l!=null&&e.jsxs(d,{variant:"caption",sx:{color:oe[o],fontWeight:500,fontSize:"0.75rem"},children:[o==="up"&&"↑",o==="down"&&"↓",l>0?"+":"",l,"%"]}),a&&e.jsx(s,{sx:{mt:.5},children:a})]})}q.displayName="MetricCard";function L({value:r,revealed:n,onReveal:i,copyable:l=!1}){const[o,a]=p.useState(!1),t=n??o,u=()=>{i?i():a(x=>!x)};return e.jsxs(s,{sx:{display:"inline-flex",alignItems:"center",gap:.5},children:[e.jsx(d,{variant:"body2",sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.8125rem",color:t?"var(--ov-fg-base)":"var(--ov-fg-muted)",letterSpacing:t?void 0:"0.15em"},children:t?r:"••••••••"}),e.jsx(J,{size:"small",onClick:u,sx:{p:.25},children:t?e.jsx(y.LuEyeOff,{size:14}):e.jsx(y.LuEye,{size:14})}),l&&e.jsx(M.CopyButton,{value:r,size:"xs"})]})}L.displayName="SecretValueMask";const te={xs:"var(--ov-text-xs)",sm:"var(--ov-text-xs)",md:"var(--ov-text-sm)",lg:"var(--ov-text-sm)",xl:"var(--ov-text-sm)"};function E({segments:r,onNavigate:n,size:i="sm",sx:l}){const o=te[i];return e.jsx(s,{sx:{display:"flex",alignItems:"center",gap:.5,...typeof l=="object"&&!Array.isArray(l)?l:{}},children:r.map((a,t)=>e.jsxs(p.Fragment,{children:[t>0&&e.jsx(y.LuChevronRight,{size:12,color:"var(--ov-fg-faint)"}),e.jsxs(s,{onClick:n?()=>n(a,t):void 0,sx:{display:"inline-flex",alignItems:"center",gap:.5,px:.5,py:.125,borderRadius:"3px",cursor:n?"pointer":"default",...n&&{"&:hover":{bgcolor:"var(--ov-state-hover)"}}},children:[a.icon&&e.jsx(s,{sx:{display:"flex",color:"var(--ov-fg-muted)",flexShrink:0},children:a.icon}),e.jsx(d,{sx:{fontSize:o,color:t===r.length-1?"var(--ov-fg-base)":"var(--ov-fg-muted)",fontWeight:t===r.length-1?500:400,whiteSpace:"nowrap"},children:a.label})]})]},t))})}E.displayName="ResourceBreadcrumb";const se={xs:8,sm:10,md:12,lg:14,xl:16};function N({events:r,size:n="sm",sx:i}){const l=se[n];return e.jsx(s,{sx:{display:"flex",flexDirection:"column",...typeof i=="object"&&!Array.isArray(i)?i:{}},children:r.map((o,a)=>{const t=o.color?G.toCssColor(o.color):"var(--ov-fg-muted)",u=a===r.length-1;return e.jsxs(s,{sx:{display:"flex",gap:1.5},children:[e.jsxs(s,{sx:{display:"flex",flexDirection:"column",alignItems:"center",width:l+8,flexShrink:0},children:[o.icon?e.jsx(s,{sx:{color:t,display:"flex",mt:.25},children:o.icon}):e.jsx(s,{sx:{width:l,height:l,borderRadius:"50%",bgcolor:t,mt:.5,flexShrink:0}}),!u&&e.jsx(s,{sx:{width:2,flex:1,bgcolor:"var(--ov-border-muted)",minHeight:16}})]}),e.jsxs(s,{sx:{flex:1,pb:u?0:2,minWidth:0},children:[e.jsxs(s,{sx:{display:"flex",justifyContent:"space-between",alignItems:"baseline",mb:.25},children:[e.jsx(d,{sx:{fontSize:n==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",fontWeight:500,color:"var(--ov-fg-base)"},children:o.title}),e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",whiteSpace:"nowrap",ml:1,flexShrink:0},children:typeof o.timestamp=="string"?o.timestamp:o.timestamp.toLocaleTimeString()})]}),o.description&&e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",lineHeight:1.5},children:o.description})]})]},o.id)})})}N.displayName="Timeline";function P({filters:r,activeFilters:n,onChange:i,sx:l}){const[o,a]=p.useState(null),[t,u]=p.useState(null),[x,m]=p.useState(""),b=(c,f)=>{a(c.currentTarget),u(f);const v=n.find(H=>H.key===f.key);m(v?.value??"")},h=()=>{if(!t)return;const c=t.key,f=n.filter(v=>v.key!==c);x.trim()&&f.push({key:c,value:x.trim()}),i(f),a(null),u(null)},$=c=>{i(n.filter(f=>f.key!==c))},D=new Set(n.map(c=>c.key));return e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.75,flexWrap:"wrap",...typeof l=="object"&&!Array.isArray(l)?l:{}},children:[n.map(c=>{const f=r.find(v=>v.key===c.key);return e.jsx(g,{label:`${f?.label??c.key}: ${c.value}`,size:"small",onDelete:()=>$(c.key),deleteIcon:e.jsx(y.LuX,{size:12}),onClick:v=>f&&b(v,f),sx:{fontSize:"var(--ov-text-xs)",bgcolor:"var(--ov-accent-subtle)",color:"var(--ov-accent-fg)","& .MuiChip-deleteIcon":{color:"var(--ov-accent-fg)"}}},c.key)}),r.filter(c=>!D.has(c.key)).map(c=>e.jsx(g,{label:c.label,size:"small",icon:e.jsx(y.LuPlus,{size:10}),onClick:f=>b(f,c),variant:"outlined",sx:{fontSize:"var(--ov-text-xs)",borderColor:"var(--ov-border-default)",color:"var(--ov-fg-muted)",cursor:"pointer"}},c.key)),e.jsx(U,{open:!!o,anchorEl:o,onClose:()=>{a(null),u(null)},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{p:2,minWidth:220,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:t&&e.jsxs(s,{children:[e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-muted)",mb:1},children:t.label}),t.type==="text"&&e.jsx(X,{autoFocus:!0,size:"small",fullWidth:!0,value:x,onChange:c=>m(c.target.value),onKeyDown:c=>{c.key==="Enter"&&h()},placeholder:t.placeholder,sx:{mb:1}}),t.type==="select"&&t.options&&e.jsx(_,{size:"small",fullWidth:!0,value:x,onChange:c=>m(c.target.value),sx:{mb:1},children:t.options.map(c=>e.jsx(Y,{value:c,children:c},c))}),e.jsx(s,{sx:{display:"flex",justifyContent:"flex-end",gap:.5},children:e.jsx(g,{label:"Apply",size:"small",onClick:h,sx:{cursor:"pointer",bgcolor:"var(--ov-accent)",color:"#fff",fontSize:"var(--ov-text-xs)"}})})]})})]})}P.displayName="FilterBar";exports.DescriptionList=j;exports.EventsList=B;exports.FilterBar=P;exports.LogsViewer=O;exports.MetricCard=q;exports.ObjectInspector=W;exports.ResourceBreadcrumb=E;exports.ResourceRef=I;exports.ResourceStatus=T;exports.SecretValueMask=L;exports.Timeline=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("@mui/material/Box"),d=require("@mui/material/Typography"),g=require("@mui/material/Chip"),V=require("./StatusPill-C7yn7dSA.cjs"),F=require("./Tooltip-oUFp4gNV.cjs"),M=require("./CopyButton-3fq1UAiv.cjs"),p=require("react"),S=require("./TabPanel-CkUSl6Bt.cjs"),z=require("./CodeBlock-DTB_WsXQ.cjs"),K=require("@mui/material/CircularProgress"),k=require("./Skeleton-CfdQWLQM.cjs"),J=require("@mui/material/IconButton"),y=require("react-icons/lu"),G=require("./types.cjs"),U=require("@mui/material/Popover"),X=require("@mui/material/TextField"),Y=require("@mui/material/MenuItem"),_=require("@mui/material/Select"),C={xs:{fontSize:"0.6875rem",chipSize:"small"},sm:{fontSize:"0.75rem",chipSize:"small"},md:{fontSize:"0.8125rem",chipSize:"small"},lg:{fontSize:"0.875rem",chipSize:"medium"},xl:{fontSize:"1rem",chipSize:"medium"}};function I({kind:r,name:n,namespace:i,icon:l,onNavigate:o,size:a="sm",interactive:t=!1}){const u=C[a]||C.sm;return e.jsxs(s,{sx:{display:"inline-flex",alignItems:"center",gap:.5,cursor:t?"pointer":void 0,"&:hover":t?{"& .resource-name":{textDecoration:"underline"}}:void 0},onClick:t?o:void 0,children:[l&&e.jsx(s,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)",fontSize:u.fontSize},children:l}),e.jsx(g,{label:r,size:u.chipSize,variant:"outlined",sx:{height:"auto",fontSize:"0.625rem",fontWeight:600,color:"var(--ov-fg-muted)",borderColor:"var(--ov-border-default)",py:0,"& .MuiChip-label":{px:.5,py:0}}}),e.jsx(d,{className:"resource-name",variant:"body2",sx:{fontSize:u.fontSize,fontWeight:500,color:t?"var(--ov-accent-fg)":"var(--ov-fg-base)"},noWrap:!0,children:n}),i&&e.jsxs(d,{variant:"caption",sx:{color:"var(--ov-fg-faint)",fontSize:u.fontSize},children:["(",i,")"]})]})}I.displayName="ResourceRef";const Q={Running:"healthy",Active:"healthy",Bound:"healthy",Available:"healthy",Ready:"healthy",Succeeded:"healthy",Completed:"healthy",Pending:"pending",ContainerCreating:"pending",Terminating:"warning",Warning:"warning",Degraded:"degraded",CrashLoopBackOff:"error",Failed:"error",Error:"error",ImagePullBackOff:"error",ErrImagePull:"error",OOMKilled:"error",Unknown:"unknown"};function T({status:r,conditions:n,size:i="sm",showTooltip:l=!0}){const o=Q[r]??"unknown",a=e.jsx(V.StatusPill,{status:o,label:r,size:i});return l&&n&&n.length>0?e.jsx(F.Tooltip,{variant:"rich",title:e.jsxs(s,{sx:{maxWidth:360},children:[e.jsx(d,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:"Conditions"}),n.map((t,u)=>e.jsxs(s,{sx:{mb:.5},children:[e.jsxs(d,{variant:"caption",sx:{fontWeight:600},children:[t.type,": ",t.status]}),t.reason&&e.jsx(d,{variant:"caption",sx:{display:"block",color:"text.secondary"},children:t.reason}),t.message&&e.jsx(d,{variant:"caption",sx:{display:"block",color:"text.secondary",fontSize:"0.65rem"},children:t.message})]},u))]}),children:e.jsx(s,{sx:{display:"inline-flex"},children:a})}):a}T.displayName="ResourceStatus";const w={xs:{labelSize:"0.625rem",valueSize:"0.6875rem",gap:1},sm:{labelSize:"0.6875rem",valueSize:"0.75rem",gap:1.5},md:{labelSize:"0.75rem",valueSize:"0.8125rem",gap:2},lg:{labelSize:"0.8125rem",valueSize:"0.875rem",gap:2.5},xl:{labelSize:"0.875rem",valueSize:"1rem",gap:3}};function j({items:r,columns:n=1,size:i="md"}){const l=w[i]||w.md;return e.jsx(s,{sx:{display:"grid",gridTemplateColumns:`repeat(${n}, 1fr)`,gap:l.gap},children:r.map((o,a)=>e.jsxs(s,{children:[e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.25},children:[o.icon&&e.jsx(s,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)"},children:o.icon}),e.jsx(d,{variant:"caption",sx:{fontSize:l.labelSize,fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:o.label})]}),e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(d,{variant:"body2",sx:{fontSize:l.valueSize,color:"var(--ov-fg-base)",wordBreak:"break-word"},children:o.value}),o.copyable&&e.jsx(M.CopyButton,{value:String(o.value),size:"xs"})]})]},a))})}j.displayName="DescriptionList";function A(r,n=""){const i=[];for(const[l,o]of Object.entries(r)){const a=n?`${n}.${l}`:l;o!==null&&typeof o=="object"&&!Array.isArray(o)?i.push(...A(o,a)):i.push({label:a,value:Array.isArray(o)?o.join(", "):String(o??"—"),copyable:!0})}return i}function W({data:r,title:n,tabs:i,defaultTab:l,sx:o}){const a=p.useMemo(()=>A(r),[r]),t=p.useMemo(()=>{try{return JSON.stringify(r,null,2)}catch{return"{}"}},[r]),u=p.useMemo(()=>[{key:"summary",label:"Summary",content:e.jsx(j,{items:a,columns:2})},{key:"yaml",label:"YAML",content:e.jsx(z.CodeBlock,{language:"yaml",lineNumbers:!0,children:t})},{key:"json",label:"JSON",content:e.jsx(z.CodeBlock,{language:"json",lineNumbers:!0,children:t})}],[a,t]),x=p.useMemo(()=>[...u,...i??[]],[u,i]),[m,b]=p.useState(l??x[0]?.key??"summary");return e.jsxs(s,{sx:{border:"1px solid var(--ov-border-default)",borderRadius:"6px",overflow:"hidden",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[n&&e.jsx(s,{sx:{px:2,py:1,borderBottom:"1px solid var(--ov-border-default)",bgcolor:"var(--ov-bg-surface)"},children:e.jsx(d,{variant:"subtitle2",sx:{fontWeight:600,color:"var(--ov-fg-base)"},children:n})}),e.jsx(s,{sx:{px:2,pt:1},children:e.jsx(S.Tabs,{tabs:x.map(h=>({key:h.key,label:h.label})),value:m,onChange:b,size:"sm"})}),e.jsx(s,{sx:{p:2},children:x.map(h=>e.jsx(S.TabPanel,{value:h.key,activeValue:m,children:h.content},h.key))})]})}W.displayName="ObjectInspector";function Z(r){if(!r)return"—";const n=Date.now()-new Date(r).getTime(),i=Math.floor(n/6e4);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function ee({event:r}){return e.jsxs(s,{sx:{display:"flex",alignItems:"flex-start",gap:1.5,py:1,px:1.5,borderBottom:"1px solid var(--ov-border-muted)","&:last-child":{borderBottom:"none"}},children:[e.jsx(g,{label:r.type,size:"small",color:r.type==="Warning"?"warning":"info",variant:"outlined",sx:{fontSize:"0.625rem",height:20,flexShrink:0,mt:.25}}),e.jsxs(s,{sx:{flex:1,minWidth:0},children:[e.jsx(d,{variant:"body2",sx:{fontWeight:600,fontSize:"0.8125rem",color:"var(--ov-fg-base)"},children:r.reason}),e.jsx(d,{variant:"body2",sx:{fontSize:"0.75rem",color:"var(--ov-fg-default)",mt:.25},children:r.message}),r.involvedObject&&e.jsxs(d,{variant:"caption",sx:{color:"var(--ov-fg-muted)",mt:.25,display:"block"},children:[r.involvedObject.kind,"/",r.involvedObject.name,r.involvedObject.namespace?` (${r.involvedObject.namespace})`:""]})]}),e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:1,flexShrink:0},children:[r.count!=null&&r.count>1&&e.jsx(g,{label:`×${r.count}`,size:"small",sx:{fontSize:"0.625rem",height:18}}),e.jsx(d,{variant:"caption",sx:{color:"var(--ov-fg-faint)",whiteSpace:"nowrap"},children:Z(r.lastTimestamp??r.firstTimestamp)})]})]})}function B({events:r,loading:n=!1}){return n?e.jsx(s,{sx:{display:"flex",justifyContent:"center",py:4},children:e.jsx(K,{size:24})}):r.length===0?e.jsx(s,{sx:{textAlign:"center",py:4,color:"var(--ov-fg-muted)"},children:e.jsx(d,{variant:"body2",children:"No events"})}):e.jsx(s,{children:r.map((i,l)=>e.jsx(ee,{event:i},l))})}B.displayName="EventsList";const re={info:"var(--ov-fg-default)",warn:"var(--ov-warning)",error:"var(--ov-danger)",debug:"var(--ov-fg-faint)"},R=20;function O({lines:r,follow:n=!1,wrap:i=!1,timestamps:l=!0,maxLines:o,severity:a}){const t=p.useRef(null),u=p.useMemo(()=>{let x=r;return a&&(x=x.filter(m=>m.severity===a)),o&&(x=x.slice(-o)),x},[r,a,o]);return p.useEffect(()=>{n&&t.current&&(t.current.scrollTop=t.current.scrollHeight)},[u.length,n]),e.jsx(s,{ref:t,sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.75rem",lineHeight:`${R}px`,bgcolor:"#0d1117",color:"var(--ov-fg-default)",border:"1px solid var(--ov-border-default)",borderRadius:"6px",overflow:"auto",maxHeight:400,p:1,whiteSpace:i?"pre-wrap":"pre",wordBreak:i?"break-all":void 0},children:u.length===0?e.jsx(d,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontFamily:"inherit",fontSize:"inherit",py:2,textAlign:"center"},children:"No log lines"}):u.map((x,m)=>e.jsxs(s,{sx:{display:"flex",gap:1,color:re[x.severity??"info"],minHeight:R,"&:hover":{bgcolor:"rgba(255,255,255,0.03)"}},children:[e.jsx(s,{sx:{color:"var(--ov-fg-faint)",userSelect:"none",width:40,textAlign:"right",flexShrink:0},children:m+1}),l&&x.timestamp&&e.jsx(s,{sx:{color:"var(--ov-fg-muted)",flexShrink:0},children:x.timestamp}),e.jsx(s,{sx:{flex:1},children:x.content})]},m))})}O.displayName="LogsViewer";const oe={up:"var(--ov-success)",down:"var(--ov-danger)",neutral:"var(--ov-fg-muted)"};function q({label:r,value:n,unit:i,delta:l,deltaDirection:o="neutral",sparkline:a,loading:t=!1}){return t?e.jsxs(s,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)"},children:[e.jsx(k.Skeleton,{variant:"text",width:"40%"}),e.jsx(k.Skeleton,{variant:"text",width:"60%",height:32})]}):e.jsxs(s,{sx:{p:2,border:"1px solid var(--ov-border-default)",borderRadius:"8px",bgcolor:"var(--ov-bg-surface)",display:"flex",flexDirection:"column",gap:.5},children:[e.jsx(d,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-fg-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:r}),e.jsxs(s,{sx:{display:"flex",alignItems:"baseline",gap:.5},children:[e.jsx(d,{variant:"h5",sx:{fontWeight:700,color:"var(--ov-fg-base)",lineHeight:1},children:n}),i&&e.jsx(d,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontSize:"0.75rem"},children:i})]}),l!=null&&e.jsxs(d,{variant:"caption",sx:{color:oe[o],fontWeight:500,fontSize:"0.75rem"},children:[o==="up"&&"↑",o==="down"&&"↓",l>0?"+":"",l,"%"]}),a&&e.jsx(s,{sx:{mt:.5},children:a})]})}q.displayName="MetricCard";function L({value:r,revealed:n,onReveal:i,copyable:l=!1}){const[o,a]=p.useState(!1),t=n??o,u=()=>{i?i():a(x=>!x)};return e.jsxs(s,{sx:{display:"inline-flex",alignItems:"center",gap:.5},children:[e.jsx(d,{variant:"body2",sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.8125rem",color:t?"var(--ov-fg-base)":"var(--ov-fg-muted)",letterSpacing:t?void 0:"0.15em"},children:t?r:"••••••••"}),e.jsx(J,{size:"small",onClick:u,sx:{p:.25},children:t?e.jsx(y.LuEyeOff,{size:14}):e.jsx(y.LuEye,{size:14})}),l&&e.jsx(M.CopyButton,{value:r,size:"xs"})]})}L.displayName="SecretValueMask";const te={xs:"var(--ov-text-xs)",sm:"var(--ov-text-xs)",md:"var(--ov-text-sm)",lg:"var(--ov-text-sm)",xl:"var(--ov-text-sm)"};function E({segments:r,onNavigate:n,size:i="sm",sx:l}){const o=te[i];return e.jsx(s,{sx:{display:"flex",alignItems:"center",gap:.5,...typeof l=="object"&&!Array.isArray(l)?l:{}},children:r.map((a,t)=>e.jsxs(p.Fragment,{children:[t>0&&e.jsx(y.LuChevronRight,{size:12,color:"var(--ov-fg-faint)"}),e.jsxs(s,{onClick:n?()=>n(a,t):void 0,sx:{display:"inline-flex",alignItems:"center",gap:.5,px:.5,py:.125,borderRadius:"3px",cursor:n?"pointer":"default",...n&&{"&:hover":{bgcolor:"var(--ov-state-hover)"}}},children:[a.icon&&e.jsx(s,{sx:{display:"flex",color:"var(--ov-fg-muted)",flexShrink:0},children:a.icon}),e.jsx(d,{sx:{fontSize:o,color:t===r.length-1?"var(--ov-fg-base)":"var(--ov-fg-muted)",fontWeight:t===r.length-1?500:400,whiteSpace:"nowrap"},children:a.label})]})]},t))})}E.displayName="ResourceBreadcrumb";const se={xs:8,sm:10,md:12,lg:14,xl:16};function N({events:r,size:n="sm",sx:i}){const l=se[n];return e.jsx(s,{sx:{display:"flex",flexDirection:"column",...typeof i=="object"&&!Array.isArray(i)?i:{}},children:r.map((o,a)=>{const t=o.color?G.toCssColor(o.color):"var(--ov-fg-muted)",u=a===r.length-1;return e.jsxs(s,{sx:{display:"flex",gap:1.5},children:[e.jsxs(s,{sx:{display:"flex",flexDirection:"column",alignItems:"center",width:l+8,flexShrink:0},children:[o.icon?e.jsx(s,{sx:{color:t,display:"flex",mt:.25},children:o.icon}):e.jsx(s,{sx:{width:l,height:l,borderRadius:"50%",bgcolor:t,mt:.5,flexShrink:0}}),!u&&e.jsx(s,{sx:{width:2,flex:1,bgcolor:"var(--ov-border-muted)",minHeight:16}})]}),e.jsxs(s,{sx:{flex:1,pb:u?0:2,minWidth:0},children:[e.jsxs(s,{sx:{display:"flex",justifyContent:"space-between",alignItems:"baseline",mb:.25},children:[e.jsx(d,{sx:{fontSize:n==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",fontWeight:500,color:"var(--ov-fg-base)"},children:o.title}),e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",whiteSpace:"nowrap",ml:1,flexShrink:0},children:typeof o.timestamp=="string"?o.timestamp:o.timestamp.toLocaleTimeString()})]}),o.description&&e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",lineHeight:1.5},children:o.description})]})]},o.id)})})}N.displayName="Timeline";function P({filters:r,activeFilters:n,onChange:i,sx:l}){const[o,a]=p.useState(null),[t,u]=p.useState(null),[x,m]=p.useState(""),b=(c,f)=>{a(c.currentTarget),u(f);const v=n.find(H=>H.key===f.key);m(v?.value??"")},h=()=>{if(!t)return;const c=t.key,f=n.filter(v=>v.key!==c);x.trim()&&f.push({key:c,value:x.trim()}),i(f),a(null),u(null)},$=c=>{i(n.filter(f=>f.key!==c))},D=new Set(n.map(c=>c.key));return e.jsxs(s,{sx:{display:"flex",alignItems:"center",gap:.75,flexWrap:"wrap",...typeof l=="object"&&!Array.isArray(l)?l:{}},children:[n.map(c=>{const f=r.find(v=>v.key===c.key);return e.jsx(g,{label:`${f?.label??c.key}: ${c.value}`,size:"small",onDelete:()=>$(c.key),deleteIcon:e.jsx(y.LuX,{size:12}),onClick:v=>f&&b(v,f),sx:{fontSize:"var(--ov-text-xs)",bgcolor:"var(--ov-accent-subtle)",color:"var(--ov-accent-fg)","& .MuiChip-deleteIcon":{color:"var(--ov-accent-fg)"}}},c.key)}),r.filter(c=>!D.has(c.key)).map(c=>e.jsx(g,{label:c.label,size:"small",icon:e.jsx(y.LuPlus,{size:10}),onClick:f=>b(f,c),variant:"outlined",sx:{fontSize:"var(--ov-text-xs)",borderColor:"var(--ov-border-default)",color:"var(--ov-fg-muted)",cursor:"pointer"}},c.key)),e.jsx(U,{open:!!o,anchorEl:o,onClose:()=>{a(null),u(null)},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{p:2,minWidth:220,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:t&&e.jsxs(s,{children:[e.jsx(d,{sx:{fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-muted)",mb:1},children:t.label}),t.type==="text"&&e.jsx(X,{autoFocus:!0,size:"small",fullWidth:!0,value:x,onChange:c=>m(c.target.value),onKeyDown:c=>{c.key==="Enter"&&h()},placeholder:t.placeholder,sx:{mb:1}}),t.type==="select"&&t.options&&e.jsx(_,{size:"small",fullWidth:!0,value:x,onChange:c=>m(c.target.value),sx:{mb:1},children:t.options.map(c=>e.jsx(Y,{value:c,children:c},c))}),e.jsx(s,{sx:{display:"flex",justifyContent:"flex-end",gap:.5},children:e.jsx(g,{label:"Apply",size:"small",onClick:h,sx:{cursor:"pointer",bgcolor:"var(--ov-accent)",color:"#fff",fontSize:"var(--ov-text-xs)"}})})]})})]})}P.displayName="FilterBar";exports.DescriptionList=j;exports.EventsList=B;exports.FilterBar=P;exports.LogsViewer=O;exports.MetricCard=q;exports.ObjectInspector=W;exports.ResourceBreadcrumb=E;exports.ResourceRef=I;exports.ResourceStatus=T;exports.SecretValueMask=L;exports.Timeline=N;
package/dist/domain.js CHANGED
@@ -3,11 +3,11 @@ import l from "@mui/material/Box";
3
3
  import f from "@mui/material/Typography";
4
4
  import x from "@mui/material/Chip";
5
5
  import { S as O } from "./StatusPill-C1NaiCzd.js";
6
- import { T as B } from "./Tooltip-BEVuYuZ3.js";
7
- import { C as R } from "./CopyButton-DPBgL0K8.js";
6
+ import { T as B } from "./Tooltip-CZMOcjX7.js";
7
+ import { C as R } from "./CopyButton-DWVcqdPe.js";
8
8
  import N, { useMemo as y, useState as b, useRef as E, useEffect as L } from "react";
9
9
  import { a as $, T as D } from "./TabPanel-DLHbgKpl.js";
10
- import { C as z } from "./CodeBlock-B1iQO7zU.js";
10
+ import { C as z } from "./CodeBlock-DV6CPG00.js";
11
11
  import H from "@mui/material/CircularProgress";
12
12
  import { S as k } from "./Skeleton-BUYyXUiC.js";
13
13
  import P from "@mui/material/IconButton";
package/dist/feedback.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),V=require("@mui/material/Alert"),A=require("@mui/material/IconButton"),X=require("@mui/icons-material/Close"),I=require("@mui/material/styles"),O=require("./StatusDot-CYyJxjJK.cjs"),G=require("./StatusPill-C7yn7dSA.cjs"),R=require("./ErrorState-CnIR-1xa.cjs"),J=require("./Skeleton-CfdQWLQM.cjs"),h=require("react"),a=require("@mui/material/Box"),m=require("@mui/material/Tooltip"),k=require("./types.cjs"),M=require("@mui/material/LinearProgress"),S=require("@mui/material/Typography"),P=require("@mui/material/Button"),j=require("@mui/material/CircularProgress"),b=require("react-icons/lu"),K={solid:"filled",soft:"standard",outline:"outlined"},Q={xs:{padding:"0px 6px",fontSize:"var(--ov-text-xs)",iconSize:16,borderRadius:6,closeSize:"small"},sm:{padding:"2px 8px",fontSize:"var(--ov-text-sm)",iconSize:18,borderRadius:8,closeSize:"small"},md:{padding:"6px 12px",fontSize:"var(--ov-text-sm)",iconSize:20,borderRadius:10,closeSize:"small"},lg:{padding:"8px 16px",fontSize:"var(--ov-text-md)",iconSize:22,borderRadius:10,closeSize:"medium"},xl:{padding:"12px 16px",fontSize:"var(--ov-text-md)",iconSize:24,borderRadius:12,closeSize:"medium"}},U={success:{light:{bg:"hsl(120, 80%, 98%)",fg:"hsl(120, 87%, 6%)",border:"hsl(120, 61%, 77%)",icon:"hsl(120, 44%, 53%)"},dark:{bg:"hsl(120, 84%, 10%)",fg:"hsl(120, 75%, 94%)",border:"hsl(120, 75%, 16%)",icon:"hsl(120, 44%, 53%)"}},warning:{light:{bg:"hsl(45, 100%, 97%)",fg:"hsl(45, 93%, 12%)",border:"hsl(45, 90%, 65%)",icon:"hsl(45, 90%, 40%)"},dark:{bg:"hsl(45, 95%, 16%)",fg:"hsl(45, 92%, 90%)",border:"hsl(45, 94%, 20%)",icon:"hsl(45, 90%, 40%)"}},error:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},danger:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},info:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 65%)",icon:"hsl(210, 98%, 42%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},primary:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 80%)",icon:"hsl(210, 98%, 48%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},secondary:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},accent:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},neutral:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}},muted:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}}};function w(t,r){return r==="outline"?{bg:"transparent",fg:t.fg,border:`1px solid ${I.alpha(t.border,.7)}`,icon:t.icon}:r==="solid"?{bg:t.icon,fg:"#fff",border:"none",icon:"#fff"}:{bg:t.bg,fg:t.fg,border:`1px solid ${I.alpha(t.border,.5)}`,icon:t.icon}}function B({children:t,color:r="info",emphasis:o="soft",dismissible:n=!1,onDismiss:i,actions:l,icon:s,startAdornment:c,size:d="md",sx:x}){const f=K[o]||"standard",u=Q[d],v={success:"success",info:"info",warning:"warning",error:"error",danger:"error",primary:"info",secondary:"info",accent:"info",neutral:"info",muted:"info"}[r]??"info";return e.jsx(V,{severity:v,variant:f,icon:s===!1?!1:s??c,action:e.jsxs(e.Fragment,{children:[l,n&&e.jsx(A,{size:u.closeSize,color:"inherit",onClick:i,"aria-label":"Dismiss",children:e.jsx(X,{fontSize:"small"})})]}),sx:H=>{const C=U[r],z=w(C.light,o),y=w(C.dark,o),$=o==="soft"?I.alpha(y.bg,.3):y.bg;return{padding:u.padding,fontSize:u.fontSize,borderRadius:`${u.borderRadius}px`,alignItems:"center",backgroundColor:z.bg,color:z.fg,border:z.border,"& .MuiAlert-icon":{fontSize:u.iconSize,mr:d==="xs"?.5:1,py:0,color:z.icon},"& .MuiAlert-message":{py:0,overflow:"hidden"},"& .MuiAlert-action":{py:0,alignItems:"center"},...H.applyStyles("dark",{backgroundColor:$,color:y.fg,border:y.border,"& .MuiAlert-icon":{color:y.icon}}),...typeof x=="object"&&x!==null?x:{}}},children:t})}B.displayName="Alert";function q({children:t,height:r=24,sx:o}){const n=h.Children.toArray(t),i=n.filter(s=>h.isValidElement(s)?s.props.align!=="right":!0),l=n.filter(s=>h.isValidElement(s)?s.props.align==="right":!1);return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:r,px:1,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontSize:"var(--ov-text-xs)",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:i}),e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:l})]})}q.displayName="StatusBar";function N({children:t,icon:r,onClick:o,tooltip:n,color:i,separator:l=!1,sx:s}){const c=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:.5,px:.75,height:20,fontSize:"var(--ov-text-xs)",color:i?k.toCssColor(i):"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"3px",whiteSpace:"nowrap",...l&&{borderRight:"1px solid var(--ov-border-muted)",pr:1,mr:.25},...o&&{"&:hover":{bgcolor:"var(--ov-state-hover)"}},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[r&&e.jsx(a,{component:"span",sx:{display:"inline-flex",fontSize:"0.75rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:c}):c}N.displayName="StatusBarItem";const Y={xs:2,sm:4,md:6,lg:8,xl:10};function T({value:t,indeterminate:r=!1,color:o="primary",size:n="sm",label:i,showValue:l=!1,sx:s}){const c=k.toCssColor(o),d=Y[n];return e.jsxs(a,{sx:{display:"flex",flexDirection:"column",gap:.5,...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[(i||l)&&e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[i&&e.jsx(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:i}),l&&!r&&t!==void 0&&e.jsxs(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]}),e.jsx(M,{variant:r?"indeterminate":"determinate",value:r?void 0:t,sx:{height:d,borderRadius:d/2,bgcolor:"var(--ov-bg-surface-inset)","& .MuiLinearProgress-bar":{bgcolor:c,borderRadius:d/2}}})]})}T.displayName="ProgressBar";const Z={connected:"var(--ov-success-default)",connecting:"var(--ov-warning-default)",disconnected:"var(--ov-fg-faint)",error:"var(--ov-danger-default)"},_={connected:"Connected",connecting:"Connecting",disconnected:"Disconnected",error:"Error"},ee={xs:6,sm:8,md:10,lg:12,xl:14};function L({status:t,label:r,size:o="sm",showLabel:n=!0,sx:i}){const l=Z[t],s=ee[o],c=r??_[t];return e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:.75,...typeof i=="object"&&!Array.isArray(i)?i:{}},children:[e.jsx(a,{sx:{width:s,height:s,borderRadius:"50%",bgcolor:l,flexShrink:0,...t==="connecting"&&{animation:"ov-conn-pulse 1.5s ease-in-out infinite","@keyframes ov-conn-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}}),n&&e.jsx(S,{sx:{fontSize:o==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",color:"var(--ov-fg-default)",lineHeight:1},children:c})]})}L.displayName="ConnectionIndicator";const te={xs:12,sm:14,md:16,lg:18,xl:20};function E({running:t,onStart:r,onStop:o,loading:n=!1,size:i="sm",label:l,sx:s}){const c=k.toMuiSize(i),d=te[i],x=()=>{t?o():r()},f=n?e.jsx(j,{size:d,color:"inherit"}):t?e.jsx(b.LuSquare,{size:d}):e.jsx(b.LuPlay,{size:d});return e.jsx(P,{size:c,variant:"contained",onClick:x,disabled:n,startIcon:f,sx:{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",color:"#fff",textTransform:"none","&:hover":{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",filter:"brightness(0.9)"},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:l??(t?"Stop":"Run")})}E.displayName="RunButton";const D=h.createContext(null);function re(){const t=h.useContext(D);if(!t)throw new Error("useNotificationStack must be used within a NotificationStackProvider");return t}const oe={info:e.jsx(b.LuInfo,{size:16}),success:e.jsx(b.LuCircleCheck,{size:16}),warning:e.jsx(b.LuTriangleAlert,{size:16}),error:e.jsx(b.LuCircleAlert,{size:16})},ne={info:"var(--ov-info-default)",success:"var(--ov-success-default)",warning:"var(--ov-warning-default)",error:"var(--ov-danger-default)"};function ie({notification:t,onDismiss:r}){const{id:o,severity:n,title:i,message:l,actions:s,timeout:c}=t,d=h.useRef(void 0);h.useEffect(()=>{const f=c??8e3;return f>0&&(d.current=setTimeout(()=>r(o),f)),()=>{d.current&&clearTimeout(d.current)}},[o,c,r]);const x=ne[n];return e.jsxs(a,{sx:{display:"flex",gap:1,minWidth:320,maxWidth:420,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderLeft:`3px solid ${x}`,borderRadius:"6px",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",p:1.5,animation:"ov-notif-slide-in 0.2s ease-out","@keyframes ov-notif-slide-in":{from:{opacity:0,transform:"translateX(40px)"},to:{opacity:1,transform:"translateX(0)"}}},children:[e.jsx(a,{sx:{color:x,pt:"2px",flexShrink:0},children:oe[n]}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsx(S,{sx:{fontSize:"0.8125rem",fontWeight:600,color:"var(--ov-fg-base)",lineHeight:1.4},children:i}),l&&e.jsx(S,{sx:{fontSize:"0.75rem",color:"var(--ov-fg-muted)",lineHeight:1.4,mt:.25},children:l}),s&&s.length>0&&e.jsx(a,{sx:{display:"flex",gap:.5,mt:1},children:s.map(f=>e.jsx(P,{size:"small",variant:"text",onClick:()=>{f.onClick(),r(o)},sx:{textTransform:"none",fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-accent-fg)",minWidth:"auto",px:1,py:.25},children:f.label},f.label))})]}),e.jsx(A,{size:"small",onClick:()=>r(o),sx:{alignSelf:"flex-start",p:"2px",color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:e.jsx(b.LuX,{size:14})})]})}let se=0;function W({children:t,maxVisible:r=5,position:o="bottom-right",sx:n}){const[i,l]=h.useState([]),s=h.useCallback(u=>{const p=`notif-${++se}`;return l(v=>[...v,{...u,id:p}]),p},[]),c=h.useCallback(u=>{l(p=>p.filter(v=>v.id!==u))},[]),d=h.useCallback(()=>{l([])},[]),x={"bottom-right":{bottom:32,right:12},"bottom-left":{bottom:32,left:12},"top-right":{top:12,right:12},"top-left":{top:12,left:12}},f=i.slice(-r);return e.jsxs(D.Provider,{value:{push:s,dismiss:c,dismissAll:d},children:[t,f.length>0&&e.jsx(a,{sx:{position:"fixed",zIndex:9998,display:"flex",flexDirection:o.startsWith("bottom")?"column-reverse":"column",gap:.75,...x[o],...typeof n=="object"&&!Array.isArray(n)?n:{}},children:f.map(u=>e.jsx(ie,{notification:u,onDismiss:c},u.id))})]})}W.displayName="NotificationStackProvider";function ae({label:t,bgColor:r,color:o,icon:n,onClick:i,tooltip:l}){const s=e.jsxs(a,{onClick:i,sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",height:"100%",fontSize:"0.625rem",fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",bgcolor:r??"transparent",color:o??"#fff",cursor:i?"pointer":"default",whiteSpace:"nowrap","&:hover":i?{filter:"brightness(1.15)"}:{}},children:[n&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:n}),t]});return l?e.jsx(m,{title:l,children:s}):s}function le({color:t,pulse:r,tooltip:o,onClick:n}){const i=e.jsx(a,{onClick:n,sx:{width:8,height:8,borderRadius:"50%",bgcolor:t,flexShrink:0,cursor:n?"pointer":"default","&:hover":n?{filter:"brightness(1.3)"}:{},...r&&{animation:"ov-footer-pulse 1.5s ease-in-out infinite","@keyframes ov-footer-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}});return o?e.jsx(m,{title:o,children:i}):i}function ce({children:t,icon:r,onClick:o,tooltip:n}){const i=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"2px",whiteSpace:"nowrap","&:hover":o?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.6875rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function de({label:t,tooltip:r}){const o=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)"},children:[e.jsx(j,{size:10,thickness:5,sx:{color:"var(--ov-fg-muted)"}}),t&&e.jsx("span",{children:t})]});return r?e.jsx(m,{title:r,children:o}):o}function fe({value:t,width:r=80,color:o="var(--ov-accent)",label:n,showValue:i=!1,tooltip:l}){const s=t===void 0,c=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.625rem",color:"var(--ov-fg-default)"},children:[n&&e.jsx(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:n}),e.jsx(M,{variant:s?"indeterminate":"determinate",value:s?void 0:t,sx:{width:r,height:3,borderRadius:1.5,bgcolor:"rgba(255,255,255,0.1)","& .MuiLinearProgress-bar":{bgcolor:o,borderRadius:1.5}}}),i&&!s&&t!==void 0&&e.jsxs(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]});return l?e.jsx(m,{title:l,children:c}):c}function ue({color:t}){return e.jsx(a,{sx:{width:"1px",height:"60%",bgcolor:t??"var(--ov-border-default)",flexShrink:0,mx:"2px"}})}function xe({icon:t,label:r,onClick:o,tooltip:n,color:i}){const l=e.jsxs(a,{component:"button",onClick:o,sx:{all:"unset",display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:500,color:i??"var(--ov-fg-default)",cursor:"pointer",borderRadius:"2px",whiteSpace:"nowrap","&:hover":{bgcolor:"rgba(255,255,255,0.1)"},"&:active":{bgcolor:"rgba(255,255,255,0.15)"}},children:[t&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:t}),r]});return n?e.jsx(m,{title:n,children:l}):l}function ge({count:t,icon:r,maxCount:o=99,onClick:n,tooltip:i,color:l}){const s=t>o?`${o}+`:String(t),c=e.jsxs(a,{onClick:n,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:600,color:"var(--ov-fg-default)",cursor:n?"pointer":"default","&:hover":n?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t>0&&e.jsx(a,{component:"span",sx:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,borderRadius:"7px",bgcolor:l??"var(--ov-accent)",color:"#fff",fontSize:"0.5625rem",fontWeight:700,lineHeight:1,px:"3px"},children:s})]});return i?e.jsx(m,{title:i,children:c}):c}function he({time:t,icon:r,running:o,tooltip:n}){const i=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.625rem",fontFamily:"var(--ov-font-mono)",fontFeatureSettings:'"tnum"',color:"var(--ov-fg-muted)",whiteSpace:"nowrap",...o&&{animation:"ov-footer-timer-blink 2s step-end infinite","@keyframes ov-footer-timer-blink":{"0%, 100%":{opacity:1},"50%":{opacity:.6}}}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function pe({value:t,size:r=12,color:o,tooltip:n}){const i=t===void 0,l=e.jsx(a,{sx:{display:"inline-flex",alignItems:"center",px:"4px"},children:e.jsx(j,{variant:i?"indeterminate":"determinate",value:i?void 0:t,size:r,thickness:5,sx:{color:o??"var(--ov-accent)",...i&&{animationDuration:"1s"}}})});return n?e.jsx(m,{title:n,children:l}):l}function g({left:t,right:r,height:o=22,sx:n}){return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:o,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontFamily:"var(--ov-font-ui)",overflow:"hidden",flexShrink:0,...typeof n=="object"&&!Array.isArray(n)?n:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:t}),e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:r})]})}g.displayName="IDEStatusFooter";g.Chip=ae;g.Dot=le;g.Text=ce;g.Spinner=de;g.Progress=fe;g.Circular=pe;g.Separator=ue;g.Button=xe;g.Badge=ge;g.Timer=he;const me={xs:20,sm:32,md:48,lg:64,xl:80},ve={xs:5,sm:4.5,md:4,lg:3.5,xl:3},be={xs:"0.5rem",sm:"0.625rem",md:"0.8125rem",lg:"1rem",xl:"1.25rem"};function F({value:t,size:r="md",color:o="primary",thickness:n,showValue:i=!1,label:l,caption:s,trackColor:c,sx:d}){const x=me[r],f=n??ve[r],u=k.toCssColor(o),p=t===void 0,v=l??(i&&!p?`${Math.round(t)}%`:null);return e.jsxs(a,{sx:{display:"inline-flex",flexDirection:"column",alignItems:"center",gap:.5,...typeof d=="object"&&!Array.isArray(d)?d:{}},children:[e.jsxs(a,{sx:{position:"relative",display:"inline-flex"},children:[e.jsx(j,{variant:"determinate",value:100,size:x,thickness:f,sx:{color:c??"var(--ov-bg-surface-inset)",position:"absolute"}}),e.jsx(j,{variant:p?"indeterminate":"determinate",value:p?void 0:t,size:x,thickness:f,sx:{color:u,...p&&{animationDuration:"1.2s"}}}),v&&e.jsx(a,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(S,{sx:{fontSize:be[r],fontWeight:600,color:"var(--ov-fg-default)",lineHeight:1,fontFeatureSettings:'"tnum"'},children:v})})]}),s&&e.jsx(S,{sx:{fontSize:r==="xs"?"0.5rem":"var(--ov-text-xs)",color:"var(--ov-fg-muted)",textAlign:"center",lineHeight:1.3},children:s})]})}F.displayName="ProgressRing";exports.StatusDot=O.StatusDot;exports.StatusPill=G.StatusPill;exports.EmptyState=R.EmptyState;exports.ErrorState=R.ErrorState;exports.Skeleton=J.Skeleton;exports.Alert=B;exports.ConnectionIndicator=L;exports.IDEStatusFooter=g;exports.NotificationStackProvider=W;exports.ProgressBar=T;exports.ProgressRing=F;exports.RunButton=E;exports.StatusBar=q;exports.StatusBarItem=N;exports.useNotificationStack=re;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),V=require("@mui/material/Alert"),A=require("@mui/material/IconButton"),X=require("@mui/icons-material/Close"),I=require("@mui/material/styles"),O=require("./StatusDot-CYyJxjJK.cjs"),G=require("./StatusPill-C7yn7dSA.cjs"),R=require("./ErrorState-Cwwem5yh.cjs"),J=require("./Skeleton-CfdQWLQM.cjs"),h=require("react"),a=require("@mui/material/Box"),m=require("@mui/material/Tooltip"),k=require("./types.cjs"),M=require("@mui/material/LinearProgress"),S=require("@mui/material/Typography"),P=require("@mui/material/Button"),j=require("@mui/material/CircularProgress"),b=require("react-icons/lu"),K={solid:"filled",soft:"standard",outline:"outlined"},Q={xs:{padding:"0px 6px",fontSize:"var(--ov-text-xs)",iconSize:16,borderRadius:6,closeSize:"small"},sm:{padding:"2px 8px",fontSize:"var(--ov-text-sm)",iconSize:18,borderRadius:8,closeSize:"small"},md:{padding:"6px 12px",fontSize:"var(--ov-text-sm)",iconSize:20,borderRadius:10,closeSize:"small"},lg:{padding:"8px 16px",fontSize:"var(--ov-text-md)",iconSize:22,borderRadius:10,closeSize:"medium"},xl:{padding:"12px 16px",fontSize:"var(--ov-text-md)",iconSize:24,borderRadius:12,closeSize:"medium"}},U={success:{light:{bg:"hsl(120, 80%, 98%)",fg:"hsl(120, 87%, 6%)",border:"hsl(120, 61%, 77%)",icon:"hsl(120, 44%, 53%)"},dark:{bg:"hsl(120, 84%, 10%)",fg:"hsl(120, 75%, 94%)",border:"hsl(120, 75%, 16%)",icon:"hsl(120, 44%, 53%)"}},warning:{light:{bg:"hsl(45, 100%, 97%)",fg:"hsl(45, 93%, 12%)",border:"hsl(45, 90%, 65%)",icon:"hsl(45, 90%, 40%)"},dark:{bg:"hsl(45, 95%, 16%)",fg:"hsl(45, 92%, 90%)",border:"hsl(45, 94%, 20%)",icon:"hsl(45, 90%, 40%)"}},error:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},danger:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},info:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 65%)",icon:"hsl(210, 98%, 42%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},primary:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 80%)",icon:"hsl(210, 98%, 48%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},secondary:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},accent:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},neutral:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}},muted:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}}};function w(t,r){return r==="outline"?{bg:"transparent",fg:t.fg,border:`1px solid ${I.alpha(t.border,.7)}`,icon:t.icon}:r==="solid"?{bg:t.icon,fg:"#fff",border:"none",icon:"#fff"}:{bg:t.bg,fg:t.fg,border:`1px solid ${I.alpha(t.border,.5)}`,icon:t.icon}}function B({children:t,color:r="info",emphasis:o="soft",dismissible:n=!1,onDismiss:i,actions:l,icon:s,startAdornment:c,size:d="md",sx:x}){const f=K[o]||"standard",u=Q[d],v={success:"success",info:"info",warning:"warning",error:"error",danger:"error",primary:"info",secondary:"info",accent:"info",neutral:"info",muted:"info"}[r]??"info";return e.jsx(V,{severity:v,variant:f,icon:s===!1?!1:s??c,action:e.jsxs(e.Fragment,{children:[l,n&&e.jsx(A,{size:u.closeSize,color:"inherit",onClick:i,"aria-label":"Dismiss",children:e.jsx(X,{fontSize:"small"})})]}),sx:H=>{const C=U[r],z=w(C.light,o),y=w(C.dark,o),$=o==="soft"?I.alpha(y.bg,.3):y.bg;return{padding:u.padding,fontSize:u.fontSize,borderRadius:`${u.borderRadius}px`,alignItems:"center",backgroundColor:z.bg,color:z.fg,border:z.border,"& .MuiAlert-icon":{fontSize:u.iconSize,mr:d==="xs"?.5:1,py:0,color:z.icon},"& .MuiAlert-message":{py:0,overflow:"hidden"},"& .MuiAlert-action":{py:0,alignItems:"center"},...H.applyStyles("dark",{backgroundColor:$,color:y.fg,border:y.border,"& .MuiAlert-icon":{color:y.icon}}),...typeof x=="object"&&x!==null?x:{}}},children:t})}B.displayName="Alert";function q({children:t,height:r=24,sx:o}){const n=h.Children.toArray(t),i=n.filter(s=>h.isValidElement(s)?s.props.align!=="right":!0),l=n.filter(s=>h.isValidElement(s)?s.props.align==="right":!1);return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:r,px:1,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontSize:"var(--ov-text-xs)",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:i}),e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:l})]})}q.displayName="StatusBar";function N({children:t,icon:r,onClick:o,tooltip:n,color:i,separator:l=!1,sx:s}){const c=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:.5,px:.75,height:20,fontSize:"var(--ov-text-xs)",color:i?k.toCssColor(i):"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"3px",whiteSpace:"nowrap",...l&&{borderRight:"1px solid var(--ov-border-muted)",pr:1,mr:.25},...o&&{"&:hover":{bgcolor:"var(--ov-state-hover)"}},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[r&&e.jsx(a,{component:"span",sx:{display:"inline-flex",fontSize:"0.75rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:c}):c}N.displayName="StatusBarItem";const Y={xs:2,sm:4,md:6,lg:8,xl:10};function T({value:t,indeterminate:r=!1,color:o="primary",size:n="sm",label:i,showValue:l=!1,sx:s}){const c=k.toCssColor(o),d=Y[n];return e.jsxs(a,{sx:{display:"flex",flexDirection:"column",gap:.5,...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[(i||l)&&e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[i&&e.jsx(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:i}),l&&!r&&t!==void 0&&e.jsxs(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]}),e.jsx(M,{variant:r?"indeterminate":"determinate",value:r?void 0:t,sx:{height:d,borderRadius:d/2,bgcolor:"var(--ov-bg-surface-inset)","& .MuiLinearProgress-bar":{bgcolor:c,borderRadius:d/2}}})]})}T.displayName="ProgressBar";const Z={connected:"var(--ov-success-default)",connecting:"var(--ov-warning-default)",disconnected:"var(--ov-fg-faint)",error:"var(--ov-danger-default)"},_={connected:"Connected",connecting:"Connecting",disconnected:"Disconnected",error:"Error"},ee={xs:6,sm:8,md:10,lg:12,xl:14};function L({status:t,label:r,size:o="sm",showLabel:n=!0,sx:i}){const l=Z[t],s=ee[o],c=r??_[t];return e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:.75,...typeof i=="object"&&!Array.isArray(i)?i:{}},children:[e.jsx(a,{sx:{width:s,height:s,borderRadius:"50%",bgcolor:l,flexShrink:0,...t==="connecting"&&{animation:"ov-conn-pulse 1.5s ease-in-out infinite","@keyframes ov-conn-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}}),n&&e.jsx(S,{sx:{fontSize:o==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",color:"var(--ov-fg-default)",lineHeight:1},children:c})]})}L.displayName="ConnectionIndicator";const te={xs:12,sm:14,md:16,lg:18,xl:20};function E({running:t,onStart:r,onStop:o,loading:n=!1,size:i="sm",label:l,sx:s}){const c=k.toMuiSize(i),d=te[i],x=()=>{t?o():r()},f=n?e.jsx(j,{size:d,color:"inherit"}):t?e.jsx(b.LuSquare,{size:d}):e.jsx(b.LuPlay,{size:d});return e.jsx(P,{size:c,variant:"contained",onClick:x,disabled:n,startIcon:f,sx:{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",color:"#fff",textTransform:"none","&:hover":{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",filter:"brightness(0.9)"},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:l??(t?"Stop":"Run")})}E.displayName="RunButton";const D=h.createContext(null);function re(){const t=h.useContext(D);if(!t)throw new Error("useNotificationStack must be used within a NotificationStackProvider");return t}const oe={info:e.jsx(b.LuInfo,{size:16}),success:e.jsx(b.LuCircleCheck,{size:16}),warning:e.jsx(b.LuTriangleAlert,{size:16}),error:e.jsx(b.LuCircleAlert,{size:16})},ne={info:"var(--ov-info-default)",success:"var(--ov-success-default)",warning:"var(--ov-warning-default)",error:"var(--ov-danger-default)"};function ie({notification:t,onDismiss:r}){const{id:o,severity:n,title:i,message:l,actions:s,timeout:c}=t,d=h.useRef(void 0);h.useEffect(()=>{const f=c??8e3;return f>0&&(d.current=setTimeout(()=>r(o),f)),()=>{d.current&&clearTimeout(d.current)}},[o,c,r]);const x=ne[n];return e.jsxs(a,{sx:{display:"flex",gap:1,minWidth:320,maxWidth:420,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderLeft:`3px solid ${x}`,borderRadius:"6px",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",p:1.5,animation:"ov-notif-slide-in 0.2s ease-out","@keyframes ov-notif-slide-in":{from:{opacity:0,transform:"translateX(40px)"},to:{opacity:1,transform:"translateX(0)"}}},children:[e.jsx(a,{sx:{color:x,pt:"2px",flexShrink:0},children:oe[n]}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsx(S,{sx:{fontSize:"0.8125rem",fontWeight:600,color:"var(--ov-fg-base)",lineHeight:1.4},children:i}),l&&e.jsx(S,{sx:{fontSize:"0.75rem",color:"var(--ov-fg-muted)",lineHeight:1.4,mt:.25},children:l}),s&&s.length>0&&e.jsx(a,{sx:{display:"flex",gap:.5,mt:1},children:s.map(f=>e.jsx(P,{size:"small",variant:"text",onClick:()=>{f.onClick(),r(o)},sx:{textTransform:"none",fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-accent-fg)",minWidth:"auto",px:1,py:.25},children:f.label},f.label))})]}),e.jsx(A,{size:"small",onClick:()=>r(o),sx:{alignSelf:"flex-start",p:"2px",color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:e.jsx(b.LuX,{size:14})})]})}let se=0;function W({children:t,maxVisible:r=5,position:o="bottom-right",sx:n}){const[i,l]=h.useState([]),s=h.useCallback(u=>{const p=`notif-${++se}`;return l(v=>[...v,{...u,id:p}]),p},[]),c=h.useCallback(u=>{l(p=>p.filter(v=>v.id!==u))},[]),d=h.useCallback(()=>{l([])},[]),x={"bottom-right":{bottom:32,right:12},"bottom-left":{bottom:32,left:12},"top-right":{top:12,right:12},"top-left":{top:12,left:12}},f=i.slice(-r);return e.jsxs(D.Provider,{value:{push:s,dismiss:c,dismissAll:d},children:[t,f.length>0&&e.jsx(a,{sx:{position:"fixed",zIndex:9998,display:"flex",flexDirection:o.startsWith("bottom")?"column-reverse":"column",gap:.75,...x[o],...typeof n=="object"&&!Array.isArray(n)?n:{}},children:f.map(u=>e.jsx(ie,{notification:u,onDismiss:c},u.id))})]})}W.displayName="NotificationStackProvider";function ae({label:t,bgColor:r,color:o,icon:n,onClick:i,tooltip:l}){const s=e.jsxs(a,{onClick:i,sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",height:"100%",fontSize:"0.625rem",fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",bgcolor:r??"transparent",color:o??"#fff",cursor:i?"pointer":"default",whiteSpace:"nowrap","&:hover":i?{filter:"brightness(1.15)"}:{}},children:[n&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:n}),t]});return l?e.jsx(m,{title:l,children:s}):s}function le({color:t,pulse:r,tooltip:o,onClick:n}){const i=e.jsx(a,{onClick:n,sx:{width:8,height:8,borderRadius:"50%",bgcolor:t,flexShrink:0,cursor:n?"pointer":"default","&:hover":n?{filter:"brightness(1.3)"}:{},...r&&{animation:"ov-footer-pulse 1.5s ease-in-out infinite","@keyframes ov-footer-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}});return o?e.jsx(m,{title:o,children:i}):i}function ce({children:t,icon:r,onClick:o,tooltip:n}){const i=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"2px",whiteSpace:"nowrap","&:hover":o?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.6875rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function de({label:t,tooltip:r}){const o=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)"},children:[e.jsx(j,{size:10,thickness:5,sx:{color:"var(--ov-fg-muted)"}}),t&&e.jsx("span",{children:t})]});return r?e.jsx(m,{title:r,children:o}):o}function fe({value:t,width:r=80,color:o="var(--ov-accent)",label:n,showValue:i=!1,tooltip:l}){const s=t===void 0,c=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.625rem",color:"var(--ov-fg-default)"},children:[n&&e.jsx(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:n}),e.jsx(M,{variant:s?"indeterminate":"determinate",value:s?void 0:t,sx:{width:r,height:3,borderRadius:1.5,bgcolor:"rgba(255,255,255,0.1)","& .MuiLinearProgress-bar":{bgcolor:o,borderRadius:1.5}}}),i&&!s&&t!==void 0&&e.jsxs(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]});return l?e.jsx(m,{title:l,children:c}):c}function ue({color:t}){return e.jsx(a,{sx:{width:"1px",height:"60%",bgcolor:t??"var(--ov-border-default)",flexShrink:0,mx:"2px"}})}function xe({icon:t,label:r,onClick:o,tooltip:n,color:i}){const l=e.jsxs(a,{component:"button",onClick:o,sx:{all:"unset",display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:500,color:i??"var(--ov-fg-default)",cursor:"pointer",borderRadius:"2px",whiteSpace:"nowrap","&:hover":{bgcolor:"rgba(255,255,255,0.1)"},"&:active":{bgcolor:"rgba(255,255,255,0.15)"}},children:[t&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:t}),r]});return n?e.jsx(m,{title:n,children:l}):l}function ge({count:t,icon:r,maxCount:o=99,onClick:n,tooltip:i,color:l}){const s=t>o?`${o}+`:String(t),c=e.jsxs(a,{onClick:n,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:600,color:"var(--ov-fg-default)",cursor:n?"pointer":"default","&:hover":n?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t>0&&e.jsx(a,{component:"span",sx:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,borderRadius:"7px",bgcolor:l??"var(--ov-accent)",color:"#fff",fontSize:"0.5625rem",fontWeight:700,lineHeight:1,px:"3px"},children:s})]});return i?e.jsx(m,{title:i,children:c}):c}function he({time:t,icon:r,running:o,tooltip:n}){const i=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.625rem",fontFamily:"var(--ov-font-mono)",fontFeatureSettings:'"tnum"',color:"var(--ov-fg-muted)",whiteSpace:"nowrap",...o&&{animation:"ov-footer-timer-blink 2s step-end infinite","@keyframes ov-footer-timer-blink":{"0%, 100%":{opacity:1},"50%":{opacity:.6}}}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function pe({value:t,size:r=12,color:o,tooltip:n}){const i=t===void 0,l=e.jsx(a,{sx:{display:"inline-flex",alignItems:"center",px:"4px"},children:e.jsx(j,{variant:i?"indeterminate":"determinate",value:i?void 0:t,size:r,thickness:5,sx:{color:o??"var(--ov-accent)",...i&&{animationDuration:"1s"}}})});return n?e.jsx(m,{title:n,children:l}):l}function g({left:t,right:r,height:o=22,sx:n}){return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:o,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontFamily:"var(--ov-font-ui)",overflow:"hidden",flexShrink:0,...typeof n=="object"&&!Array.isArray(n)?n:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:t}),e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:r})]})}g.displayName="IDEStatusFooter";g.Chip=ae;g.Dot=le;g.Text=ce;g.Spinner=de;g.Progress=fe;g.Circular=pe;g.Separator=ue;g.Button=xe;g.Badge=ge;g.Timer=he;const me={xs:20,sm:32,md:48,lg:64,xl:80},ve={xs:5,sm:4.5,md:4,lg:3.5,xl:3},be={xs:"0.5rem",sm:"0.625rem",md:"0.8125rem",lg:"1rem",xl:"1.25rem"};function F({value:t,size:r="md",color:o="primary",thickness:n,showValue:i=!1,label:l,caption:s,trackColor:c,sx:d}){const x=me[r],f=n??ve[r],u=k.toCssColor(o),p=t===void 0,v=l??(i&&!p?`${Math.round(t)}%`:null);return e.jsxs(a,{sx:{display:"inline-flex",flexDirection:"column",alignItems:"center",gap:.5,...typeof d=="object"&&!Array.isArray(d)?d:{}},children:[e.jsxs(a,{sx:{position:"relative",display:"inline-flex"},children:[e.jsx(j,{variant:"determinate",value:100,size:x,thickness:f,sx:{color:c??"var(--ov-bg-surface-inset)",position:"absolute"}}),e.jsx(j,{variant:p?"indeterminate":"determinate",value:p?void 0:t,size:x,thickness:f,sx:{color:u,...p&&{animationDuration:"1.2s"}}}),v&&e.jsx(a,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(S,{sx:{fontSize:be[r],fontWeight:600,color:"var(--ov-fg-default)",lineHeight:1,fontFeatureSettings:'"tnum"'},children:v})})]}),s&&e.jsx(S,{sx:{fontSize:r==="xs"?"0.5rem":"var(--ov-text-xs)",color:"var(--ov-fg-muted)",textAlign:"center",lineHeight:1.3},children:s})]})}F.displayName="ProgressRing";exports.StatusDot=O.StatusDot;exports.StatusPill=G.StatusPill;exports.EmptyState=R.EmptyState;exports.ErrorState=R.ErrorState;exports.Skeleton=J.Skeleton;exports.Alert=B;exports.ConnectionIndicator=L;exports.IDEStatusFooter=g;exports.NotificationStackProvider=W;exports.ProgressBar=T;exports.ProgressRing=F;exports.RunButton=E;exports.StatusBar=q;exports.StatusBarItem=N;exports.useNotificationStack=re;
package/dist/feedback.js CHANGED
@@ -5,7 +5,7 @@ import E from "@mui/icons-material/Close";
5
5
  import { alpha as w } from "@mui/material/styles";
6
6
  import { S as Je } from "./StatusDot-CncykBAY.js";
7
7
  import { S as Oe } from "./StatusPill-C1NaiCzd.js";
8
- import { E as Ue, a as Ye } from "./ErrorState-CexYrMpy.js";
8
+ import { E as Ue, a as Ye } from "./ErrorState-DNOrahZX.js";
9
9
  import { S as er } from "./Skeleton-BUYyXUiC.js";
10
10
  import k, { useState as D, useCallback as I, createContext as F, useRef as H, useEffect as $, useContext as V } from "react";
11
11
  import a from "@mui/material/Box";
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),f=require("@mui/material/Stack"),j=require("@mui/material/Card"),b=require("@mui/material/Chip"),M=require("@mui/material/Avatar"),I=require("@mui/material/Divider"),u=require("@mui/material/Typography"),d=require("@mui/material/Box"),y=require("./Icon-CKdIOrjZ.cjs"),h=require("react"),C=require("@mui/material/Grid"),D=require("@mui/material/Accordion"),W=require("@mui/material/AccordionDetails"),R=require("@mui/material/AccordionSummary"),Ie=require("@mui/icons-material/ExpandMore"),g=require("react-icons/lu"),w=require("./types.cjs"),ze=require("./Text-Mk6Uyg1w.cjs"),P=require("@mui/material/LinearProgress"),A=require("@mui/material/CircularProgress"),Le=require("@mui/material/List"),O=require("@mui/material/ListSubheader"),z=require("@mui/material/ListItem"),B=require("@mui/material/ListItemButton"),L=require("@mui/material/ListItemIcon"),N=require("@mui/material/ListItemText"),Me=require("./CopyButton-CACe3RCF.cjs"),Ee=require("@mui/material/Tooltip"),Ae=require("@mui/material/TextField"),$=require("./HotkeyHint-DrTOTrIM.cjs"),ke=require("@mui/material/Badge"),S=require("react-icons/si"),Be=require("@mui/icons-material/Search"),Ne=require("@mui/material/ButtonBase"),qe=require("./StatusDot-CYyJxjJK.cjs"),H=({title:r,titleDecorator:n,icon:t,children:o,variant:i,emphasis:s,noPadding:a=!1,onClick:l,sx:x})=>{const p=i??(s?{outline:"outlined",solid:"elevation",soft:"elevation",ghost:"outlined"}[s]??"outlined":"outlined");return r?e.jsxs(j,{variant:p,onClick:l,sx:{p:0,gap:0,...x},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[t&&(typeof t=="string"?t.startsWith("http")?e.jsx(M,{src:t,sx:{height:16,width:16,borderRadius:"4px"}}):e.jsx(y.Icon,{name:t,size:14}):t),e.jsx(u,{variant:"subtitle2",children:r})]}),n&&(typeof n=="string"||typeof n=="number"?e.jsx(b,{sx:{borderRadius:"4px"},size:"small",color:"primary",variant:"outlined",label:n}):n)]}),e.jsx(I,{}),e.jsx(d,{sx:{p:a?0:1.5},children:o})]}):e.jsx(j,{variant:p,onClick:l,sx:{p:a?0:1.5,gap:0,...x},children:o})};H.displayName="Card";const Fe=r=>{switch(r){case"sm":return 12;case"md":return 14;case"lg":return 16;default:return 14}},Te=r=>{switch(r){case"sm":return .5;case"md":return 1;case"lg":return 2;default:return 1}},De=r=>{switch(r){case"sm":return 12;case"md":return 14;case"lg":return 16;default:return 14}},G=({title:r,titleSize:n="md",icon:t,data:o,endAdornment:i,showUndefined:s=!1})=>e.jsxs(j,{variant:"outlined",sx:{p:0,gap:0,bgcolor:"var(--ov-bg-surface-raised)"},children:[r&&e.jsxs(d,{sx:{px:1.5,py:1,display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsxs(f,{direction:"row",spacing:Te(n),alignItems:"center",children:[t&&(typeof t=="string"?t.startsWith("http")?e.jsx(M,{src:t,sx:{height:16,width:16,borderRadius:"4px"}}):e.jsx(y.Icon,{name:t,size:De(n)}):t),e.jsx(u,{sx:{fontSize:Fe(n)},variant:"subtitle2",children:r})]}),i]}),e.jsx(d,{sx:{px:1.5,py:1},children:e.jsx(C,{container:!0,spacing:1,children:o.map(a=>{if(a.value||s)return e.jsxs(h.Fragment,{children:[e.jsx(C,{size:a.ratio?.[0]??5,children:e.jsxs(f,{direction:"row",spacing:1,alignItems:"center",children:[a.icon&&(typeof a.icon=="string"?a.icon.startsWith("http")?e.jsx(M,{src:a.icon,sx:{width:24,height:24}}):e.jsx(y.Icon,{name:a.icon,size:14}):a.icon),e.jsx(u,{variant:"caption",children:a.key})]})}),e.jsx(C,{size:a.ratio?.[1]??7,children:e.jsxs(f,{direction:"row",spacing:1,alignItems:"center",justifyContent:"space-between",children:[e.jsx(u,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-default)"},children:a.used?`${a.used} / ${a.value}`:a.value}),a.endAdornment]})})]},a.key)})})})]});G.displayName="DetailsCard";const K=({title:r,kvs:n,defaultExpanded:t})=>e.jsxs(D,{disabled:!Object.keys(n).length,defaultExpanded:t,disableGutters:!0,sx:{"&:before":{display:"none"}},children:[e.jsx(R,{expandIcon:e.jsx(Ie,{}),children:e.jsxs(f,{direction:"row",gap:1,alignItems:"center",children:[e.jsx(u,{variant:"subtitle2",children:r}),e.jsx(b,{size:"small",variant:"outlined",color:"primary",label:Object.keys(n).length,sx:{borderRadius:"4px"}})]})}),e.jsx(W,{children:e.jsx(C,{container:!0,spacing:.25,children:Object.entries(n).map(([o,i])=>e.jsxs(h.Fragment,{children:[e.jsx(C,{size:6,children:e.jsx(u,{variant:"caption",sx:{fontWeight:400},children:o})}),e.jsx(C,{size:6,children:e.jsx(u,{variant:"caption",sx:{fontWeight:600},children:i})})]},o))})})]});K.displayName="KVCard";function We(r){switch(r){case"outline":case"ghost":return"outlined";default:return"filled"}}function Re(r,n){if(r==="soft"){const t=w.toCssColor(n);return{bgcolor:`color-mix(in srgb, ${t} 18%, transparent)`,color:t,border:"1px solid",borderColor:`color-mix(in srgb, ${t} 30%, transparent)`,fontWeight:600,"& .MuiChip-label":{color:t},"& .MuiChip-icon":{color:t},"& .MuiChip-deleteIcon":{color:t,opacity:.7,"&:hover":{opacity:1}}}}if(r==="ghost")return{borderColor:"transparent",bgcolor:"transparent"}}function Pe(r){if(r==="xs")return{height:20,fontSize:"0.6875rem","& .MuiChip-label":{px:"6px"},"& .MuiChip-icon":{fontSize:"0.75rem",flexShrink:0}};if(r==="xl")return{height:40,fontSize:"1rem","& .MuiChip-label":{px:"16px"}}}const Oe={soft:"soft",outlined:"outline",solid:"solid",plain:"ghost",filled:"solid"};function k({label:r,children:n,color:t="neutral",emphasis:o,variant:i,size:s="sm",shape:a,textTransform:l,icon:x,startAdornment:c,endAdornment:p,deletable:m=!1,onDelete:v,onClick:he,disabled:ge=!1,sx:ve}){const E=o??(i?Oe[i]??"soft":"soft"),me=r??n,je=x??c,be=E==="soft"?"filled":We(E),ye=Re(E,t),Se=Pe(s),Ce=a?{borderRadius:w.toBorderRadius(a)}:void 0,we=l?{"& .MuiChip-label":{textTransform:l}}:void 0;return e.jsx(b,{label:me,color:w.toMuiColor(t),variant:be,size:w.toMuiSize(s),icon:je,onDelete:m||v?v??void 0:void 0,onClick:he,disabled:ge,sx:{...ye,...Se,...Ce,...we,...ve}})}k.displayName="Chip";const $e={sm:{minHeight:28,headerPy:"4px",headerPx:1,fontSize:12,iconSize:14,chevronSize:14},md:{minHeight:32,headerPy:"6px",headerPx:1.25,fontSize:13,iconSize:16,chevronSize:16},lg:{minHeight:38,headerPy:"10px",headerPx:1.5,fontSize:14,iconSize:18,chevronSize:18}};function V(r){switch(r){case"bordered":return{borderRadius:"6px",border:"1px solid var(--ov-border-default)"};case"plain":return{};case"flush":return{}}}function He(r,n){return n===0?!1:r!=="flush"}function _({section:r,size:n,monospace:t,expanded:o,onExpandedChange:i}){const s=$e[n],a=o!==void 0||r.expanded!==void 0,l=o??r.expanded,x=(m,v)=>{i?.(v),r.onExpandedChange?.(v)},c={disableGutters:!0,disabled:r.disabled,onChange:x,sx:{boxShadow:"none",background:"transparent !important","&:before":{display:"none"},"&.Mui-expanded":{margin:0}}};a?c.expanded=l:c.defaultExpanded=r.defaultExpanded;const p=()=>r.icon?typeof r.icon=="string"?e.jsx(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:e.jsx(y.Icon,{name:r.icon,size:s.iconSize})}):e.jsx(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:r.icon}):null;return e.jsxs(D,{...c,children:[e.jsxs(R,{expandIcon:null,sx:{minHeight:s.minHeight,py:s.headerPy,px:s.headerPx,"&:hover":{bgcolor:"var(--ov-state-hover)"},"&.Mui-expanded":{minHeight:s.minHeight},"& .MuiAccordionSummary-content":{margin:0,display:"flex",alignItems:"center",gap:0,"&.Mui-expanded":{margin:0}}},children:[e.jsx(Ge,{size:s.chevronSize}),p(),e.jsx(ze.Text,{size:n==="lg"?"md":n,weight:"semibold",inline:!0,sx:{color:"var(--ov-fg-base)",...t&&{fontFamily:"var(--ov-font-mono)",fontSize:s.fontSize},...!t&&{fontSize:s.fontSize},lineHeight:1},children:r.title}),r.count!==void 0&&e.jsx(d,{sx:{ml:.75},children:e.jsx(k,{size:"xs",color:"neutral",emphasis:"soft",label:r.count})}),e.jsx(d,{sx:{flex:1}}),r.endDecorator&&e.jsx(d,{sx:{display:"flex",alignItems:"center",ml:1},onClick:m=>m.stopPropagation(),children:r.endDecorator})]}),e.jsx(W,{sx:{p:0},children:r.children})]})}function Ge({size:r}){return e.jsxs(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:[e.jsx(d,{component:"span",sx:{display:"flex",".MuiAccordionSummary-root.Mui-expanded &":{display:"none"}},children:e.jsx(g.LuChevronRight,{size:r})}),e.jsx(d,{component:"span",sx:{display:"none",".MuiAccordionSummary-root.Mui-expanded &":{display:"flex"}},children:e.jsx(g.LuChevronDown,{size:r})})]})}function Ke(){return e.jsx(d,{sx:{height:"1px",bgcolor:"var(--ov-border-default)"}})}function U({sections:r,variant:n="bordered",size:t="md",monospace:o=!1,exclusive:i=!1,sx:s}){const[a,l]=h.useState(()=>{if(!i)return null;const c=r.findIndex(p=>p.defaultExpanded||p.expanded);return c>=0?c:null}),x=h.useCallback(c=>p=>{i&&l(p?c:null)},[i]);return r.length===0?e.jsx(e.Fragment,{}):e.jsx(d,{sx:{flexGrow:0,...V(n),...typeof s=="object"&&!Array.isArray(s)?s:{}},children:r.map((c,p)=>{const m=c.key??(typeof c.title=="string"?c.title:String(p)),v=i?{expanded:a===p,onExpandedChange:x(p)}:{};return e.jsxs(h.Fragment,{children:[He(n,p)&&e.jsx(Ke,{}),e.jsx(_,{section:c,size:t,monospace:o,...v})]},m)})})}U.displayName="ExpandableSections";function Y({variant:r="bordered",size:n="md",monospace:t=!1,...o}){return e.jsx(d,{sx:{...V(r)},children:e.jsx(_,{section:o,size:n,monospace:t})})}Y.displayName="ExpandableSection";const Ve={NONE:"",BYTES:"B",KB:"KB",MB:"MB",GB:"GB",PERCENTAGE:"%",MILLISECONDS:"ms",SECONDS:"s",COUNT:"",OPS_PER_SEC:"ops/s",BYTES_PER_SEC:"B/s",MILLICORES:"m",CORES:"cores"};function q(r,n){const t=Ve[n]??n;return n==="BYTES"||n==="bytes"?r>=1024*1024*1024?`${(r/(1024*1024*1024)).toFixed(1)} GB`:r>=1024*1024?`${(r/(1024*1024)).toFixed(1)} MB`:r>=1024?`${(r/1024).toFixed(1)} KB`:`${r} B`:n==="MILLICORES"||n==="millicores"?r>=1e3?`${(r/1e3).toFixed(2)} cores`:`${Math.round(r)}${t}`:Number.isInteger(r)?`${r}${t?` ${t}`:""}`:`${r.toFixed(2)}${t?` ${t}`:""}`}const _e=({metric:r})=>{const n=r.capacity!=null&&r.capacity>0,t=n?Math.min(r.value/r.capacity*100,100):null,o=()=>t==null?"primary":t>=90?"error":t>=70?"warning":"primary";return e.jsxs(d,{sx:{minWidth:0,flex:1},children:[e.jsxs(f,{direction:"row",spacing:.5,alignItems:"center",sx:{mb:.25},children:[r.icon&&e.jsx(y.Icon,{name:r.icon,style:{fontSize:14,opacity:.7}}),e.jsx(u,{variant:"caption",sx:{fontWeight:500,opacity:.8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.name})]}),e.jsx(u,{variant:"body2",sx:{fontWeight:600,fontVariantNumeric:"tabular-nums"},children:q(r.value,r.unit)}),n&&e.jsxs(d,{sx:{mt:.5},children:[e.jsx(P,{variant:"determinate",value:t,color:o(),sx:{height:4,borderRadius:2}}),e.jsxs(u,{variant:"caption",sx:{opacity:.6,fontSize:"0.65rem"},children:[t.toFixed(0),"% of ",q(r.capacity,r.unit)]})]})]})},Ue=({providers:r,isLoading:n=!1,error:t,sx:o})=>n&&r.length===0?e.jsx(d,{sx:{display:"flex",justifyContent:"center",py:2,...o},children:e.jsx(A,{size:20})}):t?e.jsx(d,{sx:{px:1,py:.5,...o},children:e.jsx(u,{variant:"caption",color:"error",children:t})}):r.length===0?null:e.jsx(f,{spacing:1.5,sx:o,children:r.map(i=>e.jsxs(d,{children:[r.length>1&&e.jsxs(f,{direction:"row",spacing:.5,alignItems:"center",sx:{mb:.75},children:[i.providerIcon&&e.jsx(y.Icon,{name:i.providerIcon,style:{fontSize:14}}),e.jsx(b,{label:i.providerName,size:"small",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}})]}),e.jsx(f,{direction:"row",spacing:1.5,sx:{flexWrap:"wrap","& > *":{minWidth:100}},children:i.metrics.map(s=>e.jsx(_e,{metric:s},s.metricID))})]},i.providerID))}),Ye={xs:!0,sm:!0,md:!1,lg:!1,xl:!1};function J({children:r,size:n="md",subheader:t,dense:o,disablePadding:i=!1,sx:s}){return e.jsx(Le,{dense:o??Ye[n],disablePadding:i,subheader:t?e.jsx(O,{children:t}):void 0,sx:s,children:r})}J.displayName="List";function Q({sx:r}){return e.jsx(I,{component:"li",sx:r})}Q.displayName="ListDivider";function X({children:r,primary:n,secondary:t,icon:o,action:i,selected:s=!1,disabled:a=!1,onClick:l,sx:x}){return r&&!n?l?e.jsx(z,{disablePadding:!0,secondaryAction:i,sx:x,children:e.jsxs(B,{selected:s,disabled:a,onClick:l,children:[o&&e.jsx(L,{children:o}),r]})}):e.jsxs(z,{secondaryAction:i,sx:x,children:[o&&e.jsx(L,{children:o}),r]}):l?e.jsx(z,{disablePadding:!0,secondaryAction:i,sx:x,children:e.jsxs(B,{selected:s,disabled:a,onClick:l,children:[o&&e.jsx(L,{children:o}),e.jsx(N,{primary:n,secondary:t}),r]})}):e.jsxs(z,{secondaryAction:i,sx:x,children:[o&&e.jsx(L,{children:o}),e.jsx(N,{primary:n,secondary:t}),r]})}X.displayName="ListItem";function Z({ratio:r="1/1",children:n,sx:t}){return e.jsx(d,{sx:{position:"relative",width:"100%",aspectRatio:typeof r=="number"?String(r):r,overflow:"hidden","& > *":{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover"},...t},children:n})}Z.displayName="AspectRatio";function ee({value:r,truncate:n=!0,maxWidth:t,sx:o,variant:i="mono"}){const[s,a]=h.useState(!1);return e.jsxs(d,{onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),sx:{display:"inline-flex",alignItems:"center",gap:.5,maxWidth:t,minWidth:0,...o},children:[i==="mono"?e.jsx(u,{variant:"body2",sx:{fontSize:"0.8125rem",color:"var(--ov-fg-default)",fontFamily:"var(--ov-font-mono)",...n&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:r}):e.jsx("span",{style:{...n?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),e.jsx("span",{onClick:l=>l.stopPropagation(),style:{display:"inline-flex",alignItems:"center",visibility:s?"visible":"hidden",flexShrink:0},children:e.jsx(Me.CopyButton,{value:r,size:"xs"})})]})}ee.displayName="ClipboardText";function re({children:r,maxWidth:n,copyOnClick:t=!1,sx:o}){const i=h.useRef(null),[s,a]=h.useState(!1);h.useEffect(()=>{const c=i.current;c&&a(c.scrollWidth>c.clientWidth)},[r]);const l=()=>{t&&navigator.clipboard.writeText(r).catch(()=>{})},x=e.jsx(d,{ref:i,onClick:l,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:n,fontSize:"0.8125rem",color:"var(--ov-fg-default)",cursor:t?"pointer":void 0,...o},children:r});return s?e.jsx(Ee,{title:r,arrow:!0,children:x}):x}re.displayName="OverflowText";const F={xs:"0.6875rem",sm:"0.8125rem",md:"0.875rem",lg:"1rem",xl:"1.125rem"};function te({value:r,onSave:n,placeholder:t="Click to edit",size:o="sm",sx:i}){const[s,a]=h.useState(!1),[l,x]=h.useState(r),c=h.useRef(null);h.useEffect(()=>{s&&c.current&&(c.current.focus(),c.current.select())},[s]);const p=()=>{a(!1),l!==r&&n(l)},m=()=>{a(!1),x(r)};return s?e.jsx(d,{sx:i,children:e.jsx(Ae,{inputRef:c,value:l,onChange:v=>x(v.target.value),onBlur:p,onKeyDown:v=>{v.key==="Enter"&&p(),v.key==="Escape"&&m()},variant:"outlined",size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:F[o],py:.25,px:.5}}}})}):e.jsx(d,{onClick:()=>{x(r),a(!0)},sx:{cursor:"pointer",borderRadius:"4px",px:.5,py:.25,"&:hover":{bgcolor:"var(--ov-state-hover)"},...i},children:e.jsx(u,{variant:"body2",sx:{fontSize:F[o],color:r?"var(--ov-fg-default)":"var(--ov-fg-faint)"},children:r||t})})}te.displayName="InlineEdit";function ne({count:r,dot:n=!1,color:t="primary",max:o=99,invisible:i,anchorOrigin:s,children:a,sx:l}){return e.jsx(ke,{badgeContent:n?void 0:r,variant:n?"dot":"standard",color:w.toMuiColor(t),max:o,invisible:i,anchorOrigin:s,sx:l,children:a})}ne.displayName="Badge";const Je={xs:24,sm:32,md:40,lg:48,xl:64},Qe={xs:"0.625rem",sm:"0.75rem",md:"0.875rem",lg:"1rem",xl:"1.25rem"},T=["#e57373","#f06292","#ba68c8","#9575cd","#7986cb","#64b5f6","#4fc3f7","#4dd0e1","#4db6ac","#81c784","#aed581","#dce775","#fff176","#ffd54f","#ffb74d","#ff8a65"];function Xe(r){let n=0;for(let t=0;t<r.length;t++)n=r.charCodeAt(t)+((n<<5)-n),n|=0;return Math.abs(n)}function Ze(r){const n=r.trim().split(/\s+/);return n.length>=2?(n[0][0]+n[1][0]).toUpperCase():r.slice(0,2).toUpperCase()}function er(r){return T[Xe(r)%T.length]}const rr={xs:4,sm:6,md:8,lg:10,xl:12};function ie({src:r,name:n,size:t="md",variant:o="rounded",children:i,sx:s}){const a=Je[t],l=n?er(n):void 0,x=n?Ze(n):void 0,c=i??(r?void 0:x);return e.jsx(M,{src:r,alt:n,variant:o==="circular"?"circular":"rounded",sx:{width:a,height:a,fontSize:Qe[t],fontWeight:600,bgcolor:r?void 0:l,...o==="rounded"?{borderRadius:`${rr[t]}px`}:{},...s},children:c})}ie.displayName="Avatar";const tr={xs:12,sm:14,md:16,lg:20,xl:24};function nr(r,n){if(n.toLowerCase().startsWith("dockerfile"))return{icon:S.SiDocker,color:"var(--ov-info-default)"};switch(r){case".go":return{icon:S.SiGo,color:"#00ADD8"};case".ts":case".tsx":return{icon:S.SiTypescript,color:"#3178C6"};case".js":case".jsx":case".mjs":case".cjs":return{icon:S.SiJavascript,color:"#F7DF1E"};case".py":return{icon:S.SiPython,color:"#3776AB"};case".rs":return{icon:S.SiRust,color:"#DEA584"};case".yaml":case".yml":return{icon:g.LuFileCode,color:"var(--ov-info-default)"};case".json":return{icon:g.LuBraces,color:"#F5C518"};case".md":case".mdx":case".txt":case".log":return{icon:g.LuFileText,color:"var(--ov-fg-muted)"};case".html":case".htm":case".xml":case".svg":return{icon:g.LuFileCode,color:"#E44D26"};case".css":case".scss":case".less":return{icon:g.LuFileCode,color:"#264DE4"};case".png":case".jpg":case".jpeg":case".gif":case".webp":case".ico":return{icon:g.LuFileImage,color:"var(--ov-success-default)"};case".toml":case".ini":case".env":case".cfg":return{icon:g.LuFileCode,color:"var(--ov-fg-muted)"};case".sh":case".bash":case".zsh":return{icon:g.LuFileCode,color:"var(--ov-success-default)"};case".proto":return{icon:g.LuFileCode,color:"var(--ov-warning-default)"};case".sql":return{icon:g.LuFileCode,color:"#336791"};case".jsonc":return{icon:g.LuBraces,color:"#F5C518"};default:return{icon:g.LuFile,color:"var(--ov-fg-muted)"}}}function oe({filename:r,size:n="sm",sx:t}){const o=tr[n],i=r.lastIndexOf("."),s=i>=0?r.slice(i).toLowerCase():"",a=r.split("/").pop()??r,{icon:l,color:x}=nr(s,a);return e.jsx(d,{component:"span",sx:{display:"inline-flex",color:x,flexShrink:0,...typeof t=="object"&&!Array.isArray(t)?t:{}},children:e.jsx(l,{size:o})})}oe.displayName="FileIcon";function se({items:r,maxVisible:n=3,renderItem:t,sx:o}){const[i,s]=h.useState(!1),a=i?r:r.slice(0,n),l=r.length-n;return e.jsxs(d,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[a.map((x,c)=>t?t(x,c):e.jsx(d,{component:"span",children:x},c)),!i&&l>0&&e.jsx(b,{label:`+${l} more`,size:"small",onClick:()=>s(!0),sx:{fontSize:"var(--ov-text-xs)",height:20,cursor:"pointer",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)","&:hover":{bgcolor:"var(--ov-state-hover)"}}}),i&&l>0&&e.jsx(b,{label:"Show less",size:"small",onClick:()=>s(!1),sx:{fontSize:"var(--ov-text-xs)",height:20,cursor:"pointer",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)","&:hover":{bgcolor:"var(--ov-state-hover)"}}})]})}se.displayName="TruncatedList";function ae({query:r,suggestions:n,onSuggestionClick:t,sx:o}){return e.jsxs(d,{sx:{display:"flex",flexDirection:"column",alignItems:"center",py:4,gap:1.5,...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[e.jsx(Be,{sx:{fontSize:32,color:"var(--ov-fg-faint)"}}),e.jsxs(u,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-muted)"},children:["No results for “",r,"”"]}),n&&n.length>0&&e.jsxs(d,{sx:{display:"flex",gap:.75,flexWrap:"wrap",justifyContent:"center",mt:.5},children:[e.jsx(u,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",width:"100%",textAlign:"center"},children:"Try:"}),n.map(i=>e.jsx(b,{label:i,size:"small",onClick:t?()=>t(i):void 0,sx:{fontSize:"var(--ov-text-xs)",cursor:t?"pointer":"default",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)"}},i))]})]})}ae.displayName="EmptySearch";function le({active:r,children:n,label:t,blur:o=!1,sx:i}){return e.jsxs(d,{sx:{position:"relative",...typeof i=="object"&&!Array.isArray(i)?i:{}},children:[n,r&&e.jsxs(d,{sx:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:1.5,bgcolor:"rgba(0, 0, 0, 0.3)",zIndex:10,borderRadius:"inherit",...o&&{backdropFilter:"blur(3px)"}},children:[e.jsx(A,{size:28,sx:{color:"var(--ov-accent-fg)"}}),t&&e.jsx(u,{sx:{fontSize:"var(--ov-text-sm)",color:"#fff",fontWeight:500},children:t})]})]})}le.displayName="LoadingOverlay";function ce({shortcut:r}){const n=r.split("+").map(t=>t.trim());return e.jsx($.HotkeyHint,{keys:n})}ce.displayName="Kbd";function de({value:r,label:n,description:t,icon:o,trend:i,color:s="primary",sx:a}){const l=i?i.value>0?"up":i.value<0?"down":"flat":void 0,x=l==="up"?"var(--ov-success-default)":l==="down"?"var(--ov-danger-default)":"var(--ov-fg-muted)",c=l==="up"?"↑":l==="down"?"↓":"→";return e.jsxs(j,{variant:"outlined",sx:{p:2,display:"flex",flexDirection:"column",gap:.5,...a},children:[e.jsxs(f,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",children:[e.jsxs(d,{children:[e.jsx(u,{sx:{fontSize:"var(--ov-text-2xl)",fontWeight:700,lineHeight:1.2,color:`var(${w.toCssColor(s)})`},children:r}),e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontWeight:500,mt:.25},children:n})]}),o&&e.jsx(d,{sx:{color:"var(--ov-fg-faint)",fontSize:24,display:"flex"},children:o})]}),(i||t)&&e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,sx:{mt:.5},children:[i&&e.jsxs(u,{variant:"caption",sx:{color:x,fontWeight:600},children:[c," ",Math.abs(i.value),"%",i.label?` ${i.label}`:""]}),t&&e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-faint)"},children:t})]})]})}de.displayName="StatCard";function xe({media:r,mediaHeight:n=140,title:t,description:o,meta:i,actions:s,onClick:a,sx:l}){return e.jsxs(j,{variant:"outlined",onClick:a,sx:{p:0,cursor:a?"pointer":void 0,transition:"border-color 0.15s, box-shadow 0.15s","&:hover":a?{borderColor:"var(--ov-border-focus)",boxShadow:"0 2px 8px rgba(0,0,0,0.08)"}:void 0,...l},children:[typeof r=="string"?e.jsx(d,{sx:{height:n,width:"100%",backgroundImage:`url(${r})`,backgroundSize:"cover",backgroundPosition:"center",borderBottom:"1px solid var(--ov-border-default)"}}):e.jsx(d,{sx:{height:n,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)",color:"var(--ov-fg-faint)",fontSize:40},children:r}),e.jsxs(d,{sx:{px:1.5,py:1.25},children:[e.jsx(u,{variant:"subtitle2",sx:{mb:.25},children:t}),o&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:o}),i&&e.jsx(u,{variant:"caption",component:"div",sx:{color:"var(--ov-fg-faint)",mt:.5},children:i})]}),s&&e.jsx(f,{direction:"row",spacing:1,sx:{px:1.5,py:1,borderTop:"1px solid var(--ov-border-default)"},children:s})]})}xe.displayName="MediaCard";function ue({icon:r,title:n,description:t,primaryAction:o,secondaryAction:i,direction:s="vertical",sx:a}){const l=s==="horizontal";return e.jsxs(j,{variant:"outlined",sx:{p:2,display:"flex",flexDirection:l?"row":"column",alignItems:l?"center":"flex-start",gap:l?2:1,...a},children:[r&&e.jsx(d,{sx:{fontSize:32,color:"var(--ov-fg-muted)",display:"flex",flexShrink:0},children:r}),e.jsxs(d,{sx:{flex:1,minWidth:0},children:[e.jsx(u,{variant:"subtitle2",sx:{mb:.25},children:n}),t&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)"},children:t})]}),(o||i)&&e.jsxs(f,{direction:"row",spacing:1,sx:{mt:l?0:1,flexShrink:0},children:[o,i]})]})}ue.displayName="ActionCard";function fe({title:r,icon:n,headerAction:t,items:o,maxVisible:i=5,emptyMessage:s="No items",sx:a}){const x=i*40;return e.jsxs(j,{variant:"outlined",sx:{p:0,...a},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[n&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16},children:n}),e.jsx(u,{variant:"subtitle2",children:r})]}),t]}),e.jsx(I,{}),o.length===0?e.jsx(d,{sx:{px:1.5,py:2,textAlign:"center"},children:e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-faint)"},children:s})}):e.jsx(d,{sx:{maxHeight:x,overflowY:"auto"},children:o.map((c,p)=>{const m=e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,sx:{px:1.5,height:40,width:"100%",borderBottom:p<o.length-1?"1px solid var(--ov-border-default)":void 0,"&:hover":c.onClick?{bgcolor:"var(--ov-bg-surface-hover)"}:void 0,transition:"background-color 0.1s"},children:[c.icon&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16,flexShrink:0},children:c.icon}),e.jsxs(d,{sx:{flex:1,minWidth:0},children:[e.jsx(u,{variant:"body2",noWrap:!0,children:c.label}),c.secondary&&e.jsx(u,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-faint)"},children:c.secondary})]}),c.trailing&&e.jsx(d,{sx:{flexShrink:0,display:"flex",alignItems:"center"},children:c.trailing})]});return c.onClick?e.jsx(Ne,{onClick:c.onClick,sx:{display:"block",width:"100%",textAlign:"left"},children:m},c.key):e.jsx(h.Fragment,{children:m},c.key)})})]})}fe.displayName="ListCard";function pe({title:r,icon:n,status:t,statusLabel:o,description:i,metadata:s,headerAction:a,sx:l}){return e.jsxs(j,{variant:"outlined",sx:{p:0,...l},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[n&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16},children:n}),e.jsx(u,{variant:"subtitle2",children:r})]}),a]}),e.jsx(I,{}),e.jsxs(d,{sx:{px:1.5,py:1.25},children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[e.jsx(qe.StatusDot,{status:t,pulse:t==="pending"}),e.jsx(u,{variant:"body2",sx:{fontWeight:600,textTransform:"capitalize"},children:o??t})]}),i&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",mt:.5},children:i})]}),s&&s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(I,{}),e.jsx(d,{sx:{px:1.5,py:1},children:s.map((x,c)=>e.jsxs(f,{direction:"row",justifyContent:"space-between",alignItems:"center",sx:{py:.5,borderBottom:c<s.length-1?"1px solid var(--ov-border-default)":void 0},children:[e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-muted)"},children:x.label}),e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-default)",fontWeight:500},children:x.value})]},x.label))})]})]})}pe.displayName="StatusCard";exports.Divider=I;exports.Icon=y.Icon;exports.LinearProgress=P;exports.CircularProgress=A;exports.ListSubheader=O;exports.HotkeyHint=$.HotkeyHint;exports.ActionCard=ue;exports.AspectRatio=Z;exports.Avatar=ie;exports.Badge=ne;exports.Card=H;exports.Chip=k;exports.ClipboardText=ee;exports.DetailsCard=G;exports.EmptySearch=ae;exports.ExpandableSection=Y;exports.ExpandableSections=U;exports.FileIcon=oe;exports.InlineEdit=te;exports.KVCard=K;exports.Kbd=ce;exports.List=J;exports.ListCard=fe;exports.ListDivider=Q;exports.ListItem=X;exports.LoadingOverlay=le;exports.MediaCard=xe;exports.MetricsSection=Ue;exports.OverflowText=re;exports.StatCard=de;exports.StatusCard=pe;exports.TruncatedList=se;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),f=require("@mui/material/Stack"),j=require("@mui/material/Card"),b=require("@mui/material/Chip"),M=require("@mui/material/Avatar"),I=require("@mui/material/Divider"),u=require("@mui/material/Typography"),d=require("@mui/material/Box"),y=require("./Icon-CKdIOrjZ.cjs"),h=require("react"),C=require("@mui/material/Grid"),D=require("@mui/material/Accordion"),W=require("@mui/material/AccordionDetails"),R=require("@mui/material/AccordionSummary"),Ie=require("@mui/icons-material/ExpandMore"),g=require("react-icons/lu"),w=require("./types.cjs"),ze=require("./Text-Mk6Uyg1w.cjs"),P=require("@mui/material/LinearProgress"),A=require("@mui/material/CircularProgress"),Le=require("@mui/material/List"),O=require("@mui/material/ListSubheader"),z=require("@mui/material/ListItem"),B=require("@mui/material/ListItemButton"),L=require("@mui/material/ListItemIcon"),N=require("@mui/material/ListItemText"),Me=require("./CopyButton-3fq1UAiv.cjs"),Ee=require("@mui/material/Tooltip"),Ae=require("@mui/material/TextField"),$=require("./HotkeyHint-DrTOTrIM.cjs"),ke=require("@mui/material/Badge"),S=require("react-icons/si"),Be=require("@mui/icons-material/Search"),Ne=require("@mui/material/ButtonBase"),qe=require("./StatusDot-CYyJxjJK.cjs"),H=({title:r,titleDecorator:n,icon:t,children:o,variant:i,emphasis:s,noPadding:a=!1,onClick:l,sx:x})=>{const p=i??(s?{outline:"outlined",solid:"elevation",soft:"elevation",ghost:"outlined"}[s]??"outlined":"outlined");return r?e.jsxs(j,{variant:p,onClick:l,sx:{p:0,gap:0,...x},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[t&&(typeof t=="string"?t.startsWith("http")?e.jsx(M,{src:t,sx:{height:16,width:16,borderRadius:"4px"}}):e.jsx(y.Icon,{name:t,size:14}):t),e.jsx(u,{variant:"subtitle2",children:r})]}),n&&(typeof n=="string"||typeof n=="number"?e.jsx(b,{sx:{borderRadius:"4px"},size:"small",color:"primary",variant:"outlined",label:n}):n)]}),e.jsx(I,{}),e.jsx(d,{sx:{p:a?0:1.5},children:o})]}):e.jsx(j,{variant:p,onClick:l,sx:{p:a?0:1.5,gap:0,...x},children:o})};H.displayName="Card";const Fe=r=>{switch(r){case"sm":return 12;case"md":return 14;case"lg":return 16;default:return 14}},Te=r=>{switch(r){case"sm":return .5;case"md":return 1;case"lg":return 2;default:return 1}},De=r=>{switch(r){case"sm":return 12;case"md":return 14;case"lg":return 16;default:return 14}},G=({title:r,titleSize:n="md",icon:t,data:o,endAdornment:i,showUndefined:s=!1})=>e.jsxs(j,{variant:"outlined",sx:{p:0,gap:0,bgcolor:"var(--ov-bg-surface-raised)"},children:[r&&e.jsxs(d,{sx:{px:1.5,py:1,display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsxs(f,{direction:"row",spacing:Te(n),alignItems:"center",children:[t&&(typeof t=="string"?t.startsWith("http")?e.jsx(M,{src:t,sx:{height:16,width:16,borderRadius:"4px"}}):e.jsx(y.Icon,{name:t,size:De(n)}):t),e.jsx(u,{sx:{fontSize:Fe(n)},variant:"subtitle2",children:r})]}),i]}),e.jsx(d,{sx:{px:1.5,py:1},children:e.jsx(C,{container:!0,spacing:1,children:o.map(a=>{if(a.value||s)return e.jsxs(h.Fragment,{children:[e.jsx(C,{size:a.ratio?.[0]??5,children:e.jsxs(f,{direction:"row",spacing:1,alignItems:"center",children:[a.icon&&(typeof a.icon=="string"?a.icon.startsWith("http")?e.jsx(M,{src:a.icon,sx:{width:24,height:24}}):e.jsx(y.Icon,{name:a.icon,size:14}):a.icon),e.jsx(u,{variant:"caption",children:a.key})]})}),e.jsx(C,{size:a.ratio?.[1]??7,children:e.jsxs(f,{direction:"row",spacing:1,alignItems:"center",justifyContent:"space-between",children:[e.jsx(u,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-default)"},children:a.used?`${a.used} / ${a.value}`:a.value}),a.endAdornment]})})]},a.key)})})})]});G.displayName="DetailsCard";const K=({title:r,kvs:n,defaultExpanded:t})=>e.jsxs(D,{disabled:!Object.keys(n).length,defaultExpanded:t,disableGutters:!0,sx:{"&:before":{display:"none"}},children:[e.jsx(R,{expandIcon:e.jsx(Ie,{}),children:e.jsxs(f,{direction:"row",gap:1,alignItems:"center",children:[e.jsx(u,{variant:"subtitle2",children:r}),e.jsx(b,{size:"small",variant:"outlined",color:"primary",label:Object.keys(n).length,sx:{borderRadius:"4px"}})]})}),e.jsx(W,{children:e.jsx(C,{container:!0,spacing:.25,children:Object.entries(n).map(([o,i])=>e.jsxs(h.Fragment,{children:[e.jsx(C,{size:6,children:e.jsx(u,{variant:"caption",sx:{fontWeight:400},children:o})}),e.jsx(C,{size:6,children:e.jsx(u,{variant:"caption",sx:{fontWeight:600},children:i})})]},o))})})]});K.displayName="KVCard";function We(r){switch(r){case"outline":case"ghost":return"outlined";default:return"filled"}}function Re(r,n){if(r==="soft"){const t=w.toCssColor(n);return{bgcolor:`color-mix(in srgb, ${t} 18%, transparent)`,color:t,border:"1px solid",borderColor:`color-mix(in srgb, ${t} 30%, transparent)`,fontWeight:600,"& .MuiChip-label":{color:t},"& .MuiChip-icon":{color:t},"& .MuiChip-deleteIcon":{color:t,opacity:.7,"&:hover":{opacity:1}}}}if(r==="ghost")return{borderColor:"transparent",bgcolor:"transparent"}}function Pe(r){if(r==="xs")return{height:20,fontSize:"0.6875rem","& .MuiChip-label":{px:"6px"},"& .MuiChip-icon":{fontSize:"0.75rem",flexShrink:0}};if(r==="xl")return{height:40,fontSize:"1rem","& .MuiChip-label":{px:"16px"}}}const Oe={soft:"soft",outlined:"outline",solid:"solid",plain:"ghost",filled:"solid"};function k({label:r,children:n,color:t="neutral",emphasis:o,variant:i,size:s="sm",shape:a,textTransform:l,icon:x,startAdornment:c,endAdornment:p,deletable:m=!1,onDelete:v,onClick:he,disabled:ge=!1,sx:ve}){const E=o??(i?Oe[i]??"soft":"soft"),me=r??n,je=x??c,be=E==="soft"?"filled":We(E),ye=Re(E,t),Se=Pe(s),Ce=a?{borderRadius:w.toBorderRadius(a)}:void 0,we=l?{"& .MuiChip-label":{textTransform:l}}:void 0;return e.jsx(b,{label:me,color:w.toMuiColor(t),variant:be,size:w.toMuiSize(s),icon:je,onDelete:m||v?v??void 0:void 0,onClick:he,disabled:ge,sx:{...ye,...Se,...Ce,...we,...ve}})}k.displayName="Chip";const $e={sm:{minHeight:28,headerPy:"4px",headerPx:1,fontSize:12,iconSize:14,chevronSize:14},md:{minHeight:32,headerPy:"6px",headerPx:1.25,fontSize:13,iconSize:16,chevronSize:16},lg:{minHeight:38,headerPy:"10px",headerPx:1.5,fontSize:14,iconSize:18,chevronSize:18}};function V(r){switch(r){case"bordered":return{borderRadius:"6px",border:"1px solid var(--ov-border-default)"};case"plain":return{};case"flush":return{}}}function He(r,n){return n===0?!1:r!=="flush"}function _({section:r,size:n,monospace:t,expanded:o,onExpandedChange:i}){const s=$e[n],a=o!==void 0||r.expanded!==void 0,l=o??r.expanded,x=(m,v)=>{i?.(v),r.onExpandedChange?.(v)},c={disableGutters:!0,disabled:r.disabled,onChange:x,sx:{boxShadow:"none",background:"transparent !important","&:before":{display:"none"},"&.Mui-expanded":{margin:0}}};a?c.expanded=l:c.defaultExpanded=r.defaultExpanded;const p=()=>r.icon?typeof r.icon=="string"?e.jsx(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:e.jsx(y.Icon,{name:r.icon,size:s.iconSize})}):e.jsx(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:r.icon}):null;return e.jsxs(D,{...c,children:[e.jsxs(R,{expandIcon:null,sx:{minHeight:s.minHeight,py:s.headerPy,px:s.headerPx,"&:hover":{bgcolor:"var(--ov-state-hover)"},"&.Mui-expanded":{minHeight:s.minHeight},"& .MuiAccordionSummary-content":{margin:0,display:"flex",alignItems:"center",gap:0,"&.Mui-expanded":{margin:0}}},children:[e.jsx(Ge,{size:s.chevronSize}),p(),e.jsx(ze.Text,{size:n==="lg"?"md":n,weight:"semibold",inline:!0,sx:{color:"var(--ov-fg-base)",...t&&{fontFamily:"var(--ov-font-mono)",fontSize:s.fontSize},...!t&&{fontSize:s.fontSize},lineHeight:1},children:r.title}),r.count!==void 0&&e.jsx(d,{sx:{ml:.75},children:e.jsx(k,{size:"xs",color:"neutral",emphasis:"soft",label:r.count})}),e.jsx(d,{sx:{flex:1}}),r.endDecorator&&e.jsx(d,{sx:{display:"flex",alignItems:"center",ml:1},onClick:m=>m.stopPropagation(),children:r.endDecorator})]}),e.jsx(W,{sx:{p:0},children:r.children})]})}function Ge({size:r}){return e.jsxs(d,{sx:{display:"flex",alignItems:"center",mr:.75,color:"var(--ov-fg-muted)"},children:[e.jsx(d,{component:"span",sx:{display:"flex",".MuiAccordionSummary-root.Mui-expanded &":{display:"none"}},children:e.jsx(g.LuChevronRight,{size:r})}),e.jsx(d,{component:"span",sx:{display:"none",".MuiAccordionSummary-root.Mui-expanded &":{display:"flex"}},children:e.jsx(g.LuChevronDown,{size:r})})]})}function Ke(){return e.jsx(d,{sx:{height:"1px",bgcolor:"var(--ov-border-default)"}})}function U({sections:r,variant:n="bordered",size:t="md",monospace:o=!1,exclusive:i=!1,sx:s}){const[a,l]=h.useState(()=>{if(!i)return null;const c=r.findIndex(p=>p.defaultExpanded||p.expanded);return c>=0?c:null}),x=h.useCallback(c=>p=>{i&&l(p?c:null)},[i]);return r.length===0?e.jsx(e.Fragment,{}):e.jsx(d,{sx:{flexGrow:0,...V(n),...typeof s=="object"&&!Array.isArray(s)?s:{}},children:r.map((c,p)=>{const m=c.key??(typeof c.title=="string"?c.title:String(p)),v=i?{expanded:a===p,onExpandedChange:x(p)}:{};return e.jsxs(h.Fragment,{children:[He(n,p)&&e.jsx(Ke,{}),e.jsx(_,{section:c,size:t,monospace:o,...v})]},m)})})}U.displayName="ExpandableSections";function Y({variant:r="bordered",size:n="md",monospace:t=!1,...o}){return e.jsx(d,{sx:{...V(r)},children:e.jsx(_,{section:o,size:n,monospace:t})})}Y.displayName="ExpandableSection";const Ve={NONE:"",BYTES:"B",KB:"KB",MB:"MB",GB:"GB",PERCENTAGE:"%",MILLISECONDS:"ms",SECONDS:"s",COUNT:"",OPS_PER_SEC:"ops/s",BYTES_PER_SEC:"B/s",MILLICORES:"m",CORES:"cores"};function q(r,n){const t=Ve[n]??n;return n==="BYTES"||n==="bytes"?r>=1024*1024*1024?`${(r/(1024*1024*1024)).toFixed(1)} GB`:r>=1024*1024?`${(r/(1024*1024)).toFixed(1)} MB`:r>=1024?`${(r/1024).toFixed(1)} KB`:`${r} B`:n==="MILLICORES"||n==="millicores"?r>=1e3?`${(r/1e3).toFixed(2)} cores`:`${Math.round(r)}${t}`:Number.isInteger(r)?`${r}${t?` ${t}`:""}`:`${r.toFixed(2)}${t?` ${t}`:""}`}const _e=({metric:r})=>{const n=r.capacity!=null&&r.capacity>0,t=n?Math.min(r.value/r.capacity*100,100):null,o=()=>t==null?"primary":t>=90?"error":t>=70?"warning":"primary";return e.jsxs(d,{sx:{minWidth:0,flex:1},children:[e.jsxs(f,{direction:"row",spacing:.5,alignItems:"center",sx:{mb:.25},children:[r.icon&&e.jsx(y.Icon,{name:r.icon,style:{fontSize:14,opacity:.7}}),e.jsx(u,{variant:"caption",sx:{fontWeight:500,opacity:.8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.name})]}),e.jsx(u,{variant:"body2",sx:{fontWeight:600,fontVariantNumeric:"tabular-nums"},children:q(r.value,r.unit)}),n&&e.jsxs(d,{sx:{mt:.5},children:[e.jsx(P,{variant:"determinate",value:t,color:o(),sx:{height:4,borderRadius:2}}),e.jsxs(u,{variant:"caption",sx:{opacity:.6,fontSize:"0.65rem"},children:[t.toFixed(0),"% of ",q(r.capacity,r.unit)]})]})]})},Ue=({providers:r,isLoading:n=!1,error:t,sx:o})=>n&&r.length===0?e.jsx(d,{sx:{display:"flex",justifyContent:"center",py:2,...o},children:e.jsx(A,{size:20})}):t?e.jsx(d,{sx:{px:1,py:.5,...o},children:e.jsx(u,{variant:"caption",color:"error",children:t})}):r.length===0?null:e.jsx(f,{spacing:1.5,sx:o,children:r.map(i=>e.jsxs(d,{children:[r.length>1&&e.jsxs(f,{direction:"row",spacing:.5,alignItems:"center",sx:{mb:.75},children:[i.providerIcon&&e.jsx(y.Icon,{name:i.providerIcon,style:{fontSize:14}}),e.jsx(b,{label:i.providerName,size:"small",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}})]}),e.jsx(f,{direction:"row",spacing:1.5,sx:{flexWrap:"wrap","& > *":{minWidth:100}},children:i.metrics.map(s=>e.jsx(_e,{metric:s},s.metricID))})]},i.providerID))}),Ye={xs:!0,sm:!0,md:!1,lg:!1,xl:!1};function J({children:r,size:n="md",subheader:t,dense:o,disablePadding:i=!1,sx:s}){return e.jsx(Le,{dense:o??Ye[n],disablePadding:i,subheader:t?e.jsx(O,{children:t}):void 0,sx:s,children:r})}J.displayName="List";function Q({sx:r}){return e.jsx(I,{component:"li",sx:r})}Q.displayName="ListDivider";function X({children:r,primary:n,secondary:t,icon:o,action:i,selected:s=!1,disabled:a=!1,onClick:l,sx:x}){return r&&!n?l?e.jsx(z,{disablePadding:!0,secondaryAction:i,sx:x,children:e.jsxs(B,{selected:s,disabled:a,onClick:l,children:[o&&e.jsx(L,{children:o}),r]})}):e.jsxs(z,{secondaryAction:i,sx:x,children:[o&&e.jsx(L,{children:o}),r]}):l?e.jsx(z,{disablePadding:!0,secondaryAction:i,sx:x,children:e.jsxs(B,{selected:s,disabled:a,onClick:l,children:[o&&e.jsx(L,{children:o}),e.jsx(N,{primary:n,secondary:t}),r]})}):e.jsxs(z,{secondaryAction:i,sx:x,children:[o&&e.jsx(L,{children:o}),e.jsx(N,{primary:n,secondary:t}),r]})}X.displayName="ListItem";function Z({ratio:r="1/1",children:n,sx:t}){return e.jsx(d,{sx:{position:"relative",width:"100%",aspectRatio:typeof r=="number"?String(r):r,overflow:"hidden","& > *":{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover"},...t},children:n})}Z.displayName="AspectRatio";function ee({value:r,truncate:n=!0,maxWidth:t,sx:o,variant:i="mono"}){const[s,a]=h.useState(!1);return e.jsxs(d,{onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),sx:{display:"inline-flex",alignItems:"center",gap:.5,maxWidth:t,minWidth:0,...o},children:[i==="mono"?e.jsx(u,{variant:"body2",sx:{fontSize:"0.8125rem",color:"var(--ov-fg-default)",fontFamily:"var(--ov-font-mono)",...n&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:r}):e.jsx("span",{style:{...n?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),e.jsx("span",{onClick:l=>l.stopPropagation(),style:{display:"inline-flex",alignItems:"center",visibility:s?"visible":"hidden",flexShrink:0},children:e.jsx(Me.CopyButton,{value:r,size:"xs"})})]})}ee.displayName="ClipboardText";function re({children:r,maxWidth:n,copyOnClick:t=!1,sx:o}){const i=h.useRef(null),[s,a]=h.useState(!1);h.useEffect(()=>{const c=i.current;c&&a(c.scrollWidth>c.clientWidth)},[r]);const l=()=>{t&&navigator.clipboard.writeText(r).catch(()=>{})},x=e.jsx(d,{ref:i,onClick:l,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:n,fontSize:"0.8125rem",color:"var(--ov-fg-default)",cursor:t?"pointer":void 0,...o},children:r});return s?e.jsx(Ee,{title:r,arrow:!0,children:x}):x}re.displayName="OverflowText";const F={xs:"0.6875rem",sm:"0.8125rem",md:"0.875rem",lg:"1rem",xl:"1.125rem"};function te({value:r,onSave:n,placeholder:t="Click to edit",size:o="sm",sx:i}){const[s,a]=h.useState(!1),[l,x]=h.useState(r),c=h.useRef(null);h.useEffect(()=>{s&&c.current&&(c.current.focus(),c.current.select())},[s]);const p=()=>{a(!1),l!==r&&n(l)},m=()=>{a(!1),x(r)};return s?e.jsx(d,{sx:i,children:e.jsx(Ae,{inputRef:c,value:l,onChange:v=>x(v.target.value),onBlur:p,onKeyDown:v=>{v.key==="Enter"&&p(),v.key==="Escape"&&m()},variant:"outlined",size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:F[o],py:.25,px:.5}}}})}):e.jsx(d,{onClick:()=>{x(r),a(!0)},sx:{cursor:"pointer",borderRadius:"4px",px:.5,py:.25,"&:hover":{bgcolor:"var(--ov-state-hover)"},...i},children:e.jsx(u,{variant:"body2",sx:{fontSize:F[o],color:r?"var(--ov-fg-default)":"var(--ov-fg-faint)"},children:r||t})})}te.displayName="InlineEdit";function ne({count:r,dot:n=!1,color:t="primary",max:o=99,invisible:i,anchorOrigin:s,children:a,sx:l}){return e.jsx(ke,{badgeContent:n?void 0:r,variant:n?"dot":"standard",color:w.toMuiColor(t),max:o,invisible:i,anchorOrigin:s,sx:l,children:a})}ne.displayName="Badge";const Je={xs:24,sm:32,md:40,lg:48,xl:64},Qe={xs:"0.625rem",sm:"0.75rem",md:"0.875rem",lg:"1rem",xl:"1.25rem"},T=["#e57373","#f06292","#ba68c8","#9575cd","#7986cb","#64b5f6","#4fc3f7","#4dd0e1","#4db6ac","#81c784","#aed581","#dce775","#fff176","#ffd54f","#ffb74d","#ff8a65"];function Xe(r){let n=0;for(let t=0;t<r.length;t++)n=r.charCodeAt(t)+((n<<5)-n),n|=0;return Math.abs(n)}function Ze(r){const n=r.trim().split(/\s+/);return n.length>=2?(n[0][0]+n[1][0]).toUpperCase():r.slice(0,2).toUpperCase()}function er(r){return T[Xe(r)%T.length]}const rr={xs:4,sm:6,md:8,lg:10,xl:12};function ie({src:r,name:n,size:t="md",variant:o="rounded",children:i,sx:s}){const a=Je[t],l=n?er(n):void 0,x=n?Ze(n):void 0,c=i??(r?void 0:x);return e.jsx(M,{src:r,alt:n,variant:o==="circular"?"circular":"rounded",sx:{width:a,height:a,fontSize:Qe[t],fontWeight:600,bgcolor:r?void 0:l,...o==="rounded"?{borderRadius:`${rr[t]}px`}:{},...s},children:c})}ie.displayName="Avatar";const tr={xs:12,sm:14,md:16,lg:20,xl:24};function nr(r,n){if(n.toLowerCase().startsWith("dockerfile"))return{icon:S.SiDocker,color:"var(--ov-info-default)"};switch(r){case".go":return{icon:S.SiGo,color:"#00ADD8"};case".ts":case".tsx":return{icon:S.SiTypescript,color:"#3178C6"};case".js":case".jsx":case".mjs":case".cjs":return{icon:S.SiJavascript,color:"#F7DF1E"};case".py":return{icon:S.SiPython,color:"#3776AB"};case".rs":return{icon:S.SiRust,color:"#DEA584"};case".yaml":case".yml":return{icon:g.LuFileCode,color:"var(--ov-info-default)"};case".json":return{icon:g.LuBraces,color:"#F5C518"};case".md":case".mdx":case".txt":case".log":return{icon:g.LuFileText,color:"var(--ov-fg-muted)"};case".html":case".htm":case".xml":case".svg":return{icon:g.LuFileCode,color:"#E44D26"};case".css":case".scss":case".less":return{icon:g.LuFileCode,color:"#264DE4"};case".png":case".jpg":case".jpeg":case".gif":case".webp":case".ico":return{icon:g.LuFileImage,color:"var(--ov-success-default)"};case".toml":case".ini":case".env":case".cfg":return{icon:g.LuFileCode,color:"var(--ov-fg-muted)"};case".sh":case".bash":case".zsh":return{icon:g.LuFileCode,color:"var(--ov-success-default)"};case".proto":return{icon:g.LuFileCode,color:"var(--ov-warning-default)"};case".sql":return{icon:g.LuFileCode,color:"#336791"};case".jsonc":return{icon:g.LuBraces,color:"#F5C518"};default:return{icon:g.LuFile,color:"var(--ov-fg-muted)"}}}function oe({filename:r,size:n="sm",sx:t}){const o=tr[n],i=r.lastIndexOf("."),s=i>=0?r.slice(i).toLowerCase():"",a=r.split("/").pop()??r,{icon:l,color:x}=nr(s,a);return e.jsx(d,{component:"span",sx:{display:"inline-flex",color:x,flexShrink:0,...typeof t=="object"&&!Array.isArray(t)?t:{}},children:e.jsx(l,{size:o})})}oe.displayName="FileIcon";function se({items:r,maxVisible:n=3,renderItem:t,sx:o}){const[i,s]=h.useState(!1),a=i?r:r.slice(0,n),l=r.length-n;return e.jsxs(d,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[a.map((x,c)=>t?t(x,c):e.jsx(d,{component:"span",children:x},c)),!i&&l>0&&e.jsx(b,{label:`+${l} more`,size:"small",onClick:()=>s(!0),sx:{fontSize:"var(--ov-text-xs)",height:20,cursor:"pointer",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)","&:hover":{bgcolor:"var(--ov-state-hover)"}}}),i&&l>0&&e.jsx(b,{label:"Show less",size:"small",onClick:()=>s(!1),sx:{fontSize:"var(--ov-text-xs)",height:20,cursor:"pointer",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)","&:hover":{bgcolor:"var(--ov-state-hover)"}}})]})}se.displayName="TruncatedList";function ae({query:r,suggestions:n,onSuggestionClick:t,sx:o}){return e.jsxs(d,{sx:{display:"flex",flexDirection:"column",alignItems:"center",py:4,gap:1.5,...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[e.jsx(Be,{sx:{fontSize:32,color:"var(--ov-fg-faint)"}}),e.jsxs(u,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-muted)"},children:["No results for “",r,"”"]}),n&&n.length>0&&e.jsxs(d,{sx:{display:"flex",gap:.75,flexWrap:"wrap",justifyContent:"center",mt:.5},children:[e.jsx(u,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",width:"100%",textAlign:"center"},children:"Try:"}),n.map(i=>e.jsx(b,{label:i,size:"small",onClick:t?()=>t(i):void 0,sx:{fontSize:"var(--ov-text-xs)",cursor:t?"pointer":"default",bgcolor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-muted)"}},i))]})]})}ae.displayName="EmptySearch";function le({active:r,children:n,label:t,blur:o=!1,sx:i}){return e.jsxs(d,{sx:{position:"relative",...typeof i=="object"&&!Array.isArray(i)?i:{}},children:[n,r&&e.jsxs(d,{sx:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:1.5,bgcolor:"rgba(0, 0, 0, 0.3)",zIndex:10,borderRadius:"inherit",...o&&{backdropFilter:"blur(3px)"}},children:[e.jsx(A,{size:28,sx:{color:"var(--ov-accent-fg)"}}),t&&e.jsx(u,{sx:{fontSize:"var(--ov-text-sm)",color:"#fff",fontWeight:500},children:t})]})]})}le.displayName="LoadingOverlay";function ce({shortcut:r}){const n=r.split("+").map(t=>t.trim());return e.jsx($.HotkeyHint,{keys:n})}ce.displayName="Kbd";function de({value:r,label:n,description:t,icon:o,trend:i,color:s="primary",sx:a}){const l=i?i.value>0?"up":i.value<0?"down":"flat":void 0,x=l==="up"?"var(--ov-success-default)":l==="down"?"var(--ov-danger-default)":"var(--ov-fg-muted)",c=l==="up"?"↑":l==="down"?"↓":"→";return e.jsxs(j,{variant:"outlined",sx:{p:2,display:"flex",flexDirection:"column",gap:.5,...a},children:[e.jsxs(f,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",children:[e.jsxs(d,{children:[e.jsx(u,{sx:{fontSize:"var(--ov-text-2xl)",fontWeight:700,lineHeight:1.2,color:`var(${w.toCssColor(s)})`},children:r}),e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",fontWeight:500,mt:.25},children:n})]}),o&&e.jsx(d,{sx:{color:"var(--ov-fg-faint)",fontSize:24,display:"flex"},children:o})]}),(i||t)&&e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,sx:{mt:.5},children:[i&&e.jsxs(u,{variant:"caption",sx:{color:x,fontWeight:600},children:[c," ",Math.abs(i.value),"%",i.label?` ${i.label}`:""]}),t&&e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-faint)"},children:t})]})]})}de.displayName="StatCard";function xe({media:r,mediaHeight:n=140,title:t,description:o,meta:i,actions:s,onClick:a,sx:l}){return e.jsxs(j,{variant:"outlined",onClick:a,sx:{p:0,cursor:a?"pointer":void 0,transition:"border-color 0.15s, box-shadow 0.15s","&:hover":a?{borderColor:"var(--ov-border-focus)",boxShadow:"0 2px 8px rgba(0,0,0,0.08)"}:void 0,...l},children:[typeof r=="string"?e.jsx(d,{sx:{height:n,width:"100%",backgroundImage:`url(${r})`,backgroundSize:"cover",backgroundPosition:"center",borderBottom:"1px solid var(--ov-border-default)"}}):e.jsx(d,{sx:{height:n,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)",color:"var(--ov-fg-faint)",fontSize:40},children:r}),e.jsxs(d,{sx:{px:1.5,py:1.25},children:[e.jsx(u,{variant:"subtitle2",sx:{mb:.25},children:t}),o&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:o}),i&&e.jsx(u,{variant:"caption",component:"div",sx:{color:"var(--ov-fg-faint)",mt:.5},children:i})]}),s&&e.jsx(f,{direction:"row",spacing:1,sx:{px:1.5,py:1,borderTop:"1px solid var(--ov-border-default)"},children:s})]})}xe.displayName="MediaCard";function ue({icon:r,title:n,description:t,primaryAction:o,secondaryAction:i,direction:s="vertical",sx:a}){const l=s==="horizontal";return e.jsxs(j,{variant:"outlined",sx:{p:2,display:"flex",flexDirection:l?"row":"column",alignItems:l?"center":"flex-start",gap:l?2:1,...a},children:[r&&e.jsx(d,{sx:{fontSize:32,color:"var(--ov-fg-muted)",display:"flex",flexShrink:0},children:r}),e.jsxs(d,{sx:{flex:1,minWidth:0},children:[e.jsx(u,{variant:"subtitle2",sx:{mb:.25},children:n}),t&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)"},children:t})]}),(o||i)&&e.jsxs(f,{direction:"row",spacing:1,sx:{mt:l?0:1,flexShrink:0},children:[o,i]})]})}ue.displayName="ActionCard";function fe({title:r,icon:n,headerAction:t,items:o,maxVisible:i=5,emptyMessage:s="No items",sx:a}){const x=i*40;return e.jsxs(j,{variant:"outlined",sx:{p:0,...a},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[n&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16},children:n}),e.jsx(u,{variant:"subtitle2",children:r})]}),t]}),e.jsx(I,{}),o.length===0?e.jsx(d,{sx:{px:1.5,py:2,textAlign:"center"},children:e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-faint)"},children:s})}):e.jsx(d,{sx:{maxHeight:x,overflowY:"auto"},children:o.map((c,p)=>{const m=e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,sx:{px:1.5,height:40,width:"100%",borderBottom:p<o.length-1?"1px solid var(--ov-border-default)":void 0,"&:hover":c.onClick?{bgcolor:"var(--ov-bg-surface-hover)"}:void 0,transition:"background-color 0.1s"},children:[c.icon&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16,flexShrink:0},children:c.icon}),e.jsxs(d,{sx:{flex:1,minWidth:0},children:[e.jsx(u,{variant:"body2",noWrap:!0,children:c.label}),c.secondary&&e.jsx(u,{variant:"caption",noWrap:!0,sx:{color:"var(--ov-fg-faint)"},children:c.secondary})]}),c.trailing&&e.jsx(d,{sx:{flexShrink:0,display:"flex",alignItems:"center"},children:c.trailing})]});return c.onClick?e.jsx(Ne,{onClick:c.onClick,sx:{display:"block",width:"100%",textAlign:"left"},children:m},c.key):e.jsx(h.Fragment,{children:m},c.key)})})]})}fe.displayName="ListCard";function pe({title:r,icon:n,status:t,statusLabel:o,description:i,metadata:s,headerAction:a,sx:l}){return e.jsxs(j,{variant:"outlined",sx:{p:0,...l},children:[e.jsxs(f,{direction:"row",spacing:1,sx:{px:1.5,py:1},alignItems:"center",justifyContent:"space-between",children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[n&&e.jsx(d,{sx:{display:"flex",color:"var(--ov-fg-muted)",fontSize:16},children:n}),e.jsx(u,{variant:"subtitle2",children:r})]}),a]}),e.jsx(I,{}),e.jsxs(d,{sx:{px:1.5,py:1.25},children:[e.jsxs(f,{direction:"row",alignItems:"center",spacing:1,children:[e.jsx(qe.StatusDot,{status:t,pulse:t==="pending"}),e.jsx(u,{variant:"body2",sx:{fontWeight:600,textTransform:"capitalize"},children:o??t})]}),i&&e.jsx(u,{variant:"body2",sx:{color:"var(--ov-fg-muted)",mt:.5},children:i})]}),s&&s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(I,{}),e.jsx(d,{sx:{px:1.5,py:1},children:s.map((x,c)=>e.jsxs(f,{direction:"row",justifyContent:"space-between",alignItems:"center",sx:{py:.5,borderBottom:c<s.length-1?"1px solid var(--ov-border-default)":void 0},children:[e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-muted)"},children:x.label}),e.jsx(u,{variant:"caption",sx:{color:"var(--ov-fg-default)",fontWeight:500},children:x.value})]},x.label))})]})]})}pe.displayName="StatusCard";exports.Divider=I;exports.Icon=y.Icon;exports.LinearProgress=P;exports.CircularProgress=A;exports.ListSubheader=O;exports.HotkeyHint=$.HotkeyHint;exports.ActionCard=ue;exports.AspectRatio=Z;exports.Avatar=ie;exports.Badge=ne;exports.Card=H;exports.Chip=k;exports.ClipboardText=ee;exports.DetailsCard=G;exports.EmptySearch=ae;exports.ExpandableSection=Y;exports.ExpandableSections=U;exports.FileIcon=oe;exports.InlineEdit=te;exports.KVCard=K;exports.Kbd=ce;exports.List=J;exports.ListCard=fe;exports.ListDivider=Q;exports.ListItem=X;exports.LoadingOverlay=le;exports.MediaCard=xe;exports.MetricsSection=Ue;exports.OverflowText=re;exports.StatCard=de;exports.StatusCard=pe;exports.TruncatedList=se;
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import z from "@mui/material/ListItem";
28
28
  import k from "@mui/material/ListItemButton";
29
29
  import M from "@mui/material/ListItemIcon";
30
30
  import B from "@mui/material/ListItemText";
31
- import { C as ge } from "./CopyButton-DPBgL0K8.js";
31
+ import { C as ge } from "./CopyButton-DWVcqdPe.js";
32
32
  import ve from "@mui/material/Tooltip";
33
33
  import be from "@mui/material/TextField";
34
34
  import { H as ye } from "./HotkeyHint-6SOi-MaU.js";
package/dist/overlays.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),_=require("@mui/material/Dialog"),K=require("@mui/material/DialogTitle"),Y=require("@mui/material/DialogContent"),J=require("@mui/material/DialogActions"),k=require("@mui/material/IconButton"),D=require("@mui/icons-material/Close"),a=require("@mui/material/Box"),h=require("@mui/material/Typography"),M=require("./Button-Dmu1cikC.cjs"),q=require("@mui/material/Modal"),u=require("react"),E=require("@mui/material/Drawer"),Q=require("./Tooltip-44-P5KfQ.cjs"),G=require("@mui/material/Popover"),V=require("@mui/material/Snackbar"),Z=require("@mui/material/Alert"),P=require("./types.cjs"),w=require("react-icons/lu"),T=require("@mui/material/Button"),ee=require("@mui/material/InputBase"),re=require("@mui/icons-material/Search"),oe={sm:"xs",md:"sm",lg:"md",xl:"lg"};function W({open:o,onClose:r,title:t,icon:i,size:c="md",variant:d="default",actions:l,disableBackdropClose:s=!1,children:p,sx:n}){const f=c==="fullscreen",g=(z,y)=>{y==="backdropClick"&&s||r()},b=l||(d==="confirm"?e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{emphasis:"ghost",color:"neutral",size:"sm",onClick:r,children:"Cancel"}),e.jsx(M.Button,{emphasis:"solid",color:"primary",size:"sm",onClick:r,children:"Confirm"})]}):d==="danger"?e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{emphasis:"ghost",color:"neutral",size:"sm",onClick:r,children:"Cancel"}),e.jsx(M.Button,{emphasis:"solid",color:"danger",size:"sm",onClick:r,children:"Delete"})]}):null);return e.jsxs(_,{open:o,onClose:g,fullScreen:f,maxWidth:f?!1:oe[c],fullWidth:!0,sx:n,children:[t&&e.jsxs(K,{sx:{display:"flex",alignItems:"center",gap:1,pr:6},children:[i&&e.jsx(a,{sx:{display:"flex",color:"var(--ov-fg-muted)"},children:i}),e.jsx(h,{variant:"h6",component:"span",sx:{fontWeight:600},children:t}),e.jsx(k,{size:"small",onClick:r,sx:{position:"absolute",right:8,top:8,color:"var(--ov-fg-faint)"},"aria-label":"Close",children:e.jsx(D,{fontSize:"small"})})]}),e.jsx(Y,{children:p}),b&&e.jsx(J,{sx:{px:3,pb:2},children:b})]})}W.displayName="Dialog";const te={sm:400,md:600,lg:800,xl:1e3};function B({open:o,onClose:r,children:t,size:i="md",backdrop:c=!0,sx:d}){return e.jsx(q,{open:o,onClose:r,hideBackdrop:!c,children:e.jsx(a,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:te[i],maxWidth:"90vw",maxHeight:"90vh",overflow:"auto",bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px",boxShadow:24,p:3,...typeof d=="object"&&!Array.isArray(d)?d:{}},children:t})})}B.displayName="Modal";function O({open:o,onClose:r,anchor:t="right",size:i=360,resizable:c=!1,persistent:d=!1,children:l,title:s,sx:p}){const n=t==="left"||t==="right",[f,g]=u.useState(typeof i=="number"?i:360),m=u.useRef(!1),b=u.useRef(0),z=u.useRef(0),y=u.useCallback(S=>{m.current=!0,b.current=n?S.clientX:S.clientY,z.current=f,S.preventDefault()},[n,f]);u.useEffect(()=>{if(!c)return;const S=x=>{if(!m.current)return;const v=n?t==="right"?b.current-x.clientX:x.clientX-b.current:b.current-x.clientY;g(Math.max(200,z.current+v))},C=()=>{m.current=!1};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",C),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C)}},[c,n,t]);const I=n?{width:c?f:i}:{height:c?f:i};return e.jsxs(E,{open:o,onClose:r,anchor:t,variant:d?"persistent":"temporary",slotProps:{paper:{sx:{...I,bgcolor:"var(--ov-bg-surface)",borderColor:"var(--ov-border-default)",...typeof p=="object"&&!Array.isArray(p)?p:{}}}},children:[c&&e.jsx(a,{onMouseDown:y,sx:{position:"absolute",...n?{top:0,[t==="right"?"left":"right"]:0,width:4,height:"100%",cursor:"col-resize"}:{left:0,top:0,height:4,width:"100%",cursor:"row-resize"},zIndex:1,"&:hover":{bgcolor:"var(--ov-accent)"},transition:"background-color 150ms"}}),s&&e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsx(h,{variant:"subtitle1",sx:{fontWeight:600,color:"var(--ov-fg-base)"},children:s}),e.jsx(k,{size:"small",onClick:r,"aria-label":"Close",children:e.jsx(D,{fontSize:"small"})})]}),e.jsx(a,{sx:{flex:1,overflow:"auto",p:s?2:0},children:l})]})}O.displayName="Drawer";const se={top:{anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"}},bottom:{anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},left:{anchorOrigin:{vertical:"center",horizontal:"left"},transformOrigin:{vertical:"center",horizontal:"right"}},right:{anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"}}};function L({open:o,onClose:r,anchorEl:t,children:i,width:c,placement:d="bottom",sx:l}){const s=se[d];return e.jsx(G,{open:o,onClose:r,anchorEl:t,anchorOrigin:s.anchorOrigin,transformOrigin:s.transformOrigin,slotProps:{paper:{sx:{width:c,mt:d==="bottom"?.5:void 0,mb:d==="top"?.5:void 0,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",...typeof l=="object"&&!Array.isArray(l)?l:{}}}},children:i})}L.displayName="Popover";const R=u.createContext(null);function ne(o,r){switch(r.type){case"ADD":return o.some(t=>t.message===r.toast.message)?o:[...o,r.toast];case"DISMISS":return o.filter(t=>t.id!==r.id);case"DISMISS_ALL":return[];default:return o}}const ie={"top-right":{vertical:"top",horizontal:"right"},"top-left":{vertical:"top",horizontal:"left"},"bottom-right":{vertical:"bottom",horizontal:"right"},"bottom-left":{vertical:"bottom",horizontal:"left"}};function F({children:o,maxVisible:r=3,position:t="bottom-left"}){const[i,c]=u.useReducer(ne,[]),d=u.useRef(new Map);u.useEffect(()=>{for(const n of i){if(d.current.has(n.id))continue;const f=n.duration??5e3,g=setTimeout(()=>{c({type:"DISMISS",id:n.id}),d.current.delete(n.id)},f);d.current.set(n.id,g)}for(const[n,f]of d.current)i.some(g=>g.id===n)||(clearTimeout(f),d.current.delete(n))},[i]),u.useEffect(()=>()=>{d.current.forEach(n=>clearTimeout(n))},[]);const l=ie[t],s=i.slice(-r),p={success:"success",info:"info",warning:"warning",error:"error",danger:"error",primary:"info",secondary:"info",neutral:"info",accent:"info",muted:"info"};return e.jsxs(R.Provider,{value:{dispatch:c},children:[o,e.jsx(V,{open:s.length>0,anchorOrigin:l,children:e.jsx(a,{sx:{display:"flex",flexDirection:"column",gap:1},children:s.map(n=>{const f=n.color?P.toMuiColor(n.color):"info",g=p[f]??"info";return e.jsx(Z,{severity:g,variant:"filled",action:e.jsxs(e.Fragment,{children:[n.action,e.jsx(k,{size:"small",color:"inherit",onClick:()=>c({type:"DISMISS",id:n.id}),children:e.jsx(D,{fontSize:"small"})})]}),sx:{minWidth:280,boxShadow:6},children:n.message},n.id)})})})]})}F.displayName="ToastProvider";let ae=0;function le(){const o=u.useContext(R);if(!o)throw new Error("useToast must be used within a ToastProvider");const{dispatch:r}=o,t=u.useCallback(l=>{r({type:"ADD",toast:{id:`toast-${ae++}`,message:l.message,color:l.color,duration:l.duration,action:l.action,timestamp:Date.now()}})},[r]),i=u.useMemo(()=>{const l=(s=>t(s));return l.success=s=>t({message:s,color:"success"}),l.error=s=>t({message:s,color:"error"}),l.warning=s=>t({message:s,color:"warning"}),l.info=s=>t({message:s,color:"info"}),l},[t]),c=u.useCallback(l=>r({type:"DISMISS",id:l}),[r]),d=u.useCallback(()=>r({type:"DISMISS_ALL"}),[r]);return{toast:i,dismiss:c,dismissAll:d}}function ce(o){const t=new Date().getTime()-o.getTime(),i=Math.floor(t/6e4);if(i<1)return"Just now";if(i<60)return`${i}m ago`;const c=Math.floor(i/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}function N({open:o,onClose:r,notifications:t,onDismiss:i,onMarkRead:c,onClearAll:d,width:l=360,sx:s}){const p=t.filter(f=>!f.read),n=t.filter(f=>f.read);return e.jsxs(E,{anchor:"right",open:o,onClose:r,slotProps:{paper:{sx:{width:l,bgcolor:"var(--ov-bg-surface)",borderLeft:"1px solid var(--ov-border-default)",...typeof s=="object"&&!Array.isArray(s)?s:{}}}},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(w.LuBell,{size:16}),e.jsx(h,{sx:{fontWeight:600,fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)"},children:"Notifications"}),p.length>0&&e.jsx(a,{sx:{px:.75,py:.125,borderRadius:999,bgcolor:"var(--ov-accent-subtle)",color:"var(--ov-accent-fg)",fontSize:"var(--ov-text-xs)",fontWeight:600},children:p.length})]}),e.jsxs(a,{sx:{display:"flex",gap:.5},children:[d&&t.length>0&&e.jsx(k,{size:"small",onClick:d,sx:{color:"var(--ov-fg-muted)"},children:e.jsx(w.LuCheck,{size:14})}),e.jsx(k,{size:"small",onClick:r,sx:{color:"var(--ov-fg-muted)"},children:e.jsx(w.LuX,{size:14})})]})]}),e.jsxs(a,{sx:{flex:1,overflow:"auto"},children:[t.length===0&&e.jsx(a,{sx:{p:4,textAlign:"center"},children:e.jsx(h,{sx:{color:"var(--ov-fg-faint)",fontSize:"var(--ov-text-sm)"},children:"No notifications"})}),p.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Unread"}),p.map(f=>e.jsx(A,{item:f,onDismiss:i,onMarkRead:c},f.id))]}),n.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Earlier"}),n.map(f=>e.jsx(A,{item:f,onDismiss:i,onMarkRead:c},f.id))]})]})]})}function A({item:o,onDismiss:r,onMarkRead:t}){return e.jsxs(a,{sx:{px:2,py:1.5,display:"flex",gap:1.5,"&:hover":{bgcolor:"var(--ov-state-hover)"},borderBottom:"1px solid var(--ov-border-muted)",...!o.read&&{bgcolor:"var(--ov-accent-subtle)",opacity:1}},onClick:()=>t?.(o.id),children:[e.jsx(a,{sx:{pt:.25,color:o.color?P.toCssColor(o.color):"var(--ov-fg-muted)",flexShrink:0},children:o.icon??e.jsx(w.LuBell,{size:14})}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"baseline",mb:.25},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",fontWeight:500,color:"var(--ov-fg-base)"},children:o.title}),e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",whiteSpace:"nowrap",ml:1},children:ce(o.timestamp)})]}),o.message&&e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",lineHeight:1.4},children:o.message}),e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mt:.5},children:[o.action&&e.jsx(h,{onClick:i=>{i.stopPropagation(),o.action.onClick()},sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-accent-fg)",cursor:"pointer","&:hover":{textDecoration:"underline"}},children:o.action.label}),r&&e.jsx(k,{size:"small",onClick:i=>{i.stopPropagation(),r(o.id)},sx:{p:"2px",color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:e.jsx(w.LuX,{size:12})})]})]})]})}N.displayName="NotificationCenter";function H({open:o,onClose:r,title:t="Error",message:i,file:c,line:d,stack:l,actions:s,sx:p}){return o?e.jsx(a,{sx:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",...typeof p=="object"&&!Array.isArray(p)?p:{}},children:e.jsxs(a,{sx:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-danger-default)",borderRadius:"8px",maxWidth:560,width:"90%",maxHeight:"80vh",overflow:"auto",boxShadow:"0 8px 32px rgba(0,0,0,0.3)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2.5,py:1.5,borderBottom:"1px solid var(--ov-border-default)",bgcolor:"var(--ov-danger-default)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:1,color:"#fff"},children:[e.jsx(w.LuTriangleAlert,{size:16}),e.jsx(h,{sx:{fontWeight:600,fontSize:"var(--ov-text-sm)"},children:t})]}),e.jsx(k,{size:"small",onClick:r,sx:{color:"#fff"},children:e.jsx(w.LuX,{size:16})})]}),e.jsxs(a,{sx:{px:2.5,py:2},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)",mb:1.5,lineHeight:1.5},children:i}),c&&e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:.5,mb:1.5,fontFamily:"var(--ov-font-mono)",fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:[e.jsx("span",{children:c}),d!==void 0&&e.jsxs("span",{children:[":",d]})]}),l&&e.jsx(a,{component:"pre",sx:{bgcolor:"var(--ov-bg-surface-inset)",border:"1px solid var(--ov-border-muted)",borderRadius:"4px",p:1.5,fontSize:"var(--ov-text-xs)",fontFamily:"var(--ov-font-mono)",color:"var(--ov-fg-muted)",overflow:"auto",maxHeight:200,whiteSpace:"pre-wrap",wordBreak:"break-all",m:0},children:l})]}),s&&s.length>0&&e.jsxs(a,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:2.5,py:1.5,borderTop:"1px solid var(--ov-border-default)"},children:[s.map(n=>e.jsx(T,{size:"small",variant:"outlined",onClick:n.onClick,sx:{textTransform:"none",fontSize:"var(--ov-text-sm)"},children:n.label},n.label)),e.jsx(T,{size:"small",variant:"contained",onClick:r,sx:{textTransform:"none",fontSize:"var(--ov-text-sm)"},children:"Dismiss"})]})]})}):null}H.displayName="ErrorOverlay";function X({open:o,onClose:r,onSearch:t,placeholder:i="Search commands, files, settings...",recentItems:c,width:d=560,sx:l}){const[s,p]=u.useState(""),[n,f]=u.useState([]),[g,m]=u.useState(0),b=u.useRef(null);u.useEffect(()=>{o||(p(""),f([]),m(0))},[o]),u.useEffect(()=>{if(!s.trim()){f([]),m(0);return}let x=!1;const v=t(s);return v instanceof Promise?v.then(j=>{x||(f(j),m(0))}):(f(v),m(0)),()=>{x=!0}},[s,t]);const z=s.trim()?n:c??[],y=new Map;for(const x of z){const v=x.section??"";y.has(v)||y.set(v,[]),y.get(v).push(x)}const I=z,S=u.useCallback(x=>{if(x.key==="ArrowDown")x.preventDefault(),m(v=>Math.min(v+1,I.length-1));else if(x.key==="ArrowUp")x.preventDefault(),m(v=>Math.max(v-1,0));else if(x.key==="Enter"){x.preventDefault();const v=I[g];v&&(v.onSelect(),r())}else x.key==="Escape"&&r()},[I,g,r]);let C=-1;return e.jsx(q,{open:o,onClose:r,slotProps:{backdrop:{sx:{bgcolor:"rgba(0,0,0,0.4)",backdropFilter:"blur(2px)"}}},children:e.jsxs(a,{sx:{position:"absolute",top:"20%",left:"50%",transform:"translateX(-50%)",width:d,maxHeight:"60vh",bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px",boxShadow:"0 16px 48px rgba(0,0,0,0.3)",overflow:"hidden",display:"flex",flexDirection:"column",...typeof l=="object"&&!Array.isArray(l)?l:{}},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)",gap:1},children:[e.jsx(re,{sx:{color:"var(--ov-fg-muted)",fontSize:20}}),e.jsx(ee,{ref:b,autoFocus:!0,value:s,onChange:x=>p(x.target.value),onKeyDown:S,placeholder:i,fullWidth:!0,sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)","& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}})]}),e.jsxs(a,{sx:{overflow:"auto",maxHeight:400},children:[z.length===0&&s.trim()&&e.jsx(a,{sx:{p:3,textAlign:"center"},children:e.jsxs(h,{sx:{color:"var(--ov-fg-faint)",fontSize:"var(--ov-text-sm)"},children:["No results for “",s,"”"]})}),Array.from(y.entries()).map(([x,v])=>e.jsxs(a,{children:[x&&e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:x}),v.map(j=>{C++;const $=C===g,U=C;return e.jsxs(a,{onClick:()=>{j.onSelect(),r()},onMouseEnter:()=>m(U),sx:{display:"flex",alignItems:"center",gap:1.5,px:2,py:1,cursor:"pointer",bgcolor:$?"var(--ov-state-hover)":"transparent","&:hover":{bgcolor:"var(--ov-state-hover)"}},children:[j.icon&&e.jsx(a,{sx:{color:"var(--ov-fg-muted)",flexShrink:0,display:"flex"},children:j.icon}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)"},children:j.label}),j.description&&e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j.description})]})]},j.id)})]},x))]}),e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:2,px:2,py:1,borderTop:"1px solid var(--ov-border-default)",fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)"},children:[e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"↑↓"})," navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"↵"})," select"]}),e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"esc"})," close"]})]})]})})}X.displayName="Spotlight";exports.Tooltip=Q.Tooltip;exports.Dialog=W;exports.Drawer=O;exports.ErrorOverlay=H;exports.Modal=B;exports.NotificationCenter=N;exports.Popover=L;exports.Spotlight=X;exports.ToastProvider=F;exports.useToast=le;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),_=require("@mui/material/Dialog"),K=require("@mui/material/DialogTitle"),Y=require("@mui/material/DialogContent"),J=require("@mui/material/DialogActions"),k=require("@mui/material/IconButton"),D=require("@mui/icons-material/Close"),a=require("@mui/material/Box"),h=require("@mui/material/Typography"),M=require("./Button-Dmu1cikC.cjs"),q=require("@mui/material/Modal"),u=require("react"),E=require("@mui/material/Drawer"),Q=require("./Tooltip-oUFp4gNV.cjs"),G=require("@mui/material/Popover"),V=require("@mui/material/Snackbar"),Z=require("@mui/material/Alert"),P=require("./types.cjs"),w=require("react-icons/lu"),T=require("@mui/material/Button"),ee=require("@mui/material/InputBase"),re=require("@mui/icons-material/Search"),oe={sm:"xs",md:"sm",lg:"md",xl:"lg"};function W({open:o,onClose:r,title:t,icon:i,size:c="md",variant:d="default",actions:l,disableBackdropClose:s=!1,children:p,sx:n}){const f=c==="fullscreen",g=(z,y)=>{y==="backdropClick"&&s||r()},b=l||(d==="confirm"?e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{emphasis:"ghost",color:"neutral",size:"sm",onClick:r,children:"Cancel"}),e.jsx(M.Button,{emphasis:"solid",color:"primary",size:"sm",onClick:r,children:"Confirm"})]}):d==="danger"?e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{emphasis:"ghost",color:"neutral",size:"sm",onClick:r,children:"Cancel"}),e.jsx(M.Button,{emphasis:"solid",color:"danger",size:"sm",onClick:r,children:"Delete"})]}):null);return e.jsxs(_,{open:o,onClose:g,fullScreen:f,maxWidth:f?!1:oe[c],fullWidth:!0,sx:n,children:[t&&e.jsxs(K,{sx:{display:"flex",alignItems:"center",gap:1,pr:6},children:[i&&e.jsx(a,{sx:{display:"flex",color:"var(--ov-fg-muted)"},children:i}),e.jsx(h,{variant:"h6",component:"span",sx:{fontWeight:600},children:t}),e.jsx(k,{size:"small",onClick:r,sx:{position:"absolute",right:8,top:8,color:"var(--ov-fg-faint)"},"aria-label":"Close",children:e.jsx(D,{fontSize:"small"})})]}),e.jsx(Y,{children:p}),b&&e.jsx(J,{sx:{px:3,pb:2},children:b})]})}W.displayName="Dialog";const te={sm:400,md:600,lg:800,xl:1e3};function B({open:o,onClose:r,children:t,size:i="md",backdrop:c=!0,sx:d}){return e.jsx(q,{open:o,onClose:r,hideBackdrop:!c,children:e.jsx(a,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:te[i],maxWidth:"90vw",maxHeight:"90vh",overflow:"auto",bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px",boxShadow:24,p:3,...typeof d=="object"&&!Array.isArray(d)?d:{}},children:t})})}B.displayName="Modal";function O({open:o,onClose:r,anchor:t="right",size:i=360,resizable:c=!1,persistent:d=!1,children:l,title:s,sx:p}){const n=t==="left"||t==="right",[f,g]=u.useState(typeof i=="number"?i:360),m=u.useRef(!1),b=u.useRef(0),z=u.useRef(0),y=u.useCallback(S=>{m.current=!0,b.current=n?S.clientX:S.clientY,z.current=f,S.preventDefault()},[n,f]);u.useEffect(()=>{if(!c)return;const S=x=>{if(!m.current)return;const v=n?t==="right"?b.current-x.clientX:x.clientX-b.current:b.current-x.clientY;g(Math.max(200,z.current+v))},C=()=>{m.current=!1};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",C),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C)}},[c,n,t]);const I=n?{width:c?f:i}:{height:c?f:i};return e.jsxs(E,{open:o,onClose:r,anchor:t,variant:d?"persistent":"temporary",slotProps:{paper:{sx:{...I,bgcolor:"var(--ov-bg-surface)",borderColor:"var(--ov-border-default)",...typeof p=="object"&&!Array.isArray(p)?p:{}}}},children:[c&&e.jsx(a,{onMouseDown:y,sx:{position:"absolute",...n?{top:0,[t==="right"?"left":"right"]:0,width:4,height:"100%",cursor:"col-resize"}:{left:0,top:0,height:4,width:"100%",cursor:"row-resize"},zIndex:1,"&:hover":{bgcolor:"var(--ov-accent)"},transition:"background-color 150ms"}}),s&&e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsx(h,{variant:"subtitle1",sx:{fontWeight:600,color:"var(--ov-fg-base)"},children:s}),e.jsx(k,{size:"small",onClick:r,"aria-label":"Close",children:e.jsx(D,{fontSize:"small"})})]}),e.jsx(a,{sx:{flex:1,overflow:"auto",p:s?2:0},children:l})]})}O.displayName="Drawer";const se={top:{anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"}},bottom:{anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},left:{anchorOrigin:{vertical:"center",horizontal:"left"},transformOrigin:{vertical:"center",horizontal:"right"}},right:{anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"}}};function L({open:o,onClose:r,anchorEl:t,children:i,width:c,placement:d="bottom",sx:l}){const s=se[d];return e.jsx(G,{open:o,onClose:r,anchorEl:t,anchorOrigin:s.anchorOrigin,transformOrigin:s.transformOrigin,slotProps:{paper:{sx:{width:c,mt:d==="bottom"?.5:void 0,mb:d==="top"?.5:void 0,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",...typeof l=="object"&&!Array.isArray(l)?l:{}}}},children:i})}L.displayName="Popover";const R=u.createContext(null);function ne(o,r){switch(r.type){case"ADD":return o.some(t=>t.message===r.toast.message)?o:[...o,r.toast];case"DISMISS":return o.filter(t=>t.id!==r.id);case"DISMISS_ALL":return[];default:return o}}const ie={"top-right":{vertical:"top",horizontal:"right"},"top-left":{vertical:"top",horizontal:"left"},"bottom-right":{vertical:"bottom",horizontal:"right"},"bottom-left":{vertical:"bottom",horizontal:"left"}};function F({children:o,maxVisible:r=3,position:t="bottom-left"}){const[i,c]=u.useReducer(ne,[]),d=u.useRef(new Map);u.useEffect(()=>{for(const n of i){if(d.current.has(n.id))continue;const f=n.duration??5e3,g=setTimeout(()=>{c({type:"DISMISS",id:n.id}),d.current.delete(n.id)},f);d.current.set(n.id,g)}for(const[n,f]of d.current)i.some(g=>g.id===n)||(clearTimeout(f),d.current.delete(n))},[i]),u.useEffect(()=>()=>{d.current.forEach(n=>clearTimeout(n))},[]);const l=ie[t],s=i.slice(-r),p={success:"success",info:"info",warning:"warning",error:"error",danger:"error",primary:"info",secondary:"info",neutral:"info",accent:"info",muted:"info"};return e.jsxs(R.Provider,{value:{dispatch:c},children:[o,e.jsx(V,{open:s.length>0,anchorOrigin:l,children:e.jsx(a,{sx:{display:"flex",flexDirection:"column",gap:1},children:s.map(n=>{const f=n.color?P.toMuiColor(n.color):"info",g=p[f]??"info";return e.jsx(Z,{severity:g,variant:"filled",action:e.jsxs(e.Fragment,{children:[n.action,e.jsx(k,{size:"small",color:"inherit",onClick:()=>c({type:"DISMISS",id:n.id}),children:e.jsx(D,{fontSize:"small"})})]}),sx:{minWidth:280,boxShadow:6},children:n.message},n.id)})})})]})}F.displayName="ToastProvider";let ae=0;function le(){const o=u.useContext(R);if(!o)throw new Error("useToast must be used within a ToastProvider");const{dispatch:r}=o,t=u.useCallback(l=>{r({type:"ADD",toast:{id:`toast-${ae++}`,message:l.message,color:l.color,duration:l.duration,action:l.action,timestamp:Date.now()}})},[r]),i=u.useMemo(()=>{const l=(s=>t(s));return l.success=s=>t({message:s,color:"success"}),l.error=s=>t({message:s,color:"error"}),l.warning=s=>t({message:s,color:"warning"}),l.info=s=>t({message:s,color:"info"}),l},[t]),c=u.useCallback(l=>r({type:"DISMISS",id:l}),[r]),d=u.useCallback(()=>r({type:"DISMISS_ALL"}),[r]);return{toast:i,dismiss:c,dismissAll:d}}function ce(o){const t=new Date().getTime()-o.getTime(),i=Math.floor(t/6e4);if(i<1)return"Just now";if(i<60)return`${i}m ago`;const c=Math.floor(i/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}function N({open:o,onClose:r,notifications:t,onDismiss:i,onMarkRead:c,onClearAll:d,width:l=360,sx:s}){const p=t.filter(f=>!f.read),n=t.filter(f=>f.read);return e.jsxs(E,{anchor:"right",open:o,onClose:r,slotProps:{paper:{sx:{width:l,bgcolor:"var(--ov-bg-surface)",borderLeft:"1px solid var(--ov-border-default)",...typeof s=="object"&&!Array.isArray(s)?s:{}}}},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(w.LuBell,{size:16}),e.jsx(h,{sx:{fontWeight:600,fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)"},children:"Notifications"}),p.length>0&&e.jsx(a,{sx:{px:.75,py:.125,borderRadius:999,bgcolor:"var(--ov-accent-subtle)",color:"var(--ov-accent-fg)",fontSize:"var(--ov-text-xs)",fontWeight:600},children:p.length})]}),e.jsxs(a,{sx:{display:"flex",gap:.5},children:[d&&t.length>0&&e.jsx(k,{size:"small",onClick:d,sx:{color:"var(--ov-fg-muted)"},children:e.jsx(w.LuCheck,{size:14})}),e.jsx(k,{size:"small",onClick:r,sx:{color:"var(--ov-fg-muted)"},children:e.jsx(w.LuX,{size:14})})]})]}),e.jsxs(a,{sx:{flex:1,overflow:"auto"},children:[t.length===0&&e.jsx(a,{sx:{p:4,textAlign:"center"},children:e.jsx(h,{sx:{color:"var(--ov-fg-faint)",fontSize:"var(--ov-text-sm)"},children:"No notifications"})}),p.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Unread"}),p.map(f=>e.jsx(A,{item:f,onDismiss:i,onMarkRead:c},f.id))]}),n.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Earlier"}),n.map(f=>e.jsx(A,{item:f,onDismiss:i,onMarkRead:c},f.id))]})]})]})}function A({item:o,onDismiss:r,onMarkRead:t}){return e.jsxs(a,{sx:{px:2,py:1.5,display:"flex",gap:1.5,"&:hover":{bgcolor:"var(--ov-state-hover)"},borderBottom:"1px solid var(--ov-border-muted)",...!o.read&&{bgcolor:"var(--ov-accent-subtle)",opacity:1}},onClick:()=>t?.(o.id),children:[e.jsx(a,{sx:{pt:.25,color:o.color?P.toCssColor(o.color):"var(--ov-fg-muted)",flexShrink:0},children:o.icon??e.jsx(w.LuBell,{size:14})}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"baseline",mb:.25},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",fontWeight:500,color:"var(--ov-fg-base)"},children:o.title}),e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)",whiteSpace:"nowrap",ml:1},children:ce(o.timestamp)})]}),o.message&&e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",lineHeight:1.4},children:o.message}),e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mt:.5},children:[o.action&&e.jsx(h,{onClick:i=>{i.stopPropagation(),o.action.onClick()},sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-accent-fg)",cursor:"pointer","&:hover":{textDecoration:"underline"}},children:o.action.label}),r&&e.jsx(k,{size:"small",onClick:i=>{i.stopPropagation(),r(o.id)},sx:{p:"2px",color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:e.jsx(w.LuX,{size:12})})]})]})]})}N.displayName="NotificationCenter";function H({open:o,onClose:r,title:t="Error",message:i,file:c,line:d,stack:l,actions:s,sx:p}){return o?e.jsx(a,{sx:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",...typeof p=="object"&&!Array.isArray(p)?p:{}},children:e.jsxs(a,{sx:{bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-danger-default)",borderRadius:"8px",maxWidth:560,width:"90%",maxHeight:"80vh",overflow:"auto",boxShadow:"0 8px 32px rgba(0,0,0,0.3)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2.5,py:1.5,borderBottom:"1px solid var(--ov-border-default)",bgcolor:"var(--ov-danger-default)"},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:1,color:"#fff"},children:[e.jsx(w.LuTriangleAlert,{size:16}),e.jsx(h,{sx:{fontWeight:600,fontSize:"var(--ov-text-sm)"},children:t})]}),e.jsx(k,{size:"small",onClick:r,sx:{color:"#fff"},children:e.jsx(w.LuX,{size:16})})]}),e.jsxs(a,{sx:{px:2.5,py:2},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)",mb:1.5,lineHeight:1.5},children:i}),c&&e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:.5,mb:1.5,fontFamily:"var(--ov-font-mono)",fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:[e.jsx("span",{children:c}),d!==void 0&&e.jsxs("span",{children:[":",d]})]}),l&&e.jsx(a,{component:"pre",sx:{bgcolor:"var(--ov-bg-surface-inset)",border:"1px solid var(--ov-border-muted)",borderRadius:"4px",p:1.5,fontSize:"var(--ov-text-xs)",fontFamily:"var(--ov-font-mono)",color:"var(--ov-fg-muted)",overflow:"auto",maxHeight:200,whiteSpace:"pre-wrap",wordBreak:"break-all",m:0},children:l})]}),s&&s.length>0&&e.jsxs(a,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:2.5,py:1.5,borderTop:"1px solid var(--ov-border-default)"},children:[s.map(n=>e.jsx(T,{size:"small",variant:"outlined",onClick:n.onClick,sx:{textTransform:"none",fontSize:"var(--ov-text-sm)"},children:n.label},n.label)),e.jsx(T,{size:"small",variant:"contained",onClick:r,sx:{textTransform:"none",fontSize:"var(--ov-text-sm)"},children:"Dismiss"})]})]})}):null}H.displayName="ErrorOverlay";function X({open:o,onClose:r,onSearch:t,placeholder:i="Search commands, files, settings...",recentItems:c,width:d=560,sx:l}){const[s,p]=u.useState(""),[n,f]=u.useState([]),[g,m]=u.useState(0),b=u.useRef(null);u.useEffect(()=>{o||(p(""),f([]),m(0))},[o]),u.useEffect(()=>{if(!s.trim()){f([]),m(0);return}let x=!1;const v=t(s);return v instanceof Promise?v.then(j=>{x||(f(j),m(0))}):(f(v),m(0)),()=>{x=!0}},[s,t]);const z=s.trim()?n:c??[],y=new Map;for(const x of z){const v=x.section??"";y.has(v)||y.set(v,[]),y.get(v).push(x)}const I=z,S=u.useCallback(x=>{if(x.key==="ArrowDown")x.preventDefault(),m(v=>Math.min(v+1,I.length-1));else if(x.key==="ArrowUp")x.preventDefault(),m(v=>Math.max(v-1,0));else if(x.key==="Enter"){x.preventDefault();const v=I[g];v&&(v.onSelect(),r())}else x.key==="Escape"&&r()},[I,g,r]);let C=-1;return e.jsx(q,{open:o,onClose:r,slotProps:{backdrop:{sx:{bgcolor:"rgba(0,0,0,0.4)",backdropFilter:"blur(2px)"}}},children:e.jsxs(a,{sx:{position:"absolute",top:"20%",left:"50%",transform:"translateX(-50%)",width:d,maxHeight:"60vh",bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderRadius:"8px",boxShadow:"0 16px 48px rgba(0,0,0,0.3)",overflow:"hidden",display:"flex",flexDirection:"column",...typeof l=="object"&&!Array.isArray(l)?l:{}},children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",px:2,py:1.5,borderBottom:"1px solid var(--ov-border-default)",gap:1},children:[e.jsx(re,{sx:{color:"var(--ov-fg-muted)",fontSize:20}}),e.jsx(ee,{ref:b,autoFocus:!0,value:s,onChange:x=>p(x.target.value),onKeyDown:S,placeholder:i,fullWidth:!0,sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)","& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}})]}),e.jsxs(a,{sx:{overflow:"auto",maxHeight:400},children:[z.length===0&&s.trim()&&e.jsx(a,{sx:{p:3,textAlign:"center"},children:e.jsxs(h,{sx:{color:"var(--ov-fg-faint)",fontSize:"var(--ov-text-sm)"},children:["No results for “",s,"”"]})}),Array.from(y.entries()).map(([x,v])=>e.jsxs(a,{children:[x&&e.jsx(h,{sx:{px:2,pt:1.5,pb:.5,fontSize:"var(--ov-text-xs)",fontWeight:600,color:"var(--ov-fg-faint)",textTransform:"uppercase",letterSpacing:"0.05em"},children:x}),v.map(j=>{C++;const $=C===g,U=C;return e.jsxs(a,{onClick:()=>{j.onSelect(),r()},onMouseEnter:()=>m(U),sx:{display:"flex",alignItems:"center",gap:1.5,px:2,py:1,cursor:"pointer",bgcolor:$?"var(--ov-state-hover)":"transparent","&:hover":{bgcolor:"var(--ov-state-hover)"}},children:[j.icon&&e.jsx(a,{sx:{color:"var(--ov-fg-muted)",flexShrink:0,display:"flex"},children:j.icon}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsx(h,{sx:{fontSize:"var(--ov-text-sm)",color:"var(--ov-fg-base)"},children:j.label}),j.description&&e.jsx(h,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j.description})]})]},j.id)})]},x))]}),e.jsxs(a,{sx:{display:"flex",alignItems:"center",gap:2,px:2,py:1,borderTop:"1px solid var(--ov-border-default)",fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-faint)"},children:[e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"↑↓"})," navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"↵"})," select"]}),e.jsxs("span",{children:[e.jsx("kbd",{style:{fontFamily:"var(--ov-font-mono)"},children:"esc"})," close"]})]})]})})}X.displayName="Spotlight";exports.Tooltip=Q.Tooltip;exports.Dialog=W;exports.Drawer=O;exports.ErrorOverlay=H;exports.Modal=B;exports.NotificationCenter=N;exports.Popover=L;exports.Spotlight=X;exports.ToastProvider=F;exports.useToast=le;
package/dist/overlays.js CHANGED
@@ -11,7 +11,7 @@ import { B as W } from "./Button-lr02bh_m.js";
11
11
  import L from "@mui/material/Modal";
12
12
  import { useState as P, useRef as C, useCallback as M, useEffect as A, useReducer as Y, createContext as q, useContext as J, useMemo as Q } from "react";
13
13
  import N from "@mui/material/Drawer";
14
- import { T as _e } from "./Tooltip-BEVuYuZ3.js";
14
+ import { T as _e } from "./Tooltip-CZMOcjX7.js";
15
15
  import G from "@mui/material/Popover";
16
16
  import V from "@mui/material/Snackbar";
17
17
  import Z from "@mui/material/Alert";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./Text-Mk6Uyg1w.cjs"),i=require("react/jsx-runtime"),v=require("@mui/material/Typography"),s=require("@mui/material/Box"),y=require("@mui/icons-material/Link"),h=require("./CodeBlock-CIyG0DbW.cjs"),m=require("@mui/material/Link"),x=require("./types.cjs"),b={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"};function l({children:n,level:o=2,id:e,copyLink:t=!1,sx:r}){const a=typeof o=="string"?parseInt(o.replace("h",""),10):o,c=b[a],u=()=>{if(e){const f=`${window.location.origin}${window.location.pathname}#${e}`;navigator.clipboard.writeText(f)}};return i.jsxs(v,{variant:c,id:e,sx:{color:"var(--ov-fg-base)",fontWeight:"var(--ov-weight-semibold)",display:"flex",alignItems:"center",gap:.5,"&:hover .ov-heading-anchor":{opacity:1},...typeof r=="object"&&!Array.isArray(r)?r:{}},children:[n,t&&e&&i.jsx(s,{component:"button",className:"ov-heading-anchor",onClick:u,sx:{opacity:0,transition:"opacity 150ms",background:"none",border:"none",cursor:"pointer",color:"var(--ov-fg-faint)",display:"inline-flex",p:0,"&:hover":{color:"var(--ov-fg-default)"}},children:i.jsx(y,{sx:{fontSize:"0.7em"}})})]})}l.displayName="Heading";function d({children:n,sx:o}){return i.jsx(s,{component:"code",sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.85em",backgroundColor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-default)",padding:"2px 6px",borderRadius:"3px",whiteSpace:"nowrap",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:n})}d.displayName="CodeInline";function p({children:n,href:o,color:e="primary",underline:t="hover",external:r=!1,onClick:a,sx:c}){return i.jsx(m,{href:o,color:x.toMuiColor(e),underline:t,onClick:a,...r?{target:"_blank",rel:"noopener noreferrer"}:{},sx:c,children:n})}p.displayName="Link";exports.Text=g.Text;exports.CodeBlock=h.CodeBlock;exports.CodeInline=d;exports.Heading=l;exports.Link=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./Text-Mk6Uyg1w.cjs"),i=require("react/jsx-runtime"),v=require("@mui/material/Typography"),s=require("@mui/material/Box"),y=require("@mui/icons-material/Link"),h=require("./CodeBlock-DTB_WsXQ.cjs"),m=require("@mui/material/Link"),x=require("./types.cjs"),b={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"};function l({children:n,level:o=2,id:e,copyLink:t=!1,sx:r}){const a=typeof o=="string"?parseInt(o.replace("h",""),10):o,c=b[a],u=()=>{if(e){const f=`${window.location.origin}${window.location.pathname}#${e}`;navigator.clipboard.writeText(f)}};return i.jsxs(v,{variant:c,id:e,sx:{color:"var(--ov-fg-base)",fontWeight:"var(--ov-weight-semibold)",display:"flex",alignItems:"center",gap:.5,"&:hover .ov-heading-anchor":{opacity:1},...typeof r=="object"&&!Array.isArray(r)?r:{}},children:[n,t&&e&&i.jsx(s,{component:"button",className:"ov-heading-anchor",onClick:u,sx:{opacity:0,transition:"opacity 150ms",background:"none",border:"none",cursor:"pointer",color:"var(--ov-fg-faint)",display:"inline-flex",p:0,"&:hover":{color:"var(--ov-fg-default)"}},children:i.jsx(y,{sx:{fontSize:"0.7em"}})})]})}l.displayName="Heading";function d({children:n,sx:o}){return i.jsx(s,{component:"code",sx:{fontFamily:"var(--ov-font-mono)",fontSize:"0.85em",backgroundColor:"var(--ov-bg-surface-inset)",color:"var(--ov-fg-default)",padding:"2px 6px",borderRadius:"3px",whiteSpace:"nowrap",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:n})}d.displayName="CodeInline";function p({children:n,href:o,color:e="primary",underline:t="hover",external:r=!1,onClick:a,sx:c}){return i.jsx(m,{href:o,color:x.toMuiColor(e),underline:t,onClick:a,...r?{target:"_blank",rel:"noopener noreferrer"}:{},sx:c,children:n})}p.displayName="Link";exports.Text=g.Text;exports.CodeBlock=h.CodeBlock;exports.CodeInline=d;exports.Heading=l;exports.Link=p;
@@ -3,7 +3,7 @@ import { jsxs as s, jsx as a } from "react/jsx-runtime";
3
3
  import m from "@mui/material/Typography";
4
4
  import c from "@mui/material/Box";
5
5
  import d from "@mui/icons-material/Link";
6
- import { C as S } from "./CodeBlock-B1iQO7zU.js";
6
+ import { C as S } from "./CodeBlock-DV6CPG00.js";
7
7
  import h from "@mui/material/Link";
8
8
  import { toMuiColor as v } from "./types.js";
9
9
  const g = {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Omniview",
3
3
  "license": "AGPL-3.0-only",
4
4
  "name": "@omniviewdev/ui",
5
- "version": "0.1.9",
5
+ "version": "0.1.10",
6
6
  "description": "Shared UI components, tokens, and theming for Omniview",
7
7
  "sideEffects": [
8
8
  "*.css"
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),C=require("react"),S=require("@mui/icons-material/ContentCopy"),j=require("@mui/icons-material/Check"),q=require("@mui/material/IconButton"),b=require("@mui/material/CircularProgress"),a=require("./types.cjs");function l({children:n,color:t="neutral",emphasis:c,size:o="sm",shape:r="rounded",loading:s=!1,disabled:i,onClick:x,title:y,sx:u,...h}){const f=a.toMuiColor(t),B=a.toMuiSize(o),d={xs:24,sm:32,md:40,lg:48,xl:56},p={xs:14,sm:18,md:22,lg:26,xl:30};return e.jsx(q,{color:f,size:B,disabled:i||s,onClick:x,title:y,sx:{borderRadius:a.toBorderRadius(r),width:d[o],height:d[o],fontSize:p[o],...typeof u=="object"&&!Array.isArray(u)?u:{}},...h,children:s?e.jsx(b,{size:p[o]-4,color:"inherit"}):n})}l.displayName="IconButton";function m({value:n,size:t="sm",label:c}){const[o,r]=C.useState(!1),s=C.useCallback(()=>{navigator.clipboard.writeText(n).then(()=>{r(!0),setTimeout(()=>r(!1),1500)})},[n]),i=t==="xs"?12:t==="sm"?14:t==="md"?16:18;return e.jsx(l,{size:t,color:o?"success":"neutral",onClick:s,"aria-label":c??(o?"Copied":"Copy to clipboard"),title:c??(o?"Copied!":"Copy"),children:o?e.jsx(j,{sx:{fontSize:i}}):e.jsx(S,{sx:{fontSize:i}})})}m.displayName="CopyButton";exports.CopyButton=m;exports.IconButton=l;
@@ -1,77 +0,0 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { useState as h, useCallback as x } from "react";
3
- import S from "@mui/icons-material/ContentCopy";
4
- import b from "@mui/icons-material/Check";
5
- import B from "@mui/material/IconButton";
6
- import I from "@mui/material/CircularProgress";
7
- import { toBorderRadius as M, toMuiColor as g, toMuiSize as k } from "./types.js";
8
- function l({
9
- children: i,
10
- color: t = "neutral",
11
- emphasis: c,
12
- size: o = "sm",
13
- shape: e = "rounded",
14
- loading: n = !1,
15
- disabled: s,
16
- onClick: u,
17
- title: d,
18
- sx: a,
19
- ...C
20
- }) {
21
- const f = g(t), y = k(o), m = {
22
- xs: 24,
23
- sm: 32,
24
- md: 40,
25
- lg: 48,
26
- xl: 56
27
- }, p = {
28
- xs: 14,
29
- sm: 18,
30
- md: 22,
31
- lg: 26,
32
- xl: 30
33
- };
34
- return /* @__PURE__ */ r(
35
- B,
36
- {
37
- color: f,
38
- size: y,
39
- disabled: s || n,
40
- onClick: u,
41
- title: d,
42
- sx: {
43
- borderRadius: M(e),
44
- width: m[o],
45
- height: m[o],
46
- fontSize: p[o],
47
- ...typeof a == "object" && !Array.isArray(a) ? a : {}
48
- },
49
- ...C,
50
- children: n ? /* @__PURE__ */ r(I, { size: p[o] - 4, color: "inherit" }) : i
51
- }
52
- );
53
- }
54
- l.displayName = "IconButton";
55
- function z({ value: i, size: t = "sm", label: c }) {
56
- const [o, e] = h(!1), n = x(() => {
57
- navigator.clipboard.writeText(i).then(() => {
58
- e(!0), setTimeout(() => e(!1), 1500);
59
- });
60
- }, [i]), s = t === "xs" ? 12 : t === "sm" ? 14 : t === "md" ? 16 : 18;
61
- return /* @__PURE__ */ r(
62
- l,
63
- {
64
- size: t,
65
- color: o ? "success" : "neutral",
66
- onClick: n,
67
- "aria-label": c ?? (o ? "Copied" : "Copy to clipboard"),
68
- title: c ?? (o ? "Copied!" : "Copy"),
69
- children: o ? /* @__PURE__ */ r(b, { sx: { fontSize: s } }) : /* @__PURE__ */ r(S, { sx: { fontSize: s } })
70
- }
71
- );
72
- }
73
- z.displayName = "CopyButton";
74
- export {
75
- z as C,
76
- l as I
77
- };
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),p=require("@mui/material/Tooltip"),s=require("@mui/material/Box");function n({title:t,content:l,variant:o="default",placement:c="top",delay:r,children:x}){const i=t??l??"",u=o==="code"?e.jsx(s,{sx:{fontFamily:"var(--ov-font-mono)",fontSize:"var(--ov-text-xs)",bgcolor:"var(--ov-bg-surface-inset)",px:1,py:.5,borderRadius:"3px"},children:i}):o==="rich"?e.jsx(s,{sx:{p:1,maxWidth:320},children:i}):t;return e.jsx(p,{title:u,placement:c,enterDelay:r,enterNextDelay:r,arrow:o==="default",children:x})}n.displayName="Tooltip";exports.Tooltip=n;