@tangle-network/sandbox-ui 0.4.0 → 0.5.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 (61) hide show
  1. package/dist/auth.js +3 -3
  2. package/dist/chat.d.ts +1 -1
  3. package/dist/chat.js +11 -9
  4. package/dist/{chunk-ZP6GSX4D.js → chunk-565V6JTN.js} +26 -50
  5. package/dist/chunk-5CEMHKBP.js +72 -0
  6. package/dist/{chunk-FOQTE67I.js → chunk-5F4NX5R2.js} +10 -5
  7. package/dist/{chunk-MVYFNPAH.js → chunk-7DVFZEVW.js} +298 -272
  8. package/dist/{chunk-MUOL44AE.js → chunk-BRBTD7RH.js} +6 -6
  9. package/dist/{chunk-SSKVYXCR.js → chunk-DCPYTL4W.js} +62 -79
  10. package/dist/chunk-DLCFZDGX.js +182 -0
  11. package/dist/{chunk-HXEA7L2T.js → chunk-FFOXUHOF.js} +10 -10
  12. package/dist/chunk-H5XYSFYE.js +228 -0
  13. package/dist/{chunk-TQN3VR4F.js → chunk-JP725R4W.js} +2 -2
  14. package/dist/{chunk-CJ2RYVZH.js → chunk-NTSRY4GW.js} +68 -10
  15. package/dist/{chunk-DQYODCBN.js → chunk-P24K22CV.js} +57 -66
  16. package/dist/{chunk-GVUW4VDD.js → chunk-R3IU37AW.js} +161 -229
  17. package/dist/chunk-TDYQBLL5.js +127 -0
  18. package/dist/{chunk-HWLX5NME.js → chunk-TSE423UF.js} +12 -12
  19. package/dist/{chunk-YDBXQQLC.js → chunk-VBWY44UU.js} +30 -76
  20. package/dist/{chunk-IW2JZCOC.js → chunk-WBQ7VULC.js} +7 -7
  21. package/dist/{chunk-72UEKFZ2.js → chunk-WC7QTWPN.js} +65 -42
  22. package/dist/{chunk-HYLTXGOI.js → chunk-WQH233GF.js} +5 -5
  23. package/dist/{chunk-CCKNIAS7.js → chunk-XBR3IP7B.js} +2 -2
  24. package/dist/{chunk-OHMO7NUX.js → chunk-XTPAWK7L.js} +20 -31
  25. package/dist/{chunk-SULQQJPB.js → chunk-YS66Q3RC.js} +1 -1
  26. package/dist/{chunk-FRGMMANX.js → chunk-YYGECNZZ.js} +3 -3
  27. package/dist/dashboard.d.ts +2 -2
  28. package/dist/dashboard.js +6 -6
  29. package/dist/{document-editor-pane-5TN2VWGZ.js → document-editor-pane-JNXPANWM.js} +2 -2
  30. package/dist/editor.js +2 -2
  31. package/dist/files.js +2 -2
  32. package/dist/globals.css +129 -95
  33. package/dist/hooks.d.ts +2 -2
  34. package/dist/hooks.js +5 -5
  35. package/dist/{index-tTfThG0n.d.ts → index-BT_-ecpc.d.ts} +11 -10
  36. package/dist/index.d.ts +16 -23
  37. package/dist/index.js +27 -26
  38. package/dist/markdown.d.ts +14 -17
  39. package/dist/markdown.js +1 -1
  40. package/dist/openui.js +5 -5
  41. package/dist/pages.d.ts +10 -3
  42. package/dist/pages.js +147 -184
  43. package/dist/primitives.d.ts +8 -5
  44. package/dist/primitives.js +8 -8
  45. package/dist/run.d.ts +1 -1
  46. package/dist/run.js +4 -4
  47. package/dist/sdk-hooks.d.ts +1 -1
  48. package/dist/sdk-hooks.js +4 -4
  49. package/dist/styles.css +129 -95
  50. package/dist/terminal.d.ts +2 -2
  51. package/dist/terminal.js +13 -43
  52. package/dist/tokens.css +299 -179
  53. package/dist/{tool-call-feed-D5Ume-Pt.d.ts → tool-call-feed-Bs3MyQMT.d.ts} +3 -1
  54. package/dist/{usage-chart-CY9xo3KX.d.ts → usage-chart-XCoB_7Xu.d.ts} +1 -2
  55. package/dist/{use-pty-session-DeZSxOCN.d.ts → use-pty-session-COzVkhtc.d.ts} +1 -1
  56. package/dist/workspace.d.ts +3 -1
  57. package/dist/workspace.js +11 -11
  58. package/package.json +14 -2
  59. package/dist/chunk-GRYHFH5O.js +0 -110
  60. package/dist/chunk-LTFK464G.js +0 -103
  61. package/dist/chunk-MXCSSOGH.js +0 -105
