@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,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
import { SemanticColor, Emphasis, ComponentSize } from '../types';
|
|
4
|
+
export interface AlertProps {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
color?: SemanticColor;
|
|
7
|
+
emphasis?: Extract<Emphasis, 'solid' | 'soft' | 'outline'>;
|
|
8
|
+
dismissible?: boolean;
|
|
9
|
+
onDismiss?: () => void;
|
|
10
|
+
actions?: React.ReactNode;
|
|
11
|
+
icon?: React.ReactNode | false;
|
|
12
|
+
/** Alias for icon (Joy UI compat) */
|
|
13
|
+
startAdornment?: React.ReactNode;
|
|
14
|
+
size?: ComponentSize;
|
|
15
|
+
sx?: SxProps<Theme>;
|
|
16
|
+
}
|
|
17
|
+
declare function Alert({ children, color, emphasis, dismissible, onDismiss, actions, icon, startAdornment, size, sx, }: AlertProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare namespace Alert {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
export default Alert;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { ComponentSize } from '../types';
|
|
3
|
+
export type ConnectionStatus = 'connected' | 'connecting' | 'disconnected' | 'error';
|
|
4
|
+
export interface ConnectionIndicatorProps {
|
|
5
|
+
status: ConnectionStatus;
|
|
6
|
+
label?: string;
|
|
7
|
+
size?: ComponentSize;
|
|
8
|
+
showLabel?: boolean;
|
|
9
|
+
sx?: SxProps<Theme>;
|
|
10
|
+
}
|
|
11
|
+
declare function ConnectionIndicator({ status, label, size, showLabel, sx, }: ConnectionIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare namespace ConnectionIndicator {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export default ConnectionIndicator;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
import { ComponentSize } from '../types';
|
|
4
|
+
export interface EmptyStateProps {
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
primaryAction?: React.ReactNode;
|
|
9
|
+
secondaryAction?: React.ReactNode;
|
|
10
|
+
size?: ComponentSize;
|
|
11
|
+
sx?: SxProps<Theme>;
|
|
12
|
+
}
|
|
13
|
+
declare function EmptyState({ icon, title, description, primaryAction, secondaryAction, size, sx, }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare namespace EmptyState {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
export default EmptyState;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ErrorStateProps {
|
|
2
|
+
message: string;
|
|
3
|
+
errorId?: string;
|
|
4
|
+
onRetry?: () => void;
|
|
5
|
+
onCopyError?: () => void;
|
|
6
|
+
variant?: 'page' | 'panel' | 'inline';
|
|
7
|
+
}
|
|
8
|
+
declare function ErrorState({ message, errorId, onRetry, variant, }: ErrorStateProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare namespace ErrorState {
|
|
10
|
+
var displayName: string;
|
|
11
|
+
}
|
|
12
|
+
export default ErrorState;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export interface StatusChipProps {
|
|
4
|
+
label: string;
|
|
5
|
+
bgColor?: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
icon?: React.ReactNode;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
tooltip?: string;
|
|
10
|
+
}
|
|
11
|
+
declare function StatusChip({ label, bgColor, color, icon, onClick, tooltip }: StatusChipProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export interface FooterStatusDotProps {
|
|
13
|
+
color: string;
|
|
14
|
+
pulse?: boolean;
|
|
15
|
+
tooltip?: string;
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
}
|
|
18
|
+
declare function FooterStatusDot({ color, pulse, tooltip, onClick }: FooterStatusDotProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export interface StatusTextProps {
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
icon?: React.ReactNode;
|
|
22
|
+
onClick?: () => void;
|
|
23
|
+
tooltip?: string;
|
|
24
|
+
}
|
|
25
|
+
declare function StatusText({ children, icon, onClick, tooltip }: StatusTextProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export interface StatusSpinnerProps {
|
|
27
|
+
label?: string;
|
|
28
|
+
tooltip?: string;
|
|
29
|
+
}
|
|
30
|
+
declare function StatusSpinner({ label, tooltip }: StatusSpinnerProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export interface StatusProgressProps {
|
|
32
|
+
/** 0–100 progress value. Omit for indeterminate. */
|
|
33
|
+
value?: number;
|
|
34
|
+
/** Width in px */
|
|
35
|
+
width?: number;
|
|
36
|
+
/** Bar color (CSS value) */
|
|
37
|
+
color?: string;
|
|
38
|
+
/** Label shown beside the bar */
|
|
39
|
+
label?: string;
|
|
40
|
+
/** Whether to show percentage text */
|
|
41
|
+
showValue?: boolean;
|
|
42
|
+
tooltip?: string;
|
|
43
|
+
}
|
|
44
|
+
declare function StatusProgress({ value, width, color, label, showValue, tooltip, }: StatusProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
export interface StatusSeparatorProps {
|
|
46
|
+
color?: string;
|
|
47
|
+
}
|
|
48
|
+
declare function StatusSeparator({ color }: StatusSeparatorProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
export interface StatusButtonProps {
|
|
50
|
+
icon?: React.ReactNode;
|
|
51
|
+
label?: string;
|
|
52
|
+
onClick?: () => void;
|
|
53
|
+
tooltip?: string;
|
|
54
|
+
color?: string;
|
|
55
|
+
}
|
|
56
|
+
declare function StatusButton({ icon, label, onClick, tooltip, color }: StatusButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export interface StatusBadgeProps {
|
|
58
|
+
count: number;
|
|
59
|
+
icon?: React.ReactNode;
|
|
60
|
+
maxCount?: number;
|
|
61
|
+
onClick?: () => void;
|
|
62
|
+
tooltip?: string;
|
|
63
|
+
color?: string;
|
|
64
|
+
}
|
|
65
|
+
declare function StatusBadge({ count, icon, maxCount, onClick, tooltip, color }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
export interface StatusTimerProps {
|
|
67
|
+
/** Time string to display, e.g. "02:34" or "1h 23m" */
|
|
68
|
+
time: string;
|
|
69
|
+
icon?: React.ReactNode;
|
|
70
|
+
running?: boolean;
|
|
71
|
+
tooltip?: string;
|
|
72
|
+
}
|
|
73
|
+
declare function StatusTimer({ time, icon, running, tooltip }: StatusTimerProps): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export interface StatusCircularProps {
|
|
75
|
+
/** 0–100 value. Omit for indeterminate. */
|
|
76
|
+
value?: number;
|
|
77
|
+
/** Diameter in px */
|
|
78
|
+
size?: number;
|
|
79
|
+
/** Bar color */
|
|
80
|
+
color?: string;
|
|
81
|
+
tooltip?: string;
|
|
82
|
+
}
|
|
83
|
+
declare function StatusCircular({ value, size, color, tooltip }: StatusCircularProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export interface IDEStatusFooterProps {
|
|
85
|
+
left?: React.ReactNode;
|
|
86
|
+
right?: React.ReactNode;
|
|
87
|
+
height?: number;
|
|
88
|
+
sx?: SxProps<Theme>;
|
|
89
|
+
}
|
|
90
|
+
declare function IDEStatusFooter({ left, right, height, sx, }: IDEStatusFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
declare namespace IDEStatusFooter {
|
|
92
|
+
var displayName: string;
|
|
93
|
+
var Chip: typeof StatusChip;
|
|
94
|
+
var Dot: typeof FooterStatusDot;
|
|
95
|
+
var Text: typeof StatusText;
|
|
96
|
+
var Spinner: typeof StatusSpinner;
|
|
97
|
+
var Progress: typeof StatusProgress;
|
|
98
|
+
var Circular: typeof StatusCircular;
|
|
99
|
+
var Separator: typeof StatusSeparator;
|
|
100
|
+
var Button: typeof StatusButton;
|
|
101
|
+
var Badge: typeof StatusBadge;
|
|
102
|
+
var Timer: typeof StatusTimer;
|
|
103
|
+
}
|
|
104
|
+
export default IDEStatusFooter;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export type NotificationSeverity = 'info' | 'success' | 'warning' | 'error';
|
|
4
|
+
export interface NotificationAction {
|
|
5
|
+
label: string;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface StackNotification {
|
|
9
|
+
id: string;
|
|
10
|
+
severity: NotificationSeverity;
|
|
11
|
+
title: string;
|
|
12
|
+
message?: string;
|
|
13
|
+
actions?: NotificationAction[];
|
|
14
|
+
timeout?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface NotificationStackContextValue {
|
|
17
|
+
push: (notification: Omit<StackNotification, 'id'>) => string;
|
|
18
|
+
dismiss: (id: string) => void;
|
|
19
|
+
dismissAll: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function useNotificationStack(): NotificationStackContextValue;
|
|
22
|
+
export interface NotificationStackProviderProps {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
maxVisible?: number;
|
|
25
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
26
|
+
sx?: SxProps<Theme>;
|
|
27
|
+
}
|
|
28
|
+
declare function NotificationStackProvider({ children, maxVisible, position, sx, }: NotificationStackProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
declare namespace NotificationStackProvider {
|
|
30
|
+
var displayName: string;
|
|
31
|
+
}
|
|
32
|
+
export default NotificationStackProvider;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { SemanticColor, ComponentSize } from '../types';
|
|
3
|
+
export interface ProgressBarProps {
|
|
4
|
+
value?: number;
|
|
5
|
+
indeterminate?: boolean;
|
|
6
|
+
color?: SemanticColor;
|
|
7
|
+
size?: ComponentSize;
|
|
8
|
+
label?: string;
|
|
9
|
+
showValue?: boolean;
|
|
10
|
+
sx?: SxProps<Theme>;
|
|
11
|
+
}
|
|
12
|
+
declare function ProgressBar({ value, indeterminate, color, size, label, showValue, sx, }: ProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare namespace ProgressBar {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
export default ProgressBar;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { SemanticColor, ComponentSize } from '../types';
|
|
3
|
+
export interface ProgressRingProps {
|
|
4
|
+
/** 0–100 progress value. Omit for indeterminate. */
|
|
5
|
+
value?: number;
|
|
6
|
+
/** Size preset */
|
|
7
|
+
size?: ComponentSize;
|
|
8
|
+
/** Semantic color */
|
|
9
|
+
color?: SemanticColor;
|
|
10
|
+
/** Track thickness multiplier (1 = default) */
|
|
11
|
+
thickness?: number;
|
|
12
|
+
/** Show value inside the ring */
|
|
13
|
+
showValue?: boolean;
|
|
14
|
+
/** Custom label inside the ring (overrides showValue) */
|
|
15
|
+
label?: React.ReactNode;
|
|
16
|
+
/** Caption below the ring */
|
|
17
|
+
caption?: string;
|
|
18
|
+
/** Track (background) color */
|
|
19
|
+
trackColor?: string;
|
|
20
|
+
sx?: SxProps<Theme>;
|
|
21
|
+
}
|
|
22
|
+
declare function ProgressRing({ value, size, color, thickness, showValue, label, caption, trackColor, sx, }: ProgressRingProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare namespace ProgressRing {
|
|
24
|
+
var displayName: string;
|
|
25
|
+
}
|
|
26
|
+
export default ProgressRing;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { SemanticColor, ComponentSize } from '../types';
|
|
3
|
+
export interface RunButtonProps {
|
|
4
|
+
running: boolean;
|
|
5
|
+
onStart: () => void;
|
|
6
|
+
onStop: () => void;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
color?: SemanticColor;
|
|
9
|
+
size?: ComponentSize;
|
|
10
|
+
label?: string;
|
|
11
|
+
sx?: SxProps<Theme>;
|
|
12
|
+
}
|
|
13
|
+
declare function RunButton({ running, onStart, onStop, loading, size, label, sx, }: RunButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare namespace RunButton {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
export default RunButton;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
export interface SkeletonProps {
|
|
3
|
+
variant?: 'text' | 'circular' | 'rectangular' | 'rounded';
|
|
4
|
+
width?: number | string;
|
|
5
|
+
height?: number | string;
|
|
6
|
+
lines?: number;
|
|
7
|
+
sx?: SxProps<Theme>;
|
|
8
|
+
}
|
|
9
|
+
declare function Skeleton({ variant, width, height, lines, sx, }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace Skeleton {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default Skeleton;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export interface StatusBarProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
height?: number;
|
|
6
|
+
sx?: SxProps<Theme>;
|
|
7
|
+
}
|
|
8
|
+
declare function StatusBar({ children, height, sx, }: StatusBarProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare namespace StatusBar {
|
|
10
|
+
var displayName: string;
|
|
11
|
+
}
|
|
12
|
+
export default StatusBar;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
import { SemanticColor } from '../types';
|
|
4
|
+
export interface StatusBarItemProps {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
tooltip?: string;
|
|
9
|
+
align?: 'left' | 'right';
|
|
10
|
+
color?: SemanticColor;
|
|
11
|
+
separator?: boolean;
|
|
12
|
+
sx?: SxProps<Theme>;
|
|
13
|
+
}
|
|
14
|
+
declare function StatusBarItem({ children, icon, onClick, tooltip, color, separator, sx, }: StatusBarItemProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare namespace StatusBarItem {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
18
|
+
export default StatusBarItem;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { Status, ComponentSize } from '../types';
|
|
3
|
+
export interface StatusDotProps {
|
|
4
|
+
status: Status;
|
|
5
|
+
size?: ComponentSize;
|
|
6
|
+
label?: string;
|
|
7
|
+
pulse?: boolean;
|
|
8
|
+
sx?: SxProps<Theme>;
|
|
9
|
+
}
|
|
10
|
+
declare function StatusDot({ status, size, label, pulse, sx, }: StatusDotProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare namespace StatusDot {
|
|
12
|
+
var displayName: string;
|
|
13
|
+
}
|
|
14
|
+
export default StatusDot;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { Status, ComponentSize } from '../types';
|
|
3
|
+
export interface StatusPillProps {
|
|
4
|
+
status: Status;
|
|
5
|
+
size?: ComponentSize;
|
|
6
|
+
label?: string;
|
|
7
|
+
sx?: SxProps<Theme>;
|
|
8
|
+
}
|
|
9
|
+
declare function StatusPill({ status, size, label, sx, }: StatusPillProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace StatusPill {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default StatusPill;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { default as Alert } from './Alert';
|
|
2
|
+
export type { AlertProps } from './Alert';
|
|
3
|
+
export { default as StatusDot } from './StatusDot';
|
|
4
|
+
export type { StatusDotProps } from './StatusDot';
|
|
5
|
+
export { default as StatusPill } from './StatusPill';
|
|
6
|
+
export type { StatusPillProps } from './StatusPill';
|
|
7
|
+
export { default as EmptyState } from './EmptyState';
|
|
8
|
+
export type { EmptyStateProps } from './EmptyState';
|
|
9
|
+
export { default as ErrorState } from './ErrorState';
|
|
10
|
+
export type { ErrorStateProps } from './ErrorState';
|
|
11
|
+
export { default as Skeleton } from './Skeleton';
|
|
12
|
+
export type { SkeletonProps } from './Skeleton';
|
|
13
|
+
export { default as StatusBar } from './StatusBar';
|
|
14
|
+
export type { StatusBarProps } from './StatusBar';
|
|
15
|
+
export { default as StatusBarItem } from './StatusBarItem';
|
|
16
|
+
export type { StatusBarItemProps } from './StatusBarItem';
|
|
17
|
+
export { default as ProgressBar } from './ProgressBar';
|
|
18
|
+
export type { ProgressBarProps } from './ProgressBar';
|
|
19
|
+
export { default as ConnectionIndicator } from './ConnectionIndicator';
|
|
20
|
+
export type { ConnectionIndicatorProps, ConnectionStatus } from './ConnectionIndicator';
|
|
21
|
+
export { default as RunButton } from './RunButton';
|
|
22
|
+
export type { RunButtonProps } from './RunButton';
|
|
23
|
+
export { default as NotificationStackProvider } from './NotificationStack';
|
|
24
|
+
export { useNotificationStack } from './NotificationStack';
|
|
25
|
+
export type { NotificationStackProviderProps, NotificationStackContextValue, StackNotification, NotificationSeverity, NotificationAction, } from './NotificationStack';
|
|
26
|
+
export { default as IDEStatusFooter } from './IDEStatusFooter';
|
|
27
|
+
export type { IDEStatusFooterProps, StatusChipProps, FooterStatusDotProps, StatusTextProps, StatusSpinnerProps, StatusProgressProps, StatusCircularProps, StatusSeparatorProps, StatusButtonProps, StatusBadgeProps, StatusTimerProps, } from './IDEStatusFooter';
|
|
28
|
+
export { default as ProgressRing } from './ProgressRing';
|
|
29
|
+
export type { ProgressRingProps } from './ProgressRing';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),V=require("@mui/material/Alert"),A=require("@mui/material/IconButton"),X=require("@mui/icons-material/Close"),I=require("@mui/material/styles"),O=require("./StatusDot-CYyJxjJK.cjs"),G=require("./StatusPill-C7yn7dSA.cjs"),R=require("./ErrorState-CnIR-1xa.cjs"),J=require("./Skeleton-CfdQWLQM.cjs"),h=require("react"),a=require("@mui/material/Box"),m=require("@mui/material/Tooltip"),k=require("./types.cjs"),M=require("@mui/material/LinearProgress"),S=require("@mui/material/Typography"),P=require("@mui/material/Button"),j=require("@mui/material/CircularProgress"),b=require("react-icons/lu"),K={solid:"filled",soft:"standard",outline:"outlined"},Q={xs:{padding:"0px 6px",fontSize:"var(--ov-text-xs)",iconSize:16,borderRadius:6,closeSize:"small"},sm:{padding:"2px 8px",fontSize:"var(--ov-text-sm)",iconSize:18,borderRadius:8,closeSize:"small"},md:{padding:"6px 12px",fontSize:"var(--ov-text-sm)",iconSize:20,borderRadius:10,closeSize:"small"},lg:{padding:"8px 16px",fontSize:"var(--ov-text-md)",iconSize:22,borderRadius:10,closeSize:"medium"},xl:{padding:"12px 16px",fontSize:"var(--ov-text-md)",iconSize:24,borderRadius:12,closeSize:"medium"}},U={success:{light:{bg:"hsl(120, 80%, 98%)",fg:"hsl(120, 87%, 6%)",border:"hsl(120, 61%, 77%)",icon:"hsl(120, 44%, 53%)"},dark:{bg:"hsl(120, 84%, 10%)",fg:"hsl(120, 75%, 94%)",border:"hsl(120, 75%, 16%)",icon:"hsl(120, 44%, 53%)"}},warning:{light:{bg:"hsl(45, 100%, 97%)",fg:"hsl(45, 93%, 12%)",border:"hsl(45, 90%, 65%)",icon:"hsl(45, 90%, 40%)"},dark:{bg:"hsl(45, 95%, 16%)",fg:"hsl(45, 92%, 90%)",border:"hsl(45, 94%, 20%)",icon:"hsl(45, 90%, 40%)"}},error:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},danger:{light:{bg:"hsl(0, 100%, 97%)",fg:"hsl(0, 93%, 6%)",border:"hsl(0, 90%, 65%)",icon:"hsl(0, 90%, 40%)"},dark:{bg:"hsl(0, 95%, 12%)",fg:"hsl(0, 92%, 90%)",border:"hsl(0, 94%, 18%)",icon:"hsl(0, 90%, 40%)"}},info:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 65%)",icon:"hsl(210, 98%, 42%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},primary:{light:{bg:"hsl(210, 100%, 95%)",fg:"hsl(210, 100%, 21%)",border:"hsl(210, 100%, 80%)",icon:"hsl(210, 98%, 48%)"},dark:{bg:"hsl(210, 100%, 16%)",fg:"hsl(210, 100%, 92%)",border:"hsl(210, 100%, 35%)",icon:"hsl(210, 98%, 55%)"}},secondary:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},accent:{light:{bg:"hsl(270, 100%, 97%)",fg:"hsl(270, 70%, 42%)",border:"hsl(270, 80%, 80%)",icon:"hsl(270, 70%, 50%)"},dark:{bg:"hsl(270, 80%, 16%)",fg:"hsl(270, 92%, 90%)",border:"hsl(270, 75%, 25%)",icon:"hsl(270, 70%, 65%)"}},neutral:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}},muted:{light:{bg:"hsl(220, 35%, 97%)",fg:"hsl(220, 20%, 42%)",border:"hsl(220, 20%, 88%)",icon:"hsl(220, 20%, 65%)"},dark:{bg:"hsl(220, 30%, 6%)",fg:"hsl(220, 30%, 94%)",border:"hsl(220, 20%, 25%)",icon:"hsl(220, 20%, 80%)"}}};function w(t,r){return r==="outline"?{bg:"transparent",fg:t.fg,border:`1px solid ${I.alpha(t.border,.7)}`,icon:t.icon}:r==="solid"?{bg:t.icon,fg:"#fff",border:"none",icon:"#fff"}:{bg:t.bg,fg:t.fg,border:`1px solid ${I.alpha(t.border,.5)}`,icon:t.icon}}function B({children:t,color:r="info",emphasis:o="soft",dismissible:n=!1,onDismiss:i,actions:l,icon:s,startAdornment:c,size:d="md",sx:x}){const f=K[o]||"standard",u=Q[d],v={success:"success",info:"info",warning:"warning",error:"error",danger:"error",primary:"info",secondary:"info",accent:"info",neutral:"info",muted:"info"}[r]??"info";return e.jsx(V,{severity:v,variant:f,icon:s===!1?!1:s??c,action:e.jsxs(e.Fragment,{children:[l,n&&e.jsx(A,{size:u.closeSize,color:"inherit",onClick:i,"aria-label":"Dismiss",children:e.jsx(X,{fontSize:"small"})})]}),sx:H=>{const C=U[r],z=w(C.light,o),y=w(C.dark,o),$=o==="soft"?I.alpha(y.bg,.3):y.bg;return{padding:u.padding,fontSize:u.fontSize,borderRadius:`${u.borderRadius}px`,alignItems:"center",backgroundColor:z.bg,color:z.fg,border:z.border,"& .MuiAlert-icon":{fontSize:u.iconSize,mr:d==="xs"?.5:1,py:0,color:z.icon},"& .MuiAlert-message":{py:0,overflow:"hidden"},"& .MuiAlert-action":{py:0,alignItems:"center"},...H.applyStyles("dark",{backgroundColor:$,color:y.fg,border:y.border,"& .MuiAlert-icon":{color:y.icon}}),...typeof x=="object"&&x!==null?x:{}}},children:t})}B.displayName="Alert";function q({children:t,height:r=24,sx:o}){const n=h.Children.toArray(t),i=n.filter(s=>h.isValidElement(s)?s.props.align!=="right":!0),l=n.filter(s=>h.isValidElement(s)?s.props.align==="right":!1);return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:r,px:1,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontSize:"var(--ov-text-xs)",...typeof o=="object"&&!Array.isArray(o)?o:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:i}),e.jsx(a,{sx:{display:"flex",alignItems:"center",gap:0},children:l})]})}q.displayName="StatusBar";function N({children:t,icon:r,onClick:o,tooltip:n,color:i,separator:l=!1,sx:s}){const c=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:.5,px:.75,height:20,fontSize:"var(--ov-text-xs)",color:i?k.toCssColor(i):"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"3px",whiteSpace:"nowrap",...l&&{borderRight:"1px solid var(--ov-border-muted)",pr:1,mr:.25},...o&&{"&:hover":{bgcolor:"var(--ov-state-hover)"}},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[r&&e.jsx(a,{component:"span",sx:{display:"inline-flex",fontSize:"0.75rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:c}):c}N.displayName="StatusBarItem";const Y={xs:2,sm:4,md:6,lg:8,xl:10};function T({value:t,indeterminate:r=!1,color:o="primary",size:n="sm",label:i,showValue:l=!1,sx:s}){const c=k.toCssColor(o),d=Y[n];return e.jsxs(a,{sx:{display:"flex",flexDirection:"column",gap:.5,...typeof s=="object"&&!Array.isArray(s)?s:{}},children:[(i||l)&&e.jsxs(a,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[i&&e.jsx(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:i}),l&&!r&&t!==void 0&&e.jsxs(S,{sx:{fontSize:"var(--ov-text-xs)",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]}),e.jsx(M,{variant:r?"indeterminate":"determinate",value:r?void 0:t,sx:{height:d,borderRadius:d/2,bgcolor:"var(--ov-bg-surface-inset)","& .MuiLinearProgress-bar":{bgcolor:c,borderRadius:d/2}}})]})}T.displayName="ProgressBar";const Z={connected:"var(--ov-success-default)",connecting:"var(--ov-warning-default)",disconnected:"var(--ov-fg-faint)",error:"var(--ov-danger-default)"},_={connected:"Connected",connecting:"Connecting",disconnected:"Disconnected",error:"Error"},ee={xs:6,sm:8,md:10,lg:12,xl:14};function L({status:t,label:r,size:o="sm",showLabel:n=!0,sx:i}){const l=Z[t],s=ee[o],c=r??_[t];return e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:.75,...typeof i=="object"&&!Array.isArray(i)?i:{}},children:[e.jsx(a,{sx:{width:s,height:s,borderRadius:"50%",bgcolor:l,flexShrink:0,...t==="connecting"&&{animation:"ov-conn-pulse 1.5s ease-in-out infinite","@keyframes ov-conn-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}}),n&&e.jsx(S,{sx:{fontSize:o==="xs"?"var(--ov-text-xs)":"var(--ov-text-sm)",color:"var(--ov-fg-default)",lineHeight:1},children:c})]})}L.displayName="ConnectionIndicator";const te={xs:12,sm:14,md:16,lg:18,xl:20};function E({running:t,onStart:r,onStop:o,loading:n=!1,size:i="sm",label:l,sx:s}){const c=k.toMuiSize(i),d=te[i],x=()=>{t?o():r()},f=n?e.jsx(j,{size:d,color:"inherit"}):t?e.jsx(b.LuSquare,{size:d}):e.jsx(b.LuPlay,{size:d});return e.jsx(P,{size:c,variant:"contained",onClick:x,disabled:n,startIcon:f,sx:{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",color:"#fff",textTransform:"none","&:hover":{bgcolor:t?"var(--ov-danger-default)":"var(--ov-success-default)",filter:"brightness(0.9)"},...typeof s=="object"&&!Array.isArray(s)?s:{}},children:l??(t?"Stop":"Run")})}E.displayName="RunButton";const D=h.createContext(null);function re(){const t=h.useContext(D);if(!t)throw new Error("useNotificationStack must be used within a NotificationStackProvider");return t}const oe={info:e.jsx(b.LuInfo,{size:16}),success:e.jsx(b.LuCircleCheck,{size:16}),warning:e.jsx(b.LuTriangleAlert,{size:16}),error:e.jsx(b.LuCircleAlert,{size:16})},ne={info:"var(--ov-info-default)",success:"var(--ov-success-default)",warning:"var(--ov-warning-default)",error:"var(--ov-danger-default)"};function ie({notification:t,onDismiss:r}){const{id:o,severity:n,title:i,message:l,actions:s,timeout:c}=t,d=h.useRef(void 0);h.useEffect(()=>{const f=c??8e3;return f>0&&(d.current=setTimeout(()=>r(o),f)),()=>{d.current&&clearTimeout(d.current)}},[o,c,r]);const x=ne[n];return e.jsxs(a,{sx:{display:"flex",gap:1,minWidth:320,maxWidth:420,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",borderLeft:`3px solid ${x}`,borderRadius:"6px",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",p:1.5,animation:"ov-notif-slide-in 0.2s ease-out","@keyframes ov-notif-slide-in":{from:{opacity:0,transform:"translateX(40px)"},to:{opacity:1,transform:"translateX(0)"}}},children:[e.jsx(a,{sx:{color:x,pt:"2px",flexShrink:0},children:oe[n]}),e.jsxs(a,{sx:{flex:1,minWidth:0},children:[e.jsx(S,{sx:{fontSize:"0.8125rem",fontWeight:600,color:"var(--ov-fg-base)",lineHeight:1.4},children:i}),l&&e.jsx(S,{sx:{fontSize:"0.75rem",color:"var(--ov-fg-muted)",lineHeight:1.4,mt:.25},children:l}),s&&s.length>0&&e.jsx(a,{sx:{display:"flex",gap:.5,mt:1},children:s.map(f=>e.jsx(P,{size:"small",variant:"text",onClick:()=>{f.onClick(),r(o)},sx:{textTransform:"none",fontSize:"0.6875rem",fontWeight:600,color:"var(--ov-accent-fg)",minWidth:"auto",px:1,py:.25},children:f.label},f.label))})]}),e.jsx(A,{size:"small",onClick:()=>r(o),sx:{alignSelf:"flex-start",p:"2px",color:"var(--ov-fg-faint)","&:hover":{color:"var(--ov-fg-default)"}},children:e.jsx(b.LuX,{size:14})})]})}let se=0;function W({children:t,maxVisible:r=5,position:o="bottom-right",sx:n}){const[i,l]=h.useState([]),s=h.useCallback(u=>{const p=`notif-${++se}`;return l(v=>[...v,{...u,id:p}]),p},[]),c=h.useCallback(u=>{l(p=>p.filter(v=>v.id!==u))},[]),d=h.useCallback(()=>{l([])},[]),x={"bottom-right":{bottom:32,right:12},"bottom-left":{bottom:32,left:12},"top-right":{top:12,right:12},"top-left":{top:12,left:12}},f=i.slice(-r);return e.jsxs(D.Provider,{value:{push:s,dismiss:c,dismissAll:d},children:[t,f.length>0&&e.jsx(a,{sx:{position:"fixed",zIndex:9998,display:"flex",flexDirection:o.startsWith("bottom")?"column-reverse":"column",gap:.75,...x[o],...typeof n=="object"&&!Array.isArray(n)?n:{}},children:f.map(u=>e.jsx(ie,{notification:u,onDismiss:c},u.id))})]})}W.displayName="NotificationStackProvider";function ae({label:t,bgColor:r,color:o,icon:n,onClick:i,tooltip:l}){const s=e.jsxs(a,{onClick:i,sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",height:"100%",fontSize:"0.625rem",fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",bgcolor:r??"transparent",color:o??"#fff",cursor:i?"pointer":"default",whiteSpace:"nowrap","&:hover":i?{filter:"brightness(1.15)"}:{}},children:[n&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:n}),t]});return l?e.jsx(m,{title:l,children:s}):s}function le({color:t,pulse:r,tooltip:o,onClick:n}){const i=e.jsx(a,{onClick:n,sx:{width:8,height:8,borderRadius:"50%",bgcolor:t,flexShrink:0,cursor:n?"pointer":"default","&:hover":n?{filter:"brightness(1.3)"}:{},...r&&{animation:"ov-footer-pulse 1.5s ease-in-out infinite","@keyframes ov-footer-pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.3}}}}});return o?e.jsx(m,{title:o,children:i}):i}function ce({children:t,icon:r,onClick:o,tooltip:n}){const i=e.jsxs(a,{onClick:o,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)",cursor:o?"pointer":"default",borderRadius:"2px",whiteSpace:"nowrap","&:hover":o?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.6875rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function de({label:t,tooltip:r}){const o=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.6875rem",color:"var(--ov-fg-default)"},children:[e.jsx(j,{size:10,thickness:5,sx:{color:"var(--ov-fg-muted)"}}),t&&e.jsx("span",{children:t})]});return r?e.jsx(m,{title:r,children:o}):o}function fe({value:t,width:r=80,color:o="var(--ov-accent)",label:n,showValue:i=!1,tooltip:l}){const s=t===void 0,c=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"4px",px:"6px",fontSize:"0.625rem",color:"var(--ov-fg-default)"},children:[n&&e.jsx(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:n}),e.jsx(M,{variant:s?"indeterminate":"determinate",value:s?void 0:t,sx:{width:r,height:3,borderRadius:1.5,bgcolor:"rgba(255,255,255,0.1)","& .MuiLinearProgress-bar":{bgcolor:o,borderRadius:1.5}}}),i&&!s&&t!==void 0&&e.jsxs(a,{component:"span",sx:{whiteSpace:"nowrap",color:"var(--ov-fg-muted)"},children:[Math.round(t),"%"]})]});return l?e.jsx(m,{title:l,children:c}):c}function ue({color:t}){return e.jsx(a,{sx:{width:"1px",height:"60%",bgcolor:t??"var(--ov-border-default)",flexShrink:0,mx:"2px"}})}function xe({icon:t,label:r,onClick:o,tooltip:n,color:i}){const l=e.jsxs(a,{component:"button",onClick:o,sx:{all:"unset",display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:500,color:i??"var(--ov-fg-default)",cursor:"pointer",borderRadius:"2px",whiteSpace:"nowrap","&:hover":{bgcolor:"rgba(255,255,255,0.1)"},"&:active":{bgcolor:"rgba(255,255,255,0.15)"}},children:[t&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:t}),r]});return n?e.jsx(m,{title:n,children:l}):l}function ge({count:t,icon:r,maxCount:o=99,onClick:n,tooltip:i,color:l}){const s=t>o?`${o}+`:String(t),c=e.jsxs(a,{onClick:n,sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"5px",height:"100%",fontSize:"0.625rem",fontWeight:600,color:"var(--ov-fg-default)",cursor:n?"pointer":"default","&:hover":n?{bgcolor:"rgba(255,255,255,0.08)"}:{}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t>0&&e.jsx(a,{component:"span",sx:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,borderRadius:"7px",bgcolor:l??"var(--ov-accent)",color:"#fff",fontSize:"0.5625rem",fontWeight:700,lineHeight:1,px:"3px"},children:s})]});return i?e.jsx(m,{title:i,children:c}):c}function he({time:t,icon:r,running:o,tooltip:n}){const i=e.jsxs(a,{sx:{display:"inline-flex",alignItems:"center",gap:"3px",px:"6px",fontSize:"0.625rem",fontFamily:"var(--ov-font-mono)",fontFeatureSettings:'"tnum"',color:"var(--ov-fg-muted)",whiteSpace:"nowrap",...o&&{animation:"ov-footer-timer-blink 2s step-end infinite","@keyframes ov-footer-timer-blink":{"0%, 100%":{opacity:1},"50%":{opacity:.6}}}},children:[r&&e.jsx(a,{sx:{display:"flex",fontSize:"0.625rem"},children:r}),t]});return n?e.jsx(m,{title:n,children:i}):i}function pe({value:t,size:r=12,color:o,tooltip:n}){const i=t===void 0,l=e.jsx(a,{sx:{display:"inline-flex",alignItems:"center",px:"4px"},children:e.jsx(j,{variant:i?"indeterminate":"determinate",value:i?void 0:t,size:r,thickness:5,sx:{color:o??"var(--ov-accent)",...i&&{animationDuration:"1s"}}})});return n?e.jsx(m,{title:n,children:l}):l}function g({left:t,right:r,height:o=22,sx:n}){return e.jsxs(a,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",height:o,bgcolor:"var(--ov-bg-surface)",borderTop:"1px solid var(--ov-border-default)",fontFamily:"var(--ov-font-ui)",overflow:"hidden",flexShrink:0,...typeof n=="object"&&!Array.isArray(n)?n:{}},children:[e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:t}),e.jsx(a,{sx:{display:"flex",alignItems:"center",height:"100%",gap:.25},children:r})]})}g.displayName="IDEStatusFooter";g.Chip=ae;g.Dot=le;g.Text=ce;g.Spinner=de;g.Progress=fe;g.Circular=pe;g.Separator=ue;g.Button=xe;g.Badge=ge;g.Timer=he;const me={xs:20,sm:32,md:48,lg:64,xl:80},ve={xs:5,sm:4.5,md:4,lg:3.5,xl:3},be={xs:"0.5rem",sm:"0.625rem",md:"0.8125rem",lg:"1rem",xl:"1.25rem"};function F({value:t,size:r="md",color:o="primary",thickness:n,showValue:i=!1,label:l,caption:s,trackColor:c,sx:d}){const x=me[r],f=n??ve[r],u=k.toCssColor(o),p=t===void 0,v=l??(i&&!p?`${Math.round(t)}%`:null);return e.jsxs(a,{sx:{display:"inline-flex",flexDirection:"column",alignItems:"center",gap:.5,...typeof d=="object"&&!Array.isArray(d)?d:{}},children:[e.jsxs(a,{sx:{position:"relative",display:"inline-flex"},children:[e.jsx(j,{variant:"determinate",value:100,size:x,thickness:f,sx:{color:c??"var(--ov-bg-surface-inset)",position:"absolute"}}),e.jsx(j,{variant:p?"indeterminate":"determinate",value:p?void 0:t,size:x,thickness:f,sx:{color:u,...p&&{animationDuration:"1.2s"}}}),v&&e.jsx(a,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(S,{sx:{fontSize:be[r],fontWeight:600,color:"var(--ov-fg-default)",lineHeight:1,fontFeatureSettings:'"tnum"'},children:v})})]}),s&&e.jsx(S,{sx:{fontSize:r==="xs"?"0.5rem":"var(--ov-text-xs)",color:"var(--ov-fg-muted)",textAlign:"center",lineHeight:1.3},children:s})]})}F.displayName="ProgressRing";exports.StatusDot=O.StatusDot;exports.StatusPill=G.StatusPill;exports.EmptyState=R.EmptyState;exports.ErrorState=R.ErrorState;exports.Skeleton=J.Skeleton;exports.Alert=B;exports.ConnectionIndicator=L;exports.IDEStatusFooter=g;exports.NotificationStackProvider=W;exports.ProgressBar=T;exports.ProgressRing=F;exports.RunButton=E;exports.StatusBar=q;exports.StatusBarItem=N;exports.useNotificationStack=re;
|