@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.
- package/LICENSE +661 -0
- package/dist/Button-Dmu1cikC.cjs +1 -0
- package/dist/Button-lr02bh_m.js +51 -0
- package/dist/CodeBlock-B1iQO7zU.js +73 -0
- package/dist/CodeBlock-CIyG0DbW.cjs +2 -0
- package/dist/CopyButton-CACe3RCF.cjs +1 -0
- package/dist/CopyButton-DPBgL0K8.js +77 -0
- package/dist/ErrorState-CexYrMpy.js +188 -0
- package/dist/ErrorState-CnIR-1xa.cjs +1 -0
- package/dist/HotkeyHint-6SOi-MaU.js +37 -0
- package/dist/HotkeyHint-DrTOTrIM.cjs +1 -0
- package/dist/Icon-CKdIOrjZ.cjs +1 -0
- package/dist/Icon-CuO9W7cA.js +27 -0
- package/dist/SearchInput-CFBBNdI2.cjs +1 -0
- package/dist/SearchInput-D3AsCI5H.js +41 -0
- package/dist/Select-CnRBSc5w.cjs +1 -0
- package/dist/Select-DTUF31OP.js +206 -0
- package/dist/Skeleton-BUYyXUiC.js +32 -0
- package/dist/Skeleton-CfdQWLQM.cjs +1 -0
- package/dist/StatusDot-CYyJxjJK.cjs +1 -0
- package/dist/StatusDot-CncykBAY.js +68 -0
- package/dist/StatusPill-C1NaiCzd.js +29 -0
- package/dist/StatusPill-C7yn7dSA.cjs +1 -0
- package/dist/TabPanel-CkUSl6Bt.cjs +1 -0
- package/dist/TabPanel-DLHbgKpl.js +124 -0
- package/dist/Text-By4P3in5.js +71 -0
- package/dist/Text-Mk6Uyg1w.cjs +1 -0
- package/dist/Tooltip-44-P5KfQ.cjs +1 -0
- package/dist/Tooltip-BEVuYuZ3.js +41 -0
- package/dist/_commonjsHelpers-CvWRHxnb.js +26 -0
- package/dist/_commonjsHelpers-D3HyQheV.cjs +1 -0
- package/dist/buttons/ActionMenu.d.ts +21 -0
- package/dist/buttons/Button.d.ts +31 -0
- package/dist/buttons/ButtonGroup.d.ts +18 -0
- package/dist/buttons/ConfirmButton.d.ts +10 -0
- package/dist/buttons/CopyButton.d.ts +11 -0
- package/dist/buttons/IconButton.d.ts +21 -0
- package/dist/buttons/SearchBar.d.ts +22 -0
- package/dist/buttons/ToggleButton.d.ts +18 -0
- package/dist/buttons/ToggleGroup.d.ts +23 -0
- package/dist/buttons/Toolbar.d.ts +15 -0
- package/dist/buttons/ToolbarGroup.d.ts +11 -0
- package/dist/buttons/index.d.ts +22 -0
- package/dist/buttons.cjs +1 -0
- package/dist/buttons.js +430 -0
- package/dist/cells/BadgesCell.d.ts +19 -0
- package/dist/cells/ChipCell.d.ts +16 -0
- package/dist/cells/SelectBoxHeader.d.ts +11 -0
- package/dist/cells/SelectBoxRow.d.ts +11 -0
- package/dist/cells/TextCell.d.ts +25 -0
- package/dist/cells/index.d.ts +5 -0
- package/dist/cells.cjs +1 -0
- package/dist/cells.js +284 -0
- package/dist/charts/BarChart.d.ts +15 -0
- package/dist/charts/ChartContainer.d.ts +12 -0
- package/dist/charts/ChartLegend.d.ts +11 -0
- package/dist/charts/GaugeCard.d.ts +18 -0
- package/dist/charts/MetricsPanel.d.ts +61 -0
- package/dist/charts/PieChart.d.ts +13 -0
- package/dist/charts/ScatterChart.d.ts +25 -0
- package/dist/charts/Sparkline.d.ts +16 -0
- package/dist/charts/StackedAreaChart.d.ts +18 -0
- package/dist/charts/TimeSeriesChart.d.ts +43 -0
- package/dist/charts/formatters.d.ts +17 -0
- package/dist/charts/index.d.ts +21 -0
- package/dist/charts/palette.d.ts +7 -0
- package/dist/charts/types.d.ts +67 -0
- package/dist/charts/useChartTheme.d.ts +13 -0
- package/dist/charts.cjs +1 -0
- package/dist/charts.js +967 -0
- package/dist/components/ActionCard.d.ts +22 -0
- package/dist/components/AspectRatio.d.ts +13 -0
- package/dist/components/Avatar.d.ts +19 -0
- package/dist/components/Badge.d.ts +22 -0
- package/dist/components/Card.d.ts +24 -0
- package/dist/components/Chip.d.ts +32 -0
- package/dist/components/ClipboardText.d.ts +14 -0
- package/dist/components/DetailsCard.d.ts +25 -0
- package/dist/components/EmptySearch.d.ts +12 -0
- package/dist/components/ExpandableSections.d.ts +51 -0
- package/dist/components/FileIcon.d.ts +12 -0
- package/dist/components/HotkeyHint.d.ts +8 -0
- package/dist/components/Icon.d.ts +7 -0
- package/dist/components/InlineEdit.d.ts +14 -0
- package/dist/components/KVCard.d.ts +12 -0
- package/dist/components/Kbd.d.ts +8 -0
- package/dist/components/List.d.ts +29 -0
- package/dist/components/ListCard.d.ts +30 -0
- package/dist/components/ListItem.d.ts +27 -0
- package/dist/components/LoadingOverlay.d.ts +14 -0
- package/dist/components/MediaCard.d.ts +24 -0
- package/dist/components/MetricsSection.d.ts +37 -0
- package/dist/components/OverflowText.d.ts +12 -0
- package/dist/components/StatCard.d.ts +26 -0
- package/dist/components/StatusCard.d.ts +29 -0
- package/dist/components/TruncatedList.d.ts +13 -0
- package/dist/domain/DescriptionList.d.ts +12 -0
- package/dist/domain/EventsList.d.ts +11 -0
- package/dist/domain/FilterBar.d.ts +23 -0
- package/dist/domain/LogsViewer.d.ts +15 -0
- package/dist/domain/MetricCard.d.ts +14 -0
- package/dist/domain/ObjectInspector.d.ts +19 -0
- package/dist/domain/ResourceBreadcrumb.d.ts +19 -0
- package/dist/domain/ResourceRef.d.ts +15 -0
- package/dist/domain/ResourceStatus.d.ts +17 -0
- package/dist/domain/SecretValueMask.d.ts +11 -0
- package/dist/domain/Timeline.d.ts +21 -0
- package/dist/domain/index.d.ts +23 -0
- package/dist/domain/types.d.ts +25 -0
- package/dist/domain.cjs +1 -0
- package/dist/domain.js +871 -0
- package/dist/editors/CodeEditor.d.ts +19 -0
- package/dist/editors/CommandPalette.d.ts +22 -0
- package/dist/editors/DiffViewer.d.ts +14 -0
- package/dist/editors/MarkdownPreview.d.ts +9 -0
- package/dist/editors/Terminal.d.ts +18 -0
- package/dist/editors/index.d.ts +11 -0
- package/dist/editors/themes.d.ts +4 -0
- package/dist/editors.cjs +42 -0
- package/dist/editors.js +38396 -0
- package/dist/feedback/Alert.d.ts +21 -0
- package/dist/feedback/ConnectionIndicator.d.ts +15 -0
- package/dist/feedback/EmptyState.d.ts +17 -0
- package/dist/feedback/ErrorState.d.ts +12 -0
- package/dist/feedback/IDEStatusFooter.d.ts +104 -0
- package/dist/feedback/NotificationStack.d.ts +32 -0
- package/dist/feedback/ProgressBar.d.ts +16 -0
- package/dist/feedback/ProgressRing.d.ts +26 -0
- package/dist/feedback/RunButton.d.ts +17 -0
- package/dist/feedback/Skeleton.d.ts +13 -0
- package/dist/feedback/StatusBar.d.ts +12 -0
- package/dist/feedback/StatusBarItem.d.ts +18 -0
- package/dist/feedback/StatusDot.d.ts +14 -0
- package/dist/feedback/StatusPill.d.ts +13 -0
- package/dist/feedback/index.d.ts +29 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.js +1011 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +1632 -0
- package/dist/inputs/Autocomplete.d.ts +30 -0
- package/dist/inputs/Checkbox.d.ts +17 -0
- package/dist/inputs/ColorPicker.d.ts +13 -0
- package/dist/inputs/DebouncedInput.d.ts +10 -0
- package/dist/inputs/FormField.d.ts +15 -0
- package/dist/inputs/FormSection.d.ts +14 -0
- package/dist/inputs/KeyValueEditor.d.ts +17 -0
- package/dist/inputs/RadioGroup.d.ts +23 -0
- package/dist/inputs/SearchInput.d.ts +14 -0
- package/dist/inputs/Select.d.ts +32 -0
- package/dist/inputs/Slider.d.ts +24 -0
- package/dist/inputs/Switch.d.ts +17 -0
- package/dist/inputs/TagInput.d.ts +18 -0
- package/dist/inputs/TextArea.d.ts +26 -0
- package/dist/inputs/TextField.d.ts +39 -0
- package/dist/inputs/TimeRangePicker.d.ts +21 -0
- package/dist/inputs/index.d.ts +31 -0
- package/dist/inputs.cjs +21 -0
- package/dist/inputs.js +15834 -0
- package/dist/layout/AppShell.d.ts +18 -0
- package/dist/layout/DockLayout.d.ts +23 -0
- package/dist/layout/Inline.d.ts +15 -0
- package/dist/layout/Panel.d.ts +17 -0
- package/dist/layout/ResizableSplitPane.d.ts +18 -0
- package/dist/layout/Spacer.d.ts +9 -0
- package/dist/layout/Stack.d.ts +19 -0
- package/dist/layout/index.d.ts +16 -0
- package/dist/layout/useResizablePanel.d.ts +18 -0
- package/dist/layout.cjs +5 -0
- package/dist/layout.js +378 -0
- package/dist/menus/ContextMenu.d.ts +12 -0
- package/dist/menus/DropdownMenu.d.ts +20 -0
- package/dist/menus/MenuBar.d.ts +11 -0
- package/dist/menus/NestedMenuItem.d.ts +13 -0
- package/dist/menus/SplitButton.d.ts +15 -0
- package/dist/menus/index.d.ts +11 -0
- package/dist/menus/types.d.ts +24 -0
- package/dist/menus.cjs +1 -0
- package/dist/menus.js +355 -0
- package/dist/navigation/Breadcrumbs.d.ts +18 -0
- package/dist/navigation/DraggableTabs.d.ts +24 -0
- package/dist/navigation/Pagination.d.ts +15 -0
- package/dist/navigation/PersistentTabPanel.d.ts +13 -0
- package/dist/navigation/Stepper.d.ts +19 -0
- package/dist/navigation/TabPanel.d.ts +11 -0
- package/dist/navigation/Tabs.d.ts +26 -0
- package/dist/navigation/TreeView.d.ts +27 -0
- package/dist/navigation/index.d.ts +16 -0
- package/dist/navigation.cjs +1 -0
- package/dist/navigation.js +429 -0
- package/dist/overlays/Dialog.d.ts +18 -0
- package/dist/overlays/Drawer.d.ts +17 -0
- package/dist/overlays/ErrorOverlay.d.ts +21 -0
- package/dist/overlays/Modal.d.ts +14 -0
- package/dist/overlays/NotificationCenter.d.ts +31 -0
- package/dist/overlays/Popover.d.ts +15 -0
- package/dist/overlays/Spotlight.d.ts +24 -0
- package/dist/overlays/ToastProvider.d.ts +32 -0
- package/dist/overlays/Tooltip.d.ts +15 -0
- package/dist/overlays/index.d.ts +20 -0
- package/dist/overlays/useToast.d.ts +21 -0
- package/dist/overlays.cjs +1 -0
- package/dist/overlays.js +865 -0
- package/dist/sidebars/ActivityBar.d.ts +16 -0
- package/dist/sidebars/NavMenu.d.ts +27 -0
- package/dist/sidebars/NavMenu.test.d.ts +1 -0
- package/dist/sidebars/PropertyGrid.d.ts +16 -0
- package/dist/sidebars/SidebarGroup.d.ts +15 -0
- package/dist/sidebars/SidebarPanel.d.ts +19 -0
- package/dist/sidebars/SidebarTreeItem.d.ts +21 -0
- package/dist/sidebars/index.d.ts +13 -0
- package/dist/sidebars/types.d.ts +29 -0
- package/dist/sidebars.cjs +1 -0
- package/dist/sidebars.js +762 -0
- package/dist/table/ColumnFilter.d.ts +10 -0
- package/dist/table/DataTable.d.ts +23 -0
- package/dist/table/IDETable.d.ts +48 -0
- package/dist/table/TableEmptyState.d.ts +12 -0
- package/dist/table/TableSkeleton.d.ts +11 -0
- package/dist/table/TableToolbar.d.ts +15 -0
- package/dist/table/index.d.ts +12 -0
- package/dist/table/types.d.ts +4 -0
- package/dist/table.cjs +1 -0
- package/dist/table.js +580 -0
- package/dist/theme/AppTheme.d.ts +14 -0
- package/dist/theme/customizations/dataDisplay.d.ts +2 -0
- package/dist/theme/customizations/feedback.d.ts +2 -0
- package/dist/theme/customizations/inputs.d.ts +2 -0
- package/dist/theme/customizations/navigation.d.ts +2 -0
- package/dist/theme/index.d.ts +36 -0
- package/dist/theme/primitives.d.ts +234 -0
- package/dist/theme.cjs +1 -0
- package/dist/theme.js +1362 -0
- package/dist/tokens.css +252 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/maps.d.ts +25 -0
- package/dist/types/variants.d.ts +21 -0
- package/dist/types.cjs +1 -0
- package/dist/types.js +96 -0
- package/dist/typography/CodeBlock.d.ts +15 -0
- package/dist/typography/CodeInline.d.ts +10 -0
- package/dist/typography/Heading.d.ts +13 -0
- package/dist/typography/Link.d.ts +18 -0
- package/dist/typography/Text.d.ts +22 -0
- package/dist/typography/index.d.ts +10 -0
- package/dist/typography.cjs +1 -0
- package/dist/typography.js +120 -0
- package/dist/ui.css +1 -0
- package/dist/units-BuBKbqQ7.js +54 -0
- package/dist/units-CDpdlN1W.cjs +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/language.d.ts +4 -0
- package/dist/utils/time.d.ts +5 -0
- package/dist/utils/units.d.ts +7 -0
- package/dist/utils.cjs +1 -0
- package/dist/utils.js +78 -0
- 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;
|