@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/theme.js ADDED
@@ -0,0 +1,1362 @@
1
+ import { jsx as x, Fragment as I, jsxs as B } from "react/jsx-runtime";
2
+ import { createTheme as v, ThemeProvider as W, CssBaseline as F, useColorScheme as H } from "@mui/material";
3
+ import * as C from "react";
4
+ import { useMemo as P, useEffect as D } from "react";
5
+ import { createTheme as L, alpha as e, lighten as S, darken as M } from "@mui/material/styles";
6
+ import { outlinedInputClasses as u } from "@mui/material/OutlinedInput";
7
+ import { toggleButtonGroupClasses as $ } from "@mui/material/ToggleButtonGroup";
8
+ import { toggleButtonClasses as O } from "@mui/material/ToggleButton";
9
+ import A from "@mui/icons-material/CheckBoxOutlineBlankRounded";
10
+ import E from "@mui/icons-material/CheckRounded";
11
+ import V from "@mui/icons-material/RemoveRounded";
12
+ import { buttonBaseClasses as m } from "@mui/material/ButtonBase";
13
+ import { dividerClasses as j } from "@mui/material/Divider";
14
+ import { menuItemClasses as f } from "@mui/material/MenuItem";
15
+ import { tabClasses as w } from "@mui/material/Tab";
16
+ import G from "@mui/icons-material/UnfoldMoreRounded";
17
+ import { svgIconClasses as k } from "@mui/material/SvgIcon";
18
+ import { typographyClasses as U } from "@mui/material/Typography";
19
+ import { chipClasses as l } from "@mui/material/Chip";
20
+ import { iconButtonClasses as N } from "@mui/material/IconButton";
21
+ const c = L(), t = {
22
+ 50: "hsl(210, 100%, 95%)",
23
+ 100: "hsl(210, 100%, 92%)",
24
+ 200: "hsl(210, 100%, 80%)",
25
+ 300: "hsl(210, 100%, 65%)",
26
+ 400: "hsl(210, 98%, 48%)",
27
+ 500: "hsl(210, 98%, 42%)",
28
+ 600: "hsl(210, 98%, 55%)",
29
+ 700: "hsl(210, 100%, 35%)",
30
+ 800: "hsl(210, 100%, 16%)",
31
+ 900: "hsl(210, 100%, 21%)"
32
+ }, r = {
33
+ 50: "#ECF0F6",
34
+ // --ov-scale-gray-13
35
+ 100: "#CBD5E1",
36
+ // --ov-scale-gray-12
37
+ 200: "#ABB8CC",
38
+ // --ov-scale-gray-11
39
+ 300: "#8B9BB5",
40
+ // --ov-scale-gray-10
41
+ 400: "#6B7D96",
42
+ // --ov-scale-gray-9
43
+ 500: "#3E4F66",
44
+ // --ov-scale-gray-8
45
+ 600: "#2D3D52",
46
+ // --ov-scale-gray-6
47
+ 700: "#1F2937",
48
+ // --ov-scale-gray-4
49
+ 800: "#151B23",
50
+ // --ov-scale-gray-2
51
+ 900: "#0D1117"
52
+ // --ov-scale-gray-0
53
+ }, d = {
54
+ 50: "hsl(120, 80%, 98%)",
55
+ 100: "hsl(120, 75%, 94%)",
56
+ 200: "hsl(120, 75%, 87%)",
57
+ 300: "hsl(120, 61%, 77%)",
58
+ 400: "hsl(120, 44%, 53%)",
59
+ 500: "hsl(120, 59%, 30%)",
60
+ 600: "hsl(120, 70%, 25%)",
61
+ 700: "hsl(120, 75%, 16%)",
62
+ 800: "hsl(120, 84%, 10%)",
63
+ 900: "hsl(120, 87%, 6%)"
64
+ }, s = {
65
+ 50: "hsl(45, 100%, 97%)",
66
+ 100: "hsl(45, 92%, 90%)",
67
+ 200: "hsl(45, 94%, 80%)",
68
+ 300: "hsl(45, 90%, 65%)",
69
+ 400: "hsl(45, 90%, 40%)",
70
+ 500: "hsl(45, 90%, 35%)",
71
+ 600: "hsl(45, 91%, 25%)",
72
+ 700: "hsl(45, 94%, 20%)",
73
+ 800: "hsl(45, 95%, 16%)",
74
+ 900: "hsl(45, 93%, 12%)"
75
+ }, p = {
76
+ 50: "hsl(0, 100%, 97%)",
77
+ 100: "hsl(0, 92%, 90%)",
78
+ 200: "hsl(0, 94%, 80%)",
79
+ 300: "hsl(0, 90%, 65%)",
80
+ 400: "hsl(0, 90%, 40%)",
81
+ 500: "hsl(0, 90%, 30%)",
82
+ 600: "hsl(0, 91%, 25%)",
83
+ 700: "hsl(0, 94%, 18%)",
84
+ 800: "hsl(0, 95%, 12%)",
85
+ 900: "hsl(0, 93%, 6%)"
86
+ }, n = {
87
+ 50: "hsl(270, 100%, 97%)",
88
+ 100: "hsl(270, 92%, 90%)",
89
+ 200: "hsl(270, 80%, 80%)",
90
+ 300: "hsl(270, 70%, 65%)",
91
+ 400: "hsl(270, 70%, 50%)",
92
+ 500: "hsl(270, 70%, 42%)",
93
+ 600: "hsl(270, 70%, 35%)",
94
+ 700: "hsl(270, 75%, 25%)",
95
+ 800: "hsl(270, 80%, 16%)",
96
+ 900: "hsl(270, 85%, 10%)"
97
+ }, R = (o) => ({
98
+ palette: {
99
+ mode: o,
100
+ primary: {
101
+ light: t[200],
102
+ main: t[400],
103
+ dark: t[700],
104
+ contrastText: t[50],
105
+ ...o === "dark" && {
106
+ contrastText: t[50],
107
+ light: t[300],
108
+ main: t[400],
109
+ dark: t[700]
110
+ }
111
+ },
112
+ info: {
113
+ light: t[100],
114
+ main: t[300],
115
+ dark: t[600],
116
+ contrastText: r[50],
117
+ ...o === "dark" && {
118
+ contrastText: t[300],
119
+ light: t[500],
120
+ main: t[700],
121
+ dark: t[900]
122
+ }
123
+ },
124
+ warning: {
125
+ light: s[300],
126
+ main: s[400],
127
+ dark: s[800],
128
+ ...o === "dark" && {
129
+ light: s[400],
130
+ main: s[500],
131
+ dark: s[700]
132
+ }
133
+ },
134
+ error: {
135
+ light: p[300],
136
+ main: p[400],
137
+ dark: p[800],
138
+ ...o === "dark" && {
139
+ light: p[400],
140
+ main: p[500],
141
+ dark: p[700]
142
+ }
143
+ },
144
+ success: {
145
+ light: d[300],
146
+ main: d[400],
147
+ dark: d[800],
148
+ ...o === "dark" && {
149
+ light: d[400],
150
+ main: d[500],
151
+ dark: d[700]
152
+ }
153
+ },
154
+ secondary: {
155
+ light: n[300],
156
+ main: n[400],
157
+ dark: n[700],
158
+ contrastText: n[50],
159
+ ...o === "dark" && {
160
+ light: n[300],
161
+ main: n[400],
162
+ dark: n[800]
163
+ }
164
+ },
165
+ grey: r,
166
+ // Matches --ov-border-default / --ov-border-muted
167
+ divider: o === "dark" ? "rgba(62, 79, 102, 0.6)" : "rgba(208, 215, 222, 0.6)",
168
+ // alpha(--ov-border-default light, 0.6)
169
+ background: {
170
+ // Matches --ov-bg-base / --ov-bg-surface
171
+ default: o === "dark" ? "#0D1117" : "#FFFFFF",
172
+ paper: o === "dark" ? "#151B23" : "#F6F8FA"
173
+ },
174
+ text: {
175
+ // Matches --ov-fg-default / --ov-fg-muted
176
+ primary: o === "dark" ? "rgba(236, 240, 246, 0.92)" : "rgba(31, 35, 40, 0.92)",
177
+ secondary: o === "dark" ? "rgba(236, 240, 246, 0.64)" : "rgba(31, 35, 40, 0.64)"
178
+ },
179
+ action: {
180
+ // Matches --ov-state-hover / --ov-state-selected
181
+ hover: o === "dark" ? "rgba(255, 255, 255, 0.04)" : "rgba(31, 35, 40, 0.04)",
182
+ selected: o === "dark" ? "rgba(88, 166, 255, 0.10)" : "rgba(9, 105, 218, 0.10)"
183
+ },
184
+ baseShadow: o === "dark" ? "0 4px 12px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.25)" : "0 4px 12px rgba(31, 35, 40, 0.12), 0 2px 4px rgba(31, 35, 40, 0.08)"
185
+ }
186
+ }), X = {
187
+ fontFamily: [
188
+ "-apple-system",
189
+ "BlinkMacSystemFont",
190
+ '"Segoe UI"',
191
+ '"Noto Sans"',
192
+ "Helvetica",
193
+ "Arial",
194
+ "sans-serif"
195
+ ].join(","),
196
+ h1: { fontSize: c.typography.pxToRem(48), fontWeight: 600, lineHeight: 1.2, letterSpacing: -0.5 },
197
+ h2: { fontSize: c.typography.pxToRem(36), fontWeight: 600, lineHeight: 1.2 },
198
+ h3: { fontSize: c.typography.pxToRem(30), fontWeight: 600, lineHeight: 1.2 },
199
+ h4: { fontSize: c.typography.pxToRem(24), fontWeight: 600, lineHeight: 1.5 },
200
+ h5: { fontSize: c.typography.pxToRem(20), fontWeight: 600 },
201
+ h6: { fontSize: c.typography.pxToRem(18), fontWeight: 600 },
202
+ subtitle1: { fontSize: c.typography.pxToRem(18) },
203
+ subtitle2: { fontSize: c.typography.pxToRem(14), fontWeight: 500 },
204
+ body1: { fontSize: c.typography.pxToRem(14) },
205
+ body2: { fontSize: c.typography.pxToRem(14), fontWeight: 400 },
206
+ caption: { fontSize: c.typography.pxToRem(12), fontWeight: 400 },
207
+ button: { textTransform: "none", fontWeight: 600 },
208
+ overline: {
209
+ fontSize: c.typography.pxToRem(12),
210
+ fontWeight: 600,
211
+ textTransform: "uppercase",
212
+ letterSpacing: "0.08em"
213
+ }
214
+ }, q = { borderRadius: 8 }, J = (o) => {
215
+ const i = o === "dark" ? "0 4px 12px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.25)" : "0 4px 12px rgba(31, 35, 40, 0.12), 0 2px 4px rgba(31, 35, 40, 0.08)", b = [...c.shadows];
216
+ return b[1] = i, b;
217
+ }, K = {
218
+ MuiButtonBase: {
219
+ defaultProps: {
220
+ disableTouchRipple: !0,
221
+ disableRipple: !0
222
+ },
223
+ styleOverrides: {
224
+ root: ({ theme: o }) => ({
225
+ boxSizing: "border-box",
226
+ transition: "color 80ms cubic-bezier(0.33,1,0.68,1), background-color 80ms cubic-bezier(0.33,1,0.68,1), border-color 80ms cubic-bezier(0.33,1,0.68,1), box-shadow 80ms cubic-bezier(0.33,1,0.68,1)",
227
+ "&:focus-visible": {
228
+ outline: `3px solid ${e(o.palette.primary.main, 0.5)}`,
229
+ outlineOffset: "2px"
230
+ }
231
+ })
232
+ }
233
+ },
234
+ MuiButton: {
235
+ defaultProps: {
236
+ disableElevation: !0
237
+ },
238
+ styleOverrides: {
239
+ root: ({ theme: o }) => {
240
+ const i = [
241
+ ["primary", o.palette.primary],
242
+ ["secondary", o.palette.secondary],
243
+ ["success", o.palette.success],
244
+ ["warning", o.palette.warning],
245
+ ["error", o.palette.error],
246
+ ["info", o.palette.info]
247
+ ], b = i.map(([g, a]) => ({
248
+ props: { color: g, variant: "contained" },
249
+ style: {
250
+ backgroundColor: a.main,
251
+ color: a.contrastText || "#fff",
252
+ "&:hover": {
253
+ backgroundColor: M(a.main, 0.12)
254
+ },
255
+ "&:active": {
256
+ backgroundColor: M(a.main, 0.2)
257
+ },
258
+ ...o.applyStyles("dark", {
259
+ backgroundColor: a.main,
260
+ color: a.contrastText || "#fff",
261
+ "&:hover": {
262
+ backgroundColor: S(a.main, 0.12)
263
+ },
264
+ "&:active": {
265
+ backgroundColor: S(a.main, 0.04)
266
+ }
267
+ })
268
+ }
269
+ })), h = i.map(([g, a]) => ({
270
+ props: { color: g, variant: "outlined" },
271
+ style: {
272
+ color: a.main,
273
+ borderColor: e(a.main, 0.5),
274
+ backgroundColor: "transparent",
275
+ "&:hover": { backgroundColor: e(a.main, 0.06), borderColor: a.main },
276
+ "&:active": { backgroundColor: e(a.main, 0.12) },
277
+ ...o.applyStyles("dark", {
278
+ color: a.light,
279
+ borderColor: e(a.light, 0.4),
280
+ "&:hover": { backgroundColor: e(a.main, 0.12), borderColor: a.light },
281
+ "&:active": { backgroundColor: e(a.main, 0.2) }
282
+ })
283
+ }
284
+ })), y = i.map(([g, a]) => ({
285
+ props: { color: g, variant: "text" },
286
+ style: {
287
+ color: a.main,
288
+ "&:hover": { backgroundColor: e(a.main, 0.06) },
289
+ "&:active": { backgroundColor: e(a.main, 0.12) },
290
+ ...o.applyStyles("dark", {
291
+ color: a.light,
292
+ "&:hover": { backgroundColor: e(a.main, 0.12) },
293
+ "&:active": { backgroundColor: e(a.main, 0.2) }
294
+ })
295
+ }
296
+ })), z = i.map(([g, a]) => ({
297
+ props: { color: g, variant: "soft" },
298
+ style: {
299
+ color: a.main,
300
+ backgroundColor: e(a.main, 0.1),
301
+ "&:hover": { backgroundColor: e(a.main, 0.18) },
302
+ "&:active": { backgroundColor: e(a.main, 0.26) },
303
+ ...o.applyStyles("dark", {
304
+ color: a.light,
305
+ backgroundColor: e(a.main, 0.15),
306
+ "&:hover": { backgroundColor: e(a.main, 0.25) },
307
+ "&:active": { backgroundColor: e(a.main, 0.32) }
308
+ })
309
+ }
310
+ })), T = i.map(([g, a]) => ({
311
+ props: { color: g, variant: "link" },
312
+ style: {
313
+ color: a.main,
314
+ ...o.applyStyles("dark", { color: a.light })
315
+ }
316
+ }));
317
+ return {
318
+ boxShadow: "none",
319
+ borderRadius: o.shape.borderRadius,
320
+ textTransform: "none",
321
+ whiteSpace: "nowrap",
322
+ // GitHub Primer-style fast, smooth transition on bg-color
323
+ transition: "color 80ms cubic-bezier(0.33,1,0.68,1), background-color 80ms cubic-bezier(0.33,1,0.68,1), border-color 80ms cubic-bezier(0.33,1,0.68,1), box-shadow 80ms cubic-bezier(0.33,1,0.68,1)",
324
+ variants: [
325
+ // === Sizes ===
326
+ { props: { size: "small" }, style: { minHeight: "2rem", padding: "6px 12px" } },
327
+ { props: { size: "medium" }, style: { minHeight: "2.25rem", padding: "8px 16px" } },
328
+ { props: { size: "large" }, style: { minHeight: "2.75rem", padding: "10px 20px" } },
329
+ { props: { size: "xs" }, style: { minHeight: "1.5rem", padding: "2px 8px", fontSize: "0.6875rem" } },
330
+ { props: { size: "xl" }, style: { minHeight: "3.25rem", padding: "12px 24px", fontSize: "1rem" } },
331
+ // === Contained: flat solid ===
332
+ // Default/neutral: gray solid
333
+ {
334
+ props: { variant: "contained" },
335
+ style: {
336
+ boxShadow: "none",
337
+ "&:hover": { boxShadow: "none" }
338
+ }
339
+ },
340
+ ...b,
341
+ // === Outlined: default/neutral gets gray ===
342
+ {
343
+ props: { variant: "outlined" },
344
+ style: {
345
+ color: r[700],
346
+ border: "1px solid",
347
+ borderColor: r[200],
348
+ backgroundColor: e(r[50], 0.3),
349
+ "&:hover": { backgroundColor: r[100], borderColor: r[300] },
350
+ "&:active": { backgroundColor: r[200] },
351
+ ...o.applyStyles("dark", {
352
+ color: r[200],
353
+ backgroundColor: e(r[800], 0.3),
354
+ borderColor: r[600],
355
+ "&:hover": { backgroundColor: e(r[700], 0.5), borderColor: r[500] },
356
+ "&:active": { backgroundColor: r[700] }
357
+ })
358
+ }
359
+ },
360
+ ...h,
361
+ // === Text (ghost): default/neutral gets gray ===
362
+ {
363
+ props: { variant: "text" },
364
+ style: {
365
+ color: r[600],
366
+ "&:hover": { backgroundColor: e(r[500], 0.08) },
367
+ "&:active": { backgroundColor: e(r[500], 0.16) },
368
+ ...o.applyStyles("dark", {
369
+ color: r[300],
370
+ "&:hover": { backgroundColor: e(r[500], 0.12) },
371
+ "&:active": { backgroundColor: e(r[500], 0.2) }
372
+ })
373
+ }
374
+ },
375
+ ...y,
376
+ // === Soft (custom): default/neutral gets gray ===
377
+ {
378
+ props: { variant: "soft" },
379
+ style: {
380
+ color: r[700],
381
+ backgroundColor: e(r[500], 0.08),
382
+ "&:hover": { backgroundColor: e(r[500], 0.16) },
383
+ "&:active": { backgroundColor: e(r[500], 0.24) },
384
+ ...o.applyStyles("dark", {
385
+ color: r[200],
386
+ backgroundColor: e(r[500], 0.12),
387
+ "&:hover": { backgroundColor: e(r[500], 0.2) },
388
+ "&:active": { backgroundColor: e(r[500], 0.28) }
389
+ })
390
+ }
391
+ },
392
+ ...z,
393
+ // === Link (custom): base ===
394
+ {
395
+ props: { variant: "link" },
396
+ style: {
397
+ color: r[600],
398
+ backgroundColor: "transparent",
399
+ padding: "0 4px",
400
+ minWidth: "auto",
401
+ textDecoration: "none",
402
+ "&:hover": {
403
+ backgroundColor: "transparent",
404
+ textDecoration: "underline"
405
+ },
406
+ ...o.applyStyles("dark", {
407
+ color: r[300]
408
+ })
409
+ }
410
+ },
411
+ ...T
412
+ ]
413
+ };
414
+ }
415
+ }
416
+ },
417
+ MuiIconButton: {
418
+ styleOverrides: {
419
+ root: ({ theme: o }) => ({
420
+ boxSizing: "border-box",
421
+ borderRadius: o.shape.borderRadius,
422
+ color: r[600],
423
+ "&:hover": { backgroundColor: e(r[500], 0.1) },
424
+ ...o.applyStyles("dark", {
425
+ color: r[300],
426
+ "&:hover": { backgroundColor: e(r[500], 0.2) }
427
+ }),
428
+ variants: [
429
+ { props: { size: "small" }, style: { width: "2rem", height: "2rem", padding: "0.25rem" } },
430
+ { props: { size: "medium" }, style: { width: "2.5rem", height: "2.5rem" } },
431
+ {
432
+ props: { color: "primary" },
433
+ style: {
434
+ color: t[600],
435
+ "&:hover": { backgroundColor: e(t[500], 0.1) },
436
+ ...o.applyStyles("dark", {
437
+ color: t[300],
438
+ "&:hover": { backgroundColor: e(t[500], 0.2) }
439
+ })
440
+ }
441
+ }
442
+ ]
443
+ })
444
+ }
445
+ },
446
+ MuiToggleButtonGroup: {
447
+ styleOverrides: {
448
+ root: ({ theme: o }) => ({
449
+ borderRadius: o.shape.borderRadius,
450
+ backgroundColor: r[100],
451
+ border: `1px solid ${r[200]}`,
452
+ boxShadow: "none",
453
+ [`& .${$.grouped}`]: {
454
+ border: "none",
455
+ "&:not(:first-of-type)": { marginLeft: 0, borderLeft: "1px solid", borderLeftColor: r[300] }
456
+ },
457
+ ...o.applyStyles("dark", {
458
+ backgroundColor: e(r[800], 0.5),
459
+ border: `1px solid ${r[700]}`,
460
+ [`& .${$.grouped}`]: {
461
+ "&:not(:first-of-type)": { borderLeftColor: r[700] }
462
+ }
463
+ })
464
+ })
465
+ }
466
+ },
467
+ MuiToggleButton: {
468
+ styleOverrides: {
469
+ root: ({ theme: o }) => ({
470
+ padding: "8px 16px",
471
+ fontWeight: 500,
472
+ color: r[600],
473
+ textTransform: "none",
474
+ border: "none",
475
+ borderRadius: o.shape.borderRadius,
476
+ "&:hover": { backgroundColor: e(r[500], 0.1) },
477
+ [`&.${O.selected}`]: {
478
+ color: t[600],
479
+ backgroundColor: e(t[500], 0.1),
480
+ "&:hover": { backgroundColor: e(t[500], 0.15) }
481
+ },
482
+ ...o.applyStyles("dark", {
483
+ color: r[400],
484
+ "&:hover": { backgroundColor: e(r[500], 0.15) },
485
+ [`&.${O.selected}`]: {
486
+ color: t[300],
487
+ backgroundColor: e(t[500], 0.2),
488
+ "&:hover": { backgroundColor: e(t[500], 0.25) }
489
+ }
490
+ })
491
+ })
492
+ }
493
+ },
494
+ MuiCheckbox: {
495
+ defaultProps: {
496
+ disableRipple: !0,
497
+ icon: C.createElement(A, { sx: { color: "hsla(210, 0%, 0%, 0.0)" } }),
498
+ checkedIcon: C.createElement(E, { sx: { height: 14, width: 14 } }),
499
+ indeterminateIcon: C.createElement(V, { sx: { height: 14, width: 14 } })
500
+ },
501
+ styleOverrides: {
502
+ root: ({ theme: o }) => ({
503
+ margin: 10,
504
+ height: 16,
505
+ width: 16,
506
+ borderRadius: 5,
507
+ border: "1px solid",
508
+ borderColor: e(r[300], 0.8),
509
+ boxShadow: "0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset",
510
+ backgroundColor: e(r[100], 0.4),
511
+ transition: "border-color, background-color, 120ms ease-in",
512
+ "&:hover": { borderColor: t[300] },
513
+ "&.Mui-checked": {
514
+ color: "white",
515
+ backgroundColor: t[500],
516
+ borderColor: t[500],
517
+ boxShadow: "none",
518
+ "&:hover": { backgroundColor: t[600] }
519
+ },
520
+ ...o.applyStyles("dark", {
521
+ borderColor: e(r[700], 0.8),
522
+ boxShadow: "0 0 0 1.5px hsl(210, 0%, 0%) inset",
523
+ backgroundColor: e(r[900], 0.8),
524
+ "&:hover": { borderColor: t[300] }
525
+ })
526
+ })
527
+ }
528
+ },
529
+ MuiSelect: {
530
+ styleOverrides: {
531
+ select: {
532
+ // Prevent chips from wrapping to multiple lines.
533
+ display: "flex",
534
+ alignItems: "center",
535
+ overflow: "hidden",
536
+ "& > .MuiBox-root": {
537
+ flexWrap: "nowrap",
538
+ overflow: "hidden"
539
+ }
540
+ }
541
+ }
542
+ },
543
+ MuiAutocomplete: {
544
+ styleOverrides: {
545
+ inputRoot: {
546
+ // Prevent the tag container from wrapping and keep fixed height.
547
+ flexWrap: "nowrap !important",
548
+ overflow: "hidden"
549
+ },
550
+ tag: {
551
+ // Constrain chip tags to match the input line-height.
552
+ maxHeight: 20
553
+ }
554
+ }
555
+ },
556
+ MuiFormControl: {
557
+ styleOverrides: {
558
+ root: () => ({
559
+ // Input height token — read by OutlinedInput (height) and
560
+ // InputLabel (vertical centering). Our wrapper components
561
+ // override this for the full xs/sm/md/lg/xl range.
562
+ "--ov-input-height": "2.75rem",
563
+ variants: [
564
+ { props: { size: "small" }, style: { "--ov-input-height": "2.25rem" } }
565
+ ]
566
+ })
567
+ }
568
+ },
569
+ MuiInputLabel: {
570
+ styleOverrides: {
571
+ root: {
572
+ // Shrunk (floating) label — centered on the top border
573
+ "&.MuiInputLabel-shrink": {
574
+ transform: "translate(14px, -6px) scale(0.75)"
575
+ },
576
+ // Non-shrunk label — auto-center vertically using calc().
577
+ // 1.4375em = the label's line-height (unitless 1.4375 × font-size),
578
+ // expressed in em so it auto-adapts to both small and medium labels.
579
+ "&.MuiInputLabel-outlined:not(.MuiInputLabel-shrink)": {
580
+ transform: "translate(14px, calc((var(--ov-input-height) - 1.4375em) / 2)) scale(1)"
581
+ }
582
+ }
583
+ }
584
+ },
585
+ MuiInputBase: {
586
+ defaultProps: {
587
+ autoCapitalize: "off",
588
+ autoCorrect: "off",
589
+ spellCheck: !1
590
+ },
591
+ styleOverrides: {
592
+ root: ({ theme: o }) => ({
593
+ border: "none",
594
+ ...o.applyStyles("dark", { "&.Mui-disabled": { color: r[600] } })
595
+ }),
596
+ input: ({ theme: o }) => ({
597
+ // Disable WebKit auto-capitalize / auto-correct text transformations
598
+ textTransform: "none",
599
+ WebkitTextSecurity: "none",
600
+ "&::placeholder": { opacity: 0.7, color: r[500] },
601
+ ...o.applyStyles("dark", { "&::placeholder": { color: r[500] } })
602
+ })
603
+ }
604
+ },
605
+ MuiOutlinedInput: {
606
+ styleOverrides: {
607
+ input: { padding: "10px 14px" },
608
+ inputMultiline: { padding: 0 },
609
+ root: ({ theme: o }) => ({
610
+ borderRadius: o.shape.borderRadius,
611
+ backgroundColor: r[50],
612
+ transition: "background-color 120ms ease-in",
613
+ // Fixed height from the --ov-input-height CSS variable
614
+ // (set on the parent FormControl). Multiline inputs use
615
+ // minHeight so they can grow.
616
+ "&:not(.MuiInputBase-multiline)": {
617
+ boxSizing: "border-box",
618
+ height: "var(--ov-input-height)"
619
+ },
620
+ "&.MuiInputBase-multiline": {
621
+ padding: "10px 14px",
622
+ minHeight: "var(--ov-input-height)"
623
+ },
624
+ "&:hover": {
625
+ backgroundColor: r[100],
626
+ [`& .${u.notchedOutline}`]: { borderColor: r[400] }
627
+ },
628
+ [`&.${u.focused}`]: {
629
+ [`& .${u.notchedOutline}`]: { borderColor: t[500], borderWidth: 2 }
630
+ },
631
+ [`&.${u.disabled}`]: {
632
+ backgroundColor: r[100],
633
+ [`& .${u.notchedOutline}`]: { borderColor: r[200] }
634
+ },
635
+ ...o.applyStyles("dark", {
636
+ backgroundColor: e(r[800], 0.8),
637
+ "&:hover": {
638
+ backgroundColor: e(r[800], 0.9),
639
+ [`& .${u.notchedOutline}`]: { borderColor: r[500] }
640
+ },
641
+ [`&.${u.focused}`]: {
642
+ backgroundColor: e(r[800], 0.9),
643
+ [`& .${u.notchedOutline}`]: { borderColor: t[400] }
644
+ },
645
+ [`&.${u.disabled}`]: {
646
+ backgroundColor: e(r[900], 0.6),
647
+ [`& .${u.notchedOutline}`]: { borderColor: r[800] }
648
+ }
649
+ })
650
+ }),
651
+ notchedOutline: ({ theme: o }) => ({
652
+ borderColor: r[300],
653
+ transition: "border-color 120ms ease-in",
654
+ ...o.applyStyles("dark", { borderColor: r[700] })
655
+ })
656
+ }
657
+ },
658
+ MuiInputAdornment: {
659
+ styleOverrides: {
660
+ root: ({ theme: o }) => ({
661
+ color: o.palette.grey[500],
662
+ ...o.applyStyles("dark", { color: o.palette.grey[400] })
663
+ })
664
+ }
665
+ },
666
+ MuiSwitch: {
667
+ styleOverrides: {
668
+ // Track: 44×24 pill (shadcn/Radix proportions).
669
+ root: { width: 44, height: 24, padding: 0 },
670
+ switchBase: ({ theme: o }) => ({
671
+ padding: 0,
672
+ margin: 2,
673
+ // Radix-style snappy thumb slide.
674
+ transitionDuration: "140ms",
675
+ transitionTimingFunction: "cubic-bezier(0.45, 0.05, 0.55, 0.95)",
676
+ transitionProperty: "transform",
677
+ "&.Mui-checked": {
678
+ // translateX = trackWidth - thumbDiameter - 2*margin = 44 - 20 - 4 = 20
679
+ transform: "translateX(20px)",
680
+ color: "#fff",
681
+ "& + .MuiSwitch-track": {
682
+ backgroundColor: t[500],
683
+ opacity: 1,
684
+ border: 0
685
+ }
686
+ },
687
+ "&.Mui-focusVisible + .MuiSwitch-track": {
688
+ outline: `2px solid ${e(t[500], 0.5)}`,
689
+ outlineOffset: 2
690
+ },
691
+ "&.Mui-disabled + .MuiSwitch-track": { opacity: 0.4 },
692
+ "&.Mui-disabled .MuiSwitch-thumb": { opacity: 0.7 },
693
+ ...o.applyStyles("dark", {
694
+ "&.Mui-checked": {
695
+ "& + .MuiSwitch-track": { backgroundColor: t[400] }
696
+ }
697
+ })
698
+ }),
699
+ // Thumb: 20px circle with layered shadow for depth (key polish factor).
700
+ thumb: {
701
+ boxSizing: "border-box",
702
+ width: 20,
703
+ height: 20,
704
+ boxShadow: "0 0 0 1px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.10), 0 2px 6px rgba(0,0,0,0.08)"
705
+ },
706
+ // Track: full pill with fast color transition.
707
+ track: ({ theme: o }) => ({
708
+ borderRadius: 9999,
709
+ backgroundColor: r[300],
710
+ opacity: 1,
711
+ transition: "background-color 120ms linear",
712
+ ...o.applyStyles("dark", { backgroundColor: r[600] })
713
+ })
714
+ }
715
+ }
716
+ }, Q = {
717
+ MuiMenuItem: {
718
+ styleOverrides: {
719
+ root: ({ theme: o }) => ({
720
+ borderRadius: o.shape.borderRadius,
721
+ padding: "6px 8px",
722
+ [`&.${f.focusVisible}`]: { backgroundColor: "transparent" },
723
+ [`&.${f.selected}`]: {
724
+ [`&.${f.focusVisible}`]: {
725
+ backgroundColor: e(o.palette.action.selected, 0.3)
726
+ }
727
+ }
728
+ })
729
+ }
730
+ },
731
+ MuiMenu: {
732
+ styleOverrides: {
733
+ list: {
734
+ gap: "0px",
735
+ padding: "4px",
736
+ [`&.${j.root}`]: { margin: "0 -8px" }
737
+ },
738
+ paper: ({ theme: o }) => ({
739
+ marginTop: "4px",
740
+ borderRadius: o.shape.borderRadius,
741
+ border: `1px solid ${o.palette.divider}`,
742
+ backgroundImage: "none",
743
+ background: "hsl(0, 0%, 100%)",
744
+ boxShadow: "hsla(220, 30%, 5%, 0.07) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.07) 0px 8px 16px -5px",
745
+ [`& .${m.root}`]: {
746
+ "&.Mui-selected": { backgroundColor: e(o.palette.action.selected, 0.3) }
747
+ },
748
+ ...o.applyStyles("dark", {
749
+ background: r[900],
750
+ boxShadow: "hsla(220, 30%, 5%, 0.7) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.8) 0px 8px 16px -5px"
751
+ })
752
+ })
753
+ }
754
+ },
755
+ MuiSelect: {
756
+ defaultProps: {
757
+ IconComponent: C.forwardRef((o, i) => /* @__PURE__ */ x(G, { fontSize: "small", ...o, ref: i }))
758
+ },
759
+ styleOverrides: {
760
+ select: { display: "flex", alignItems: "center" }
761
+ }
762
+ },
763
+ MuiLink: {
764
+ defaultProps: { underline: "none" },
765
+ styleOverrides: {
766
+ root: ({ theme: o }) => ({
767
+ color: r[800],
768
+ fontWeight: 500,
769
+ position: "relative",
770
+ textDecoration: "none",
771
+ width: "fit-content",
772
+ "&::before": {
773
+ content: '""',
774
+ position: "absolute",
775
+ width: "100%",
776
+ height: "1px",
777
+ bottom: 0,
778
+ left: 0,
779
+ backgroundColor: r[600],
780
+ opacity: 0.3,
781
+ transition: "width 0.3s ease, opacity 0.3s ease"
782
+ },
783
+ "&:hover::before": { width: 0 },
784
+ "&:focus-visible": {
785
+ outline: `3px solid ${e(t[500], 0.5)}`,
786
+ outlineOffset: "4px",
787
+ borderRadius: "2px"
788
+ },
789
+ ...o.applyStyles("dark", {
790
+ color: r[100],
791
+ "&::before": { backgroundColor: r[400] }
792
+ })
793
+ })
794
+ }
795
+ },
796
+ MuiDrawer: {
797
+ styleOverrides: {
798
+ paper: ({ theme: o }) => ({ backgroundColor: o.palette.background.default })
799
+ }
800
+ },
801
+ MuiListItemButton: {
802
+ styleOverrides: {
803
+ root: ({ theme: o }) => ({
804
+ borderRadius: o.shape.borderRadius,
805
+ padding: "8px 12px",
806
+ gap: 12,
807
+ border: "1px solid transparent",
808
+ transition: "all 100ms ease-in",
809
+ "&:hover": { backgroundColor: e(r[500], 0.08) },
810
+ "&.Mui-selected": {
811
+ backgroundColor: e(t[500], 0.08),
812
+ border: `1px solid ${e(t[500], 0.2)}`,
813
+ "&:hover": { backgroundColor: e(t[500], 0.12) }
814
+ },
815
+ ...o.applyStyles("dark", {
816
+ "&:hover": { backgroundColor: e(r[500], 0.12) },
817
+ "&.Mui-selected": {
818
+ backgroundColor: e(t[400], 0.12),
819
+ border: `1px solid ${e(t[400], 0.25)}`,
820
+ "&:hover": { backgroundColor: e(t[400], 0.16) }
821
+ }
822
+ })
823
+ })
824
+ }
825
+ },
826
+ MuiTabs: {
827
+ styleOverrides: {
828
+ root: { minHeight: "fit-content" },
829
+ indicator: ({ theme: o }) => ({
830
+ backgroundColor: o.palette.grey[800],
831
+ ...o.applyStyles("dark", { backgroundColor: o.palette.grey[200] })
832
+ })
833
+ }
834
+ },
835
+ MuiTab: {
836
+ styleOverrides: {
837
+ root: ({ theme: o }) => ({
838
+ padding: "6px 8px",
839
+ marginBottom: "8px",
840
+ textTransform: "none",
841
+ minWidth: "fit-content",
842
+ minHeight: "fit-content",
843
+ color: r[600],
844
+ borderRadius: o.shape.borderRadius,
845
+ border: "1px solid transparent",
846
+ ":hover": { color: r[800], backgroundColor: r[100], borderColor: r[200] },
847
+ [`&.${w.selected}`]: { color: r[900] },
848
+ ...o.applyStyles("dark", {
849
+ color: r[400],
850
+ ":hover": { color: r[100], backgroundColor: r[800], borderColor: r[700] },
851
+ [`&.${w.selected}`]: { color: "#fff" }
852
+ })
853
+ })
854
+ }
855
+ }
856
+ }, Y = {
857
+ MuiAlert: {
858
+ styleOverrides: {
859
+ root: {
860
+ // Sizing and color are handled by the Alert wrapper component.
861
+ // We intentionally don't set padding, borderRadius, or severity-based
862
+ // color variants here to avoid specificity fights with the sx prop.
863
+ }
864
+ }
865
+ },
866
+ MuiDialog: {
867
+ styleOverrides: {
868
+ root: ({ theme: o }) => ({
869
+ "& .MuiDialog-paper": {
870
+ borderRadius: "10px",
871
+ border: "1px solid",
872
+ borderColor: o.palette.divider,
873
+ backgroundColor: r[50],
874
+ ...o.applyStyles("dark", {
875
+ backgroundColor: "hsl(220, 25%, 10%)",
876
+ borderColor: e(r[700], 0.6)
877
+ })
878
+ }
879
+ })
880
+ }
881
+ },
882
+ MuiPopover: {
883
+ styleOverrides: {
884
+ paper: ({ theme: o }) => ({
885
+ borderRadius: "10px",
886
+ border: "1px solid",
887
+ borderColor: o.palette.divider,
888
+ backgroundImage: "none",
889
+ backgroundColor: r[50],
890
+ boxShadow: "0 4px 20px rgba(0, 0, 0, 0.08)",
891
+ ...o.applyStyles("dark", {
892
+ backgroundColor: "hsl(220, 25%, 10%)",
893
+ borderColor: e(r[700], 0.6),
894
+ boxShadow: "0 4px 20px rgba(0, 0, 0, 0.5)"
895
+ })
896
+ })
897
+ }
898
+ },
899
+ MuiLinearProgress: {
900
+ styleOverrides: {
901
+ root: ({ theme: o }) => ({
902
+ height: 8,
903
+ borderRadius: 8,
904
+ backgroundColor: r[200],
905
+ ...o.applyStyles("dark", { backgroundColor: r[800] })
906
+ })
907
+ }
908
+ }
909
+ }, Z = {
910
+ MuiList: {
911
+ styleOverrides: {
912
+ root: { padding: "8px", display: "flex", flexDirection: "column", gap: 0 }
913
+ }
914
+ },
915
+ MuiListItem: {
916
+ styleOverrides: {
917
+ root: ({ theme: o }) => ({
918
+ [`& > .${k.root}`]: { width: "1rem", height: "1rem", color: r[600] },
919
+ [`& .${U.root}`]: { fontWeight: 500 },
920
+ [`& .${m.root}`]: {
921
+ display: "flex",
922
+ gap: 8,
923
+ padding: "2px 8px",
924
+ borderRadius: o.shape.borderRadius,
925
+ opacity: 0.7,
926
+ "&.Mui-selected": {
927
+ opacity: 1,
928
+ backgroundColor: e(r[200], 0.6),
929
+ [`& .${k.root}`]: { color: r[800] },
930
+ "&:hover": { backgroundColor: e(r[200], 0.8) }
931
+ }
932
+ },
933
+ ...o.applyStyles("dark", {
934
+ [`& > .${k.root}`]: { color: r[400] },
935
+ [`& .${m.root}`]: {
936
+ "&.Mui-selected": {
937
+ backgroundColor: e(r[600], 0.3),
938
+ [`& .${k.root}`]: { color: r[100] },
939
+ "&:hover": { backgroundColor: e(r[600], 0.5) }
940
+ }
941
+ }
942
+ })
943
+ })
944
+ }
945
+ },
946
+ MuiListItemText: {
947
+ styleOverrides: {
948
+ primary: ({ theme: o }) => ({
949
+ fontSize: o.typography.body2.fontSize,
950
+ fontWeight: 500,
951
+ lineHeight: o.typography.body2.lineHeight
952
+ }),
953
+ secondary: ({ theme: o }) => ({
954
+ fontSize: o.typography.caption.fontSize,
955
+ lineHeight: o.typography.caption.lineHeight
956
+ })
957
+ }
958
+ },
959
+ MuiListSubheader: {
960
+ styleOverrides: {
961
+ root: ({ theme: o }) => ({
962
+ backgroundColor: "transparent",
963
+ padding: "4px 8px",
964
+ fontSize: o.typography.caption.fontSize,
965
+ fontWeight: 500,
966
+ lineHeight: o.typography.caption.lineHeight
967
+ })
968
+ }
969
+ },
970
+ MuiListItemIcon: {
971
+ styleOverrides: { root: { minWidth: 0 } }
972
+ },
973
+ MuiCard: {
974
+ defaultProps: { elevation: 0 },
975
+ styleOverrides: {
976
+ root: ({ theme: o }) => ({
977
+ display: "flex",
978
+ flexDirection: "column",
979
+ padding: 16,
980
+ gap: 16,
981
+ overflow: "visible",
982
+ transition: "all 150ms ease-in-out",
983
+ backgroundColor: r[50],
984
+ borderRadius: o.shape.borderRadius,
985
+ border: `1px solid ${o.palette.divider}`,
986
+ boxShadow: "none",
987
+ "&:hover": {
988
+ borderColor: r[300],
989
+ boxShadow: "0 2px 8px 0 rgba(0, 0, 0, 0.08)"
990
+ },
991
+ ...o.applyStyles("dark", {
992
+ backgroundColor: r[800],
993
+ "&:hover": {
994
+ borderColor: r[600],
995
+ boxShadow: "0 2px 8px 0 rgba(0, 0, 0, 0.3)"
996
+ }
997
+ }),
998
+ variants: [
999
+ {
1000
+ props: { variant: "outlined" },
1001
+ style: {
1002
+ border: `1px solid ${o.palette.divider}`,
1003
+ boxShadow: "none",
1004
+ background: "hsl(0, 0%, 100%)",
1005
+ "&:hover": {
1006
+ borderColor: r[300],
1007
+ boxShadow: "0 2px 8px 0 rgba(0, 0, 0, 0.08)"
1008
+ },
1009
+ ...o.applyStyles("dark", {
1010
+ background: e(r[900], 0.4),
1011
+ "&:hover": {
1012
+ borderColor: r[600],
1013
+ boxShadow: "0 2px 8px 0 rgba(0, 0, 0, 0.3)"
1014
+ }
1015
+ })
1016
+ }
1017
+ }
1018
+ ]
1019
+ })
1020
+ }
1021
+ },
1022
+ MuiCardContent: {
1023
+ styleOverrides: { root: { padding: 0, "&:last-child": { paddingBottom: 0 } } }
1024
+ },
1025
+ MuiCardHeader: {
1026
+ styleOverrides: { root: { padding: 0 } }
1027
+ },
1028
+ MuiCardActions: {
1029
+ styleOverrides: { root: { padding: 0 } }
1030
+ },
1031
+ MuiPaper: {
1032
+ defaultProps: { elevation: 0 },
1033
+ styleOverrides: {
1034
+ root: ({ theme: o }) => ({
1035
+ backgroundImage: "none",
1036
+ ...o.applyStyles("dark", { backgroundColor: r[800] })
1037
+ })
1038
+ }
1039
+ },
1040
+ MuiChip: {
1041
+ defaultProps: { size: "small" },
1042
+ styleOverrides: {
1043
+ root: ({ theme: o }) => ({
1044
+ border: "1px solid",
1045
+ borderRadius: 6,
1046
+ [`& .${l.label}`]: { fontWeight: 600 },
1047
+ variants: [
1048
+ {
1049
+ props: { color: "default" },
1050
+ style: {
1051
+ borderColor: r[200],
1052
+ backgroundColor: r[100],
1053
+ [`& .${l.label}`]: { color: r[500] },
1054
+ [`& .${l.icon}`]: { color: r[500] },
1055
+ [`& .${l.deleteIcon}`]: { color: r[400], "&:hover": { color: r[600] } },
1056
+ ...o.applyStyles("dark", {
1057
+ borderColor: r[600],
1058
+ backgroundColor: e(r[600], 0.3),
1059
+ [`& .${l.label}`]: { color: r[200] },
1060
+ [`& .${l.icon}`]: { color: r[200] },
1061
+ [`& .${l.deleteIcon}`]: { color: r[400], "&:hover": { color: r[200] } }
1062
+ })
1063
+ }
1064
+ },
1065
+ {
1066
+ props: { color: "success" },
1067
+ style: {
1068
+ borderColor: d[200],
1069
+ backgroundColor: d[50],
1070
+ [`& .${l.label}`]: { color: d[500] },
1071
+ [`& .${l.icon}`]: { color: d[500] },
1072
+ ...o.applyStyles("dark", {
1073
+ borderColor: d[800],
1074
+ backgroundColor: d[900],
1075
+ [`& .${l.label}`]: { color: d[200] },
1076
+ [`& .${l.icon}`]: { color: d[200] }
1077
+ })
1078
+ }
1079
+ },
1080
+ {
1081
+ props: { color: "error" },
1082
+ style: {
1083
+ borderColor: p[100],
1084
+ backgroundColor: p[50],
1085
+ [`& .${l.label}`]: { color: p[500] },
1086
+ [`& .${l.icon}`]: { color: p[500] },
1087
+ ...o.applyStyles("dark", {
1088
+ borderColor: p[800],
1089
+ backgroundColor: p[900],
1090
+ [`& .${l.label}`]: { color: p[100] },
1091
+ [`& .${l.icon}`]: { color: p[100] }
1092
+ })
1093
+ }
1094
+ },
1095
+ {
1096
+ props: { color: "warning" },
1097
+ style: {
1098
+ borderColor: s[200],
1099
+ backgroundColor: s[50],
1100
+ [`& .${l.label}`]: { color: s[500] },
1101
+ [`& .${l.icon}`]: { color: s[500] },
1102
+ ...o.applyStyles("dark", {
1103
+ borderColor: s[800],
1104
+ backgroundColor: s[900],
1105
+ [`& .${l.label}`]: { color: s[200] },
1106
+ [`& .${l.icon}`]: { color: s[200] }
1107
+ })
1108
+ }
1109
+ },
1110
+ {
1111
+ props: { color: "primary" },
1112
+ style: {
1113
+ borderColor: t[200],
1114
+ backgroundColor: t[50],
1115
+ [`& .${l.label}`]: { color: t[500] },
1116
+ [`& .${l.icon}`]: { color: t[500] },
1117
+ ...o.applyStyles("dark", {
1118
+ borderColor: t[800],
1119
+ backgroundColor: t[900],
1120
+ [`& .${l.label}`]: { color: t[100] },
1121
+ [`& .${l.icon}`]: { color: t[100] }
1122
+ })
1123
+ }
1124
+ },
1125
+ {
1126
+ props: { color: "secondary" },
1127
+ style: {
1128
+ borderColor: n[200],
1129
+ backgroundColor: n[50],
1130
+ [`& .${l.label}`]: { color: n[500] },
1131
+ [`& .${l.icon}`]: { color: n[500] },
1132
+ ...o.applyStyles("dark", {
1133
+ borderColor: n[700],
1134
+ backgroundColor: n[900],
1135
+ [`& .${l.label}`]: { color: n[100] },
1136
+ [`& .${l.icon}`]: { color: n[100] }
1137
+ })
1138
+ }
1139
+ },
1140
+ {
1141
+ props: { variant: "outlined", color: "default" },
1142
+ style: {
1143
+ backgroundColor: "transparent",
1144
+ borderColor: r[300],
1145
+ [`& .${l.label}`]: { color: r[500] },
1146
+ ...o.applyStyles("dark", {
1147
+ backgroundColor: "transparent",
1148
+ borderColor: r[500],
1149
+ [`& .${l.label}`]: { color: r[200] }
1150
+ })
1151
+ }
1152
+ },
1153
+ {
1154
+ props: { size: "small" },
1155
+ style: {
1156
+ height: 20,
1157
+ borderRadius: 6,
1158
+ [`& .${l.label}`]: { fontSize: o.typography.caption.fontSize, padding: "0 6px" }
1159
+ }
1160
+ },
1161
+ {
1162
+ props: { size: "medium" },
1163
+ style: {
1164
+ height: 28,
1165
+ borderRadius: 8,
1166
+ [`& .${l.label}`]: { fontSize: o.typography.caption.fontSize }
1167
+ }
1168
+ }
1169
+ ]
1170
+ })
1171
+ }
1172
+ },
1173
+ MuiTablePagination: {
1174
+ styleOverrides: {
1175
+ actions: {
1176
+ display: "flex",
1177
+ gap: 8,
1178
+ marginRight: 6,
1179
+ [`& .${N.root}`]: { minWidth: 0, width: 36, height: 36 }
1180
+ }
1181
+ }
1182
+ },
1183
+ MuiAvatar: {
1184
+ styleOverrides: {
1185
+ root: {
1186
+ color: "#ffffff",
1187
+ fontWeight: 600
1188
+ }
1189
+ }
1190
+ },
1191
+ MuiDivider: {
1192
+ styleOverrides: {
1193
+ root: ({ theme: o }) => ({
1194
+ borderColor: r[200],
1195
+ ...o.applyStyles("dark", { borderColor: r[700] })
1196
+ })
1197
+ }
1198
+ },
1199
+ MuiTable: {
1200
+ styleOverrides: { root: { borderCollapse: "separate", borderSpacing: 0 } }
1201
+ },
1202
+ MuiTableHead: {
1203
+ styleOverrides: {
1204
+ root: ({ theme: o }) => ({
1205
+ backgroundColor: r[50],
1206
+ ...o.applyStyles("dark", { backgroundColor: r[900] })
1207
+ })
1208
+ }
1209
+ },
1210
+ MuiTableCell: {
1211
+ styleOverrides: {
1212
+ root: ({ theme: o }) => ({
1213
+ borderColor: r[200],
1214
+ padding: "0.75rem 1rem",
1215
+ ...o.applyStyles("dark", { borderColor: r[700] })
1216
+ }),
1217
+ head: ({ theme: o }) => ({
1218
+ fontWeight: 600,
1219
+ color: r[700],
1220
+ ...o.applyStyles("dark", { color: r[300] })
1221
+ })
1222
+ }
1223
+ },
1224
+ MuiTableRow: {
1225
+ styleOverrides: {
1226
+ root: ({ theme: o }) => ({
1227
+ "&:hover": { backgroundColor: e(r[100], 0.5) },
1228
+ "&.Mui-selected": {
1229
+ backgroundColor: e(t[500], 0.08),
1230
+ "&:hover": { backgroundColor: e(t[500], 0.12) }
1231
+ },
1232
+ ...o.applyStyles("dark", {
1233
+ "&:hover": { backgroundColor: e(r[700], 0.3) },
1234
+ "&.Mui-selected": {
1235
+ backgroundColor: e(t[400], 0.15),
1236
+ "&:hover": { backgroundColor: e(t[400], 0.2) }
1237
+ }
1238
+ })
1239
+ })
1240
+ }
1241
+ },
1242
+ MuiAccordion: {
1243
+ styleOverrides: {
1244
+ root: ({ theme: o }) => ({
1245
+ border: `1px solid ${r[200]}`,
1246
+ borderRadius: o.shape.borderRadius,
1247
+ "&:before": { display: "none" },
1248
+ "&.Mui-expanded": { margin: 0 },
1249
+ ...o.applyStyles("dark", {
1250
+ border: `1px solid ${r[700]}`,
1251
+ backgroundColor: r[800]
1252
+ })
1253
+ })
1254
+ }
1255
+ },
1256
+ MuiAccordionSummary: {
1257
+ styleOverrides: {
1258
+ root: ({ theme: o }) => ({
1259
+ borderRadius: o.shape.borderRadius,
1260
+ fontWeight: 600,
1261
+ "&.Mui-expanded": { minHeight: 48 }
1262
+ }),
1263
+ content: { "&.Mui-expanded": { margin: "12px 0" } }
1264
+ }
1265
+ },
1266
+ MuiAccordionDetails: {
1267
+ styleOverrides: {
1268
+ root: ({ theme: o }) => ({
1269
+ borderTop: `1px solid ${r[200]}`,
1270
+ ...o.applyStyles("dark", { borderTop: `1px solid ${r[700]}` })
1271
+ })
1272
+ }
1273
+ },
1274
+ MuiTypography: {
1275
+ styleOverrides: {
1276
+ root: { WebkitFontSmoothing: "antialiased", MozOsxFontSmoothing: "grayscale" }
1277
+ }
1278
+ }
1279
+ };
1280
+ function _({ mode: o }) {
1281
+ const { setMode: i } = H();
1282
+ return D(() => {
1283
+ i && i(o);
1284
+ }, [o, i]), null;
1285
+ }
1286
+ function fo({
1287
+ children: o,
1288
+ disableCustomTheme: i,
1289
+ themeComponents: b,
1290
+ defaultMode: h = "dark"
1291
+ }) {
1292
+ const y = P(() => i ? v() : v({
1293
+ cssVariables: {
1294
+ colorSchemeSelector: "data-mui-color-scheme",
1295
+ cssVarPrefix: "ov-mui"
1296
+ },
1297
+ colorSchemes: {
1298
+ light: {
1299
+ palette: R("light").palette
1300
+ },
1301
+ dark: {
1302
+ palette: R("dark").palette
1303
+ }
1304
+ },
1305
+ typography: X,
1306
+ shape: q,
1307
+ shadows: J("light"),
1308
+ components: {
1309
+ MuiCssBaseline: {
1310
+ styleOverrides: {
1311
+ html: { height: "100%" },
1312
+ body: { height: "100%" }
1313
+ }
1314
+ },
1315
+ ...K,
1316
+ ...Q,
1317
+ ...Y,
1318
+ ...Z,
1319
+ ...b
1320
+ }
1321
+ }), [i, b]);
1322
+ return i ? /* @__PURE__ */ x(I, { children: o }) : /* @__PURE__ */ B(W, { theme: y, children: [
1323
+ /* @__PURE__ */ x(F, { enableColorScheme: !0 }),
1324
+ /* @__PURE__ */ x(_, { mode: h }),
1325
+ o
1326
+ ] });
1327
+ }
1328
+ function mo(o) {
1329
+ const i = document.documentElement;
1330
+ i.setAttribute("data-ov-theme", o.type);
1331
+ for (const [b, h] of Object.entries(o.colors)) {
1332
+ const y = `--ov-${b.replace(/\./g, "-")}`;
1333
+ i.style.setProperty(y, h);
1334
+ }
1335
+ o.typography?.fontFamily && i.style.setProperty("--ov-font-ui", o.typography.fontFamily), o.typography?.monoFontFamily && i.style.setProperty("--ov-font-mono", o.typography.monoFontFamily), o.typography?.fontSize && i.style.setProperty(
1336
+ "--ov-text-base",
1337
+ `${o.typography.fontSize / 16}rem`
1338
+ );
1339
+ }
1340
+ function vo(o = "dark") {
1341
+ const i = document.documentElement;
1342
+ i.setAttribute("data-ov-theme", o), i.removeAttribute("style");
1343
+ }
1344
+ export {
1345
+ fo as AppTheme,
1346
+ mo as applyTheme,
1347
+ t as brand,
1348
+ J as customShadows,
1349
+ Z as dataDisplayCustomizations,
1350
+ Y as feedbackCustomizations,
1351
+ R as getDesignTokens,
1352
+ r as gray,
1353
+ d as green,
1354
+ K as inputsCustomizations,
1355
+ Q as navigationCustomizations,
1356
+ s as orange,
1357
+ n as purple,
1358
+ p as red,
1359
+ vo as resetTheme,
1360
+ q as shape,
1361
+ X as typography
1362
+ };