@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/index.js ADDED
@@ -0,0 +1,1632 @@
1
+ import { jsx as r, jsxs as s, Fragment as T } from "react/jsx-runtime";
2
+ import h from "@mui/material/Stack";
3
+ import v from "@mui/material/Card";
4
+ import y from "@mui/material/Chip";
5
+ import E from "@mui/material/Avatar";
6
+ import I from "@mui/material/Divider";
7
+ import { default as lt } from "@mui/material/Divider";
8
+ import u from "@mui/material/Typography";
9
+ import d from "@mui/material/Box";
10
+ import { I as C } from "./Icon-CuO9W7cA.js";
11
+ import L, { useState as w, useCallback as ne, useRef as F, useEffect as P } from "react";
12
+ import S from "@mui/material/Grid";
13
+ import R from "@mui/material/Accordion";
14
+ import $ from "@mui/material/AccordionDetails";
15
+ import O from "@mui/material/AccordionSummary";
16
+ import ie from "@mui/icons-material/ExpandMore";
17
+ import { LuChevronRight as ae, LuChevronDown as le, LuFile as se, LuBraces as N, LuFileCode as b, LuFileImage as ce, LuFileText as de } from "react-icons/lu";
18
+ import { toMuiSize as fe, toMuiColor as H, toBorderRadius as pe, toCssColor as G } from "./types.js";
19
+ import { T as ue } from "./Text-By4P3in5.js";
20
+ import he from "@mui/material/LinearProgress";
21
+ import { default as ct } from "@mui/material/LinearProgress";
22
+ import _ from "@mui/material/CircularProgress";
23
+ import { default as ft } from "@mui/material/CircularProgress";
24
+ import me from "@mui/material/List";
25
+ import xe from "@mui/material/ListSubheader";
26
+ import { default as ut } from "@mui/material/ListSubheader";
27
+ import z from "@mui/material/ListItem";
28
+ import k from "@mui/material/ListItemButton";
29
+ import M from "@mui/material/ListItemIcon";
30
+ import B from "@mui/material/ListItemText";
31
+ import { C as ge } from "./CopyButton-DPBgL0K8.js";
32
+ import ve from "@mui/material/Tooltip";
33
+ import be from "@mui/material/TextField";
34
+ import { H as ye } from "./HotkeyHint-6SOi-MaU.js";
35
+ import Se from "@mui/material/Badge";
36
+ import { SiDocker as Ce, SiRust as we, SiPython as Ie, SiJavascript as ze, SiTypescript as Me, SiGo as Ee } from "react-icons/si";
37
+ import Le from "@mui/icons-material/Search";
38
+ import Ae from "@mui/material/ButtonBase";
39
+ import { S as Ne } from "./StatusDot-CncykBAY.js";
40
+ const ke = ({
41
+ title: e,
42
+ titleDecorator: o,
43
+ icon: t,
44
+ children: i,
45
+ variant: n,
46
+ emphasis: a,
47
+ noPadding: l = !1,
48
+ onClick: f,
49
+ sx: p
50
+ }) => {
51
+ const m = n ?? (a ? {
52
+ outline: "outlined",
53
+ solid: "elevation",
54
+ soft: "elevation",
55
+ ghost: "outlined"
56
+ }[a] ?? "outlined" : "outlined");
57
+ return e ? /* @__PURE__ */ s(v, { variant: m, onClick: f, sx: { p: 0, gap: 0, ...p }, children: [
58
+ /* @__PURE__ */ s(
59
+ h,
60
+ {
61
+ direction: "row",
62
+ spacing: 1,
63
+ sx: { px: 1.5, py: 1 },
64
+ alignItems: "center",
65
+ justifyContent: "space-between",
66
+ children: [
67
+ /* @__PURE__ */ s(h, { direction: "row", alignItems: "center", spacing: 1, children: [
68
+ t && (typeof t == "string" ? t.startsWith("http") ? /* @__PURE__ */ r(
69
+ E,
70
+ {
71
+ src: t,
72
+ sx: { height: 16, width: 16, borderRadius: "4px" }
73
+ }
74
+ ) : /* @__PURE__ */ r(C, { name: t, size: 14 }) : t),
75
+ /* @__PURE__ */ r(u, { variant: "subtitle2", children: e })
76
+ ] }),
77
+ o && (typeof o == "string" || typeof o == "number" ? /* @__PURE__ */ r(
78
+ y,
79
+ {
80
+ sx: { borderRadius: "4px" },
81
+ size: "small",
82
+ color: "primary",
83
+ variant: "outlined",
84
+ label: o
85
+ }
86
+ ) : o)
87
+ ]
88
+ }
89
+ ),
90
+ /* @__PURE__ */ r(I, {}),
91
+ /* @__PURE__ */ r(d, { sx: { p: l ? 0 : 1.5 }, children: i })
92
+ ] }) : /* @__PURE__ */ r(v, { variant: m, onClick: f, sx: { p: l ? 0 : 1.5, gap: 0, ...p }, children: i });
93
+ };
94
+ ke.displayName = "Card";
95
+ const Be = (e) => {
96
+ switch (e) {
97
+ case "sm":
98
+ return 12;
99
+ case "md":
100
+ return 14;
101
+ case "lg":
102
+ return 16;
103
+ default:
104
+ return 14;
105
+ }
106
+ }, We = (e) => {
107
+ switch (e) {
108
+ case "sm":
109
+ return 0.5;
110
+ case "md":
111
+ return 1;
112
+ case "lg":
113
+ return 2;
114
+ default:
115
+ return 1;
116
+ }
117
+ }, je = (e) => {
118
+ switch (e) {
119
+ case "sm":
120
+ return 12;
121
+ case "md":
122
+ return 14;
123
+ case "lg":
124
+ return 16;
125
+ default:
126
+ return 14;
127
+ }
128
+ }, De = ({
129
+ title: e,
130
+ titleSize: o = "md",
131
+ icon: t,
132
+ data: i,
133
+ endAdornment: n,
134
+ showUndefined: a = !1
135
+ }) => /* @__PURE__ */ s(
136
+ v,
137
+ {
138
+ variant: "outlined",
139
+ sx: {
140
+ p: 0,
141
+ gap: 0,
142
+ bgcolor: "var(--ov-bg-surface-raised)"
143
+ },
144
+ children: [
145
+ e && /* @__PURE__ */ s(
146
+ d,
147
+ {
148
+ sx: {
149
+ px: 1.5,
150
+ py: 1,
151
+ display: "flex",
152
+ flexDirection: "row",
153
+ justifyContent: "space-between",
154
+ alignItems: "center",
155
+ bgcolor: "var(--ov-bg-surface)",
156
+ borderBottom: "1px solid var(--ov-border-default)"
157
+ },
158
+ children: [
159
+ /* @__PURE__ */ s(
160
+ h,
161
+ {
162
+ direction: "row",
163
+ spacing: We(o),
164
+ alignItems: "center",
165
+ children: [
166
+ t && (typeof t == "string" ? t.startsWith("http") ? /* @__PURE__ */ r(
167
+ E,
168
+ {
169
+ src: t,
170
+ sx: { height: 16, width: 16, borderRadius: "4px" }
171
+ }
172
+ ) : /* @__PURE__ */ r(C, { name: t, size: je(o) }) : t),
173
+ /* @__PURE__ */ r(
174
+ u,
175
+ {
176
+ sx: { fontSize: Be(o) },
177
+ variant: "subtitle2",
178
+ children: e
179
+ }
180
+ )
181
+ ]
182
+ }
183
+ ),
184
+ n
185
+ ]
186
+ }
187
+ ),
188
+ /* @__PURE__ */ r(d, { sx: { px: 1.5, py: 1 }, children: /* @__PURE__ */ r(S, { container: !0, spacing: 1, children: i.map((l) => {
189
+ if (l.value || a)
190
+ return /* @__PURE__ */ s(L.Fragment, { children: [
191
+ /* @__PURE__ */ r(S, { size: l.ratio?.[0] ?? 5, children: /* @__PURE__ */ s(h, { direction: "row", spacing: 1, alignItems: "center", children: [
192
+ l.icon && (typeof l.icon == "string" ? l.icon.startsWith("http") ? /* @__PURE__ */ r(
193
+ E,
194
+ {
195
+ src: l.icon,
196
+ sx: { width: 24, height: 24 }
197
+ }
198
+ ) : /* @__PURE__ */ r(C, { name: l.icon, size: 14 }) : l.icon),
199
+ /* @__PURE__ */ r(u, { variant: "caption", children: l.key })
200
+ ] }) }),
201
+ /* @__PURE__ */ r(S, { size: l.ratio?.[1] ?? 7, children: /* @__PURE__ */ s(
202
+ h,
203
+ {
204
+ direction: "row",
205
+ spacing: 1,
206
+ alignItems: "center",
207
+ justifyContent: "space-between",
208
+ children: [
209
+ /* @__PURE__ */ r(
210
+ u,
211
+ {
212
+ variant: "caption",
213
+ noWrap: !0,
214
+ sx: { color: "var(--ov-fg-default)" },
215
+ children: l.used ? `${l.used} / ${l.value}` : l.value
216
+ }
217
+ ),
218
+ l.endAdornment
219
+ ]
220
+ }
221
+ ) })
222
+ ] }, l.key);
223
+ }) }) })
224
+ ]
225
+ }
226
+ );
227
+ De.displayName = "DetailsCard";
228
+ const Te = ({ title: e, kvs: o, defaultExpanded: t }) => /* @__PURE__ */ s(
229
+ R,
230
+ {
231
+ disabled: !Object.keys(o).length,
232
+ defaultExpanded: t,
233
+ disableGutters: !0,
234
+ sx: { "&:before": { display: "none" } },
235
+ children: [
236
+ /* @__PURE__ */ r(O, { expandIcon: /* @__PURE__ */ r(ie, {}), children: /* @__PURE__ */ s(h, { direction: "row", gap: 1, alignItems: "center", children: [
237
+ /* @__PURE__ */ r(u, { variant: "subtitle2", children: e }),
238
+ /* @__PURE__ */ r(
239
+ y,
240
+ {
241
+ size: "small",
242
+ variant: "outlined",
243
+ color: "primary",
244
+ label: Object.keys(o).length,
245
+ sx: { borderRadius: "4px" }
246
+ }
247
+ )
248
+ ] }) }),
249
+ /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(S, { container: !0, spacing: 0.25, children: Object.entries(o).map(([i, n]) => /* @__PURE__ */ s(L.Fragment, { children: [
250
+ /* @__PURE__ */ r(S, { size: 6, children: /* @__PURE__ */ r(u, { variant: "caption", sx: { fontWeight: 400 }, children: i }) }),
251
+ /* @__PURE__ */ r(S, { size: 6, children: /* @__PURE__ */ r(u, { variant: "caption", sx: { fontWeight: 600 }, children: n }) })
252
+ ] }, i)) }) })
253
+ ]
254
+ }
255
+ );
256
+ Te.displayName = "KVCard";
257
+ function Fe(e) {
258
+ switch (e) {
259
+ case "outline":
260
+ case "ghost":
261
+ return "outlined";
262
+ default:
263
+ return "filled";
264
+ }
265
+ }
266
+ function Pe(e, o) {
267
+ if (e === "soft") {
268
+ const t = G(o);
269
+ return {
270
+ bgcolor: `color-mix(in srgb, ${t} 18%, transparent)`,
271
+ color: t,
272
+ border: "1px solid",
273
+ borderColor: `color-mix(in srgb, ${t} 30%, transparent)`,
274
+ fontWeight: 600,
275
+ "& .MuiChip-label": { color: t },
276
+ "& .MuiChip-icon": { color: t },
277
+ "& .MuiChip-deleteIcon": { color: t, opacity: 0.7, "&:hover": { opacity: 1 } }
278
+ };
279
+ }
280
+ if (e === "ghost")
281
+ return { borderColor: "transparent", bgcolor: "transparent" };
282
+ }
283
+ function Re(e) {
284
+ if (e === "xs")
285
+ return { height: 20, fontSize: "0.6875rem", "& .MuiChip-label": { px: "6px" }, "& .MuiChip-icon": { fontSize: "0.75rem" } };
286
+ if (e === "xl")
287
+ return { height: 40, fontSize: "1rem", "& .MuiChip-label": { px: "16px" } };
288
+ }
289
+ const $e = {
290
+ soft: "soft",
291
+ outlined: "outline",
292
+ solid: "solid",
293
+ plain: "ghost",
294
+ filled: "solid"
295
+ };
296
+ function K({
297
+ label: e,
298
+ children: o,
299
+ color: t = "neutral",
300
+ emphasis: i,
301
+ variant: n,
302
+ size: a = "sm",
303
+ shape: l,
304
+ textTransform: f,
305
+ icon: p,
306
+ startAdornment: c,
307
+ endAdornment: m,
308
+ deletable: g = !1,
309
+ onDelete: x,
310
+ onClick: Y,
311
+ disabled: q = !1,
312
+ sx: J
313
+ }) {
314
+ const A = i ?? (n ? $e[n] ?? "soft" : "soft"), Q = e ?? o, X = p ?? c, Z = A === "soft" ? "filled" : Fe(A), ee = Pe(A, t), re = Re(a), te = l ? { borderRadius: pe(l) } : void 0, oe = f ? { "& .MuiChip-label": { textTransform: f } } : void 0;
315
+ return /* @__PURE__ */ r(
316
+ y,
317
+ {
318
+ label: Q,
319
+ color: H(t),
320
+ variant: Z,
321
+ size: fe(a),
322
+ icon: X,
323
+ onDelete: g || x ? x ?? void 0 : void 0,
324
+ onClick: Y,
325
+ disabled: q,
326
+ sx: {
327
+ ...ee,
328
+ ...re,
329
+ ...te,
330
+ ...oe,
331
+ ...J
332
+ }
333
+ }
334
+ );
335
+ }
336
+ K.displayName = "Chip";
337
+ const Oe = {
338
+ sm: { minHeight: 28, headerPy: "4px", headerPx: 1, fontSize: 12, iconSize: 14, chevronSize: 14 },
339
+ md: { minHeight: 32, headerPy: "6px", headerPx: 1.25, fontSize: 13, iconSize: 16, chevronSize: 16 },
340
+ lg: { minHeight: 38, headerPy: "10px", headerPx: 1.5, fontSize: 14, iconSize: 18, chevronSize: 18 }
341
+ };
342
+ function V(e) {
343
+ switch (e) {
344
+ case "bordered":
345
+ return {
346
+ borderRadius: "6px",
347
+ border: "1px solid var(--ov-border-default)"
348
+ };
349
+ case "plain":
350
+ return {};
351
+ case "flush":
352
+ return {};
353
+ }
354
+ }
355
+ function He(e, o) {
356
+ return o === 0 ? !1 : e !== "flush";
357
+ }
358
+ function U({
359
+ section: e,
360
+ size: o,
361
+ monospace: t,
362
+ expanded: i,
363
+ onExpandedChange: n
364
+ }) {
365
+ const a = Oe[o], l = i !== void 0 || e.expanded !== void 0, f = i ?? e.expanded, p = (g, x) => {
366
+ n?.(x), e.onExpandedChange?.(x);
367
+ }, c = {
368
+ disableGutters: !0,
369
+ disabled: e.disabled,
370
+ onChange: p,
371
+ sx: {
372
+ boxShadow: "none",
373
+ background: "transparent !important",
374
+ "&:before": { display: "none" },
375
+ "&.Mui-expanded": { margin: 0 }
376
+ }
377
+ };
378
+ l ? c.expanded = f : c.defaultExpanded = e.defaultExpanded;
379
+ const m = () => e.icon ? typeof e.icon == "string" ? /* @__PURE__ */ r(d, { sx: { display: "flex", alignItems: "center", mr: 0.75, color: "var(--ov-fg-muted)" }, children: /* @__PURE__ */ r(C, { name: e.icon, size: a.iconSize }) }) : /* @__PURE__ */ r(d, { sx: { display: "flex", alignItems: "center", mr: 0.75, color: "var(--ov-fg-muted)" }, children: e.icon }) : null;
380
+ return /* @__PURE__ */ s(R, { ...c, children: [
381
+ /* @__PURE__ */ s(
382
+ O,
383
+ {
384
+ expandIcon: null,
385
+ sx: {
386
+ minHeight: a.minHeight,
387
+ py: a.headerPy,
388
+ px: a.headerPx,
389
+ "&:hover": { bgcolor: "var(--ov-state-hover)" },
390
+ "&.Mui-expanded": { minHeight: a.minHeight },
391
+ "& .MuiAccordionSummary-content": {
392
+ margin: 0,
393
+ display: "flex",
394
+ alignItems: "center",
395
+ gap: 0,
396
+ "&.Mui-expanded": { margin: 0 }
397
+ }
398
+ },
399
+ children: [
400
+ /* @__PURE__ */ r(Ge, { size: a.chevronSize }),
401
+ m(),
402
+ /* @__PURE__ */ r(
403
+ ue,
404
+ {
405
+ size: o === "lg" ? "md" : o,
406
+ weight: "semibold",
407
+ inline: !0,
408
+ sx: {
409
+ color: "var(--ov-fg-base)",
410
+ ...t && { fontFamily: "var(--ov-font-mono)", fontSize: a.fontSize },
411
+ ...!t && { fontSize: a.fontSize },
412
+ lineHeight: 1
413
+ },
414
+ children: e.title
415
+ }
416
+ ),
417
+ e.count !== void 0 && /* @__PURE__ */ r(d, { sx: { ml: 0.75 }, children: /* @__PURE__ */ r(
418
+ K,
419
+ {
420
+ size: "xs",
421
+ color: "neutral",
422
+ emphasis: "soft",
423
+ label: e.count
424
+ }
425
+ ) }),
426
+ /* @__PURE__ */ r(d, { sx: { flex: 1 } }),
427
+ e.endDecorator && /* @__PURE__ */ r(
428
+ d,
429
+ {
430
+ sx: { display: "flex", alignItems: "center", ml: 1 },
431
+ onClick: (g) => g.stopPropagation(),
432
+ children: e.endDecorator
433
+ }
434
+ )
435
+ ]
436
+ }
437
+ ),
438
+ /* @__PURE__ */ r($, { sx: { p: 0 }, children: e.children })
439
+ ] });
440
+ }
441
+ function Ge({ size: e }) {
442
+ return /* @__PURE__ */ s(
443
+ d,
444
+ {
445
+ sx: {
446
+ display: "flex",
447
+ alignItems: "center",
448
+ mr: 0.75,
449
+ color: "var(--ov-fg-muted)"
450
+ },
451
+ children: [
452
+ /* @__PURE__ */ r(
453
+ d,
454
+ {
455
+ component: "span",
456
+ sx: {
457
+ display: "flex",
458
+ ".MuiAccordionSummary-root.Mui-expanded &": { display: "none" }
459
+ },
460
+ children: /* @__PURE__ */ r(ae, { size: e })
461
+ }
462
+ ),
463
+ /* @__PURE__ */ r(
464
+ d,
465
+ {
466
+ component: "span",
467
+ sx: {
468
+ display: "none",
469
+ ".MuiAccordionSummary-root.Mui-expanded &": { display: "flex" }
470
+ },
471
+ children: /* @__PURE__ */ r(le, { size: e })
472
+ }
473
+ )
474
+ ]
475
+ }
476
+ );
477
+ }
478
+ function _e() {
479
+ return /* @__PURE__ */ r(d, { sx: { height: "1px", bgcolor: "var(--ov-border-default)" } });
480
+ }
481
+ function Ke({
482
+ sections: e,
483
+ variant: o = "bordered",
484
+ size: t = "md",
485
+ monospace: i = !1,
486
+ exclusive: n = !1,
487
+ sx: a
488
+ }) {
489
+ const [l, f] = w(() => {
490
+ if (!n) return null;
491
+ const c = e.findIndex((m) => m.defaultExpanded || m.expanded);
492
+ return c >= 0 ? c : null;
493
+ }), p = ne(
494
+ (c) => (m) => {
495
+ n && f(m ? c : null);
496
+ },
497
+ [n]
498
+ );
499
+ return e.length === 0 ? /* @__PURE__ */ r(T, {}) : /* @__PURE__ */ r(d, { sx: { flexGrow: 0, ...V(o), ...typeof a == "object" && !Array.isArray(a) ? a : {} }, children: e.map((c, m) => {
500
+ const g = c.key ?? (typeof c.title == "string" ? c.title : String(m)), x = n ? {
501
+ expanded: l === m,
502
+ onExpandedChange: p(m)
503
+ } : {};
504
+ return /* @__PURE__ */ s(L.Fragment, { children: [
505
+ He(o, m) && /* @__PURE__ */ r(_e, {}),
506
+ /* @__PURE__ */ r(
507
+ U,
508
+ {
509
+ section: c,
510
+ size: t,
511
+ monospace: i,
512
+ ...x
513
+ }
514
+ )
515
+ ] }, g);
516
+ }) });
517
+ }
518
+ Ke.displayName = "ExpandableSections";
519
+ function Ve({
520
+ variant: e = "bordered",
521
+ size: o = "md",
522
+ monospace: t = !1,
523
+ ...i
524
+ }) {
525
+ return /* @__PURE__ */ r(d, { sx: { ...V(e) }, children: /* @__PURE__ */ r(
526
+ U,
527
+ {
528
+ section: i,
529
+ size: o,
530
+ monospace: t
531
+ }
532
+ ) });
533
+ }
534
+ Ve.displayName = "ExpandableSection";
535
+ const Ue = {
536
+ NONE: "",
537
+ BYTES: "B",
538
+ KB: "KB",
539
+ MB: "MB",
540
+ GB: "GB",
541
+ PERCENTAGE: "%",
542
+ MILLISECONDS: "ms",
543
+ SECONDS: "s",
544
+ COUNT: "",
545
+ OPS_PER_SEC: "ops/s",
546
+ BYTES_PER_SEC: "B/s",
547
+ MILLICORES: "m",
548
+ CORES: "cores"
549
+ };
550
+ function W(e, o) {
551
+ const t = Ue[o] ?? o;
552
+ return o === "BYTES" || o === "bytes" ? e >= 1024 * 1024 * 1024 ? `${(e / (1024 * 1024 * 1024)).toFixed(1)} GB` : e >= 1024 * 1024 ? `${(e / (1024 * 1024)).toFixed(1)} MB` : e >= 1024 ? `${(e / 1024).toFixed(1)} KB` : `${e} B` : o === "MILLICORES" || o === "millicores" ? e >= 1e3 ? `${(e / 1e3).toFixed(2)} cores` : `${Math.round(e)}${t}` : Number.isInteger(e) ? `${e}${t ? ` ${t}` : ""}` : `${e.toFixed(2)}${t ? ` ${t}` : ""}`;
553
+ }
554
+ const Ye = ({ metric: e }) => {
555
+ const o = e.capacity != null && e.capacity > 0, t = o ? Math.min(e.value / e.capacity * 100, 100) : null, i = () => t == null ? "primary" : t >= 90 ? "error" : t >= 70 ? "warning" : "primary";
556
+ return /* @__PURE__ */ s(d, { sx: { minWidth: 0, flex: 1 }, children: [
557
+ /* @__PURE__ */ s(h, { direction: "row", spacing: 0.5, alignItems: "center", sx: { mb: 0.25 }, children: [
558
+ e.icon && /* @__PURE__ */ r(C, { name: e.icon, style: { fontSize: 14, opacity: 0.7 } }),
559
+ /* @__PURE__ */ r(
560
+ u,
561
+ {
562
+ variant: "caption",
563
+ sx: { fontWeight: 500, opacity: 0.8, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" },
564
+ children: e.name
565
+ }
566
+ )
567
+ ] }),
568
+ /* @__PURE__ */ r(u, { variant: "body2", sx: { fontWeight: 600, fontVariantNumeric: "tabular-nums" }, children: W(e.value, e.unit) }),
569
+ o && /* @__PURE__ */ s(d, { sx: { mt: 0.5 }, children: [
570
+ /* @__PURE__ */ r(
571
+ he,
572
+ {
573
+ variant: "determinate",
574
+ value: t,
575
+ color: i(),
576
+ sx: { height: 4, borderRadius: 2 }
577
+ }
578
+ ),
579
+ /* @__PURE__ */ s(u, { variant: "caption", sx: { opacity: 0.6, fontSize: "0.65rem" }, children: [
580
+ t.toFixed(0),
581
+ "% of ",
582
+ W(e.capacity, e.unit)
583
+ ] })
584
+ ] })
585
+ ] });
586
+ }, nt = ({
587
+ providers: e,
588
+ isLoading: o = !1,
589
+ error: t,
590
+ sx: i
591
+ }) => o && e.length === 0 ? /* @__PURE__ */ r(d, { sx: { display: "flex", justifyContent: "center", py: 2, ...i }, children: /* @__PURE__ */ r(_, { size: 20 }) }) : t ? /* @__PURE__ */ r(d, { sx: { px: 1, py: 0.5, ...i }, children: /* @__PURE__ */ r(u, { variant: "caption", color: "error", children: t }) }) : e.length === 0 ? null : /* @__PURE__ */ r(h, { spacing: 1.5, sx: i, children: e.map((n) => /* @__PURE__ */ s(d, { children: [
592
+ e.length > 1 && /* @__PURE__ */ s(h, { direction: "row", spacing: 0.5, alignItems: "center", sx: { mb: 0.75 }, children: [
593
+ n.providerIcon && /* @__PURE__ */ r(C, { name: n.providerIcon, style: { fontSize: 14 } }),
594
+ /* @__PURE__ */ r(
595
+ y,
596
+ {
597
+ label: n.providerName,
598
+ size: "small",
599
+ variant: "outlined",
600
+ sx: { height: 20, fontSize: "0.7rem" }
601
+ }
602
+ )
603
+ ] }),
604
+ /* @__PURE__ */ r(
605
+ h,
606
+ {
607
+ direction: "row",
608
+ spacing: 1.5,
609
+ sx: {
610
+ flexWrap: "wrap",
611
+ "& > *": { minWidth: 100 }
612
+ },
613
+ children: n.metrics.map((a) => /* @__PURE__ */ r(Ye, { metric: a }, a.metricID))
614
+ }
615
+ )
616
+ ] }, n.providerID)) }), qe = {
617
+ xs: !0,
618
+ sm: !0,
619
+ md: !1,
620
+ lg: !1,
621
+ xl: !1
622
+ };
623
+ function Je({
624
+ children: e,
625
+ size: o = "md",
626
+ subheader: t,
627
+ dense: i,
628
+ disablePadding: n = !1,
629
+ sx: a
630
+ }) {
631
+ return /* @__PURE__ */ r(
632
+ me,
633
+ {
634
+ dense: i ?? qe[o],
635
+ disablePadding: n,
636
+ subheader: t ? /* @__PURE__ */ r(xe, { children: t }) : void 0,
637
+ sx: a,
638
+ children: e
639
+ }
640
+ );
641
+ }
642
+ Je.displayName = "List";
643
+ function Qe({ sx: e }) {
644
+ return /* @__PURE__ */ r(I, { component: "li", sx: e });
645
+ }
646
+ Qe.displayName = "ListDivider";
647
+ function Xe({
648
+ children: e,
649
+ primary: o,
650
+ secondary: t,
651
+ icon: i,
652
+ action: n,
653
+ selected: a = !1,
654
+ disabled: l = !1,
655
+ onClick: f,
656
+ sx: p
657
+ }) {
658
+ return e && !o ? f ? /* @__PURE__ */ r(z, { disablePadding: !0, secondaryAction: n, sx: p, children: /* @__PURE__ */ s(
659
+ k,
660
+ {
661
+ selected: a,
662
+ disabled: l,
663
+ onClick: f,
664
+ children: [
665
+ i && /* @__PURE__ */ r(M, { children: i }),
666
+ e
667
+ ]
668
+ }
669
+ ) }) : /* @__PURE__ */ s(z, { secondaryAction: n, sx: p, children: [
670
+ i && /* @__PURE__ */ r(M, { children: i }),
671
+ e
672
+ ] }) : f ? /* @__PURE__ */ r(z, { disablePadding: !0, secondaryAction: n, sx: p, children: /* @__PURE__ */ s(
673
+ k,
674
+ {
675
+ selected: a,
676
+ disabled: l,
677
+ onClick: f,
678
+ children: [
679
+ i && /* @__PURE__ */ r(M, { children: i }),
680
+ /* @__PURE__ */ r(B, { primary: o, secondary: t }),
681
+ e
682
+ ]
683
+ }
684
+ ) }) : /* @__PURE__ */ s(z, { secondaryAction: n, sx: p, children: [
685
+ i && /* @__PURE__ */ r(M, { children: i }),
686
+ /* @__PURE__ */ r(B, { primary: o, secondary: t }),
687
+ e
688
+ ] });
689
+ }
690
+ Xe.displayName = "ListItem";
691
+ function Ze({
692
+ ratio: e = "1/1",
693
+ children: o,
694
+ sx: t
695
+ }) {
696
+ return /* @__PURE__ */ r(
697
+ d,
698
+ {
699
+ sx: {
700
+ position: "relative",
701
+ width: "100%",
702
+ aspectRatio: typeof e == "number" ? String(e) : e,
703
+ overflow: "hidden",
704
+ "& > *": {
705
+ position: "absolute",
706
+ top: 0,
707
+ left: 0,
708
+ width: "100%",
709
+ height: "100%",
710
+ objectFit: "cover"
711
+ },
712
+ ...t
713
+ },
714
+ children: o
715
+ }
716
+ );
717
+ }
718
+ Ze.displayName = "AspectRatio";
719
+ function er({
720
+ value: e,
721
+ truncate: o = !0,
722
+ maxWidth: t,
723
+ sx: i,
724
+ variant: n = "mono"
725
+ }) {
726
+ const [a, l] = w(!1);
727
+ return /* @__PURE__ */ s(
728
+ d,
729
+ {
730
+ onMouseEnter: () => l(!0),
731
+ onMouseLeave: () => l(!1),
732
+ sx: {
733
+ display: "inline-flex",
734
+ alignItems: "center",
735
+ gap: 0.5,
736
+ maxWidth: t,
737
+ minWidth: 0,
738
+ ...i
739
+ },
740
+ children: [
741
+ n === "mono" ? /* @__PURE__ */ r(
742
+ u,
743
+ {
744
+ variant: "body2",
745
+ sx: {
746
+ fontSize: "0.8125rem",
747
+ color: "var(--ov-fg-default)",
748
+ fontFamily: "var(--ov-font-mono)",
749
+ ...o && {
750
+ overflow: "hidden",
751
+ textOverflow: "ellipsis",
752
+ whiteSpace: "nowrap"
753
+ }
754
+ },
755
+ children: e
756
+ }
757
+ ) : /* @__PURE__ */ r("span", { style: {
758
+ ...o ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } : {}
759
+ }, children: e }),
760
+ /* @__PURE__ */ r(
761
+ "span",
762
+ {
763
+ onClick: (f) => f.stopPropagation(),
764
+ style: {
765
+ display: "inline-flex",
766
+ alignItems: "center",
767
+ visibility: a ? "visible" : "hidden",
768
+ flexShrink: 0
769
+ },
770
+ children: /* @__PURE__ */ r(ge, { value: e, size: "xs" })
771
+ }
772
+ )
773
+ ]
774
+ }
775
+ );
776
+ }
777
+ er.displayName = "ClipboardText";
778
+ function rr({
779
+ children: e,
780
+ maxWidth: o,
781
+ copyOnClick: t = !1,
782
+ sx: i
783
+ }) {
784
+ const n = F(null), [a, l] = w(!1);
785
+ P(() => {
786
+ const c = n.current;
787
+ c && l(c.scrollWidth > c.clientWidth);
788
+ }, [e]);
789
+ const p = /* @__PURE__ */ r(
790
+ d,
791
+ {
792
+ ref: n,
793
+ onClick: () => {
794
+ t && navigator.clipboard.writeText(e).catch(() => {
795
+ });
796
+ },
797
+ sx: {
798
+ overflow: "hidden",
799
+ textOverflow: "ellipsis",
800
+ whiteSpace: "nowrap",
801
+ maxWidth: o,
802
+ fontSize: "0.8125rem",
803
+ color: "var(--ov-fg-default)",
804
+ cursor: t ? "pointer" : void 0,
805
+ ...i
806
+ },
807
+ children: e
808
+ }
809
+ );
810
+ return a ? /* @__PURE__ */ r(ve, { title: e, arrow: !0, children: p }) : p;
811
+ }
812
+ rr.displayName = "OverflowText";
813
+ const j = {
814
+ xs: "0.6875rem",
815
+ sm: "0.8125rem",
816
+ md: "0.875rem",
817
+ lg: "1rem",
818
+ xl: "1.125rem"
819
+ };
820
+ function tr({
821
+ value: e,
822
+ onSave: o,
823
+ placeholder: t = "Click to edit",
824
+ size: i = "sm",
825
+ sx: n
826
+ }) {
827
+ const [a, l] = w(!1), [f, p] = w(e), c = F(null);
828
+ P(() => {
829
+ a && c.current && (c.current.focus(), c.current.select());
830
+ }, [a]);
831
+ const m = () => {
832
+ l(!1), f !== e && o(f);
833
+ }, g = () => {
834
+ l(!1), p(e);
835
+ };
836
+ return a ? /* @__PURE__ */ r(d, { sx: n, children: /* @__PURE__ */ r(
837
+ be,
838
+ {
839
+ inputRef: c,
840
+ value: f,
841
+ onChange: (x) => p(x.target.value),
842
+ onBlur: m,
843
+ onKeyDown: (x) => {
844
+ x.key === "Enter" && m(), x.key === "Escape" && g();
845
+ },
846
+ variant: "outlined",
847
+ size: "small",
848
+ fullWidth: !0,
849
+ slotProps: {
850
+ input: {
851
+ sx: { fontSize: j[i], py: 0.25, px: 0.5 }
852
+ }
853
+ }
854
+ }
855
+ ) }) : /* @__PURE__ */ r(
856
+ d,
857
+ {
858
+ onClick: () => {
859
+ p(e), l(!0);
860
+ },
861
+ sx: {
862
+ cursor: "pointer",
863
+ borderRadius: "4px",
864
+ px: 0.5,
865
+ py: 0.25,
866
+ "&:hover": { bgcolor: "var(--ov-state-hover)" },
867
+ ...n
868
+ },
869
+ children: /* @__PURE__ */ r(
870
+ u,
871
+ {
872
+ variant: "body2",
873
+ sx: {
874
+ fontSize: j[i],
875
+ color: e ? "var(--ov-fg-default)" : "var(--ov-fg-faint)"
876
+ },
877
+ children: e || t
878
+ }
879
+ )
880
+ }
881
+ );
882
+ }
883
+ tr.displayName = "InlineEdit";
884
+ function or({
885
+ count: e,
886
+ dot: o = !1,
887
+ color: t = "primary",
888
+ max: i = 99,
889
+ invisible: n,
890
+ anchorOrigin: a,
891
+ children: l,
892
+ sx: f
893
+ }) {
894
+ return /* @__PURE__ */ r(
895
+ Se,
896
+ {
897
+ badgeContent: o ? void 0 : e,
898
+ variant: o ? "dot" : "standard",
899
+ color: H(t),
900
+ max: i,
901
+ invisible: n,
902
+ anchorOrigin: a,
903
+ sx: f,
904
+ children: l
905
+ }
906
+ );
907
+ }
908
+ or.displayName = "Badge";
909
+ const nr = {
910
+ xs: 24,
911
+ sm: 32,
912
+ md: 40,
913
+ lg: 48,
914
+ xl: 64
915
+ }, ir = {
916
+ xs: "0.625rem",
917
+ sm: "0.75rem",
918
+ md: "0.875rem",
919
+ lg: "1rem",
920
+ xl: "1.25rem"
921
+ }, D = [
922
+ "#e57373",
923
+ "#f06292",
924
+ "#ba68c8",
925
+ "#9575cd",
926
+ "#7986cb",
927
+ "#64b5f6",
928
+ "#4fc3f7",
929
+ "#4dd0e1",
930
+ "#4db6ac",
931
+ "#81c784",
932
+ "#aed581",
933
+ "#dce775",
934
+ "#fff176",
935
+ "#ffd54f",
936
+ "#ffb74d",
937
+ "#ff8a65"
938
+ ];
939
+ function ar(e) {
940
+ let o = 0;
941
+ for (let t = 0; t < e.length; t++)
942
+ o = e.charCodeAt(t) + ((o << 5) - o), o |= 0;
943
+ return Math.abs(o);
944
+ }
945
+ function lr(e) {
946
+ const o = e.trim().split(/\s+/);
947
+ return o.length >= 2 ? (o[0][0] + o[1][0]).toUpperCase() : e.slice(0, 2).toUpperCase();
948
+ }
949
+ function sr(e) {
950
+ return D[ar(e) % D.length];
951
+ }
952
+ const cr = {
953
+ xs: 4,
954
+ sm: 6,
955
+ md: 8,
956
+ lg: 10,
957
+ xl: 12
958
+ };
959
+ function dr({
960
+ src: e,
961
+ name: o,
962
+ size: t = "md",
963
+ variant: i = "rounded",
964
+ children: n,
965
+ sx: a
966
+ }) {
967
+ const l = nr[t], f = o ? sr(o) : void 0, p = o ? lr(o) : void 0, c = n ?? (e ? void 0 : p);
968
+ return /* @__PURE__ */ r(
969
+ E,
970
+ {
971
+ src: e,
972
+ alt: o,
973
+ variant: i === "circular" ? "circular" : "rounded",
974
+ sx: {
975
+ width: l,
976
+ height: l,
977
+ fontSize: ir[t],
978
+ fontWeight: 600,
979
+ bgcolor: e ? void 0 : f,
980
+ ...i === "rounded" ? { borderRadius: `${cr[t]}px` } : {},
981
+ ...a
982
+ },
983
+ children: c
984
+ }
985
+ );
986
+ }
987
+ dr.displayName = "Avatar";
988
+ const fr = {
989
+ xs: 12,
990
+ sm: 14,
991
+ md: 16,
992
+ lg: 20,
993
+ xl: 24
994
+ };
995
+ function pr(e, o) {
996
+ if (o.toLowerCase().startsWith("dockerfile"))
997
+ return { icon: Ce, color: "var(--ov-info-default)" };
998
+ switch (e) {
999
+ case ".go":
1000
+ return { icon: Ee, color: "#00ADD8" };
1001
+ case ".ts":
1002
+ case ".tsx":
1003
+ return { icon: Me, color: "#3178C6" };
1004
+ case ".js":
1005
+ case ".jsx":
1006
+ case ".mjs":
1007
+ case ".cjs":
1008
+ return { icon: ze, color: "#F7DF1E" };
1009
+ case ".py":
1010
+ return { icon: Ie, color: "#3776AB" };
1011
+ case ".rs":
1012
+ return { icon: we, color: "#DEA584" };
1013
+ case ".yaml":
1014
+ case ".yml":
1015
+ return { icon: b, color: "var(--ov-info-default)" };
1016
+ case ".json":
1017
+ return { icon: N, color: "#F5C518" };
1018
+ case ".md":
1019
+ case ".mdx":
1020
+ case ".txt":
1021
+ case ".log":
1022
+ return { icon: de, color: "var(--ov-fg-muted)" };
1023
+ case ".html":
1024
+ case ".htm":
1025
+ case ".xml":
1026
+ case ".svg":
1027
+ return { icon: b, color: "#E44D26" };
1028
+ case ".css":
1029
+ case ".scss":
1030
+ case ".less":
1031
+ return { icon: b, color: "#264DE4" };
1032
+ case ".png":
1033
+ case ".jpg":
1034
+ case ".jpeg":
1035
+ case ".gif":
1036
+ case ".webp":
1037
+ case ".ico":
1038
+ return { icon: ce, color: "var(--ov-success-default)" };
1039
+ case ".toml":
1040
+ case ".ini":
1041
+ case ".env":
1042
+ case ".cfg":
1043
+ return { icon: b, color: "var(--ov-fg-muted)" };
1044
+ case ".sh":
1045
+ case ".bash":
1046
+ case ".zsh":
1047
+ return { icon: b, color: "var(--ov-success-default)" };
1048
+ case ".proto":
1049
+ return { icon: b, color: "var(--ov-warning-default)" };
1050
+ case ".sql":
1051
+ return { icon: b, color: "#336791" };
1052
+ case ".jsonc":
1053
+ return { icon: N, color: "#F5C518" };
1054
+ default:
1055
+ return { icon: se, color: "var(--ov-fg-muted)" };
1056
+ }
1057
+ }
1058
+ function ur({
1059
+ filename: e,
1060
+ size: o = "sm",
1061
+ sx: t
1062
+ }) {
1063
+ const i = fr[o], n = e.lastIndexOf("."), a = n >= 0 ? e.slice(n).toLowerCase() : "", l = e.split("/").pop() ?? e, { icon: f, color: p } = pr(a, l);
1064
+ return /* @__PURE__ */ r(
1065
+ d,
1066
+ {
1067
+ component: "span",
1068
+ sx: {
1069
+ display: "inline-flex",
1070
+ color: p,
1071
+ flexShrink: 0,
1072
+ ...typeof t == "object" && !Array.isArray(t) ? t : {}
1073
+ },
1074
+ children: /* @__PURE__ */ r(f, { size: i })
1075
+ }
1076
+ );
1077
+ }
1078
+ ur.displayName = "FileIcon";
1079
+ function hr({
1080
+ items: e,
1081
+ maxVisible: o = 3,
1082
+ renderItem: t,
1083
+ sx: i
1084
+ }) {
1085
+ const [n, a] = w(!1), l = n ? e : e.slice(0, o), f = e.length - o;
1086
+ return /* @__PURE__ */ s(
1087
+ d,
1088
+ {
1089
+ sx: {
1090
+ display: "flex",
1091
+ alignItems: "center",
1092
+ gap: 0.5,
1093
+ flexWrap: "wrap",
1094
+ ...typeof i == "object" && !Array.isArray(i) ? i : {}
1095
+ },
1096
+ children: [
1097
+ l.map(
1098
+ (p, c) => t ? t(p, c) : /* @__PURE__ */ r(d, { component: "span", children: p }, c)
1099
+ ),
1100
+ !n && f > 0 && /* @__PURE__ */ r(
1101
+ y,
1102
+ {
1103
+ label: `+${f} more`,
1104
+ size: "small",
1105
+ onClick: () => a(!0),
1106
+ sx: {
1107
+ fontSize: "var(--ov-text-xs)",
1108
+ height: 20,
1109
+ cursor: "pointer",
1110
+ bgcolor: "var(--ov-bg-surface-inset)",
1111
+ color: "var(--ov-fg-muted)",
1112
+ "&:hover": { bgcolor: "var(--ov-state-hover)" }
1113
+ }
1114
+ }
1115
+ ),
1116
+ n && f > 0 && /* @__PURE__ */ r(
1117
+ y,
1118
+ {
1119
+ label: "Show less",
1120
+ size: "small",
1121
+ onClick: () => a(!1),
1122
+ sx: {
1123
+ fontSize: "var(--ov-text-xs)",
1124
+ height: 20,
1125
+ cursor: "pointer",
1126
+ bgcolor: "var(--ov-bg-surface-inset)",
1127
+ color: "var(--ov-fg-muted)",
1128
+ "&:hover": { bgcolor: "var(--ov-state-hover)" }
1129
+ }
1130
+ }
1131
+ )
1132
+ ]
1133
+ }
1134
+ );
1135
+ }
1136
+ hr.displayName = "TruncatedList";
1137
+ function mr({
1138
+ query: e,
1139
+ suggestions: o,
1140
+ onSuggestionClick: t,
1141
+ sx: i
1142
+ }) {
1143
+ return /* @__PURE__ */ s(
1144
+ d,
1145
+ {
1146
+ sx: {
1147
+ display: "flex",
1148
+ flexDirection: "column",
1149
+ alignItems: "center",
1150
+ py: 4,
1151
+ gap: 1.5,
1152
+ ...typeof i == "object" && !Array.isArray(i) ? i : {}
1153
+ },
1154
+ children: [
1155
+ /* @__PURE__ */ r(Le, { sx: { fontSize: 32, color: "var(--ov-fg-faint)" } }),
1156
+ /* @__PURE__ */ s(u, { sx: { fontSize: "var(--ov-text-sm)", color: "var(--ov-fg-muted)" }, children: [
1157
+ "No results for “",
1158
+ e,
1159
+ "”"
1160
+ ] }),
1161
+ o && o.length > 0 && /* @__PURE__ */ s(d, { sx: { display: "flex", gap: 0.75, flexWrap: "wrap", justifyContent: "center", mt: 0.5 }, children: [
1162
+ /* @__PURE__ */ r(u, { sx: { fontSize: "var(--ov-text-xs)", color: "var(--ov-fg-faint)", width: "100%", textAlign: "center" }, children: "Try:" }),
1163
+ o.map((n) => /* @__PURE__ */ r(
1164
+ y,
1165
+ {
1166
+ label: n,
1167
+ size: "small",
1168
+ onClick: t ? () => t(n) : void 0,
1169
+ sx: {
1170
+ fontSize: "var(--ov-text-xs)",
1171
+ cursor: t ? "pointer" : "default",
1172
+ bgcolor: "var(--ov-bg-surface-inset)",
1173
+ color: "var(--ov-fg-muted)"
1174
+ }
1175
+ },
1176
+ n
1177
+ ))
1178
+ ] })
1179
+ ]
1180
+ }
1181
+ );
1182
+ }
1183
+ mr.displayName = "EmptySearch";
1184
+ function xr({
1185
+ active: e,
1186
+ children: o,
1187
+ label: t,
1188
+ blur: i = !1,
1189
+ sx: n
1190
+ }) {
1191
+ return /* @__PURE__ */ s(
1192
+ d,
1193
+ {
1194
+ sx: {
1195
+ position: "relative",
1196
+ ...typeof n == "object" && !Array.isArray(n) ? n : {}
1197
+ },
1198
+ children: [
1199
+ o,
1200
+ e && /* @__PURE__ */ s(
1201
+ d,
1202
+ {
1203
+ sx: {
1204
+ position: "absolute",
1205
+ inset: 0,
1206
+ display: "flex",
1207
+ flexDirection: "column",
1208
+ alignItems: "center",
1209
+ justifyContent: "center",
1210
+ gap: 1.5,
1211
+ bgcolor: "rgba(0, 0, 0, 0.3)",
1212
+ zIndex: 10,
1213
+ borderRadius: "inherit",
1214
+ ...i && { backdropFilter: "blur(3px)" }
1215
+ },
1216
+ children: [
1217
+ /* @__PURE__ */ r(_, { size: 28, sx: { color: "var(--ov-accent-fg)" } }),
1218
+ t && /* @__PURE__ */ r(u, { sx: { fontSize: "var(--ov-text-sm)", color: "#fff", fontWeight: 500 }, children: t })
1219
+ ]
1220
+ }
1221
+ )
1222
+ ]
1223
+ }
1224
+ );
1225
+ }
1226
+ xr.displayName = "LoadingOverlay";
1227
+ function gr({ shortcut: e }) {
1228
+ const o = e.split("+").map((t) => t.trim());
1229
+ return /* @__PURE__ */ r(ye, { keys: o });
1230
+ }
1231
+ gr.displayName = "Kbd";
1232
+ function vr({
1233
+ value: e,
1234
+ label: o,
1235
+ description: t,
1236
+ icon: i,
1237
+ trend: n,
1238
+ color: a = "primary",
1239
+ sx: l
1240
+ }) {
1241
+ const f = n ? n.value > 0 ? "up" : n.value < 0 ? "down" : "flat" : void 0, p = f === "up" ? "var(--ov-success-default)" : f === "down" ? "var(--ov-danger-default)" : "var(--ov-fg-muted)", c = f === "up" ? "↑" : f === "down" ? "↓" : "→";
1242
+ return /* @__PURE__ */ s(
1243
+ v,
1244
+ {
1245
+ variant: "outlined",
1246
+ sx: {
1247
+ p: 2,
1248
+ display: "flex",
1249
+ flexDirection: "column",
1250
+ gap: 0.5,
1251
+ ...l
1252
+ },
1253
+ children: [
1254
+ /* @__PURE__ */ s(h, { direction: "row", justifyContent: "space-between", alignItems: "flex-start", children: [
1255
+ /* @__PURE__ */ s(d, { children: [
1256
+ /* @__PURE__ */ r(
1257
+ u,
1258
+ {
1259
+ sx: {
1260
+ fontSize: "var(--ov-text-2xl)",
1261
+ fontWeight: 700,
1262
+ lineHeight: 1.2,
1263
+ color: `var(${G(a)})`
1264
+ },
1265
+ children: e
1266
+ }
1267
+ ),
1268
+ /* @__PURE__ */ r(
1269
+ u,
1270
+ {
1271
+ variant: "body2",
1272
+ sx: { color: "var(--ov-fg-muted)", fontWeight: 500, mt: 0.25 },
1273
+ children: o
1274
+ }
1275
+ )
1276
+ ] }),
1277
+ i && /* @__PURE__ */ r(d, { sx: { color: "var(--ov-fg-faint)", fontSize: 24, display: "flex" }, children: i })
1278
+ ] }),
1279
+ (n || t) && /* @__PURE__ */ s(h, { direction: "row", alignItems: "center", spacing: 1, sx: { mt: 0.5 }, children: [
1280
+ n && /* @__PURE__ */ s(
1281
+ u,
1282
+ {
1283
+ variant: "caption",
1284
+ sx: { color: p, fontWeight: 600 },
1285
+ children: [
1286
+ c,
1287
+ " ",
1288
+ Math.abs(n.value),
1289
+ "%",
1290
+ n.label ? ` ${n.label}` : ""
1291
+ ]
1292
+ }
1293
+ ),
1294
+ t && /* @__PURE__ */ r(u, { variant: "caption", sx: { color: "var(--ov-fg-faint)" }, children: t })
1295
+ ] })
1296
+ ]
1297
+ }
1298
+ );
1299
+ }
1300
+ vr.displayName = "StatCard";
1301
+ function br({
1302
+ media: e,
1303
+ mediaHeight: o = 140,
1304
+ title: t,
1305
+ description: i,
1306
+ meta: n,
1307
+ actions: a,
1308
+ onClick: l,
1309
+ sx: f
1310
+ }) {
1311
+ return /* @__PURE__ */ s(
1312
+ v,
1313
+ {
1314
+ variant: "outlined",
1315
+ onClick: l,
1316
+ sx: {
1317
+ p: 0,
1318
+ cursor: l ? "pointer" : void 0,
1319
+ transition: "border-color 0.15s, box-shadow 0.15s",
1320
+ "&:hover": l ? {
1321
+ borderColor: "var(--ov-border-focus)",
1322
+ boxShadow: "0 2px 8px rgba(0,0,0,0.08)"
1323
+ } : void 0,
1324
+ ...f
1325
+ },
1326
+ children: [
1327
+ typeof e == "string" ? /* @__PURE__ */ r(
1328
+ d,
1329
+ {
1330
+ sx: {
1331
+ height: o,
1332
+ width: "100%",
1333
+ backgroundImage: `url(${e})`,
1334
+ backgroundSize: "cover",
1335
+ backgroundPosition: "center",
1336
+ borderBottom: "1px solid var(--ov-border-default)"
1337
+ }
1338
+ }
1339
+ ) : /* @__PURE__ */ r(
1340
+ d,
1341
+ {
1342
+ sx: {
1343
+ height: o,
1344
+ width: "100%",
1345
+ display: "flex",
1346
+ alignItems: "center",
1347
+ justifyContent: "center",
1348
+ bgcolor: "var(--ov-bg-surface)",
1349
+ borderBottom: "1px solid var(--ov-border-default)",
1350
+ color: "var(--ov-fg-faint)",
1351
+ fontSize: 40
1352
+ },
1353
+ children: e
1354
+ }
1355
+ ),
1356
+ /* @__PURE__ */ s(d, { sx: { px: 1.5, py: 1.25 }, children: [
1357
+ /* @__PURE__ */ r(u, { variant: "subtitle2", sx: { mb: 0.25 }, children: t }),
1358
+ i && /* @__PURE__ */ r(
1359
+ u,
1360
+ {
1361
+ variant: "body2",
1362
+ sx: {
1363
+ color: "var(--ov-fg-muted)",
1364
+ display: "-webkit-box",
1365
+ WebkitLineClamp: 2,
1366
+ WebkitBoxOrient: "vertical",
1367
+ overflow: "hidden"
1368
+ },
1369
+ children: i
1370
+ }
1371
+ ),
1372
+ n && /* @__PURE__ */ r(
1373
+ u,
1374
+ {
1375
+ variant: "caption",
1376
+ component: "div",
1377
+ sx: { color: "var(--ov-fg-faint)", mt: 0.5 },
1378
+ children: n
1379
+ }
1380
+ )
1381
+ ] }),
1382
+ a && /* @__PURE__ */ r(
1383
+ h,
1384
+ {
1385
+ direction: "row",
1386
+ spacing: 1,
1387
+ sx: {
1388
+ px: 1.5,
1389
+ py: 1,
1390
+ borderTop: "1px solid var(--ov-border-default)"
1391
+ },
1392
+ children: a
1393
+ }
1394
+ )
1395
+ ]
1396
+ }
1397
+ );
1398
+ }
1399
+ br.displayName = "MediaCard";
1400
+ function yr({
1401
+ icon: e,
1402
+ title: o,
1403
+ description: t,
1404
+ primaryAction: i,
1405
+ secondaryAction: n,
1406
+ direction: a = "vertical",
1407
+ sx: l
1408
+ }) {
1409
+ const f = a === "horizontal";
1410
+ return /* @__PURE__ */ s(
1411
+ v,
1412
+ {
1413
+ variant: "outlined",
1414
+ sx: {
1415
+ p: 2,
1416
+ display: "flex",
1417
+ flexDirection: f ? "row" : "column",
1418
+ alignItems: f ? "center" : "flex-start",
1419
+ gap: f ? 2 : 1,
1420
+ ...l
1421
+ },
1422
+ children: [
1423
+ e && /* @__PURE__ */ r(
1424
+ d,
1425
+ {
1426
+ sx: {
1427
+ fontSize: 32,
1428
+ color: "var(--ov-fg-muted)",
1429
+ display: "flex",
1430
+ flexShrink: 0
1431
+ },
1432
+ children: e
1433
+ }
1434
+ ),
1435
+ /* @__PURE__ */ s(d, { sx: { flex: 1, minWidth: 0 }, children: [
1436
+ /* @__PURE__ */ r(u, { variant: "subtitle2", sx: { mb: 0.25 }, children: o }),
1437
+ t && /* @__PURE__ */ r(u, { variant: "body2", sx: { color: "var(--ov-fg-muted)" }, children: t })
1438
+ ] }),
1439
+ (i || n) && /* @__PURE__ */ s(
1440
+ h,
1441
+ {
1442
+ direction: "row",
1443
+ spacing: 1,
1444
+ sx: {
1445
+ mt: f ? 0 : 1,
1446
+ flexShrink: 0
1447
+ },
1448
+ children: [
1449
+ i,
1450
+ n
1451
+ ]
1452
+ }
1453
+ )
1454
+ ]
1455
+ }
1456
+ );
1457
+ }
1458
+ yr.displayName = "ActionCard";
1459
+ function Sr({
1460
+ title: e,
1461
+ icon: o,
1462
+ headerAction: t,
1463
+ items: i,
1464
+ maxVisible: n = 5,
1465
+ emptyMessage: a = "No items",
1466
+ sx: l
1467
+ }) {
1468
+ const p = n * 40;
1469
+ return /* @__PURE__ */ s(v, { variant: "outlined", sx: { p: 0, ...l }, children: [
1470
+ /* @__PURE__ */ s(
1471
+ h,
1472
+ {
1473
+ direction: "row",
1474
+ spacing: 1,
1475
+ sx: { px: 1.5, py: 1 },
1476
+ alignItems: "center",
1477
+ justifyContent: "space-between",
1478
+ children: [
1479
+ /* @__PURE__ */ s(h, { direction: "row", alignItems: "center", spacing: 1, children: [
1480
+ o && /* @__PURE__ */ r(d, { sx: { display: "flex", color: "var(--ov-fg-muted)", fontSize: 16 }, children: o }),
1481
+ /* @__PURE__ */ r(u, { variant: "subtitle2", children: e })
1482
+ ] }),
1483
+ t
1484
+ ]
1485
+ }
1486
+ ),
1487
+ /* @__PURE__ */ r(I, {}),
1488
+ i.length === 0 ? /* @__PURE__ */ r(d, { sx: { px: 1.5, py: 2, textAlign: "center" }, children: /* @__PURE__ */ r(u, { variant: "body2", sx: { color: "var(--ov-fg-faint)" }, children: a }) }) : /* @__PURE__ */ r(d, { sx: { maxHeight: p, overflowY: "auto" }, children: i.map((c, m) => {
1489
+ const g = /* @__PURE__ */ s(
1490
+ h,
1491
+ {
1492
+ direction: "row",
1493
+ alignItems: "center",
1494
+ spacing: 1,
1495
+ sx: {
1496
+ px: 1.5,
1497
+ height: 40,
1498
+ width: "100%",
1499
+ borderBottom: m < i.length - 1 ? "1px solid var(--ov-border-default)" : void 0,
1500
+ "&:hover": c.onClick ? { bgcolor: "var(--ov-bg-surface-hover)" } : void 0,
1501
+ transition: "background-color 0.1s"
1502
+ },
1503
+ children: [
1504
+ c.icon && /* @__PURE__ */ r(d, { sx: { display: "flex", color: "var(--ov-fg-muted)", fontSize: 16, flexShrink: 0 }, children: c.icon }),
1505
+ /* @__PURE__ */ s(d, { sx: { flex: 1, minWidth: 0 }, children: [
1506
+ /* @__PURE__ */ r(u, { variant: "body2", noWrap: !0, children: c.label }),
1507
+ c.secondary && /* @__PURE__ */ r(u, { variant: "caption", noWrap: !0, sx: { color: "var(--ov-fg-faint)" }, children: c.secondary })
1508
+ ] }),
1509
+ c.trailing && /* @__PURE__ */ r(d, { sx: { flexShrink: 0, display: "flex", alignItems: "center" }, children: c.trailing })
1510
+ ]
1511
+ }
1512
+ );
1513
+ return c.onClick ? /* @__PURE__ */ r(
1514
+ Ae,
1515
+ {
1516
+ onClick: c.onClick,
1517
+ sx: { display: "block", width: "100%", textAlign: "left" },
1518
+ children: g
1519
+ },
1520
+ c.key
1521
+ ) : /* @__PURE__ */ r(L.Fragment, { children: g }, c.key);
1522
+ }) })
1523
+ ] });
1524
+ }
1525
+ Sr.displayName = "ListCard";
1526
+ function Cr({
1527
+ title: e,
1528
+ icon: o,
1529
+ status: t,
1530
+ statusLabel: i,
1531
+ description: n,
1532
+ metadata: a,
1533
+ headerAction: l,
1534
+ sx: f
1535
+ }) {
1536
+ return /* @__PURE__ */ s(v, { variant: "outlined", sx: { p: 0, ...f }, children: [
1537
+ /* @__PURE__ */ s(
1538
+ h,
1539
+ {
1540
+ direction: "row",
1541
+ spacing: 1,
1542
+ sx: { px: 1.5, py: 1 },
1543
+ alignItems: "center",
1544
+ justifyContent: "space-between",
1545
+ children: [
1546
+ /* @__PURE__ */ s(h, { direction: "row", alignItems: "center", spacing: 1, children: [
1547
+ o && /* @__PURE__ */ r(d, { sx: { display: "flex", color: "var(--ov-fg-muted)", fontSize: 16 }, children: o }),
1548
+ /* @__PURE__ */ r(u, { variant: "subtitle2", children: e })
1549
+ ] }),
1550
+ l
1551
+ ]
1552
+ }
1553
+ ),
1554
+ /* @__PURE__ */ r(I, {}),
1555
+ /* @__PURE__ */ s(d, { sx: { px: 1.5, py: 1.25 }, children: [
1556
+ /* @__PURE__ */ s(h, { direction: "row", alignItems: "center", spacing: 1, children: [
1557
+ /* @__PURE__ */ r(Ne, { status: t, pulse: t === "pending" }),
1558
+ /* @__PURE__ */ r(
1559
+ u,
1560
+ {
1561
+ variant: "body2",
1562
+ sx: { fontWeight: 600, textTransform: "capitalize" },
1563
+ children: i ?? t
1564
+ }
1565
+ )
1566
+ ] }),
1567
+ n && /* @__PURE__ */ r(
1568
+ u,
1569
+ {
1570
+ variant: "body2",
1571
+ sx: { color: "var(--ov-fg-muted)", mt: 0.5 },
1572
+ children: n
1573
+ }
1574
+ )
1575
+ ] }),
1576
+ a && a.length > 0 && /* @__PURE__ */ s(T, { children: [
1577
+ /* @__PURE__ */ r(I, {}),
1578
+ /* @__PURE__ */ r(d, { sx: { px: 1.5, py: 1 }, children: a.map((p, c) => /* @__PURE__ */ s(
1579
+ h,
1580
+ {
1581
+ direction: "row",
1582
+ justifyContent: "space-between",
1583
+ alignItems: "center",
1584
+ sx: {
1585
+ py: 0.5,
1586
+ borderBottom: c < a.length - 1 ? "1px solid var(--ov-border-default)" : void 0
1587
+ },
1588
+ children: [
1589
+ /* @__PURE__ */ r(u, { variant: "caption", sx: { color: "var(--ov-fg-muted)" }, children: p.label }),
1590
+ /* @__PURE__ */ r(u, { variant: "caption", sx: { color: "var(--ov-fg-default)", fontWeight: 500 }, children: p.value })
1591
+ ]
1592
+ },
1593
+ p.label
1594
+ )) })
1595
+ ] })
1596
+ ] });
1597
+ }
1598
+ Cr.displayName = "StatusCard";
1599
+ export {
1600
+ yr as ActionCard,
1601
+ Ze as AspectRatio,
1602
+ dr as Avatar,
1603
+ or as Badge,
1604
+ ke as Card,
1605
+ K as Chip,
1606
+ ft as CircularProgress,
1607
+ er as ClipboardText,
1608
+ De as DetailsCard,
1609
+ lt as Divider,
1610
+ mr as EmptySearch,
1611
+ Ve as ExpandableSection,
1612
+ Ke as ExpandableSections,
1613
+ ur as FileIcon,
1614
+ ye as HotkeyHint,
1615
+ C as Icon,
1616
+ tr as InlineEdit,
1617
+ Te as KVCard,
1618
+ gr as Kbd,
1619
+ ct as LinearProgress,
1620
+ Je as List,
1621
+ Sr as ListCard,
1622
+ Qe as ListDivider,
1623
+ Xe as ListItem,
1624
+ ut as ListSubheader,
1625
+ xr as LoadingOverlay,
1626
+ br as MediaCard,
1627
+ nt as MetricsSection,
1628
+ rr as OverflowText,
1629
+ vr as StatCard,
1630
+ Cr as StatusCard,
1631
+ hr as TruncatedList
1632
+ };