@superdangerous/app-framework 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +652 -0
  3. package/dist/api/logsRouter.d.ts +20 -0
  4. package/dist/api/logsRouter.d.ts.map +1 -0
  5. package/dist/api/logsRouter.js +515 -0
  6. package/dist/api/logsRouter.js.map +1 -0
  7. package/dist/cli/dev-server.d.ts +7 -0
  8. package/dist/cli/dev-server.d.ts.map +1 -0
  9. package/dist/cli/dev-server.js +640 -0
  10. package/dist/cli/dev-server.js.map +1 -0
  11. package/dist/cli/index.d.ts +7 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +26 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/core/StandardServer.d.ts +129 -0
  16. package/dist/core/StandardServer.d.ts.map +1 -0
  17. package/dist/core/StandardServer.js +453 -0
  18. package/dist/core/StandardServer.js.map +1 -0
  19. package/dist/core/apiResponse.d.ts +69 -0
  20. package/dist/core/apiResponse.d.ts.map +1 -0
  21. package/dist/core/apiResponse.js +127 -0
  22. package/dist/core/apiResponse.js.map +1 -0
  23. package/dist/core/healthCheck.d.ts +160 -0
  24. package/dist/core/healthCheck.d.ts.map +1 -0
  25. package/dist/core/healthCheck.js +398 -0
  26. package/dist/core/healthCheck.js.map +1 -0
  27. package/dist/core/index.d.ts +40 -0
  28. package/dist/core/index.d.ts.map +1 -0
  29. package/dist/core/index.js +40 -0
  30. package/dist/core/index.js.map +1 -0
  31. package/dist/core/logger.d.ts +117 -0
  32. package/dist/core/logger.d.ts.map +1 -0
  33. package/dist/core/logger.js +826 -0
  34. package/dist/core/logger.js.map +1 -0
  35. package/dist/core/portUtils.d.ts +71 -0
  36. package/dist/core/portUtils.d.ts.map +1 -0
  37. package/dist/core/portUtils.js +240 -0
  38. package/dist/core/portUtils.js.map +1 -0
  39. package/dist/core/storageService.d.ts +119 -0
  40. package/dist/core/storageService.d.ts.map +1 -0
  41. package/dist/core/storageService.js +405 -0
  42. package/dist/core/storageService.js.map +1 -0
  43. package/dist/desktop/bundler.d.ts +40 -0
  44. package/dist/desktop/bundler.d.ts.map +1 -0
  45. package/dist/desktop/bundler.js +176 -0
  46. package/dist/desktop/bundler.js.map +1 -0
  47. package/dist/desktop/index.d.ts +25 -0
  48. package/dist/desktop/index.d.ts.map +1 -0
  49. package/dist/desktop/index.js +15 -0
  50. package/dist/desktop/index.js.map +1 -0
  51. package/dist/desktop/native-modules.d.ts +66 -0
  52. package/dist/desktop/native-modules.d.ts.map +1 -0
  53. package/dist/desktop/native-modules.js +200 -0
  54. package/dist/desktop/native-modules.js.map +1 -0
  55. package/dist/index.d.ts +29 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +39 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/logging/LogCategories.d.ts +87 -0
  60. package/dist/logging/LogCategories.d.ts.map +1 -0
  61. package/dist/logging/LogCategories.js +205 -0
  62. package/dist/logging/LogCategories.js.map +1 -0
  63. package/dist/middleware/aiErrorHandler.d.ts +31 -0
  64. package/dist/middleware/aiErrorHandler.d.ts.map +1 -0
  65. package/dist/middleware/aiErrorHandler.js +181 -0
  66. package/dist/middleware/aiErrorHandler.js.map +1 -0
  67. package/dist/middleware/auth.d.ts +101 -0
  68. package/dist/middleware/auth.d.ts.map +1 -0
  69. package/dist/middleware/auth.js +230 -0
  70. package/dist/middleware/auth.js.map +1 -0
  71. package/dist/middleware/cors.d.ts +56 -0
  72. package/dist/middleware/cors.d.ts.map +1 -0
  73. package/dist/middleware/cors.js +123 -0
  74. package/dist/middleware/cors.js.map +1 -0
  75. package/dist/middleware/errorHandler.d.ts +13 -0
  76. package/dist/middleware/errorHandler.d.ts.map +1 -0
  77. package/dist/middleware/errorHandler.js +85 -0
  78. package/dist/middleware/errorHandler.js.map +1 -0
  79. package/dist/middleware/fileUpload.d.ts +62 -0
  80. package/dist/middleware/fileUpload.d.ts.map +1 -0
  81. package/dist/middleware/fileUpload.js +175 -0
  82. package/dist/middleware/fileUpload.js.map +1 -0
  83. package/dist/middleware/health.d.ts +48 -0
  84. package/dist/middleware/health.d.ts.map +1 -0
  85. package/dist/middleware/health.js +143 -0
  86. package/dist/middleware/health.js.map +1 -0
  87. package/dist/middleware/index.d.ts +20 -0
  88. package/dist/middleware/index.d.ts.map +1 -0
  89. package/dist/middleware/index.js +18 -0
  90. package/dist/middleware/index.js.map +1 -0
  91. package/dist/middleware/openapi.d.ts +64 -0
  92. package/dist/middleware/openapi.d.ts.map +1 -0
  93. package/dist/middleware/openapi.js +258 -0
  94. package/dist/middleware/openapi.js.map +1 -0
  95. package/dist/middleware/requestLogging.d.ts +22 -0
  96. package/dist/middleware/requestLogging.d.ts.map +1 -0
  97. package/dist/middleware/requestLogging.js +61 -0
  98. package/dist/middleware/requestLogging.js.map +1 -0
  99. package/dist/middleware/session.d.ts +84 -0
  100. package/dist/middleware/session.d.ts.map +1 -0
  101. package/dist/middleware/session.js +189 -0
  102. package/dist/middleware/session.js.map +1 -0
  103. package/dist/middleware/validation.d.ts +1337 -0
  104. package/dist/middleware/validation.d.ts.map +1 -0
  105. package/dist/middleware/validation.js +483 -0
  106. package/dist/middleware/validation.js.map +1 -0
  107. package/dist/services/aiService.d.ts +180 -0
  108. package/dist/services/aiService.d.ts.map +1 -0
  109. package/dist/services/aiService.js +547 -0
  110. package/dist/services/aiService.js.map +1 -0
  111. package/dist/services/conversationStorage.d.ts +38 -0
  112. package/dist/services/conversationStorage.d.ts.map +1 -0
  113. package/dist/services/conversationStorage.js +158 -0
  114. package/dist/services/conversationStorage.js.map +1 -0
  115. package/dist/services/crossPlatformBuffer.d.ts +84 -0
  116. package/dist/services/crossPlatformBuffer.d.ts.map +1 -0
  117. package/dist/services/crossPlatformBuffer.js +246 -0
  118. package/dist/services/crossPlatformBuffer.js.map +1 -0
  119. package/dist/services/index.d.ts +17 -0
  120. package/dist/services/index.d.ts.map +1 -0
  121. package/dist/services/index.js +18 -0
  122. package/dist/services/index.js.map +1 -0
  123. package/dist/services/networkService.d.ts +81 -0
  124. package/dist/services/networkService.d.ts.map +1 -0
  125. package/dist/services/networkService.js +268 -0
  126. package/dist/services/networkService.js.map +1 -0
  127. package/dist/services/queueService.d.ts +112 -0
  128. package/dist/services/queueService.d.ts.map +1 -0
  129. package/dist/services/queueService.js +338 -0
  130. package/dist/services/queueService.js.map +1 -0
  131. package/dist/services/settingsService.d.ts +135 -0
  132. package/dist/services/settingsService.d.ts.map +1 -0
  133. package/dist/services/settingsService.js +425 -0
  134. package/dist/services/settingsService.js.map +1 -0
  135. package/dist/services/systemMonitor.d.ts +208 -0
  136. package/dist/services/systemMonitor.d.ts.map +1 -0
  137. package/dist/services/systemMonitor.js +693 -0
  138. package/dist/services/systemMonitor.js.map +1 -0
  139. package/dist/services/updateService.d.ts +78 -0
  140. package/dist/services/updateService.d.ts.map +1 -0
  141. package/dist/services/updateService.js +252 -0
  142. package/dist/services/updateService.js.map +1 -0
  143. package/dist/services/websocketEvents.d.ts +372 -0
  144. package/dist/services/websocketEvents.d.ts.map +1 -0
  145. package/dist/services/websocketEvents.js +338 -0
  146. package/dist/services/websocketEvents.js.map +1 -0
  147. package/dist/services/websocketServer.d.ts +80 -0
  148. package/dist/services/websocketServer.d.ts.map +1 -0
  149. package/dist/services/websocketServer.js +299 -0
  150. package/dist/services/websocketServer.js.map +1 -0
  151. package/dist/settings/SettingsSchema.d.ts +151 -0
  152. package/dist/settings/SettingsSchema.d.ts.map +1 -0
  153. package/dist/settings/SettingsSchema.js +424 -0
  154. package/dist/settings/SettingsSchema.js.map +1 -0
  155. package/dist/testing/TestServer.d.ts +69 -0
  156. package/dist/testing/TestServer.d.ts.map +1 -0
  157. package/dist/testing/TestServer.js +250 -0
  158. package/dist/testing/TestServer.js.map +1 -0
  159. package/dist/types/index.d.ts +137 -0
  160. package/dist/types/index.d.ts.map +1 -0
  161. package/dist/types/index.js +5 -0
  162. package/dist/types/index.js.map +1 -0
  163. package/dist/utils/appPaths.d.ts +74 -0
  164. package/dist/utils/appPaths.d.ts.map +1 -0
  165. package/dist/utils/appPaths.js +162 -0
  166. package/dist/utils/appPaths.js.map +1 -0
  167. package/dist/utils/fs-utils.d.ts +50 -0
  168. package/dist/utils/fs-utils.d.ts.map +1 -0
  169. package/dist/utils/fs-utils.js +114 -0
  170. package/dist/utils/fs-utils.js.map +1 -0
  171. package/dist/utils/index.d.ts +12 -0
  172. package/dist/utils/index.d.ts.map +1 -0
  173. package/dist/utils/index.js +10 -0
  174. package/dist/utils/index.js.map +1 -0
  175. package/dist/utils/standardConfig.d.ts +61 -0
  176. package/dist/utils/standardConfig.d.ts.map +1 -0
  177. package/dist/utils/standardConfig.js +109 -0
  178. package/dist/utils/standardConfig.js.map +1 -0
  179. package/dist/utils/startupBanner.d.ts +34 -0
  180. package/dist/utils/startupBanner.d.ts.map +1 -0
  181. package/dist/utils/startupBanner.js +169 -0
  182. package/dist/utils/startupBanner.js.map +1 -0
  183. package/dist/utils/startupLogger.d.ts +45 -0
  184. package/dist/utils/startupLogger.d.ts.map +1 -0
  185. package/dist/utils/startupLogger.js +200 -0
  186. package/dist/utils/startupLogger.js.map +1 -0
  187. package/package.json +151 -0
  188. package/src/api/logsRouter.ts +600 -0
  189. package/src/cli/dev-server.ts +803 -0
  190. package/src/cli/index.ts +31 -0
  191. package/src/core/StandardServer.ts +587 -0
  192. package/src/core/apiResponse.ts +202 -0
  193. package/src/core/healthCheck.ts +565 -0
  194. package/src/core/index.ts +80 -0
  195. package/src/core/logger.ts +1092 -0
  196. package/src/core/portUtils.ts +319 -0
  197. package/src/core/storageService.ts +595 -0
  198. package/src/desktop/bundler.ts +271 -0
  199. package/src/desktop/index.ts +18 -0
  200. package/src/desktop/native-modules.ts +289 -0
  201. package/src/index.ts +142 -0
  202. package/src/logging/LogCategories.ts +302 -0
  203. package/src/middleware/aiErrorHandler.ts +278 -0
  204. package/src/middleware/auth.ts +329 -0
  205. package/src/middleware/cors.ts +187 -0
  206. package/src/middleware/errorHandler.ts +103 -0
  207. package/src/middleware/fileUpload.ts +252 -0
  208. package/src/middleware/health.ts +206 -0
  209. package/src/middleware/index.ts +71 -0
  210. package/src/middleware/openapi.ts +305 -0
  211. package/src/middleware/requestLogging.ts +92 -0
  212. package/src/middleware/session.ts +238 -0
  213. package/src/middleware/validation.ts +603 -0
  214. package/src/services/aiService.ts +789 -0
  215. package/src/services/conversationStorage.ts +232 -0
  216. package/src/services/crossPlatformBuffer.ts +341 -0
  217. package/src/services/index.ts +47 -0
  218. package/src/services/networkService.ts +351 -0
  219. package/src/services/queueService.ts +446 -0
  220. package/src/services/settingsService.ts +549 -0
  221. package/src/services/systemMonitor.ts +936 -0
  222. package/src/services/updateService.ts +334 -0
  223. package/src/services/websocketEvents.ts +409 -0
  224. package/src/services/websocketServer.ts +394 -0
  225. package/src/settings/SettingsSchema.ts +664 -0
  226. package/src/testing/TestServer.ts +312 -0
  227. package/src/types/index.ts +154 -0
  228. package/src/utils/appPaths.ts +196 -0
  229. package/src/utils/fs-utils.ts +130 -0
  230. package/src/utils/index.ts +15 -0
  231. package/src/utils/standardConfig.ts +178 -0
  232. package/src/utils/startupBanner.ts +287 -0
  233. package/src/utils/startupLogger.ts +268 -0
  234. package/ui/dist/index.d.mts +1221 -0
  235. package/ui/dist/index.d.ts +1221 -0
  236. package/ui/dist/index.js +73 -0
  237. package/ui/dist/index.js.map +1 -0
  238. package/ui/dist/index.mjs +73 -0
  239. package/ui/dist/index.mjs.map +1 -0
