@superdangerous/app-framework 4.15.1 → 4.15.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superdangerous/app-framework",
3
- "version": "4.15.1",
3
+ "version": "4.15.3",
4
4
  "description": "Opinionated TypeScript framework for structured vibecoding - building internal web and desktop apps with batteries included",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -6,10 +6,10 @@ import {
6
6
  TableHead,
7
7
  TableHeader,
8
8
  TableRow,
9
- } from '../../shadcn/table';
10
- import { TooltipProvider } from '../../shadcn/tooltip';
9
+ } from '../../components/base/table';
10
+ import { TooltipProvider } from '../../components/base/tooltip';
11
11
  import { ChevronUp, ChevronDown, ArrowUpDown, Loader2, Check, Eye, EyeOff } from 'lucide-react';
12
- import { cn } from '../../utils';
12
+ import { cn } from '../../src/utils/cn';
13
13
  import { useResizableColumns } from '../hooks/useResizableColumns';
14
14
  import { useColumnVisibility } from '../hooks/useColumnVisibility';
15
15
  import { useColumnOrder, useColumnDragDrop } from '../hooks/useColumnOrder';
@@ -82,7 +82,9 @@ export function useColumnOrder({
82
82
  setColumnOrder(prev => {
83
83
  const newOrder = [...prev];
84
84
  const [removed] = newOrder.splice(fromIndex, 1);
85
- newOrder.splice(toIndex, 0, removed);
85
+ if (removed !== undefined) {
86
+ newOrder.splice(toIndex, 0, removed);
87
+ }
86
88
  return newOrder;
87
89
  });
88
90
  }, []);
@@ -100,7 +102,9 @@ export function useColumnOrder({
100
102
 
101
103
  const newOrder = [...prev];
102
104
  const [removed] = newOrder.splice(currentIndex, 1);
103
- newOrder.splice(newIndex, 0, removed);
105
+ if (removed !== undefined) {
106
+ newOrder.splice(newIndex, 0, removed);
107
+ }
104
108
  return newOrder;
105
109
  });
106
110
  }, []);
@@ -1420,4 +1420,421 @@ declare const statusStyles: {
1420
1420
  };
1421
1421
  };
1422
1422
 
