@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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/panels/AgentToolsPanel.d.ts +2 -2
- package/dist/panels/AgentToolsPanel.d.ts.map +1 -1
- package/dist/panels/EventBusPanel.d.ts +2 -2
- package/dist/panels/EventBusPanel.d.ts.map +1 -1
- package/dist/panels.bundle.js +29 -28
- package/dist/panels.bundle.js.map +1 -1
- package/dist/types/index.d.ts +17 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { PanelDefinition } from '
|
|
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
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
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 {
|
|
2
|
+
import type { AgentToolsPanelPropsTyped } from '../types';
|
|
3
3
|
import type { AgentConfig } from '../types/agent-config';
|
|
4
|
-
interface AgentToolsPanelContentProps extends
|
|
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,
|
|
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 {
|
|
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<
|
|
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,
|
|
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"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -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: "
|
|
315
|
+
background: "#0a0a0a",
|
|
316
316
|
primary: "#66b3ff",
|
|
317
317
|
secondary: "#80c4ff",
|
|
318
318
|
accent: "#66ff99",
|
|
319
|
-
highlight: "
|
|
320
|
-
muted: "
|
|
319
|
+
highlight: "#18283d",
|
|
320
|
+
muted: "#1a1a1a",
|
|
321
321
|
success: "#66ff99",
|
|
322
322
|
warning: "#ffcc66",
|
|
323
323
|
error: "#ff6666",
|
|
324
324
|
info: "#66b3ff",
|
|
325
|
-
border: "
|
|
326
|
-
backgroundSecondary: "
|
|
327
|
-
backgroundTertiary: "
|
|
328
|
-
backgroundLight: "
|
|
329
|
-
backgroundHover: "
|
|
330
|
-
surface: "
|
|
331
|
-
textSecondary: "
|
|
332
|
-
textTertiary: "
|
|
333
|
-
textMuted: "
|
|
334
|
-
highlightBg: "
|
|
335
|
-
highlightBorder: "
|
|
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: "
|
|
341
|
+
background: "#ffffff",
|
|
341
342
|
primary: "#0066cc",
|
|
342
343
|
secondary: "#0052a3",
|
|
343
344
|
accent: "#00cc88",
|
|
344
|
-
highlight: "
|
|
345
|
-
muted: "
|
|
345
|
+
highlight: "#e6f2ff",
|
|
346
|
+
muted: "#f5f5f5",
|
|
346
347
|
success: "#00cc88",
|
|
347
348
|
warning: "#ffaa00",
|
|
348
349
|
error: "#ff3333",
|
|
349
350
|
info: "#0066cc",
|
|
350
|
-
border: "
|
|
351
|
-
backgroundSecondary: "
|
|
352
|
-
backgroundTertiary: "
|
|
353
|
-
backgroundLight: "
|
|
354
|
-
backgroundHover: "
|
|
355
|
-
surface: "
|
|
356
|
-
textSecondary: "
|
|
357
|
-
textTertiary: "
|
|
358
|
-
textMuted: "
|
|
359
|
-
highlightBg: "
|
|
360
|
-
highlightBorder: "
|
|
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]}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
56
|
-
"@principal-ade/panel-framework-core": "^0.
|
|
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"
|