@@ -0,0 +1,127 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-RQHJBTEU.js";
4
+
5
+ // src/primitives/card.tsx
6
+ import * as React from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var Card = React.forwardRef(({ className, variant = "default", hover = false, ...props }, ref) => {
9
+ const variants = {
10
+ default: "bg-card border-[var(--border-default)]",
11
+ elevated: "bg-[var(--bg-elevated)] border-[var(--border-subtle)] shadow-[var(--shadow-card)]",
12
+ glass: "bg-[var(--depth-2)] border-[var(--border-subtle)] shadow-[var(--shadow-card)]",
13
+ sandbox: "bg-[var(--depth-3)] border-[var(--border-accent)] shadow-[var(--shadow-accent)]"
14
+ };
15
+ return /* @__PURE__ */ jsx(
16
+ "div",
17
+ {
18
+ ref,
19
+ className: cn(
20
+ "rounded-[var(--radius-lg)] border text-card-foreground transition-[border-color,box-shadow]",
21
+ "duration-[var(--transition-default)]",
22
+ variants[variant],
23
+ hover && "cursor-pointer hover:border-[var(--border-hover)]",
24
+ className
25
+ ),
26
+ ...props
27
+ }
28
+ );
29
+ });
30
+ Card.displayName = "Card";
31
+ var CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
32
+ "div",
33
+ {
34
+ ref,
35
+ className: cn("flex flex-col space-y-1 p-4", className),
36
+ ...props
37
+ }
38
+ ));
39
+ CardHeader.displayName = "CardHeader";
40
+ var CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
41
+ "h3",
42
+ {
43
+ ref,
44
+ className: cn("font-semibold leading-none tracking-tight", className),
45
+ ...props
46
+ }
47
+ ));
48
+ CardTitle.displayName = "CardTitle";
49
+ var CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
50
+ "p",
51
+ {
52
+ ref,
53
+ className: cn("text-muted-foreground text-sm", className),
54
+ ...props
55
+ }
56
+ ));
57
+ CardDescription.displayName = "CardDescription";
58
+ var CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-4 pt-0", className), ...props }));
59
+ CardContent.displayName = "CardContent";
60
+ var CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
61
+ "div",
62
+ {
63
+ ref,
64
+ className: cn("flex items-center p-6 pt-0", className),
65
+ ...props
66
+ }
67
+ ));
68
+ CardFooter.displayName = "CardFooter";
69
+
70
+ // src/primitives/badge.tsx
71
+ import { cva } from "class-variance-authority";
72
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
73
+ var badgeVariants = cva(
74
+ "inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 font-medium text-xs transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
75
+ {
76
+ variants: {
77
+ variant: {
78
+ default: "border-transparent bg-primary text-primary-foreground",
79
+ secondary: "border-transparent bg-secondary text-secondary-foreground",
80
+ destructive: "border-transparent bg-destructive/15 border-destructive/25 text-destructive",
81
+ outline: "text-foreground border-border",
82
+ success: "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]",
83
+ warning: "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]",
84
+ error: "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]",
85
+ info: "border-[var(--surface-info-border)] bg-[var(--surface-info-bg)] text-[var(--surface-info-text)]",
86
+ sandbox: "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-[var(--accent-text)]",
87
+ /* Operational status variants */
88
+ running: "border-[var(--surface-teal-border)] bg-[var(--surface-teal-bg)] text-[var(--surface-teal-text)]",
89
+ creating: "border-[var(--surface-violet-border)] bg-[var(--surface-violet-bg)] text-[var(--surface-violet-text)]",
90
+ stopped: "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]",
91
+ warm: "border-[var(--surface-orange-border)] bg-[var(--surface-orange-bg)] text-[var(--surface-orange-text)]",
92
+ cold: "border-[var(--surface-info-border)] bg-[var(--surface-info-bg)] text-[var(--surface-info-text)]",
93
+ deleted: "border-[var(--surface-neutral-border)] bg-[var(--surface-neutral-bg)] text-[var(--surface-neutral-text)]"
94
+ }
95
+ },
96
+ defaultVariants: {
97
+ variant: "default"
98
+ }
99
+ }
100
+ );
101
+ var statusDotClass = {
102
+ running: "status-dot status-dot-running",
103
+ creating: "status-dot status-dot-creating",
104
+ stopped: "status-dot status-dot-stopped",
105
+ warm: "status-dot status-dot-warm",
106
+ cold: "status-dot status-dot-cold",
107
+ error: "status-dot status-dot-error",
108
+ deleted: "status-dot status-dot-deleted"
109
+ };
110
+ function Badge({ className, variant, dot, children, ...props }) {
111
+ const dotClass = dot && variant ? statusDotClass[variant] : null;
112
+ return /* @__PURE__ */ jsxs("div", { className: cn(badgeVariants({ variant }), className), ...props, children: [
113
+ dotClass && /* @__PURE__ */ jsx2("span", { className: dotClass, "aria-hidden": true }),
114
+ children
115
+ ] });
116
+ }
117
+
118
+ export {
119
+ Card,
120
+ CardHeader,
121
+ CardTitle,
122
+ CardDescription,
123
+ CardContent,
124
+ CardFooter,
125
+ badgeVariants,
126
+ Badge
127
+ };
@@ -8,24 +8,24 @@ import { cva } from "class-variance-authority";
8
8
  import * as React from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  var buttonVariants = cva(
11
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium text-sm transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
11
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium text-sm transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
12
12
  {
13
13
  variants: {
14
14
  variant: {
15
- default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 active:scale-[0.98]",
16
- destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90 active:scale-[0.98]",
17
- outline: "border border-border bg-transparent hover:bg-accent hover:text-accent-foreground active:scale-[0.98]",
18
- secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 active:scale-[0.98]",
19
- ghost: "hover:bg-accent hover:text-accent-foreground",
15
+ default: "bg-[var(--btn-primary-bg)] text-primary-foreground shadow-[var(--shadow-accent)] hover:bg-[var(--btn-primary-hover)] active:scale-[0.97] duration-[var(--transition-fast)]",
16
+ destructive: "bg-destructive/15 border border-destructive/25 text-destructive hover:bg-destructive/22 active:scale-[0.97] duration-[var(--transition-fast)]",
17
+ outline: "border border-[var(--border-default)] bg-transparent hover:bg-[var(--bg-hover)] hover:border-[var(--border-hover)] active:scale-[0.97] duration-[var(--transition-fast)]",
18
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/70 active:scale-[0.97] duration-[var(--transition-fast)]",
19
+ ghost: "hover:bg-[var(--bg-hover)] hover:text-foreground duration-[var(--transition-fast)]",
20
20
  link: "text-primary underline-offset-4 hover:underline",
21
- sandbox: "bg-[image:var(--accent-gradient-strong)] text-white shadow-[var(--shadow-accent)] hover:brightness-110 active:scale-[0.98]"
21
+ sandbox: "bg-[image:var(--accent-gradient-strong)] text-white shadow-[var(--shadow-accent)] hover:brightness-110 active:scale-[0.97] duration-[var(--transition-fast)]"
22
22
  },
23
23
  size: {
24
- default: "h-10 px-4 py-2",
25
- sm: "h-9 rounded-md px-3 text-xs",
26
- lg: "h-12 rounded-lg px-8 text-base",
27
- xl: "h-14 rounded-xl px-10 text-lg",
28
- icon: "h-10 w-10"
24
+ default: "h-[var(--control-height)] px-4 py-2",
25
+ sm: "h-8 rounded-md px-3 text-xs",
26
+ lg: "h-11 rounded-lg px-7 text-sm",
27
+ xl: "h-13 rounded-xl px-9 text-base",
28
+ icon: "h-[var(--control-height)] w-[var(--control-height)]"
29
29
  }
30
30
  },
31
31
  defaultVariants: {
@@ -5,10 +5,11 @@ import {
5
5
  TableHead,
6
6
  TableHeader,
7
7
  TableRow
8
- } from "./chunk-TQN3VR4F.js";
8
+ } from "./chunk-JP725R4W.js";
9
9
  import {
10
+ CodeBlock,
10
11
  Markdown
11
- } from "./chunk-LTFK464G.js";
12
+ } from "./chunk-H5XYSFYE.js";
12
13
  import {
13
14
  Badge,
14
15
  Card,
@@ -16,68 +17,22 @@ import {
16
17
  CardDescription,
17
18
  CardHeader,
18
19
  CardTitle
19
- } from "./chunk-MXCSSOGH.js";
20
+ } from "./chunk-TDYQBLL5.js";
20
21
  import {
21
22
  Button
22
- } from "./chunk-HWLX5NME.js";
23
+ } from "./chunk-TSE423UF.js";
23
24
  import {
24
25
  cn
25
26
  } from "./chunk-RQHJBTEU.js";