@@ -0,0 +1,1221 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactNode } from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
7
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
8
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
9
+ import * as LabelPrimitive from '@radix-ui/react-label';
10
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
11
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
12
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
13
+ import * as SelectPrimitive from '@radix-ui/react-select';
14
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
15
+ import * as SliderPrimitive from '@radix-ui/react-slider';
16
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
17
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
18
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
19
+ import { LucideIcon } from 'lucide-react';
20
+ export { Activity, AlertCircle, AlertTriangle, Archive, ArrowLeft, ArrowRight, BarChart, Bot, Brain, Building2, Calendar, CheckCircle, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Circle, Clock, Coffee, Copy, Cpu, Database, Download, Edit, Eye, EyeOff, File, FileCode, FileText, Filter, Folder, FolderOpen, Gauge, GitBranch, Globe, Grid3x3, HardDrive, HelpCircle, Home, Info, Key, Keyboard, Layers, LayoutDashboard, Lightbulb, LineChart, Loader2, Lock, LogOut, LucideIcon, Menu, MessageSquare, Monitor, Moon, MoreHorizontal, MoreVertical, Package, Palette, Paperclip, Pause, PieChart, Play, PlayCircle, Plus, RefreshCw, Save, Search, Send, Server, Settings, Shield, SkipForward, Smartphone, Sparkles, Square, StopCircle, Sun, Tag, Target, Terminal, Trash2, TrendingDown, TrendingUp, Trophy, Undo, Unlock, Upload, User, UserCheck, UserPlus, Users, Volume2, Wifi, WifiOff, X, XCircle, Zap } from 'lucide-react';
21
+ import { ManagerOptions, SocketOptions, Socket } from 'socket.io-client';
22
+ import { ClassValue } from 'clsx';
23
+
24
+ declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
25
+ variant?: "default" | "destructive" | null | undefined;
26
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
27
+ declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
28
+ declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
29
+
30
+ declare const badgeVariants: (props?: ({
31
+ variant?: "default" | "destructive" | "secondary" | "outline" | null | undefined;
32
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
33
+ interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
34
+ }
35
+ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
36
+
37
+ declare const buttonVariants: (props?: ({
38
+ variant?: "default" | "destructive" | "link" | "secondary" | "outline" | "ghost" | null | undefined;
39
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
40
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
41
+ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
42
+ asChild?: boolean;
43
+ }
44
+ declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
45
+
46
+ /**
47
+ * Simple Card Component
48
+ */
49
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
50
+ children: React.ReactNode;
51
+ }
52
+ declare function Card({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element;
53
+ declare function CardHeader({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element;
54
+ declare function CardContent({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element;
55
+ declare function CardTitle({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element;
56
+
57
+ declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
58
+
59
+ declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
60
+ declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
61
+ declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
62
+ declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
63
+ declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
64
+ declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
65
+ declare const DialogHeader: {
66
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
67
+ displayName: string;
68
+ };
69
+ declare const DialogFooter: {
70
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
71
+ displayName: string;
72
+ };
73
+ declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
74
+ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
75
+
76
+ declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
77
+ declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
78
+ declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
79
+ declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
80
+ declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
81
+ declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
82
+ declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
83
+ inset?: boolean;
84
+ } & React$1.RefAttributes<HTMLDivElement>>;
85
+ declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
86
+ declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
87
+ declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
88
+ inset?: boolean;
89
+ } & React$1.RefAttributes<HTMLDivElement>>;
90
+ declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
91
+ declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
92
+ declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
93
+ inset?: boolean;
94
+ } & React$1.RefAttributes<HTMLDivElement>>;
95
+ declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
96
+ declare const DropdownMenuShortcut: {
97
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
98
+ displayName: string;
99
+ };
100
+
101
+ interface InputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
102
+ }
103
+ declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
104
+
105
+ declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
106
+
107
+ declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
108
+ declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
109
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
110
+
111
+ declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
112
+
113
+ declare const ScrollArea: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
114
+ declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
115
+
116
+ declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
117
+ declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
118
+ declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
119
+ declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
120
+ declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
121
+ declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
122
+ declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
123
+ declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
124
+ declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
125
+ declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
126
+
127
+ declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
128
+
129
+ declare const Slider: React$1.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
130
+
131
+ declare const Switch: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
132
+
133
+ declare const Table: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableElement> & React$1.RefAttributes<HTMLTableElement>>;
134
+ declare const TableHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
135
+ declare const TableBody: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
136
+ declare const TableFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
137
+ declare const TableRow: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableRowElement> & React$1.RefAttributes<HTMLTableRowElement>>;
138
+ declare const TableHead: React$1.ForwardRefExoticComponent<React$1.ThHTMLAttributes<HTMLTableCellElement> & React$1.RefAttributes<HTMLTableCellElement>>;
139
+ declare const TableCell: React$1.ForwardRefExoticComponent<React$1.TdHTMLAttributes<HTMLTableCellElement> & React$1.RefAttributes<HTMLTableCellElement>>;
140
+ declare const TableCaption: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableCaptionElement> & React$1.RefAttributes<HTMLTableCaptionElement>>;
141
+
142
+ declare const Tabs: React$1.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React$1.RefAttributes<HTMLDivElement>>;
143
+ declare const TabsList: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
144
+ declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
145
+ declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
146
+
147
+ interface TextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
148
+ }
149
+ declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
150
+
151
+ declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
152
+ declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
153
+ declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
154
+ declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
155
+
156
+ interface LoginPageConfig {
157
+ apiEndpoint?: string;
158
+ logoSrc?: string;
159
+ fallbackLogoSrc?: string;
160
+ appTitle?: string;
161
+ subtitle?: string;
162
+ showLanguageSelector?: boolean;
163
+ showPoweredBy?: boolean;
164
+ poweredByLogo?: string;
165
+ poweredByText?: string;
166
+ onLoginSuccess?: () => void;
167
+ onLoginError?: (error: string) => void;
168
+ customStyles?: {
169
+ container?: string;
170
+ card?: string;
171
+ logo?: string;
172
+ title?: string;
173
+ subtitle?: string;
174
+ errorMessage?: string;
175
+ input?: string;
176
+ button?: string;
177
+ };
178
+ }
179
+ interface LoginPageProps extends LoginPageConfig {
180
+ navigate: (path: string) => void;
181
+ }
182
+ declare function LoginPage({ apiEndpoint, logoSrc, fallbackLogoSrc, appTitle, subtitle, showLanguageSelector, showPoweredBy, poweredByLogo, poweredByText, onLoginSuccess, onLoginError, customStyles, navigate }: LoginPageProps): react_jsx_runtime.JSX.Element;
183
+
184
+ interface ProtectedRouteProps {
185
+ children: React__default.ReactNode;
186
+ loginPath?: string;
187
+ authEndpoint?: string;
188
+ loadingComponent?: React__default.ReactNode;
189
+ }
190
+ /**
191
+ * Protected route component that checks authentication before rendering children
192
+ * Redirects to login page if not authenticated
193
+ */
194
+ declare function ProtectedRoute({ children, loginPath, authEndpoint, loadingComponent }: ProtectedRouteProps): string | number | true | react_jsx_runtime.JSX.Element | Iterable<React__default.ReactNode>;
195
+
196
+ interface LogsPageProps {
197
+ apiUrl?: string;
198
+ title?: string;
199
+ description?: string;
200
+ }
201
+ declare function LogsPage({ apiUrl, title, description }: LogsPageProps): react_jsx_runtime.JSX.Element;
202
+
203
+ interface SettingDefinition$1 {
204
+ key: string;
205
+ label: string;
206
+ description?: string;
207
+ type: 'text' | 'password' | 'number' | 'boolean' | 'select' | 'custom';
208
+ options?: Array<{
209
+ value: string;
210
+ label: string;
211
+ }>;
212
+ defaultValue?: any;
213
+ validation?: (value: any) => string | null;
214
+ requiresRestart?: boolean;
215
+ customComponent?: ReactNode;
216
+ placeholder?: string;
217
+ min?: number;
218
+ max?: number;
219
+ }
220
+ interface SettingsCategory$1 {
221
+ id: string;
222
+ label: string;
223
+ description?: string;
224
+ icon?: ReactNode;
225
+ settings: SettingDefinition$1[];
226
+ }
227
+ interface SettingsPageProps {
228
+ categories: SettingsCategory$1[];
229
+ values: Record<string, any>;
230
+ loading?: boolean;
231
+ saving?: boolean;
232
+ onSave: (values: Record<string, any>) => Promise<void>;
233
+ onReset?: () => void;
234
+ onRestart?: () => void;
235
+ showRestartBanner?: boolean;
236
+ className?: string;
237
+ title?: string;
238
+ }
239
+ declare function SettingsPage({ categories, values: initialValues, loading, saving, onSave, onReset, onRestart, showRestartBanner, className, title }: SettingsPageProps): react_jsx_runtime.JSX.Element;
240
+
241
+ interface ConnectionStatusProps {
242
+ url?: string;
243
+ className?: string;
244
+ checkInterval?: number;
245
+ }
246
+ /**
247
+ * Connection status indicator with a calm, pulsing LED beacon
248
+ * Shows WebSocket connection status between frontend and backend
249
+ */
250
+ declare function ConnectionStatus$1({ url, className, checkInterval }: ConnectionStatusProps): react_jsx_runtime.JSX.Element;
251
+
252
+ interface ConnectionLostOverlayProps {
253
+ isConnected: boolean;
254
+ appName?: string;
255
+ onRetry?: () => void;
256
+ }
257
+ declare function ConnectionLostOverlay({ isConnected, appName, onRetry }: ConnectionLostOverlayProps): react_jsx_runtime.JSX.Element | null;
258
+
259
+ interface ConnectionOverlayProps {
260
+ isConnected: boolean;
261
+ onRetry: () => void;
262
+ }
263
+ declare function ConnectionOverlay({ isConnected, onRetry }: ConnectionOverlayProps): JSX.Element | null;
264
+
265
+ interface ConnectionStatusBannerProps {
266
+ connected: boolean;
267
+ connecting: boolean;
268
+ transport: 'websocket' | 'polling' | null;
269
+ apiReady?: boolean;
270
+ }
271
+ /**
272
+ * Enhanced connection status banner that shows different states:
273
+ * - Green: WebSocket connected (optimal)
274
+ * - Blue: Polling connected (HTTP/2 fallback, fully functional)
275
+ * - Yellow: Connecting/reconnecting
276
+ * - Hidden: Disconnected (handled by ConnectionLostOverlay)
277
+ */
278
+ declare function ConnectionStatusBanner({ connected, connecting, transport, apiReady }: ConnectionStatusBannerProps): react_jsx_runtime.JSX.Element | null;
279
+
280
+ interface RestartBannerProps {
281
+ show: boolean;
282
+ onRestart?: () => void;
283
+ onDismiss?: () => void;
284
+ className?: string;
285
+ }
286
+ declare function RestartBanner({ show, onRestart, onDismiss, className }: RestartBannerProps): react_jsx_runtime.JSX.Element | null;
287
+
288
+ interface TestModeIndicatorProps {
289
+ config?: any;
290
+ className?: string;
291
+ }
292
+ declare function TestModeIndicator({ config }?: TestModeIndicatorProps): react_jsx_runtime.JSX.Element | null;
293
+
294
+ interface ConnectionIndicatorProps {
295
+ connected: boolean;
296
+ connecting: boolean;
297
+ error: Error | null;
298
+ retryCount: number;
299
+ onRetry?: () => void;
300
+ className?: string;
301
+ }
302
+ declare function ConnectionIndicator({ connected, connecting, error, retryCount, onRetry, className }: ConnectionIndicatorProps): react_jsx_runtime.JSX.Element;
303
+
304
+ interface DeviceIconProps {
305
+ category?: string;
306
+ className?: string;
307
+ size?: number;
308
+ }
309
+ declare function DeviceIcon({ category, className, size }: DeviceIconProps): react_jsx_runtime.JSX.Element;
310
+
311
+ interface DogEarBadgeProps {
312
+ className?: string;
313
+ size?: 'sm' | 'md' | 'lg';
314
+ icon?: React.ReactNode;
315
+ color?: 'purple' | 'blue' | 'green' | 'red' | 'amber';
316
+ }
317
+ declare function DogEarBadge({ className, size, icon, color }: DogEarBadgeProps): react_jsx_runtime.JSX.Element;
318
+
319
+ interface EmptyStateProps {
320
+ title: string;
321
+ description?: string;
322
+ icon?: React.ReactNode;
323
+ action?: {
324
+ label: string;
325
+ onClick: () => void;
326
+ icon?: React.ReactNode;
327
+ };
328
+ className?: string;
329
+ }
330
+ declare function EmptyState({ title, description, icon, action, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
331
+
332
+ interface NoTemplatesFoundProps {
333
+ onCreate?: () => void;
334
+ }
335
+ declare function NoTemplatesFound({ onCreate }: NoTemplatesFoundProps): react_jsx_runtime.JSX.Element;
336
+ interface NoSearchResultsProps {
337
+ searchTerm?: string;
338
+ onClearFilters?: () => void;
339
+ }
340
+ declare function NoSearchResults({ searchTerm, onClearFilters }: NoSearchResultsProps): react_jsx_runtime.JSX.Element;
341
+ interface NoSimulatorsRunningProps {
342
+ onNavigateToTemplates?: () => void;
343
+ }
344
+ declare function NoSimulatorsRunning({ onNavigateToTemplates }: NoSimulatorsRunningProps): react_jsx_runtime.JSX.Element;
345
+ declare const EmptyStates: {
346
+ NoTemplatesFound: typeof NoTemplatesFound;
347
+ NoTemplatesMatchSearch: typeof NoSearchResults;
348
+ NoSimulatorsRunning: typeof NoSimulatorsRunning;
349
+ };
350
+
351
+ interface LoadingStateProps {
352
+ message?: string;
353
+ className?: string;
354
+ size?: 'sm' | 'md' | 'lg';
355
+ }
356
+ declare function LoadingState({ message, className, size }: LoadingStateProps): react_jsx_runtime.JSX.Element;
357
+ declare function CardSkeleton({ className }: {
358
+ className?: string;
359
+ }): react_jsx_runtime.JSX.Element;
360
+ declare function TableSkeleton({ rows }: {
361
+ rows?: number;
362
+ }): react_jsx_runtime.JSX.Element;
363
+
364
+ interface HelpTooltipProps {
365
+ content: string | React.ReactNode;
366
+ title?: string;
367
+ size?: 'sm' | 'md' | 'lg';
368
+ align?: 'start' | 'center' | 'end';
369
+ side?: 'top' | 'bottom' | 'left' | 'right';
370
+ className?: string;
371
+ iconClassName?: string;
372
+ }
373
+ declare function HelpTooltip({ content, title, size, align, side, className, iconClassName }: HelpTooltipProps): react_jsx_runtime.JSX.Element;
374
+
375
+ interface NetworkInterfaceSelectProps {
376
+ value: string;
377
+ onChange: (value: string) => void;
378
+ apiUrl?: string;
379
+ endpoint?: string;
380
+ disabled?: boolean;
381
+ className?: string;
382
+ showRefresh?: boolean;
383
+ showNetworkInfo?: boolean;
384
+ }
385
+ declare function NetworkInterfaceSelect({ value, onChange, apiUrl, endpoint, disabled, className, showRefresh, showNetworkInfo }: NetworkInterfaceSelectProps): react_jsx_runtime.JSX.Element;
386
+
387
+ interface MarkdownViewerProps {
388
+ content: string;
389
+ className?: string;
390
+ showCopyButton?: boolean;
391
+ }
392
+ declare function MarkdownViewer({ content, className, showCopyButton }: MarkdownViewerProps): react_jsx_runtime.JSX.Element;
393
+ /**
394
+ * MarkdownViewer component wrapped in a Card
395
+ */
396
+ declare function MarkdownCard({ content, className, title, ...props }: MarkdownViewerProps & {
397
+ title?: string;
398
+ }): react_jsx_runtime.JSX.Element;
399
+ /**
400
+ * MarkdownViewer component wrapped in a ScrollArea
401
+ */
402
+ declare function MarkdownScrollArea({ content, className, height, ...props }: MarkdownViewerProps & {
403
+ height?: string;
404
+ }): react_jsx_runtime.JSX.Element;
405
+
406
+ /**
407
+ * Date formatting utilities for displaying relative time
408
+ */
409
+ /**
410
+ * Formats a date/timestamp as relative time (e.g., "2 minutes ago", "3 hours ago")
411
+ * @param date - Date object, timestamp string, or timestamp number
412
+ * @returns Formatted relative time string
413
+ */
414
+ declare function formatRelativeTime(date: Date | string | number): string;
415
+ /**
416
+ * Formats a date to a standard display format
417
+ * @param date - Date object, timestamp string, or timestamp number
418
+ * @param options - Intl.DateTimeFormatOptions for formatting
419
+ * @returns Formatted date string
420
+ */
421
+ declare function formatDateTime(date: Date | string | number, options?: Intl.DateTimeFormatOptions): string;
422
+ /**
423
+ * Formats duration in seconds to human-readable format
424
+ * @param seconds - Duration in seconds
425
+ * @returns Formatted duration string (e.g., "2h 15m", "5d 3h")
426
+ */
427
+ declare function formatDuration(seconds: number): string;
428
+ /**
429
+ * Gets a short relative time label (e.g., "2m", "3h", "5d")
430
+ * @param date - Date object, timestamp string, or timestamp number
431
+ * @returns Short relative time string
432
+ */
433
+ declare function formatShortRelativeTime(date: Date | string | number): string;
434
+
435
+ declare function getTagColor(tag: string): {
436
+ bg: string;
437
+ text: string;
438
+ border: string;
439
+ } | undefined;
440
+ declare function getTagClassName(tag: string): string;
441
+
442
+ declare function timeAgo(date: Date | string): string;
443
+
444
+ /**
445
+ * API Readiness Utility
446
+ * Handles checking if the API server is ready before making requests
447
+ */
448
+ interface ApiReadinessResult {
449
+ ready: boolean;
450
+ error?: string;
451
+ retryAfter?: number;
452
+ }
453
+ interface ApiReadinessOptions {
454
+ healthEndpoint?: string;
455
+ timeout?: number;
456
+ maxAttempts?: number;
457
+ initialDelay?: number;
458
+ maxDelay?: number;
459
+ }
460
+ /**
461
+ * Check if the API server is ready to accept requests
462
+ */
463
+ declare function checkApiReadiness(apiUrl: string, timeout?: number): Promise<ApiReadinessResult>;
464
+ /**
465
+ * Wait for API to be ready with exponential backoff
466
+ */
467
+ declare function waitForApiReady(apiUrl: string, options?: ApiReadinessOptions): Promise<boolean>;
468
+ /**
469
+ * Enhanced fetch with API readiness check
470
+ */
471
+ declare function apiRequest<T = any>(apiUrl: string, endpoint: string, options?: RequestInit): Promise<T>;
472
+ /**
473
+ * React Hook for API Readiness
474
+ */
475
+ declare function useApiReadiness(apiUrl: string, options?: ApiReadinessOptions): {
476
+ ready: boolean;
477
+ error: string | null;
478
+ checking: boolean;
479
+ };
480
+
481
+ interface UseFormStateOptions<T> {
482
+ initialValues: T;
483
+ defaultValues?: T;
484
+ onSave: (values: T) => Promise<void>;
485
+ timeout?: number;
486
+ validateChanges?: (values: T) => boolean;
487
+ }
488
+ interface FormState<T> {
489
+ values: T;
490
+ isDirty: boolean;
491
+ isSaving: boolean;
492
+ error: string | null;
493
+ setValues: (values: T | ((prev: T) => T)) => void;
494
+ setFieldValue: <K extends keyof T>(field: K, value: T[K]) => void;
495
+ save: () => Promise<void>;
496
+ reset: () => void;
497
+ resetToDefaults: () => void;
498
+ canSave: boolean;
499
+ }
500
+ /**
501
+ * Custom hook for managing form state with dirty checking and save lifecycle
502
+ */
503
+ declare function useFormState<T extends Record<string, any>>({ initialValues, defaultValues, onSave, timeout, validateChanges }: UseFormStateOptions<T>): FormState<T>;
504
+
505
+ interface NavItem {
506
+ name: string;
507
+ href: string;
508
+ icon?: React__default.ReactNode;
509
+ }
510
+ interface AppLayoutProps {
511
+ appName: string;
512
+ appVersion?: string;
513
+ navigation: NavItem[];
514
+ children: React__default.ReactNode;
515
+ logoSrc?: string;
516
+ showLogout?: boolean;
517
+ onLogout?: () => void;
518
+ authenticated?: boolean;
519
+ connectionStatusUrl?: string;
520
+ className?: string;
521
+ primaryColor?: string;
522
+ }
523
+ /**
524
+ * Standardized application layout for web apps
525
+ * Provides consistent header, navigation, and connection status
526
+ */
527
+ declare function AppLayout({ appName, appVersion, navigation, children, logoSrc, showLogout, onLogout, authenticated, connectionStatusUrl, className, primaryColor }: AppLayoutProps): react_jsx_runtime.JSX.Element;
528
+ /**
529
+ * Layout with sidebar navigation (alternative layout style)
530
+ */
531
+ interface SidebarLayoutProps extends Omit<AppLayoutProps, 'primaryColor'> {
532
+ sidebarWidth?: number;
533
+ }
534
+ declare function SidebarLayout({ appName, appVersion, navigation, children, logoSrc, showLogout, onLogout, authenticated, connectionStatusUrl, sidebarWidth, className }: SidebarLayoutProps): react_jsx_runtime.JSX.Element;
535
+
536
+ /**
537
+ * Activity LED Component
538
+ * Shows a status indicator with optional animation
539
+ */
540
+ type LEDStatus = 'active' | 'inactive' | 'warning' | 'error' | 'success';
541
+ interface ActivityLEDProps {
542
+ status: LEDStatus;
543
+ size?: 'xs' | 'sm' | 'md' | 'lg';
544
+ animate?: boolean;
545
+ label?: string;
546
+ className?: string;
547
+ }
548
+ declare function ActivityLED({ status, size, animate, label, className }: ActivityLEDProps): react_jsx_runtime.JSX.Element;
549
+
550
+ interface DataColumn<T> {
551
+ key: string;
552
+ label: string;
553
+ accessor: (item: T) => any;
554
+ render?: (value: any, item: T) => React.ReactNode;
555
+ width?: string;
556
+ align?: 'left' | 'center' | 'right';
557
+ }
558
+ interface RealtimeDataTableProps<T> {
559
+ data: T[];
560
+ columns: DataColumn<T>[];
561
+ keyField: string;
562
+ title?: string;
563
+ description?: string;
564
+ showActivity?: boolean;
565
+ activityField?: string;
566
+ activityDecay?: number;
567
+ showSparkline?: boolean;
568
+ sparklineField?: string;
569
+ sparklineHistory?: Map<string, number[]>;
570
+ sparklineColor?: string;
571
+ showStatus?: boolean;
572
+ statusField?: string;
573
+ statusConfig?: {
574
+ [key: string]: {
575
+ label: string;
576
+ variant: 'default' | 'secondary' | 'destructive' | 'outline';
577
+ icon?: React.ReactNode;
578
+ };
579
+ };
580
+ expandable?: boolean;
581
+ childrenField?: string;
582
+ defaultExpanded?: boolean;
583
+ className?: string;
584
+ striped?: boolean;
585
+ hover?: boolean;
586
+ compact?: boolean;
587
+ onRowClick?: (item: T) => void;
588
+ onRefresh?: () => void;
589
+ }
590
+ declare function RealtimeDataTable<T extends Record<string, any>>({ data, columns, keyField, title, description, showActivity, activityField, activityDecay, showSparkline, sparklineField, sparklineHistory, sparklineColor, showStatus, statusField, statusConfig, expandable, childrenField, defaultExpanded, className, striped: _striped, hover, compact, onRowClick, onRefresh: _onRefresh }: RealtimeDataTableProps<T>): react_jsx_runtime.JSX.Element;
591
+
592
+ interface SparklineProps {
593
+ data: number[];
594
+ width?: number;
595
+ height?: number;
596
+ color?: string;
597
+ strokeWidth?: number;
598
+ fill?: boolean;
599
+ className?: string;
600
+ }
601
+ declare function Sparkline({ data, width, height, color, strokeWidth, fill, className }: SparklineProps): react_jsx_runtime.JSX.Element;
602
+
603
+ interface StatCard {
604
+ label: string;
605
+ value: string | number;
606
+ icon?: LucideIcon;
607
+ description?: string;
608
+ trend?: {
609
+ value: number;
610
+ label?: string;
611
+ positive?: boolean;
612
+ };
613
+ color?: 'default' | 'primary' | 'success' | 'warning' | 'danger';
614
+ className?: string;
615
+ }
616
+ interface DashboardStatsProps {
617
+ stats: StatCard[];
618
+ columns?: 1 | 2 | 3 | 4 | 5 | 6;
619
+ className?: string;
620
+ }
621
+ declare function DashboardStats({ stats, columns, className }: DashboardStatsProps): react_jsx_runtime.JSX.Element;
622
+ /**
623
+ * Compact stat card for smaller displays
624
+ */
625
+ interface CompactStatProps {
626
+ label: string;
627
+ value: string | number;
628
+ icon?: LucideIcon;
629
+ trend?: number;
630
+ className?: string;
631
+ }
632
+ declare function CompactStat({ label, value, icon: Icon, trend, className }: CompactStatProps): react_jsx_runtime.JSX.Element;
633
+
634
+ interface LogEntry {
635
+ id: string;
636
+ timestamp: string;
637
+ level: 'error' | 'warn' | 'info' | 'debug' | 'verbose' | string;
638
+ category?: string;
639
+ source?: string;
640
+ message: string;
641
+ metadata?: Record<string, any>;
642
+ }
643
+ interface LogFile {
644
+ filename?: string;
645
+ name?: string;
646
+ size: number;
647
+ modified: string;
648
+ }
649
+ interface LogCategory {
650
+ id: string;
651
+ label: string;
652
+ icon: React.ElementType;
653
+ description: string;
654
+ }
655
+ interface LogViewerProps {
656
+ logs?: LogEntry[];
657
+ logFiles?: LogFile[];
658
+ onFetchLogs?: () => Promise<LogEntry[]>;
659
+ onFetchArchives?: () => Promise<LogFile[]>;
660
+ onClearLogs?: () => Promise<void>;
661
+ onExportLogs?: () => Promise<void>;
662
+ onDownloadArchive?: (filename: string) => void;
663
+ onDeleteArchive?: (filename: string) => Promise<void>;
664
+ onLogReceived?: (handler: (log: LogEntry) => void) => () => void;
665
+ autoRefreshMs?: number;
666
+ maxEntries?: number;
667
+ defaultCategory?: 'current' | 'archives' | string;
668
+ enableLiveUpdates?: boolean;
669
+ enablePause?: boolean;
670
+ enableAutoScroll?: boolean;
671
+ autoScrollDefault?: boolean;
672
+ pausedDefault?: boolean;
673
+ categories?: LogCategory[];
674
+ levelBadgeColors?: Record<string, string>;
675
+ currentLogLevel?: string;
676
+ showCategories?: boolean;
677
+ showArchives?: boolean;
678
+ height?: string;
679
+ enableSearch?: boolean;
680
+ enableFilter?: boolean;
681
+ enableExport?: boolean;
682
+ enableClear?: boolean;
683
+ enableCopy?: boolean;
684
+ className?: string;
685
+ }
686
+ declare function LogViewer({ logs: externalLogs, logFiles: externalLogFiles, onFetchLogs, onFetchArchives, onClearLogs, onExportLogs, onDownloadArchive, onDeleteArchive, onLogReceived, autoRefreshMs, maxEntries, defaultCategory, enableLiveUpdates, enablePause, enableAutoScroll, autoScrollDefault, pausedDefault, enableSearch, enableFilter, enableExport, enableClear, enableCopy, categories, levelBadgeColors, currentLogLevel, showCategories, showArchives, height, className, }: LogViewerProps): react_jsx_runtime.JSX.Element;
687
+
688
+ interface LogStatsProps {
689
+ stats: {
690
+ total?: number;
691
+ error?: number;
692
+ warn?: number;
693
+ info?: number;
694
+ debug?: number;
695
+ fileSize?: string | number;
696
+ oldestEntry?: string;
697
+ newestEntry?: string;
698
+ [key: string]: any;
699
+ } | null;
700
+ }
701
+ declare function LogStats({ stats }: LogStatsProps): react_jsx_runtime.JSX.Element | null;
702
+
703
+ interface SettingDefinition {
704
+ key: string;
705
+ label: string;
706
+ type: 'string' | 'text' | 'number' | 'boolean' | 'select' | 'password' | 'custom';
707
+ defaultValue?: any;
708
+ description?: string;
709
+ help?: string;
710
+ hint?: string;
711
+ placeholder?: string;
712
+ options?: Array<{
713
+ label: string;
714
+ value: string | number;
715
+ }>;
716
+ validation?: (value: any) => string | null;
717
+ requiresRestart?: boolean;
718
+ hidden?: boolean;
719
+ customComponent?: React.ComponentType<CustomFieldProps>;
720
+ inputWidth?: 'small' | 'medium' | 'large';
721
+ suffix?: string;
722
+ step?: number;
723
+ min?: number;
724
+ max?: number;
725
+ showIf?: (values: any) => boolean;
726
+ }
727
+ interface SettingsCategory {
728
+ id: string;
729
+ label: string;
730
+ icon?: LucideIcon | string | React.ReactNode;
731
+ description?: string;
732
+ settings: SettingDefinition[];
733
+ }
734
+ interface CustomFieldProps {
735
+ value: any;
736
+ onChange: (value: any) => void;
737
+ error?: string;
738
+ disabled?: boolean;
739
+ setting: SettingDefinition;
740
+ }
741
+ interface SettingsFrameworkProps {
742
+ categories: SettingsCategory[];
743
+ onSave: (values: Record<string, any>) => Promise<void>;
744
+ onLoad?: () => Promise<Record<string, any>>;
745
+ onValidate?: (values: Record<string, any>) => Record<string, string> | null;
746
+ onRestartRequired?: (changedSettings: string[]) => void;
747
+ title?: string;
748
+ description?: string;
749
+ showResetButton?: boolean;
750
+ showUndoButton?: boolean;
751
+ customFields?: Record<string, React.ComponentType<CustomFieldProps>>;
752
+ renderCategory?: (category: SettingsCategory, children: ReactNode) => ReactNode;
753
+ renderSetting?: (setting: SettingDefinition, field: ReactNode) => ReactNode;
754
+ autoSave?: boolean;
755
+ autoSaveDelay?: number;
756
+ confirmReset?: boolean;
757
+ persistState?: boolean;
758
+ className?: string;
759
+ containerClassName?: string;
760
+ categoryClassName?: string;
761
+ settingClassName?: string;
762
+ }
763
+ declare function SettingsFramework({ categories, onSave, onLoad, onValidate, onRestartRequired, title, description, showResetButton, showUndoButton, customFields, renderCategory, renderSetting, autoSave, autoSaveDelay, confirmReset, persistState, className, containerClassName, categoryClassName, settingClassName }: SettingsFrameworkProps): react_jsx_runtime.JSX.Element;
764
+
765
+ /**
766
+ * Theme Toggle Component
767
+ * Provides UI for switching between light/dark/system themes
768
+ */
769
+ interface ThemeToggleProps {
770
+ className?: string;
771
+ showLabel?: boolean;
772
+ variant?: 'button' | 'select';
773
+ }
774
+ /**
775
+ * Theme toggle component for settings pages
776
+ */
777
+ declare function ThemeToggle({ className, showLabel, variant }: ThemeToggleProps): react_jsx_runtime.JSX.Element;
778
+ /**
779
+ * Compact theme toggle for headers/toolbars
780
+ */
781
+ declare function CompactThemeToggle({ className }: {
782
+ className?: string;
783
+ }): react_jsx_runtime.JSX.Element;
784
+
785
+ /**
786
+ * Default settings categories with icons for common application settings
787
+ * Apps can import and extend these categories or create their own
788
+ */
789
+ declare const defaultSettingsCategories: SettingsCategory$1[];
790
+ /**
791
+ * Helper function to create a settings category with icon
792
+ */
793
+ declare function createSettingsCategory(id: string, label: string, iconName: keyof typeof iconMap, description?: string): Omit<SettingsCategory$1, 'settings'>;
794
+ declare const iconMap: {
795
+ Server: react_jsx_runtime.JSX.Element;
796
+ Network: react_jsx_runtime.JSX.Element;
797
+ FileText: react_jsx_runtime.JSX.Element;
798
+ Shield: react_jsx_runtime.JSX.Element;
799
+ Mail: react_jsx_runtime.JSX.Element;
800
+ Settings: react_jsx_runtime.JSX.Element;
801
+ Database: react_jsx_runtime.JSX.Element;
802
+ Bell: react_jsx_runtime.JSX.Element;
803
+ Users: react_jsx_runtime.JSX.Element;
804
+ Palette: react_jsx_runtime.JSX.Element;
805
+ Globe: react_jsx_runtime.JSX.Element;
806
+ Activity: react_jsx_runtime.JSX.Element;
807
+ };
808
+
809
+ interface UpdateInfo {
810
+ currentVersion: string;
811
+ updateAvailable: boolean;
812
+ latestRelease?: {
813
+ version: string;
814
+ name: string;
815
+ body: string;
816
+ url: string;
817
+ publishedAt: string;
818
+ };
819
+ lastCheck: number | null;
820
+ }
821
+ interface UpdateNotificationProps {
822
+ apiUrl?: string;
823
+ checkInterval?: number;
824
+ onDownload?: (updateInfo: UpdateInfo) => void;
825
+ }
826
+ declare function UpdateNotification({ apiUrl, checkInterval, // 1 hour default
827
+ onDownload }: UpdateNotificationProps): react_jsx_runtime.JSX.Element | null;
828
+
829
+ interface SocketIOConfig extends Partial<ManagerOptions & SocketOptions> {
830
+ url?: string;
831
+ autoConnect?: boolean;
832
+ reconnection?: boolean;
833
+ reconnectionAttempts?: number;
834
+ reconnectionDelay?: number;
835
+ reconnectionDelayMax?: number;
836
+ timeout?: number;
837
+ transports?: string[];
838
+ auth?: Record<string, any>;
839
+ query?: Record<string, any>;
840
+ }
841
+ interface SocketIOState {
842
+ connected: boolean;
843
+ connecting: boolean;
844
+ error: Error | null;
845
+ retryCount: number;
846
+ transport: 'websocket' | 'polling' | null;
847
+ }
848
+ interface SocketIOActions {
849
+ socket: Socket | null;
850
+ emit: (event: string, data?: any) => void;
851
+ on: (event: string, handler: (data: any) => void) => void;
852
+ off: (event: string, handler: (data: any) => void) => void;
853
+ once: (event: string, handler: (data: any) => void) => void;
854
+ connect: () => void;
855
+ disconnect: () => void;
856
+ reconnect: () => void;
857
+ }
858
+ declare class SocketManager {
859
+ private sockets;
860
+ getSocket(url: string, options?: SocketIOConfig): Socket;
861
+ removeSocket(url: string): void;
862
+ }
863
+ declare const socketManager: SocketManager;
864
+ declare function useSocketIO(config?: SocketIOConfig): [SocketIOState, SocketIOActions];
865
+
866
+ /**
867
+ * Hook that debounces a value
868
+ * @param value The value to debounce
869
+ * @param delay The delay in milliseconds
870
+ * @returns The debounced value
871
+ *
872
+ * @example
873
+ * ```tsx
874
+ * const SearchInput = () => {
875
+ * const [searchTerm, setSearchTerm] = useState('');
876
+ * const debouncedSearchTerm = useDebounce(searchTerm, 300);
877
+ *
878
+ * useEffect(() => {
879
+ * if (debouncedSearchTerm) {
880
+ * // Perform search with debounced term
881
+ * performSearch(debouncedSearchTerm);
882
+ * }
883
+ * }, [debouncedSearchTerm]);
884
+ *
885
+ * return (
886
+ * <input
887
+ * value={searchTerm}
888
+ * onChange={(e) => setSearchTerm(e.target.value)}
889
+ * placeholder="Search..."
890
+ * />
891
+ * );
892
+ * };
893
+ * ```
894
+ */
895
+ declare function useDebounce<T>(value: T, delay: number): T;
896
+
897
+ interface ConnectionStatus {
898
+ connected: boolean;
899
+ connecting: boolean;
900
+ transport: 'websocket' | 'polling' | null;
901
+ error: Error | null;
902
+ retryCount: number;
903
+ reconnect: () => void;
904
+ }
905
+ /**
906
+ * Enhanced connection status hook that provides comprehensive connection information
907
+ * including transport type detection for better UX in HTTP/2 environments
908
+ */
909
+ declare function useConnectionStatus(options?: Parameters<typeof useSocketIO>[0]): ConnectionStatus;
910
+
911
+ /**
912
+ * Utility function to merge Tailwind CSS classes with proper precedence
913
+ * Uses clsx for conditional classes and tailwind-merge to resolve conflicts
914
+ */
915
+ declare function cn(...inputs: ClassValue[]): string;
916
+
917
+ /**
918
+ * Authentication Handler Utilities
919
+ *
920
+ * Provides common authentication functionality for applications
921
+ */
922
+ interface AuthConfig {
923
+ loginEndpoint?: string;
924
+ logoutEndpoint?: string;
925
+ refreshEndpoint?: string;
926
+ tokenKey?: string;
927
+ authKey?: string;
928
+ tokenExpiry?: number;
929
+ }
930
+ interface AuthResponse {
931
+ success: boolean;
932
+ token?: string;
933
+ user?: {
934
+ username: string;
935
+ email?: string;
936
+ roles?: string[];
937
+ };
938
+ error?: string;
939
+ expiresIn?: number;
940
+ }
941
+ declare class AuthHandler {
942
+ private config;
943
+ private refreshTimer?;
944
+ constructor(config?: AuthConfig);
945
+ /**
946
+ * Attempt to log in with credentials
947
+ */
948
+ login(username: string, password: string): Promise<AuthResponse>;
949
+ /**
950
+ * Log out the current user
951
+ */
952
+ logout(): Promise<void>;
953
+ /**
954
+ * Check if user is authenticated
955
+ */
956
+ isAuthenticated(): boolean;
957
+ /**
958
+ * Get the current auth token
959
+ */
960
+ getToken(): string | null;
961
+ /**
962
+ * Get the current user
963
+ */
964
+ getUser(): any;
965
+ /**
966
+ * Refresh the authentication token
967
+ */
968
+ refreshToken(): Promise<boolean>;
969
+ /**
970
+ * Schedule automatic token refresh
971
+ */
972
+ private scheduleTokenRefresh;
973
+ /**
974
+ * Make an authenticated API request
975
+ */
976
+ authenticatedFetch(url: string, options?: RequestInit): Promise<Response>;
977
+ /**
978
+ * Protected route wrapper
979
+ */
980
+ requireAuth(redirectTo?: string): boolean;
981
+ }
982
+ declare const authHandler: AuthHandler;
983
+
984
+ /**
985
+ * SuperDangerous UI Framework - Centralized Theme Configuration
986
+ *
987
+ * @module @superdangerous/ui-framework/theme
988
+ */
989
+ declare const theme: {
990
+ colors: {
991
+ primary: {
992
+ DEFAULT: string;
993
+ hover: string;
994
+ light: string;
995
+ dark: string;
996
+ };
997
+ dark: {
998
+ bg: {
999
+ primary: string;
1000
+ secondary: string;
1001
+ tertiary: string;
1002
+ elevated: string;
1003
+ };
1004
+ border: {
1005
+ DEFAULT: string;
1006
+ subtle: string;
1007
+ strong: string;
1008
+ };
1009
+ };
1010
+ light: {
1011
+ bg: {
1012
+ primary: string;
1013
+ secondary: string;
1014
+ tertiary: string;
1015
+ elevated: string;
1016
+ };
1017
+ border: {
1018
+ DEFAULT: string;
1019
+ subtle: string;
1020
+ strong: string;
1021
+ };
1022
+ };
1023
+ success: {
1024
+ DEFAULT: string;
1025
+ light: string;
1026
+ dark: string;
1027
+ };
1028
+ warning: {
1029
+ DEFAULT: string;
1030
+ light: string;
1031
+ dark: string;
1032
+ };
1033
+ error: {
1034
+ DEFAULT: string;
1035
+ light: string;
1036
+ dark: string;
1037
+ };
1038
+ info: {
1039
+ DEFAULT: string;
1040
+ light: string;
1041
+ dark: string;
1042
+ };
1043
+ intelligent: {
1044
+ DEFAULT: string;
1045
+ light: string;
1046
+ dark: string;
1047
+ };
1048
+ activity: {
1049
+ read: string;
1050
+ write: string;
1051
+ inactive: string;
1052
+ };
1053
+ };
1054
+ gradients: {
1055
+ subtle: string;
1056
+ card: string;
1057
+ glow: string;
1058
+ intelligent: string;
1059
+ };
1060
+ shadows: {
1061
+ sm: string;
1062
+ DEFAULT: string;
1063
+ md: string;
1064
+ lg: string;
1065
+ xl: string;
1066
+ glow: string;
1067
+ 'glow-intelligent': string;
1068
+ };
1069
+ radius: {
1070
+ sm: string;
1071
+ DEFAULT: string;
1072
+ md: string;
1073
+ lg: string;
1074
+ xl: string;
1075
+ '2xl': string;
1076
+ full: string;
1077
+ };
1078
+ spacing: {
1079
+ xs: string;
1080
+ sm: string;
1081
+ DEFAULT: string;
1082
+ md: string;
1083
+ lg: string;
1084
+ xl: string;
1085
+ '2xl': string;
1086
+ };
1087
+ typography: {
1088
+ fonts: {
1089
+ sans: string;
1090
+ mono: string;
1091
+ };
1092
+ sizes: {
1093
+ xs: string;
1094
+ sm: string;
1095
+ base: string;
1096
+ lg: string;
1097
+ xl: string;
1098
+ '2xl': string;
1099
+ '3xl': string;
1100
+ '4xl': string;
1101
+ };
1102
+ weights: {
1103
+ light: string;
1104
+ normal: string;
1105
+ medium: string;
1106
+ semibold: string;
1107
+ bold: string;
1108
+ };
1109
+ };
1110
+ transitions: {
1111
+ fast: string;
1112
+ DEFAULT: string;
1113
+ slow: string;
1114
+ timing: string;
1115
+ };
1116
+ zIndex: {
1117
+ base: number;
1118
+ elevated: number;
1119
+ dropdown: number;
1120
+ sticky: number;
1121
+ fixed: number;
1122
+ modal: number;
1123
+ popover: number;
1124
+ tooltip: number;
1125
+ };
1126
+ opacity: {
1127
+ hover: number;
1128
+ disabled: number;
1129
+ backdrop: number;
1130
+ subtle: number;
1131
+ };
1132
+ };
1133
+ declare const getCSSVariables: (isDark?: boolean) => {
1134
+ '--color-bg-primary': string;
1135
+ '--color-bg-secondary': string;
1136
+ '--color-bg-tertiary': string;
1137
+ '--color-bg-elevated': string;
1138
+ '--color-border': string;
1139
+ '--color-border-subtle': string;
1140
+ '--color-border-strong': string;
1141
+ '--color-text': string;
1142
+ '--color-text-secondary': string;
1143
+ '--color-text-tertiary': string;
1144
+ };
1145
+ type Theme = typeof theme;
1146
+
1147
+ type ThemeMode = 'light' | 'dark' | 'system';
1148
+ interface ThemeConfig {
1149
+ mode: ThemeMode;
1150
+ theme: typeof theme;
1151
+ customColors?: {
1152
+ primary?: string;
1153
+ secondary?: string;
1154
+ accent?: string;
1155
+ };
1156
+ }
1157
+ interface ThemeContextValue {
1158
+ themeConfig: ThemeConfig;
1159
+ setThemeMode: (mode: ThemeMode) => void;
1160
+ toggleTheme: () => void;
1161
+ isDark: boolean;
1162
+ }
1163
+ interface ThemeProviderProps {
1164
+ children: React__default.ReactNode;
1165
+ defaultMode?: ThemeMode;
1166
+ theme?: typeof theme;
1167
+ customColors?: ThemeConfig['customColors'];
1168
+ persistPreference?: boolean;
1169
+ }
1170
+ /**
1171
+ * Theme Provider Component
1172
+ * Manages theme state and provides theme context to the app
1173
+ */
1174
+ declare function ThemeProvider({ children, defaultMode, theme, customColors, persistPreference, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
1175
+ /**
1176
+ * Hook to use theme context
1177
+ */
1178
+ declare function useTheme(): ThemeContextValue;
1179
+
1180
+ /**
1181
+ * SuperDangerous UI Framework - Shared Style Constants
1182
+ * Reusable Tailwind class combinations for consistency
1183
+ *
1184
+ * @module @superdangerous/ui-framework/styles
1185
+ */
1186
+ declare const cardStyles: {
1187
+ readonly base: "transition-all duration-200";
1188
+ readonly interactive: "hover:shadow-md hover:border-gray-300 dark:hover:border-gray-700 cursor-pointer";
1189
+ readonly elevation: "shadow-sm";
1190
+ };
1191
+ declare const buttonStyles: {
1192
+ readonly primary: "gap-2";
1193
+ readonly icon: "h-4 w-4";
1194
+ };
1195
+ declare const emptyStateStyles: {
1196
+ readonly container: "flex flex-col items-center justify-center py-12 text-center";
1197
+ readonly icon: "h-12 w-12 text-muted-foreground mb-4";
1198
+ readonly title: "text-lg font-medium mb-2";
1199
+ readonly description: "text-sm text-muted-foreground max-w-sm";
1200
+ };
1201
+ declare const activityStyles: {
1202
+ readonly led: "w-2 h-2 rounded-full transition-all duration-200";
1203
+ readonly pulse: "animate-pulse";
1204
+ readonly colors: {
1205
+ readonly read: "bg-green-500";
1206
+ readonly write: "bg-blue-500";
1207
+ readonly inactive: "bg-gray-400";
1208
+ readonly error: "bg-red-500";
1209
+ };
1210
+ };
1211
+ declare const statusStyles: {
1212
+ readonly badge: {
1213
+ readonly success: "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";
1214
+ readonly warning: "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";
1215
+ readonly error: "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200";
1216
+ readonly info: "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";
1217
+ readonly default: "bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200";
1218
+ };
1219
+ };
1220
+
1221
+ 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, CompactStat, type CompactStatProps, CompactThemeToggle, ConnectionIndicator, ConnectionLostOverlay, ConnectionOverlay, ConnectionStatus$1 as ConnectionStatus, ConnectionStatusBanner, 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, 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, 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, UpdateNotification, type UseFormStateOptions, activityStyles, apiRequest, authHandler, badgeVariants, buttonStyles, buttonVariants, cardStyles, checkApiReadiness, cn, createSettingsCategory, defaultSettingsCategories, emptyStateStyles, formatDateTime, formatDuration, formatRelativeTime, formatShortRelativeTime, getCSSVariables, getTagClassName, getTagColor, socketManager, statusStyles, theme, timeAgo, useApiReadiness, useConnectionStatus, useDebounce, useFormState, useSocketIO, useTheme, waitForApiReady };