@omniviewdev/ui 0.1.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 (257) hide show
  1. package/LICENSE +661 -0
  2. package/dist/Button-Dmu1cikC.cjs +1 -0
  3. package/dist/Button-lr02bh_m.js +51 -0
  4. package/dist/CodeBlock-B1iQO7zU.js +73 -0
  5. package/dist/CodeBlock-CIyG0DbW.cjs +2 -0
  6. package/dist/CopyButton-CACe3RCF.cjs +1 -0
  7. package/dist/CopyButton-DPBgL0K8.js +77 -0
  8. package/dist/ErrorState-CexYrMpy.js +188 -0
  9. package/dist/ErrorState-CnIR-1xa.cjs +1 -0
  10. package/dist/HotkeyHint-6SOi-MaU.js +37 -0
  11. package/dist/HotkeyHint-DrTOTrIM.cjs +1 -0
  12. package/dist/Icon-CKdIOrjZ.cjs +1 -0
  13. package/dist/Icon-CuO9W7cA.js +27 -0
  14. package/dist/SearchInput-CFBBNdI2.cjs +1 -0
  15. package/dist/SearchInput-D3AsCI5H.js +41 -0
  16. package/dist/Select-CnRBSc5w.cjs +1 -0
  17. package/dist/Select-DTUF31OP.js +206 -0
  18. package/dist/Skeleton-BUYyXUiC.js +32 -0
  19. package/dist/Skeleton-CfdQWLQM.cjs +1 -0
  20. package/dist/StatusDot-CYyJxjJK.cjs +1 -0
  21. package/dist/StatusDot-CncykBAY.js +68 -0
  22. package/dist/StatusPill-C1NaiCzd.js +29 -0
  23. package/dist/StatusPill-C7yn7dSA.cjs +1 -0
  24. package/dist/TabPanel-CkUSl6Bt.cjs +1 -0
  25. package/dist/TabPanel-DLHbgKpl.js +124 -0
  26. package/dist/Text-By4P3in5.js +71 -0
  27. package/dist/Text-Mk6Uyg1w.cjs +1 -0
  28. package/dist/Tooltip-44-P5KfQ.cjs +1 -0
  29. package/dist/Tooltip-BEVuYuZ3.js +41 -0
  30. package/dist/_commonjsHelpers-CvWRHxnb.js +26 -0
  31. package/dist/_commonjsHelpers-D3HyQheV.cjs +1 -0
  32. package/dist/buttons/ActionMenu.d.ts +21 -0
  33. package/dist/buttons/Button.d.ts +31 -0
  34. package/dist/buttons/ButtonGroup.d.ts +18 -0
  35. package/dist/buttons/ConfirmButton.d.ts +10 -0
  36. package/dist/buttons/CopyButton.d.ts +11 -0
  37. package/dist/buttons/IconButton.d.ts +21 -0
  38. package/dist/buttons/SearchBar.d.ts +22 -0
  39. package/dist/buttons/ToggleButton.d.ts +18 -0
  40. package/dist/buttons/ToggleGroup.d.ts +23 -0
  41. package/dist/buttons/Toolbar.d.ts +15 -0
  42. package/dist/buttons/ToolbarGroup.d.ts +11 -0
  43. package/dist/buttons/index.d.ts +22 -0
  44. package/dist/buttons.cjs +1 -0
  45. package/dist/buttons.js +430 -0
  46. package/dist/cells/BadgesCell.d.ts +19 -0
  47. package/dist/cells/ChipCell.d.ts +16 -0
  48. package/dist/cells/SelectBoxHeader.d.ts +11 -0
  49. package/dist/cells/SelectBoxRow.d.ts +11 -0
  50. package/dist/cells/TextCell.d.ts +25 -0
  51. package/dist/cells/index.d.ts +5 -0
  52. package/dist/cells.cjs +1 -0
  53. package/dist/cells.js +284 -0
  54. package/dist/charts/BarChart.d.ts +15 -0
  55. package/dist/charts/ChartContainer.d.ts +12 -0
  56. package/dist/charts/ChartLegend.d.ts +11 -0
  57. package/dist/charts/GaugeCard.d.ts +18 -0
  58. package/dist/charts/MetricsPanel.d.ts +61 -0
  59. package/dist/charts/PieChart.d.ts +13 -0
  60. package/dist/charts/ScatterChart.d.ts +25 -0
  61. package/dist/charts/Sparkline.d.ts +16 -0
  62. package/dist/charts/StackedAreaChart.d.ts +18 -0
  63. package/dist/charts/TimeSeriesChart.d.ts +43 -0
  64. package/dist/charts/formatters.d.ts +17 -0
  65. package/dist/charts/index.d.ts +21 -0
  66. package/dist/charts/palette.d.ts +7 -0
  67. package/dist/charts/types.d.ts +67 -0
  68. package/dist/charts/useChartTheme.d.ts +13 -0
  69. package/dist/charts.cjs +1 -0
  70. package/dist/charts.js +967 -0
  71. package/dist/components/ActionCard.d.ts +22 -0
  72. package/dist/components/AspectRatio.d.ts +13 -0
  73. package/dist/components/Avatar.d.ts +19 -0
  74. package/dist/components/Badge.d.ts +22 -0
  75. package/dist/components/Card.d.ts +24 -0
  76. package/dist/components/Chip.d.ts +32 -0
  77. package/dist/components/ClipboardText.d.ts +14 -0
  78. package/dist/components/DetailsCard.d.ts +25 -0
  79. package/dist/components/EmptySearch.d.ts +12 -0
  80. package/dist/components/ExpandableSections.d.ts +51 -0
  81. package/dist/components/FileIcon.d.ts +12 -0
  82. package/dist/components/HotkeyHint.d.ts +8 -0
  83. package/dist/components/Icon.d.ts +7 -0
  84. package/dist/components/InlineEdit.d.ts +14 -0
  85. package/dist/components/KVCard.d.ts +12 -0
  86. package/dist/components/Kbd.d.ts +8 -0
  87. package/dist/components/List.d.ts +29 -0
  88. package/dist/components/ListCard.d.ts +30 -0
  89. package/dist/components/ListItem.d.ts +27 -0
  90. package/dist/components/LoadingOverlay.d.ts +14 -0
  91. package/dist/components/MediaCard.d.ts +24 -0
  92. package/dist/components/MetricsSection.d.ts +37 -0
  93. package/dist/components/OverflowText.d.ts +12 -0
  94. package/dist/components/StatCard.d.ts +26 -0
  95. package/dist/components/StatusCard.d.ts +29 -0
  96. package/dist/components/TruncatedList.d.ts +13 -0
  97. package/dist/domain/DescriptionList.d.ts +12 -0
  98. package/dist/domain/EventsList.d.ts +11 -0
  99. package/dist/domain/FilterBar.d.ts +23 -0
  100. package/dist/domain/LogsViewer.d.ts +15 -0
  101. package/dist/domain/MetricCard.d.ts +14 -0
  102. package/dist/domain/ObjectInspector.d.ts +19 -0
  103. package/dist/domain/ResourceBreadcrumb.d.ts +19 -0
  104. package/dist/domain/ResourceRef.d.ts +15 -0
  105. package/dist/domain/ResourceStatus.d.ts +17 -0
  106. package/dist/domain/SecretValueMask.d.ts +11 -0
  107. package/dist/domain/Timeline.d.ts +21 -0
  108. package/dist/domain/index.d.ts +23 -0
  109. package/dist/domain/types.d.ts +25 -0
  110. package/dist/domain.cjs +1 -0
  111. package/dist/domain.js +871 -0
  112. package/dist/editors/CodeEditor.d.ts +19 -0
  113. package/dist/editors/CommandPalette.d.ts +22 -0
  114. package/dist/editors/DiffViewer.d.ts +14 -0
  115. package/dist/editors/MarkdownPreview.d.ts +9 -0
  116. package/dist/editors/Terminal.d.ts +18 -0
  117. package/dist/editors/index.d.ts +11 -0
  118. package/dist/editors/themes.d.ts +4 -0
  119. package/dist/editors.cjs +42 -0
  120. package/dist/editors.js +38396 -0
  121. package/dist/feedback/Alert.d.ts +21 -0
  122. package/dist/feedback/ConnectionIndicator.d.ts +15 -0
  123. package/dist/feedback/EmptyState.d.ts +17 -0
  124. package/dist/feedback/ErrorState.d.ts +12 -0
  125. package/dist/feedback/IDEStatusFooter.d.ts +104 -0
  126. package/dist/feedback/NotificationStack.d.ts +32 -0
  127. package/dist/feedback/ProgressBar.d.ts +16 -0
  128. package/dist/feedback/ProgressRing.d.ts +26 -0
  129. package/dist/feedback/RunButton.d.ts +17 -0
  130. package/dist/feedback/Skeleton.d.ts +13 -0
  131. package/dist/feedback/StatusBar.d.ts +12 -0
  132. package/dist/feedback/StatusBarItem.d.ts +18 -0
  133. package/dist/feedback/StatusDot.d.ts +14 -0
  134. package/dist/feedback/StatusPill.d.ts +13 -0
  135. package/dist/feedback/index.d.ts +29 -0
  136. package/dist/feedback.cjs +1 -0
  137. package/dist/feedback.js +1011 -0
  138. package/dist/index.cjs +1 -0
  139. package/dist/index.d.ts +54 -0
  140. package/dist/index.js +1632 -0
  141. package/dist/inputs/Autocomplete.d.ts +30 -0
  142. package/dist/inputs/Checkbox.d.ts +17 -0
  143. package/dist/inputs/ColorPicker.d.ts +13 -0
  144. package/dist/inputs/DebouncedInput.d.ts +10 -0
  145. package/dist/inputs/FormField.d.ts +15 -0
  146. package/dist/inputs/FormSection.d.ts +14 -0
  147. package/dist/inputs/KeyValueEditor.d.ts +17 -0
  148. package/dist/inputs/RadioGroup.d.ts +23 -0
  149. package/dist/inputs/SearchInput.d.ts +14 -0
  150. package/dist/inputs/Select.d.ts +32 -0
  151. package/dist/inputs/Slider.d.ts +24 -0
  152. package/dist/inputs/Switch.d.ts +17 -0
  153. package/dist/inputs/TagInput.d.ts +18 -0
  154. package/dist/inputs/TextArea.d.ts +26 -0
  155. package/dist/inputs/TextField.d.ts +39 -0
  156. package/dist/inputs/TimeRangePicker.d.ts +21 -0
  157. package/dist/inputs/index.d.ts +31 -0
  158. package/dist/inputs.cjs +21 -0
  159. package/dist/inputs.js +15834 -0
  160. package/dist/layout/AppShell.d.ts +18 -0
  161. package/dist/layout/DockLayout.d.ts +23 -0
  162. package/dist/layout/Inline.d.ts +15 -0
  163. package/dist/layout/Panel.d.ts +17 -0
  164. package/dist/layout/ResizableSplitPane.d.ts +18 -0
  165. package/dist/layout/Spacer.d.ts +9 -0
  166. package/dist/layout/Stack.d.ts +19 -0
  167. package/dist/layout/index.d.ts +16 -0
  168. package/dist/layout/useResizablePanel.d.ts +18 -0
  169. package/dist/layout.cjs +5 -0
  170. package/dist/layout.js +378 -0
  171. package/dist/menus/ContextMenu.d.ts +12 -0
  172. package/dist/menus/DropdownMenu.d.ts +20 -0
  173. package/dist/menus/MenuBar.d.ts +11 -0
  174. package/dist/menus/NestedMenuItem.d.ts +13 -0
  175. package/dist/menus/SplitButton.d.ts +15 -0
  176. package/dist/menus/index.d.ts +11 -0
  177. package/dist/menus/types.d.ts +24 -0
  178. package/dist/menus.cjs +1 -0
  179. package/dist/menus.js +355 -0
  180. package/dist/navigation/Breadcrumbs.d.ts +18 -0
  181. package/dist/navigation/DraggableTabs.d.ts +24 -0
  182. package/dist/navigation/Pagination.d.ts +15 -0
  183. package/dist/navigation/PersistentTabPanel.d.ts +13 -0
  184. package/dist/navigation/Stepper.d.ts +19 -0
  185. package/dist/navigation/TabPanel.d.ts +11 -0
  186. package/dist/navigation/Tabs.d.ts +26 -0
  187. package/dist/navigation/TreeView.d.ts +27 -0
  188. package/dist/navigation/index.d.ts +16 -0
  189. package/dist/navigation.cjs +1 -0
  190. package/dist/navigation.js +429 -0
  191. package/dist/overlays/Dialog.d.ts +18 -0
  192. package/dist/overlays/Drawer.d.ts +17 -0
  193. package/dist/overlays/ErrorOverlay.d.ts +21 -0
  194. package/dist/overlays/Modal.d.ts +14 -0
  195. package/dist/overlays/NotificationCenter.d.ts +31 -0
  196. package/dist/overlays/Popover.d.ts +15 -0
  197. package/dist/overlays/Spotlight.d.ts +24 -0
  198. package/dist/overlays/ToastProvider.d.ts +32 -0
  199. package/dist/overlays/Tooltip.d.ts +15 -0
  200. package/dist/overlays/index.d.ts +20 -0
  201. package/dist/overlays/useToast.d.ts +21 -0
  202. package/dist/overlays.cjs +1 -0
  203. package/dist/overlays.js +865 -0
  204. package/dist/sidebars/ActivityBar.d.ts +16 -0
  205. package/dist/sidebars/NavMenu.d.ts +27 -0
  206. package/dist/sidebars/NavMenu.test.d.ts +1 -0
  207. package/dist/sidebars/PropertyGrid.d.ts +16 -0
  208. package/dist/sidebars/SidebarGroup.d.ts +15 -0
  209. package/dist/sidebars/SidebarPanel.d.ts +19 -0
  210. package/dist/sidebars/SidebarTreeItem.d.ts +21 -0
  211. package/dist/sidebars/index.d.ts +13 -0
  212. package/dist/sidebars/types.d.ts +29 -0
  213. package/dist/sidebars.cjs +1 -0
  214. package/dist/sidebars.js +762 -0
  215. package/dist/table/ColumnFilter.d.ts +10 -0
  216. package/dist/table/DataTable.d.ts +23 -0
  217. package/dist/table/IDETable.d.ts +48 -0
  218. package/dist/table/TableEmptyState.d.ts +12 -0
  219. package/dist/table/TableSkeleton.d.ts +11 -0
  220. package/dist/table/TableToolbar.d.ts +15 -0
  221. package/dist/table/index.d.ts +12 -0
  222. package/dist/table/types.d.ts +4 -0
  223. package/dist/table.cjs +1 -0
  224. package/dist/table.js +580 -0
  225. package/dist/theme/AppTheme.d.ts +14 -0
  226. package/dist/theme/customizations/dataDisplay.d.ts +2 -0
  227. package/dist/theme/customizations/feedback.d.ts +2 -0
  228. package/dist/theme/customizations/inputs.d.ts +2 -0
  229. package/dist/theme/customizations/navigation.d.ts +2 -0
  230. package/dist/theme/index.d.ts +36 -0
  231. package/dist/theme/primitives.d.ts +234 -0
  232. package/dist/theme.cjs +1 -0
  233. package/dist/theme.js +1362 -0
  234. package/dist/tokens.css +252 -0
  235. package/dist/types/index.d.ts +7 -0
  236. package/dist/types/maps.d.ts +25 -0
  237. package/dist/types/variants.d.ts +21 -0
  238. package/dist/types.cjs +1 -0
  239. package/dist/types.js +96 -0
  240. package/dist/typography/CodeBlock.d.ts +15 -0
  241. package/dist/typography/CodeInline.d.ts +10 -0
  242. package/dist/typography/Heading.d.ts +13 -0
  243. package/dist/typography/Link.d.ts +18 -0
  244. package/dist/typography/Text.d.ts +22 -0
  245. package/dist/typography/index.d.ts +10 -0
  246. package/dist/typography.cjs +1 -0
  247. package/dist/typography.js +120 -0
  248. package/dist/ui.css +1 -0
  249. package/dist/units-BuBKbqQ7.js +54 -0
  250. package/dist/units-CDpdlN1W.cjs +1 -0
  251. package/dist/utils/index.d.ts +4 -0
  252. package/dist/utils/language.d.ts +4 -0
  253. package/dist/utils/time.d.ts +5 -0
  254. package/dist/utils/units.d.ts +7 -0
  255. package/dist/utils.cjs +1 -0
  256. package/dist/utils.js +78 -0
  257. package/package.json +261 -0
