@tangle-network/sandbox-ui 0.6.1 → 0.8.4

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 (67) hide show
  1. package/dist/auth.d.ts +10 -6
  2. package/dist/auth.js +3 -3
  3. package/dist/{chat-container-Cg-GwyiK.d.ts → chat-container-f4yEs6KN.d.ts} +9 -1
  4. package/dist/chat.d.ts +12 -2
  5. package/dist/chat.js +10 -10
  6. package/dist/{chunk-TSE423UF.js → chunk-2QZ6G7NM.js} +6 -6
  7. package/dist/{chunk-WBQ7VULC.js → chunk-34A66VBG.js} +7 -7
  8. package/dist/{chunk-JP725R4W.js → chunk-34I7UFSX.js} +2 -2
  9. package/dist/{chunk-YS66Q3RC.js → chunk-3CJ2SOEI.js} +2 -2
  10. package/dist/{chunk-CNWVHQFY.js → chunk-54SQQMMM.js} +6 -24
  11. package/dist/{chunk-DLCFZDGX.js → chunk-5UM2XMEJ.js} +39 -14
  12. package/dist/{chunk-YYGECNZZ.js → chunk-66EZOYZR.js} +3 -3
  13. package/dist/chunk-7U2Z23NE.js +49 -0
  14. package/dist/{chunk-RKXIRRKQ.js → chunk-BUOQTBTO.js} +70 -66
  15. package/dist/{chunk-DCPYTL4W.js → chunk-D4CZWJCD.js} +72 -148
  16. package/dist/{chunk-MXRQ4MJE.js → chunk-DXMIEK4K.js} +34 -23
  17. package/dist/{chunk-ZMWWE5RF.js → chunk-EXSOPXIY.js} +141 -123
  18. package/dist/{chunk-GW4GRAWJ.js → chunk-GSZA3TSY.js} +18 -12
  19. package/dist/{chunk-W4LM3QYZ.js → chunk-HB5Y37YU.js} +8 -8
  20. package/dist/{chunk-E2XT3G52.js → chunk-HFMAXUHV.js} +136 -137
  21. package/dist/{chunk-BRBTD7RH.js → chunk-MA7YKRUP.js} +28 -18
  22. package/dist/{chunk-MJUDMVRU.js → chunk-MT5FJ3ZT.js} +17 -17
  23. package/dist/chunk-OKLQVY3Y.js +139 -0
  24. package/dist/{chunk-KH5UDAJ2.js → chunk-QDH5GEGY.js} +58 -54
  25. package/dist/{chunk-33W2TLUL.js → chunk-QID2OOMG.js} +12 -3
  26. package/dist/{chunk-FJSVPBKY.js → chunk-S7OXQTST.js} +17 -3
  27. package/dist/chunk-T7HMZEVO.js +216 -0
  28. package/dist/{chunk-FNYJFCGU.js → chunk-U6QTHMY6.js} +145 -256
  29. package/dist/{chunk-565V6JTN.js → chunk-UXQMIR3D.js} +60 -99
  30. package/dist/{chunk-XTPAWK7L.js → chunk-VOUV7GGB.js} +25 -47
  31. package/dist/{chunk-OVNLOE3Y.js → chunk-WXK43R62.js} +41 -41
  32. package/dist/{chunk-6V4XVKFY.js → chunk-XXDFEF72.js} +340 -335
  33. package/dist/{chunk-TDYQBLL5.js → chunk-ZMNSRDMH.js} +6 -6
  34. package/dist/dashboard.d.ts +135 -3
  35. package/dist/dashboard.js +848 -8
  36. package/dist/{document-editor-pane-DWWUTTTZ.js → document-editor-pane-TLPVRBBU.js} +3 -3
  37. package/dist/editor.d.ts +9 -8
  38. package/dist/editor.js +3 -3
  39. package/dist/files.js +3 -3
  40. package/dist/globals.css +5304 -68
  41. package/dist/hooks.d.ts +1 -1
  42. package/dist/hooks.js +7 -7
  43. package/dist/index.d.ts +4 -4
  44. package/dist/index.js +28 -28
  45. package/dist/markdown.js +1 -1
  46. package/dist/openui.js +5 -5
  47. package/dist/pages.d.ts +47 -3
  48. package/dist/pages.js +911 -357
  49. package/dist/primitives.d.ts +5 -2
  50. package/dist/primitives.js +10 -10
  51. package/dist/run.js +4 -4
  52. package/dist/sdk-hooks.d.ts +2 -3
  53. package/dist/sdk-hooks.js +5 -5
  54. package/dist/styles.css +5304 -68
  55. package/dist/template-card-BAtvcAkU.d.ts +18 -0
  56. package/dist/terminal.d.ts +3 -1
  57. package/dist/terminal.js +66 -32
  58. package/dist/tokens.css +701 -40
  59. package/dist/{usage-chart-XCoB_7Xu.d.ts → usage-chart-SSiOgeQI.d.ts} +3 -1
  60. package/dist/{use-pty-session-COzVkhtc.d.ts → use-pty-session-0AOuwXgq.d.ts} +2 -0
  61. package/dist/{index-BT_-ecpc.d.ts → variant-list-C8wx2TqF.d.ts} +17 -8
  62. package/dist/workspace.d.ts +1 -1
  63. package/dist/workspace.js +13 -13
  64. package/package.json +3 -1
  65. package/tailwind.config.cjs +3 -2
  66. package/dist/chunk-3HW53XTH.js +0 -228
  67. package/dist/chunk-OKCIKTXQ.js +0 -63
@@ -7,27 +7,27 @@ import {
7
7
  import {
8
8
  EmptyState,
9
9
  Input
10
- } from "./chunk-BRBTD7RH.js";
10
+ } from "./chunk-MA7YKRUP.js";
11
11
  import {
12
12
  ChatContainer
13
- } from "./chunk-RKXIRRKQ.js";
13
+ } from "./chunk-BUOQTBTO.js";
14
14
  import {
15
15
  OpenUIArtifactRenderer
16
- } from "./chunk-OVNLOE3Y.js";
16
+ } from "./chunk-WXK43R62.js";
17
17
  import {
18
18
  FileArtifactPane,
19
19
  FileTree,
20
20
  filterFileTree
21
- } from "./chunk-KH5UDAJ2.js";
21
+ } from "./chunk-QDH5GEGY.js";
22
22
  import {
23
23
  ArtifactPane
24
- } from "./chunk-W4LM3QYZ.js";
24
+ } from "./chunk-HB5Y37YU.js";
25
25
  import {
26
26
  Markdown
27
- } from "./chunk-3HW53XTH.js";
27
+ } from "./chunk-T7HMZEVO.js";
28
28
  import {
29
29
  Badge
30
- } from "./chunk-TDYQBLL5.js";
30
+ } from "./chunk-ZMNSRDMH.js";
31
31
  import {
32
32
  cn
33
33
  } from "./chunk-RQHJBTEU.js";
@@ -108,12 +108,12 @@ function ResizeHandle({ label, onDragStart, onStep, className }) {
108
108
  className: cn(
109
109
  "relative hidden w-3 shrink-0 cursor-col-resize lg:flex",
110
110
  "items-stretch justify-center bg-transparent touch-none",
111
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
111
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60",
112
112
  className
113
113
  ),
114
114
  children: [
115
- /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-[var(--border-subtle)] transition-colors" }),
116
- /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-[3px] -translate-x-1/2 rounded-full bg-transparent hover:bg-[var(--brand-cool)]/30 focus-visible:bg-[var(--brand-cool)]/40" })
115
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border transition-colors" }),
116
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-[3px] -translate-x-1/2 rounded-full bg-transparent hover:bg-primary/30 focus-visible:bg-primary/40" })
117
117
  ]
118
118
  }
119
119
  );
