@truefoundry/trueforge-ui 0.3.0-rc.0 → 0.3.0-rc.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.
Files changed (110) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +14 -6
  3. package/dist/AgentCodeSnippets-NZOFJE57.js +74 -0
  4. package/dist/AgentCodeSnippets-NZOFJE57.js.map +1 -0
  5. package/dist/AgentMetricChart-JPU3MFQ2.js +15 -0
  6. package/dist/AgentOverview-EEBHJC32.js +167 -0
  7. package/dist/AgentOverview-EEBHJC32.js.map +1 -0
  8. package/dist/AgentSessionEventTimeline-26Z6IB3B.js +79 -0
  9. package/dist/AgentSessionEventTimeline-26Z6IB3B.js.map +1 -0
  10. package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js +504 -0
  11. package/dist/AgentSessionEventTimelineChart-CGCU7WBK.js.map +1 -0
  12. package/dist/AgentSessions-3MPDZASK.js +275 -0
  13. package/dist/AgentSessions-3MPDZASK.js.map +1 -0
  14. package/dist/{ConnectorSettings-FXQ5B7TN.js → ConnectorSettings-MXFRWWR6.js} +8 -6
  15. package/dist/{ConnectorSettings-FXQ5B7TN.js.map → ConnectorSettings-MXFRWWR6.js.map} +1 -1
  16. package/dist/{DockLayout-LBNQJZNF.js → DockLayout-LM4AFMFY.js} +11 -10
  17. package/dist/{DockLayout-LBNQJZNF.js.map → DockLayout-LM4AFMFY.js.map} +1 -1
  18. package/dist/DrawerLayout-JR3O6RRB.js +184 -0
  19. package/dist/DrawerLayout-JR3O6RRB.js.map +1 -0
  20. package/dist/{ModelSettings-4L4LOQJA.js → ModelSettings-G7IFNC2Y.js} +8 -6
  21. package/dist/{ModelSettings-4L4LOQJA.js.map → ModelSettings-G7IFNC2Y.js.map} +1 -1
  22. package/dist/OpenUiFenceBlock-2TV5TQ6P.js +9 -0
  23. package/dist/OpenUiFenceBlock-2TV5TQ6P.js.map +1 -0
  24. package/dist/{SandboxSettings-Z4ZG6ZX4.js → SandboxSettings-NXAANMAX.js} +8 -6
  25. package/dist/{SandboxSettings-Z4ZG6ZX4.js.map → SandboxSettings-NXAANMAX.js.map} +1 -1
  26. package/dist/SchedulesPage-KKLUDO6B.js +15 -0
  27. package/dist/SchedulesPage-KKLUDO6B.js.map +1 -0
  28. package/dist/{SettingsBuilder-WF7ZWKQW.js → SettingsBuilder-L34IQ56S.js} +26 -22
  29. package/dist/SettingsBuilder-L34IQ56S.js.map +1 -0
  30. package/dist/{ShellRouteSync-T4WLY57Q.js → ShellRouteSync-CEBETGEJ.js} +95 -22
  31. package/dist/ShellRouteSync-CEBETGEJ.js.map +1 -0
  32. package/dist/SidebarLayout-A2HJPPHS.js +308 -0
  33. package/dist/SidebarLayout-A2HJPPHS.js.map +1 -0
  34. package/dist/{SkillSettings-3EPPC3IT.js → SkillSettings-FGGMSUNO.js} +8 -6
  35. package/dist/{SkillSettings-3EPPC3IT.js.map → SkillSettings-FGGMSUNO.js.map} +1 -1
  36. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js → TrueForgeUIWithRouter-MZVJWJMB.js} +14 -10
  37. package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js.map → TrueForgeUIWithRouter-MZVJWJMB.js.map} +1 -1
  38. package/dist/{WidgetLayout-3QZ357FL.js → WidgetLayout-6QM45OQQ.js} +17 -13
  39. package/dist/WidgetLayout-6QM45OQQ.js.map +1 -0
  40. package/dist/chunk-2XPPBEYF.js +74 -0
  41. package/dist/chunk-2XPPBEYF.js.map +1 -0
  42. package/dist/chunk-6O6FWUDW.js +1376 -0
  43. package/dist/chunk-6O6FWUDW.js.map +1 -0
  44. package/dist/chunk-7Z2C2K7F.js +578 -0
  45. package/dist/chunk-7Z2C2K7F.js.map +1 -0
  46. package/dist/{chunk-WREC7D54.js → chunk-CYHJDKFB.js} +115 -32
  47. package/dist/chunk-CYHJDKFB.js.map +1 -0
  48. package/dist/chunk-DJUFS2BW.js +27 -0
  49. package/dist/chunk-DJUFS2BW.js.map +1 -0
  50. package/dist/chunk-DMMZSZTN.js +252 -0
  51. package/dist/chunk-DMMZSZTN.js.map +1 -0
  52. package/dist/chunk-FJW36PD7.js +180 -0
  53. package/dist/chunk-FJW36PD7.js.map +1 -0
  54. package/dist/chunk-M62XY4NC.js +555 -0
  55. package/dist/chunk-M62XY4NC.js.map +1 -0
  56. package/dist/{chunk-B52K63AW.js → chunk-MPNSO7E6.js} +2 -2
  57. package/dist/{chunk-CFLVPV5M.js → chunk-QC42MLAK.js} +7 -2
  58. package/dist/chunk-QC42MLAK.js.map +1 -0
  59. package/dist/chunk-RDXBMTP5.js +32 -0
  60. package/dist/chunk-RDXBMTP5.js.map +1 -0
  61. package/dist/chunk-SFZNIO6U.js +18 -0
  62. package/dist/chunk-SFZNIO6U.js.map +1 -0
  63. package/dist/chunk-U7KURWW3.js +840 -0
  64. package/dist/chunk-U7KURWW3.js.map +1 -0
  65. package/dist/chunk-WVE3F724.js +200 -0
  66. package/dist/chunk-WVE3F724.js.map +1 -0
  67. package/dist/{chunk-FJ5RSSMA.js → chunk-XAU7QFG3.js} +178 -36
  68. package/dist/chunk-XAU7QFG3.js.map +1 -0
  69. package/dist/chunk-Y6S4OVVQ.js +16 -0
  70. package/dist/chunk-Y6S4OVVQ.js.map +1 -0
  71. package/dist/chunk-ZKNUMH2M.js +119 -0
  72. package/dist/chunk-ZKNUMH2M.js.map +1 -0
  73. package/dist/chunk-ZTMKFZQ3.js +13214 -0
  74. package/dist/chunk-ZTMKFZQ3.js.map +1 -0
  75. package/dist/{createTrueFoundryServer-B72bU-J7.d.ts → createTrueFoundryServer-CmZnBh_l.d.ts} +15 -4
  76. package/dist/index.d.ts +1002 -22
  77. package/dist/index.js +689 -67
  78. package/dist/index.js.map +1 -1
  79. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +552 -8
  80. package/dist/plugins/trueforge-agent-server-adapter/index.js +503 -188
  81. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  82. package/dist/styles.css +1 -1
  83. package/package.json +8 -7
  84. package/dist/DrawerLayout-Q6UK4VMI.js +0 -159
  85. package/dist/DrawerLayout-Q6UK4VMI.js.map +0 -1
  86. package/dist/OpenUiFenceBlock-6UIIAVBX.js +0 -9
  87. package/dist/SettingsBuilder-WF7ZWKQW.js.map +0 -1
  88. package/dist/ShellRouteSync-T4WLY57Q.js.map +0 -1
  89. package/dist/SidebarLayout-3WZ3CVON.js +0 -256
  90. package/dist/SidebarLayout-3WZ3CVON.js.map +0 -1
  91. package/dist/WidgetLayout-3QZ357FL.js.map +0 -1
  92. package/dist/chunk-36KOSC2J.js +0 -567
  93. package/dist/chunk-36KOSC2J.js.map +0 -1
  94. package/dist/chunk-3S6KHO7H.js +0 -2121
  95. package/dist/chunk-3S6KHO7H.js.map +0 -1
  96. package/dist/chunk-7L63OK3O.js +0 -91
  97. package/dist/chunk-7L63OK3O.js.map +0 -1
  98. package/dist/chunk-CFLVPV5M.js.map +0 -1
  99. package/dist/chunk-FJ5RSSMA.js.map +0 -1
  100. package/dist/chunk-OSV3HI5M.js +0 -6891
  101. package/dist/chunk-OSV3HI5M.js.map +0 -1
  102. package/dist/chunk-WQULF5AT.js +0 -460
  103. package/dist/chunk-WQULF5AT.js.map +0 -1
  104. package/dist/chunk-WREC7D54.js.map +0 -1
  105. package/dist/chunk-YIWUG6MC.js +0 -101
  106. package/dist/chunk-YIWUG6MC.js.map +0 -1
  107. package/dist/chunk-ZXOADNF3.js +0 -75
  108. package/dist/chunk-ZXOADNF3.js.map +0 -1
  109. /package/dist/{OpenUiFenceBlock-6UIIAVBX.js.map → AgentMetricChart-JPU3MFQ2.js.map} +0 -0
  110. /package/dist/{chunk-B52K63AW.js.map → chunk-MPNSO7E6.js.map} +0 -0