package/dist/charts.js ADDED
@@ -0,0 +1,967 @@
1
+ import { useEffect as ht, useMemo as h, useState as nt, useCallback as it, useRef as bt } from "react";
2
+ import { useTheme as Ct } from "@mui/material/styles";
3
+ import { jsx as n, Fragment as pt, jsxs as P } from "react/jsx-runtime";
4
+ import { createPortal as St } from "react-dom";
5
+ import M from "@mui/material/Box";
6
+ import kt from "@mui/material/Popper";
7
+ import { LineChart as gt } from "@mui/x-charts/LineChart";
8
+ import { ChartsReferenceLine as lt } from "@mui/x-charts/ChartsReferenceLine";
9
+ import { useXScale as Mt, useDrawingArea as xt, useYScale as $t } from "@mui/x-charts/hooks";
10
+ import { LuChartBar as At, LuRefreshCw as zt, LuEllipsisVertical as wt } from "react-icons/lu";
11
+ import { S as st } from "./Skeleton-BUYyXUiC.js";
12
+ import { a as Dt, E as Lt } from "./ErrorState-CexYrMpy.js";
13
+ import { BarChart as Tt } from "@mui/x-charts/BarChart";
14
+ import { PieChart as Ft } from "@mui/x-charts/PieChart";
15
+ import { ScatterChart as Pt } from "@mui/x-charts/ScatterChart";
16
+ import { SparkLineChart as Et } from "@mui/x-charts/SparkLineChart";
17
+ import ct from "@mui/material/Typography";
18
+ import { Gauge as Bt } from "@mui/x-charts/Gauge";
19
+ import mt from "@mui/material/IconButton";
20
+ import Nt from "@mui/material/MenuItem";
21
+ import Ht from "@mui/material/Menu";
22
+ import { S as Wt } from "./Select-DTUF31OP.js";
23
+ const vt = {
24
+ primary: "--ov-accent",
25
+ secondary: "--ov-fg-muted",
26
+ success: "--ov-success-default",
27
+ warning: "--ov-warning-default",
28
+ error: "--ov-danger-default",
29
+ info: "--ov-info-default",
30
+ neutral: "--ov-fg-default",
31
+ accent: "--ov-accent",
32
+ danger: "--ov-danger-default",
33
+ muted: "--ov-fg-muted"
34
+ }, It = new Set(Object.keys(vt)), ut = /* @__PURE__ */ new Map();
35
+ function D(t) {
36
+ const e = ut.get(t);
37
+ if (e !== void 0) return e;
38
+ let o;
39
+ if (It.has(t)) {
40
+ const r = vt[t];
41
+ typeof document < "u" ? o = getComputedStyle(document.documentElement).getPropertyValue(r).trim() || `var(${r})` : o = `var(${r})`;
42
+ } else
43
+ o = t;
44
+ return ut.set(t, o), o;
45
+ }
46
+ function Gt() {
47
+ ut.clear();
48
+ }
49
+ const Vt = [
50
+ "primary",
51
+ "success",
52
+ "warning",
53
+ "info",
54
+ "error",
55
+ "secondary",
56
+ "accent",
57
+ "neutral"
58
+ ];
59
+ function X(t) {
60
+ return (t && t.length > 0 ? t : Vt).map(D);
61
+ }
62
+ const w = new Intl.NumberFormat(void 0, { maximumFractionDigits: 1 }), Ot = new Intl.DateTimeFormat(void 0, { hour: "2-digit", minute: "2-digit" });
63
+ function jt(t, e) {
64
+ const o = Math.abs(t);
65
+ return o < 1024 ? `${t} ${e ?? "B"}` : o < 1024 ** 2 ? `${w.format(t / 1024)} ${e ?? "KiB"}` : o < 1024 ** 3 ? `${w.format(t / 1024 ** 2)} ${e ?? "MiB"}` : o < 1024 ** 4 ? `${w.format(t / 1024 ** 3)} ${e ?? "GiB"}` : `${w.format(t / 1024 ** 4)} ${e ?? "TiB"}`;
66
+ }
67
+ function Yt(t, e) {
68
+ return `${w.format(t)}${e ?? "%"}`;
69
+ }
70
+ function Kt(t, e) {
71
+ const o = Math.abs(t);
72
+ return e ? `${w.format(t)} ${e}` : o < 1e3 ? `${w.format(t)} ms` : o < 6e4 ? `${w.format(t / 1e3)} s` : o < 36e5 ? `${w.format(t / 6e4)} m` : `${w.format(t / 36e5)} h`;
73
+ }
74
+ const K = ["", "k", "M", "G", "T", "P"];
75
+ function Rt(t, e) {
76
+ const o = Math.abs(t);
77
+ let r = 0, a = o;
78
+ for (; a >= 1e3 && r < K.length - 1; )
79
+ a /= 1e3, r++;
80
+ return `${t < 0 ? "-" : ""}${w.format(a)} ${K[r]}${e ?? "/s"}`;
81
+ }
82
+ function Xt(t, e) {
83
+ const o = Math.abs(t);
84
+ let r = 0, a = o;
85
+ for (; a >= 1e3 && r < K.length - 1; )
86
+ a /= 1e3, r++;
87
+ const i = t < 0 ? "-" : "", l = e ? ` ${e}` : K[r] ? ` ${K[r]}` : "";
88
+ return `${i}${w.format(a)}${l}`;
89
+ }
90
+ function qt(t, e) {
91
+ const o = new Intl.NumberFormat(void 0).format(t);
92
+ return e ? `${o} ${e}` : o;
93
+ }
94
+ function Ne(t) {
95
+ return Ot.format(t);
96
+ }
97
+ function R(t, e) {
98
+ const o = (() => {
99
+ switch (t) {
100
+ case "bytes":
101
+ return (r) => jt(r, e);
102
+ case "percent":
103
+ return (r) => Yt(r, e);
104
+ case "duration":
105
+ return (r) => Kt(r, e);
106
+ case "rate":
107
+ return (r) => Rt(r, e);
108
+ case "si":
109
+ return (r) => Xt(r, e);
110
+ case "number":
111
+ return (r) => qt(r, e);
112
+ }
113
+ })();
114
+ return (r) => r == null ? "–" : o(r);
115
+ }
116
+ const dt = /* @__PURE__ */ new Map();
117
+ function Y(t, e) {
118
+ if (typeof document > "u") return e;
119
+ const o = dt.get(t);
120
+ if (o !== void 0) return o;
121
+ const a = getComputedStyle(document.documentElement).getPropertyValue(t).trim() || e;
122
+ return dt.set(t, a), a;
123
+ }
124
+ function Z() {
125
+ const t = Ct(), e = t.palette.mode === "dark";
126
+ return ht(() => {
127
+ dt.clear(), Gt();
128
+ }, [e]), h(() => ({
129
+ axisLineColor: Y("--ov-border-default", e ? "#3a3a3a" : "#d4d4d4"),
130
+ gridColor: Y("--ov-border-subtle", e ? "#2a2a2a" : "#e8e8e8"),
131
+ tooltipBg: Y("--ov-bg-surface", e ? "#1e1e1e" : "#ffffff"),
132
+ tooltipFg: Y("--ov-fg-default", e ? "#e0e0e0" : "#1a1a1a"),
133
+ fontFamily: Y("--ov-font-sans", t.typography.fontFamily ?? "sans-serif"),
134
+ fontSize: 11,
135
+ areaOpacity: 0.15
136
+ }), [e, t.typography.fontFamily]);
137
+ }
138
+ function q({
139
+ loading: t,
140
+ error: e,
141
+ onRetry: o,
142
+ empty: r,
143
+ width: a,
144
+ height: i,
145
+ children: l
146
+ }) {
147
+ return t ? /* @__PURE__ */ n(M, { sx: { width: a ?? "100%", height: i }, children: /* @__PURE__ */ n(st, { variant: "rectangular", width: "100%", height: i }) }) : e ? /* @__PURE__ */ n(M, { sx: { width: a ?? "100%", height: i, display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ n(Dt, { message: e, onRetry: o, variant: "panel" }) }) : r ? /* @__PURE__ */ n(M, { sx: { width: a ?? "100%", height: i, display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ n(
148
+ Lt,
149
+ {
150
+ icon: /* @__PURE__ */ n(At, { size: 32 }),
151
+ title: "No data",
152
+ description: "There is no data to display.",
153
+ size: "sm"
154
+ }
155
+ ) }) : /* @__PURE__ */ n(pt, { children: l });
156
+ }
157
+ const Jt = { xs: 120, sm: 180, md: 260, lg: 360, xl: 480 };
158
+ function Qt({ markers: t }) {
159
+ const e = Mt(), { top: o } = xt(), [r, a] = nt(null), i = it((s, m) => {
160
+ const v = m.currentTarget.getBoundingClientRect();
161
+ a({
162
+ index: s,
163
+ anchor: { getBoundingClientRect: () => v }
164
+ });
165
+ }, []), l = it(() => a(null), []), u = r != null ? t[r.index] : null;
166
+ return /* @__PURE__ */ P("g", { children: [
167
+ t.map((s, m) => {
168
+ const v = s.timestamp instanceof Date ? s.timestamp : new Date(s.timestamp), p = e(v);
169
+ if (p == null || isNaN(p)) return null;
170
+ const y = D(s.color ?? "muted"), f = !!s.tooltip;
171
+ return /* @__PURE__ */ P(
172
+ "g",
173
+ {
174
+ style: f ? { cursor: "pointer" } : void 0,
175
+ onPointerEnter: f ? (d) => i(m, d) : void 0,
176
+ onPointerLeave: f ? l : void 0,
177
+ children: [
178
+ f && /* @__PURE__ */ n(
179
+ "rect",
180
+ {
181
+ x: p - 16,
182
+ y: o - (s.label ? 20 : 12),
183
+ width: 32,
184
+ height: s.label ? 20 : 12,
185
+ fill: "transparent"
186
+ }
187
+ ),
188
+ /* @__PURE__ */ n("text", { x: p, y: o - 1, textAnchor: "middle", fill: y, fontSize: 8, children: "▼" }),
189
+ s.label && /* @__PURE__ */ n("text", { x: p, y: o - 9, textAnchor: "middle", fill: y, fontSize: 9, fontWeight: 500, children: s.label })
190
+ ]
191
+ },
192
+ `evt-${m}`
193
+ );
194
+ }),
195
+ r && u?.tooltip && St(
196
+ /* @__PURE__ */ n(
197
+ kt,
198
+ {
199
+ open: !0,
200
+ anchorEl: r.anchor,
201
+ placement: "top",
202
+ modifiers: [{ name: "offset", options: { offset: [0, 6] } }],
203
+ sx: { zIndex: 1500, pointerEvents: "none" },
204
+ children: /* @__PURE__ */ n(
205
+ M,
206
+ {
207
+ sx: {
208
+ bgcolor: "var(--ov-bg-elevated, #1e1e2e)",
209
+ color: "var(--ov-fg-default, #cdd6f4)",
210
+ border: "1px solid var(--ov-border-subtle, #45475a)",
211
+ borderRadius: "6px",
212
+ px: 1.25,
213
+ py: 0.75,
214
+ fontSize: "0.75rem",
215
+ lineHeight: 1.4,
216
+ maxWidth: 260,
217
+ boxShadow: "0 4px 12px rgba(0,0,0,0.4)"
218
+ },
219
+ children: u.tooltip
220
+ }
221
+ )
222
+ }
223
+ ),
224
+ document.body
225
+ )
226
+ ] });
227
+ }
228
+ function Ut({ formatter: t, color: e, position: o = "right" }) {
229
+ const r = $t(), { left: a, top: i, width: l, height: u } = xt(), s = r.ticks?.() ?? [], m = o === "right", v = m ? a + l - 4 : a + 4, p = m ? "end" : "start";
230
+ return /* @__PURE__ */ n("g", { children: s.map((y) => {
231
+ const f = r(y);
232
+ if (f == null || isNaN(f) || f < i - 2 || f > i + u + 2) return null;
233
+ const d = t(y);
234
+ return /* @__PURE__ */ n(
235
+ "text",
236
+ {
237
+ x: v,
238
+ y: f - 4,
239
+ textAnchor: p,
240
+ fill: e,
241
+ fontSize: 10,
242
+ opacity: 0.7,
243
+ children: d
244
+ },
245
+ y
246
+ );
247
+ }) });
248
+ }
249
+ function yt({
250
+ series: t,
251
+ timeRange: e,
252
+ yAxisLabel: o,
253
+ valueFormat: r = "number",
254
+ unit: a,
255
+ valueFormatter: i,
256
+ annotations: l,
257
+ area: u = !1,
258
+ grid: s = !0,
259
+ showLegend: m = !1,
260
+ showMarks: v = !1,
261
+ colors: p,
262
+ yAxisPosition: y = "left",
263
+ xAxisPosition: f = "bottom",
264
+ compact: d = !1,
265
+ margin: g,
266
+ yAxisWidth: x,
267
+ xAxisHeight: A,
268
+ yAxisInline: $ = !1,
269
+ yAxisInlinePosition: L = "right",
270
+ eventMarkers: b,
271
+ size: E = "md",
272
+ height: S,
273
+ loading: C,
274
+ error: N,
275
+ onRetry: W,
276
+ skipAnimation: _ = !1,
277
+ sx: tt
278
+ }) {
279
+ const T = Z(), J = S ?? Jt[E], I = h(() => X(p), [p]), B = h(
280
+ () => i ?? R(r, a),
281
+ [i, r, a]
282
+ ), G = t.length === 0 || t.every((c) => c.data.length === 0), { xData: et, alignedValues: V } = h(() => {
283
+ if (t.length === 0 || t.every((z) => z.data.length === 0))
284
+ return { xData: [], alignedValues: t.map(() => []) };
285
+ const c = /* @__PURE__ */ new Set();
286
+ for (const z of t)
287
+ for (const H of z.data)
288
+ c.add(H.timestamp);
289
+ const F = Array.from(c).sort((z, H) => z - H), k = F.map((z) => new Date(z)), at = t.map((z) => {
290
+ const H = /* @__PURE__ */ new Map();
291
+ for (const U of z.data)
292
+ H.set(U.timestamp, U.value);
293
+ return F.map((U) => H.get(U) ?? null);
294
+ });
295
+ return { xData: k, alignedValues: at };
296
+ }, [t]), O = h(
297
+ () => t.map((c, F) => ({
298
+ id: c.id,
299
+ label: c.label,
300
+ data: V[F] ?? [],
301
+ color: c.color ? D(c.color) : I[F % I.length],
302
+ area: c.area ?? u,
303
+ showMark: v,
304
+ valueFormatter: B,
305
+ ...c.lineStyle === "dashed" ? { strokeDasharray: "6 3" } : {},
306
+ ...c.lineStyle === "dotted" ? { strokeDasharray: "2 2" } : {}
307
+ })),
308
+ [t, V, u, v, B, I]
309
+ ), Q = d ? { top: 4, right: 2, bottom: 2, left: 2 } : { top: 8, right: 8, bottom: 8, left: 8 }, rt = b?.length ? b.some((c) => c.label) ? 20 : 10 : 0, ot = {
310
+ ...Q,
311
+ ...g,
312
+ top: (g?.top ?? Q.top) + rt
313
+ }, j = $ ? 0 : x ?? (d ? 30 : 40);
314
+ return /* @__PURE__ */ n(M, { sx: tt, children: /* @__PURE__ */ n(q, { loading: C, error: N, onRetry: W, empty: G, height: J, children: /* @__PURE__ */ P(
315
+ gt,
316
+ {
317
+ height: J,
318
+ series: O,
319
+ xAxis: [
320
+ {
321
+ data: et,
322
+ scaleType: "time",
323
+ height: A ?? (d ? 20 : 24),
324
+ position: f,
325
+ ...e && { min: e.from, max: e.to }
326
+ }
327
+ ],
328
+ yAxis: [
329
+ {
330
+ label: o,
331
+ valueFormatter: B,
332
+ position: y,
333
+ width: j
334
+ }
335
+ ],
336
+ grid: s ? { horizontal: !0 } : void 0,
337
+ skipAnimation: _,
338
+ hideLegend: !m,
339
+ margin: ot,
340
+ sx: {
341
+ "& .MuiChartsAxis-line": d ? { display: "none" } : { stroke: T.axisLineColor },
342
+ "& .MuiChartsAxis-tick": d ? { display: "none" } : { stroke: T.axisLineColor },
343
+ "& .MuiChartsAxis-tickLabel": {
344
+ fill: T.tooltipFg,
345
+ fontSize: T.fontSize
346
+ },
347
+ // Hide the entire default y-axis when rendering labels inline
348
+ ...$ && { "& .MuiChartsAxis-left, & .MuiChartsAxis-right": { display: "none" } },
349
+ "& .MuiChartsGrid-line": { stroke: T.gridColor, opacity: 0.5 },
350
+ "& .MuiAreaElement-root": { opacity: T.areaOpacity }
351
+ },
352
+ children: [
353
+ l?.map((c, F) => /* @__PURE__ */ n(
354
+ lt,
355
+ {
356
+ y: c.value,
357
+ label: c.label,
358
+ lineStyle: {
359
+ stroke: c.color ? D(c.color) : "var(--ov-fg-muted)",
360
+ strokeDasharray: c.lineStyle === "dashed" ? "6 3" : void 0
361
+ },
362
+ labelStyle: { fill: T.tooltipFg, fontSize: T.fontSize }
363
+ },
364
+ `ann-${F}`
365
+ )),
366
+ b?.map((c, F) => /* @__PURE__ */ n(
367
+ lt,
368
+ {
369
+ x: c.timestamp instanceof Date ? c.timestamp : new Date(c.timestamp),
370
+ lineStyle: {
371
+ stroke: D(c.color ?? "muted"),
372
+ strokeDasharray: c.lineStyle === "solid" ? void 0 : "4 3",
373
+ strokeWidth: 1
374
+ }
375
+ },
376
+ `evt-line-${F}`
377
+ )),
378
+ b?.length && /* @__PURE__ */ n(Qt, { markers: b }),
379
+ $ && /* @__PURE__ */ n(Ut, { formatter: B, color: T.tooltipFg, position: L })
380
+ ]
381
+ }
382
+ ) }) });
383
+ }
384
+ yt.displayName = "TimeSeriesChart";
385
+ const Zt = { xs: 120, sm: 180, md: 260, lg: 360, xl: 480 };
386
+ function _t({
387
+ data: t,
388
+ horizontal: e = !1,
389
+ valueFormat: o = "number",
390
+ unit: r,
391
+ valueFormatter: a,
392
+ showLabels: i = !1,
393
+ colors: l,
394
+ size: u = "md",
395
+ height: s,
396
+ loading: m,
397
+ error: v,
398
+ onRetry: p,
399
+ skipAnimation: y = !1,
400
+ sx: f
401
+ }) {
402
+ const d = Z(), g = s ?? Zt[u], x = h(() => X(l), [l]), A = h(
403
+ () => a ?? R(o, r),
404
+ [a, o, r]
405
+ ), $ = t.length === 0, L = h(
406
+ () => t.map((S, C) => S.color ? D(S.color) : x[C % x.length]),
407
+ [t, x]
408
+ ), b = h(() => t.map((S) => S.label), [t]), E = h(() => t.map((S) => S.value), [t]);
409
+ return /* @__PURE__ */ n(M, { sx: f, children: /* @__PURE__ */ n(q, { loading: m, error: v, onRetry: p, empty: $, height: g, children: /* @__PURE__ */ n(
410
+ Tt,
411
+ {
412
+ height: g,
413
+ layout: e ? "horizontal" : "vertical",
414
+ series: [
415
+ {
416
+ data: E,
417
+ valueFormatter: A,
418
+ label: i ? "Value" : void 0
419
+ }
420
+ ],
421
+ xAxis: e ? [{ valueFormatter: A }] : [{ data: b, scaleType: "band" }],
422
+ yAxis: e ? [{ data: b, scaleType: "band" }] : [{ valueFormatter: A }],
423
+ colors: L,
424
+ skipAnimation: y,
425
+ hideLegend: !0,
426
+ sx: {
427
+ "& .MuiChartsAxis-line": { stroke: d.axisLineColor },
428
+ "& .MuiChartsAxis-tick": { stroke: d.axisLineColor },
429
+ "& .MuiChartsAxis-tickLabel": {
430
+ fill: d.tooltipFg,
431
+ fontSize: d.fontSize
432
+ }
433
+ }
434
+ }
435
+ ) }) });
436
+ }
437
+ _t.displayName = "BarChart";
438
+ const te = { xs: 120, sm: 180, md: 260, lg: 360, xl: 480 };
439
+ function ee({
440
+ data: t,
441
+ innerRadius: e,
442
+ showLabels: o = !1,
443
+ colors: r,
444
+ size: a = "md",
445
+ height: i,
446
+ loading: l,
447
+ error: u,
448
+ onRetry: s,
449
+ skipAnimation: m = !1,
450
+ sx: v
451
+ }) {
452
+ const p = i ?? te[a], y = h(() => X(r), [r]), f = t.length === 0, d = h(
453
+ () => t.map((g, x) => ({
454
+ id: g.id,
455
+ value: g.value,
456
+ label: g.label,
457
+ color: g.color ? D(g.color) : y[x % y.length]
458
+ })),
459
+ [t, y]
460
+ );
461
+ return /* @__PURE__ */ n(M, { sx: v, children: /* @__PURE__ */ n(q, { loading: l, error: u, onRetry: s, empty: f, height: p, children: /* @__PURE__ */ n(
462
+ Ft,
463
+ {
464
+ height: p,
465
+ series: [
466
+ {
467
+ data: d,
468
+ innerRadius: e ?? 0,
469
+ arcLabel: o ? (g) => g.label ?? "" : void 0
470
+ }
471
+ ],
472
+ skipAnimation: m
473
+ }
474
+ ) }) });
475
+ }
476
+ ee.displayName = "PieChart";
477
+ const re = { xs: 120, sm: 180, md: 260, lg: 360, xl: 480 };
478
+ function oe({
479
+ series: t,
480
+ xAxisLabel: e,
481
+ yAxisLabel: o,
482
+ xFormat: r = "number",
483
+ yFormat: a = "number",
484
+ colors: i,
485
+ size: l = "md",
486
+ height: u,
487
+ loading: s,
488
+ error: m,
489
+ onRetry: v,
490
+ skipAnimation: p = !1,
491
+ sx: y
492
+ }) {
493
+ const f = Z(), d = u ?? re[l], g = h(() => X(i), [i]), x = t.length === 0 || t.every((b) => b.data.length === 0), A = h(() => R(r), [r]), $ = h(() => R(a), [a]), L = h(
494
+ () => t.map((b, E) => ({
495
+ id: b.id,
496
+ label: b.label,
497
+ data: b.data.map((S, C) => ({ x: S.x, y: S.y, id: S.id ?? C })),
498
+ color: b.color ? D(b.color) : g[E % g.length]
499
+ })),
500
+ [t, g]
501
+ );
502
+ return /* @__PURE__ */ n(M, { sx: y, children: /* @__PURE__ */ n(q, { loading: s, error: m, onRetry: v, empty: x, height: d, children: /* @__PURE__ */ n(
503
+ Pt,
504
+ {
505
+ height: d,
506
+ series: L,
507
+ xAxis: [{ label: e, valueFormatter: A }],
508
+ yAxis: [{ label: o, valueFormatter: $ }],
509
+ skipAnimation: p,
510
+ sx: {
511
+ "& .MuiChartsAxis-line": { stroke: f.axisLineColor },
512
+ "& .MuiChartsAxis-tick": { stroke: f.axisLineColor },
513
+ "& .MuiChartsAxis-tickLabel": {
514
+ fill: f.tooltipFg,
515
+ fontSize: f.fontSize
516
+ }
517
+ }
518
+ }
519
+ ) }) });
520
+ }
521
+ oe.displayName = "ScatterChart";
522
+ const ae = { top: 2, bottom: 2, left: 2, right: 2 };
523
+ function ne({
524
+ data: t,
525
+ plotType: e = "line",
526
+ area: o = !1,
527
+ color: r = "primary",
528
+ height: a = 40,
529
+ width: i = "100%",
530
+ showTooltip: l = !1,
531
+ skipAnimation: u = !1
532
+ }) {
533
+ const s = D(r);
534
+ return /* @__PURE__ */ n(
535
+ Et,
536
+ {
537
+ data: t,
538
+ plotType: e,
539
+ area: o,
540
+ height: a,
541
+ width: typeof i == "number" ? i : void 0,
542
+ color: s,
543
+ curve: "natural",
544
+ margin: ae,
545
+ showTooltip: l,
546
+ skipAnimation: u,
547
+ sx: typeof i == "string" ? { width: i } : void 0
548
+ }
549
+ );
550
+ }
551
+ ne.displayName = "Sparkline";
552
+ const ie = { xs: 80, sm: 100, md: 140, lg: 180, xl: 220 };
553
+ function le(t, e, o, r) {
554
+ const a = (t - e) / (o - e) * 100;
555
+ return a < r[0] ? "success" : a < r[1] ? "warning" : "danger";
556
+ }
557
+ function se({
558
+ value: t,
559
+ min: e = 0,
560
+ max: o = 100,
561
+ label: r,
562
+ unit: a,
563
+ color: i,
564
+ thresholds: l = [60, 85],
565
+ size: u = "md",
566
+ loading: s = !1
567
+ }) {
568
+ const m = ie[u], v = h(
569
+ () => D(i ?? le(t, e, o, l)),
570
+ [i, t, e, o, l]
571
+ );
572
+ return s ? /* @__PURE__ */ P(
573
+ M,
574
+ {
575
+ sx: {
576
+ p: 2,
577
+ border: "1px solid var(--ov-border-default)",
578
+ borderRadius: "8px",
579
+ bgcolor: "var(--ov-bg-surface)",
580
+ display: "flex",
581
+ flexDirection: "column",
582
+ alignItems: "center",
583
+ gap: 1
584
+ },
585
+ children: [
586
+ /* @__PURE__ */ n(st, { variant: "circular", width: m, height: m }),
587
+ /* @__PURE__ */ n(st, { variant: "text", width: "60%" })
588
+ ]
589
+ }
590
+ ) : /* @__PURE__ */ P(
591
+ M,
592
+ {
593
+ sx: {
594
+ p: 2,
595
+ border: "1px solid var(--ov-border-default)",
596
+ borderRadius: "8px",
597
+ bgcolor: "var(--ov-bg-surface)",
598
+ display: "flex",
599
+ flexDirection: "column",
600
+ alignItems: "center",
601
+ gap: 0.5
602
+ },
603
+ children: [
604
+ /* @__PURE__ */ n(
605
+ Bt,
606
+ {
607
+ value: t,
608
+ valueMin: e,
609
+ valueMax: o,
610
+ startAngle: -110,
611
+ endAngle: 110,
612
+ width: m,
613
+ height: m,
614
+ sx: {
615
+ "& .MuiGauge-valueArc": { fill: v },
616
+ "& .MuiGauge-referenceArc": { fill: "var(--ov-bg-surface-inset)" }
617
+ },
618
+ text: a ? `${t}${a}` : `${t}`
619
+ }
620
+ ),
621
+ /* @__PURE__ */ n(
622
+ ct,
623
+ {
624
+ variant: "caption",
625
+ sx: {
626
+ fontSize: "0.6875rem",
627
+ fontWeight: 600,
628
+ color: "var(--ov-fg-muted)",
629
+ textTransform: "uppercase",
630
+ letterSpacing: "0.04em",
631
+ textAlign: "center"
632
+ },
633
+ children: r
634
+ }
635
+ )
636
+ ]
637
+ }
638
+ );
639
+ }
640
+ se.displayName = "GaugeCard";
641
+ const ce = [
642
+ { label: "15m", duration: 900 * 1e3 },
643
+ { label: "1h", duration: 3600 * 1e3 },
644
+ { label: "6h", duration: 360 * 60 * 1e3 },
645
+ { label: "24h", duration: 1440 * 60 * 1e3 },
646
+ { label: "7d", duration: 10080 * 60 * 1e3 }
647
+ ];
648
+ function ue(t, e) {
649
+ const o = t.to.getTime() - t.from.getTime();
650
+ let r = e[0], a = Math.abs(o - r.duration);
651
+ for (const i of e) {
652
+ const l = Math.abs(o - i.duration);
653
+ l < a && (r = i, a = l);
654
+ }
655
+ return String(r.duration);
656
+ }
657
+ function de({
658
+ title: t,
659
+ icon: e,
660
+ subtitle: o,
661
+ series: r,
662
+ timeRange: a,
663
+ onTimeRangeChange: i,
664
+ refreshInterval: l = 0,
665
+ onRefresh: u,
666
+ valueFormat: s = "number",
667
+ unit: m,
668
+ valueFormatter: v,
669
+ annotations: p,
670
+ eventMarkers: y,
671
+ area: f = !1,
672
+ presets: d = ce,
673
+ colors: g,
674
+ headerActions: x,
675
+ toolbar: A,
676
+ menuItems: $,
677
+ yAxisPosition: L = "none",
678
+ xAxisPosition: b = "none",
679
+ margin: E,
680
+ yAxisWidth: S,
681
+ xAxisHeight: C,
682
+ yAxisInline: N = !0,
683
+ yAxisInlinePosition: W,
684
+ variant: _ = "default",
685
+ height: tt = 260,
686
+ loading: T,
687
+ error: J,
688
+ onRetry: I
689
+ }) {
690
+ const B = bt(null), [G, et] = nt(l > 0), [V, O] = nt(null), Q = _ === "compact", rt = h(
691
+ () => ue(a, d),
692
+ [a, d]
693
+ ), ot = h(
694
+ () => d.map((k) => ({ value: String(k.duration), label: k.label })),
695
+ [d]
696
+ ), j = it(() => {
697
+ B.current && (clearInterval(B.current), B.current = null);
698
+ }, []);
699
+ ht(() => (j(), G && l > 0 && u && (B.current = setInterval(u, l)), j), [G, l, u, j]);
700
+ const ft = (k) => {
701
+ if (!i) return;
702
+ const at = Number(Array.isArray(k) ? k[0] : k), z = /* @__PURE__ */ new Date();
703
+ i({ from: new Date(z.getTime() - at), to: z });
704
+ }, c = i || A || x || u, F = $ && $.length > 0;
705
+ return /* @__PURE__ */ P(
706
+ M,
707
+ {
708
+ sx: {
709
+ display: "flex",
710
+ flexDirection: "column",
711
+ overflow: "hidden",
712
+ ...Q ? { bgcolor: "transparent" } : {
713
+ bgcolor: "var(--ov-bg-surface)",
714
+ border: "1px solid var(--ov-border-default)",
715
+ borderRadius: "8px"
716
+ }
717
+ },
718
+ children: [
719
+ /* @__PURE__ */ P(
720
+ M,
721
+ {
722
+ sx: {
723
+ display: "flex",
724
+ alignItems: "center",
725
+ gap: 0.75,
726
+ px: 1,
727
+ py: 0.5,
728
+ minHeight: 32
729
+ },
730
+ children: [
731
+ e && /* @__PURE__ */ n(M, { sx: { display: "flex", alignItems: "center", color: "var(--ov-fg-muted)", flexShrink: 0 }, children: e }),
732
+ /* @__PURE__ */ P(M, { sx: { minWidth: 0, flex: 1 }, children: [
733
+ /* @__PURE__ */ n(
734
+ ct,
735
+ {
736
+ variant: "subtitle2",
737
+ noWrap: !0,
738
+ sx: {
739
+ fontWeight: 600,
740
+ color: "var(--ov-fg-default)",
741
+ fontSize: "0.75rem",
742
+ lineHeight: 1.2
743
+ },
744
+ children: t
745
+ }
746
+ ),
747
+ o && /* @__PURE__ */ n(
748
+ ct,
749
+ {
750
+ variant: "caption",
751
+ noWrap: !0,
752
+ sx: {
753
+ color: "var(--ov-fg-muted)",
754
+ fontSize: "0.625rem",
755
+ lineHeight: 1.2,
756
+ display: "block"
757
+ },
758
+ children: o
759
+ }
760
+ )
761
+ ] }),
762
+ c && /* @__PURE__ */ P(M, { sx: { display: "flex", alignItems: "center", gap: 0.25, flexShrink: 0 }, children: [
763
+ i && /* @__PURE__ */ n(
764
+ Wt,
765
+ {
766
+ options: ot,
767
+ value: rt,
768
+ onChange: ft,
769
+ size: "xs"
770
+ }
771
+ ),
772
+ A,
773
+ x,
774
+ u && /* @__PURE__ */ n(
775
+ mt,
776
+ {
777
+ size: "small",
778
+ onClick: () => {
779
+ l > 0 ? et((k) => !k) : u();
780
+ },
781
+ sx: {
782
+ color: G ? "var(--ov-accent)" : "var(--ov-fg-muted)",
783
+ p: 0.25
784
+ },
785
+ children: /* @__PURE__ */ n(zt, { size: 12 })
786
+ }
787
+ )
788
+ ] }),
789
+ F && /* @__PURE__ */ P(pt, { children: [
790
+ /* @__PURE__ */ n(
791
+ mt,
792
+ {
793
+ size: "small",
794
+ onClick: (k) => O(k.currentTarget),
795
+ sx: { color: "var(--ov-fg-muted)", p: 0.25, flexShrink: 0 },
796
+ children: /* @__PURE__ */ n(wt, { size: 13 })
797
+ }
798
+ ),
799
+ /* @__PURE__ */ n(
800
+ Ht,
801
+ {
802
+ anchorEl: V,
803
+ open: !!V,
804
+ onClose: () => O(null),
805
+ anchorOrigin: { vertical: "bottom", horizontal: "right" },
806
+ transformOrigin: { vertical: "top", horizontal: "right" },
807
+ slotProps: {
808
+ paper: {
809
+ sx: {
810
+ bgcolor: "var(--ov-bg-surface)",
811
+ border: "1px solid var(--ov-border-subtle)",
812
+ minWidth: 140
813
+ }
814
+ }
815
+ },
816
+ children: $.map((k) => /* @__PURE__ */ n(
817
+ Nt,
818
+ {
819
+ onClick: () => {
820
+ O(null), k.onClick();
821
+ },
822
+ sx: { fontSize: "0.8125rem" },
823
+ children: k.label
824
+ },
825
+ k.label
826
+ ))
827
+ }
828
+ )
829
+ ] })
830
+ ]
831
+ }
832
+ ),
833
+ /* @__PURE__ */ n(
834
+ yt,
835
+ {
836
+ series: r,
837
+ timeRange: a,
838
+ valueFormat: s,
839
+ unit: m,
840
+ valueFormatter: v,
841
+ annotations: p,
842
+ eventMarkers: y,
843
+ area: f,
844
+ colors: g,
845
+ height: tt,
846
+ loading: T,
847
+ error: J,
848
+ onRetry: I,
849
+ skipAnimation: !0,
850
+ yAxisPosition: L,
851
+ xAxisPosition: b,
852
+ margin: E,
853
+ yAxisWidth: S,
854
+ xAxisHeight: C,
855
+ yAxisInline: N,
856
+ yAxisInlinePosition: W,
857
+ compact: !0,
858
+ grid: !0
859
+ }
860
+ )
861
+ ]
862
+ }
863
+ );
864
+ }
865
+ de.displayName = "MetricsPanel";
866
+ const fe = { xs: 120, sm: 180, md: 260, lg: 360, xl: 480 };
867
+ function me({
868
+ series: t,
869
+ capacity: e,
870
+ timeRange: o,
871
+ valueFormat: r = "number",
872
+ unit: a,
873
+ valueFormatter: i,
874
+ stacked: l = !0,
875
+ colors: u,
876
+ yAxisPosition: s = "left",
877
+ size: m = "md",
878
+ height: v,
879
+ loading: p,
880
+ error: y,
881
+ onRetry: f,
882
+ skipAnimation: d = !1,
883
+ sx: g
884
+ }) {
885
+ const x = Z(), A = v ?? fe[m], $ = h(() => X(u), [u]), L = h(
886
+ () => i ?? R(r, a),
887
+ [i, r, a]
888
+ ), b = t.length === 0 || t.every((C) => C.data.length === 0), E = h(() => {
889
+ for (const C of t)
890
+ if (C.data.length > 0) return C.data.map((N) => new Date(N.timestamp));
891
+ return [];
892
+ }, [t]), S = h(
893
+ () => t.map((C, N) => ({
894
+ id: C.id,
895
+ label: C.label,
896
+ data: C.data.map((W) => W.value),
897
+ color: C.color ? D(C.color) : $[N % $.length],
898
+ area: !0,
899
+ showMark: !1,
900
+ stack: l ? "total" : void 0,
901
+ valueFormatter: L
902
+ })),
903
+ [t, l, L, $]
904
+ );
905
+ return /* @__PURE__ */ n(M, { sx: g, children: /* @__PURE__ */ n(q, { loading: p, error: y, onRetry: f, empty: b, height: A, children: /* @__PURE__ */ n(
906
+ gt,
907
+ {
908
+ height: A,
909
+ series: S,
910
+ xAxis: [
911
+ {
912
+ data: E,
913
+ scaleType: "time",
914
+ ...o && { min: o.from, max: o.to }
915
+ }
916
+ ],
917
+ yAxis: [{ valueFormatter: L, position: s }],
918
+ grid: { horizontal: !0 },
919
+ skipAnimation: d,
920
+ hideLegend: !0,
921
+ sx: {
922
+ "& .MuiChartsAxis-line": { stroke: x.axisLineColor },
923
+ "& .MuiChartsAxis-tick": { stroke: x.axisLineColor },
924
+ "& .MuiChartsAxis-tickLabel": {
925
+ fill: x.tooltipFg,
926
+ fontSize: x.fontSize
927
+ },
928
+ "& .MuiChartsGrid-line": { stroke: x.gridColor },
929
+ "& .MuiAreaElement-root": { opacity: x.areaOpacity }
930
+ },
931
+ children: e != null && /* @__PURE__ */ n(
932
+ lt,
933
+ {
934
+ y: e,
935
+ label: "Capacity",
936
+ lineStyle: {
937
+ stroke: D("danger"),
938
+ strokeDasharray: "6 3"
939
+ },
940
+ labelStyle: { fill: x.tooltipFg, fontSize: x.fontSize }
941
+ }
942
+ )
943
+ }
944
+ ) }) });
945
+ }
946
+ me.displayName = "StackedAreaChart";
947
+ export {
948
+ _t as BarChart,
949
+ se as GaugeCard,
950
+ de as MetricsPanel,
951
+ ee as PieChart,
952
+ oe as ScatterChart,
953
+ ne as Sparkline,
954
+ me as StackedAreaChart,
955
+ yt as TimeSeriesChart,
956
+ X as chartPalette,
957
+ jt as formatBytes,
958
+ Kt as formatDuration,
959
+ qt as formatNumber,
960
+ Yt as formatPercent,
961
+ Rt as formatRate,
962
+ Xt as formatSI,
963
+ Ne as formatTimeAxisTick,
964
+ R as getValueFormatter,
965
+ D as resolveChartColor,
966
+ Z as useChartTheme
967
+ };