@omniviewdev/ui 0.1.10 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/AppTheme-BakZ7ezV.cjs +1 -0
  2. package/dist/AppTheme-wAxlNjgN.js +291 -0
  3. package/dist/Select-Dg7Xdulg.js +282 -0
  4. package/dist/Select-mxLKNk8-.cjs +1 -0
  5. package/dist/buttons/ActionMenu.d.ts +3 -1
  6. package/dist/buttons.cjs +1 -1
  7. package/dist/buttons.js +102 -101
  8. package/dist/charts.cjs +1 -1
  9. package/dist/charts.js +1 -1
  10. package/dist/editors/CodeEditor.d.ts +4 -1
  11. package/dist/editors/DiffViewer.d.ts +17 -1
  12. package/dist/editors/index.d.ts +1 -1
  13. package/dist/editors/themes.d.ts +13 -0
  14. package/dist/editors.cjs +26 -26
  15. package/dist/editors.js +4194 -4096
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.js +175 -163
  18. package/dist/inputs.cjs +1 -1
  19. package/dist/inputs.js +1 -1
  20. package/dist/navigation.cjs +1 -1
  21. package/dist/navigation.js +66 -57
  22. package/dist/theme/AppTheme.d.ts +11 -2
  23. package/dist/theme/customizations/dataDisplay.d.ts +11 -0
  24. package/dist/theme/customizations/feedback.d.ts +6 -0
  25. package/dist/theme/customizations/inputs.d.ts +7 -0
  26. package/dist/theme/customizations/navigation.d.ts +7 -0
  27. package/dist/theme/index.d.ts +10 -5
  28. package/dist/theme/registry/init.d.ts +1 -0
  29. package/dist/theme/registry/registry.d.ts +9 -0
  30. package/dist/theme/registry/types.d.ts +19 -0
  31. package/dist/theme/registry/variants/default/index.d.ts +2 -0
  32. package/dist/theme/registry/variants/solarized/index.d.ts +2 -0
  33. package/dist/theme/registry/variants/solarized/palettes.d.ts +147 -0
  34. package/dist/theme.cjs +1 -1
  35. package/dist/theme.js +1250 -1275
  36. package/dist/tokens.css +116 -0
  37. package/package.json +1 -1
  38. package/dist/Select-CnRBSc5w.cjs +0 -1
  39. package/dist/Select-DTUF31OP.js +0 -206
package/dist/buttons.js CHANGED
@@ -23,19 +23,19 @@ import F from "@mui/icons-material/Search";
23
23
  import { LuCaseSensitive as _, LuRegex as q, LuChevronUp as H, LuChevronDown as J } from "react-icons/lu";
