@industry-theme/agent-driven-ui-panels 0.1.0 → 0.1.1

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/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import type { PanelDefinition } from './types';
1
+ import type { PanelDefinition } from '@principal-ade/panel-framework-core';
2
2
  /**
3
3
  * Export array of panel definitions.
4
4
  * This is the required export for panel extensions.
5
5
  */
6
- export declare const panels: PanelDefinition[];
6
+ export declare const panels: PanelDefinition<any, any>[];
7
7
  /**
8
8
  * Optional: Called once when the entire package is loaded.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EA2BnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EA2B7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import type { PanelComponentProps } from '../types';
2
+ import type { AgentToolsPanelPropsTyped } from '../types';
3
3
  import type { AgentConfig } from '../types/agent-config';
4
- interface AgentToolsPanelContentProps extends PanelComponentProps {
4
+ interface AgentToolsPanelContentProps extends AgentToolsPanelPropsTyped {
5
5
  /** Agent configuration to display */
6
6
  agentConfig?: AgentConfig;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentToolsPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentToolsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAU3D,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,UAAU,2BAA4B,SAAQ,mBAAmB;IAC/D,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AA2jBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAMjE,CAAC"}
1
+ {"version":3,"file":"AgentToolsPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentToolsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAU3D,OAAO,KAAK,EAAE,yBAAyB,EAAa,MAAM,UAAU,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,UAAU,2BAA4B,SAAQ,yBAAyB;IACrE,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AA2jBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAMjE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { PanelComponentProps } from '../types';
2
+ import type { EventBusPanelPropsTyped } from '../types';
3
3
  /**
4
4
  * EventBusPanel - Real-time event bus monitor
5
5
  *
@@ -11,5 +11,5 @@ import type { PanelComponentProps } from '../types';
11
11
  * - Color-coded event types
12
12
  * - Responsive layout for narrow panels
13
13
  */
14
- export declare const EventBusPanel: React.FC<PanelComponentProps>;
14
+ export declare const EventBusPanel: React.FC<EventBusPanelPropsTyped>;
15
15
  //# sourceMappingURL=EventBusPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventBusPanel.d.ts","sourceRoot":"","sources":["../../src/panels/EventBusPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAiC,MAAM,UAAU,CAAC;AA8hBnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMvD,CAAC"}
1
+ {"version":3,"file":"EventBusPanel.d.ts","sourceRoot":"","sources":["../../src/panels/EventBusPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,UAAU,CAAC;AA8hBlB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAM3D,CAAC"}
@@ -312,52 +312,53 @@ var terminalTheme = {
312
312
  zIndices: [0, 1, 10, 20, 30, 40, 50],
313
313
  colors: {
314
314
  text: "#e4e4e4",
315
- background: "rgba(10, 10, 10, 0.85)",
315
+ background: "#0a0a0a",
316
316
  primary: "#66b3ff",
317
317
  secondary: "#80c4ff",
318
318
  accent: "#66ff99",
319
- highlight: "rgba(102, 179, 255, 0.15)",
320
- muted: "rgba(26, 26, 26, 0.8)",
319
+ highlight: "#18283d",
320
+ muted: "#1a1a1a",
321
321
  success: "#66ff99",
322
322
  warning: "#ffcc66",
323
323
  error: "#ff6666",
324
324
  info: "#66b3ff",
325
- border: "rgba(255, 255, 255, 0.1)",
326
- backgroundSecondary: "rgba(15, 15, 15, 0.9)",
327
- backgroundTertiary: "rgba(20, 20, 20, 0.9)",
328
- backgroundLight: "rgba(255, 255, 255, 0.05)",
329
- backgroundHover: "rgba(102, 179, 255, 0.08)",
330
- surface: "rgba(15, 15, 15, 0.95)",
331
- textSecondary: "rgba(255, 255, 255, 0.7)",
332
- textTertiary: "rgba(255, 255, 255, 0.5)",
333
- textMuted: "rgba(255, 255, 255, 0.4)",
334
- highlightBg: "rgba(255, 235, 59, 0.25)",
335
- highlightBorder: "rgba(255, 235, 59, 0.5)"
325
+ border: "#1a1a1a",
326
+ backgroundSecondary: "#0f0f0f",
327
+ backgroundTertiary: "#141414",
328
+ backgroundLight: "#0d0d0d",
329
+ backgroundHover: "#0d1520",
330
+ surface: "#0f0f0f",
331
+ textSecondary: "#b3b3b3",
332
+ textTertiary: "#808080",
333
+ textMuted: "#666666",
334
+ highlightBg: "#40391e",
335
+ highlightBorder: "#7f7530",
336
+ textOnPrimary: "#ffffff"
336
337
  },
337
338
  modes: {
338
339
  light: {
339
340
  text: "#1a1a1a",
340
- background: "rgba(255, 255, 255, 0.9)",
341
+ background: "#ffffff",
341
342
  primary: "#0066cc",
342
343
  secondary: "#0052a3",
343
344
  accent: "#00cc88",
344
- highlight: "rgba(0, 102, 204, 0.08)",
345
- muted: "rgba(245, 245, 245, 0.8)",
345
+ highlight: "#e6f2ff",
346
+ muted: "#f5f5f5",
346
347
  success: "#00cc88",
347
348
  warning: "#ffaa00",
348
349
  error: "#ff3333",
349
350
  info: "#0066cc",
350
- border: "rgba(0, 0, 0, 0.1)",
351
- backgroundSecondary: "rgba(250, 250, 250, 0.9)",
352
- backgroundTertiary: "rgba(245, 245, 245, 0.9)",
353
- backgroundLight: "rgba(0, 0, 0, 0.02)",
354
- backgroundHover: "rgba(0, 102, 204, 0.04)",
355
- surface: "rgba(255, 255, 255, 0.95)",
356
- textSecondary: "rgba(0, 0, 0, 0.6)",
357
- textTertiary: "rgba(0, 0, 0, 0.4)",
358
- textMuted: "rgba(0, 0, 0, 0.3)",
359
- highlightBg: "rgba(255, 235, 59, 0.3)",
360
- highlightBorder: "rgba(255, 235, 59, 0.6)"
351
+ border: "#e6e6e6",
352
+ backgroundSecondary: "#fafafa",
353
+ backgroundTertiary: "#f5f5f5",
354
+ backgroundLight: "#fafafa",
355
+ backgroundHover: "#f5f9fd",
356
+ surface: "#ffffff",
357
+ textSecondary: "#666666",
358
+ textTertiary: "#999999",
359
+ textMuted: "#b3b3b3",
360
+ highlightBg: "#fff9c4",
361
+ highlightBorder: "#fff389"
361
362
  }
362
363
  },
363
364
  buttons: {
@@ -1 +1 @@
1
- {"version":3,"file":"panels.bundle.js","sources":["../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/activity.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../node_modules/lucide-react/dist/esm/icons/cpu.js","../node_modules/lucide-react/dist/esm/icons/file-text.js","../node_modules/lucide-react/dist/esm/icons/funnel.js","../node_modules/lucide-react/dist/esm/icons/pause.js","../node_modules/lucide-react/dist/esm/icons/play.js","../node_modules/lucide-react/dist/esm/icons/tag.js","../node_modules/lucide-react/dist/esm/icons/trash-2.js","../node_modules/lucide-react/dist/esm/icons/wrench.js","../node_modules/lucide-react/dist/esm/icons/x.js","../node_modules/@principal-ade/industry-theme/dist/esm/index.js","../src/panels/EventBusPanel.tsx","../src/panels/AgentToolsPanel.tsx","../src/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = createLucideIcon(\"activity\", __iconNode);\n\nexport { __iconNode, Activity as default };\n//# sourceMappingURL=activity.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M17 20v2\", key: \"1rnc9c\" }],\n [\"path\", { d: \"M17 2v2\", key: \"11trls\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M2 17h2\", key: \"7oei6x\" }],\n [\"path\", { d: \"M2 7h2\", key: \"asdhe0\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"M20 17h2\", key: \"1fpfkl\" }],\n [\"path\", { d: \"M20 7h2\", key: \"1o8tra\" }],\n [\"path\", { d: \"M7 20v2\", key: \"4gnj0m\" }],\n [\"path\", { d: \"M7 2v2\", key: \"1i4yhu\" }],\n [\"rect\", { x: \"4\", y: \"4\", width: \"16\", height: \"16\", rx: \"2\", key: \"1vbyd7\" }],\n [\"rect\", { x: \"8\", y: \"8\", width: \"8\", height: \"8\", rx: \"1\", key: \"z9xiuo\" }]\n];\nconst Cpu = createLucideIcon(\"cpu\", __iconNode);\n\nexport { __iconNode, Cpu as default };\n//# sourceMappingURL=cpu.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n key: \"sc7q7i\"\n }\n ]\n];\nconst Funnel = createLucideIcon(\"funnel\", __iconNode);\n\nexport { __iconNode, Funnel as default };\n//# sourceMappingURL=funnel.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { x: \"14\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"kaeet6\" }],\n [\"rect\", { x: \"5\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"1wsw3u\" }]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode);\n\nexport { __iconNode, Pause as default };\n//# sourceMappingURL=pause.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"vktsd0\"\n }\n ],\n [\"circle\", { cx: \"7.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"kqv944\" }]\n];\nconst Tag = createLucideIcon(\"tag\", __iconNode);\n\nexport { __iconNode, Tag as default };\n//# sourceMappingURL=tag.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 11v6\", key: \"nco0om\" }],\n [\"path\", { d: \"M14 11v6\", key: \"outv1u\" }],\n [\"path\", { d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\", key: \"miytrc\" }],\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\", key: \"e791ji\" }]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode);\n\nexport { __iconNode, Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\",\n key: \"1ngwbx\"\n }\n ]\n];\nconst Wrench = createLucideIcon(\"wrench\", __iconNode);\n\nexport { __iconNode, Wrench as default };\n//# sourceMappingURL=wrench.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","// src/glassmorphismTheme.ts\nvar glassmorphismTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.4,\n relaxed: 1.8\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 8, 12, 16, 20, 24, 32, 40],\n shadows: [\n \"none\",\n \"0 8px 32px 0 rgba(31, 38, 135, 0.15)\",\n \"0 12px 40px 0 rgba(31, 38, 135, 0.2)\",\n \"0 16px 48px 0 rgba(31, 38, 135, 0.25)\",\n \"0 20px 56px 0 rgba(31, 38, 135, 0.3)\",\n \"0 24px 64px 0 rgba(31, 38, 135, 0.35)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"rgba(255, 255, 255, 0.95)\",\n background: \"rgba(255, 255, 255, 0.1)\",\n primary: \"rgba(99, 102, 241, 0.9)\",\n secondary: \"rgba(139, 92, 246, 0.9)\",\n accent: \"rgba(236, 72, 153, 0.9)\",\n highlight: \"rgba(99, 102, 241, 0.2)\",\n muted: \"rgba(255, 255, 255, 0.05)\",\n success: \"rgba(34, 197, 94, 0.9)\",\n warning: \"rgba(251, 146, 60, 0.9)\",\n error: \"rgba(239, 68, 68, 0.9)\",\n info: \"rgba(59, 130, 246, 0.9)\",\n border: \"rgba(255, 255, 255, 0.18)\",\n backgroundSecondary: \"rgba(255, 255, 255, 0.15)\",\n backgroundTertiary: \"rgba(255, 255, 255, 0.2)\",\n backgroundLight: \"rgba(255, 255, 255, 0.08)\",\n backgroundHover: \"rgba(255, 255, 255, 0.25)\",\n surface: \"rgba(255, 255, 255, 0.12)\",\n textSecondary: \"rgba(255, 255, 255, 0.8)\",\n textTertiary: \"rgba(255, 255, 255, 0.6)\",\n textMuted: \"rgba(255, 255, 255, 0.5)\",\n highlightBg: \"rgba(251, 191, 36, 0.3)\",\n highlightBorder: \"rgba(251, 191, 36, 0.5)\"\n },\n modes: {\n dark: {\n text: \"rgba(255, 255, 255, 0.95)\",\n background: \"rgba(0, 0, 0, 0.3)\",\n primary: \"rgba(129, 140, 248, 0.9)\",\n secondary: \"rgba(167, 139, 250, 0.9)\",\n accent: \"rgba(244, 114, 182, 0.9)\",\n highlight: \"rgba(129, 140, 248, 0.25)\",\n muted: \"rgba(0, 0, 0, 0.15)\",\n success: \"rgba(74, 222, 128, 0.9)\",\n warning: \"rgba(251, 191, 36, 0.9)\",\n error: \"rgba(248, 113, 113, 0.9)\",\n info: \"rgba(96, 165, 250, 0.9)\",\n border: \"rgba(255, 255, 255, 0.15)\",\n backgroundSecondary: \"rgba(0, 0, 0, 0.4)\",\n backgroundTertiary: \"rgba(0, 0, 0, 0.5)\",\n backgroundLight: \"rgba(0, 0, 0, 0.2)\",\n backgroundHover: \"rgba(255, 255, 255, 0.1)\",\n surface: \"rgba(0, 0, 0, 0.35)\",\n textSecondary: \"rgba(255, 255, 255, 0.8)\",\n textTertiary: \"rgba(255, 255, 255, 0.6)\",\n textMuted: \"rgba(255, 255, 255, 0.4)\",\n highlightBg: \"rgba(251, 191, 36, 0.35)\",\n highlightBorder: \"rgba(251, 191, 36, 0.6)\"\n },\n frosted: {\n text: \"rgba(31, 41, 55, 0.95)\",\n background: \"rgba(255, 255, 255, 0.3)\",\n primary: \"rgba(79, 70, 229, 0.95)\",\n secondary: \"rgba(124, 58, 237, 0.95)\",\n accent: \"rgba(219, 39, 119, 0.95)\",\n highlight: \"rgba(79, 70, 229, 0.15)\",\n muted: \"rgba(255, 255, 255, 0.4)\",\n success: \"rgba(16, 185, 129, 0.95)\",\n warning: \"rgba(245, 158, 11, 0.95)\",\n error: \"rgba(220, 38, 38, 0.95)\",\n info: \"rgba(37, 99, 235, 0.95)\",\n border: \"rgba(255, 255, 255, 0.5)\",\n backgroundSecondary: \"rgba(255, 255, 255, 0.4)\",\n backgroundTertiary: \"rgba(255, 255, 255, 0.5)\",\n backgroundLight: \"rgba(255, 255, 255, 0.25)\",\n backgroundHover: \"rgba(255, 255, 255, 0.6)\",\n surface: \"rgba(255, 255, 255, 0.35)\",\n textSecondary: \"rgba(31, 41, 55, 0.8)\",\n textTertiary: \"rgba(31, 41, 55, 0.6)\",\n textMuted: \"rgba(31, 41, 55, 0.5)\",\n highlightBg: \"rgba(251, 191, 36, 0.4)\",\n highlightBorder: \"rgba(251, 191, 36, 0.7)\"\n }\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"rgba(255, 255, 255, 0.2)\",\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"text\",\n bg: \"rgba(255, 255, 255, 0.1)\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"rgba(255, 255, 255, 0.2)\",\n \"&:hover\": {\n bg: \"rgba(255, 255, 255, 0.2)\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&:hover\": {\n borderColor: \"rgba(255, 255, 255, 0.2)\",\n bg: \"rgba(255, 255, 255, 0.05)\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n }\n }\n};\n// src/defaultThemes.ts\nvar defaultMarkdownTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Crimson Text\", \"Georgia\", \"Times New Roman\", serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#1a1a1a\",\n background: \"#ffffff\",\n primary: \"#007acc\",\n secondary: \"#005a9e\",\n accent: \"#1a1a1a\",\n highlight: \"rgba(0, 122, 204, 0.1)\",\n muted: \"#f0f0f0\",\n success: \"#28a745\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n info: \"#17a2b8\",\n border: \"rgba(0, 0, 0, 0.1)\",\n backgroundSecondary: \"#f8f9fa\",\n backgroundTertiary: \"#e9ecef\",\n backgroundLight: \"rgba(0, 0, 0, 0.03)\",\n backgroundHover: \"rgba(0, 0, 0, 0.05)\",\n surface: \"#ffffff\",\n textSecondary: \"#555555\",\n textTertiary: \"#888888\",\n textMuted: \"#aaaaaa\",\n highlightBg: \"rgba(255, 235, 59, 0.3)\",\n highlightBorder: \"rgba(255, 235, 59, 0.6)\"\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n }\n }\n};\nvar defaultTerminalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", Courier, monospace',\n heading: '\"Courier New\", Courier, monospace',\n monospace: '\"Courier New\", Courier, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.4,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.6\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 0 5px rgba(255, 193, 7, 0.1)\",\n \"0 0 10px rgba(255, 193, 7, 0.15)\",\n \"0 0 15px rgba(255, 193, 7, 0.2)\",\n \"0 0 20px rgba(255, 193, 7, 0.25)\",\n \"0 0 30px rgba(255, 193, 7, 0.3)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#ffc107\",\n background: \"#000000\",\n primary: \"#ffc107\",\n secondary: \"#ffb300\",\n accent: \"#ffffff\",\n highlight: \"rgba(255, 193, 7, 0.1)\",\n muted: \"#1a1a1a\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"rgba(255, 193, 7, 0.2)\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"rgba(255, 193, 7, 0.03)\",\n backgroundHover: \"rgba(255, 193, 7, 0.05)\",\n surface: \"#050505\",\n textSecondary: \"#e0e0e0\",\n textTertiary: \"#b0b0b0\",\n textMuted: \"#808080\",\n highlightBg: \"rgba(255, 193, 7, 0.2)\",\n highlightBorder: \"rgba(255, 193, 7, 0.4)\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar defaultEditorTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace',\n heading: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px rgba(0, 0, 0, 0.1)\",\n \"0 4px 8px rgba(0, 0, 0, 0.15)\",\n \"0 8px 16px rgba(0, 0, 0, 0.2)\",\n \"0 12px 24px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#d4d4d4\",\n background: \"#1e1e1e\",\n primary: \"#569cd6\",\n secondary: \"#408ac9\",\n accent: \"#c586c0\",\n highlight: \"rgba(86, 156, 214, 0.1)\",\n muted: \"#2a2a2a\",\n success: \"#6a9955\",\n warning: \"#d18616\",\n error: \"#f44747\",\n info: \"#569cd6\",\n border: \"rgba(255, 255, 255, 0.1)\",\n backgroundSecondary: \"#252526\",\n backgroundTertiary: \"#333333\",\n backgroundLight: \"rgba(255, 255, 255, 0.03)\",\n backgroundHover: \"rgba(255, 255, 255, 0.05)\",\n surface: \"#252526\",\n textSecondary: \"#cccccc\",\n textTertiary: \"#999999\",\n textMuted: \"#666666\",\n highlightBg: \"rgba(255, 235, 59, 0.2)\",\n highlightBorder: \"rgba(255, 235, 59, 0.4)\"\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n }\n }\n};\n// src/landingPageTheme.ts\nvar landingPageTheme = {\n space: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 100, 128],\n fonts: {\n body: 'Inter, \"Geist Sans\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n heading: '-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n monospace: '\"SF Mono\", Monaco, Inconsolata, \"Fira Code\", monospace'\n },\n fontSizes: [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 28, 32, 36, 48, 56, 68, 84, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.2,\n tight: 1.05,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\", \"1400px\"],\n sizes: [16, 32, 64, 128, 200, 240, 256, 300, 512, 740, 768, 820, 900, 1024, 1200, 1400, 1536],\n radii: [0, 2, 4, 6, 7, 8, 9, 10, 12, 14, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 4px 12px rgba(0, 194, 255, 0.4)\",\n \"0 6px 24px rgba(0, 194, 255, 0.1)\",\n \"0 8px 32px rgba(0, 0, 0, 0.4)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50, 1000],\n colors: {\n text: \"#ffffff\",\n background: \"#000000\",\n primary: \"#00C2FF\",\n secondary: \"#0098CC\",\n accent: \"#0066FF\",\n highlight: \"rgba(0, 194, 255, 0.15)\",\n muted: \"#1a1a1a\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"rgba(0, 194, 255, 0.2)\",\n backgroundSecondary: \"#0a1628\",\n backgroundTertiary: \"#0f1c2e\",\n backgroundLight: \"rgba(0, 194, 255, 0.04)\",\n backgroundHover: \"rgba(0, 194, 255, 0.1)\",\n surface: \"rgba(0, 0, 0, 0.4)\",\n textSecondary: \"#d1d5db\",\n textTertiary: \"#9ca3af\",\n textMuted: \"#6b7280\",\n highlightBg: \"rgba(255, 235, 59, 0.25)\",\n highlightBorder: \"rgba(255, 235, 59, 0.5)\"\n },\n buttons: {\n primary: {\n color: \"#000000\",\n bg: \"#00C2FF\",\n borderWidth: 0,\n padding: \"8px 20px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#00D9FF\"\n }\n },\n secondary: {\n color: \"#00C2FF\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"rgba(0, 194, 255, 0.3)\",\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"rgba(0, 194, 255, 0.1)\",\n borderColor: \"#00C2FF\"\n }\n },\n ghost: {\n color: \"#00C2FF\",\n bg: \"transparent\",\n borderWidth: 0,\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 500,\n cursor: \"pointer\",\n \"&:hover\": {\n color: \"#00D9FF\",\n bg: \"rgba(0, 194, 255, 0.1)\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\",\n color: \"#ffffff\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\",\n color: \"text\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 4\n },\n secondary: {\n bg: \"rgba(0, 194, 255, 0.05)\",\n border: \"1px solid\",\n borderColor: \"rgba(0, 194, 255, 0.2)\",\n borderRadius: 4\n }\n }\n};\nvar landingPageLightTheme = {\n ...landingPageTheme,\n colors: {\n text: \"#1a1a1a\",\n background: \"#ffffff\",\n primary: \"#0098CC\",\n secondary: \"#00C2FF\",\n accent: \"#0066FF\",\n highlight: \"rgba(0, 152, 204, 0.1)\",\n muted: \"#f0f0f0\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"rgba(0, 152, 204, 0.2)\",\n backgroundSecondary: \"#f8f9fa\",\n backgroundTertiary: \"#e9ecef\",\n backgroundLight: \"rgba(0, 152, 204, 0.03)\",\n backgroundHover: \"rgba(0, 152, 204, 0.05)\",\n surface: \"rgba(255, 255, 255, 0.95)\",\n textSecondary: \"#555555\",\n textTertiary: \"#888888\",\n textMuted: \"#aaaaaa\",\n highlightBg: \"rgba(255, 235, 59, 0.3)\",\n highlightBorder: \"rgba(255, 235, 59, 0.6)\"\n },\n buttons: {\n primary: {\n color: \"#ffffff\",\n bg: \"#0098CC\",\n borderWidth: 0,\n padding: \"8px 20px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#007aa8\"\n }\n },\n secondary: {\n color: \"#0098CC\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"rgba(0, 152, 204, 0.3)\",\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"rgba(0, 152, 204, 0.05)\",\n borderColor: \"#0098CC\"\n }\n },\n ghost: {\n color: \"#0098CC\",\n bg: \"transparent\",\n borderWidth: 0,\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 500,\n cursor: \"pointer\",\n \"&:hover\": {\n color: \"#007aa8\",\n bg: \"rgba(0, 152, 204, 0.05)\"\n }\n }\n }\n};\n\n// src/themes.ts\nvar regalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Crimson Text\", \"Georgia\", \"Times New Roman\", serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#f1e8dc\",\n background: \"#1a1f2e\",\n primary: \"#d4a574\",\n secondary: \"#e0b584\",\n accent: \"#c9b8a3\",\n highlight: \"rgba(212, 165, 116, 0.15)\",\n muted: \"#8b7968\",\n success: \"#5c8a72\",\n warning: \"#d4a574\",\n error: \"#a85751\",\n info: \"#d4a574\",\n border: \"rgba(212, 165, 116, 0.2)\",\n backgroundSecondary: \"#212738\",\n backgroundTertiary: \"#2d3446\",\n backgroundLight: \"rgba(212, 165, 116, 0.08)\",\n backgroundHover: \"rgba(212, 165, 116, 0.15)\",\n surface: \"#212738\",\n textSecondary: \"#c9b8a3\",\n textTertiary: \"#8b7968\",\n textMuted: \"#8b7968\",\n highlightBg: \"rgba(255, 193, 7, 0.25)\",\n highlightBorder: \"rgba(255, 193, 7, 0.5)\"\n },\n buttons: {\n primary: {\n color: \"background\",\n bg: \"primary\",\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"text\",\n bg: \"muted\",\n \"&:hover\": {\n bg: \"backgroundSecondary\"\n }\n },\n ghost: {\n color: \"primary\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"muted\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"background\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n }\n }\n};\nvar terminalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace',\n heading: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace',\n monospace: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.4,\n relaxed: 1.8\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px 0 rgba(0, 0, 0, 0.07)\",\n \"0 8px 12px 0 rgba(0, 0, 0, 0.08)\",\n \"0 16px 24px 0 rgba(0, 0, 0, 0.10)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#e4e4e4\",\n background: \"rgba(10, 10, 10, 0.85)\",\n primary: \"#66b3ff\",\n secondary: \"#80c4ff\",\n accent: \"#66ff99\",\n highlight: \"rgba(102, 179, 255, 0.15)\",\n muted: \"rgba(26, 26, 26, 0.8)\",\n success: \"#66ff99\",\n warning: \"#ffcc66\",\n error: \"#ff6666\",\n info: \"#66b3ff\",\n border: \"rgba(255, 255, 255, 0.1)\",\n backgroundSecondary: \"rgba(15, 15, 15, 0.9)\",\n backgroundTertiary: \"rgba(20, 20, 20, 0.9)\",\n backgroundLight: \"rgba(255, 255, 255, 0.05)\",\n backgroundHover: \"rgba(102, 179, 255, 0.08)\",\n surface: \"rgba(15, 15, 15, 0.95)\",\n textSecondary: \"rgba(255, 255, 255, 0.7)\",\n textTertiary: \"rgba(255, 255, 255, 0.5)\",\n textMuted: \"rgba(255, 255, 255, 0.4)\",\n highlightBg: \"rgba(255, 235, 59, 0.25)\",\n highlightBorder: \"rgba(255, 235, 59, 0.5)\"\n },\n modes: {\n light: {\n text: \"#1a1a1a\",\n background: \"rgba(255, 255, 255, 0.9)\",\n primary: \"#0066cc\",\n secondary: \"#0052a3\",\n accent: \"#00cc88\",\n highlight: \"rgba(0, 102, 204, 0.08)\",\n muted: \"rgba(245, 245, 245, 0.8)\",\n success: \"#00cc88\",\n warning: \"#ffaa00\",\n error: \"#ff3333\",\n info: \"#0066cc\",\n border: \"rgba(0, 0, 0, 0.1)\",\n backgroundSecondary: \"rgba(250, 250, 250, 0.9)\",\n backgroundTertiary: \"rgba(245, 245, 245, 0.9)\",\n backgroundLight: \"rgba(0, 0, 0, 0.02)\",\n backgroundHover: \"rgba(0, 102, 204, 0.04)\",\n surface: \"rgba(255, 255, 255, 0.95)\",\n textSecondary: \"rgba(0, 0, 0, 0.6)\",\n textTertiary: \"rgba(0, 0, 0, 0.4)\",\n textMuted: \"rgba(0, 0, 0, 0.3)\",\n highlightBg: \"rgba(255, 235, 59, 0.3)\",\n highlightBorder: \"rgba(255, 235, 59, 0.6)\"\n }\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"highlight\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n }\n }\n};\nvar matrixTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n heading: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n monospace: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 0 5px rgba(0, 216, 53, 0.15)\",\n \"0 0 10px rgba(0, 216, 53, 0.2)\",\n \"0 0 15px rgba(0, 216, 53, 0.25)\",\n \"0 0 20px rgba(0, 216, 53, 0.3)\",\n \"0 0 30px rgba(0, 216, 53, 0.4)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#a8a8a8\",\n background: \"#000000\",\n primary: \"#00d835\",\n secondary: \"#00a828\",\n accent: \"#00d835\",\n highlight: \"rgba(0, 216, 53, 0.15)\",\n muted: \"#0a0a0a\",\n success: \"#00d835\",\n warning: \"#d4a000\",\n error: \"#d63333\",\n info: \"#00a8d6\",\n border: \"rgba(0, 216, 53, 0.2)\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"rgba(0, 216, 53, 0.03)\",\n backgroundHover: \"rgba(0, 216, 53, 0.08)\",\n surface: \"#050505\",\n textSecondary: \"#808080\",\n textTertiary: \"#606060\",\n textMuted: \"#484848\",\n highlightBg: \"rgba(0, 216, 53, 0.25)\",\n highlightBorder: \"rgba(0, 216, 53, 0.5)\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"highlight\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar matrixMinimalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n heading: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n monospace: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px rgba(0, 0, 0, 0.1)\",\n \"0 4px 8px rgba(0, 0, 0, 0.15)\",\n \"0 8px 16px rgba(0, 0, 0, 0.2)\",\n \"0 0 20px rgba(0, 216, 53, 0.1)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#a8a8a8\",\n background: \"#000000\",\n primary: \"#b8b8b8\",\n secondary: \"#909090\",\n accent: \"#00d835\",\n highlight: \"rgba(0, 216, 53, 0.1)\",\n muted: \"#0a0a0a\",\n success: \"#00d835\",\n warning: \"#d4a000\",\n error: \"#d63333\",\n info: \"#00a8d6\",\n border: \"rgba(184, 184, 184, 0.1)\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"rgba(184, 184, 184, 0.02)\",\n backgroundHover: \"rgba(0, 216, 53, 0.05)\",\n surface: \"#050505\",\n textSecondary: \"#808080\",\n textTertiary: \"#606060\",\n textMuted: \"#484848\",\n highlightBg: \"rgba(0, 216, 53, 0.2)\",\n highlightBorder: \"rgba(0, 216, 53, 0.4)\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar slateTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.2)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.2)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.2)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.25)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.3)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#9ca3af\",\n background: \"#1a1c1e\",\n primary: \"#d1d5db\",\n secondary: \"#6b7280\",\n accent: \"#f59e0b\",\n highlight: \"rgba(209, 213, 219, 0.15)\",\n muted: \"#2d3134\",\n success: \"#10b981\",\n warning: \"#f59e0b\",\n error: \"#ef4444\",\n info: \"#3b82f6\",\n border: \"rgba(156, 163, 175, 0.15)\",\n backgroundSecondary: \"#22252a\",\n backgroundTertiary: \"#2d3134\",\n backgroundLight: \"rgba(156, 163, 175, 0.05)\",\n backgroundHover: \"rgba(156, 163, 175, 0.1)\",\n surface: \"#1f2124\",\n textSecondary: \"#e5e7eb\",\n textTertiary: \"#6b7280\",\n textMuted: \"#4b5563\",\n highlightBg: \"rgba(245, 158, 11, 0.25)\",\n highlightBorder: \"rgba(245, 158, 11, 0.5)\"\n },\n buttons: {\n primary: {\n color: \"#1a1c1e\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"#9ca3af\"\n }\n },\n secondary: {\n color: \"#e5e7eb\",\n bg: \"secondary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"#4b5563\"\n }\n },\n ghost: {\n color: \"textSecondary\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\",\n color: \"textSecondary\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textTertiary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n }\n }\n};\n// src/ThemeProvider.tsx\nimport React, { createContext, useContext, useState, useEffect } from \"react\";\n\n// src/themeHelpers.ts\nfunction overrideColors(theme, colors) {\n return {\n ...theme,\n colors: {\n ...theme.colors,\n ...colors\n }\n };\n}\nfunction makeTheme(baseTheme, overrides) {\n return {\n ...baseTheme,\n ...overrides,\n colors: {\n ...baseTheme.colors,\n ...overrides.colors\n },\n fonts: {\n ...baseTheme.fonts,\n ...overrides.fonts\n }\n };\n}\nfunction addMode(theme, modeName, colors, baseMode) {\n let baseColors;\n if (baseMode && theme.modes && theme.modes[baseMode]) {\n baseColors = {\n ...theme.colors,\n ...theme.modes[baseMode]\n };\n } else {\n baseColors = theme.colors;\n }\n const newMode = {\n ...baseColors,\n ...colors\n };\n return {\n ...theme,\n modes: {\n ...theme.modes,\n [modeName]: newMode\n }\n };\n}\nfunction getMode(theme, mode) {\n if (!mode || !theme.modes || !theme.modes[mode]) {\n return theme.colors;\n }\n return {\n ...theme.colors,\n ...theme.modes[mode]\n };\n}\n\n// src/ThemeProvider.tsx\nvar ThemeContext;\nvar getThemeContext = () => {\n if (typeof window !== \"undefined\") {\n const globalWindow = window;\n if (!globalWindow.__principlemd_theme_context__) {\n globalWindow.__principlemd_theme_context__ = createContext(undefined);\n }\n return globalWindow.__principlemd_theme_context__;\n } else {\n if (!ThemeContext) {\n ThemeContext = createContext(undefined);\n }\n return ThemeContext;\n }\n};\nvar ThemeContextSingleton = getThemeContext();\nvar useTheme = () => {\n const context = useContext(ThemeContextSingleton);\n if (!context) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\nvar ThemeProvider = ({\n children,\n theme: customTheme = theme,\n initialMode\n}) => {\n const [mode, setMode] = useState(initialMode);\n const activeTheme = React.useMemo(() => {\n if (!mode || !customTheme.modes || !customTheme.modes[mode]) {\n return customTheme;\n }\n return {\n ...customTheme,\n colors: getMode(customTheme, mode)\n };\n }, [customTheme, mode]);\n useEffect(() => {\n if (!initialMode) {\n const savedMode = localStorage.getItem(\"principlemd-theme-mode\");\n if (savedMode) {\n setMode(savedMode);\n }\n }\n }, [initialMode]);\n useEffect(() => {\n if (mode) {\n localStorage.setItem(\"principlemd-theme-mode\", mode);\n } else {\n localStorage.removeItem(\"principlemd-theme-mode\");\n }\n }, [mode]);\n const value = {\n theme: activeTheme,\n mode,\n setMode\n };\n return /* @__PURE__ */ React.createElement(ThemeContextSingleton.Provider, {\n value\n }, children);\n};\nvar withTheme = (Component) => {\n return (props) => {\n const { theme: theme2 } = useTheme();\n return /* @__PURE__ */ React.createElement(Component, {\n ...props,\n theme: theme2\n });\n };\n};\n// src/utils.ts\nvar getColor = (theme2, colorKey) => {\n const colors = theme2.colors;\n const value = colors[colorKey];\n return typeof value === \"string\" ? value : colorKey;\n};\nvar getSpace = (theme2, index) => {\n return theme2.space[index] || 0;\n};\nvar getFontSize = (theme2, index) => {\n return theme2.fontSizes[index] || theme2.fontSizes[2];\n};\nvar getRadius = (theme2, index) => {\n return theme2.radii[index] || 0;\n};\nvar getShadow = (theme2, index) => {\n return theme2.shadows[index] || \"none\";\n};\nvar getZIndex = (theme2, index) => {\n return theme2.zIndices[index] || 0;\n};\nvar responsive = (values) => {\n return values.reduce((acc, value, index) => {\n if (index === 0) {\n return value;\n }\n return {\n ...acc,\n [`@media screen and (min-width: ${values[index - 1]})`]: value\n };\n }, {});\n};\nvar sx = (styles) => styles;\nvar createStyle = (theme2, styleObj) => {\n const processValue = (value) => {\n if (typeof value === \"string\") {\n if (value in theme2.colors) {\n return getColor(theme2, value);\n }\n return value;\n }\n if (typeof value === \"number\") {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(processValue);\n }\n if (typeof value === \"object\" && value !== null) {\n const processed2 = {};\n for (const [key, val] of Object.entries(value)) {\n processed2[key] = processValue(val);\n }\n return processed2;\n }\n return value;\n };\n const processed = {};\n for (const [key, val] of Object.entries(styleObj)) {\n processed[key] = processValue(val);\n }\n return processed;\n};\nvar mergeThemes = (baseTheme, ...overrides) => {\n return overrides.reduce((theme2, override) => ({\n space: override.space || theme2.space,\n fonts: { ...theme2.fonts, ...override.fonts || {} },\n fontSizes: override.fontSizes || theme2.fontSizes,\n fontWeights: { ...theme2.fontWeights, ...override.fontWeights || {} },\n lineHeights: { ...theme2.lineHeights, ...override.lineHeights || {} },\n breakpoints: override.breakpoints || theme2.breakpoints,\n sizes: override.sizes || theme2.sizes,\n radii: override.radii || theme2.radii,\n shadows: override.shadows || theme2.shadows,\n zIndices: override.zIndices || theme2.zIndices,\n colors: {\n ...theme2.colors,\n ...override.colors || {}\n },\n buttons: { ...theme2.buttons, ...override.buttons || {} },\n text: { ...theme2.text, ...override.text || {} },\n cards: { ...theme2.cards, ...override.cards || {} }\n }), baseTheme);\n};\n// src/ThemeShowcase.tsx\nimport React2 from \"react\";\nvar ThemeShowcase = ({\n theme: theme2,\n title,\n showValues = true,\n sections = [\"colors\", \"typography\", \"spacing\", \"shadows\", \"radii\"]\n}) => {\n const containerStyle = {\n fontFamily: theme2.fonts.body,\n color: theme2.colors.text,\n backgroundColor: theme2.colors.background,\n padding: theme2.space[4],\n minHeight: \"100vh\"\n };\n const sectionStyle = {\n marginBottom: theme2.space[5],\n padding: theme2.space[4],\n backgroundColor: theme2.colors.surface || theme2.colors.backgroundSecondary,\n borderRadius: theme2.radii[2],\n border: `1px solid ${theme2.colors.border}`\n };\n const headingStyle = {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[5],\n fontWeight: theme2.fontWeights.heading,\n marginBottom: theme2.space[3],\n color: theme2.colors.primary\n };\n const subheadingStyle = {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[3],\n fontWeight: theme2.fontWeights.medium,\n marginBottom: theme2.space[2],\n marginTop: theme2.space[3],\n color: theme2.colors.text\n };\n return /* @__PURE__ */ React2.createElement(\"div\", {\n style: containerStyle\n }, title && /* @__PURE__ */ React2.createElement(\"h1\", {\n style: {\n ...headingStyle,\n fontSize: theme2.fontSizes[6],\n marginBottom: theme2.space[4]\n }\n }, title), sections.includes(\"colors\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Colors\"), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Primary Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3],\n marginBottom: theme2.space[3]\n }\n }, [\"text\", \"background\", \"primary\", \"secondary\", \"accent\", \"muted\"].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme2.space[2],\n backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 40,\n height: 40,\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1],\n marginRight: theme2.space[2]\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", null, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, color)));\n })), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Status Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3],\n marginBottom: theme2.space[3]\n }\n }, [\"success\", \"warning\", \"error\", \"info\"].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme2.space[2],\n backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 40,\n height: 40,\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1],\n marginRight: theme2.space[2]\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", null, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, color)));\n })), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Background Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3]\n }\n }, [\"backgroundSecondary\", \"backgroundTertiary\", \"backgroundLight\", \"backgroundHover\", \"surface\"].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n padding: theme2.space[3],\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary,\n marginTop: theme2.space[1]\n }\n }, color));\n }))), sections.includes(\"typography\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Typography\"), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Families\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { marginBottom: theme2.space[4] }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[4],\n marginBottom: theme2.space[2]\n }\n }, \"Heading Font: \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.heading)), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[2],\n marginBottom: theme2.space[2]\n }\n }, \"Body Font: \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.body)), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[2]\n }\n }, \"Monospace Font: \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.monospace))), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Sizes\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { marginBottom: theme2.space[4] }\n }, theme2.fontSizes.map((size, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: {\n fontSize: size,\n lineHeight: theme2.lineHeights.body,\n marginBottom: theme2.space[1]\n }\n }, \"Size \", index, \": Sample Text \", showValues && `(${size}px)`))), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Weights\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(150px, 1fr))\",\n gap: theme2.space[2]\n }\n }, Object.entries(theme2.fontWeights).map(([name, weight]) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: name,\n style: {\n fontWeight: weight,\n fontSize: theme2.fontSizes[2]\n }\n }, name, \" \", showValues && `(${weight})`)))), sections.includes(\"spacing\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Spacing\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { display: \"flex\", flexDirection: \"column\", gap: theme2.space[2] }\n }, theme2.space.map((space, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { display: \"flex\", alignItems: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 60,\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \"[\", index, \"]\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n height: 24,\n width: space,\n backgroundColor: theme2.colors.primary,\n borderRadius: theme2.radii[1]\n }\n }), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n marginLeft: theme2.space[2],\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, space, \"px\"))))), sections.includes(\"radii\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Border Radii\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(100px, 1fr))\",\n gap: theme2.space[3]\n }\n }, theme2.radii.map((radius, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { textAlign: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 80,\n height: 80,\n backgroundColor: theme2.colors.primary,\n borderRadius: radius,\n marginBottom: theme2.space[1],\n margin: \"0 auto\"\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, \"[\", index, \"] \", showValues && `${radius}px`))))), sections.includes(\"shadows\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Shadows\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(150px, 1fr))\",\n gap: theme2.space[4]\n }\n }, theme2.shadows.map((shadow, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { textAlign: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 100,\n height: 100,\n backgroundColor: theme2.colors.background,\n boxShadow: shadow,\n borderRadius: theme2.radii[2],\n margin: \"0 auto\",\n marginBottom: theme2.space[2],\n border: `1px solid ${theme2.colors.border}`\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, \"Shadow [\", index, \"]\"), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textMuted,\n marginTop: theme2.space[1]\n }\n }, shadow === \"none\" ? \"none\" : \"...\"))))), theme2.modes && Object.keys(theme2.modes).length > 0 && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Available Modes\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"flex\",\n gap: theme2.space[2],\n flexWrap: \"wrap\"\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n padding: `${theme2.space[2]}px ${theme2.space[3]}px`,\n backgroundColor: theme2.colors.primary,\n color: \"#ffffff\",\n borderRadius: theme2.radii[2],\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[1]\n }\n }, \"default\"), Object.keys(theme2.modes).map((modeName) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: modeName,\n style: {\n padding: `${theme2.space[2]}px ${theme2.space[3]}px`,\n backgroundColor: theme2.colors.secondary,\n color: theme2.colors.text,\n borderRadius: theme2.radii[2],\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[1]\n }\n }, modeName)))));\n};\n\n// src/index.ts\nvar theme = terminalTheme;\nfunction scaleThemeFonts(theme2, scale) {\n const currentScale = theme2.fontScale || 1;\n const effectiveScale = scale / currentScale;\n return {\n ...theme2,\n fontSizes: theme2.fontSizes.map((size) => Math.round(size * effectiveScale)),\n fontScale: scale\n };\n}\nfunction increaseFontScale(theme2) {\n const currentScale = theme2.fontScale || 1;\n const newScale = Math.min(currentScale * 1.1, 2);\n return scaleThemeFonts(theme2, newScale);\n}\nfunction decreaseFontScale(theme2) {\n const currentScale = theme2.fontScale || 1;\n const newScale = Math.max(currentScale * 0.9, 0.5);\n return scaleThemeFonts(theme2, newScale);\n}\nfunction resetFontScale(theme2) {\n return scaleThemeFonts(theme2, 1);\n}\nvar src_default = theme;\nexport {\n withTheme,\n useTheme,\n theme,\n terminalTheme,\n sx,\n slateTheme,\n scaleThemeFonts,\n responsive,\n resetFontScale,\n regalTheme,\n overrideColors,\n mergeThemes,\n matrixTheme,\n matrixMinimalTheme,\n makeTheme,\n landingPageTheme,\n landingPageLightTheme,\n increaseFontScale,\n glassmorphismTheme,\n getZIndex,\n getSpace,\n getShadow,\n getRadius,\n getMode,\n getFontSize,\n getColor,\n defaultTerminalTheme,\n defaultMarkdownTheme,\n defaultEditorTheme,\n src_default as default,\n decreaseFontScale,\n createStyle,\n addMode,\n ThemeShowcase,\n ThemeProvider\n};\n","import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { Activity, Pause, Play, Trash2, Filter, ChevronDown, ChevronRight, X } from 'lucide-react';\nimport { ThemeProvider, useTheme } from '@principal-ade/industry-theme';\nimport type { PanelComponentProps, PanelEvent, PanelEventEmitter } from '../types';\n\ninterface CapturedEvent {\n id: number;\n event: PanelEvent;\n expanded: boolean;\n}\n\ninterface EventBusPanelContentProps extends PanelComponentProps {\n maxEvents?: number;\n}\n\nconst EventBusPanelContent: React.FC<EventBusPanelContentProps> = ({\n events,\n maxEvents = 200,\n}) => {\n const [capturedEvents, setCapturedEvents] = useState<CapturedEvent[]>([]);\n const [isPaused, setIsPaused] = useState(false);\n const [filterType, setFilterType] = useState('');\n const [filterSource, setFilterSource] = useState('');\n const [showFilters, setShowFilters] = useState(false);\n const eventIdRef = useRef(0);\n const listRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const isPausedRef = useRef(isPaused);\n const [isNarrow, setIsNarrow] = useState(false);\n const { theme } = useTheme();\n\n // Track container width for responsive layout\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width || 0;\n setIsNarrow(width < 400);\n });\n\n observer.observe(container);\n return () => observer.disconnect();\n }, []);\n\n // Keep ref in sync with state\n useEffect(() => {\n isPausedRef.current = isPaused;\n }, [isPaused]);\n\n // Subscribe to all events\n useEffect(() => {\n // Cast to our extended type that includes onAll\n const extendedEvents = events as PanelEventEmitter;\n if (!extendedEvents?.onAll) return;\n\n const unsubscribe = extendedEvents.onAll((event: PanelEvent) => {\n if (isPausedRef.current) return;\n\n const id = ++eventIdRef.current;\n setCapturedEvents((prev) => {\n const newEvents = [...prev, { id, event, expanded: false }];\n // Keep only the last maxEvents\n if (newEvents.length > maxEvents) {\n return newEvents.slice(-maxEvents);\n }\n return newEvents;\n });\n });\n\n return unsubscribe;\n }, [events, maxEvents]);\n\n // Auto-scroll to bottom when new events arrive\n useEffect(() => {\n if (!isPaused && listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, [capturedEvents, isPaused]);\n\n const toggleExpanded = useCallback((id: number) => {\n setCapturedEvents((prev) =>\n prev.map((e) => (e.id === id ? { ...e, expanded: !e.expanded } : e))\n );\n }, []);\n\n const clearEvents = useCallback(() => {\n setCapturedEvents([]);\n }, []);\n\n const clearFilters = useCallback(() => {\n setFilterType('');\n setFilterSource('');\n }, []);\n\n const hasActiveFilters = filterType || filterSource;\n\n // Filter events\n const filteredEvents = capturedEvents.filter((e) => {\n if (filterType && !e.event.type.toLowerCase().includes(filterType.toLowerCase())) {\n return false;\n }\n if (filterSource && !e.event.source.toLowerCase().includes(filterSource.toLowerCase())) {\n return false;\n }\n return true;\n });\n\n // Get unique event types and sources for filter hints\n const uniqueTypes = [...new Set(capturedEvents.map((e) => e.event.type))];\n const uniqueSources = [...new Set(capturedEvents.map((e) => e.event.source))];\n\n const getEventTypeColor = (type: string): string => {\n if (type.startsWith('panel:')) return theme.colors.primary;\n if (type.startsWith('file:')) return theme.colors.success;\n if (type.startsWith('repository:')) return theme.colors.info;\n if (type.startsWith('gemini:') || type.startsWith('ai:')) return theme.colors.warning;\n if (type.includes('error')) return theme.colors.error;\n return theme.colors.textSecondary;\n };\n\n const formatTimestamp = (ts: number): string => {\n const date = new Date(ts);\n const time = date.toLocaleTimeString('en-US', {\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n const ms = String(date.getMilliseconds()).padStart(3, '0');\n return isNarrow ? `${time.slice(3)}` : `${time}.${ms}`;\n };\n\n const formatPayload = (payload: unknown): string => {\n try {\n return JSON.stringify(payload, null, 2);\n } catch {\n return String(payload);\n }\n };\n\n // Compact button style for narrow views\n const buttonStyle = {\n padding: isNarrow ? '6px 8px' : '6px 12px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n cursor: 'pointer',\n fontSize: theme.fontSizes[1],\n whiteSpace: 'nowrap' as const,\n };\n\n return (\n <div\n ref={containerRef}\n style={{\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n fontFamily: theme.fonts.body,\n backgroundColor: theme.colors.background,\n color: theme.colors.text,\n minWidth: 0,\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: isNarrow ? '8px 12px' : '12px 16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n flexShrink: 0,\n minWidth: 0,\n }}\n >\n <Activity size={isNarrow ? 16 : 20} color={theme.colors.primary} style={{ flexShrink: 0 }} />\n {!isNarrow && (\n <h2\n style={{\n margin: 0,\n fontSize: theme.fontSizes[3],\n fontWeight: theme.fontWeights.semibold,\n whiteSpace: 'nowrap',\n }}\n >\n Event Bus\n </h2>\n )}\n <span\n style={{\n marginLeft: 'auto',\n fontSize: theme.fontSizes[1],\n color: theme.colors.textMuted,\n whiteSpace: 'nowrap',\n }}\n >\n {filteredEvents.length}{!isNarrow && ` / ${capturedEvents.length}`}\n </span>\n </div>\n\n {/* Controls */}\n <div\n style={{\n padding: isNarrow ? '6px 8px' : '8px 16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n flexShrink: 0,\n flexWrap: 'wrap',\n }}\n >\n {/* Pause/Resume */}\n <button\n onClick={() => setIsPaused(!isPaused)}\n style={{\n ...buttonStyle,\n border: `1px solid ${isPaused ? theme.colors.warning : theme.colors.border}`,\n background: isPaused ? theme.colors.warning : theme.colors.surface,\n color: isPaused ? theme.colors.background : theme.colors.text,\n }}\n title={isPaused ? 'Resume' : 'Pause'}\n >\n {isPaused ? <Play size={14} /> : <Pause size={14} />}\n {!isNarrow && (isPaused ? 'Resume' : 'Pause')}\n </button>\n\n {/* Clear */}\n <button\n onClick={clearEvents}\n style={buttonStyle}\n title=\"Clear events\"\n >\n <Trash2 size={14} />\n {!isNarrow && 'Clear'}\n </button>\n\n {/* Spacer */}\n <div style={{ flex: 1, minWidth: '8px' }} />\n\n {/* Filter Toggle (narrow) or Inline Filters (wide) */}\n {isNarrow ? (\n <button\n onClick={() => setShowFilters(!showFilters)}\n style={{\n ...buttonStyle,\n border: `1px solid ${hasActiveFilters ? theme.colors.primary : theme.colors.border}`,\n background: hasActiveFilters ? `${theme.colors.primary}20` : theme.colors.surface,\n }}\n title=\"Toggle filters\"\n >\n <Filter size={14} color={hasActiveFilters ? theme.colors.primary : theme.colors.textMuted} />\n {hasActiveFilters && (\n <span style={{\n width: '6px',\n height: '6px',\n borderRadius: '50%',\n background: theme.colors.primary\n }} />\n )}\n </button>\n ) : (\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <Filter size={14} color={theme.colors.textMuted} />\n <input\n type=\"text\"\n placeholder=\"Type...\"\n value={filterType}\n onChange={(e) => setFilterType(e.target.value)}\n list=\"event-types\"\n style={{\n padding: '4px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100px',\n minWidth: 0,\n }}\n />\n <datalist id=\"event-types\">\n {uniqueTypes.map((type) => (\n <option key={type} value={type} />\n ))}\n </datalist>\n <input\n type=\"text\"\n placeholder=\"Source...\"\n value={filterSource}\n onChange={(e) => setFilterSource(e.target.value)}\n list=\"event-sources\"\n style={{\n padding: '4px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100px',\n minWidth: 0,\n }}\n />\n <datalist id=\"event-sources\">\n {uniqueSources.map((source) => (\n <option key={source} value={source} />\n ))}\n </datalist>\n {hasActiveFilters && (\n <button\n onClick={clearFilters}\n style={{\n ...buttonStyle,\n padding: '4px 6px',\n }}\n title=\"Clear filters\"\n >\n <X size={12} />\n </button>\n )}\n </div>\n )}\n </div>\n\n {/* Expanded Filters (narrow view) */}\n {isNarrow && showFilters && (\n <div\n style={{\n padding: '8px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n background: theme.colors.backgroundSecondary,\n }}\n >\n <input\n type=\"text\"\n placeholder=\"Filter by type...\"\n value={filterType}\n onChange={(e) => setFilterType(e.target.value)}\n list=\"event-types-narrow\"\n style={{\n padding: '6px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100%',\n }}\n />\n <datalist id=\"event-types-narrow\">\n {uniqueTypes.map((type) => (\n <option key={type} value={type} />\n ))}\n </datalist>\n <input\n type=\"text\"\n placeholder=\"Filter by source...\"\n value={filterSource}\n onChange={(e) => setFilterSource(e.target.value)}\n list=\"event-sources-narrow\"\n style={{\n padding: '6px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100%',\n }}\n />\n <datalist id=\"event-sources-narrow\">\n {uniqueSources.map((source) => (\n <option key={source} value={source} />\n ))}\n </datalist>\n {hasActiveFilters && (\n <button\n onClick={clearFilters}\n style={{\n ...buttonStyle,\n justifyContent: 'center',\n width: '100%',\n }}\n >\n <X size={12} />\n Clear Filters\n </button>\n )}\n </div>\n )}\n\n {/* Event List */}\n <div\n ref={listRef}\n style={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n padding: isNarrow ? '4px' : '8px',\n fontFamily: theme.fonts.monospace,\n fontSize: theme.fontSizes[1],\n }}\n >\n {filteredEvents.length === 0 ? (\n <div\n style={{\n padding: '24px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n }}\n >\n {capturedEvents.length === 0\n ? 'Waiting for events...'\n : 'No events match your filter'}\n </div>\n ) : (\n filteredEvents.map((captured) => (\n <div\n key={captured.id}\n style={{\n marginBottom: '4px',\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n background: theme.colors.surface,\n overflow: 'hidden',\n }}\n >\n {/* Event Header */}\n <div\n onClick={() => toggleExpanded(captured.id)}\n style={{\n padding: isNarrow ? '6px 8px' : '8px 12px',\n display: 'flex',\n alignItems: 'flex-start',\n gap: '6px',\n cursor: 'pointer',\n userSelect: 'none',\n flexWrap: isNarrow ? 'wrap' : 'nowrap',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px', flexShrink: 0 }}>\n {captured.expanded ? (\n <ChevronDown size={14} color={theme.colors.textMuted} />\n ) : (\n <ChevronRight size={14} color={theme.colors.textMuted} />\n )}\n <span style={{ color: theme.colors.textMuted, fontSize: theme.fontSizes[0] }}>\n {formatTimestamp(captured.event.timestamp)}\n </span>\n </div>\n <div style={{\n flex: 1,\n minWidth: 0,\n display: 'flex',\n flexDirection: isNarrow ? 'column' : 'row',\n alignItems: isNarrow ? 'flex-start' : 'center',\n gap: isNarrow ? '2px' : '6px',\n }}>\n <span\n style={{\n color: getEventTypeColor(captured.event.type),\n fontWeight: theme.fontWeights.medium,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '100%',\n }}\n title={captured.event.type}\n >\n {captured.event.type}\n </span>\n {!isNarrow && <span style={{ color: theme.colors.textMuted }}>from</span>}\n <span\n style={{\n color: theme.colors.info,\n fontSize: isNarrow ? theme.fontSizes[0] : theme.fontSizes[1],\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n title={captured.event.source}\n >\n {isNarrow ? `← ${captured.event.source}` : captured.event.source}\n </span>\n </div>\n </div>\n\n {/* Expanded Payload */}\n {captured.expanded && (\n <div\n style={{\n padding: isNarrow ? '6px 8px' : '8px 12px',\n borderTop: `1px solid ${theme.colors.border}`,\n background: theme.colors.background,\n overflow: 'auto',\n maxHeight: '200px',\n }}\n >\n <pre\n style={{\n margin: 0,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n color: theme.colors.textSecondary,\n fontSize: theme.fontSizes[0],\n }}\n >\n {formatPayload(captured.event.payload)}\n </pre>\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Status Bar */}\n {isPaused && (\n <div\n style={{\n padding: isNarrow ? '6px 12px' : '8px 16px',\n borderTop: `1px solid ${theme.colors.warning}`,\n background: `${theme.colors.warning}20`,\n color: theme.colors.warning,\n fontSize: theme.fontSizes[1],\n textAlign: 'center',\n flexShrink: 0,\n }}\n >\n ⏸ {isNarrow ? 'Paused' : 'Event capture paused'}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * EventBusPanel - Real-time event bus monitor\n *\n * Displays all events flowing through the PanelEventBus, with:\n * - Real-time streaming event list\n * - Pause/Resume capture\n * - Filter by event type and source\n * - Expandable payload inspection\n * - Color-coded event types\n * - Responsive layout for narrow panels\n */\nexport const EventBusPanel: React.FC<PanelComponentProps> = (props) => {\n return (\n <ThemeProvider>\n <EventBusPanelContent {...props} />\n </ThemeProvider>\n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Wrench,\n ChevronDown,\n ChevronRight,\n FileText,\n Cpu,\n Tag,\n} from 'lucide-react';\nimport { ThemeProvider, useTheme } from '@principal-ade/industry-theme';\nimport type { PanelComponentProps, PanelTool } from '../types';\nimport type { AgentConfig } from '../types/agent-config';\n\ninterface AgentToolsPanelContentProps extends PanelComponentProps {\n /** Agent configuration to display */\n agentConfig?: AgentConfig;\n}\n\n/**\n * Renders a capability badge\n */\nconst CapabilityBadge: React.FC<{ name: string; enabled: boolean; compact?: boolean }> = ({\n name,\n enabled,\n compact,\n}) => {\n const { theme } = useTheme();\n if (!enabled) return null;\n\n const formatName = (n: string) =>\n n.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase());\n\n return (\n <span\n style={{\n padding: compact ? '1px 6px' : '2px 8px',\n fontSize: theme.fontSizes[0],\n borderRadius: theme.radii[1],\n background: `${theme.colors.primary}20`,\n color: theme.colors.primary,\n border: `1px solid ${theme.colors.primary}40`,\n whiteSpace: 'nowrap',\n }}\n >\n {formatName(name)}\n </span>\n );\n};\n\n/**\n * Renders the JSON schema in a readable format\n */\nconst SchemaView: React.FC<{ schema: Record<string, unknown>; label: string }> = ({\n schema,\n label,\n}) => {\n const { theme } = useTheme();\n\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <div style={{ color: theme.colors.textMuted, fontStyle: 'italic', fontSize: theme.fontSizes[0] }}>\n No {label.toLowerCase()} schema defined\n </div>\n );\n }\n\n return (\n <div>\n <div\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n marginBottom: '4px',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n }}\n >\n {label}\n </div>\n <pre\n style={{\n margin: 0,\n padding: '6px 8px',\n background: theme.colors.background,\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[0],\n fontFamily: theme.fonts.monospace,\n color: theme.colors.textSecondary,\n overflow: 'auto',\n maxHeight: '150px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n }}\n >\n {JSON.stringify(schema, null, 2)}\n </pre>\n </div>\n );\n};\n\n/**\n * Renders a single tool item\n */\nconst ToolItem: React.FC<{ tool: PanelTool; index: number; isNarrow: boolean }> = ({\n tool,\n index,\n isNarrow,\n}) => {\n const [expanded, setExpanded] = useState(false);\n const { theme } = useTheme();\n\n return (\n <div\n style={{\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n background: theme.colors.surface,\n overflow: 'hidden',\n }}\n >\n {/* Tool Header */}\n <div\n onClick={() => setExpanded(!expanded)}\n style={{\n padding: isNarrow ? '8px 10px' : '12px',\n display: 'flex',\n alignItems: 'flex-start',\n gap: '6px',\n cursor: 'pointer',\n userSelect: 'none',\n }}\n >\n {expanded ? (\n <ChevronDown size={14} color={theme.colors.textMuted} style={{ marginTop: '2px', flexShrink: 0 }} />\n ) : (\n <ChevronRight size={14} color={theme.colors.textMuted} style={{ marginTop: '2px', flexShrink: 0 }} />\n )}\n\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n flexWrap: 'wrap',\n }}>\n <span\n style={{\n fontFamily: theme.fonts.monospace,\n fontWeight: theme.fontWeights.medium,\n color: theme.colors.text,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n wordBreak: 'break-word',\n }}\n >\n {tool.name}\n </span>\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n background: theme.colors.backgroundSecondary,\n padding: '1px 5px',\n borderRadius: theme.radii[0],\n flexShrink: 0,\n }}\n >\n #{index + 1}\n </span>\n </div>\n <div\n style={{\n fontSize: isNarrow ? theme.fontSizes[0] : theme.fontSizes[1],\n color: theme.colors.textSecondary,\n marginTop: '4px',\n lineHeight: 1.4,\n }}\n >\n {tool.description}\n </div>\n\n {/* Tags */}\n {tool.tags && tool.tags.length > 0 && (\n <div\n style={{\n display: 'flex',\n gap: '4px',\n marginTop: '6px',\n flexWrap: 'wrap',\n }}\n >\n {tool.tags.slice(0, isNarrow ? 3 : undefined).map((tag) => (\n <span\n key={tag}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n padding: '1px 5px',\n fontSize: theme.fontSizes[0],\n background: theme.colors.backgroundSecondary,\n color: theme.colors.textMuted,\n borderRadius: theme.radii[0],\n }}\n >\n <Tag size={8} />\n {tag}\n </span>\n ))}\n {isNarrow && tool.tags.length > 3 && (\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n }}\n >\n +{tool.tags.length - 3}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n\n {/* Expanded Content */}\n {expanded && (\n <div\n style={{\n padding: isNarrow ? '8px 10px' : '12px',\n borderTop: `1px solid ${theme.colors.border}`,\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n }}\n >\n <SchemaView\n schema={tool.inputs as Record<string, unknown>}\n label=\"Input Schema\"\n />\n <SchemaView\n schema={tool.outputs as Record<string, unknown>}\n label=\"Output Schema\"\n />\n </div>\n )}\n </div>\n );\n};\n\ntype TabId = 'prompt' | 'tools';\n\nconst AgentToolsPanelContent: React.FC<AgentToolsPanelContentProps> = ({\n agentConfig,\n}) => {\n const { theme } = useTheme();\n const containerRef = useRef<HTMLDivElement>(null);\n const [isNarrow, setIsNarrow] = useState(false);\n const [activeTab, setActiveTab] = useState<TabId>('prompt');\n\n // Track container width for responsive layout\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width || 0;\n setIsNarrow(width < 350);\n });\n\n observer.observe(container);\n return () => observer.disconnect();\n }, []);\n\n // Default/empty state\n const config: AgentConfig = agentConfig || {\n id: 'no-agent',\n name: 'No Agent Loaded',\n description: 'Connect an agent to view its tools and configuration.',\n tools: [],\n };\n\n const tools = config.tools || [];\n const capabilities = config.capabilities || {};\n const enabledCapabilities = Object.entries(capabilities).filter(\n ([, enabled]) => enabled\n );\n\n return (\n <div\n ref={containerRef}\n style={{\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n fontFamily: theme.fonts.body,\n backgroundColor: theme.colors.background,\n color: theme.colors.text,\n minWidth: 0,\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: isNarrow ? '12px' : '16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n flexShrink: 0,\n }}\n >\n {/* Agent Identity - Icon, Name/Version */}\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: isNarrow ? '8px' : '12px',\n }}>\n <div\n style={{\n width: isNarrow ? '32px' : '40px',\n height: isNarrow ? '32px' : '40px',\n borderRadius: theme.radii[2],\n background: theme.colors.primary,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: isNarrow ? '16px' : '20px',\n flexShrink: 0,\n color: theme.colors.background,\n }}\n >\n {config.icon || <Cpu size={isNarrow ? 16 : 20} color={theme.colors.background} />}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <h2\n style={{\n margin: 0,\n fontSize: isNarrow ? theme.fontSizes[3] : theme.fontSizes[4],\n fontWeight: theme.fontWeights.semibold,\n wordBreak: 'break-word',\n }}\n >\n {config.name}\n </h2>\n {config.version && (\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n }}\n >\n v{config.version}\n </span>\n )}\n </div>\n </div>\n\n {/* Description */}\n <p\n style={{\n margin: '8px 0 0 0',\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n color: theme.colors.textSecondary,\n lineHeight: 1.4,\n }}\n >\n {config.description}\n </p>\n\n {/* Capabilities */}\n {enabledCapabilities.length > 0 && (\n <div\n style={{\n display: 'flex',\n gap: '4px',\n marginTop: '10px',\n flexWrap: 'wrap',\n }}\n >\n {enabledCapabilities.map(([name, enabled]) => (\n <CapabilityBadge key={name} name={name} enabled={!!enabled} compact={isNarrow} />\n ))}\n </div>\n )}\n </div>\n\n {/* Tabs */}\n <div\n style={{\n display: 'flex',\n borderBottom: `1px solid ${theme.colors.border}`,\n flexShrink: 0,\n }}\n >\n <button\n onClick={() => setActiveTab('prompt')}\n style={{\n flex: 1,\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: 'transparent',\n border: 'none',\n borderBottom: activeTab === 'prompt' ? `2px solid ${theme.colors.primary}` : '2px solid transparent',\n color: activeTab === 'prompt' ? theme.colors.text : theme.colors.textMuted,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n fontWeight: theme.fontWeights.medium,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '6px',\n fontFamily: theme.fonts.body,\n }}\n >\n <FileText size={14} />\n Prompt\n </button>\n <button\n onClick={() => setActiveTab('tools')}\n style={{\n flex: 1,\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: 'transparent',\n border: 'none',\n borderBottom: activeTab === 'tools' ? `2px solid ${theme.colors.primary}` : '2px solid transparent',\n color: activeTab === 'tools' ? theme.colors.text : theme.colors.textMuted,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n fontWeight: theme.fontWeights.medium,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '6px',\n fontFamily: theme.fonts.body,\n }}\n >\n <Wrench size={14} />\n Tools\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n background: theme.colors.backgroundSecondary,\n padding: '1px 5px',\n borderRadius: theme.radii[0],\n }}\n >\n {tools.length}\n </span>\n </button>\n </div>\n\n {/* Tab Content */}\n <div\n style={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n }}\n >\n {activeTab === 'prompt' && (\n <div\n style={{\n padding: isNarrow ? '12px' : '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n }}\n >\n {/* Instructions / System Prompt */}\n {config.instructions ? (\n <div\n style={{\n fontSize: theme.fontSizes[1],\n color: theme.colors.textSecondary,\n lineHeight: 1.6,\n whiteSpace: 'pre-wrap',\n fontFamily: theme.fonts.body,\n }}\n >\n {config.instructions}\n </div>\n ) : (\n <div\n style={{\n padding: '20px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n fontSize: theme.fontSizes[1],\n }}\n >\n No system prompt defined\n </div>\n )}\n\n {/* System Prompt Reference */}\n {config.systemPromptRef && (\n <div\n style={{\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: theme.colors.surface,\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[1],\n }}\n >\n <div\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n marginBottom: '4px',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n }}\n >\n Source\n </div>\n <div\n style={{\n fontFamily: theme.fonts.monospace,\n color: theme.colors.text,\n wordBreak: 'break-all',\n }}\n >\n {config.systemPromptRef.uri}\n </div>\n {config.systemPromptRef.label && (\n <div\n style={{\n marginTop: '4px',\n color: theme.colors.textMuted,\n }}\n >\n {config.systemPromptRef.label}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {activeTab === 'tools' && (\n <div\n style={{\n padding: isNarrow ? '8px' : '12px 16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n }}\n >\n {tools.length === 0 ? (\n <div\n style={{\n padding: '20px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n fontSize: theme.fontSizes[1],\n }}\n >\n No tools defined\n </div>\n ) : (\n tools.map((tool, index) => (\n <ToolItem key={tool.name} tool={tool} index={index} isNarrow={isNarrow} />\n ))\n )}\n </div>\n )}\n </div>\n\n {/* Footer with ID */}\n <div\n style={{\n padding: isNarrow ? '6px 12px' : '8px 16px',\n borderTop: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.monospace,\n flexShrink: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n title={config.id}\n >\n {config.id}\n </div>\n </div>\n );\n};\n\n/**\n * AgentToolsPanel - Displays agent configuration and available tools\n *\n * Shows:\n * - Agent identity (name, description, version, icon)\n * - Capabilities badges\n * - Link to system prompt\n * - Instructions preview\n * - List of tools with expandable input/output schemas\n * - Responsive layout for narrow panels\n */\nexport const AgentToolsPanel: React.FC<AgentToolsPanelContentProps> = (props) => {\n return (\n <ThemeProvider>\n <AgentToolsPanelContent {...props} />\n </ThemeProvider>\n );\n};\n","import { EventBusPanel } from './panels/EventBusPanel';\nimport { AgentToolsPanel } from './panels/AgentToolsPanel';\nimport type { PanelDefinition } from './types';\n\n/**\n * Export array of panel definitions.\n * This is the required export for panel extensions.\n */\nexport const panels: PanelDefinition[] = [\n {\n metadata: {\n id: 'industry-theme.event-bus-panel',\n name: 'Event Bus',\n icon: 'radio',\n version: '0.1.0',\n author: 'Industry Theme',\n description: 'Real-time event bus monitor showing all events flowing through the panel system',\n slices: [],\n tools: [],\n },\n component: EventBusPanel,\n },\n {\n metadata: {\n id: 'industry-theme.agent-tools-panel',\n name: 'Agent Tools',\n icon: 'wrench',\n version: '0.1.0',\n author: 'Industry Theme',\n description: 'Displays agent configuration, capabilities, and available tools with their schemas',\n slices: [],\n tools: [],\n },\n component: AgentToolsPanel,\n },\n];\n\n/**\n * Optional: Called once when the entire package is loaded.\n */\nexport const onPackageLoad = async () => {\n // eslint-disable-next-line no-console\n console.log('Agent Driven UI Panels loaded');\n};\n\n/**\n * Optional: Called once when the package is unloaded.\n */\nexport const onPackageUnload = async () => {\n // eslint-disable-next-line no-console\n console.log('Agent Driven UI Panels unloading');\n};\n\n// Re-export panel components for direct imports\nexport { EventBusPanel } from './panels/EventBusPanel';\nexport { AgentToolsPanel } from './panels/AgentToolsPanel';\n\n// Re-export agent config types\nexport type {\n AgentConfig,\n AgentInfo,\n AgentSkill,\n AgentCapabilities,\n AgentProvider,\n ResourceRef,\n} from './types';\n"],"names":["__iconNode","theme","React","Filter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}
1
+ {"version":3,"file":"panels.bundle.js","sources":["../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/activity.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../node_modules/lucide-react/dist/esm/icons/cpu.js","../node_modules/lucide-react/dist/esm/icons/file-text.js","../node_modules/lucide-react/dist/esm/icons/funnel.js","../node_modules/lucide-react/dist/esm/icons/pause.js","../node_modules/lucide-react/dist/esm/icons/play.js","../node_modules/lucide-react/dist/esm/icons/tag.js","../node_modules/lucide-react/dist/esm/icons/trash-2.js","../node_modules/lucide-react/dist/esm/icons/wrench.js","../node_modules/lucide-react/dist/esm/icons/x.js","../node_modules/@principal-ade/industry-theme/dist/esm/index.js","../src/panels/EventBusPanel.tsx","../src/panels/AgentToolsPanel.tsx","../src/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = createLucideIcon(\"activity\", __iconNode);\n\nexport { __iconNode, Activity as default };\n//# sourceMappingURL=activity.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M17 20v2\", key: \"1rnc9c\" }],\n [\"path\", { d: \"M17 2v2\", key: \"11trls\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M2 17h2\", key: \"7oei6x\" }],\n [\"path\", { d: \"M2 7h2\", key: \"asdhe0\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"M20 17h2\", key: \"1fpfkl\" }],\n [\"path\", { d: \"M20 7h2\", key: \"1o8tra\" }],\n [\"path\", { d: \"M7 20v2\", key: \"4gnj0m\" }],\n [\"path\", { d: \"M7 2v2\", key: \"1i4yhu\" }],\n [\"rect\", { x: \"4\", y: \"4\", width: \"16\", height: \"16\", rx: \"2\", key: \"1vbyd7\" }],\n [\"rect\", { x: \"8\", y: \"8\", width: \"8\", height: \"8\", rx: \"1\", key: \"z9xiuo\" }]\n];\nconst Cpu = createLucideIcon(\"cpu\", __iconNode);\n\nexport { __iconNode, Cpu as default };\n//# sourceMappingURL=cpu.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n key: \"sc7q7i\"\n }\n ]\n];\nconst Funnel = createLucideIcon(\"funnel\", __iconNode);\n\nexport { __iconNode, Funnel as default };\n//# sourceMappingURL=funnel.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { x: \"14\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"kaeet6\" }],\n [\"rect\", { x: \"5\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"1wsw3u\" }]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode);\n\nexport { __iconNode, Pause as default };\n//# sourceMappingURL=pause.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"vktsd0\"\n }\n ],\n [\"circle\", { cx: \"7.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"kqv944\" }]\n];\nconst Tag = createLucideIcon(\"tag\", __iconNode);\n\nexport { __iconNode, Tag as default };\n//# sourceMappingURL=tag.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 11v6\", key: \"nco0om\" }],\n [\"path\", { d: \"M14 11v6\", key: \"outv1u\" }],\n [\"path\", { d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\", key: \"miytrc\" }],\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\", key: \"e791ji\" }]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode);\n\nexport { __iconNode, Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\",\n key: \"1ngwbx\"\n }\n ]\n];\nconst Wrench = createLucideIcon(\"wrench\", __iconNode);\n\nexport { __iconNode, Wrench as default };\n//# sourceMappingURL=wrench.js.map\n","/**\n * @license lucide-react v0.552.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","// src/defaultThemes.ts\nvar defaultMarkdownTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Crimson Text\", \"Georgia\", \"Times New Roman\", serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#1a1a1a\",\n background: \"#ffffff\",\n primary: \"#007acc\",\n secondary: \"#005a9e\",\n accent: \"#1a1a1a\",\n highlight: \"#e6f4fb\",\n muted: \"#f0f0f0\",\n success: \"#28a745\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n info: \"#17a2b8\",\n border: \"#e6e6e6\",\n backgroundSecondary: \"#f8f9fa\",\n backgroundTertiary: \"#e9ecef\",\n backgroundLight: \"#f7f7f7\",\n backgroundHover: \"#f2f2f2\",\n surface: \"#ffffff\",\n textSecondary: \"#555555\",\n textTertiary: \"#888888\",\n textMuted: \"#aaaaaa\",\n highlightBg: \"#fff9c4\",\n highlightBorder: \"#fff389\",\n textOnPrimary: \"#ffffff\"\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n }\n }\n};\nvar defaultTerminalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", Courier, monospace',\n heading: '\"Courier New\", Courier, monospace',\n monospace: '\"Courier New\", Courier, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.4,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.6\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 0 5px rgba(255, 193, 7, 0.1)\",\n \"0 0 10px rgba(255, 193, 7, 0.15)\",\n \"0 0 15px rgba(255, 193, 7, 0.2)\",\n \"0 0 20px rgba(255, 193, 7, 0.25)\",\n \"0 0 30px rgba(255, 193, 7, 0.3)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#ffc107\",\n background: \"#000000\",\n primary: \"#ffc107\",\n secondary: \"#ffb300\",\n accent: \"#ffffff\",\n highlight: \"#1a1301\",\n muted: \"#1a1a1a\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"#332701\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"#080600\",\n backgroundHover: \"#0d0a00\",\n surface: \"#050505\",\n textSecondary: \"#e0e0e0\",\n textTertiary: \"#b0b0b0\",\n textMuted: \"#808080\",\n highlightBg: \"#332701\",\n highlightBorder: \"#664d03\",\n textOnPrimary: \"#000000\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar defaultEditorTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace',\n heading: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px rgba(0, 0, 0, 0.1)\",\n \"0 4px 8px rgba(0, 0, 0, 0.15)\",\n \"0 8px 16px rgba(0, 0, 0, 0.2)\",\n \"0 12px 24px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#d4d4d4\",\n background: \"#1e1e1e\",\n primary: \"#569cd6\",\n secondary: \"#408ac9\",\n accent: \"#c586c0\",\n highlight: \"#242b30\",\n muted: \"#2a2a2a\",\n success: \"#6a9955\",\n warning: \"#d18616\",\n error: \"#f44747\",\n info: \"#569cd6\",\n border: \"#343434\",\n backgroundSecondary: \"#252526\",\n backgroundTertiary: \"#333333\",\n backgroundLight: \"#252525\",\n backgroundHover: \"#292929\",\n surface: \"#252526\",\n textSecondary: \"#cccccc\",\n textTertiary: \"#999999\",\n textMuted: \"#666666\",\n highlightBg: \"#4b4724\",\n highlightBorder: \"#78702a\",\n textOnPrimary: \"#ffffff\"\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n \"&:hover\": { bg: \"secondary\" }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": { bg: \"highlight\" }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": { bg: \"backgroundHover\" }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n }\n }\n};\n// src/landingPageTheme.ts\nvar landingPageTheme = {\n space: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 100, 128],\n fonts: {\n body: 'Inter, \"Geist Sans\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n heading: '-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n monospace: '\"SF Mono\", Monaco, Inconsolata, \"Fira Code\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.2,\n tight: 1.05,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\", \"1400px\"],\n sizes: [16, 32, 64, 128, 200, 240, 256, 300, 512, 740, 768, 820, 900, 1024, 1200, 1400, 1536],\n radii: [0, 2, 4, 6, 7, 8, 9, 10, 12, 14, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 4px 12px rgba(0, 194, 255, 0.4)\",\n \"0 6px 24px rgba(0, 194, 255, 0.1)\",\n \"0 8px 32px rgba(0, 0, 0, 0.4)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50, 1000],\n colors: {\n text: \"#ffffff\",\n background: \"#000000\",\n primary: \"#00C2FF\",\n secondary: \"#0098CC\",\n accent: \"#0066FF\",\n highlight: \"#001d26\",\n muted: \"#1a1a1a\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"#002733\",\n backgroundSecondary: \"#0a1628\",\n backgroundTertiary: \"#0f1c2e\",\n backgroundLight: \"#00080a\",\n backgroundHover: \"#00131a\",\n surface: \"#000000\",\n textSecondary: \"#d1d5db\",\n textTertiary: \"#9ca3af\",\n textMuted: \"#6b7280\",\n highlightBg: \"#403b0f\",\n highlightBorder: \"#80761e\",\n textOnPrimary: \"#000000\"\n },\n buttons: {\n primary: {\n color: \"#000000\",\n bg: \"#00C2FF\",\n borderWidth: 0,\n padding: \"8px 20px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#00D9FF\"\n }\n },\n secondary: {\n color: \"#00C2FF\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"#003a4d\",\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#00131a\",\n borderColor: \"#00C2FF\"\n }\n },\n ghost: {\n color: \"#00C2FF\",\n bg: \"transparent\",\n borderWidth: 0,\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 500,\n cursor: \"pointer\",\n \"&:hover\": {\n color: \"#00D9FF\",\n bg: \"#00131a\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\",\n color: \"#ffffff\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\",\n color: \"text\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 4\n },\n secondary: {\n bg: \"#000a0d\",\n border: \"1px solid\",\n borderColor: \"#002733\",\n borderRadius: 4\n }\n }\n};\nvar landingPageLightTheme = {\n ...landingPageTheme,\n colors: {\n text: \"#1a1a1a\",\n background: \"#ffffff\",\n primary: \"#0098CC\",\n secondary: \"#00C2FF\",\n accent: \"#0066FF\",\n highlight: \"#e6f5fa\",\n muted: \"#f0f0f0\",\n success: \"#4caf50\",\n warning: \"#ff9800\",\n error: \"#f44336\",\n info: \"#2196f3\",\n border: \"#cceaf5\",\n backgroundSecondary: \"#f8f9fa\",\n backgroundTertiary: \"#e9ecef\",\n backgroundLight: \"#f7fcfd\",\n backgroundHover: \"#f2fafc\",\n surface: \"#ffffff\",\n textSecondary: \"#555555\",\n textTertiary: \"#888888\",\n textMuted: \"#aaaaaa\",\n highlightBg: \"#fff9c4\",\n highlightBorder: \"#fff389\",\n textOnPrimary: \"#ffffff\"\n },\n buttons: {\n primary: {\n color: \"#ffffff\",\n bg: \"#0098CC\",\n borderWidth: 0,\n padding: \"8px 20px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#007aa8\"\n }\n },\n secondary: {\n color: \"#0098CC\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"#b2e0f0\",\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 600,\n cursor: \"pointer\",\n \"&:hover\": {\n bg: \"#f2fafc\",\n borderColor: \"#0098CC\"\n }\n },\n ghost: {\n color: \"#0098CC\",\n bg: \"transparent\",\n borderWidth: 0,\n padding: \"8px 16px\",\n fontSize: 14,\n fontWeight: 500,\n cursor: \"pointer\",\n \"&:hover\": {\n color: \"#007aa8\",\n bg: \"#f2fafc\"\n }\n }\n }\n};\n\n// src/themes.ts\nvar regalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Crimson Text\", \"Georgia\", \"Times New Roman\", serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#f1e8dc\",\n background: \"#1a1f2e\",\n primary: \"#d4a574\",\n secondary: \"#e0b584\",\n accent: \"#c9b8a3\",\n highlight: \"#363338\",\n muted: \"#8b7968\",\n success: \"#5c8a72\",\n warning: \"#d4a574\",\n error: \"#a85751\",\n info: \"#d4a574\",\n border: \"#3f3a3c\",\n backgroundSecondary: \"#212738\",\n backgroundTertiary: \"#2d3446\",\n backgroundLight: \"#292a34\",\n backgroundHover: \"#363338\",\n surface: \"#212738\",\n textSecondary: \"#c9b8a3\",\n textTertiary: \"#8b7968\",\n textMuted: \"#8b7968\",\n highlightBg: \"#534724\",\n highlightBorder: \"#8c701a\",\n textOnPrimary: \"#1a1f2e\"\n },\n buttons: {\n primary: {\n color: \"background\",\n bg: \"primary\",\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"text\",\n bg: \"muted\",\n \"&:hover\": {\n bg: \"backgroundSecondary\"\n }\n },\n ghost: {\n color: \"primary\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"muted\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"background\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 2\n }\n }\n};\nvar terminalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace',\n heading: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace',\n monospace: '\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Code\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.4,\n relaxed: 1.8\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\n \"0 4px 6px 0 rgba(0, 0, 0, 0.07)\",\n \"0 8px 12px 0 rgba(0, 0, 0, 0.08)\",\n \"0 16px 24px 0 rgba(0, 0, 0, 0.10)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#e4e4e4\",\n background: \"#0a0a0a\",\n primary: \"#66b3ff\",\n secondary: \"#80c4ff\",\n accent: \"#66ff99\",\n highlight: \"#18283d\",\n muted: \"#1a1a1a\",\n success: \"#66ff99\",\n warning: \"#ffcc66\",\n error: \"#ff6666\",\n info: \"#66b3ff\",\n border: \"#1a1a1a\",\n backgroundSecondary: \"#0f0f0f\",\n backgroundTertiary: \"#141414\",\n backgroundLight: \"#0d0d0d\",\n backgroundHover: \"#0d1520\",\n surface: \"#0f0f0f\",\n textSecondary: \"#b3b3b3\",\n textTertiary: \"#808080\",\n textMuted: \"#666666\",\n highlightBg: \"#40391e\",\n highlightBorder: \"#7f7530\",\n textOnPrimary: \"#ffffff\"\n },\n modes: {\n light: {\n text: \"#1a1a1a\",\n background: \"#ffffff\",\n primary: \"#0066cc\",\n secondary: \"#0052a3\",\n accent: \"#00cc88\",\n highlight: \"#e6f2ff\",\n muted: \"#f5f5f5\",\n success: \"#00cc88\",\n warning: \"#ffaa00\",\n error: \"#ff3333\",\n info: \"#0066cc\",\n border: \"#e6e6e6\",\n backgroundSecondary: \"#fafafa\",\n backgroundTertiary: \"#f5f5f5\",\n backgroundLight: \"#fafafa\",\n backgroundHover: \"#f5f9fd\",\n surface: \"#ffffff\",\n textSecondary: \"#666666\",\n textTertiary: \"#999999\",\n textMuted: \"#b3b3b3\",\n highlightBg: \"#fff9c4\",\n highlightBorder: \"#fff389\"\n }\n },\n buttons: {\n primary: {\n color: \"white\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"highlight\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 1\n }\n }\n};\nvar matrixTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n heading: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n monospace: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 0 5px rgba(0, 216, 53, 0.15)\",\n \"0 0 10px rgba(0, 216, 53, 0.2)\",\n \"0 0 15px rgba(0, 216, 53, 0.25)\",\n \"0 0 20px rgba(0, 216, 53, 0.3)\",\n \"0 0 30px rgba(0, 216, 53, 0.4)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#a8a8a8\",\n background: \"#000000\",\n primary: \"#00d835\",\n secondary: \"#00a828\",\n accent: \"#00d835\",\n highlight: \"#002008\",\n muted: \"#0a0a0a\",\n success: \"#00d835\",\n warning: \"#d4a000\",\n error: \"#d63333\",\n info: \"#00a8d6\",\n border: \"#002b0b\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"#000602\",\n backgroundHover: \"#001104\",\n surface: \"#050505\",\n textSecondary: \"#808080\",\n textTertiary: \"#606060\",\n textMuted: \"#484848\",\n highlightBg: \"#00360d\",\n highlightBorder: \"#006c1b\",\n textOnPrimary: \"#000000\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"highlight\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar matrixMinimalTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n heading: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace',\n monospace: '\"Courier New\", \"Courier\", \"Lucida Console\", \"Monaco\", monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 500,\n bold: 600,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.5,\n heading: 1.2,\n tight: 1.3,\n relaxed: 1.7\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n \"0 2px 4px rgba(0, 0, 0, 0.1)\",\n \"0 4px 8px rgba(0, 0, 0, 0.15)\",\n \"0 8px 16px rgba(0, 0, 0, 0.2)\",\n \"0 0 20px rgba(0, 216, 53, 0.1)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#a8a8a8\",\n background: \"#000000\",\n primary: \"#b8b8b8\",\n secondary: \"#909090\",\n accent: \"#00d835\",\n highlight: \"#001605\",\n muted: \"#0a0a0a\",\n success: \"#00d835\",\n warning: \"#d4a000\",\n error: \"#d63333\",\n info: \"#00a8d6\",\n border: \"#121212\",\n backgroundSecondary: \"#0a0a0a\",\n backgroundTertiary: \"#111111\",\n backgroundLight: \"#040404\",\n backgroundHover: \"#000b03\",\n surface: \"#050505\",\n textSecondary: \"#808080\",\n textTertiary: \"#606060\",\n textMuted: \"#484848\",\n highlightBg: \"#002b0b\",\n highlightBorder: \"#005615\",\n textOnPrimary: \"#000000\"\n },\n buttons: {\n primary: {\n color: \"black\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"secondary\"\n }\n },\n secondary: {\n color: \"primary\",\n bg: \"transparent\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"primary\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n },\n ghost: {\n color: \"text\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textSecondary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 0\n }\n }\n};\nvar slateTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n heading: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n monospace: '\"Fira Code\", \"SF Mono\", Monaco, Inconsolata, monospace'\n },\n fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n fontScale: 1,\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 600\n },\n lineHeights: {\n body: 1.6,\n heading: 1.3,\n tight: 1.25,\n relaxed: 1.75\n },\n breakpoints: [\"640px\", \"768px\", \"1024px\", \"1280px\"],\n sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],\n radii: [0, 2, 4, 6, 8, 12, 16, 24],\n shadows: [\n \"none\",\n \"0 1px 3px 0 rgba(0, 0, 0, 0.2)\",\n \"0 4px 6px -1px rgba(0, 0, 0, 0.2)\",\n \"0 10px 15px -3px rgba(0, 0, 0, 0.2)\",\n \"0 20px 25px -5px rgba(0, 0, 0, 0.25)\",\n \"0 25px 50px -12px rgba(0, 0, 0, 0.3)\"\n ],\n zIndices: [0, 1, 10, 20, 30, 40, 50],\n colors: {\n text: \"#9ca3af\",\n background: \"#1a1c1e\",\n primary: \"#d1d5db\",\n secondary: \"#6b7280\",\n accent: \"#f59e0b\",\n highlight: \"#353838\",\n muted: \"#2d3134\",\n success: \"#10b981\",\n warning: \"#f59e0b\",\n error: \"#ef4444\",\n info: \"#3b82f6\",\n border: \"#2d3034\",\n backgroundSecondary: \"#22252a\",\n backgroundTertiary: \"#2d3134\",\n backgroundLight: \"#202325\",\n backgroundHover: \"#27292c\",\n surface: \"#1f2124\",\n textSecondary: \"#e5e7eb\",\n textTertiary: \"#6b7280\",\n textMuted: \"#4b5563\",\n highlightBg: \"#513c19\",\n highlightBorder: \"#875d14\",\n textOnPrimary: \"#1a1c1e\"\n },\n buttons: {\n primary: {\n color: \"#1a1c1e\",\n bg: \"primary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"#9ca3af\"\n }\n },\n secondary: {\n color: \"#e5e7eb\",\n bg: \"secondary\",\n borderWidth: 0,\n \"&:hover\": {\n bg: \"#4b5563\"\n }\n },\n ghost: {\n color: \"textSecondary\",\n bg: \"transparent\",\n \"&:hover\": {\n bg: \"backgroundHover\"\n }\n }\n },\n text: {\n heading: {\n fontFamily: \"heading\",\n fontWeight: \"heading\",\n lineHeight: \"heading\",\n color: \"textSecondary\"\n },\n body: {\n fontFamily: \"body\",\n fontWeight: \"body\",\n lineHeight: \"body\"\n },\n caption: {\n fontSize: 1,\n color: \"textTertiary\"\n }\n },\n cards: {\n primary: {\n bg: \"surface\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n },\n secondary: {\n bg: \"backgroundSecondary\",\n border: \"1px solid\",\n borderColor: \"border\",\n borderRadius: 3\n }\n }\n};\n// src/ThemeProvider.tsx\nimport React, { createContext, useContext, useState, useEffect } from \"react\";\n\n// src/themeHelpers.ts\nfunction overrideColors(theme, colors) {\n return {\n ...theme,\n colors: {\n ...theme.colors,\n ...colors\n }\n };\n}\nfunction makeTheme(baseTheme, overrides) {\n return {\n ...baseTheme,\n ...overrides,\n colors: {\n ...baseTheme.colors,\n ...overrides.colors\n },\n fonts: {\n ...baseTheme.fonts,\n ...overrides.fonts\n }\n };\n}\nfunction addMode(theme, modeName, colors, baseMode) {\n let baseColors;\n if (baseMode && theme.modes && theme.modes[baseMode]) {\n baseColors = {\n ...theme.colors,\n ...theme.modes[baseMode]\n };\n } else {\n baseColors = theme.colors;\n }\n const newMode = {\n ...baseColors,\n ...colors\n };\n return {\n ...theme,\n modes: {\n ...theme.modes,\n [modeName]: newMode\n }\n };\n}\nfunction getMode(theme, mode) {\n if (!mode || !theme.modes || !theme.modes[mode]) {\n return theme.colors;\n }\n return {\n ...theme.colors,\n ...theme.modes[mode]\n };\n}\n\n// src/ThemeProvider.tsx\nvar ThemeContext;\nvar getThemeContext = () => {\n if (typeof window !== \"undefined\") {\n const globalWindow = window;\n if (!globalWindow.__principlemd_theme_context__) {\n globalWindow.__principlemd_theme_context__ = createContext(undefined);\n }\n return globalWindow.__principlemd_theme_context__;\n } else {\n if (!ThemeContext) {\n ThemeContext = createContext(undefined);\n }\n return ThemeContext;\n }\n};\nvar ThemeContextSingleton = getThemeContext();\nvar useTheme = () => {\n const context = useContext(ThemeContextSingleton);\n if (!context) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\nvar ThemeProvider = ({\n children,\n theme: customTheme = theme,\n initialMode\n}) => {\n const [mode, setMode] = useState(initialMode);\n const activeTheme = React.useMemo(() => {\n if (!mode || !customTheme.modes || !customTheme.modes[mode]) {\n return customTheme;\n }\n return {\n ...customTheme,\n colors: getMode(customTheme, mode)\n };\n }, [customTheme, mode]);\n useEffect(() => {\n if (!initialMode) {\n const savedMode = localStorage.getItem(\"principlemd-theme-mode\");\n if (savedMode) {\n setMode(savedMode);\n }\n }\n }, [initialMode]);\n useEffect(() => {\n if (mode) {\n localStorage.setItem(\"principlemd-theme-mode\", mode);\n } else {\n localStorage.removeItem(\"principlemd-theme-mode\");\n }\n }, [mode]);\n const value = {\n theme: activeTheme,\n mode,\n setMode\n };\n return /* @__PURE__ */ React.createElement(ThemeContextSingleton.Provider, {\n value\n }, children);\n};\nvar withTheme = (Component) => {\n return (props) => {\n const { theme: theme2 } = useTheme();\n return /* @__PURE__ */ React.createElement(Component, {\n ...props,\n theme: theme2\n });\n };\n};\n// src/utils.ts\nvar getColor = (theme2, colorKey) => {\n const colors = theme2.colors;\n const value = colors[colorKey];\n return typeof value === \"string\" ? value : colorKey;\n};\nvar getSpace = (theme2, index) => {\n return theme2.space[index] || 0;\n};\nvar getFontSize = (theme2, index) => {\n return theme2.fontSizes[index] || theme2.fontSizes[2];\n};\nvar getRadius = (theme2, index) => {\n return theme2.radii[index] || 0;\n};\nvar getShadow = (theme2, index) => {\n return theme2.shadows[index] || \"none\";\n};\nvar getZIndex = (theme2, index) => {\n return theme2.zIndices[index] || 0;\n};\nvar responsive = (values) => {\n return values.reduce((acc, value, index) => {\n if (index === 0) {\n return value;\n }\n return {\n ...acc,\n [`@media screen and (min-width: ${values[index - 1]})`]: value\n };\n }, {});\n};\nvar sx = (styles) => styles;\nvar createStyle = (theme2, styleObj) => {\n const processValue = (value) => {\n if (typeof value === \"string\") {\n if (value in theme2.colors) {\n return getColor(theme2, value);\n }\n return value;\n }\n if (typeof value === \"number\") {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(processValue);\n }\n if (typeof value === \"object\" && value !== null) {\n const processed2 = {};\n for (const [key, val] of Object.entries(value)) {\n processed2[key] = processValue(val);\n }\n return processed2;\n }\n return value;\n };\n const processed = {};\n for (const [key, val] of Object.entries(styleObj)) {\n processed[key] = processValue(val);\n }\n return processed;\n};\nvar mergeThemes = (baseTheme, ...overrides) => {\n return overrides.reduce((theme2, override) => ({\n space: override.space || theme2.space,\n fonts: { ...theme2.fonts, ...override.fonts || {} },\n fontSizes: override.fontSizes || theme2.fontSizes,\n fontWeights: { ...theme2.fontWeights, ...override.fontWeights || {} },\n lineHeights: { ...theme2.lineHeights, ...override.lineHeights || {} },\n breakpoints: override.breakpoints || theme2.breakpoints,\n sizes: override.sizes || theme2.sizes,\n radii: override.radii || theme2.radii,\n shadows: override.shadows || theme2.shadows,\n zIndices: override.zIndices || theme2.zIndices,\n colors: {\n ...theme2.colors,\n ...override.colors || {}\n },\n buttons: { ...theme2.buttons, ...override.buttons || {} },\n text: { ...theme2.text, ...override.text || {} },\n cards: { ...theme2.cards, ...override.cards || {} }\n }), baseTheme);\n};\n// src/ThemeShowcase.tsx\nimport React2 from \"react\";\nvar ThemeShowcase = ({\n theme: theme2,\n title,\n showValues = true,\n sections = [\"colors\", \"typography\", \"spacing\", \"shadows\", \"radii\"]\n}) => {\n const containerStyle = {\n fontFamily: theme2.fonts.body,\n color: theme2.colors.text,\n backgroundColor: theme2.colors.background,\n padding: theme2.space[4],\n minHeight: \"100vh\"\n };\n const sectionStyle = {\n marginBottom: theme2.space[5],\n padding: theme2.space[4],\n backgroundColor: theme2.colors.surface || theme2.colors.backgroundSecondary,\n borderRadius: theme2.radii[2],\n border: `1px solid ${theme2.colors.border}`\n };\n const headingStyle = {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[5],\n fontWeight: theme2.fontWeights.heading,\n marginBottom: theme2.space[3],\n color: theme2.colors.primary\n };\n const subheadingStyle = {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[3],\n fontWeight: theme2.fontWeights.medium,\n marginBottom: theme2.space[2],\n marginTop: theme2.space[3],\n color: theme2.colors.text\n };\n return /* @__PURE__ */ React2.createElement(\"div\", {\n style: containerStyle\n }, title && /* @__PURE__ */ React2.createElement(\"h1\", {\n style: {\n ...headingStyle,\n fontSize: theme2.fontSizes[6],\n marginBottom: theme2.space[4]\n }\n }, title), sections.includes(\"colors\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Colors\"), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Primary Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3],\n marginBottom: theme2.space[3]\n }\n }, [\"text\", \"background\", \"primary\", \"secondary\", \"accent\", \"muted\"].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme2.space[2],\n backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 40,\n height: 40,\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1],\n marginRight: theme2.space[2]\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", null, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, color)));\n })), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Status Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3],\n marginBottom: theme2.space[3]\n }\n }, [\"success\", \"warning\", \"error\", \"info\"].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme2.space[2],\n backgroundColor: theme2.colors.backgroundLight || theme2.colors.backgroundTertiary,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 40,\n height: 40,\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1],\n marginRight: theme2.space[2]\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", null, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, color)));\n })), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Background Colors\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: theme2.space[3]\n }\n }, [\n \"backgroundSecondary\",\n \"backgroundTertiary\",\n \"backgroundLight\",\n \"backgroundHover\",\n \"surface\"\n ].map((key) => {\n const color = theme2.colors[key];\n if (!color)\n return null;\n return /* @__PURE__ */ React2.createElement(\"div\", {\n key,\n style: {\n padding: theme2.space[3],\n backgroundColor: color,\n border: `1px solid ${theme2.colors.border}`,\n borderRadius: theme2.radii[1]\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n fontWeight: theme2.fontWeights.medium\n }\n }, key), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary,\n marginTop: theme2.space[1]\n }\n }, color));\n }))), sections.includes(\"typography\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Typography\"), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Families\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { marginBottom: theme2.space[4] }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.heading,\n fontSize: theme2.fontSizes[4],\n marginBottom: theme2.space[2]\n }\n }, \"Heading Font:\", \" \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.heading)), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[2],\n marginBottom: theme2.space[2]\n }\n }, \"Body Font:\", \" \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.body)), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[2]\n }\n }, \"Monospace Font:\", \" \", showValues && /* @__PURE__ */ React2.createElement(\"span\", {\n style: {\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \" \", theme2.fonts.monospace))), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Sizes\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { marginBottom: theme2.space[4] }\n }, theme2.fontSizes.map((size, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: {\n fontSize: size,\n lineHeight: theme2.lineHeights.body,\n marginBottom: theme2.space[1]\n }\n }, \"Size \", index, \": Sample Text \", showValues && `(${size}px)`))), /* @__PURE__ */ React2.createElement(\"h3\", {\n style: subheadingStyle\n }, \"Font Weights\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(150px, 1fr))\",\n gap: theme2.space[2]\n }\n }, Object.entries(theme2.fontWeights).map(([name, weight]) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: name,\n style: {\n fontWeight: weight,\n fontSize: theme2.fontSizes[2]\n }\n }, name, \" \", showValues && `(${weight})`)))), sections.includes(\"spacing\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Spacing\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: { display: \"flex\", flexDirection: \"column\", gap: theme2.space[2] }\n }, theme2.space.map((space, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { display: \"flex\", alignItems: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 60,\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, \"[\", index, \"]\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n height: 24,\n width: space,\n backgroundColor: theme2.colors.primary,\n borderRadius: theme2.radii[1]\n }\n }), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n marginLeft: theme2.space[2],\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[1],\n color: theme2.colors.textSecondary\n }\n }, space, \"px\"))))), sections.includes(\"radii\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Border Radii\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(100px, 1fr))\",\n gap: theme2.space[3]\n }\n }, theme2.radii.map((radius, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { textAlign: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 80,\n height: 80,\n backgroundColor: theme2.colors.primary,\n borderRadius: radius,\n marginBottom: theme2.space[1],\n margin: \"0 auto\"\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, \"[\", index, \"] \", showValues && `${radius}px`))))), sections.includes(\"shadows\") && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Shadows\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(150px, 1fr))\",\n gap: theme2.space[4]\n }\n }, theme2.shadows.map((shadow, index) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: index,\n style: { textAlign: \"center\" }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n width: 100,\n height: 100,\n backgroundColor: theme2.colors.background,\n boxShadow: shadow,\n borderRadius: theme2.radii[2],\n margin: \"0 auto\",\n marginBottom: theme2.space[2],\n border: `1px solid ${theme2.colors.border}`\n }\n }), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textSecondary\n }\n }, \"Shadow [\", index, \"]\"), showValues && /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n fontFamily: theme2.fonts.monospace,\n fontSize: theme2.fontSizes[0],\n color: theme2.colors.textMuted,\n marginTop: theme2.space[1]\n }\n }, shadow === \"none\" ? \"none\" : \"...\"))))), theme2.modes && Object.keys(theme2.modes).length > 0 && /* @__PURE__ */ React2.createElement(\"div\", {\n style: sectionStyle\n }, /* @__PURE__ */ React2.createElement(\"h2\", {\n style: headingStyle\n }, \"Available Modes\"), /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n display: \"flex\",\n gap: theme2.space[2],\n flexWrap: \"wrap\"\n }\n }, /* @__PURE__ */ React2.createElement(\"div\", {\n style: {\n padding: `${theme2.space[2]}px ${theme2.space[3]}px`,\n backgroundColor: theme2.colors.primary,\n color: \"#ffffff\",\n borderRadius: theme2.radii[2],\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[1]\n }\n }, \"default\"), Object.keys(theme2.modes).map((modeName) => /* @__PURE__ */ React2.createElement(\"div\", {\n key: modeName,\n style: {\n padding: `${theme2.space[2]}px ${theme2.space[3]}px`,\n backgroundColor: theme2.colors.secondary,\n color: theme2.colors.text,\n borderRadius: theme2.radii[2],\n fontFamily: theme2.fonts.body,\n fontSize: theme2.fontSizes[1]\n }\n }, modeName)))));\n};\n\n// src/index.ts\nvar theme = terminalTheme;\nfunction scaleThemeFonts(theme2, scale) {\n const currentScale = theme2.fontScale || 1;\n const effectiveScale = scale / currentScale;\n return {\n ...theme2,\n fontSizes: theme2.fontSizes.map((size) => Math.round(size * effectiveScale)),\n fontScale: scale\n };\n}\nfunction increaseFontScale(theme2) {\n const currentScale = theme2.fontScale || 1;\n const newScale = Math.min(currentScale * 1.1, 2);\n return scaleThemeFonts(theme2, newScale);\n}\nfunction decreaseFontScale(theme2) {\n const currentScale = theme2.fontScale || 1;\n const newScale = Math.max(currentScale * 0.9, 0.5);\n return scaleThemeFonts(theme2, newScale);\n}\nfunction resetFontScale(theme2) {\n return scaleThemeFonts(theme2, 1);\n}\nvar src_default = theme;\nexport {\n withTheme,\n useTheme,\n theme,\n terminalTheme,\n sx,\n slateTheme,\n scaleThemeFonts,\n responsive,\n resetFontScale,\n regalTheme,\n overrideColors,\n mergeThemes,\n matrixTheme,\n matrixMinimalTheme,\n makeTheme,\n landingPageTheme,\n landingPageLightTheme,\n increaseFontScale,\n getZIndex,\n getSpace,\n getShadow,\n getRadius,\n getMode,\n getFontSize,\n getColor,\n defaultTerminalTheme,\n defaultMarkdownTheme,\n defaultEditorTheme,\n src_default as default,\n decreaseFontScale,\n createStyle,\n addMode,\n ThemeShowcase,\n ThemeProvider\n};\n","import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { Activity, Pause, Play, Trash2, Filter, ChevronDown, ChevronRight, X } from 'lucide-react';\nimport { ThemeProvider, useTheme } from '@principal-ade/industry-theme';\nimport type {\n EventBusPanelPropsTyped,\n PanelEvent,\n PanelEventEmitter,\n} from '../types';\n\ninterface CapturedEvent {\n id: number;\n event: PanelEvent;\n expanded: boolean;\n}\n\ninterface EventBusPanelContentProps extends EventBusPanelPropsTyped {\n maxEvents?: number;\n}\n\nconst EventBusPanelContent: React.FC<EventBusPanelContentProps> = ({\n events,\n maxEvents = 200,\n}) => {\n const [capturedEvents, setCapturedEvents] = useState<CapturedEvent[]>([]);\n const [isPaused, setIsPaused] = useState(false);\n const [filterType, setFilterType] = useState('');\n const [filterSource, setFilterSource] = useState('');\n const [showFilters, setShowFilters] = useState(false);\n const eventIdRef = useRef(0);\n const listRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const isPausedRef = useRef(isPaused);\n const [isNarrow, setIsNarrow] = useState(false);\n const { theme } = useTheme();\n\n // Track container width for responsive layout\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width || 0;\n setIsNarrow(width < 400);\n });\n\n observer.observe(container);\n return () => observer.disconnect();\n }, []);\n\n // Keep ref in sync with state\n useEffect(() => {\n isPausedRef.current = isPaused;\n }, [isPaused]);\n\n // Subscribe to all events\n useEffect(() => {\n // Cast to our extended type that includes onAll\n const extendedEvents = events as PanelEventEmitter;\n if (!extendedEvents?.onAll) return;\n\n const unsubscribe = extendedEvents.onAll((event: PanelEvent) => {\n if (isPausedRef.current) return;\n\n const id = ++eventIdRef.current;\n setCapturedEvents((prev) => {\n const newEvents = [...prev, { id, event, expanded: false }];\n // Keep only the last maxEvents\n if (newEvents.length > maxEvents) {\n return newEvents.slice(-maxEvents);\n }\n return newEvents;\n });\n });\n\n return unsubscribe;\n }, [events, maxEvents]);\n\n // Auto-scroll to bottom when new events arrive\n useEffect(() => {\n if (!isPaused && listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, [capturedEvents, isPaused]);\n\n const toggleExpanded = useCallback((id: number) => {\n setCapturedEvents((prev) =>\n prev.map((e) => (e.id === id ? { ...e, expanded: !e.expanded } : e))\n );\n }, []);\n\n const clearEvents = useCallback(() => {\n setCapturedEvents([]);\n }, []);\n\n const clearFilters = useCallback(() => {\n setFilterType('');\n setFilterSource('');\n }, []);\n\n const hasActiveFilters = filterType || filterSource;\n\n // Filter events\n const filteredEvents = capturedEvents.filter((e) => {\n if (filterType && !e.event.type.toLowerCase().includes(filterType.toLowerCase())) {\n return false;\n }\n if (filterSource && !e.event.source.toLowerCase().includes(filterSource.toLowerCase())) {\n return false;\n }\n return true;\n });\n\n // Get unique event types and sources for filter hints\n const uniqueTypes = [...new Set(capturedEvents.map((e) => e.event.type))];\n const uniqueSources = [...new Set(capturedEvents.map((e) => e.event.source))];\n\n const getEventTypeColor = (type: string): string => {\n if (type.startsWith('panel:')) return theme.colors.primary;\n if (type.startsWith('file:')) return theme.colors.success;\n if (type.startsWith('repository:')) return theme.colors.info;\n if (type.startsWith('gemini:') || type.startsWith('ai:')) return theme.colors.warning;\n if (type.includes('error')) return theme.colors.error;\n return theme.colors.textSecondary;\n };\n\n const formatTimestamp = (ts: number): string => {\n const date = new Date(ts);\n const time = date.toLocaleTimeString('en-US', {\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n const ms = String(date.getMilliseconds()).padStart(3, '0');\n return isNarrow ? `${time.slice(3)}` : `${time}.${ms}`;\n };\n\n const formatPayload = (payload: unknown): string => {\n try {\n return JSON.stringify(payload, null, 2);\n } catch {\n return String(payload);\n }\n };\n\n // Compact button style for narrow views\n const buttonStyle = {\n padding: isNarrow ? '6px 8px' : '6px 12px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n cursor: 'pointer',\n fontSize: theme.fontSizes[1],\n whiteSpace: 'nowrap' as const,\n };\n\n return (\n <div\n ref={containerRef}\n style={{\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n fontFamily: theme.fonts.body,\n backgroundColor: theme.colors.background,\n color: theme.colors.text,\n minWidth: 0,\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: isNarrow ? '8px 12px' : '12px 16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n flexShrink: 0,\n minWidth: 0,\n }}\n >\n <Activity size={isNarrow ? 16 : 20} color={theme.colors.primary} style={{ flexShrink: 0 }} />\n {!isNarrow && (\n <h2\n style={{\n margin: 0,\n fontSize: theme.fontSizes[3],\n fontWeight: theme.fontWeights.semibold,\n whiteSpace: 'nowrap',\n }}\n >\n Event Bus\n </h2>\n )}\n <span\n style={{\n marginLeft: 'auto',\n fontSize: theme.fontSizes[1],\n color: theme.colors.textMuted,\n whiteSpace: 'nowrap',\n }}\n >\n {filteredEvents.length}{!isNarrow && ` / ${capturedEvents.length}`}\n </span>\n </div>\n\n {/* Controls */}\n <div\n style={{\n padding: isNarrow ? '6px 8px' : '8px 16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n flexShrink: 0,\n flexWrap: 'wrap',\n }}\n >\n {/* Pause/Resume */}\n <button\n onClick={() => setIsPaused(!isPaused)}\n style={{\n ...buttonStyle,\n border: `1px solid ${isPaused ? theme.colors.warning : theme.colors.border}`,\n background: isPaused ? theme.colors.warning : theme.colors.surface,\n color: isPaused ? theme.colors.background : theme.colors.text,\n }}\n title={isPaused ? 'Resume' : 'Pause'}\n >\n {isPaused ? <Play size={14} /> : <Pause size={14} />}\n {!isNarrow && (isPaused ? 'Resume' : 'Pause')}\n </button>\n\n {/* Clear */}\n <button\n onClick={clearEvents}\n style={buttonStyle}\n title=\"Clear events\"\n >\n <Trash2 size={14} />\n {!isNarrow && 'Clear'}\n </button>\n\n {/* Spacer */}\n <div style={{ flex: 1, minWidth: '8px' }} />\n\n {/* Filter Toggle (narrow) or Inline Filters (wide) */}\n {isNarrow ? (\n <button\n onClick={() => setShowFilters(!showFilters)}\n style={{\n ...buttonStyle,\n border: `1px solid ${hasActiveFilters ? theme.colors.primary : theme.colors.border}`,\n background: hasActiveFilters ? `${theme.colors.primary}20` : theme.colors.surface,\n }}\n title=\"Toggle filters\"\n >\n <Filter size={14} color={hasActiveFilters ? theme.colors.primary : theme.colors.textMuted} />\n {hasActiveFilters && (\n <span style={{\n width: '6px',\n height: '6px',\n borderRadius: '50%',\n background: theme.colors.primary\n }} />\n )}\n </button>\n ) : (\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <Filter size={14} color={theme.colors.textMuted} />\n <input\n type=\"text\"\n placeholder=\"Type...\"\n value={filterType}\n onChange={(e) => setFilterType(e.target.value)}\n list=\"event-types\"\n style={{\n padding: '4px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100px',\n minWidth: 0,\n }}\n />\n <datalist id=\"event-types\">\n {uniqueTypes.map((type) => (\n <option key={type} value={type} />\n ))}\n </datalist>\n <input\n type=\"text\"\n placeholder=\"Source...\"\n value={filterSource}\n onChange={(e) => setFilterSource(e.target.value)}\n list=\"event-sources\"\n style={{\n padding: '4px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100px',\n minWidth: 0,\n }}\n />\n <datalist id=\"event-sources\">\n {uniqueSources.map((source) => (\n <option key={source} value={source} />\n ))}\n </datalist>\n {hasActiveFilters && (\n <button\n onClick={clearFilters}\n style={{\n ...buttonStyle,\n padding: '4px 6px',\n }}\n title=\"Clear filters\"\n >\n <X size={12} />\n </button>\n )}\n </div>\n )}\n </div>\n\n {/* Expanded Filters (narrow view) */}\n {isNarrow && showFilters && (\n <div\n style={{\n padding: '8px',\n borderBottom: `1px solid ${theme.colors.border}`,\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n background: theme.colors.backgroundSecondary,\n }}\n >\n <input\n type=\"text\"\n placeholder=\"Filter by type...\"\n value={filterType}\n onChange={(e) => setFilterType(e.target.value)}\n list=\"event-types-narrow\"\n style={{\n padding: '6px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100%',\n }}\n />\n <datalist id=\"event-types-narrow\">\n {uniqueTypes.map((type) => (\n <option key={type} value={type} />\n ))}\n </datalist>\n <input\n type=\"text\"\n placeholder=\"Filter by source...\"\n value={filterSource}\n onChange={(e) => setFilterSource(e.target.value)}\n list=\"event-sources-narrow\"\n style={{\n padding: '6px 8px',\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radii[1],\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: theme.fontSizes[1],\n width: '100%',\n }}\n />\n <datalist id=\"event-sources-narrow\">\n {uniqueSources.map((source) => (\n <option key={source} value={source} />\n ))}\n </datalist>\n {hasActiveFilters && (\n <button\n onClick={clearFilters}\n style={{\n ...buttonStyle,\n justifyContent: 'center',\n width: '100%',\n }}\n >\n <X size={12} />\n Clear Filters\n </button>\n )}\n </div>\n )}\n\n {/* Event List */}\n <div\n ref={listRef}\n style={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n padding: isNarrow ? '4px' : '8px',\n fontFamily: theme.fonts.monospace,\n fontSize: theme.fontSizes[1],\n }}\n >\n {filteredEvents.length === 0 ? (\n <div\n style={{\n padding: '24px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n }}\n >\n {capturedEvents.length === 0\n ? 'Waiting for events...'\n : 'No events match your filter'}\n </div>\n ) : (\n filteredEvents.map((captured) => (\n <div\n key={captured.id}\n style={{\n marginBottom: '4px',\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n background: theme.colors.surface,\n overflow: 'hidden',\n }}\n >\n {/* Event Header */}\n <div\n onClick={() => toggleExpanded(captured.id)}\n style={{\n padding: isNarrow ? '6px 8px' : '8px 12px',\n display: 'flex',\n alignItems: 'flex-start',\n gap: '6px',\n cursor: 'pointer',\n userSelect: 'none',\n flexWrap: isNarrow ? 'wrap' : 'nowrap',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px', flexShrink: 0 }}>\n {captured.expanded ? (\n <ChevronDown size={14} color={theme.colors.textMuted} />\n ) : (\n <ChevronRight size={14} color={theme.colors.textMuted} />\n )}\n <span style={{ color: theme.colors.textMuted, fontSize: theme.fontSizes[0] }}>\n {formatTimestamp(captured.event.timestamp)}\n </span>\n </div>\n <div style={{\n flex: 1,\n minWidth: 0,\n display: 'flex',\n flexDirection: isNarrow ? 'column' : 'row',\n alignItems: isNarrow ? 'flex-start' : 'center',\n gap: isNarrow ? '2px' : '6px',\n }}>\n <span\n style={{\n color: getEventTypeColor(captured.event.type),\n fontWeight: theme.fontWeights.medium,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '100%',\n }}\n title={captured.event.type}\n >\n {captured.event.type}\n </span>\n {!isNarrow && <span style={{ color: theme.colors.textMuted }}>from</span>}\n <span\n style={{\n color: theme.colors.info,\n fontSize: isNarrow ? theme.fontSizes[0] : theme.fontSizes[1],\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n title={captured.event.source}\n >\n {isNarrow ? `← ${captured.event.source}` : captured.event.source}\n </span>\n </div>\n </div>\n\n {/* Expanded Payload */}\n {captured.expanded && (\n <div\n style={{\n padding: isNarrow ? '6px 8px' : '8px 12px',\n borderTop: `1px solid ${theme.colors.border}`,\n background: theme.colors.background,\n overflow: 'auto',\n maxHeight: '200px',\n }}\n >\n <pre\n style={{\n margin: 0,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n color: theme.colors.textSecondary,\n fontSize: theme.fontSizes[0],\n }}\n >\n {formatPayload(captured.event.payload)}\n </pre>\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Status Bar */}\n {isPaused && (\n <div\n style={{\n padding: isNarrow ? '6px 12px' : '8px 16px',\n borderTop: `1px solid ${theme.colors.warning}`,\n background: `${theme.colors.warning}20`,\n color: theme.colors.warning,\n fontSize: theme.fontSizes[1],\n textAlign: 'center',\n flexShrink: 0,\n }}\n >\n ⏸ {isNarrow ? 'Paused' : 'Event capture paused'}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * EventBusPanel - Real-time event bus monitor\n *\n * Displays all events flowing through the PanelEventBus, with:\n * - Real-time streaming event list\n * - Pause/Resume capture\n * - Filter by event type and source\n * - Expandable payload inspection\n * - Color-coded event types\n * - Responsive layout for narrow panels\n */\nexport const EventBusPanel: React.FC<EventBusPanelPropsTyped> = (props) => {\n return (\n <ThemeProvider>\n <EventBusPanelContent {...props} />\n </ThemeProvider>\n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Wrench,\n ChevronDown,\n ChevronRight,\n FileText,\n Cpu,\n Tag,\n} from 'lucide-react';\nimport { ThemeProvider, useTheme } from '@principal-ade/industry-theme';\nimport type { AgentToolsPanelPropsTyped, PanelTool } from '../types';\nimport type { AgentConfig } from '../types/agent-config';\n\ninterface AgentToolsPanelContentProps extends AgentToolsPanelPropsTyped {\n /** Agent configuration to display */\n agentConfig?: AgentConfig;\n}\n\n/**\n * Renders a capability badge\n */\nconst CapabilityBadge: React.FC<{ name: string; enabled: boolean; compact?: boolean }> = ({\n name,\n enabled,\n compact,\n}) => {\n const { theme } = useTheme();\n if (!enabled) return null;\n\n const formatName = (n: string) =>\n n.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase());\n\n return (\n <span\n style={{\n padding: compact ? '1px 6px' : '2px 8px',\n fontSize: theme.fontSizes[0],\n borderRadius: theme.radii[1],\n background: `${theme.colors.primary}20`,\n color: theme.colors.primary,\n border: `1px solid ${theme.colors.primary}40`,\n whiteSpace: 'nowrap',\n }}\n >\n {formatName(name)}\n </span>\n );\n};\n\n/**\n * Renders the JSON schema in a readable format\n */\nconst SchemaView: React.FC<{ schema: Record<string, unknown>; label: string }> = ({\n schema,\n label,\n}) => {\n const { theme } = useTheme();\n\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <div style={{ color: theme.colors.textMuted, fontStyle: 'italic', fontSize: theme.fontSizes[0] }}>\n No {label.toLowerCase()} schema defined\n </div>\n );\n }\n\n return (\n <div>\n <div\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n marginBottom: '4px',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n }}\n >\n {label}\n </div>\n <pre\n style={{\n margin: 0,\n padding: '6px 8px',\n background: theme.colors.background,\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[0],\n fontFamily: theme.fonts.monospace,\n color: theme.colors.textSecondary,\n overflow: 'auto',\n maxHeight: '150px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n }}\n >\n {JSON.stringify(schema, null, 2)}\n </pre>\n </div>\n );\n};\n\n/**\n * Renders a single tool item\n */\nconst ToolItem: React.FC<{ tool: PanelTool; index: number; isNarrow: boolean }> = ({\n tool,\n index,\n isNarrow,\n}) => {\n const [expanded, setExpanded] = useState(false);\n const { theme } = useTheme();\n\n return (\n <div\n style={{\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n background: theme.colors.surface,\n overflow: 'hidden',\n }}\n >\n {/* Tool Header */}\n <div\n onClick={() => setExpanded(!expanded)}\n style={{\n padding: isNarrow ? '8px 10px' : '12px',\n display: 'flex',\n alignItems: 'flex-start',\n gap: '6px',\n cursor: 'pointer',\n userSelect: 'none',\n }}\n >\n {expanded ? (\n <ChevronDown size={14} color={theme.colors.textMuted} style={{ marginTop: '2px', flexShrink: 0 }} />\n ) : (\n <ChevronRight size={14} color={theme.colors.textMuted} style={{ marginTop: '2px', flexShrink: 0 }} />\n )}\n\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n flexWrap: 'wrap',\n }}>\n <span\n style={{\n fontFamily: theme.fonts.monospace,\n fontWeight: theme.fontWeights.medium,\n color: theme.colors.text,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n wordBreak: 'break-word',\n }}\n >\n {tool.name}\n </span>\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n background: theme.colors.backgroundSecondary,\n padding: '1px 5px',\n borderRadius: theme.radii[0],\n flexShrink: 0,\n }}\n >\n #{index + 1}\n </span>\n </div>\n <div\n style={{\n fontSize: isNarrow ? theme.fontSizes[0] : theme.fontSizes[1],\n color: theme.colors.textSecondary,\n marginTop: '4px',\n lineHeight: 1.4,\n }}\n >\n {tool.description}\n </div>\n\n {/* Tags */}\n {tool.tags && tool.tags.length > 0 && (\n <div\n style={{\n display: 'flex',\n gap: '4px',\n marginTop: '6px',\n flexWrap: 'wrap',\n }}\n >\n {tool.tags.slice(0, isNarrow ? 3 : undefined).map((tag) => (\n <span\n key={tag}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n padding: '1px 5px',\n fontSize: theme.fontSizes[0],\n background: theme.colors.backgroundSecondary,\n color: theme.colors.textMuted,\n borderRadius: theme.radii[0],\n }}\n >\n <Tag size={8} />\n {tag}\n </span>\n ))}\n {isNarrow && tool.tags.length > 3 && (\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n }}\n >\n +{tool.tags.length - 3}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n\n {/* Expanded Content */}\n {expanded && (\n <div\n style={{\n padding: isNarrow ? '8px 10px' : '12px',\n borderTop: `1px solid ${theme.colors.border}`,\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n }}\n >\n <SchemaView\n schema={tool.inputs as Record<string, unknown>}\n label=\"Input Schema\"\n />\n <SchemaView\n schema={tool.outputs as Record<string, unknown>}\n label=\"Output Schema\"\n />\n </div>\n )}\n </div>\n );\n};\n\ntype TabId = 'prompt' | 'tools';\n\nconst AgentToolsPanelContent: React.FC<AgentToolsPanelContentProps> = ({\n agentConfig,\n}) => {\n const { theme } = useTheme();\n const containerRef = useRef<HTMLDivElement>(null);\n const [isNarrow, setIsNarrow] = useState(false);\n const [activeTab, setActiveTab] = useState<TabId>('prompt');\n\n // Track container width for responsive layout\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width || 0;\n setIsNarrow(width < 350);\n });\n\n observer.observe(container);\n return () => observer.disconnect();\n }, []);\n\n // Default/empty state\n const config: AgentConfig = agentConfig || {\n id: 'no-agent',\n name: 'No Agent Loaded',\n description: 'Connect an agent to view its tools and configuration.',\n tools: [],\n };\n\n const tools = config.tools || [];\n const capabilities = config.capabilities || {};\n const enabledCapabilities = Object.entries(capabilities).filter(\n ([, enabled]) => enabled\n );\n\n return (\n <div\n ref={containerRef}\n style={{\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n fontFamily: theme.fonts.body,\n backgroundColor: theme.colors.background,\n color: theme.colors.text,\n minWidth: 0,\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: isNarrow ? '12px' : '16px',\n borderBottom: `1px solid ${theme.colors.border}`,\n flexShrink: 0,\n }}\n >\n {/* Agent Identity - Icon, Name/Version */}\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: isNarrow ? '8px' : '12px',\n }}>\n <div\n style={{\n width: isNarrow ? '32px' : '40px',\n height: isNarrow ? '32px' : '40px',\n borderRadius: theme.radii[2],\n background: theme.colors.primary,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: isNarrow ? '16px' : '20px',\n flexShrink: 0,\n color: theme.colors.background,\n }}\n >\n {config.icon || <Cpu size={isNarrow ? 16 : 20} color={theme.colors.background} />}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <h2\n style={{\n margin: 0,\n fontSize: isNarrow ? theme.fontSizes[3] : theme.fontSizes[4],\n fontWeight: theme.fontWeights.semibold,\n wordBreak: 'break-word',\n }}\n >\n {config.name}\n </h2>\n {config.version && (\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n }}\n >\n v{config.version}\n </span>\n )}\n </div>\n </div>\n\n {/* Description */}\n <p\n style={{\n margin: '8px 0 0 0',\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n color: theme.colors.textSecondary,\n lineHeight: 1.4,\n }}\n >\n {config.description}\n </p>\n\n {/* Capabilities */}\n {enabledCapabilities.length > 0 && (\n <div\n style={{\n display: 'flex',\n gap: '4px',\n marginTop: '10px',\n flexWrap: 'wrap',\n }}\n >\n {enabledCapabilities.map(([name, enabled]) => (\n <CapabilityBadge key={name} name={name} enabled={!!enabled} compact={isNarrow} />\n ))}\n </div>\n )}\n </div>\n\n {/* Tabs */}\n <div\n style={{\n display: 'flex',\n borderBottom: `1px solid ${theme.colors.border}`,\n flexShrink: 0,\n }}\n >\n <button\n onClick={() => setActiveTab('prompt')}\n style={{\n flex: 1,\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: 'transparent',\n border: 'none',\n borderBottom: activeTab === 'prompt' ? `2px solid ${theme.colors.primary}` : '2px solid transparent',\n color: activeTab === 'prompt' ? theme.colors.text : theme.colors.textMuted,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n fontWeight: theme.fontWeights.medium,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '6px',\n fontFamily: theme.fonts.body,\n }}\n >\n <FileText size={14} />\n Prompt\n </button>\n <button\n onClick={() => setActiveTab('tools')}\n style={{\n flex: 1,\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: 'transparent',\n border: 'none',\n borderBottom: activeTab === 'tools' ? `2px solid ${theme.colors.primary}` : '2px solid transparent',\n color: activeTab === 'tools' ? theme.colors.text : theme.colors.textMuted,\n fontSize: isNarrow ? theme.fontSizes[1] : theme.fontSizes[2],\n fontWeight: theme.fontWeights.medium,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '6px',\n fontFamily: theme.fonts.body,\n }}\n >\n <Wrench size={14} />\n Tools\n <span\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n background: theme.colors.backgroundSecondary,\n padding: '1px 5px',\n borderRadius: theme.radii[0],\n }}\n >\n {tools.length}\n </span>\n </button>\n </div>\n\n {/* Tab Content */}\n <div\n style={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n }}\n >\n {activeTab === 'prompt' && (\n <div\n style={{\n padding: isNarrow ? '12px' : '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n }}\n >\n {/* Instructions / System Prompt */}\n {config.instructions ? (\n <div\n style={{\n fontSize: theme.fontSizes[1],\n color: theme.colors.textSecondary,\n lineHeight: 1.6,\n whiteSpace: 'pre-wrap',\n fontFamily: theme.fonts.body,\n }}\n >\n {config.instructions}\n </div>\n ) : (\n <div\n style={{\n padding: '20px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n fontSize: theme.fontSizes[1],\n }}\n >\n No system prompt defined\n </div>\n )}\n\n {/* System Prompt Reference */}\n {config.systemPromptRef && (\n <div\n style={{\n padding: isNarrow ? '8px 12px' : '10px 16px',\n background: theme.colors.surface,\n borderRadius: theme.radii[1],\n border: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[1],\n }}\n >\n <div\n style={{\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n marginBottom: '4px',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n }}\n >\n Source\n </div>\n <div\n style={{\n fontFamily: theme.fonts.monospace,\n color: theme.colors.text,\n wordBreak: 'break-all',\n }}\n >\n {config.systemPromptRef.uri}\n </div>\n {config.systemPromptRef.label && (\n <div\n style={{\n marginTop: '4px',\n color: theme.colors.textMuted,\n }}\n >\n {config.systemPromptRef.label}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {activeTab === 'tools' && (\n <div\n style={{\n padding: isNarrow ? '8px' : '12px 16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n }}\n >\n {tools.length === 0 ? (\n <div\n style={{\n padding: '20px 12px',\n textAlign: 'center',\n color: theme.colors.textMuted,\n fontSize: theme.fontSizes[1],\n }}\n >\n No tools defined\n </div>\n ) : (\n tools.map((tool, index) => (\n <ToolItem key={tool.name} tool={tool} index={index} isNarrow={isNarrow} />\n ))\n )}\n </div>\n )}\n </div>\n\n {/* Footer with ID */}\n <div\n style={{\n padding: isNarrow ? '6px 12px' : '8px 16px',\n borderTop: `1px solid ${theme.colors.border}`,\n fontSize: theme.fontSizes[0],\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.monospace,\n flexShrink: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n title={config.id}\n >\n {config.id}\n </div>\n </div>\n );\n};\n\n/**\n * AgentToolsPanel - Displays agent configuration and available tools\n *\n * Shows:\n * - Agent identity (name, description, version, icon)\n * - Capabilities badges\n * - Link to system prompt\n * - Instructions preview\n * - List of tools with expandable input/output schemas\n * - Responsive layout for narrow panels\n */\nexport const AgentToolsPanel: React.FC<AgentToolsPanelContentProps> = (props) => {\n return (\n <ThemeProvider>\n <AgentToolsPanelContent {...props} />\n </ThemeProvider>\n );\n};\n","import { EventBusPanel } from './panels/EventBusPanel';\nimport { AgentToolsPanel } from './panels/AgentToolsPanel';\nimport type { PanelDefinition } from '@principal-ade/panel-framework-core';\n\n/**\n * Export array of panel definitions.\n * This is the required export for panel extensions.\n */\nexport const panels: PanelDefinition<any, any>[] = [\n {\n metadata: {\n id: 'industry-theme.event-bus-panel',\n name: 'Event Bus',\n icon: 'radio',\n version: '0.1.0',\n author: 'Industry Theme',\n description: 'Real-time event bus monitor showing all events flowing through the panel system',\n slices: [],\n tools: [],\n },\n component: EventBusPanel,\n },\n {\n metadata: {\n id: 'industry-theme.agent-tools-panel',\n name: 'Agent Tools',\n icon: 'wrench',\n version: '0.1.0',\n author: 'Industry Theme',\n description: 'Displays agent configuration, capabilities, and available tools with their schemas',\n slices: [],\n tools: [],\n },\n component: AgentToolsPanel,\n },\n];\n\n/**\n * Optional: Called once when the entire package is loaded.\n */\nexport const onPackageLoad = async () => {\n // eslint-disable-next-line no-console\n console.log('Agent Driven UI Panels loaded');\n};\n\n/**\n * Optional: Called once when the package is unloaded.\n */\nexport const onPackageUnload = async () => {\n // eslint-disable-next-line no-console\n console.log('Agent Driven UI Panels unloading');\n};\n\n// Re-export panel components for direct imports\nexport { EventBusPanel } from './panels/EventBusPanel';\nexport { AgentToolsPanel } from './panels/AgentToolsPanel';\n\n// Re-export agent config types\nexport type {\n AgentConfig,\n AgentInfo,\n AgentSkill,\n AgentCapabilities,\n AgentProvider,\n ResourceRef,\n} from './types';\n"],"names":["__iconNode","theme","React","Filter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}
@@ -4,7 +4,7 @@
4
4
  * Re-exports core types from @principal-ade/panel-framework-core
5
5
  */
6
6
  export type { DataSlice, WorkspaceMetadata, RepositoryMetadata, FileTreeSource, ActiveFileSlice, PanelEventType, PanelEvent, PanelActions, PanelContextValue, PanelComponentProps, PanelMetadata, PanelLifecycleHooks, PanelDefinition, PanelModule, PanelRegistryEntry, PanelLoader, PanelRegistryConfig, PanelTool, PanelToolsMetadata, JsonSchema, PanelEventCallTemplate, } from '@principal-ade/panel-framework-core';
7
- import type { PanelEvent, PanelEventEmitter as BasePanelEventEmitter } from '@principal-ade/panel-framework-core';
7
+ import type { PanelEvent, PanelEventEmitter as BasePanelEventEmitter, PanelActions as CorePanelActions, PanelComponentProps as CorePanelComponentProps } from '@principal-ade/panel-framework-core';
8
8
  /**
9
9
  * Extended PanelEventEmitter with wildcard subscription support.
10
10
  * The core PanelEventBus class implements these methods, but the
@@ -16,5 +16,21 @@ export interface PanelEventEmitter extends BasePanelEventEmitter {
16
16
  /** Unsubscribe from wildcard handler */
17
17
  offAll?<T>(handler: (event: PanelEvent<T>) => void): void;
18
18
  }
19
+ /**
20
+ * Empty context for panels that don't use any data slices
21
+ * These panels rely purely on events for communication
22
+ */
23
+ export interface EmptyPanelContext {
24
+ }
25
+ /**
26
+ * Typed props for EventBusPanel
27
+ * No slices needed - uses only the event emitter
28
+ */
29
+ export type EventBusPanelPropsTyped = CorePanelComponentProps<CorePanelActions, EmptyPanelContext>;
30
+ /**
31
+ * Typed props for AgentToolsPanel
32
+ * No slices needed - receives agent config via props
33
+ */
34
+ export type AgentToolsPanelPropsTyped = CorePanelComponentProps<CorePanelActions, EmptyPanelContext>;
19
35
  export type { AgentConfig, AgentInfo, AgentSkill, AgentCapabilities, AgentProvider, ResourceRef, } from './agent-config';
20
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAEV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EAGf,cAAc,EACd,UAAU,EAGV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EAGnB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,WAAW,EAGX,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EAGnB,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,IAAI,qBAAqB,EAC3C,MAAM,qCAAqC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,yCAAyC;IACzC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,wCAAwC;IACxC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAGD,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAEV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EAGf,cAAc,EACd,UAAU,EAGV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EAGnB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,WAAW,EAGX,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EAGnB,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,qCAAqC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,yCAAyC;IACzC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,wCAAwC;IACxC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;CAAG;AAErC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAC3D,gBAAgB,EAChB,iBAAiB,CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAC7D,gBAAgB,EAChB,iBAAiB,CAClB,CAAC;AAGF,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/agent-driven-ui-panels",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Agent-driven UI panels for displaying system prompts, event bus activity, and other agent internals",
5
5
  "type": "module",
6
6
  "main": "dist/panels.bundle.js",
@@ -52,8 +52,8 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@principal-ade/industry-theme": "^0.1.2",
56
- "@principal-ade/panel-framework-core": "^0.1.5",
55
+ "@principal-ade/industry-theme": "^0.1.7",
56
+ "@principal-ade/panel-framework-core": "^0.4.2",
57
57
  "@principal-ade/utcp-panel-event": "^0.1.0",
58
58
  "clsx": "^2.1.1",
59
59
  "lucide-react": "^0.552.0"