1423
- export { ActivityLED, type ActivityLEDProps, Alert, AlertDescription, AlertTitle, type ApiReadinessOptions, type ApiReadinessResult, AppLayout, type AppLayoutProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardHeader, type CardProps, CardSkeleton, CardTitle, Checkbox, CodeSnippet, CodeViewer, type CodeViewerProps, ColorPalette, CompactStat, type CompactStatProps, CompactThemeToggle, ConfirmDialog, type ConfirmDialogVariant, ConnectionIndicator, ConnectionLostOverlay, ConnectionOverlay, ConnectionStatus$1 as ConnectionStatus, ConnectionStatusBanner, ContextMenu, ContextMenuItem, type ContextMenuItemProps, type ContextMenuPosition, type ContextMenuProps, ContextMenuSeparator, ContextMenuSubmenu, type ContextMenuSubmenuProps, DashboardStats, type DashboardStatsProps, type DataColumn, DeviceIcon, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DogEarBadge, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStates, type FormState, HelpTooltip, Input, type InputProps, Label, LoadingState, type LogEntry, type LogFile, LogStats, type LogStatsProps, LogViewer, type LogViewerProps, LoginPage, LogsPage, type LogsPageProps, MarkdownCard, MarkdownScrollArea, MarkdownViewer, type NavItem, NetworkInterfaceSelect, NoSearchResults, NoSimulatorsRunning, NoTemplatesFound, Popover, PopoverContent, PopoverTrigger, Progress, ProtectedRoute, RealtimeDataTable, type RealtimeDataTableProps, ResizableDialog, RestartBanner, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type SettingDefinition$1 as SettingDefinition, type SettingsCategory$1 as SettingsCategory, SettingsFramework, SettingsPage, type SettingsPageProps, SidebarLayout, type SidebarLayoutProps, Slider, type SocketIOActions, type SocketIOConfig, type SocketIOState, Sparkline, type SparklineProps, type StatCard, Switch, TAG_COLORS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TestModeIndicator, Textarea, type TextareaProps, type Theme, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruncatedText, UpdateNotification, type UseFormStateOptions, activityStyles, apiRequest, authHandler, badgeVariants, buttonStyles, buttonVariants, cardStyles, checkApiReadiness, cn, createSettingsCategory, defaultSettingsCategories, emptyStateStyles, formatBytes, formatDateTime, formatDuration, formatDurationMs, formatNumber, formatRelativeTime, formatShortRelativeTime, getCSSVariables, getNextAvailableColor, getNextTagColor, getRandomTagColor, getTagClassName, getTagColor, socketManager, statusStyles, theme, timeAgo, useApiReadiness, useConfirmDialog, useConnectionStatus, useDebounce, useFormState, useSocketIO, useTheme, waitForApiReady };
1423
+ interface UsePaginationOptions<T> {
1424
+ data: T[];
1425
+ pageSize?: number;
1426
+ storageKey?: string;
1427
+ }
1428
+ interface UsePaginationResult<T> {
1429
+ paginatedData: T[];
1430
+ page: number;
1431
+ pageSize: number;
1432
+ totalPages: number;
1433
+ totalItems: number;
1434
+ setPage: (page: number) => void;
1435
+ setPageSize: (size: number) => void;
1436
+ nextPage: () => void;
1437
+ prevPage: () => void;
1438
+ firstPage: () => void;
1439
+ lastPage: () => void;
1440
+ startIndex: number;
1441
+ endIndex: number;
1442
+ canGoNext: boolean;
1443
+ canGoPrev: boolean;
1444
+ pageSizeOptions: number[];
1445
+ }
1446
+ declare function usePagination<T>({ data, pageSize: initialPageSize, storageKey, }: UsePaginationOptions<T>): UsePaginationResult<T>;
1447
+
1448
+ interface ColumnConfig$1 {
1449
+ id: string;
1450
+ label: string;
1451
+ defaultVisible?: boolean;
1452
+ locked?: boolean;
1453
+ }
1454
+ interface ColumnVisibilityState {
1455
+ [key: string]: boolean;
1456
+ }
1457
+ interface UseColumnVisibilityOptions {
1458
+ columns: ColumnConfig$1[];
1459
+ storageKey: string;
1460
+ }
1461
+ interface UseColumnVisibilityReturn {
1462
+ visibleColumns: ColumnVisibilityState;
1463
+ isColumnVisible: (columnId: string) => boolean;
1464
+ toggleColumn: (columnId: string) => void;
1465
+ showAllColumns: () => void;
1466
+ hideAllColumns: () => void;
1467
+ columns: ColumnConfig$1[];
1468
+ }
1469
+ declare function useColumnVisibility({ columns, storageKey, }: UseColumnVisibilityOptions): UseColumnVisibilityReturn;
1470
+
1471
+ interface ColumnConfig {
1472
+ key: string;
1473
+ minWidth?: number;
1474
+ maxWidth?: number;
1475
+ defaultWidth?: number;
1476
+ }
1477
+ interface UseResizableColumnsOptions {
1478
+ tableId: string;
1479
+ columns: ColumnConfig[];
1480
+ storageKey?: string;
1481
+ }
1482
+ interface ResizableColumnResult {
1483
+ widths: Record<string, number>;
1484
+ isResizing: boolean;
1485
+ totalWidth: number;
1486
+ getResizeHandleProps: (columnKey: string) => {
1487
+ onPointerDown: (e: React.PointerEvent) => void;
1488
+ onMouseDown: (e: React.MouseEvent) => void;
1489
+ draggable: boolean;
1490
+ onDragStart: (e: React.DragEvent) => void;
1491
+ className: string;
1492
+ 'data-resizing': boolean;
1493
+ };
1494
+ getColumnStyle: (columnKey: string) => React.CSSProperties;
1495
+ getTableStyle: () => React.CSSProperties;
1496
+ resetToDefaults: () => void;
1497
+ }
1498
+ declare function useResizableColumns({ tableId, columns, storageKey, }: UseResizableColumnsOptions): ResizableColumnResult;
1499
+
1500
+ interface ColumnOrderConfig {
1501
+ id: string;
1502
+ label: string;
1503
+ locked?: boolean;
1504
+ }
1505
+ interface UseColumnOrderOptions {
1506
+ storageKey: string;
1507
+ defaultOrder: string[];
1508
+ }
1509
+ interface UseColumnOrderReturn {
1510
+ columnOrder: string[];
1511
+ moveColumn: (fromIndex: number, toIndex: number) => void;
1512
+ moveColumnById: (columnId: string, direction: 'left' | 'right') => void;
1513
+ resetOrder: () => void;
1514
+ getOrderedColumns: <T extends {
1515
+ id: string;
1516
+ }>(columns: T[]) => T[];
1517
+ }
1518
+ /**
1519
+ * Hook for managing column order with localStorage persistence
1520
+ */
1521
+ declare function useColumnOrder({ storageKey, defaultOrder, }: UseColumnOrderOptions): UseColumnOrderReturn;
1522
+ /**
1523
+ * Drag and drop helpers for column reordering
1524
+ */
1525
+ interface DragState {
1526
+ isDragging: boolean;
1527
+ draggedId: string | null;
1528
+ dropIndex: number | null;
1529
+ }
1530
+ declare function useColumnDragDrop(columnOrder: string[], moveColumn: (from: number, to: number) => void, lockedColumns?: string[]): {
1531
+ dragState: DragState;
1532
+ getDragHandleProps: (columnId: string) => {
1533
+ draggable: boolean;
1534
+ onDragStart: (e: React.DragEvent) => void;
1535
+ onDragOver: (e: React.DragEvent) => void;
1536
+ onDrop: (e: React.DragEvent) => void;
1537
+ onDragEnd: () => void;
1538
+ };
1539
+ showDropIndicator: (columnId: string) => boolean;
1540
+ };
1541
+
1542
+ /**
1543
+ * Column width configuration
1544
+ */
1545
+ interface ColumnWidth {
1546
+ default: number;
1547
+ min: number;
1548
+ max?: number;
1549
+ }
1550
+ /**
1551
+ * Column visibility configuration
1552
+ */
1553
+ interface ColumnVisibility$1 {
1554
+ default: boolean;
1555
+ locked?: boolean;
1556
+ }
1557
+ /**
1558
+ * Props passed to header cell render function
1559
+ */
1560
+ interface HeaderCellProps {
1561
+ columnId: string;
1562
+ isSorted: boolean;
1563
+ sortDirection?: 'asc' | 'desc';
1564
+ }
1565
+ /**
1566
+ * Props passed to cell render function
1567
+ */
1568
+ interface CellProps {
1569
+ columnId: string;
1570
+ isDragging: boolean;
1571
+ }
1572
+ /**
1573
+ * Column definition for DataTable
1574
+ */
1575
+ interface ColumnDef<T> {
1576
+ /** Unique column identifier */
1577
+ id: string;
1578
+ /** Header content - string or render function */
1579
+ header: string | ((props: HeaderCellProps) => ReactNode);
1580
+ /** Cell content render function */
1581
+ cell: (item: T, props: CellProps) => ReactNode;
1582
+ /** Key to use for sorting (if sortable) */
1583
+ sortKey?: string;
1584
+ /** Width configuration */
1585
+ width?: ColumnWidth;
1586
+ /** Visibility configuration */
1587
+ visibility?: ColumnVisibility$1;
1588
+ /** Additional CSS class for cells */
1589
+ className?: string;
1590
+ /** Whether this column should use column style from resize hook */
1591
+ resizable?: boolean;
1592
+ }
1593
+ /**
1594
+ * External pagination state (from usePagination hook)
1595
+ */
1596
+ interface ExternalPaginationState<T> {
1597
+ paginatedData: T[];
1598
+ page: number;
1599
+ pageSize: number;
1600
+ totalPages: number;
1601
+ totalItems: number;
1602
+ startIndex: number;
1603
+ endIndex: number;
1604
+ canGoNext: boolean;
1605
+ canGoPrev: boolean;
1606
+ pageSizeOptions: number[];
1607
+ setPage: (page: number) => void;
1608
+ setPageSize: (size: number) => void;
1609
+ nextPage: () => void;
1610
+ prevPage: () => void;
1611
+ }
1612
+ /**
1613
+ * DataTable props
1614
+ */
1615
+ interface DataTableProps<T> {
1616
+ /** Data array to display */
1617
+ data: T[];
1618
+ /** Column definitions */
1619
+ columns: ColumnDef<T>[];
1620
+ /** Storage key for persisting table state (column widths, order, visibility) */
1621
+ storageKey: string;
1622
+ /** Function to get unique ID from item */
1623
+ getRowId: (item: T) => string;
1624
+ /** Enable row selection with checkboxes */
1625
+ selectable?: boolean;
1626
+ /** Set of selected row IDs */
1627
+ selectedIds?: Set<string>;
1628
+ /** Callback when selection changes */
1629
+ onSelectionChange?: (ids: Set<string>) => void;
1630
+ /** Callback when row is clicked */
1631
+ onRowClick?: (item: T) => void;
1632
+ /** Callback when row is right-clicked (for context menu) */
1633
+ onRowContextMenu?: (item: T, position: {
1634
+ x: number;
1635
+ y: number;
1636
+ }) => void;
1637
+ /** Current sort field */
1638
+ sortField?: string;
1639
+ /** Current sort order */
1640
+ sortOrder?: 'asc' | 'desc';
1641
+ /** Callback when sort changes */
1642
+ onSort?: (field: string) => void;
1643
+ /** Render function for actions column (always last, sticky) */
1644
+ actionsColumn?: (item: T) => ReactNode;
1645
+ /** Width for actions column */
1646
+ actionsColumnWidth?: number;
1647
+ /** Page size for pagination (used when no external pagination provided) */
1648
+ pageSize?: number;
1649
+ /** External pagination state from usePagination hook (overrides internal pagination) */
1650
+ pagination?: ExternalPaginationState<T>;
1651
+ /** Hide the built-in pagination controls (use when pagination is shown elsewhere) */
1652
+ hidePagination?: boolean;
1653
+ /** Additional CSS class for table container */
1654
+ className?: string;
1655
+ /** Function to compute row CSS class */
1656
+ rowClassName?: (item: T) => string;
1657
+ /** Enable header right-click for column visibility menu */
1658
+ enableHeaderContextMenu?: boolean;
1659
+ /** Columns that cannot be reordered */
1660
+ lockedColumns?: string[];
1661
+ /** Default column order (if not persisted) */
1662
+ defaultColumnOrder?: string[];
1663
+ /** Show loading indicator */
1664
+ loading?: boolean;
1665
+ /** Content to show when no data */
1666
+ emptyState?: ReactNode;
1667
+ }
1668
+ /**
1669
+ * Column config for visibility hook (for compatibility)
1670
+ */
1671
+ interface ColumnConfigCompat {
1672
+ id: string;
1673
+ label: string;
1674
+ defaultVisible?: boolean;
1675
+ locked?: boolean;
1676
+ }
1677
+ /**
1678
+ * Column config for resize hook (for compatibility)
1679
+ */
1680
+ interface ColumnSizeConfig {
1681
+ key: string;
1682
+ defaultWidth: number;
1683
+ minWidth: number;
1684
+ maxWidth?: number;
1685
+ }
1686
+
1687
+ /**
1688
+ * DataTable - Generic data table with full feature set
1689
+ *
1690
+ * Features:
1691
+ * - Column resizing (drag handles)
1692
+ * - Column reordering (drag-drop)
1693
+ * - Column visibility toggle
1694
+ * - Row selection with checkboxes
1695
+ * - Sorting
1696
+ * - Pagination
1697
+ * - Sticky actions column
1698
+ * - Context menu support
1699
+ * - Header context menu for column visibility
1700
+ */
1701
+ declare function DataTable<T>({ data, columns, storageKey, getRowId, selectable, selectedIds, onSelectionChange, onRowClick, onRowContextMenu, sortField, sortOrder, onSort, actionsColumn, actionsColumnWidth, pageSize, pagination: externalPagination, hidePagination, className, rowClassName, enableHeaderContextMenu, lockedColumns, defaultColumnOrder, loading, emptyState, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1702
+
1703
+ /**
1704
+ * PaginationControls - Compact inline pagination for table headers
1705
+ *
1706
+ * A condensed version of pagination controls designed to sit alongside
1707
+ * search/filter controls in a table header bar.
1708
+ */
1709
+ interface PaginationControlsProps {
1710
+ page: number;
1711
+ pageSize: number;
1712
+ totalPages: number;
1713
+ totalItems: number;
1714
+ startIndex: number;
1715
+ endIndex: number;
1716
+ canGoNext: boolean;
1717
+ canGoPrev: boolean;
1718
+ pageSizeOptions: number[];
1719
+ setPage: (page: number) => void;
1720
+ setPageSize: (size: number) => void;
1721
+ nextPage: () => void;
1722
+ prevPage: () => void;
1723
+ className?: string;
1724
+ }
1725
+ declare function PaginationControls({ page, pageSize, totalPages, totalItems, startIndex, endIndex, canGoNext, canGoPrev, pageSizeOptions, setPage: _setPage, setPageSize, nextPage, prevPage, className, }: PaginationControlsProps): react_jsx_runtime.JSX.Element | null;
1726
+
1727
+ interface FilterOption$1 {
1728
+ id: string;
1729
+ label: string;
1730
+ render: () => React__default.ReactNode;
1731
+ }
1732
+ interface DataTablePageProps {
1733
+ /** Page title */
1734
+ title: string;
1735
+ /** Page description */
1736
+ description?: string;
1737
+ /** Search term */
1738
+ search?: string;
1739
+ /** Search change handler */
1740
+ onSearchChange?: (value: string) => void;
1741
+ /** Search placeholder text */
1742
+ searchPlaceholder?: string;
1743
+ /** Filter options for popover */
1744
+ filters?: FilterOption$1[];
1745
+ /** Number of active filters */
1746
+ activeFilterCount?: number;
1747
+ /** Clear all filters handler */
1748
+ onClearFilters?: () => void;
1749
+ /** Pagination props from usePagination hook */
1750
+ pagination?: PaginationControlsProps;
1751
+ /** Action buttons to show in the header */
1752
+ actions?: React__default.ReactNode;
1753
+ /** Content before the table (e.g., BatchActionsBar) */
1754
+ beforeTable?: React__default.ReactNode;
1755
+ /** The DataTable component */
1756
+ children: React__default.ReactNode;
1757
+ /** Additional class for the container */
1758
+ className?: string;
1759
+ /** Whether to show a loading state */
1760
+ loading?: boolean;
1761
+ /** Loading component to show */
1762
+ loadingComponent?: React__default.ReactNode;
1763
+ }
1764
+ declare function DataTablePage({ title, description, search, onSearchChange, searchPlaceholder, filters, activeFilterCount, onClearFilters, pagination, actions, beforeTable, children, className, loading, loadingComponent, }: DataTablePageProps): react_jsx_runtime.JSX.Element;
1765
+
1766
+ interface PaginationProps {
1767
+ page: number;
1768
+ pageSize: number;
1769
+ totalPages: number;
1770
+ totalItems: number;
1771
+ startIndex: number;
1772
+ endIndex: number;
1773
+ canGoNext: boolean;
1774
+ canGoPrev: boolean;
1775
+ pageSizeOptions: number[];
1776
+ onPageChange: (page: number) => void;
1777
+ onPageSizeChange: (size: number) => void;
1778
+ onNextPage: () => void;
1779
+ onPrevPage: () => void;
1780
+ onFirstPage: () => void;
1781
+ onLastPage: () => void;
1782
+ className?: string;
1783
+ }
1784
+ declare function Pagination({ page, pageSize, totalPages, totalItems, startIndex, endIndex, canGoNext, canGoPrev, pageSizeOptions, onPageChange, onPageSizeChange, onNextPage, onPrevPage, onFirstPage, onLastPage, className, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
1785
+
1786
+ interface BatchActionsBarProps {
1787
+ /** Number of selected items */
1788
+ selectedCount: number;
1789
+ /** Callback to clear selection */
1790
+ onClear: () => void;
1791
+ /** Action buttons to display on the right side */
1792
+ children: ReactNode;
1793
+ /** Label for the selected items (default: "item"/"items") */
1794
+ itemLabel?: string;
1795
+ /** Additional CSS classes */
1796
+ className?: string;
1797
+ }
1798
+ /**
1799
+ * A horizontal bar that appears when items are selected,
1800
+ * showing the count and providing batch action buttons.
1801
+ */
1802
+ declare function BatchActionsBar({ selectedCount, onClear, children, itemLabel, className, }: BatchActionsBarProps): react_jsx_runtime.JSX.Element | null;
1803
+
1804
+ interface ColumnVisibilityProps {
1805
+ columns: ColumnConfig$1[];
1806
+ isColumnVisible: (columnId: string) => boolean;
1807
+ toggleColumn: (columnId: string) => void;
1808
+ showAllColumns: () => void;
1809
+ hideAllColumns: () => void;
1810
+ }
1811
+ declare function ColumnVisibility({ columns, isColumnVisible, toggleColumn, showAllColumns, hideAllColumns, }: ColumnVisibilityProps): react_jsx_runtime.JSX.Element;
1812
+
1813
+ interface FilterOption {
1814
+ id: string;
1815
+ label: string;
1816
+ render: () => React__default.ReactNode;
1817
+ }
1818
+ interface TableFiltersProps {
1819
+ search?: string;
1820
+ onSearchChange?: (value: string) => void;
1821
+ searchPlaceholder?: string;
1822
+ filters?: FilterOption[];
1823
+ activeFilterCount?: number;
1824
+ onClearFilters?: () => void;
1825
+ className?: string;
1826
+ children?: React__default.ReactNode;
1827
+ }
1828
+ /**
1829
+ * TableFilters - Compact filter controls for data tables
1830
+ *
1831
+ * Features:
1832
+ * - Search input
1833
+ * - Popover filter menu with badge showing active count
1834
+ * - Clear all filters button
1835
+ * - Custom filter components via render prop
1836
+ * - Children slot for additional action buttons
1837
+ */
1838
+ declare function TableFilters({ search, onSearchChange, searchPlaceholder, filters, activeFilterCount, onClearFilters, className, children, }: TableFiltersProps): react_jsx_runtime.JSX.Element;
1839
+
1840
+ export { ActivityLED, type ActivityLEDProps, Alert, AlertDescription, AlertTitle, type ApiReadinessOptions, type ApiReadinessResult, AppLayout, type AppLayoutProps, Badge, type BadgeProps, BatchActionsBar, type BatchActionsBarProps, Button, type ButtonProps, Card, CardContent, CardHeader, type CardProps, CardSkeleton, CardTitle, type CellProps, Checkbox, CodeSnippet, CodeViewer, type CodeViewerProps, ColorPalette, type ColumnConfig$1 as ColumnConfig, type ColumnConfigCompat, type ColumnDef, type ColumnOrderConfig, type ColumnSizeConfig, ColumnVisibility, type ColumnVisibility$1 as ColumnVisibilityConfig, type ColumnVisibilityState, type ColumnWidth, CompactStat, type CompactStatProps, CompactThemeToggle, ConfirmDialog, type ConfirmDialogVariant, ConnectionIndicator, ConnectionLostOverlay, ConnectionOverlay, ConnectionStatus$1 as ConnectionStatus, ConnectionStatusBanner, ContextMenu, ContextMenuItem, type ContextMenuItemProps, type ContextMenuPosition, type ContextMenuProps, ContextMenuSeparator, ContextMenuSubmenu, type ContextMenuSubmenuProps, DashboardStats, type DashboardStatsProps, type DataColumn, DataTable, DataTablePage, type DataTablePageProps, type DataTableProps, DeviceIcon, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DogEarBadge, type DragState, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStates, type ExternalPaginationState, type FilterOption$1 as FilterOption, type FormState, type HeaderCellProps, HelpTooltip, Input, type InputProps, Label, LoadingState, type LogEntry, type LogFile, LogStats, type LogStatsProps, LogViewer, type LogViewerProps, LoginPage, LogsPage, type LogsPageProps, MarkdownCard, MarkdownScrollArea, MarkdownViewer, type NavItem, NetworkInterfaceSelect, NoSearchResults, NoSimulatorsRunning, NoTemplatesFound, Pagination, PaginationControls, type PaginationControlsProps, Popover, PopoverContent, PopoverTrigger, Progress, ProtectedRoute, RealtimeDataTable, type RealtimeDataTableProps, type ResizableColumnResult, ResizableDialog, RestartBanner, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type SettingDefinition$1 as SettingDefinition, type SettingsCategory$1 as SettingsCategory, SettingsFramework, SettingsPage, type SettingsPageProps, SidebarLayout, type SidebarLayoutProps, Slider, type SocketIOActions, type SocketIOConfig, type SocketIOState, Sparkline, type SparklineProps, type StatCard, Switch, TAG_COLORS, Table, TableBody, TableCaption, TableCell, type FilterOption as TableFilterOption, TableFilters, type TableFiltersProps, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TestModeIndicator, Textarea, type TextareaProps, type Theme, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruncatedText, UpdateNotification, type UseFormStateOptions, activityStyles, apiRequest, authHandler, badgeVariants, buttonStyles, buttonVariants, cardStyles, checkApiReadiness, cn, createSettingsCategory, defaultSettingsCategories, emptyStateStyles, formatBytes, formatDateTime, formatDuration, formatDurationMs, formatNumber, formatRelativeTime, formatShortRelativeTime, getCSSVariables, getNextAvailableColor, getNextTagColor, getRandomTagColor, getTagClassName, getTagColor, socketManager, statusStyles, theme, timeAgo, useApiReadiness, useColumnDragDrop, useColumnOrder, useColumnVisibility, useConfirmDialog, useConnectionStatus, useDebounce, useFormState, usePagination, useResizableColumns, useSocketIO, useTheme, waitForApiReady };