@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,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { ActivityBarItem } from './types';
3
+ export interface ActivityBarProps {
4
+ items: ActivityBarItem[];
5
+ activeId?: string;
6
+ onChange?: (id: string) => void;
7
+ position?: 'left' | 'right';
8
+ bottomItems?: ActivityBarItem[];
9
+ width?: number;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function ActivityBar({ items, activeId, onChange, position, bottomItems, width, sx, }: ActivityBarProps): import("react/jsx-runtime").JSX.Element;
13
+ declare namespace ActivityBar {
14
+ var displayName: string;
15
+ }
16
+ export default ActivityBar;
@@ -0,0 +1,27 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { ComponentSize } from '../types';
3
+ import { NavSection } from './types';
4
+ export interface NavMenuProps {
5
+ sections: NavSection[];
6
+ selected?: string;
7
+ onSelect?: (id: string) => void;
8
+ size?: ComponentSize;
9
+ /** Make the menu scrollable within its container. */
10
+ scrollable?: boolean;
11
+ /** Start all collapsible items expanded. Defaults to false. */
12
+ defaultExpanded?: boolean;
13
+ /** Animate expand/collapse transitions. Defaults to true. */
14
+ animate?: boolean;
15
+ /** Initial expanded state to merge over computed defaults (e.g. from persistence). */
16
+ initialExpandedState?: Record<string, boolean>;
17
+ /** Called whenever expanded state changes (for external persistence). */
18
+ onExpandedChange?: (state: Record<string, boolean>) => void;
19
+ sx?: SxProps<Theme>;
20
+ }
21
+ /** Walk the section tree and return IDs of all ancestor items containing the target. */
22
+ export declare function findAncestors(sections: NavSection[], targetId: string): string[];
23
+ declare function NavMenu({ sections, selected, onSelect, size, scrollable, defaultExpanded, animate, initialExpandedState, onExpandedChange, sx, }: NavMenuProps): import("react/jsx-runtime").JSX.Element;
24
+ declare namespace NavMenu {
25
+ var displayName: string;
26
+ }
27
+ export default NavMenu;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { ComponentSize } from '../types';
3
+ import { PropertyGridItem } from './types';
4
+ export interface PropertyGridProps {
5
+ items: PropertyGridItem[];
6
+ columns?: 1 | 2;
7
+ size?: ComponentSize;
8
+ editable?: boolean;
9
+ onEdit?: (key: string, value: string) => void;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function PropertyGrid({ items, columns, size, editable, onEdit, sx, }: PropertyGridProps): import("react/jsx-runtime").JSX.Element;
13
+ declare namespace PropertyGrid {
14
+ var displayName: string;
15
+ }
16
+ export default PropertyGrid;
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface SidebarGroupProps {
4
+ title: string;
5
+ count?: number;
6
+ defaultExpanded?: boolean;
7
+ children: React.ReactNode;
8
+ actions?: React.ReactNode;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function SidebarGroup({ title, count, defaultExpanded, children, actions, sx, }: SidebarGroupProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace SidebarGroup {
13
+ var displayName: string;
14
+ }
15
+ export default SidebarGroup;
@@ -0,0 +1,19 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface SidebarPanelProps {
4
+ title: string;
5
+ icon?: React.ReactNode;
6
+ toolbar?: React.ReactNode;
7
+ children: React.ReactNode;
8
+ searchable?: boolean;
9
+ onSearch?: (query: string) => void;
10
+ collapsible?: boolean;
11
+ badge?: React.ReactNode;
12
+ width?: number | string;
13
+ sx?: SxProps<Theme>;
14
+ }
15
+ declare function SidebarPanel({ title, icon, toolbar, children, searchable, onSearch, badge, width, sx, }: SidebarPanelProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace SidebarPanel {
17
+ var displayName: string;
18
+ }
19
+ export default SidebarPanel;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface SidebarTreeItemProps {
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ badge?: React.ReactNode;
7
+ actions?: React.ReactNode;
8
+ depth?: number;
9
+ selected?: boolean;
10
+ expanded?: boolean;
11
+ hasChildren?: boolean;
12
+ onClick?: () => void;
13
+ onToggle?: () => void;
14
+ onContextMenu?: (e: React.MouseEvent) => void;
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function SidebarTreeItem({ label, icon, badge, actions, depth, selected, expanded, hasChildren, onClick, onToggle, onContextMenu, sx, }: SidebarTreeItemProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace SidebarTreeItem {
19
+ var displayName: string;
20
+ }
21
+ export default SidebarTreeItem;
@@ -0,0 +1,13 @@
1
+ export { default as ActivityBar } from './ActivityBar';
2
+ export type { ActivityBarProps } from './ActivityBar';
3
+ export { default as SidebarPanel } from './SidebarPanel';
4
+ export type { SidebarPanelProps } from './SidebarPanel';
5
+ export { default as SidebarGroup } from './SidebarGroup';
6
+ export type { SidebarGroupProps } from './SidebarGroup';
7
+ export { default as SidebarTreeItem } from './SidebarTreeItem';
8
+ export type { SidebarTreeItemProps } from './SidebarTreeItem';
9
+ export { default as PropertyGrid } from './PropertyGrid';
10
+ export type { PropertyGridProps } from './PropertyGrid';
11
+ export { default as NavMenu } from './NavMenu';
12
+ export type { NavMenuProps } from './NavMenu';
13
+ export type { ActivityBarItem, PropertyGridItem, NavSection, NavMenuItem, } from './types';
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ export interface ActivityBarItem {
3
+ id: string;
4
+ icon: React.ReactNode;
5
+ label: string;
6
+ badge?: number | boolean;
7
+ }
8
+ export interface PropertyGridItem {
9
+ key: string;
10
+ label: string;
11
+ value: React.ReactNode;
12
+ type?: 'text' | 'boolean' | 'color' | 'link' | 'code';
13
+ copyable?: boolean;
14
+ editable?: boolean;
15
+ }
16
+ export interface NavSection {
17
+ title: string;
18
+ items: NavMenuItem[];
19
+ }
20
+ export interface NavMenuItem {
21
+ id: string;
22
+ label: string;
23
+ icon?: React.ReactNode;
24
+ badge?: React.ReactNode;
25
+ children?: NavMenuItem[];
26
+ disabled?: boolean;
27
+ /** Start expanded when first rendered. Only relevant for items with children. */
28
+ defaultExpanded?: boolean;
29
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("@mui/material/Box"),G=require("@mui/material/Tooltip"),b=require("react"),j=require("@mui/material/Typography"),N=require("@mui/material/InputBase"),m=require("react-icons/lu"),A=require("@mui/material/Collapse"),V=require("@mui/material/Chip"),F=require("@mui/material/Checkbox");function $({count:e}){return e?e===!0?r.jsx(i,{sx:{position:"absolute",top:6,right:6,width:8,height:8,borderRadius:"50%",bgcolor:"var(--ov-accent-fg)",border:"2px solid var(--ov-bg-surface)"}}):r.jsx(i,{sx:{position:"absolute",top:4,right:4,minWidth:16,height:16,borderRadius:8,bgcolor:"var(--ov-accent-fg)",color:"#fff",fontSize:10,fontWeight:600,display:"flex",alignItems:"center",justifyContent:"center",px:.5,border:"2px solid var(--ov-bg-surface)"},children:e>99?"99+":e}):null}function R({item:e,active:o,onClick:a,position:n}){return r.jsx(G,{title:e.label,placement:n==="left"?"right":"left",children:r.jsxs(i,{onClick:a,sx:{position:"relative",width:"100%",aspectRatio:"1",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",color:o?"var(--ov-fg-base)":"var(--ov-fg-muted)",opacity:o?1:.7,"&:hover":{opacity:1,color:"var(--ov-fg-base)"},"&::before":o?{content:'""',position:"absolute",[n==="left"?"left":"right"]:0,top:"25%",height:"50%",width:2,borderRadius:1,bgcolor:"var(--ov-accent-fg)"}:{},transition:"color 100ms ease, opacity 100ms ease",fontSize:22},children:[e.icon,r.jsx($,{count:e.badge})]})})}function D({items:e,activeId:o,onChange:a,position:n="left",bottomItems:t,width:l=48,sx:c}){return r.jsxs(i,{sx:{width:l,minWidth:l,height:"100%",bgcolor:"var(--ov-bg-surface)",borderRight:n==="left"?"1px solid var(--ov-border-default)":void 0,borderLeft:n==="right"?"1px solid var(--ov-border-default)":void 0,display:"flex",flexDirection:"column",alignItems:"center",py:.5,...typeof c=="object"&&!Array.isArray(c)?c:{}},children:[r.jsx(i,{sx:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%",flex:1},children:e.map(s=>r.jsx(R,{item:s,active:o===s.id,onClick:()=>a?.(s.id),position:n},s.id))}),t&&t.length>0&&r.jsx(i,{sx:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%"},children:t.map(s=>r.jsx(R,{item:s,active:o===s.id,onClick:()=>a?.(s.id),position:n},s.id))})]})}D.displayName="ActivityBar";function M({title:e,icon:o,toolbar:a,children:n,searchable:t=!1,onSearch:l,badge:c,width:s=260,sx:f}){const[d,u]=b.useState(""),x=p=>{u(p),l?.(p)};return r.jsxs(i,{sx:{width:s,minWidth:s,height:"100%",display:"flex",flexDirection:"column",bgcolor:"var(--ov-bg-surface)",borderRight:"1px solid var(--ov-border-default)",overflow:"hidden",...typeof f=="object"&&!Array.isArray(f)?f:{}},children:[r.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:.75,px:1.5,py:1,minHeight:36,borderBottom:"1px solid var(--ov-border-muted)"},children:[o&&r.jsx(i,{sx:{display:"flex",alignItems:"center",color:"var(--ov-fg-muted)",fontSize:14},children:o}),r.jsx(j,{variant:"subtitle2",sx:{flex:1,fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--ov-fg-muted)"},noWrap:!0,children:e}),c,a]}),t&&r.jsx(i,{sx:{px:1,py:.75,borderBottom:"1px solid var(--ov-border-muted)"},children:r.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:.5,px:1,py:.25,borderRadius:1,bgcolor:"var(--ov-bg-base)",border:"1px solid var(--ov-border-default)"},children:[r.jsx(m.LuSearch,{size:13,color:"var(--ov-fg-faint)"}),r.jsx(N,{value:d,onChange:p=>x(p.target.value),placeholder:"Search...",sx:{flex:1,fontSize:12,"& input":{padding:0},"& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}})]})}),r.jsx(i,{sx:{flex:1,overflow:"auto",py:.5},children:n})]})}M.displayName="SidebarPanel";function T({title:e,count:o,defaultExpanded:a=!0,children:n,actions:t,sx:l}){const[c,s]=b.useState(a);return r.jsxs(i,{sx:l,children:[r.jsxs(i,{onClick:()=>s(!c),sx:{display:"flex",alignItems:"center",gap:.25,px:1,py:.5,cursor:"pointer",userSelect:"none","&:hover":{bgcolor:"var(--ov-state-hover)"},"&:hover .sidebar-group-actions":{opacity:1}},children:[r.jsx(i,{sx:{display:"flex",alignItems:"center",flexShrink:0,color:"var(--ov-fg-faint)"},children:c?r.jsx(m.LuChevronDown,{size:12}):r.jsx(m.LuChevronRight,{size:12})}),r.jsx(j,{variant:"caption",sx:{flex:1,fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--ov-fg-muted)",lineHeight:1.4},noWrap:!0,children:e}),o!=null&&r.jsx(V,{label:o,size:"small",sx:{height:16,fontSize:10,fontWeight:600,bgcolor:"var(--ov-state-hover)",color:"var(--ov-fg-muted)","& .MuiChip-label":{px:.75}}}),t&&r.jsx(i,{className:"sidebar-group-actions",onClick:f=>f.stopPropagation(),sx:{display:"flex",alignItems:"center",gap:.25,opacity:0,transition:"opacity 100ms ease"},children:t})]}),r.jsx(A,{in:c,unmountOnExit:!0,children:n})]})}T.displayName="SidebarGroup";function B({label:e,icon:o,badge:a,actions:n,depth:t=0,selected:l=!1,expanded:c=!1,hasChildren:s=!1,onClick:f,onToggle:d,onContextMenu:u,sx:x}){return r.jsxs(i,{onClick:f,onContextMenu:u,sx:{display:"flex",alignItems:"center",gap:.5,py:.25,pr:1,pl:t*1.5+1,cursor:"pointer",minHeight:24,borderRadius:"4px",mx:.5,bgcolor:l?"var(--ov-accent-subtle)":"transparent",color:l?"var(--ov-accent-fg)":"var(--ov-fg-default)","&:hover":{bgcolor:l?"var(--ov-accent-subtle)":"var(--ov-state-hover)"},"&:hover .tree-item-actions":{opacity:1},...typeof x=="object"&&!Array.isArray(x)?x:{}},children:[s?r.jsx(i,{onClick:p=>{p.stopPropagation(),d?.()},sx:{display:"flex",alignItems:"center",flexShrink:0,color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:c?r.jsx(m.LuChevronDown,{size:14}):r.jsx(m.LuChevronRight,{size:14})}):r.jsx(i,{sx:{width:14,flexShrink:0}}),o&&r.jsx(i,{sx:{display:"flex",alignItems:"center",flexShrink:0,fontSize:14},children:o}),r.jsx(j,{variant:"body2",sx:{flex:1,fontSize:12,color:"inherit",lineHeight:1.4},noWrap:!0,children:e}),a,n&&r.jsx(i,{className:"tree-item-actions",onClick:p=>p.stopPropagation(),sx:{display:"flex",alignItems:"center",gap:.25,opacity:0,transition:"opacity 100ms ease"},children:n})]})}B.displayName="SidebarTreeItem";const _={xs:"11px",sm:"12px",md:"12px",lg:"13px",xl:"14px"},K={xs:22,sm:24,md:26,lg:30,xl:34};function w({item:e,size:o,editable:a,onEdit:n,striped:t}){const[l,c]=b.useState(!1),[s,f]=b.useState(""),d=_[o],u=K[o],x=a||e.editable,p=()=>{if(!x)return;const y=typeof e.value=="string"?e.value:String(e.value??"");f(y),c(!0)},C=()=>{c(!1),n?.(e.key,s)},I=()=>l?r.jsx(N,{value:s,onChange:y=>f(y.target.value),onBlur:C,onKeyDown:y=>{y.key==="Enter"&&C(),y.key==="Escape"&&c(!1)},autoFocus:!0,sx:{fontSize:d,flex:1,"& input":{py:0,px:.5}}}):e.type==="boolean"?r.jsx(F,{checked:e.value===!0||e.value==="true",size:"small",disabled:!x,sx:{p:0}}):e.type==="color"&&typeof e.value=="string"?r.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:.5},children:[r.jsx(i,{sx:{width:12,height:12,borderRadius:.5,bgcolor:e.value,border:"1px solid var(--ov-border-default)",flexShrink:0}}),r.jsx(j,{variant:"body2",sx:{fontSize:d,color:"inherit",fontFamily:"var(--ov-font-mono)"},noWrap:!0,children:e.value})]}):e.type==="code"?r.jsx(j,{variant:"body2",sx:{fontSize:d,color:"inherit",fontFamily:"var(--ov-font-mono)"},noWrap:!0,children:e.value}):e.type==="link"?r.jsx(j,{variant:"body2",sx:{fontSize:d,color:"var(--ov-accent-fg)",cursor:"pointer","&:hover":{textDecoration:"underline"}},noWrap:!0,children:e.value}):r.jsx(j,{variant:"body2",sx:{fontSize:d,color:"inherit"},noWrap:!0,children:e.value});return r.jsxs(i,{onDoubleClick:p,sx:{display:"flex",alignItems:"center",minHeight:u,px:1,gap:1,bgcolor:t?"var(--ov-state-hover)":"transparent","&:hover":{bgcolor:"var(--ov-state-hover)"}},children:[r.jsx(j,{variant:"body2",sx:{width:"40%",minWidth:"40%",fontSize:d,color:"var(--ov-fg-muted)",fontWeight:500},noWrap:!0,children:e.label}),r.jsx(i,{sx:{flex:1,display:"flex",alignItems:"center",overflow:"hidden",color:"var(--ov-fg-default)"},children:I()})]})}function H({items:e,columns:o=1,size:a="md",editable:n=!1,onEdit:t,sx:l}){if(o===2){const c=Math.ceil(e.length/2),s=e.slice(0,c),f=e.slice(c);return r.jsxs(i,{sx:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:0,...typeof l=="object"&&!Array.isArray(l)?l:{}},children:[r.jsx(i,{children:s.map((d,u)=>r.jsx(w,{item:d,size:a,editable:n,onEdit:t,striped:u%2===1},d.key))}),r.jsx(i,{children:f.map((d,u)=>r.jsx(w,{item:d,size:a,editable:n,onEdit:t,striped:u%2===1},d.key))})]})}return r.jsx(i,{sx:l,children:e.map((c,s)=>r.jsx(w,{item:c,size:a,editable:n,onEdit:t,striped:s%2===1},c.key))})}H.displayName="PropertyGrid";const Z={xs:11,sm:12,md:13,lg:14,xl:15},E=12,z=14,J=10;function Q(e){const o={};function a(n){for(const t of n)t.children&&t.children.length>0&&(o[t.id]=!0),t.children&&a(t.children)}for(const n of e)a(n.items);return o}function U(e){const o={};function a(n){for(const t of n)t.defaultExpanded&&(o[t.id]=!0),t.children&&a(t.children)}for(const n of e)a(n.items);return o}function X(e,o){const a=[];function n(t){for(const l of t){if(l.id===o)return!0;if(l.children&&l.children.length>0){if(a.push(l.id),n(l.children))return!0;a.pop()}}return!1}for(const t of e){if(n(t.items))return[...a];a.length=0}return[]}function P({item:e,depth:o,selected:a,onSelect:n,fontSize:t,expandedState:l,onToggleExpanded:c,animate:s}){const f=l[e.id]??!1,d=a===e.id,u=e.children&&e.children.length>0,x=u&&e.children&&r.jsx(r.Fragment,{children:e.children.map(p=>r.jsx(P,{item:p,depth:o+1,selected:a,onSelect:n,fontSize:t,expandedState:l,onToggleExpanded:c,animate:s},p.id))});return r.jsxs(i,{children:[r.jsxs(i,{onClick:()=>{e.disabled||(u?c(e.id):n?.(e.id))},sx:{display:"flex",alignItems:"center",gap:"4px",pl:`${o*J+4}px`,pr:"6px",py:"3px",cursor:e.disabled?"default":"pointer",opacity:e.disabled?.5:1,borderRadius:"4px",mx:"4px",my:"1px",bgcolor:d?"var(--ov-accent-subtle)":"transparent",color:d?"var(--ov-accent-fg)":"var(--ov-fg-default)",fontWeight:d?600:u?500:400,"&:hover":{bgcolor:d?"var(--ov-accent-subtle)":"var(--ov-state-hover)"}},children:[r.jsx(i,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:z,minWidth:z,flexShrink:0,color:"var(--ov-fg-faint)"},children:u&&(f?r.jsx(m.LuChevronDown,{size:E}):r.jsx(m.LuChevronRight,{size:E}))}),e.icon&&r.jsx(i,{sx:{display:"flex",alignItems:"center",flexShrink:0,fontSize:t+2},children:e.icon}),r.jsx(j,{variant:"body2",sx:{flex:1,fontSize:t,color:"inherit",fontWeight:"inherit"},noWrap:!0,children:e.label}),e.badge]}),u&&(s?r.jsx(A,{in:f,unmountOnExit:!0,children:x}):f?x:null)]})}const Y={overflow:"auto",maxHeight:"100%",flex:1,minHeight:0,scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}};function q({sections:e,selected:o,onSelect:a,size:n="md",scrollable:t,defaultExpanded:l=!1,animate:c=!0,initialExpandedState:s,onExpandedChange:f,sx:d}){const u=Z[n],x=b.useMemo(()=>l?Q(e):U(e),[e,l]),[p,C]=b.useState(()=>({...x,...s??{}})),I=b.useRef(f);I.current=f;const y=b.useCallback(h=>{C(v=>{const g=h(v);return g!==v&&I.current?.(g),g})},[]),W=b.useRef(e);b.useEffect(()=>{W.current!==e&&(W.current=e,y(h=>{const v=x,g={...h};let k=!1;for(const S of Object.keys(v))S in g||(g[S]=v[S],k=!0);return k?g:h}))},[e,x,y]),b.useEffect(()=>{if(!o)return;const h=X(e,o);h.length>0&&y(v=>{const g={...v};let k=!1;for(const S of h)g[S]||(g[S]=!0,k=!0);return k?g:v})},[o,e,y]);const L=b.useCallback(h=>{y(v=>({...v,[h]:!v[h]}))},[y]),O=t?{...Y,...d}:d;return r.jsx(i,{sx:O,children:e.map((h,v)=>r.jsxs(i,{sx:{mb:.5,mt:v===0?0:.25},children:[h.title&&r.jsx(j,{variant:"overline",sx:{display:"block",px:"12px",py:"4px",fontSize:10,fontWeight:600,letterSpacing:"0.08em",color:"var(--ov-fg-faint)",textTransform:"uppercase"},children:h.title}),h.items.map(g=>r.jsx(P,{item:g,depth:0,selected:o,onSelect:a,fontSize:u,expandedState:p,onToggleExpanded:L,animate:c},g.id))]},h.title||`section-${v}`))})}q.displayName="NavMenu";exports.ActivityBar=D;exports.NavMenu=q;exports.PropertyGrid=H;exports.SidebarGroup=T;exports.SidebarPanel=M;exports.SidebarTreeItem=B;