26
27
 
27
28
  // src/primitives/code-block.tsx
28
- import { clsx } from "clsx";
29
- import { useState } from "react";
30
- import { jsx, jsxs } from "react/jsx-runtime";
31
- function CodeBlock({
32
- code,
33
- language,
34
- showCopy = true,
35
- showLineNumbers = false,
36
- className,
37
- ...props
38
- }) {
39
- const [copied, setCopied] = useState(false);
40
- const handleCopy = async () => {
41
- await navigator.clipboard.writeText(code);
42
- setCopied(true);
43
- setTimeout(() => setCopied(false), 2e3);
44
- };
45
- const lines = code.split("\n");
46
- return /* @__PURE__ */ jsxs("div", { className: "group relative", children: [
47
- /* @__PURE__ */ jsx(
48
- "pre",
49
- {
50
- className: clsx(
51
- "overflow-x-auto rounded-lg border border-[#262626] bg-[#0a0a0a] p-4 font-mono text-sm",
52
- className
53
- ),
54
- ...props,
55
- children: /* @__PURE__ */ jsx("code", { className: language ? `language-${language}` : void 0, children: showLineNumbers ? /* @__PURE__ */ jsx("table", { className: "w-full", children: /* @__PURE__ */ jsx("tbody", { children: lines.map((line, i) => /* @__PURE__ */ jsxs("tr", { children: [
56
- /* @__PURE__ */ jsx("td", { className: "w-8 select-none pr-4 text-right text-[#525252]", children: i + 1 }),
57
- /* @__PURE__ */ jsx("td", { className: "text-[#a1a1a1]", children: line || " " })
58
- ] }, i)) }) }) : /* @__PURE__ */ jsx("span", { className: "text-[#a1a1a1]", children: code }) })
59
- }
60
- ),
61
- showCopy && /* @__PURE__ */ jsx(
62
- "button",
63
- {
64
- onClick: handleCopy,
65
- className: clsx(
66
- "absolute top-2 right-2 rounded px-2 py-1 text-xs",
67
- "bg-[#262626] text-[#a1a1a1] hover:bg-[#363636] hover:text-white",
68
- "opacity-0 transition-opacity group-hover:opacity-100"
69
- ),
70
- children: copied ? "Copied!" : "Copy"
71
- }
72
- )
73
- ] });
74
- }
29
+ import { jsx } from "react/jsx-runtime";
75
30
  function InlineCode({ className, children, ...props }) {
76
31
  return /* @__PURE__ */ jsx(
77
32
  "code",
78
33
  {
79
- className: clsx(
80
- "rounded border border-[#262626] bg-[#1a1a1a] px-1.5 py-0.5 font-mono text-sm",
34
+ className: cn(
35
+ "rounded border border-[var(--border-subtle)] bg-[var(--depth-2)] px-1.5 py-0.5 font-mono text-[0.85em] text-[var(--code-keyword)]",
81
36
  className
82
37
  ),
83
38
  ...props,
@@ -89,7 +44,7 @@ function InlineCode({ className, children, ...props }) {
89
44
  // src/openui/openui-artifact-renderer.tsx
90
45
  import { Fragment } from "react";
91
46
  import { ArrowRight, Minus } from "lucide-react";
92
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
47
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
93
48
  var GAP_STYLES = {
94
49
  sm: "gap-2",
95
50
  md: "gap-4",
@@ -139,7 +94,7 @@ function renderNode(node, onAction) {
139
94
  case "heading": {
140
95
  const level = node.level ?? 2;
141
96
  const HeadingTag = `h${level}`;
142
- return /* @__PURE__ */ jsxs2("div", { className: "space-y-1", children: [
97
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
143
98
  node.kicker && /* @__PURE__ */ jsx2("div", { className: "text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: node.kicker }),
144
99
  /* @__PURE__ */ jsx2(
145
100
  HeadingTag,
@@ -164,9 +119,9 @@ function renderNode(node, onAction) {
164
119
  className: cn(
165
120
  "text-sm leading-6 text-[var(--text-secondary)]",
166
121
  node.tone === "muted" && "text-[var(--text-muted)]",
167
- node.tone === "success" && "text-emerald-300",
168
- node.tone === "warning" && "text-amber-200",
169
- node.tone === "error" && "text-red-200",
122
+ node.tone === "success" && "text-[var(--surface-success-text)]",
123
+ node.tone === "warning" && "text-[var(--surface-warning-text)]",
124
+ node.tone === "error" && "text-[var(--surface-danger-text)]",
170
125
  node.mono && "font-[var(--font-mono)] text-[13px]"
171
126
  ),
172
127
  children: node.text
@@ -175,7 +130,7 @@ function renderNode(node, onAction) {
175
130
  case "badge":
176
131
  return /* @__PURE__ */ jsx2(Badge, { variant: node.tone ?? "outline", children: node.label });
177
132
  case "stat":
178
- return /* @__PURE__ */ jsx2(Card, { variant: "glass", className: "border-[var(--border-subtle)] shadow-[var(--shadow-card)]", children: /* @__PURE__ */ jsxs2(CardContent, { className: "space-y-2 p-4", children: [
133
+ return /* @__PURE__ */ jsx2(Card, { variant: "glass", className: "border-[var(--border-subtle)] shadow-[var(--shadow-card)]", children: /* @__PURE__ */ jsxs(CardContent, { className: "space-y-2 p-4", children: [
179
134
  /* @__PURE__ */ jsx2("div", { className: "text-xs uppercase tracking-[0.12em] text-[var(--text-muted)]", children: node.label }),
180
135
  /* @__PURE__ */ jsx2("div", { className: "text-2xl font-semibold tracking-tight text-[var(--text-primary)]", children: node.value }),
181
136
  node.change && /* @__PURE__ */ jsx2(
@@ -183,10 +138,10 @@ function renderNode(node, onAction) {
183
138
  {
184
139
  className: cn(
185
140
  "text-xs",
186
- node.tone === "success" && "text-emerald-300",
187
- node.tone === "warning" && "text-amber-200",
188
- node.tone === "error" && "text-red-200",
189
- node.tone === "info" && "text-sky-200",
141
+ node.tone === "success" && "text-[var(--surface-success-text)]",
142
+ node.tone === "warning" && "text-[var(--surface-warning-text)]",
143
+ node.tone === "error" && "text-[var(--surface-danger-text)]",
144
+ node.tone === "info" && "text-[var(--surface-info-text)]",
190
145
  !node.tone || node.tone === "default" ? "text-[var(--text-muted)]" : void 0
191
146
  ),
192
147
  children: node.change
@@ -194,7 +149,7 @@ function renderNode(node, onAction) {
194
149
  )
195
150
  ] }) });
196
151
  case "key_value":
197
- return /* @__PURE__ */ jsx2("dl", { className: "grid gap-3 sm:grid-cols-2", children: node.items.map((item, index) => /* @__PURE__ */ jsxs2(
152
+ return /* @__PURE__ */ jsx2("dl", { className: "grid gap-3 sm:grid-cols-2", children: node.items.map((item, index) => /* @__PURE__ */ jsxs(
198
153
  "div",
199
154
  {
200
155
  className: "rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-4 py-3",
@@ -215,7 +170,7 @@ function renderNode(node, onAction) {
215
170
  item.id ?? `${item.label}-${index}`
216
171
  )) });
217
172
  case "code":
218
- return /* @__PURE__ */ jsxs2("div", { className: "space-y-2", children: [
173
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
219
174
  node.title && /* @__PURE__ */ jsx2("div", { className: "text-xs uppercase tracking-[0.12em] text-[var(--text-muted)]", children: node.title }),
220
175
  /* @__PURE__ */ jsx2(
221
176
  CodeBlock,
@@ -230,8 +185,8 @@ function renderNode(node, onAction) {
230
185
  case "markdown":
231
186
  return /* @__PURE__ */ jsx2("div", { className: "rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] p-5", children: /* @__PURE__ */ jsx2(Markdown, { className: "prose-sm max-w-none", children: node.content }) });
232
187
  case "table":
233
- return /* @__PURE__ */ jsxs2("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
234
- /* @__PURE__ */ jsxs2(Table, { children: [
188
+ return /* @__PURE__ */ jsxs("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
189
+ /* @__PURE__ */ jsxs(Table, { children: [
235
190
  /* @__PURE__ */ jsx2(TableHeader, { children: /* @__PURE__ */ jsx2(TableRow, { className: "border-[var(--border-subtle)]", children: node.columns.map((column) => /* @__PURE__ */ jsx2(
236
191
  TableHead,
237
192
  {
@@ -260,7 +215,7 @@ function renderNode(node, onAction) {
260
215
  case "actions":
261
216
  return renderActions(node.actions, onAction);
262
217
  case "separator":
263
- return /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
218
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
264
219
  /* @__PURE__ */ jsx2("div", { className: "h-px flex-1 bg-[var(--border-subtle)]" }),
265
220
  node.label && /* @__PURE__ */ jsx2("span", { className: "text-[10px] uppercase tracking-[0.14em] text-[var(--text-muted)]", children: node.label }),
266
221
  /* @__PURE__ */ jsx2("div", { className: "h-px flex-1 bg-[var(--border-subtle)]" })
@@ -282,10 +237,10 @@ function renderNode(node, onAction) {
282
237
  case "grid":
283
238
  return /* @__PURE__ */ jsx2("div", { className: cn("grid", GRID_STYLES[node.columns ?? 2], GAP_STYLES[node.gap ?? "md"]), children: node.children.map((child, index) => /* @__PURE__ */ jsx2(Fragment, { children: renderNode(child, onAction) }, child.id ?? `${child.type}-${index}`)) });
284
239
  case "card":
285
- return /* @__PURE__ */ jsxs2(Card, { variant: "glass", className: "border-[var(--border-subtle)] shadow-[var(--shadow-card)]", children: [
286
- (node.eyebrow || node.title || node.description || node.badge || node.actions) && /* @__PURE__ */ jsxs2(CardHeader, { className: "gap-2 p-4 pb-0", children: [
287
- /* @__PURE__ */ jsxs2("div", { className: "flex items-start justify-between gap-3", children: [
288
- /* @__PURE__ */ jsxs2("div", { className: "min-w-0 flex-1 space-y-1", children: [
240
+ return /* @__PURE__ */ jsxs(Card, { variant: "glass", className: "border-[var(--border-subtle)] shadow-[var(--shadow-card)]", children: [
241
+ (node.eyebrow || node.title || node.description || node.badge || node.actions) && /* @__PURE__ */ jsxs(CardHeader, { className: "gap-2 p-4 pb-0", children: [
242
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
243
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [
289
244
  node.eyebrow && /* @__PURE__ */ jsx2("div", { className: "text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: node.eyebrow }),
290
245
  node.title && /* @__PURE__ */ jsx2(CardTitle, { className: "text-base text-[var(--text-primary)]", children: node.title }),
291
246
  node.description && /* @__PURE__ */ jsx2(CardDescription, { className: "text-[var(--text-muted)]", children: node.description })
@@ -312,7 +267,7 @@ function OpenUIArtifactRenderer({
312
267
  "flex h-full min-h-[16rem] items-center justify-center rounded-[var(--radius-xl)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-card)] p-6 text-center",
313
268
  className
314
269
  ),
315
- children: /* @__PURE__ */ jsxs2("div", { className: "space-y-2", children: [
270
+ children: /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
316
271
  /* @__PURE__ */ jsx2("div", { className: "mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-[var(--bg-elevated)] text-[var(--text-muted)]", children: /* @__PURE__ */ jsx2(Minus, { className: "h-4 w-4" }) }),
317
272
  /* @__PURE__ */ jsx2("div", { className: "text-sm font-medium text-[var(--text-primary)]", children: "No structured artifact payload" }),
318
273
  /* @__PURE__ */ jsx2("div", { className: "text-sm text-[var(--text-muted)]", children: "Pass an OpenUI-like schema to render dynamic result panels with sandbox-ui primitives." })
@@ -320,9 +275,9 @@ function OpenUIArtifactRenderer({
320
275
  }
321
276
  );
322
277
  }
323
- return /* @__PURE__ */ jsxs2("div", { className: cn("space-y-4 p-4", className), children: [
278
+ return /* @__PURE__ */ jsxs("div", { className: cn("space-y-4 p-4", className), children: [
324
279
  nodes.map((node, index) => /* @__PURE__ */ jsx2(Fragment, { children: renderNode(node, onAction) }, node.id ?? `${node.type}-${index}`)),
325
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2 text-xs text-[var(--text-muted)]", children: [
280
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2 text-xs text-[var(--text-muted)]", children: [
326
281
  /* @__PURE__ */ jsx2(ArrowRight, { className: "h-3.5 w-3.5" }),
327
282
  "Structured artifact rendered through sandbox-ui primitives"
328
283
  ] })
@@ -330,7 +285,6 @@ function OpenUIArtifactRenderer({
330
285
  }
331
286
 
332
287
  export {
333
- CodeBlock,
334
288
  InlineCode,
335
289
  OpenUIArtifactRenderer
336
290
  };
@@ -57,7 +57,7 @@ var DropdownMenuSubTrigger = React2.forwardRef(({ className, inset, children, ..
57
57
  ref,
58
58
  className: cn(
59
59
  "flex cursor-default select-none items-center rounded-md px-2 py-1.5 text-sm outline-none",
60
- "focus:bg-accent data-[state=open]:bg-accent",
60
+ "focus:bg-accent data-[state=open]:bg-[var(--depth-3)]",
61
61
  inset && "pl-8",
62
62
  className
63
63
  ),
@@ -74,7 +74,7 @@ var DropdownMenuSubContent = React2.forwardRef(({ className, ...props }, ref) =>
74
74
  {
75
75
  ref,
76
76
  className: cn(
77
- "z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-popover p-1 text-popover-foreground shadow-xl",
77
+ "z-50 min-w-[8rem] overflow-hidden rounded-xl border border-[var(--border-subtle)] bg-[var(--depth-2)] p-1 text-[var(--text-primary)] shadow-[var(--shadow-card)]",
78
78
  "data-[state=closed]:animate-out data-[state=open]:animate-in",
79
79
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
80
80
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -92,7 +92,7 @@ var DropdownMenuContent = React2.forwardRef(({ className, sideOffset = 4, ...pro
92
92
  ref,
93
93
  sideOffset,
94
94
  className: cn(
95
- "z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-popover p-1 text-popover-foreground shadow-xl",
95
+ "z-50 min-w-[8rem] overflow-hidden rounded-xl border border-[var(--border-subtle)] bg-[var(--depth-2)] p-1 text-[var(--text-primary)] shadow-[var(--shadow-card)]",
96
96
  "data-[state=closed]:animate-out data-[state=open]:animate-in",
97
97
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
98
98
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -110,7 +110,7 @@ var DropdownMenuItem = React2.forwardRef(({ className, inset, ...props }, ref) =
110
110
  ref,
111
111
  className: cn(
112
112
  "relative flex cursor-pointer select-none items-center rounded-md px-2 py-1.5 text-sm outline-none transition-colors",
113
- "focus:bg-accent focus:text-accent-foreground",
113
+ "focus:bg-[var(--depth-3)] focus:text-[var(--text-primary)]",
114
114
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
115
115
  inset && "pl-8",
116
116
  className
@@ -125,7 +125,7 @@ var DropdownMenuCheckboxItem = React2.forwardRef(({ className, children, checked
125
125
  ref,
126
126
  className: cn(
127
127
  "relative flex cursor-pointer select-none items-center rounded-md py-1.5 pr-2 pl-8 text-sm outline-none transition-colors",
128
- "focus:bg-accent focus:text-accent-foreground",
128
+ "focus:bg-[var(--depth-3)] focus:text-[var(--text-primary)]",
129
129
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
130
130
  className
131
131
  ),
@@ -144,7 +144,7 @@ var DropdownMenuRadioItem = React2.forwardRef(({ className, children, ...props }
144
144
  ref,
145
145
  className: cn(
146
146
  "relative flex cursor-pointer select-none items-center rounded-md py-1.5 pr-2 pl-8 text-sm outline-none transition-colors",
147
- "focus:bg-accent focus:text-accent-foreground",
147
+ "focus:bg-[var(--depth-3)] focus:text-[var(--text-primary)]",
148
148
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
149
149
  className
150
150
  ),
@@ -173,7 +173,7 @@ var DropdownMenuSeparator = React2.forwardRef(({ className, ...props }, ref) =>
173
173
  DropdownMenuPrimitive.Separator,
174
174
  {
175
175
  ref,
176
- className: cn("-mx-1 my-1 h-px bg-border", className),
176
+ className: cn("-mx-1 my-1 h-px bg-[var(--border-subtle)]", className),
177
177
  ...props
178
178
  }
179
179
  ));