@@ -1,101 +0,0 @@
1
- // src/routing/paths.ts
2
- var DEFAULTS = {
3
- root: "/",
4
- settings: "/settings",
5
- agent: "/agents/:agentName",
6
- session: "/sessions/:sessionId"
7
- };
8
- function normalizePath(path) {
9
- const trimmed = path.trim();
10
- const withLead = trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
11
- return withLead.length > 1 && withLead.endsWith("/") ? withLead.slice(0, -1) : withLead;
12
- }
13
- function resolveOptional(value, fallback) {
14
- if (value === false) return null;
15
- return normalizePath(value ?? fallback);
16
- }
17
- function resolveRoutesConfig(routes) {
18
- const paths = routes?.paths;
19
- return {
20
- basename: routes?.basename ?? "",
21
- root: normalizePath(paths?.root ?? DEFAULTS.root),
22
- settings: resolveOptional(paths?.settings, DEFAULTS.settings),
23
- agent: resolveOptional(paths?.agent, DEFAULTS.agent),
24
- session: resolveOptional(paths?.session, DEFAULTS.session)
25
- };
26
- }
27
- function splitSegments(path) {
28
- return path.split("/").filter((segment) => segment.length > 0);
29
- }
30
- function fillTemplate(template, value) {
31
- return "/" + splitSegments(template).map((segment) => segment.startsWith(":") ? encodeURIComponent(value) : segment).join("/");
32
- }
33
- function buildPath(place, routes) {
34
- switch (place.type) {
35
- case "root":
36
- return routes.root;
37
- case "settings":
38
- return routes.settings;
39
- case "agent":
40
- return routes.agent == null ? null : fillTemplate(routes.agent, place.agentName);
41
- case "session":
42
- return routes.session == null ? null : fillTemplate(routes.session, place.sessionId);
43
- }
44
- }
45
- function decodeSegment(segment) {
46
- try {
47
- return decodeURIComponent(segment);
48
- } catch {
49
- return null;
50
- }
51
- }
52
- function matchTemplate(template, segments) {
53
- const templateSegments = splitSegments(template);
54
- if (templateSegments.length !== segments.length) return null;
55
- let param = null;
56
- for (const [i, tpl] of templateSegments.entries()) {
57
- const seg = segments[i];
58
- if (seg === void 0) return null;
59
- if (tpl.startsWith(":")) {
60
- const decoded = decodeSegment(seg);
61
- if (decoded == null) return null;
62
- param = decoded;
63
- } else if (tpl !== seg) {
64
- return null;
65
- }
66
- }
67
- return param;
68
- }
69
- function matchPath(pathname, routes) {
70
- const normalized = normalizePath(pathname);
71
- const segments = splitSegments(normalized);
72
- if (routes.settings != null && normalized === routes.settings) {
73
- return { type: "settings" };
74
- }
75
- if (routes.agent != null) {
76
- const agentName = matchTemplate(routes.agent, segments);
77
- if (agentName != null) return { type: "agent", agentName };
78
- }
79
- if (routes.session != null) {
80
- const sessionId = matchTemplate(routes.session, segments);
81
- if (sessionId != null) return { type: "session", sessionId };
82
- }
83
- if (normalized === routes.root) {
84
- return { type: "root" };
85
- }
86
- return null;
87
- }
88
- function placesEqual(a, b) {
89
- if (a.type !== b.type) return false;
90
- if (a.type === "agent" && b.type === "agent") return a.agentName === b.agentName;
91
- if (a.type === "session" && b.type === "session") return a.sessionId === b.sessionId;
92
- return true;
93
- }
94
-
95
- export {
96
- resolveRoutesConfig,
97
- buildPath,
98
- matchPath,
99
- placesEqual
100
- };
101
- //# sourceMappingURL=chunk-YIWUG6MC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routing/paths.ts"],"sourcesContent":["import type { ResolvedRoutes, RoutePlace, RoutesConfig } from './types.js';\n\nconst DEFAULTS = {\n root: '/',\n settings: '/settings',\n agent: '/agents/:agentName',\n session: '/sessions/:sessionId',\n} as const;\n\nfunction normalizePath(path: string): string {\n const trimmed = path.trim();\n const withLead = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n // Drop a trailing slash except for the root itself.\n return withLead.length > 1 && withLead.endsWith('/') ? withLead.slice(0, -1) : withLead;\n}\n\nfunction resolveOptional(value: string | false | undefined, fallback: string): string | null {\n if (value === false) return null;\n return normalizePath(value ?? fallback);\n}\n\nexport function resolveRoutesConfig(routes?: RoutesConfig): ResolvedRoutes {\n const paths = routes?.paths;\n return {\n basename: routes?.basename ?? '',\n root: normalizePath(paths?.root ?? DEFAULTS.root),\n settings: resolveOptional(paths?.settings, DEFAULTS.settings),\n agent: resolveOptional(paths?.agent, DEFAULTS.agent),\n session: resolveOptional(paths?.session, DEFAULTS.session),\n };\n}\n\nfunction splitSegments(path: string): string[] {\n return path.split('/').filter(segment => segment.length > 0);\n}\n\n/** Fill a single-param template (`/agents/:agentName`) with an encoded value. */\nfunction fillTemplate(template: string, value: string): string {\n return (\n '/' +\n splitSegments(template)\n .map(segment => (segment.startsWith(':') ? encodeURIComponent(value) : segment))\n .join('/')\n );\n}\n\n/** Build the URL path for a place, or `null` when that place has no configured route. */\nexport function buildPath(place: RoutePlace, routes: ResolvedRoutes): string | null {\n switch (place.type) {\n case 'root':\n return routes.root;\n case 'settings':\n return routes.settings;\n case 'agent':\n return routes.agent == null ? null : fillTemplate(routes.agent, place.agentName);\n case 'session':\n return routes.session == null ? null : fillTemplate(routes.session, place.sessionId);\n }\n}\n\n/** Percent-decode a segment; `null` when the URL carries a malformed escape. */\nfunction decodeSegment(segment: string): string | null {\n try {\n return decodeURIComponent(segment);\n } catch {\n return null;\n }\n}\n\n/** Match a single-param template against concrete segments; returns the decoded param or null. */\nfunction matchTemplate(template: string, segments: string[]): string | null {\n const templateSegments = splitSegments(template);\n if (templateSegments.length !== segments.length) return null;\n let param: string | null = null;\n for (const [i, tpl] of templateSegments.entries()) {\n const seg = segments[i];\n if (seg === undefined) return null;\n if (tpl.startsWith(':')) {\n // A malformed escape is an unusable id, so the path simply does not match.\n const decoded = decodeSegment(seg);\n if (decoded == null) return null;\n param = decoded;\n } else if (tpl !== seg) {\n return null;\n }\n }\n return param;\n}\n\n/** Parse a (basename-relative) pathname into a place, or `null` when unrecognized. */\nexport function matchPath(pathname: string, routes: ResolvedRoutes): RoutePlace | null {\n const normalized = normalizePath(pathname);\n const segments = splitSegments(normalized);\n\n if (routes.settings != null && normalized === routes.settings) {\n return { type: 'settings' };\n }\n if (routes.agent != null) {\n const agentName = matchTemplate(routes.agent, segments);\n if (agentName != null) return { type: 'agent', agentName };\n }\n if (routes.session != null) {\n const sessionId = matchTemplate(routes.session, segments);\n if (sessionId != null) return { type: 'session', sessionId };\n }\n if (normalized === routes.root) {\n return { type: 'root' };\n }\n return null;\n}\n\nexport function placesEqual(a: RoutePlace, b: RoutePlace): boolean {\n if (a.type !== b.type) return false;\n if (a.type === 'agent' && b.type === 'agent') return a.agentName === b.agentName;\n if (a.type === 'session' && b.type === 'session') return a.sessionId === b.sessionId;\n return true;\n}\n"],"mappings":"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","names":[]}
@@ -1,75 +0,0 @@
1
- import {
2
- Tooltip,
3
- useNamedAgentHeaderState,
4
- useSlot
5
- } from "./chunk-OSV3HI5M.js";
6
- import {
7
- Icon,
8
- auiButtonClass
9
- } from "./chunk-FJ5RSSMA.js";
10
- import {
11
- useOptionalCatalogServer,
12
- useOptionalShellMode,
13
- useServerCapabilities
14
- } from "./chunk-WQULF5AT.js";
15
- import {
16
- cn,
17
- useTheme
18
- } from "./chunk-36KOSC2J.js";
19
-
20
- // src/atoms/NamedAgentHeaderLabel.tsx
21
- import { jsx, jsxs } from "react/jsx-runtime";
22
- function NamedAgentHeaderLabel({ className }) {
23
- const state = useNamedAgentHeaderState();
24
- if (state === null) return null;
25
- return /* @__PURE__ */ jsxs("h1", { className: cn("flex min-w-0 items-center gap-1.5 px-1 text-sm font-medium text-text-primary", className), children: [
26
- /* @__PURE__ */ jsx(Icon, { name: "robot", className: "size-3.5 shrink-0" }),
27
- /* @__PURE__ */ jsx("span", { className: "truncate", title: state.name, children: state.name }),
28
- state.isEditing ? /* @__PURE__ */ jsx(Tooltip, { content: "Try changes here, then choose Update agent to save.", side: "bottom", children: /* @__PURE__ */ jsxs("span", { className: "border-warning-bg/40 bg-warning-bg/10 text-warning-bg inline-flex shrink-0 items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium", children: [
29
- /* @__PURE__ */ jsx(Icon, { name: "pencil", className: "size-3" }),
30
- "Editing"
31
- ] }) }) : null
32
- ] });
33
- }
34
-
35
- // src/atoms/ShellActions.tsx
36
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
37
- function ShellActions({ className }) {
38
- const shell = useOptionalShellMode();
39
- const catalog = useOptionalCatalogServer();
40
- const capabilities = useServerCapabilities();
41
- const { mode, setTheme } = useTheme();
42
- const ActionSlot = useSlot("ShellActionsActionSlot");
43
- return /* @__PURE__ */ jsxs2("div", { className: cn("flex shrink-0 items-center gap-1 text-text-primary", className), children: [
44
- /* @__PURE__ */ jsx2(
45
- "button",
46
- {
47
- type: "button",
48
- "aria-label": mode === "dark" ? "Switch to light theme" : "Switch to dark theme",
49
- title: mode === "dark" ? "Light theme" : "Dark theme",
50
- className: auiButtonClass({ variant: "ghost", size: "icon" }),
51
- onClick: () => setTheme(mode === "dark" ? "light" : "dark"),
52
- children: /* @__PURE__ */ jsx2(Icon, { name: mode === "dark" ? "sun" : "moon" })
53
- }
54
- ),
55
- shell != null && catalog != null && capabilities?.settings?.enabled !== false ? /* @__PURE__ */ jsx2(
56
- "button",
57
- {
58
- type: "button",
59
- "aria-label": "Settings",
60
- title: "Settings",
61
- "aria-expanded": shell.settingsOpen,
62
- className: auiButtonClass({ variant: "ghost", size: "icon" }),
63
- onClick: () => shell.setSettingsOpen(true),
64
- children: /* @__PURE__ */ jsx2(Icon, { name: "settings" })
65
- }
66
- ) : null,
67
- /* @__PURE__ */ jsx2(ActionSlot, {})
68
- ] });
69
- }
70
-
71
- export {
72
- NamedAgentHeaderLabel,
73
- ShellActions
74
- };
75
- //# sourceMappingURL=chunk-ZXOADNF3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/atoms/NamedAgentHeaderLabel.tsx","../src/atoms/ShellActions.tsx"],"sourcesContent":["'use client';\n\nimport { useNamedAgentHeaderState } from '../hooks/useChatChromeActionsVisible.js';\nimport { Icon } from '../icons/Icon.js';\nimport { cn } from './lib/cn.js';\nimport { Tooltip } from './primitives/Tooltip.js';\n\n/** Left-of-header title for a named agent, including its mutable edit state. */\nexport function NamedAgentHeaderLabel({ className }: { className?: string }) {\n const state = useNamedAgentHeaderState();\n if (state === null) return null;\n\n return (\n <h1 className={cn('flex min-w-0 items-center gap-1.5 px-1 text-sm font-medium text-text-primary', className)}>\n <Icon name=\"robot\" className=\"size-3.5 shrink-0\" />\n <span className=\"truncate\" title={state.name}>\n {state.name}\n </span>\n {state.isEditing ? (\n <Tooltip content=\"Try changes here, then choose Update agent to save.\" side=\"bottom\">\n <span className=\"border-warning-bg/40 bg-warning-bg/10 text-warning-bg inline-flex shrink-0 items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium\">\n <Icon name=\"pencil\" className=\"size-3\" />\n Editing\n </span>\n </Tooltip>\n ) : null}\n </h1>\n );\n}\n","'use client';\n\nimport { Icon } from '../icons/Icon.js';\nimport { useOptionalCatalogServer, useServerCapabilities } from '../server/ServerContext.js';\nimport { useOptionalShellMode } from '../server/ShellModeContext.js';\nimport { useSlot } from '../theme/SlotsProvider.js';\nimport { useTheme } from '../theme/ThemeProvider.js';\nimport { auiButtonClass } from './lib/buttonClasses.js';\nimport { cn } from './lib/cn.js';\n\nexport function ShellActions({ className }: { className?: string }) {\n const shell = useOptionalShellMode();\n const catalog = useOptionalCatalogServer();\n const capabilities = useServerCapabilities();\n const { mode, setTheme } = useTheme();\n const ActionSlot = useSlot('ShellActionsActionSlot');\n\n return (\n <div className={cn('flex shrink-0 items-center gap-1 text-text-primary', className)}>\n <button\n type=\"button\"\n aria-label={mode === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'}\n title={mode === 'dark' ? 'Light theme' : 'Dark theme'}\n className={auiButtonClass({ variant: 'ghost', size: 'icon' })}\n onClick={() => setTheme(mode === 'dark' ? 'light' : 'dark')}\n >\n <Icon name={mode === 'dark' ? 'sun' : 'moon'} />\n </button>\n {shell != null && catalog != null && capabilities?.settings?.enabled !== false ? (\n <button\n type=\"button\"\n aria-label=\"Settings\"\n title=\"Settings\"\n aria-expanded={shell.settingsOpen}\n className={auiButtonClass({ variant: 'ghost', size: 'icon' })}\n onClick={() => shell.setSettingsOpen(true)}\n >\n <Icon name=\"settings\" />\n </button>\n ) : null}\n <ActionSlot />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAcM,cAMI,YANJ;AANC,SAAS,sBAAsB,EAAE,UAAU,GAA2B;AAC3E,QAAM,QAAQ,yBAAyB;AACvC,MAAI,UAAU,KAAM,QAAO;AAE3B,SACE,qBAAC,QAAG,WAAW,GAAG,gFAAgF,SAAS,GACzG;AAAA,wBAAC,QAAK,MAAK,SAAQ,WAAU,qBAAoB;AAAA,IACjD,oBAAC,UAAK,WAAU,YAAW,OAAO,MAAM,MACrC,gBAAM,MACT;AAAA,IACC,MAAM,YACL,oBAAC,WAAQ,SAAQ,uDAAsD,MAAK,UAC1E,+BAAC,UAAK,WAAU,qJACd;AAAA,0BAAC,QAAK,MAAK,UAAS,WAAU,UAAS;AAAA,MAAE;AAAA,OAE3C,GACF,IACE;AAAA,KACN;AAEJ;;;ACVI,SAQI,OAAAA,MARJ,QAAAC,aAAA;AARG,SAAS,aAAa,EAAE,UAAU,GAA2B;AAClE,QAAM,QAAQ,qBAAqB;AACnC,QAAM,UAAU,yBAAyB;AACzC,QAAM,eAAe,sBAAsB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAI,SAAS;AACpC,QAAM,aAAa,QAAQ,wBAAwB;AAEnD,SACE,gBAAAA,MAAC,SAAI,WAAW,GAAG,sDAAsD,SAAS,GAChF;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY,SAAS,SAAS,0BAA0B;AAAA,QACxD,OAAO,SAAS,SAAS,gBAAgB;AAAA,QACzC,WAAW,eAAe,EAAE,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,QAC5D,SAAS,MAAM,SAAS,SAAS,SAAS,UAAU,MAAM;AAAA,QAE1D,0BAAAA,KAAC,QAAK,MAAM,SAAS,SAAS,QAAQ,QAAQ;AAAA;AAAA,IAChD;AAAA,IACC,SAAS,QAAQ,WAAW,QAAQ,cAAc,UAAU,YAAY,QACvE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAW;AAAA,QACX,OAAM;AAAA,QACN,iBAAe,MAAM;AAAA,QACrB,WAAW,eAAe,EAAE,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,QAC5D,SAAS,MAAM,MAAM,gBAAgB,IAAI;AAAA,QAEzC,0BAAAA,KAAC,QAAK,MAAK,YAAW;AAAA;AAAA,IACxB,IACE;AAAA,IACJ,gBAAAA,KAAC,cAAW;AAAA,KACd;AAEJ;","names":["jsx","jsxs"]}