24
24
  function P({
25
25
  onConfirm: n,
26
- confirmMessage: e = "Are you sure?",
26
+ confirmMessage: r = "Are you sure?",
27
27
  children: c,
28
- ...t
28
+ ...e
29
29
  }) {
30
- const [i, a] = k(!1), l = B(null);
30
+ const [s, i] = k(!1), a = B(null);
31
31
  return /* @__PURE__ */ f(z, { children: [
32
- /* @__PURE__ */ o(g, { component: "span", ref: l, sx: { display: "inline-flex" }, children: /* @__PURE__ */ o(b, { ...t, onClick: () => a(!0), children: c }) }),
32
+ /* @__PURE__ */ o(g, { component: "span", ref: a, sx: { display: "inline-flex" }, children: /* @__PURE__ */ o(b, { ...e, onClick: () => i(!0), children: c }) }),
33
33
  /* @__PURE__ */ f(
34
34
  G,
35
35
  {
36
- open: i,
37
- anchorEl: l.current,
38
- onClose: () => a(!1),
36
+ open: s,
37
+ anchorEl: a.current,
38
+ onClose: () => i(!1),
39
39
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
40
40
  transformOrigin: { vertical: "top", horizontal: "center" },
41
41
  slotProps: {
@@ -55,7 +55,7 @@ function P({
55
55
  {
56
56
  variant: "body2",
57
57
  sx: { color: "var(--ov-fg-default)", mb: 1.5 },
58
- children: e
58
+ children: r
59
59
  }
60
60
  ),
61
61
  /* @__PURE__ */ f(g, { sx: { display: "flex", gap: 1, justifyContent: "flex-end" }, children: [
@@ -65,7 +65,7 @@ function P({
65
65
  size: "xs",
66
66
  emphasis: "ghost",
67
67
  color: "neutral",
68
- onClick: () => a(!1),
68
+ onClick: () => i(!1),
69
69
  children: "Cancel"
70
70
  }
71
71
  ),
@@ -76,7 +76,7 @@ function P({
76
76
  emphasis: "solid",
77
77
  color: "danger",
78
78
  onClick: () => {
79
- a(!1), n();
79
+ i(!1), n();
80
80
  },
81
81
  children: "Confirm"
82
82
  }
@@ -90,27 +90,28 @@ function P({
90
90
  P.displayName = "ConfirmButton";
91
91
  function Q({
92
92
  items: n,
93
- trigger: e,
94
- size: c = "sm"
93
+ trigger: r,
94
+ size: c = "sm",
95
+ label: e = "Actions"
95
96
  }) {
96
- const [t, i] = k(!1), a = B(null), l = () => i(!1);
97
+ const [s, i] = k(!1), a = B(null), p = () => i(!1);
97
98
  return /* @__PURE__ */ f(z, { children: [
98
- /* @__PURE__ */ o("span", { ref: a, children: e ? /* @__PURE__ */ o("span", { onClick: () => i(!0), style: { cursor: "pointer" }, children: e }) : /* @__PURE__ */ o(
99
+ /* @__PURE__ */ o("span", { ref: a, children: r ? /* @__PURE__ */ o("span", { onClick: () => i(!0), style: { cursor: "pointer" }, children: r }) : /* @__PURE__ */ o(
99
100
  I,
100
101
  {
101
102
  size: c,
102
103
  color: "neutral",
103
104
  onClick: () => i(!0),
104
- "aria-label": "Actions",
105
+ "aria-label": e,
105
106
  children: /* @__PURE__ */ o(E, { fontSize: "inherit" })
106
107
  }
107
108
  ) }),
108
109
  /* @__PURE__ */ o(
109
110
  R,
110
111
  {
111
- open: t,
112
+ open: s,
112
113
  anchorEl: a.current,
113
- onClose: l,
114
+ onClose: p,
114
115
  anchorOrigin: { vertical: "bottom", horizontal: "right" },
115
116
  transformOrigin: { vertical: "top", horizontal: "right" },
116
117
  slotProps: {
@@ -122,26 +123,26 @@ function Q({
122
123
  }
123
124
  }
124
125
  },
125
- children: n.map((r) => [
126
+ children: n.map((t) => [
126
127
  /* @__PURE__ */ f(
127
128
  w,
128
129
  {
129
- disabled: r.disabled,
130
+ disabled: t.disabled,
130
131
  onClick: () => {
131
- l(), r.onClick();
132
+ p(), t.onClick();
132
133
  },
133
134
  sx: {
134
135
  fontSize: "var(--ov-text-sm)",
135
- color: r.color === "danger" || r.color === "error" ? "var(--ov-danger-default)" : "var(--ov-fg-default)"
136
+ color: t.color === "danger" || t.color === "error" ? "var(--ov-danger-default)" : "var(--ov-fg-default)"
136
137
  },
137
138
  children: [
138
- r.icon && /* @__PURE__ */ o(L, { sx: { color: "inherit", minWidth: 28 }, children: r.icon }),
139
- /* @__PURE__ */ o(N, { children: r.label })
139
+ t.icon && /* @__PURE__ */ o(L, { sx: { color: "inherit", minWidth: 28 }, children: t.icon }),
140
+ /* @__PURE__ */ o(N, { children: t.label })
140
141
  ]
141
142
  },
142
- r.key
143
+ t.key
143
144
  ),
144
- r.dividerAfter && /* @__PURE__ */ o(O, {}, `${r.key}-divider`)
145
+ t.dividerAfter && /* @__PURE__ */ o(O, {}, `${t.key}-divider`)
145
146
  ])
146
147
  }
147
148
  )
@@ -150,25 +151,25 @@ function Q({
150
151
  Q.displayName = "ActionMenu";
151
152
  function X({
152
153
  children: n,
153
- emphasis: e = "outline",
154
+ emphasis: r = "outline",
154
155
  size: c = "sm",
155
- color: t = "neutral",
156
- fullWidth: i,
157
- orientation: a = "horizontal",
158
- disabled: l,
159
- sx: r
156
+ color: e = "neutral",
157
+ fullWidth: s,
158
+ orientation: i = "horizontal",
159
+ disabled: a,
160
+ sx: p
160
161
  }) {
161
- const u = D(t), p = K(e), s = C(c);
162
+ const t = D(e), u = K(r), l = C(c);
162
163
  return /* @__PURE__ */ o(
163
164
  $,
164
165
  {
165
- color: u,
166
- variant: p,
167
- size: s,
168
- fullWidth: i,
169
- orientation: a,
170
- disabled: l,
171
- sx: r,
166
+ color: t,
167
+ variant: u,
168
+ size: l,
169
+ fullWidth: s,
170
+ orientation: i,
171
+ disabled: a,
172
+ sx: p,
172
173
  children: n
173
174
  }
174
175
  );
@@ -180,18 +181,18 @@ const Y = {
180
181
  };
181
182
  function Z({
182
183
  children: n,
183
- variant: e = "default",
184
+ variant: r = "default",
184
185
  dividers: c = !1,
185
- sx: t
186
+ sx: e
186
187
  }) {
187
- const i = Y[e];
188
+ const s = Y[r];
188
189
  return /* @__PURE__ */ o(
189
190
  g,
190
191
  {
191
192
  sx: {
192
193
  display: "flex",
193
194
  alignItems: "center",
194
- height: i,
195
+ height: s,
195
196
  gap: c ? 0 : 0.5,
196
197
  px: 0.5,
197
198
  bgcolor: "var(--ov-bg-surface)",
@@ -207,14 +208,14 @@ function Z({
207
208
  flexShrink: 0
208
209
  }
209
210
  },
210
- ...typeof t == "object" && !Array.isArray(t) ? t : {}
211
+ ...typeof e == "object" && !Array.isArray(e) ? e : {}
211
212
  },
212
213
  children: n
213
214
  }
214
215
  );
215
216
  }
216
217
  Z.displayName = "Toolbar";
217
- function oo({ children: n, sx: e }) {
218
+ function oo({ children: n, sx: r }) {
218
219
  return /* @__PURE__ */ o(
219
220
  g,
220
221
  {
@@ -222,7 +223,7 @@ function oo({ children: n, sx: e }) {
222
223
  display: "flex",
223
224
  alignItems: "center",
224
225
  gap: "2px",
225
- ...typeof e == "object" && !Array.isArray(e) ? e : {}
226
+ ...typeof r == "object" && !Array.isArray(r) ? r : {}
226
227
  },
227
228
  children: n
228
229
  }
@@ -231,66 +232,66 @@ function oo({ children: n, sx: e }) {
231
232
  oo.displayName = "ToolbarGroup";
232
233
  function ro({
233
234
  selected: n,
234
- onChange: e,
235
+ onChange: r,
235
236
  icon: c,
236
- label: t,
237
- size: i = "sm",
238
- color: a = "primary",
239
- disabled: l,
240
- sx: r
237
+ label: e,
238
+ size: s = "sm",
239
+ color: i = "primary",
240
+ disabled: a,
241
+ sx: p
241
242
  }) {
242
- const u = C(i), p = S(a), s = /* @__PURE__ */ o(
243
+ const t = C(s), u = S(i), l = /* @__PURE__ */ o(
243
244
  v,
244
245
  {
245
- size: u,
246
- disabled: l,
247
- onClick: () => e(!n),
246
+ size: t,
247
+ disabled: a,
248
+ onClick: () => r(!n),
248
249
  sx: {
249
250
  borderRadius: "4px",
250
- color: n ? p : "var(--ov-fg-muted)",
251
+ color: n ? u : "var(--ov-fg-muted)",
251
252
  bgcolor: n ? "var(--ov-state-hover)" : "transparent",
252
253
  "&:hover": {
253
254
  bgcolor: "var(--ov-state-hover)"
254
255
  },
255
- ...typeof r == "object" && !Array.isArray(r) ? r : {}
256
+ ...typeof p == "object" && !Array.isArray(p) ? p : {}
256
257
  },
257
258
  children: c
258
259
  }
259
260
  );
260
- return t ? /* @__PURE__ */ o(y, { title: t, children: s }) : s;
261
+ return e ? /* @__PURE__ */ o(y, { title: e, children: l }) : l;
261
262
  }
262
263
  ro.displayName = "ToggleButton";
263
264
  function eo({
264
265
  value: n,
265
- onChange: e,
266
+ onChange: r,
266
267
  options: c,
267
- exclusive: t = !0,
268
- size: i = "sm",
269
- color: a = "primary",
270
- sx: l
268
+ exclusive: e = !0,
269
+ size: s = "sm",
270
+ color: i = "primary",
271
+ sx: a
271
272
  }) {
272
- const r = C(i), u = S(a);
273
+ const p = C(s), t = S(i);
273
274
  return /* @__PURE__ */ o(
274
275
  U,
275
276
  {
276
277
  value: n,
277
- exclusive: t,
278
- onChange: (s, d) => {
279
- d !== null && e(d);
278
+ exclusive: e,
279
+ onChange: (l, d) => {
280
+ d !== null && r(d);
280
281
  },
281
- size: r,
282
+ size: p,
282
283
  sx: {
283
284
  "& .Mui-selected": {
284
- color: `${u} !important`,
285
+ color: `${t} !important`,
285
286
  bgcolor: "var(--ov-state-hover) !important"
286
287
  },
287
- ...typeof l == "object" && !Array.isArray(l) ? l : {}
288
+ ...typeof a == "object" && !Array.isArray(a) ? a : {}
288
289
  },
289
- children: c.map((s) => /* @__PURE__ */ f(
290
+ children: c.map((l) => /* @__PURE__ */ f(
290
291
  W,
291
292
  {
292
- value: s.key,
293
- disabled: s.disabled,
293
+ value: l.key,
294
+ disabled: l.disabled,
294
295
  sx: {
295
296
  fontSize: "var(--ov-text-sm)",
296
297
  textTransform: "none",
@@ -298,11 +299,11 @@ function eo({
298
299
  gap: 0.5
299
300
  },
300
301
  children: [
301
- s.icon,
302
- s.label
302
+ l.icon,
303
+ l.label
303
304
  ]
304
305
  },
305
- s.key
306
+ l.key
306
307
  ))
307
308
  }
308
309
  );
@@ -317,22 +318,22 @@ const to = {
317
318
  };
318
319
  function no({
319
320
  value: n,
320
- onChange: e,
321
+ onChange: r,
321
322
  placeholder: c = "Search...",
322
- regex: t,
323
- caseSensitive: i,
324
- onRegexChange: a,
325
- onCaseSensitiveChange: l,
326
- matchCount: r,
327
- currentMatch: u,
328
- onNext: p,
329
- onPrev: s,
323
+ regex: e,
324
+ caseSensitive: s,
325
+ onRegexChange: i,
326
+ onCaseSensitiveChange: a,
327
+ matchCount: p,
328
+ currentMatch: t,
329
+ onNext: u,
330
+ onPrev: l,
330
331
  size: d = "sm",
331
332
  sx: x
332
333
  }) {
333
334
  const A = to[d], h = d === "xs" ? 12 : 14, T = j((m) => {
334
- m.key === "Enter" && (m.shiftKey ? s?.() : p?.()), m.key === "Escape" && m.target.blur();
335
- }, [p, s]);
335
+ m.key === "Enter" && (m.shiftKey ? l?.() : u?.()), m.key === "Escape" && m.target.blur();
336
+ }, [u, l]);
336
337
  return /* @__PURE__ */ f(
337
338
  g,
338
339
  {
@@ -356,7 +357,7 @@ function no({
356
357
  V,
357
358
  {
358
359
  value: n,
359
- onChange: (m) => e(m.target.value),
360
+ onChange: (m) => r(m.target.value),
360
361
  onKeyDown: T,
361
362
  placeholder: c,
362
363
  sx: {
@@ -368,35 +369,35 @@ function no({
368
369
  }
369
370
  }
370
371
  ),
371
- l && /* @__PURE__ */ o(y, { title: "Match Case", children: /* @__PURE__ */ o(
372
+ a && /* @__PURE__ */ o(y, { title: "Match Case", children: /* @__PURE__ */ o(
372
373
  v,
373
374
  {
374
375
  size: "small",
375
- onClick: () => l(!i),
376
+ onClick: () => a(!s),
376
377
  sx: {
377
378
  borderRadius: "3px",
378
379
  p: "2px",
379
- color: i ? "var(--ov-accent-fg)" : "var(--ov-fg-faint)",
380
- bgcolor: i ? "var(--ov-accent-subtle)" : "transparent"
380
+ color: s ? "var(--ov-accent-fg)" : "var(--ov-fg-faint)",
381
+ bgcolor: s ? "var(--ov-accent-subtle)" : "transparent"
381
382
  },
382
383
  children: /* @__PURE__ */ o(_, { size: h })
383
384
  }
384
385
  ) }),
385
- a && /* @__PURE__ */ o(y, { title: "Use Regular Expression", children: /* @__PURE__ */ o(
386
+ i && /* @__PURE__ */ o(y, { title: "Use Regular Expression", children: /* @__PURE__ */ o(
386
387
  v,
387
388
  {
388
389
  size: "small",
389
- onClick: () => a(!t),
390
+ onClick: () => i(!e),
390
391
  sx: {
391
392
  borderRadius: "3px",
392
393
  p: "2px",
393
- color: t ? "var(--ov-accent-fg)" : "var(--ov-fg-faint)",
394
- bgcolor: t ? "var(--ov-accent-subtle)" : "transparent"
394
+ color: e ? "var(--ov-accent-fg)" : "var(--ov-fg-faint)",
395
+ bgcolor: e ? "var(--ov-accent-subtle)" : "transparent"
395
396
  },
396
397
  children: /* @__PURE__ */ o(q, { size: h })
397
398
  }
398
399
  ) }),
399
- r !== void 0 && /* @__PURE__ */ o(
400
+ p !== void 0 && /* @__PURE__ */ o(
400
401
  M,
401
402
  {
402
403
  sx: {
@@ -405,11 +406,11 @@ function no({
405
406
  whiteSpace: "nowrap",
406
407
  px: 0.5
407
408
  },
408
- children: r === 0 ? "No results" : `${(u ?? 0) + 1}/${r}`
409
+ children: p === 0 ? "No results" : `${(t ?? 0) + 1}/${p}`
409
410
  }
410
411
  ),
411
- s && /* @__PURE__ */ o(v, { size: "small", onClick: s, sx: { p: "2px" }, children: /* @__PURE__ */ o(H, { size: h }) }),
412
- p && /* @__PURE__ */ o(v, { size: "small", onClick: p, sx: { p: "2px" }, children: /* @__PURE__ */ o(J, { size: h }) })
412
+ l && /* @__PURE__ */ o(v, { size: "small", onClick: l, sx: { p: "2px" }, children: /* @__PURE__ */ o(H, { size: h }) }),
413
+ u && /* @__PURE__ */ o(v, { size: "small", onClick: u, sx: { p: "2px" }, children: /* @__PURE__ */ o(J, { size: h }) })
413
414
  ]
414
415
  }
415
416
  );
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-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;
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-mxLKNk8-.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
@@ -19,7 +19,7 @@ import { Gauge as Bt } from "@mui/x-charts/Gauge";
19
19
  import mt from "@mui/material/IconButton";
20
20
  import Nt from "@mui/material/MenuItem";
21
21
  import Ht from "@mui/material/Menu";
22
- import { S as Wt } from "./Select-DTUF31OP.js";
22
+ import { S as Wt } from "./Select-Dg7Xdulg.js";
23
23
  const vt = {
24
24
  primary: "--ov-accent",
25
25
  secondary: "--ov-fg-muted",
@@ -1,3 +1,4 @@
1
+ import { default as React } from 'react';
1
2
  import { SxProps, Theme } from '@mui/material/styles';
2
3
  export interface CodeEditorProps {
3
4
  value: string;
@@ -10,9 +11,11 @@ export interface CodeEditorProps {
10
11
  maxHeight?: number | string;
11
12
  theme?: string;
12
13
  onSave?: (value: string) => void;
14
+ /** Custom loading indicator shown while the editor initializes. */
15
+ loading?: React.ReactNode;
13
16
  sx?: SxProps<Theme>;
14
17
  }
15
- declare function CodeEditor({ value, onChange, language, readOnly, minimap, lineNumbers, wordWrap, maxHeight, theme, onSave, sx, }: CodeEditorProps): import("react/jsx-runtime").JSX.Element;
18
+ declare function CodeEditor({ value, onChange, language, readOnly, minimap, lineNumbers, wordWrap, maxHeight, theme, onSave, loading, sx, }: CodeEditorProps): import("react/jsx-runtime").JSX.Element;
16
19
  declare namespace CodeEditor {
17
20
  var displayName: string;
18
21
  }
@@ -1,13 +1,29 @@
1
+ import { default as React } from 'react';
1
2
  import { SxProps, Theme } from '@mui/material/styles';
3
+ import { DiffOnMount } from '@monaco-editor/react';
2
4
  export interface DiffViewerProps {
3
5
  original: string;
4
6
  modified: string;
5
7
  language?: string;
6
8
  layout?: 'sideBySide' | 'unified';
7
9
  readOnly?: boolean;
10
+ /** Height of the editor area. Defaults to 300. Pass '100%' to fill parent. */
11
+ height?: string | number;
12
+ /** Monaco theme name. Defaults to 'omniview-dark'. */
13
+ theme?: string;
14
+ /** Enable word wrapping. */
15
+ wordWrap?: boolean;
16
+ /** Show line numbers. Defaults to true. */
17
+ lineNumbers?: boolean;
18
+ /** Show minimap. Defaults to false. */
19
+ minimap?: boolean;
20
+ /** Custom loading indicator shown while the editor initializes. */
21
+ loading?: React.ReactNode;
22
+ /** Callback when the diff editor mounts. Exposes the editor instance. */
23
+ onMount?: DiffOnMount;
8
24
  sx?: SxProps<Theme>;
9
25
  }
10
- declare function DiffViewer({ original, modified, language, layout, readOnly, sx, }: DiffViewerProps): import("react/jsx-runtime").JSX.Element;
26
+ declare function DiffViewer({ original, modified, language, layout, readOnly, height, theme, wordWrap, lineNumbers, minimap, loading, onMount, sx, }: DiffViewerProps): import("react/jsx-runtime").JSX.Element;
11
27
  declare namespace DiffViewer {
12
28
  var displayName: string;
13
29
  }
@@ -8,4 +8,4 @@ export { default as CommandPalette } from './CommandPalette';
8
8
  export type { CommandPaletteProps, CommandItem } from './CommandPalette';
9
9
  export { default as MarkdownPreview } from './MarkdownPreview';
10
10
  export type { MarkdownPreviewProps } from './MarkdownPreview';
11
- export { registerOmniviewThemes, omniviewDark, omniviewLight } from './themes';
11
+ export { registerOmniviewThemes, resolveEditorTheme, omniviewDark, omniviewLight, solarizedDark, solarizedLight, MONACO_THEME_NAMES } from './themes';
@@ -1,4 +1,17 @@
1
1
  import { editor } from 'monaco-editor';
2
2
  export declare const omniviewDark: editor.IStandaloneThemeData;
3
3
  export declare const omniviewLight: editor.IStandaloneThemeData;
4
+ export declare const solarizedDark: editor.IStandaloneThemeData;
5
+ export declare const solarizedLight: editor.IStandaloneThemeData;
6
+ export declare const MONACO_THEME_NAMES: {
7
+ readonly omniviewDark: "omniview-dark";
8
+ readonly omniviewLight: "omniview-light";
9
+ readonly solarizedDark: "solarized-dark";
10
+ readonly solarizedLight: "solarized-light";
11
+ };
12
+ /**
13
+ * Resolve the Monaco editor theme name from app theme variant and color mode.
14
+ * Use in CodeEditor and DiffViewer to keep theme selection DRY.
15
+ */
16
+ export declare function resolveEditorTheme(variant: string, colorMode: string, explicit?: string): string;
4
17
  export declare function registerOmniviewThemes(monaco: typeof import('monaco-editor')): void;