@@ -145,12 +145,12 @@ function HorizontalResizeHandle({ label, onDragStart, onStep, className }) {
145
145
  className: cn(
146
146
  "relative hidden h-3 shrink-0 cursor-row-resize lg:flex",
147
147
  "items-center justify-center bg-transparent touch-none w-full",
148
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
148
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60",
149
149
  className
150
150
  ),
151
151
  children: [
152
- /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-[var(--border-subtle)] transition-colors" }),
153
- /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-[3px] -translate-y-1/2 rounded-full bg-transparent hover:bg-[var(--brand-cool)]/30 focus-visible:bg-[var(--brand-cool)]/40" })
152
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-border transition-colors" }),
153
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-[3px] -translate-y-1/2 rounded-full bg-transparent hover:bg-primary/30 focus-visible:bg-primary/40" })
154
154
  ]
155
155
  }
156
156
  );
@@ -163,26 +163,26 @@ function MobileDrawer({ side, title, header, onClose, children }) {
163
163
  type: "button",
164
164
  "aria-label": `Close ${title}`,
165
165
  onClick: onClose,
166
- className: "absolute inset-0 bg-black/70"
166
+ className: "absolute inset-0 bg-black/80 backdrop-blur-sm"
167
167
  }
168
168
  ),
169
169
  /* @__PURE__ */ jsxs(
170
170
  "aside",
171
171
  {
172
172
  className: cn(
173
- "relative flex h-full w-[min(88vw,24rem)] flex-col border-[var(--border-default)] bg-[var(--bg-dark)] shadow-[var(--shadow-dropdown)]",
173
+ "relative flex h-full w-[min(88vw,24rem)] flex-col border-border bg-background shadow-[var(--shadow-dropdown)]",
174
174
  side === "left" ? "border-r" : "ml-auto border-l"
175
175
  ),
176
176
  children: [
177
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--border-subtle)] px-4 py-3", children: [
178
- /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: header ?? /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }) }),
177
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-border px-3 py-2", children: [
178
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: header ?? /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-foreground", children: title }) }),
179
179
  /* @__PURE__ */ jsx(
180
180
  "button",
181
181
  {
182
182
  type: "button",
183
183
  "aria-label": `Close ${title}`,
184
184
  onClick: onClose,
185
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
185
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
186
186
  children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
187
187
  }
188
188
  )
