@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
@@ -0,0 +1,762 @@
1
+ import { jsxs as y, jsx as r, Fragment as V } from "react/jsx-runtime";
2
+ import i from "@mui/material/Box";
3
+ import F from "@mui/material/Tooltip";
4
+ import { useState as C, useMemo as G, useRef as N, useCallback as A, useEffect as D } from "react";
5
+ import m from "@mui/material/Typography";
6
+ import j from "@mui/material/InputBase";
7
+ import { LuSearch as $, LuChevronDown as z, LuChevronRight as E } from "react-icons/lu";
8
+ import B from "@mui/material/Collapse";
9
+ import _ from "@mui/material/Chip";
10
+ import K from "@mui/material/Checkbox";
11
+ function Z({ count: e }) {
12
+ return e ? e === !0 ? /* @__PURE__ */ r(
13
+ i,
14
+ {
15
+ sx: {
16
+ position: "absolute",
17
+ top: 6,
18
+ right: 6,
19
+ width: 8,
20
+ height: 8,
21
+ borderRadius: "50%",
22
+ bgcolor: "var(--ov-accent-fg)",
23
+ border: "2px solid var(--ov-bg-surface)"
24
+ }
25
+ }
26
+ ) : /* @__PURE__ */ r(
27
+ i,
28
+ {
29
+ sx: {
30
+ position: "absolute",
31
+ top: 4,
32
+ right: 4,
33
+ minWidth: 16,
34
+ height: 16,
35
+ borderRadius: 8,
36
+ bgcolor: "var(--ov-accent-fg)",
37
+ color: "#fff",
38
+ fontSize: 10,
39
+ fontWeight: 600,
40
+ display: "flex",
41
+ alignItems: "center",
42
+ justifyContent: "center",
43
+ px: 0.5,
44
+ border: "2px solid var(--ov-bg-surface)"
45
+ },
46
+ children: e > 99 ? "99+" : e
47
+ }
48
+ ) : null;
49
+ }
50
+ function H({
51
+ item: e,
52
+ active: o,
53
+ onClick: a,
54
+ position: n
55
+ }) {
56
+ return /* @__PURE__ */ r(F, { title: e.label, placement: n === "left" ? "right" : "left", children: /* @__PURE__ */ y(
57
+ i,
58
+ {
59
+ onClick: a,
60
+ sx: {
61
+ position: "relative",
62
+ width: "100%",
63
+ aspectRatio: "1",
64
+ display: "flex",
65
+ alignItems: "center",
66
+ justifyContent: "center",
67
+ cursor: "pointer",
68
+ color: o ? "var(--ov-fg-base)" : "var(--ov-fg-muted)",
69
+ opacity: o ? 1 : 0.7,
70
+ "&:hover": { opacity: 1, color: "var(--ov-fg-base)" },
71
+ "&::before": o ? {
72
+ content: '""',
73
+ position: "absolute",
74
+ [n === "left" ? "left" : "right"]: 0,
75
+ top: "25%",
76
+ height: "50%",
77
+ width: 2,
78
+ borderRadius: 1,
79
+ bgcolor: "var(--ov-accent-fg)"
80
+ } : {},
81
+ transition: "color 100ms ease, opacity 100ms ease",
82
+ fontSize: 22
83
+ },
84
+ children: [
85
+ e.icon,
86
+ /* @__PURE__ */ r(Z, { count: e.badge })
87
+ ]
88
+ }
89
+ ) });
90
+ }
91
+ function q({
92
+ items: e,
93
+ activeId: o,
94
+ onChange: a,
95
+ position: n = "left",
96
+ bottomItems: t,
97
+ width: l = 48,
98
+ sx: s
99
+ }) {
100
+ return /* @__PURE__ */ y(
101
+ i,
102
+ {
103
+ sx: {
104
+ width: l,
105
+ minWidth: l,
106
+ height: "100%",
107
+ bgcolor: "var(--ov-bg-surface)",
108
+ borderRight: n === "left" ? "1px solid var(--ov-border-default)" : void 0,
109
+ borderLeft: n === "right" ? "1px solid var(--ov-border-default)" : void 0,
110
+ display: "flex",
111
+ flexDirection: "column",
112
+ alignItems: "center",
113
+ py: 0.5,
114
+ ...typeof s == "object" && !Array.isArray(s) ? s : {}
115
+ },
116
+ children: [
117
+ /* @__PURE__ */ r(i, { sx: { display: "flex", flexDirection: "column", alignItems: "center", width: "100%", flex: 1 }, children: e.map((c) => /* @__PURE__ */ r(
118
+ H,
119
+ {
120
+ item: c,
121
+ active: o === c.id,
122
+ onClick: () => a?.(c.id),
123
+ position: n
124
+ },
125
+ c.id
126
+ )) }),
127
+ t && t.length > 0 && /* @__PURE__ */ r(i, { sx: { display: "flex", flexDirection: "column", alignItems: "center", width: "100%" }, children: t.map((c) => /* @__PURE__ */ r(
128
+ H,
129
+ {
130
+ item: c,
131
+ active: o === c.id,
132
+ onClick: () => a?.(c.id),
133
+ position: n
134
+ },
135
+ c.id
136
+ )) })
137
+ ]
138
+ }
139
+ );
140
+ }
141
+ q.displayName = "ActivityBar";
142
+ function J({
143
+ title: e,
144
+ icon: o,
145
+ toolbar: a,
146
+ children: n,
147
+ searchable: t = !1,
148
+ onSearch: l,
149
+ badge: s,
150
+ width: c = 260,
151
+ sx: f
152
+ }) {
153
+ const [d, p] = C(""), u = (h) => {
154
+ p(h), l?.(h);
155
+ };
156
+ return /* @__PURE__ */ y(
157
+ i,
158
+ {
159
+ sx: {
160
+ width: c,
161
+ minWidth: c,
162
+ height: "100%",
163
+ display: "flex",
164
+ flexDirection: "column",
165
+ bgcolor: "var(--ov-bg-surface)",
166
+ borderRight: "1px solid var(--ov-border-default)",
167
+ overflow: "hidden",
168
+ ...typeof f == "object" && !Array.isArray(f) ? f : {}
169
+ },
170
+ children: [
171
+ /* @__PURE__ */ y(
172
+ i,
173
+ {
174
+ sx: {
175
+ display: "flex",
176
+ alignItems: "center",
177
+ gap: 0.75,
178
+ px: 1.5,
179
+ py: 1,
180
+ minHeight: 36,
181
+ borderBottom: "1px solid var(--ov-border-muted)"
182
+ },
183
+ children: [
184
+ o && /* @__PURE__ */ r(i, { sx: { display: "flex", alignItems: "center", color: "var(--ov-fg-muted)", fontSize: 14 }, children: o }),
185
+ /* @__PURE__ */ r(
186
+ m,
187
+ {
188
+ variant: "subtitle2",
189
+ sx: {
190
+ flex: 1,
191
+ fontSize: 11,
192
+ fontWeight: 600,
193
+ textTransform: "uppercase",
194
+ letterSpacing: "0.05em",
195
+ color: "var(--ov-fg-muted)"
196
+ },
197
+ noWrap: !0,
198
+ children: e
199
+ }
200
+ ),
201
+ s,
202
+ a
203
+ ]
204
+ }
205
+ ),
206
+ t && /* @__PURE__ */ r(i, { sx: { px: 1, py: 0.75, borderBottom: "1px solid var(--ov-border-muted)" }, children: /* @__PURE__ */ y(
207
+ i,
208
+ {
209
+ sx: {
210
+ display: "flex",
211
+ alignItems: "center",
212
+ gap: 0.5,
213
+ px: 1,
214
+ py: 0.25,
215
+ borderRadius: 1,
216
+ bgcolor: "var(--ov-bg-base)",
217
+ border: "1px solid var(--ov-border-default)"
218
+ },
219
+ children: [
220
+ /* @__PURE__ */ r($, { size: 13, color: "var(--ov-fg-faint)" }),
221
+ /* @__PURE__ */ r(
222
+ j,
223
+ {
224
+ value: d,
225
+ onChange: (h) => u(h.target.value),
226
+ placeholder: "Search...",
227
+ sx: {
228
+ flex: 1,
229
+ fontSize: 12,
230
+ "& input": { padding: 0 },
231
+ "& input::placeholder": { color: "var(--ov-fg-faint)", opacity: 1 }
232
+ }
233
+ }
234
+ )
235
+ ]
236
+ }
237
+ ) }),
238
+ /* @__PURE__ */ r(i, { sx: { flex: 1, overflow: "auto", py: 0.5 }, children: n })
239
+ ]
240
+ }
241
+ );
242
+ }
243
+ J.displayName = "SidebarPanel";
244
+ function Q({
245
+ title: e,
246
+ count: o,
247
+ defaultExpanded: a = !0,
248
+ children: n,
249
+ actions: t,
250
+ sx: l
251
+ }) {
252
+ const [s, c] = C(a);
253
+ return /* @__PURE__ */ y(i, { sx: l, children: [
254
+ /* @__PURE__ */ y(
255
+ i,
256
+ {
257
+ onClick: () => c(!s),
258
+ sx: {
259
+ display: "flex",
260
+ alignItems: "center",
261
+ gap: 0.25,
262
+ px: 1,
263
+ py: 0.5,
264
+ cursor: "pointer",
265
+ userSelect: "none",
266
+ "&:hover": { bgcolor: "var(--ov-state-hover)" },
267
+ "&:hover .sidebar-group-actions": { opacity: 1 }
268
+ },
269
+ children: [
270
+ /* @__PURE__ */ r(i, { sx: { display: "flex", alignItems: "center", flexShrink: 0, color: "var(--ov-fg-faint)" }, children: s ? /* @__PURE__ */ r(z, { size: 12 }) : /* @__PURE__ */ r(E, { size: 12 }) }),
271
+ /* @__PURE__ */ r(
272
+ m,
273
+ {
274
+ variant: "caption",
275
+ sx: {
276
+ flex: 1,
277
+ fontSize: 11,
278
+ fontWeight: 600,
279
+ textTransform: "uppercase",
280
+ letterSpacing: "0.06em",
281
+ color: "var(--ov-fg-muted)",
282
+ lineHeight: 1.4
283
+ },
284
+ noWrap: !0,
285
+ children: e
286
+ }
287
+ ),
288
+ o != null && /* @__PURE__ */ r(
289
+ _,
290
+ {
291
+ label: o,
292
+ size: "small",
293
+ sx: {
294
+ height: 16,
295
+ fontSize: 10,
296
+ fontWeight: 600,
297
+ bgcolor: "var(--ov-state-hover)",
298
+ color: "var(--ov-fg-muted)",
299
+ "& .MuiChip-label": { px: 0.75 }
300
+ }
301
+ }
302
+ ),
303
+ t && /* @__PURE__ */ r(
304
+ i,
305
+ {
306
+ className: "sidebar-group-actions",
307
+ onClick: (f) => f.stopPropagation(),
308
+ sx: {
309
+ display: "flex",
310
+ alignItems: "center",
311
+ gap: 0.25,
312
+ opacity: 0,
313
+ transition: "opacity 100ms ease"
314
+ },
315
+ children: t
316
+ }
317
+ )
318
+ ]
319
+ }
320
+ ),
321
+ /* @__PURE__ */ r(B, { in: s, unmountOnExit: !0, children: n })
322
+ ] });
323
+ }
324
+ Q.displayName = "SidebarGroup";
325
+ function U({
326
+ label: e,
327
+ icon: o,
328
+ badge: a,
329
+ actions: n,
330
+ depth: t = 0,
331
+ selected: l = !1,
332
+ expanded: s = !1,
333
+ hasChildren: c = !1,
334
+ onClick: f,
335
+ onToggle: d,
336
+ onContextMenu: p,
337
+ sx: u
338
+ }) {
339
+ return /* @__PURE__ */ y(
340
+ i,
341
+ {
342
+ onClick: f,
343
+ onContextMenu: p,
344
+ sx: {
345
+ display: "flex",
346
+ alignItems: "center",
347
+ gap: 0.5,
348
+ py: 0.25,
349
+ pr: 1,
350
+ pl: t * 1.5 + 1,
351
+ cursor: "pointer",
352
+ minHeight: 24,
353
+ borderRadius: "4px",
354
+ mx: 0.5,
355
+ bgcolor: l ? "var(--ov-accent-subtle)" : "transparent",
356
+ color: l ? "var(--ov-accent-fg)" : "var(--ov-fg-default)",
357
+ "&:hover": {
358
+ bgcolor: l ? "var(--ov-accent-subtle)" : "var(--ov-state-hover)"
359
+ },
360
+ "&:hover .tree-item-actions": { opacity: 1 },
361
+ ...typeof u == "object" && !Array.isArray(u) ? u : {}
362
+ },
363
+ children: [
364
+ c ? /* @__PURE__ */ r(
365
+ i,
366
+ {
367
+ onClick: (h) => {
368
+ h.stopPropagation(), d?.();
369
+ },
370
+ sx: {
371
+ display: "flex",
372
+ alignItems: "center",
373
+ flexShrink: 0,
374
+ color: "var(--ov-fg-faint)",
375
+ "&:hover": { color: "var(--ov-fg-default)" }
376
+ },
377
+ children: s ? /* @__PURE__ */ r(z, { size: 14 }) : /* @__PURE__ */ r(E, { size: 14 })
378
+ }
379
+ ) : /* @__PURE__ */ r(i, { sx: { width: 14, flexShrink: 0 } }),
380
+ o && /* @__PURE__ */ r(i, { sx: { display: "flex", alignItems: "center", flexShrink: 0, fontSize: 14 }, children: o }),
381
+ /* @__PURE__ */ r(
382
+ m,
383
+ {
384
+ variant: "body2",
385
+ sx: {
386
+ flex: 1,
387
+ fontSize: 12,
388
+ color: "inherit",
389
+ lineHeight: 1.4
390
+ },
391
+ noWrap: !0,
392
+ children: e
393
+ }
394
+ ),
395
+ a,
396
+ n && /* @__PURE__ */ r(
397
+ i,
398
+ {
399
+ className: "tree-item-actions",
400
+ onClick: (h) => h.stopPropagation(),
401
+ sx: {
402
+ display: "flex",
403
+ alignItems: "center",
404
+ gap: 0.25,
405
+ opacity: 0,
406
+ transition: "opacity 100ms ease"
407
+ },
408
+ children: n
409
+ }
410
+ )
411
+ ]
412
+ }
413
+ );
414
+ }
415
+ U.displayName = "SidebarTreeItem";
416
+ const X = {
417
+ xs: "11px",
418
+ sm: "12px",
419
+ md: "12px",
420
+ lg: "13px",
421
+ xl: "14px"
422
+ }, Y = {
423
+ xs: 22,
424
+ sm: 24,
425
+ md: 26,
426
+ lg: 30,
427
+ xl: 34
428
+ };
429
+ function w({
430
+ item: e,
431
+ size: o,
432
+ editable: a,
433
+ onEdit: n,
434
+ striped: t
435
+ }) {
436
+ const [l, s] = C(!1), [c, f] = C(""), d = X[o], p = Y[o], u = a || e.editable, h = () => {
437
+ if (!u) return;
438
+ const b = typeof e.value == "string" ? e.value : String(e.value ?? "");
439
+ f(b), s(!0);
440
+ }, I = () => {
441
+ s(!1), n?.(e.key, c);
442
+ }, W = () => l ? /* @__PURE__ */ r(
443
+ j,
444
+ {
445
+ value: c,
446
+ onChange: (b) => f(b.target.value),
447
+ onBlur: I,
448
+ onKeyDown: (b) => {
449
+ b.key === "Enter" && I(), b.key === "Escape" && s(!1);
450
+ },
451
+ autoFocus: !0,
452
+ sx: { fontSize: d, flex: 1, "& input": { py: 0, px: 0.5 } }
453
+ }
454
+ ) : e.type === "boolean" ? /* @__PURE__ */ r(
455
+ K,
456
+ {
457
+ checked: e.value === !0 || e.value === "true",
458
+ size: "small",
459
+ disabled: !u,
460
+ sx: { p: 0 }
461
+ }
462
+ ) : e.type === "color" && typeof e.value == "string" ? /* @__PURE__ */ y(i, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: [
463
+ /* @__PURE__ */ r(
464
+ i,
465
+ {
466
+ sx: {
467
+ width: 12,
468
+ height: 12,
469
+ borderRadius: 0.5,
470
+ bgcolor: e.value,
471
+ border: "1px solid var(--ov-border-default)",
472
+ flexShrink: 0
473
+ }
474
+ }
475
+ ),
476
+ /* @__PURE__ */ r(m, { variant: "body2", sx: { fontSize: d, color: "inherit", fontFamily: "var(--ov-font-mono)" }, noWrap: !0, children: e.value })
477
+ ] }) : e.type === "code" ? /* @__PURE__ */ r(m, { variant: "body2", sx: { fontSize: d, color: "inherit", fontFamily: "var(--ov-font-mono)" }, noWrap: !0, children: e.value }) : e.type === "link" ? /* @__PURE__ */ r(
478
+ m,
479
+ {
480
+ variant: "body2",
481
+ sx: { fontSize: d, color: "var(--ov-accent-fg)", cursor: "pointer", "&:hover": { textDecoration: "underline" } },
482
+ noWrap: !0,
483
+ children: e.value
484
+ }
485
+ ) : /* @__PURE__ */ r(m, { variant: "body2", sx: { fontSize: d, color: "inherit" }, noWrap: !0, children: e.value });
486
+ return /* @__PURE__ */ y(
487
+ i,
488
+ {
489
+ onDoubleClick: h,
490
+ sx: {
491
+ display: "flex",
492
+ alignItems: "center",
493
+ minHeight: p,
494
+ px: 1,
495
+ gap: 1,
496
+ bgcolor: t ? "var(--ov-state-hover)" : "transparent",
497
+ "&:hover": { bgcolor: "var(--ov-state-hover)" }
498
+ },
499
+ children: [
500
+ /* @__PURE__ */ r(
501
+ m,
502
+ {
503
+ variant: "body2",
504
+ sx: {
505
+ width: "40%",
506
+ minWidth: "40%",
507
+ fontSize: d,
508
+ color: "var(--ov-fg-muted)",
509
+ fontWeight: 500
510
+ },
511
+ noWrap: !0,
512
+ children: e.label
513
+ }
514
+ ),
515
+ /* @__PURE__ */ r(i, { sx: { flex: 1, display: "flex", alignItems: "center", overflow: "hidden", color: "var(--ov-fg-default)" }, children: W() })
516
+ ]
517
+ }
518
+ );
519
+ }
520
+ function ee({
521
+ items: e,
522
+ columns: o = 1,
523
+ size: a = "md",
524
+ editable: n = !1,
525
+ onEdit: t,
526
+ sx: l
527
+ }) {
528
+ if (o === 2) {
529
+ const s = Math.ceil(e.length / 2), c = e.slice(0, s), f = e.slice(s);
530
+ return /* @__PURE__ */ y(i, { sx: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: 0, ...typeof l == "object" && !Array.isArray(l) ? l : {} }, children: [
531
+ /* @__PURE__ */ r(i, { children: c.map((d, p) => /* @__PURE__ */ r(w, { item: d, size: a, editable: n, onEdit: t, striped: p % 2 === 1 }, d.key)) }),
532
+ /* @__PURE__ */ r(i, { children: f.map((d, p) => /* @__PURE__ */ r(w, { item: d, size: a, editable: n, onEdit: t, striped: p % 2 === 1 }, d.key)) })
533
+ ] });
534
+ }
535
+ return /* @__PURE__ */ r(i, { sx: l, children: e.map((s, c) => /* @__PURE__ */ r(w, { item: s, size: a, editable: n, onEdit: t, striped: c % 2 === 1 }, s.key)) });
536
+ }
537
+ ee.displayName = "PropertyGrid";
538
+ const re = {
539
+ xs: 11,
540
+ sm: 12,
541
+ md: 13,
542
+ lg: 14,
543
+ xl: 15
544
+ }, M = 12, T = 14, te = 10;
545
+ function oe(e) {
546
+ const o = {};
547
+ function a(n) {
548
+ for (const t of n)
549
+ t.children && t.children.length > 0 && (o[t.id] = !0), t.children && a(t.children);
550
+ }
551
+ for (const n of e) a(n.items);
552
+ return o;
553
+ }
554
+ function ne(e) {
555
+ const o = {};
556
+ function a(n) {
557
+ for (const t of n)
558
+ t.defaultExpanded && (o[t.id] = !0), t.children && a(t.children);
559
+ }
560
+ for (const n of e) a(n.items);
561
+ return o;
562
+ }
563
+ function ie(e, o) {
564
+ const a = [];
565
+ function n(t) {
566
+ for (const l of t) {
567
+ if (l.id === o) return !0;
568
+ if (l.children && l.children.length > 0) {
569
+ if (a.push(l.id), n(l.children)) return !0;
570
+ a.pop();
571
+ }
572
+ }
573
+ return !1;
574
+ }
575
+ for (const t of e) {
576
+ if (n(t.items)) return [...a];
577
+ a.length = 0;
578
+ }
579
+ return [];
580
+ }
581
+ function P({
582
+ item: e,
583
+ depth: o,
584
+ selected: a,
585
+ onSelect: n,
586
+ fontSize: t,
587
+ expandedState: l,
588
+ onToggleExpanded: s,
589
+ animate: c
590
+ }) {
591
+ const f = l[e.id] ?? !1, d = a === e.id, p = e.children && e.children.length > 0, u = p && e.children && /* @__PURE__ */ r(V, { children: e.children.map((h) => /* @__PURE__ */ r(
592
+ P,
593
+ {
594
+ item: h,
595
+ depth: o + 1,
596
+ selected: a,
597
+ onSelect: n,
598
+ fontSize: t,
599
+ expandedState: l,
600
+ onToggleExpanded: s,
601
+ animate: c
602
+ },
603
+ h.id
604
+ )) });
605
+ return /* @__PURE__ */ y(i, { children: [
606
+ /* @__PURE__ */ y(
607
+ i,
608
+ {
609
+ onClick: () => {
610
+ e.disabled || (p ? s(e.id) : n?.(e.id));
611
+ },
612
+ sx: {
613
+ display: "flex",
614
+ alignItems: "center",
615
+ gap: "4px",
616
+ pl: `${o * te + 4}px`,
617
+ pr: "6px",
618
+ py: "3px",
619
+ cursor: e.disabled ? "default" : "pointer",
620
+ opacity: e.disabled ? 0.5 : 1,
621
+ borderRadius: "4px",
622
+ mx: "4px",
623
+ my: "1px",
624
+ bgcolor: d ? "var(--ov-accent-subtle)" : "transparent",
625
+ color: d ? "var(--ov-accent-fg)" : "var(--ov-fg-default)",
626
+ fontWeight: d ? 600 : p ? 500 : 400,
627
+ "&:hover": {
628
+ bgcolor: d ? "var(--ov-accent-subtle)" : "var(--ov-state-hover)"
629
+ }
630
+ },
631
+ children: [
632
+ /* @__PURE__ */ r(
633
+ i,
634
+ {
635
+ sx: {
636
+ display: "flex",
637
+ alignItems: "center",
638
+ justifyContent: "center",
639
+ width: T,
640
+ minWidth: T,
641
+ flexShrink: 0,
642
+ color: "var(--ov-fg-faint)"
643
+ },
644
+ children: p && (f ? /* @__PURE__ */ r(z, { size: M }) : /* @__PURE__ */ r(E, { size: M }))
645
+ }
646
+ ),
647
+ e.icon && /* @__PURE__ */ r(i, { sx: { display: "flex", alignItems: "center", flexShrink: 0, fontSize: t + 2 }, children: e.icon }),
648
+ /* @__PURE__ */ r(
649
+ m,
650
+ {
651
+ variant: "body2",
652
+ sx: { flex: 1, fontSize: t, color: "inherit", fontWeight: "inherit" },
653
+ noWrap: !0,
654
+ children: e.label
655
+ }
656
+ ),
657
+ e.badge
658
+ ]
659
+ }
660
+ ),
661
+ p && (c ? /* @__PURE__ */ r(B, { in: f, unmountOnExit: !0, children: u }) : f ? u : null)
662
+ ] });
663
+ }
664
+ const ae = {
665
+ overflow: "auto",
666
+ maxHeight: "100%",
667
+ flex: 1,
668
+ minHeight: 0,
669
+ scrollbarWidth: "none",
670
+ "&::-webkit-scrollbar": { display: "none" }
671
+ };
672
+ function le({
673
+ sections: e,
674
+ selected: o,
675
+ onSelect: a,
676
+ size: n = "md",
677
+ scrollable: t,
678
+ defaultExpanded: l = !1,
679
+ animate: s = !0,
680
+ initialExpandedState: c,
681
+ onExpandedChange: f,
682
+ sx: d
683
+ }) {
684
+ const p = re[n], u = G(
685
+ () => l ? oe(e) : ne(e),
686
+ [e, l]
687
+ ), [h, I] = C(() => ({
688
+ ...u,
689
+ ...c ?? {}
690
+ })), W = N(f);
691
+ W.current = f;
692
+ const b = A((g) => {
693
+ I((v) => {
694
+ const x = g(v);
695
+ return x !== v && W.current?.(x), x;
696
+ });
697
+ }, []), R = N(e);
698
+ D(() => {
699
+ R.current !== e && (R.current = e, b((g) => {
700
+ const v = u, x = { ...g };
701
+ let k = !1;
702
+ for (const S of Object.keys(v))
703
+ S in x || (x[S] = v[S], k = !0);
704
+ return k ? x : g;
705
+ }));
706
+ }, [e, u, b]), D(() => {
707
+ if (!o) return;
708
+ const g = ie(e, o);
709
+ g.length > 0 && b((v) => {
710
+ const x = { ...v };
711
+ let k = !1;
712
+ for (const S of g)
713
+ x[S] || (x[S] = !0, k = !0);
714
+ return k ? x : v;
715
+ });
716
+ }, [o, e, b]);
717
+ const O = A((g) => {
718
+ b((v) => ({ ...v, [g]: !v[g] }));
719
+ }, [b]), L = t ? { ...ae, ...d } : d;
720
+ return /* @__PURE__ */ r(i, { sx: L, children: e.map((g, v) => /* @__PURE__ */ y(i, { sx: { mb: 0.5, mt: v === 0 ? 0 : 0.25 }, children: [
721
+ g.title && /* @__PURE__ */ r(
722
+ m,
723
+ {
724
+ variant: "overline",
725
+ sx: {
726
+ display: "block",
727
+ px: "12px",
728
+ py: "4px",
729
+ fontSize: 10,
730
+ fontWeight: 600,
731
+ letterSpacing: "0.08em",
732
+ color: "var(--ov-fg-faint)",
733
+ textTransform: "uppercase"
734
+ },
735
+ children: g.title
736
+ }
737
+ ),
738
+ g.items.map((x) => /* @__PURE__ */ r(
739
+ P,
740
+ {
741
+ item: x,
742
+ depth: 0,
743
+ selected: o,
744
+ onSelect: a,
745
+ fontSize: p,
746
+ expandedState: h,
747
+ onToggleExpanded: O,
748
+ animate: s
749
+ },
750
+ x.id
751
+ ))
752
+ ] }, g.title || `section-${v}`)) });
753
+ }
754
+ le.displayName = "NavMenu";
755
+ export {
756
+ q as ActivityBar,
757
+ le as NavMenu,
758
+ ee as PropertyGrid,
759
+ Q as SidebarGroup,
760
+ J as SidebarPanel,
761
+ U as SidebarTreeItem
762
+ };