@@ -217,7 +217,7 @@ function WorkspaceLayout({
217
217
  maxBottomHeight = 500,
218
218
  persistenceKey,
219
219
  resizable = true,
220
- theme = "operator",
220
+ theme,
221
221
  density = "comfortable",
222
222
  leftLabel = "Left workspace panel",
223
223
  rightLabel = "Right workspace panel",
@@ -314,11 +314,10 @@ function WorkspaceLayout({
314
314
  return /* @__PURE__ */ jsxs(
315
315
  "div",
316
316
  {
317
- "data-sandbox-ui": "true",
318
- "data-sandbox-theme": theme,
317
+ ...theme ? { "data-sandbox-ui": "true", "data-sandbox-theme": theme } : {},
319
318
  "data-density": density,
320
319
  className: cn(
321
- "flex h-screen flex-col overflow-hidden bg-[var(--bg-root)] text-[var(--text-primary)] font-[var(--font-sans)]",
320
+ "flex h-screen flex-col overflow-hidden bg-[var(--bg-root)] text-foreground font-sans",
322
321
  className
323
322
  ),
324
323
  children: [
@@ -329,9 +328,9 @@ function WorkspaceLayout({
329
328
  {
330
329
  "aria-label": leftLabel,
331
330
  style: leftStyle,
332
- className: "hidden shrink-0 border-r border-[var(--border-subtle)] bg-[var(--bg-dark)] lg:flex lg:flex-col",
331
+ className: "hidden shrink-0 border-r border-border bg-background lg:flex lg:flex-col",
333
332
  children: [
334
- leftHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--border-subtle)] px-3 py-2", children: [
333
+ leftHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-1.5 bg-muted/20", children: [
335
334
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: leftHeader }),
336
335
  /* @__PURE__ */ jsx(
337
336
  "button",
@@ -339,7 +338,7 @@ function WorkspaceLayout({
339
338
  type: "button",
340
339
  "aria-label": "Collapse left panel",
341
340
  onClick: () => setLeftOpen(false),
342
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
341
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
343
342
  children: /* @__PURE__ */ jsx(PanelLeftClose, { className: "h-4 w-4" })
344
343
  }
345
344
  )
@@ -358,14 +357,14 @@ function WorkspaceLayout({
358
357
  )
359
358
  ] }),
360
359
  /* @__PURE__ */ jsxs("main", { className: "flex min-w-0 flex-1 flex-col", children: [
361
- (centerHeader || left || right || bottom) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--bg-dark)] px-3 py-2", children: [
360
+ (centerHeader || left || right || bottom) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-border bg-muted/20 px-3 py-1.5", children: [
362
361
  left && !leftOpen && /* @__PURE__ */ jsx(
363
362
  "button",
364
363
  {
365
364
  type: "button",
366
365
  "aria-label": "Open left panel",
367
366
  onClick: () => setLeftOpen(true),
368
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
367
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
369
368
  children: /* @__PURE__ */ jsx(PanelLeftOpen, { className: "h-4 w-4" })
370
369
  }
371
370
  ),
@@ -376,7 +375,7 @@ function WorkspaceLayout({
376
375
  type: "button",
377
376
  "aria-label": "Open bottom panel",
378
377
  onClick: () => setBottomOpen(true),
379
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
378
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
380
379
  children: /* @__PURE__ */ jsx(PanelBottomOpen, { className: "h-4 w-4" })
381
380
  }
382
381
  ),
@@ -386,7 +385,7 @@ function WorkspaceLayout({
386
385
  type: "button",
387
386
  "aria-label": "Open right panel",
388
387
  onClick: () => setRightOpen(true),
389
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
388
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
390
389
  children: /* @__PURE__ */ jsx(PanelRightOpen, { className: "h-4 w-4" })
391
390
  }
392
391
  )
@@ -405,18 +404,18 @@ function WorkspaceLayout({
405
404
  "section",
406
405
  {
407
406
  "aria-label": bottomLabel,
408
- className: "border-t border-[var(--border-subtle)] bg-[var(--bg-card)] shrink-0",
407
+ className: "border-t border-border bg-card shrink-0",
409
408
  style: { height: `${bottomHeight}px` },
410
409
  children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col", children: [
411
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--border-subtle)] px-3 py-2 shrink-0", children: [
412
- /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: bottomHeader ?? /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold uppercase tracking-[0.12em] text-[var(--text-muted)]", children: "Runtime" }) }),
410
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-1.5 bg-muted/20 shrink-0", children: [
411
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: bottomHeader ?? /* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Runtime" }) }),
413
412
  /* @__PURE__ */ jsx(
414
413
  "button",
415
414
  {
416
415
  type: "button",
417
416
  "aria-label": "Collapse bottom panel",
418
417
  onClick: () => setBottomOpen(false),
419
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
418
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
420
419
  children: /* @__PURE__ */ jsx(PanelBottomClose, { className: "h-4 w-4" })
421
420
  }
422
421
  )
@@ -426,7 +425,7 @@ function WorkspaceLayout({
426
425
  }
427
426
  )
428
427
  ] }),
429
- centerFooter && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-[var(--border-subtle)] bg-[var(--bg-dark)]", children: centerFooter })
428
+ centerFooter && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-border bg-background", children: centerFooter })
430
429
  ] }),
431
430
  desktop && right && rightOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
432
431
  resizable && /* @__PURE__ */ jsx(
@@ -442,17 +441,17 @@ function WorkspaceLayout({
442
441
  {
443
442
  "aria-label": rightLabel,
444
443
  style: rightStyle,
445
- className: "hidden shrink-0 border-l border-[var(--border-subtle)] bg-[var(--bg-dark)] lg:flex lg:flex-col",
444
+ className: "hidden shrink-0 border-l border-border bg-background lg:flex lg:flex-col",
446
445
  children: [
447
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--border-subtle)] px-3 py-2", children: [
448
- /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: rightHeader ?? /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-[var(--text-primary)]", children: "Artifacts" }) }),
446
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-1.5 bg-muted/20", children: [
447
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: rightHeader ?? /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-foreground", children: "Artifacts" }) }),
449
448
  /* @__PURE__ */ jsx(
450
449
  "button",
451
450
  {
452
451
  type: "button",
453
452
  "aria-label": "Collapse right panel",
454
453
  onClick: () => setRightOpen(false),
455
- className: "rounded-[var(--radius-sm)] p-1.5 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
454
+ className: "rounded-[2px] p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
456
455
  children: /* @__PURE__ */ jsx(PanelRightClose, { className: "h-4 w-4" })
457
456
  }
458
457
  )
@@ -557,7 +556,7 @@ function DirectoryPane({
557
556
  value: query,
558
557
  onChange: (event) => setQuery(event.target.value),
559
558
  placeholder: searchPlaceholder,
560
- className: "h-9"
559
+ className: "h-7 text-xs rounded-[2px]"
561
560
  }
562
561
  ) }),
563
562
  onRefresh && /* @__PURE__ */ jsx2(
@@ -566,7 +565,7 @@ function DirectoryPane({
566
565
  type: "button",
567
566
  "aria-label": "Refresh directory",
568
567
  onClick: onRefresh,
569
- className: "rounded-[var(--radius-sm)] p-2 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
568
+ className: "rounded-[2px] p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
570
569
  children: /* @__PURE__ */ jsx2(RefreshCw, { className: "h-4 w-4" })
571
570
  }
572
571
  ),
@@ -576,12 +575,12 @@ function DirectoryPane({
576
575
  type: "button",
577
576
  "aria-label": "Upload files",
578
577
  onClick: onUpload,
579
- className: "rounded-[var(--radius-sm)] p-2 text-[var(--text-muted)] transition-colors hover:bg-[var(--bg-hover)] hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60",
578
+ className: "rounded-[2px] p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60",
580
579
  children: /* @__PURE__ */ jsx2(Upload, { className: "h-4 w-4" })
581
580
  }
582
581
  )
583
582
  ] }),
584
- footer: /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between text-xs text-[var(--text-muted)]", children: [
583
+ footer: /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between text-xs text-muted-foreground", children: [
585
584
  /* @__PURE__ */ jsxs2("span", { children: [
586
585
  counts.files,
587
586
  " files"
@@ -599,7 +598,7 @@ function DirectoryPane({
599
598
  description: "Try a different search or clear the current filter."
600
599
  }
601
600
  ),
602
- children: filteredRoot ? /* @__PURE__ */ jsx2("div", { className: "p-3", children: /* @__PURE__ */ jsx2(
601
+ children: filteredRoot ? /* @__PURE__ */ jsx2("div", { className: "py-2", children: /* @__PURE__ */ jsx2(
603
602
  FileTree,
604
603
  {
605
604
  root: filteredRoot,
@@ -617,11 +616,11 @@ function DirectoryPane({
617
616
  import { Loader2, AlertCircle, CheckCircle, Wifi } from "lucide-react";
618
617
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
619
618
  var BANNER_STYLES = {
620
- provisioning: { bg: "bg-[var(--brand-cool)]/5", border: "border-[var(--brand-cool)]/20", icon: Loader2 },
619
+ provisioning: { bg: "bg-primary/5", border: "border-primary/20", icon: Loader2 },
621
620
  connecting: { bg: "bg-[var(--code-number)]/5", border: "border-[var(--code-number)]/20", icon: Wifi },
622
621
  error: { bg: "bg-[var(--code-error)]/5", border: "border-[var(--code-error)]/20", icon: AlertCircle },
623
622
  success: { bg: "bg-[var(--code-success)]/5", border: "border-[var(--code-success)]/20", icon: CheckCircle },
624
- info: { bg: "bg-[var(--bg-elevated)]", border: "border-[var(--border-default)]", icon: AlertCircle }
623
+ info: { bg: "bg-muted/50", border: "border-border", icon: AlertCircle }
625
624
  };
626
625
  function StatusBanner({ type, message, detail, onDismiss, className }) {
627
626
  const style = BANNER_STYLES[type];
@@ -629,9 +628,9 @@ function StatusBanner({ type, message, detail, onDismiss, className }) {
629
628
  const isAnimated = type === "provisioning" || type === "connecting";
630
629
  return /* @__PURE__ */ jsxs3("div", { className: cn("flex items-center gap-3 px-4 py-2 border-b text-sm", style.bg, style.border, className), children: [
631
630
  /* @__PURE__ */ jsx3(Icon, { className: cn("h-4 w-4 shrink-0", isAnimated && "animate-spin") }),
632
- /* @__PURE__ */ jsx3("span", { className: "text-[var(--text-secondary)]", children: message }),
633
- detail && /* @__PURE__ */ jsx3("span", { className: "text-[var(--text-muted)] text-xs", children: detail }),
634
- onDismiss && /* @__PURE__ */ jsx3("button", { onClick: onDismiss, className: "ml-auto text-[var(--text-muted)] hover:text-[var(--text-secondary)] text-xs", children: "Dismiss" })
631
+ /* @__PURE__ */ jsx3("span", { className: "text-foreground", children: message }),
632
+ detail && /* @__PURE__ */ jsx3("span", { className: "text-muted-foreground text-xs", children: detail }),
633
+ onDismiss && /* @__PURE__ */ jsx3("button", { onClick: onDismiss, className: "ml-auto text-muted-foreground hover:text-foreground text-xs", children: "Dismiss" })
635
634
  ] });
636
635
  }
637
636
 
@@ -658,7 +657,7 @@ function StatusBar({
658
657
  "div",
659
658
  {
660
659
  className: cn(
661
- "flex items-center gap-3 px-4 py-1.5 border-t border-[var(--border-subtle)] bg-[var(--bg-dark)] text-xs",
660
+ "flex items-center gap-3 px-3 py-1 border-t border-border bg-muted/20 text-[12px]",
662
661
  className
663
662
  ),
664
663
  children: [
@@ -666,27 +665,27 @@ function StatusBar({
666
665
  "button",
667
666
  {
668
667
  onClick: onModelClick,
669
- className: "inline-flex items-center gap-1.5 px-2 py-0.5 rounded-[var(--radius-full)] border border-[var(--border-subtle)] text-[var(--text-muted)] hover:border-[var(--border-accent)] hover:text-[var(--text-secondary)] transition-colors",
668
+ className: "inline-flex items-center gap-1.5 px-2 py-0.5 rounded-[2px] border border-border text-muted-foreground hover:border-primary/20 hover:text-foreground transition-colors",
670
669
  children: [
671
670
  /* @__PURE__ */ jsx4("span", { className: cn("w-1.5 h-1.5 rounded-full", statusInfo.color) }),
672
671
  modelLabel
673
672
  ]
674
673
  }
675
674
  ),
676
- statusInfo.label && /* @__PURE__ */ jsx4("span", { className: "text-[var(--text-muted)]", children: statusInfo.label }),
675
+ statusInfo.label && /* @__PURE__ */ jsx4("span", { className: "text-muted-foreground", children: statusInfo.label }),
677
676
  contextBadges.map((badge) => /* @__PURE__ */ jsxs4(
678
677
  "span",
679
678
  {
680
- className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-[var(--radius-full)] border border-[var(--border-accent)] text-[var(--text-secondary)] bg-[var(--border-accent)]/5",
679
+ className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-[2px] border border-border text-foreground bg-[var(--border-accent)]/5",
681
680
  children: [
682
681
  /* @__PURE__ */ jsx4(FileText, { className: "h-3 w-3" }),
683
682
  badge.label,
684
- badge.count !== void 0 && /* @__PURE__ */ jsx4("span", { className: "text-[var(--text-muted)]", children: badge.count }),
683
+ badge.count !== void 0 && /* @__PURE__ */ jsx4("span", { className: "text-muted-foreground", children: badge.count }),
685
684
  onRemoveBadge && /* @__PURE__ */ jsx4(
686
685
  "button",
687
686
  {
688
687
  onClick: () => onRemoveBadge(badge.id),
689
- className: "hover:text-[var(--text-primary)] transition-colors",
688
+ className: "hover:text-foreground transition-colors",
690
689
  children: /* @__PURE__ */ jsx4(X2, { className: "h-2.5 w-2.5" })
691
690
  }
692
691
  )
@@ -695,7 +694,7 @@ function StatusBar({
695
694
  badge.id
696
695
  )),
697
696
  /* @__PURE__ */ jsx4("div", { className: "flex-1" }),
698
- credits !== void 0 && /* @__PURE__ */ jsxs4("span", { className: "inline-flex items-center gap-1 text-[var(--text-muted)]", children: [
697
+ credits !== void 0 && /* @__PURE__ */ jsxs4("span", { className: "inline-flex items-center gap-1 text-muted-foreground", children: [
699
698
  /* @__PURE__ */ jsx4(Zap, { className: "h-3 w-3" }),
700
699
  credits.toLocaleString(),
701
700
  " credits"
@@ -711,9 +710,9 @@ import { Terminal as TerminalIcon, ChevronDown, ChevronUp, X as X3 } from "lucid
711
710
  import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
712
711
  var LINE_COLORS = {
713
712
  command: "text-[var(--code-function)]",
714
- stdout: "text-[var(--text-secondary)]",
713
+ stdout: "text-foreground",
715
714
  stderr: "text-[var(--code-error)]",
716
- system: "text-[var(--text-muted)]"
715
+ system: "text-muted-foreground"
717
716
  };
718
717
  var LINE_PREFIXES = {
719
718
  command: "$ ",
@@ -736,18 +735,18 @@ function TerminalPanel({
736
735
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
737
736
  }
738
737
  }, [lines, isCollapsed]);
739
- return /* @__PURE__ */ jsxs5("div", { className: cn("border-t border-[var(--border-subtle)] bg-[var(--bg-card)]", className), children: [
738
+ return /* @__PURE__ */ jsxs5("div", { className: cn("border-t border-border bg-card", className), children: [
740
739
  /* @__PURE__ */ jsxs5(
741
740
  "button",
742
741
  {
743
742
  onClick: onToggle,
744
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",
743
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",
745
744
  children: [
746
745
  /* @__PURE__ */ jsx5(TerminalIcon, { className: "h-3.5 w-3.5" }),
747
746
  /* @__PURE__ */ jsx5("span", { className: "font-medium", children: title }),
748
- lines.length > 0 && /* @__PURE__ */ jsx5("span", { className: "px-1.5 py-0.5 rounded-[var(--radius-full)] bg-[var(--bg-input)] text-[10px] tabular-nums", children: lines.length }),
747
+ lines.length > 0 && /* @__PURE__ */ jsx5("span", { className: "px-1.5 py-0.5 rounded-full bg-muted text-[10px] tabular-nums", children: lines.length }),
749
748
  /* @__PURE__ */ jsx5("div", { className: "flex-1" }),
750
- onClose && /* @__PURE__ */ jsx5(X3, { className: "h-3 w-3 hover:text-[var(--text-primary)]", onClick: (e) => {
749
+ onClose && /* @__PURE__ */ jsx5(X3, { className: "h-3 w-3 hover:text-foreground", onClick: (e) => {
751
750
  e.stopPropagation();
752
751
  onClose();
753
752
  } }),
@@ -759,14 +758,14 @@ function TerminalPanel({
759
758
  "div",
760
759
  {
761
760
  ref: scrollRef,
762
- className: "overflow-auto px-3 pb-2 font-[var(--font-mono)] text-xs leading-[1.6]",
761
+ className: "overflow-auto px-3 pb-2 font-mono text-xs leading-[1.6]",
763
762
  style: { maxHeight },
764
763
  children: [
765
764
  lines.map((line) => /* @__PURE__ */ jsxs5("div", { className: cn("whitespace-pre-wrap", LINE_COLORS[line.type]), children: [
766
- /* @__PURE__ */ jsx5("span", { className: "text-[var(--text-muted)] select-none", children: LINE_PREFIXES[line.type] }),
765
+ /* @__PURE__ */ jsx5("span", { className: "text-muted-foreground select-none", children: LINE_PREFIXES[line.type] }),
767
766
  line.text
768
767
  ] }, line.id)),
769
- lines.length === 0 && /* @__PURE__ */ jsx5("div", { className: "text-[var(--text-muted)] py-2", children: "No output yet" })
768
+ lines.length === 0 && /* @__PURE__ */ jsx5("div", { className: "text-muted-foreground py-2", children: "No output yet" })
770
769
  ]
771
770
  }
772
771
  )
@@ -792,47 +791,47 @@ function RuntimePane({
792
791
  "section",
793
792
  {
794
793
  className: cn(
795
- "flex h-full min-h-0 flex-col overflow-hidden bg-[var(--bg-dark)] text-[var(--text-primary)]",
794
+ "flex h-full min-h-0 flex-col overflow-hidden bg-background text-foreground",
796
795
  className
797
796
  ),
798
797
  children: [
799
- /* @__PURE__ */ jsxs6("header", { className: "border-b border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-4 py-3", children: [
800
- /* @__PURE__ */ jsx6("div", { className: "mb-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: "Sandbox" }),
801
- /* @__PURE__ */ jsx6("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }),
802
- /* @__PURE__ */ jsx6("div", { className: "mt-1 text-xs text-[var(--text-muted)]", children: subtitle })
798
+ /* @__PURE__ */ jsxs6("header", { className: "border-b border-border bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-4 py-3", children: [
799
+ /* @__PURE__ */ jsx6("div", { className: "mb-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground", children: "Sandbox" }),
800
+ /* @__PURE__ */ jsx6("div", { className: "text-sm font-semibold text-foreground", children: title }),
801
+ /* @__PURE__ */ jsx6("div", { className: "mt-1 text-xs text-muted-foreground", children: subtitle })
803
802
  ] }),
804
803
  statusBanner && /* @__PURE__ */ jsx6(StatusBanner, { ...statusBanner }),
805
804
  statusBar && /* @__PURE__ */ jsx6(StatusBar, { ...statusBar }),
806
- content ? /* @__PURE__ */ jsx6("div", { className: "min-h-0 flex-1 overflow-hidden", children: content }) : /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 flex-1 gap-px bg-[var(--border-subtle)] lg:grid-cols-[minmax(0,1.35fr)_minmax(20rem,0.9fr)]", children: [
807
- /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-[var(--bg-card)]", children: terminal ? /* @__PURE__ */ jsx6(
805
+ content ? /* @__PURE__ */ jsx6("div", { className: "min-h-0 flex-1 overflow-hidden", children: content }) : /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 flex-1 gap-px bg-border lg:grid-cols-[minmax(0,1.35fr)_minmax(20rem,0.9fr)]", children: [
806
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-card", children: terminal ? /* @__PURE__ */ jsx6(
808
807
  TerminalPanel,
809
808
  {
810
809
  ...terminal,
811
810
  className: cn("border-t-0 bg-transparent", terminal.className)
812
811
  }
813
- ) : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-[var(--text-muted)]", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
812
+ ) : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
814
813
  /* @__PURE__ */ jsx6(TerminalSquare, { className: "h-4 w-4" }),
815
814
  "No terminal activity yet"
816
815
  ] }) }) }),
817
- /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 gap-px bg-[var(--border-subtle)]", children: [
818
- /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-[var(--bg-card)]", children: audit ? audit : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-[var(--text-muted)]", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
816
+ /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 gap-px bg-border", children: [
817
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-card", children: audit ? audit : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
819
818
  /* @__PURE__ */ jsx6(ShieldCheck, { className: "h-4 w-4" }),
820
819
  "No audit data available"
821
820
  ] }) }) }),
822
- /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-[var(--bg-card)]", children: inspector ? inspector : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-[var(--text-muted)]", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
821
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-card", children: inspector ? inspector : /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center p-6 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
823
822
  /* @__PURE__ */ jsx6(Binary, { className: "h-4 w-4" }),
824
823
  "No runtime inspector attached"
825
824
  ] }) }) })
826
825
  ] })
827
826
  ] }),
828
- footer && /* @__PURE__ */ jsx6("footer", { className: "shrink-0 border-t border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2", children: footer })
827
+ footer && /* @__PURE__ */ jsx6("footer", { className: "shrink-0 border-t border-border bg-card px-3 py-2", children: footer })
829
828
  ]
830
829
  }
831
830
  );
832
831
  }
833
832
 
834
833
  // src/workspace/session-sidebar.tsx
835
- import { useCallback, useMemo as useMemo3, useRef as useRef3, useState as useState4 } from "react";
834
+ import { useCallback, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
836
835
  import { ArrowLeft, FolderTree, MessageSquareText, Plus, Search as Search2, Settings, Sparkles } from "lucide-react";
837
836
  import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
838
837
  function statusDot(status) {
@@ -890,13 +889,13 @@ function sortItems(items, sessionStatusById) {
890
889
  function badgeTone(tone = "neutral") {
891
890
  switch (tone) {
892
891
  case "accent":
893
- return "border-primary/30 bg-primary/10 text-primary";
892
+ return "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary";
894
893
  case "success":
895
- return "border-success/30 bg-success/10 text-success";
894
+ return "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]";
896
895
  case "warning":
897
- return "border-warning/30 bg-warning/10 text-warning";
896
+ return "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]";
898
897
  case "danger":
899
- return "border-destructive/30 bg-destructive/10 text-destructive";
898
+ return "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]";
900
899
  default:
901
900
  return "border-border bg-muted text-muted-foreground";
902
901
  }
@@ -906,7 +905,7 @@ function navigateToHref(href) {
906
905
  window.location.assign(href);
907
906
  }
908
907
  function useResizable(defaultWidth, min, max, onChange) {
909
- const [width, setWidth] = useState4(defaultWidth);
908
+ const [width, setWidth] = useState3(defaultWidth);
910
909
  const dragging = useRef3(false);
911
910
  const startX = useRef3(0);
912
911
  const startW = useRef3(0);
@@ -953,8 +952,8 @@ function SessionSidebar({
953
952
  onWidthChange,
954
953
  renderItemActions
955
954
  }) {
956
- const [query, setQuery] = useState4("");
957
- const [activeFilterId, setActiveFilterId] = useState4(defaultFilterId ?? filters[0]?.id ?? "all");
955
+ const [query, setQuery] = useState3("");
956
+ const [activeFilterId, setActiveFilterId] = useState3(defaultFilterId ?? filters[0]?.id ?? "all");
958
957
  const activeSessions = useNavbarSessions(projectId);
959
958
  const sessionsById = useMemo3(
960
959
  () => new Map(activeSessions.map((session) => [session.sessionId, session])),
@@ -996,21 +995,21 @@ function SessionSidebar({
996
995
  /* @__PURE__ */ jsxs7("div", { className: "border-b border-border px-3 py-2.5", children: [
997
996
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between gap-2", children: [
998
997
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 min-w-0", children: [
999
- /* @__PURE__ */ jsx7("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary", children: /* @__PURE__ */ jsx7(MessageSquareText, { className: "h-3 w-3" }) }),
998
+ /* @__PURE__ */ jsx7("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary", children: /* @__PURE__ */ jsx7(MessageSquareText, { className: "h-3 w-3" }) }),
1000
999
  /* @__PURE__ */ jsxs7("div", { className: "min-w-0", children: [
1001
1000
  /* @__PURE__ */ jsx7("div", { className: "truncate text-xs font-semibold text-foreground", children: title }),
1002
1001
  subtitle && /* @__PURE__ */ jsx7("div", { className: "truncate text-[10px] text-muted-foreground", children: subtitle })
1003
1002
  ] })
1004
1003
  ] }),
1005
1004
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-1.5 shrink-0", children: [
1006
- runningCount > 0 && /* @__PURE__ */ jsx7("span", { className: "rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-medium text-primary", children: runningCount }),
1005
+ runningCount > 0 && /* @__PURE__ */ jsx7("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-1.5 py-px text-[10px] font-medium text-primary", children: runningCount }),
1007
1006
  onCreate && /* @__PURE__ */ jsx7(
1008
1007
  "button",
1009
1008
  {
1010
1009
  type: "button",
1011
1010
  onClick: onCreate,
1012
1011
  title: createLabel,
1013
- className: "flex h-6 w-6 items-center justify-center rounded-md border border-border text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground",
1012
+ className: "flex h-6 w-6 items-center justify-center rounded-[var(--radius-sm)] border border-border text-muted-foreground transition-colors hover:bg-[var(--accent-surface-soft)] hover:text-foreground",
1014
1013
  children: /* @__PURE__ */ jsx7(Plus, { className: "h-3 w-3" })
1015
1014
  }
1016
1015
  )
@@ -1025,7 +1024,7 @@ function SessionSidebar({
1025
1024
  onChange: (event) => setQuery(event.target.value),
1026
1025
  placeholder: searchPlaceholder,
1027
1026
  "aria-label": searchPlaceholder,
1028
- className: "h-7 w-full rounded-md border border-border bg-background pl-7 pr-2 text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
1027
+ className: "h-7 w-full rounded-[var(--radius-sm)] border border-border bg-muted pl-7 pr-2 text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-accent)]"
1029
1028
  }
1030
1029
  )
1031
1030
  ] }),
@@ -1038,7 +1037,7 @@ function SessionSidebar({
1038
1037
  onClick: () => setActiveFilterId(filter.id),
1039
1038
  className: cn(
1040
1039
  "inline-flex items-center gap-1 rounded-full border px-2 py-px text-[10px] font-medium transition-colors",
1041
- isSelected ? "border-primary/30 bg-primary/10 text-primary" : "border-border text-muted-foreground hover:text-foreground"
1040
+ isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary" : "border-border text-muted-foreground hover:text-foreground"
1042
1041
  ),
1043
1042
  children: [
1044
1043
  /* @__PURE__ */ jsx7("span", { children: filter.label }),
@@ -1049,7 +1048,7 @@ function SessionSidebar({
1049
1048
  );
1050
1049
  }) })
1051
1050
  ] }),
1052
- /* @__PURE__ */ jsx7("nav", { "aria-label": "Sessions", className: "flex-1 overflow-y-auto px-1.5 py-1.5", children: visibleItems.length === 0 ? /* @__PURE__ */ jsx7("div", { className: "rounded-md border border-dashed border-border px-3 py-3 text-xs text-muted-foreground", children: query.trim() ? `No sessions match "${query.trim()}".` : emptyMessage }) : /* @__PURE__ */ jsx7("ul", { className: "space-y-px", children: visibleItems.map((item) => {
1051
+ /* @__PURE__ */ jsx7("nav", { "aria-label": "Sessions", className: "flex-1 overflow-y-auto px-1.5 py-1.5", children: visibleItems.length === 0 ? /* @__PURE__ */ jsx7("div", { className: "rounded-[var(--radius-lg)] border border-dashed border-border px-3 py-3 text-xs text-muted-foreground", children: query.trim() ? `No sessions match "${query.trim()}".` : emptyMessage }) : /* @__PURE__ */ jsx7("ul", { className: "space-y-px", children: visibleItems.map((item) => {
1053
1052
  const session = sessionsById.get(item.id) ?? null;
1054
1053
  const isActive = currentItemId === item.id;
1055
1054
  const status = session?.status ?? item.status;
@@ -1061,8 +1060,8 @@ function SessionSidebar({
1061
1060
  "div",
1062
1061
  {
1063
1062
  className: cn(
1064
- "group relative flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors",
1065
- isActive ? "bg-accent text-accent-foreground shadow-[inset_2px_0_0_hsl(var(--primary))]" : "text-foreground hover:bg-accent/50"
1063
+ "group relative flex items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 transition-colors",
1064
+ isActive ? "bg-[var(--accent-surface-soft)] text-foreground shadow-[inset_2px_0_0_hsl(var(--primary))]" : "text-muted-foreground hover:bg-muted"
1066
1065
  ),
1067
1066
  children: [
1068
1067
  /* @__PURE__ */ jsxs7(
@@ -1083,7 +1082,7 @@ function SessionSidebar({
1083
1082
  /* @__PURE__ */ jsxs7("div", { className: "min-w-0 flex-1", children: [
1084
1083
  /* @__PURE__ */ jsx7("div", { className: cn(
1085
1084
  "truncate text-xs",
1086
- isActive ? "font-semibold" : "font-medium"
1085
+ isActive ? "font-semibold text-foreground" : "font-medium"
1087
1086
  ), children: item.title }),
1088
1087
  item.subtitle && /* @__PURE__ */ jsx7("div", { className: "truncate text-[10px] leading-tight text-muted-foreground", children: item.subtitle })
1089
1088
  ] })
@@ -1130,7 +1129,7 @@ function SessionSidebar({
1130
1129
  }
1131
1130
  navigateToHref(link.href);
1132
1131
  },
1133
- className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground",
1132
+ className: "flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
1134
1133
  children: [
1135
1134
  /* @__PURE__ */ jsx7(Icon, { className: "h-3.5 w-3.5 shrink-0" }),
1136
1135
  /* @__PURE__ */ jsx7("span", { className: "truncate", children: link.label })
@@ -1142,7 +1141,7 @@ function SessionSidebar({
1142
1141
  resizable && /* @__PURE__ */ jsx7(
1143
1142
  "div",
1144
1143
  {
1145
- className: "absolute top-0 right-0 bottom-0 w-1 cursor-col-resize hover:bg-primary/20 active:bg-primary/30 transition-colors",
1144
+ className: "absolute top-0 right-0 bottom-0 w-1 cursor-col-resize hover:bg-[var(--accent-surface-soft)] active:bg-[var(--border-accent)] transition-colors",
1146
1145
  onPointerDown: resize.onPointerDown,
1147
1146
  onPointerMove: resize.onPointerMove,
1148
1147
  onPointerUp: resize.onPointerUp,
@@ -1159,13 +1158,13 @@ import { Activity, AlertCircle as AlertCircle2, LoaderCircle, MessageSquareText
1159
1158
  import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1160
1159
  function SessionStatusDot({ session }) {
1161
1160
  if (session.status === "error") {
1162
- return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3 w-3 text-destructive" });
1161
+ return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3 w-3 text-[var(--surface-danger-text)]" });
1163
1162
  }
1164
1163
  if (session.status === "running") {
1165
1164
  return /* @__PURE__ */ jsx8(LoaderCircle, { className: "h-3 w-3 animate-spin text-primary" });
1166
1165
  }
1167
1166
  if (session.status === "attention-needed") {
1168
- return /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3 text-warning" });
1167
+ return /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3 text-[var(--surface-warning-text)]" });
1169
1168
  }
1170
1169
  return /* @__PURE__ */ jsx8("span", { className: "h-1.5 w-1.5 rounded-full bg-muted-foreground/40" });
1171
1170
  }
@@ -1187,7 +1186,7 @@ function SessionActivityMonitor({
1187
1186
  const sessionLookup = Object.keys(sessionsById).length > 0 ? sessionsById : Object.fromEntries(trackedSessions.map((session) => [session.sessionId, session]));
1188
1187
  if (projectActivity.length === 0) {
1189
1188
  if (compact) return null;
1190
- return /* @__PURE__ */ jsx8("div", { className: cn("rounded-md border border-dashed border-border bg-muted px-3 py-2.5 text-xs text-muted-foreground", className), children: emptyMessage });
1189
+ return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-lg)] border border-border bg-muted px-3 py-2.5 text-xs text-muted-foreground", className), children: emptyMessage });
1191
1190
  }
1192
1191
  return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-1.5", className), children: [
1193
1192
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between", children: [
@@ -1195,14 +1194,14 @@ function SessionActivityMonitor({
1195
1194
  /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3" }),
1196
1195
  "Active"
1197
1196
  ] }),
1198
- totalRunning > 0 && /* @__PURE__ */ jsx8("span", { className: "rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-medium text-primary", children: totalRunning })
1197
+ totalRunning > 0 && /* @__PURE__ */ jsx8("span", { className: "rounded-full border border-primary/30 bg-[var(--accent-surface-soft)] px-1.5 py-px text-[10px] font-medium text-primary", children: totalRunning })
1199
1198
  ] }),
1200
1199
  /* @__PURE__ */ jsx8("div", { className: "space-y-1", children: projectActivity.map((project) => {
1201
1200
  const label = resolveProjectLabel?.(project.projectId, project.projectLabel) ?? project.projectLabel ?? String(project.projectId);
1202
1201
  return /* @__PURE__ */ jsxs8(
1203
1202
  "div",
1204
1203
  {
1205
- className: "rounded-md border border-border bg-muted",
1204
+ className: "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card",
1206
1205
  children: [
1207
1206
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-2 px-2.5 py-1.5", children: [
1208
1207
  /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
@@ -1218,7 +1217,7 @@ function SessionActivityMonitor({
1218
1217
  " live"
1219
1218
  ] })
1220
1219
  ] }),
1221
- !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "border-t border-border px-1 py-0.5", children: project.runningSessionIds.map((sessionId) => {
1220
+ !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "border-t border-border bg-muted px-1 py-0.5", children: project.runningSessionIds.map((sessionId) => {
1222
1221
  const session = sessionLookup[sessionId];
1223
1222
  if (!session) return null;
1224
1223
  return /* @__PURE__ */ jsxs8(
@@ -1232,10 +1231,10 @@ function SessionActivityMonitor({
1232
1231
  }
1233
1232
  navigateToSession(session);
1234
1233
  },
1235
- className: "flex w-full items-center gap-2 rounded-sm px-2 py-1 text-left transition-colors hover:bg-accent",
1234
+ className: "flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1 text-left transition-colors hover:bg-[var(--accent-surface-soft)]",
1236
1235
  children: [
1237
1236
  /* @__PURE__ */ jsx8(SessionStatusDot, { session }),
1238
- /* @__PURE__ */ jsx8("span", { className: "min-w-0 truncate text-xs text-foreground", children: session.title ?? "Untitled" }),
1237
+ /* @__PURE__ */ jsx8("span", { className: "min-w-0 truncate text-xs text-muted-foreground", children: session.title ?? "Untitled" }),
1239
1238
  /* @__PURE__ */ jsx8(MessageSquareText2, { className: "ml-auto h-3 w-3 shrink-0 text-muted-foreground" })
1240
1239
  ]
1241
1240
  },
@@ -1251,7 +1250,7 @@ function SessionActivityMonitor({
1251
1250
  }
1252
1251
 
1253
1252
  // src/workspace/sandbox-workbench.tsx
1254
- import { useEffect as useEffect3, useMemo as useMemo4, useState as useState5 } from "react";
1253
+ import { useEffect as useEffect3, useMemo as useMemo4, useState as useState4 } from "react";
1255
1254
  import {
1256
1255
  Bot,
1257
1256
  Boxes,
@@ -1286,15 +1285,15 @@ function ArtifactTabs({
1286
1285
  onClose
1287
1286
  }) {
1288
1287
  if (artifacts.length === 0) return null;
1289
- return /* @__PURE__ */ jsx9("div", { className: "flex items-center overflow-x-auto border-b border-[var(--border-subtle)] bg-[var(--bg-dark)]", children: artifacts.map((artifact) => {
1288
+ return /* @__PURE__ */ jsx9("div", { className: "flex items-center overflow-x-auto border-b border-border bg-muted/20", children: artifacts.map((artifact) => {
1290
1289
  const Icon = getArtifactTabIcon(artifact.kind);
1291
1290
  const isActive = artifact.id === activeArtifactId;
1292
1291
  return /* @__PURE__ */ jsxs9(
1293
1292
  "div",
1294
1293
  {
1295
1294
  className: cn(
1296
- "group flex shrink-0 items-center border-r border-[var(--border-subtle)]",
1297
- isActive ? "border-b-2 border-b-[var(--brand-cool)] bg-[var(--bg-card)] text-[var(--text-primary)]" : "text-[var(--text-muted)] hover:bg-[var(--bg-elevated)]"
1295
+ "group flex shrink-0 items-center border-r border-border bg-background relative",
1296
+ isActive ? "text-foreground after:absolute after:top-0 after:left-0 after:right-0 after:h-[2px] after:bg-primary" : "text-muted-foreground hover:bg-muted/50 cursor-pointer"
1298
1297
  ),
1299
1298
  children: [
1300
1299
  /* @__PURE__ */ jsxs9(
@@ -1302,7 +1301,7 @@ function ArtifactTabs({
1302
1301
  {
1303
1302
  type: "button",
1304
1303
  onClick: () => onSelect(artifact.id),
1305
- className: "flex min-w-0 items-center gap-2 px-3 py-2 text-xs transition-colors hover:text-[var(--text-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--brand-cool)]/60",
1304
+ className: "flex min-w-0 items-center gap-2 px-3 py-2 text-[12px] uppercase tracking-wider font-medium transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary/60",
1306
1305
  children: [
1307
1306
  /* @__PURE__ */ jsx9(Icon, { className: "h-3.5 w-3.5 shrink-0" }),
1308
1307
  /* @__PURE__ */ jsx9("span", { className: "max-w-[14rem] truncate", children: artifactTabLabel(artifact) })
@@ -1315,7 +1314,7 @@ function ArtifactTabs({
1315
1314
  type: "button",
1316
1315
  "aria-label": `Close ${artifactTabLabel(artifact)}`,
1317
1316
  onClick: () => onClose(artifact.id),
1318
- className: "mr-1 rounded p-1 opacity-0 transition-opacity hover:bg-[var(--bg-hover)] hover:text-[var(--text-primary)] focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]/60 group-hover:opacity-100",
1317
+ className: "mr-1 rounded-[2px] p-1 opacity-0 transition-opacity hover:bg-accent hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/60 group-hover:opacity-100",
1319
1318
  children: /* @__PURE__ */ jsx9(X4, { className: "h-3 w-3" })
1320
1319
  }
1321
1320
  )
@@ -1397,17 +1396,17 @@ function regionHeader(sections, fallback) {
1397
1396
  }
1398
1397
  switch (sections[0]?.key) {
1399
1398
  case "directory":
1400
- return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-[var(--text-muted)]", children: [
1399
+ return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: [
1401
1400
  /* @__PURE__ */ jsx9(FolderTree2, { className: "h-3.5 w-3.5" }),
1402
1401
  "Directory"
1403
1402
  ] });
1404
1403
  case "artifacts":
1405
- return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-[var(--text-muted)]", children: [
1404
+ return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: [
1406
1405
  /* @__PURE__ */ jsx9(LayoutPanelTop, { className: "h-3.5 w-3.5" }),
1407
1406
  "Artifacts"
1408
1407
  ] });
1409
1408
  case "runtime":
1410
- return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-[var(--text-muted)]", children: [
1409
+ return /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: [
1411
1410
  /* @__PURE__ */ jsx9(Bot, { className: "h-3.5 w-3.5" }),
1412
1411
  "Runtime"
1413
1412
  ] });
@@ -1444,7 +1443,7 @@ function SandboxWorkbench({
1444
1443
  emptyArtifactState,
1445
1444
  className
1446
1445
  }) {
1447
- const [uncontrolledArtifactId, setUncontrolledArtifactId] = useState5(
1446
+ const [uncontrolledArtifactId, setUncontrolledArtifactId] = useState4(
1448
1447
  activeArtifactId ?? artifacts[0]?.id
1449
1448
  );
1450
1449
  useEffect3(() => {
@@ -1466,11 +1465,11 @@ function SandboxWorkbench({
1466
1465
  }
1467
1466
  onArtifactChange?.(artifactId);
1468
1467
  };
1469
- const centerHeader = /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 items-start justify-between gap-4 rounded-[var(--radius-xl)] border border-[var(--border-subtle)] bg-[var(--depth-3)] px-4 py-3.5", children: [
1468
+ const centerHeader = /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 items-start justify-between gap-4 rounded-[var(--radius-xl)] border border-border bg-muted/50 px-4 py-3.5", children: [
1470
1469
  /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
1471
- /* @__PURE__ */ jsx9("div", { className: "text-[10px] font-semibold uppercase tracking-[0.18em] text-[var(--brand-cool)]", children: "Tangle Sandbox" }),
1472
- /* @__PURE__ */ jsx9("div", { className: "truncate text-[17px] font-semibold tracking-[0.01em] text-[var(--text-primary)]", children: title }),
1473
- subtitle && /* @__PURE__ */ jsx9("div", { className: "truncate text-sm text-[var(--text-muted)]", children: subtitle })
1470
+ /* @__PURE__ */ jsx9("div", { className: "text-[10px] font-semibold uppercase tracking-[0.18em] text-primary", children: "Tangle Sandbox" }),
1471
+ /* @__PURE__ */ jsx9("div", { className: "truncate text-[17px] font-semibold tracking-[0.01em] text-foreground", children: title }),
1472
+ subtitle && /* @__PURE__ */ jsx9("div", { className: "truncate text-sm text-muted-foreground", children: subtitle })
1474
1473
  ] }),
1475
1474
  /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 flex-wrap items-center justify-end gap-2", children: [
1476
1475
  status,
@@ -1489,7 +1488,7 @@ function SandboxWorkbench({
1489
1488
  meta: session.meta,
1490
1489
  headerActions: session.headerActions,
1491
1490
  className: "h-full",
1492
- contentClassName: "bg-[var(--bg-dark)]",
1491
+ contentClassName: "bg-background",
1493
1492
  children: /* @__PURE__ */ jsx9(
1494
1493
  ChatContainer,
1495
1494
  {
@@ -1500,7 +1499,7 @@ function SandboxWorkbench({
1500
1499
  )
1501
1500
  }
1502
1501
  );
1503
- const artifactPanel = artifacts.length > 0 ? /* @__PURE__ */ jsxs9("section", { className: "flex h-full min-h-0 flex-col bg-[var(--bg-dark)]", children: [
1502
+ const artifactPanel = artifacts.length > 0 ? /* @__PURE__ */ jsxs9("section", { className: "flex h-full min-h-0 flex-col bg-background", children: [
1504
1503
  /* @__PURE__ */ jsx9(
1505
1504
  ArtifactTabs,
1506
1505
  {
@@ -1510,7 +1509,7 @@ function SandboxWorkbench({
1510
1509
  onClose: onArtifactClose
1511
1510
  }
1512
1511
  ),
1513
- /* @__PURE__ */ jsx9("div", { className: "min-h-0 flex-1 overflow-auto bg-[var(--bg-dark)]", children: activeArtifact ? renderArtifact(activeArtifact) : /* @__PURE__ */ jsx9("div", { className: "flex h-full items-center justify-center p-6", children: emptyArtifactState ?? /* @__PURE__ */ jsx9(
1512
+ /* @__PURE__ */ jsx9("div", { className: "min-h-0 flex-1 overflow-auto bg-background", children: activeArtifact ? renderArtifact(activeArtifact) : /* @__PURE__ */ jsx9("div", { className: "flex h-full items-center justify-center p-6", children: emptyArtifactState ?? /* @__PURE__ */ jsx9(
1514
1513
  EmptyState,
1515
1514
  {
1516
1515
  icon: /* @__PURE__ */ jsx9(Boxes, { className: "h-8 w-8" }),
@@ -1548,7 +1547,7 @@ function SandboxWorkbench({
1548
1547
  const left = renderRegion(regionSections.left, "left");
1549
1548
  const right = renderRegion(regionSections.right, "right");
1550
1549
  const bottom = renderRegion(regionSections.bottom, "bottom");
1551
- const genericPanelsHeader = /* @__PURE__ */ jsx9("span", { className: "text-xs font-semibold uppercase tracking-[0.12em] text-[var(--text-muted)]", children: "Workspace Panels" });
1550
+ const genericPanelsHeader = /* @__PURE__ */ jsx9("span", { className: "text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: "Workspace Panels" });
1552
1551
  return /* @__PURE__ */ jsx9(
1553
1552
  WorkspaceLayout,
1554
1553
  {
@@ -1560,7 +1559,7 @@ function SandboxWorkbench({
1560
1559
  rightHeader: right ? regionHeader(regionSections.right, genericPanelsHeader) : void 0,
1561
1560
  bottom,
1562
1561
  bottomHeader: bottom ? regionHeader(regionSections.bottom, genericPanelsHeader) : void 0,
1563
- theme: layout?.theme ?? "operator",
1562
+ theme: layout?.theme,
1564
1563
  density: layout?.density ?? "comfortable",
1565
1564
  persistenceKey: layout?.persistenceKey,
1566
1565
  defaultLeftOpen: layout?.defaultLeftOpen ?? Boolean(left),
@@ -1586,7 +1585,7 @@ function AgentWorkbench(props) {
1586
1585
  ...props.session,
1587
1586
  eyebrow: props.session.eyebrow ?? "Agent Session",
1588
1587
  title: props.session.title ?? /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-2", children: [
1589
- /* @__PURE__ */ jsx9(Bot, { className: "h-4 w-4 text-[var(--brand-cool)]" }),
1588
+ /* @__PURE__ */ jsx9(Bot, { className: "h-4 w-4 text-primary" }),
1590
1589
  "Execution timeline"
1591
1590
  ] })
1592
1591
  }
@@ -1595,23 +1594,23 @@ function AgentWorkbench(props) {
1595
1594
  }
1596
1595
 
1597
1596
  // src/workspace/audit-results.tsx
1598
- import { useState as useState6 } from "react";
1597
+ import { useState as useState5 } from "react";
1599
1598
  import { CheckCircle as CheckCircle2, XCircle, ChevronRight, Shield } from "lucide-react";
1600
1599
  import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
1601
1600
  function AuditResults({ forms, crossFormChecks = [], overallScore, className }) {
1602
1601
  const totalPassed = forms.reduce((s, f) => s + f.passed, 0);
1603
1602
  const totalChecks = forms.reduce((s, f) => s + f.passed + f.failed, 0);
1604
1603
  return /* @__PURE__ */ jsxs10("div", { className: cn("space-y-3 p-3", className), children: [
1605
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-3 py-2 rounded-[var(--radius-md)] bg-[var(--bg-input)] border border-[var(--border-subtle)]", children: [
1604
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-3 py-2 rounded-[var(--radius-md)] bg-background border border-border", children: [
1606
1605
  /* @__PURE__ */ jsx10(Shield, { className: cn("h-5 w-5", totalChecks === totalPassed ? "text-[var(--code-success)]" : "text-[var(--code-number)]") }),
1607
1606
  /* @__PURE__ */ jsxs10("div", { children: [
1608
- /* @__PURE__ */ jsxs10("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: [
1607
+ /* @__PURE__ */ jsxs10("div", { className: "text-sm font-semibold text-foreground", children: [
1609
1608
  totalPassed,
1610
1609
  "/",
1611
1610
  totalChecks,
1612
1611
  " checks passed"
1613
1612
  ] }),
1614
- overallScore !== void 0 && /* @__PURE__ */ jsxs10("div", { className: "text-xs text-[var(--text-muted)]", children: [
1613
+ overallScore !== void 0 && /* @__PURE__ */ jsxs10("div", { className: "text-xs text-muted-foreground", children: [
1615
1614
  "Score: ",
1616
1615
  overallScore,
1617
1616
  "/100"
@@ -1620,40 +1619,40 @@ function AuditResults({ forms, crossFormChecks = [], overallScore, className })
1620
1619
  ] }),
1621
1620
  forms.map((form) => /* @__PURE__ */ jsx10(FormAuditCard, { form }, form.formId)),
1622
1621
  crossFormChecks.length > 0 && /* @__PURE__ */ jsxs10("div", { children: [
1623
- /* @__PURE__ */ jsx10("div", { className: "text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider mb-1", children: "Cross-Form Checks" }),
1622
+ /* @__PURE__ */ jsx10("div", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-1", children: "Cross-Form Checks" }),
1624
1623
  crossFormChecks.map((check, i) => /* @__PURE__ */ jsx10(CheckRow, { check }, i))
1625
1624
  ] })
1626
1625
  ] });
1627
1626
  }
1628
1627
  function FormAuditCard({ form }) {
1629
- const [expanded, setExpanded] = useState6(form.failed > 0);
1628
+ const [expanded, setExpanded] = useState5(form.failed > 0);
1630
1629
  const allPassed = form.failed === 0 && form.found;
1631
- return /* @__PURE__ */ jsxs10("div", { className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] overflow-hidden", children: [
1630
+ return /* @__PURE__ */ jsxs10("div", { className: "rounded-[var(--radius-md)] border border-border overflow-hidden", children: [
1632
1631
  /* @__PURE__ */ jsxs10(
1633
1632
  "button",
1634
1633
  {
1635
1634
  onClick: () => setExpanded(!expanded),
1636
- className: "flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-[var(--bg-hover)] transition-colors",
1635
+ className: "flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-accent transition-colors",
1637
1636
  children: [
1638
1637
  allPassed ? /* @__PURE__ */ jsx10(CheckCircle2, { className: "h-4 w-4 text-[var(--code-success)] shrink-0" }) : !form.found ? /* @__PURE__ */ jsx10(XCircle, { className: "h-4 w-4 text-[var(--code-error)] shrink-0" }) : /* @__PURE__ */ jsx10(XCircle, { className: "h-4 w-4 text-[var(--code-number)] shrink-0" }),
1639
- /* @__PURE__ */ jsx10("span", { className: "text-sm font-medium text-[var(--text-primary)] flex-1", children: form.formName || form.formId }),
1640
- /* @__PURE__ */ jsxs10("span", { className: cn("text-xs tabular-nums", allPassed ? "text-[var(--code-success)]" : "text-[var(--text-muted)]"), children: [
1638
+ /* @__PURE__ */ jsx10("span", { className: "text-sm font-medium text-foreground flex-1", children: form.formName || form.formId }),
1639
+ /* @__PURE__ */ jsxs10("span", { className: cn("text-xs tabular-nums", allPassed ? "text-[var(--code-success)]" : "text-muted-foreground"), children: [
1641
1640
  form.passed,
1642
1641
  "/",
1643
1642
  form.passed + form.failed
1644
1643
  ] }),
1645
- /* @__PURE__ */ jsx10(ChevronRight, { className: cn("h-3 w-3 text-[var(--text-muted)] transition-transform", expanded && "rotate-90") })
1644
+ /* @__PURE__ */ jsx10(ChevronRight, { className: cn("h-3 w-3 text-muted-foreground transition-transform", expanded && "rotate-90") })
1646
1645
  ]
1647
1646
  }
1648
1647
  ),
1649
- expanded && /* @__PURE__ */ jsx10("div", { className: "border-t border-[var(--border-subtle)] px-3 py-1.5 space-y-0.5", children: form.checks.map((check, i) => /* @__PURE__ */ jsx10(CheckRow, { check }, i)) })
1648
+ expanded && /* @__PURE__ */ jsx10("div", { className: "border-t border-border px-3 py-1.5 space-y-0.5", children: form.checks.map((check, i) => /* @__PURE__ */ jsx10(CheckRow, { check }, i)) })
1650
1649
  ] });
1651
1650
  }
1652
1651
  function CheckRow({ check }) {
1653
1652
  return /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 py-1 text-xs", children: [
1654
1653
  check.passed ? /* @__PURE__ */ jsx10(CheckCircle2, { className: "h-3 w-3 text-[var(--code-success)] shrink-0" }) : /* @__PURE__ */ jsx10(XCircle, { className: "h-3 w-3 text-[var(--code-error)] shrink-0" }),
1655
- /* @__PURE__ */ jsx10("span", { className: "text-[var(--text-secondary)] flex-1 truncate", children: check.label }),
1656
- /* @__PURE__ */ jsx10("span", { className: "text-[var(--text-muted)] tabular-nums shrink-0", children: check.passed ? String(check.actual ?? check.expected) : `${check.actual ?? "missing"} \u2260 ${check.expected}` })
1654
+ /* @__PURE__ */ jsx10("span", { className: "text-foreground flex-1 truncate", children: check.label }),
1655
+ /* @__PURE__ */ jsx10("span", { className: "text-muted-foreground tabular-nums shrink-0", children: check.passed ? String(check.actual ?? check.expected) : `${check.actual ?? "missing"} \u2260 ${check.expected}` })
1657
1656
  ] });
1658
1657
  }
1659
1658