@tangle-network/sandbox-ui 0.45.0 → 0.47.0

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 (45) hide show
  1. package/dist/{WorkflowGraph-7YYGIBNV.js → WorkflowGraph-EOV2P5AM.js} +2 -1
  2. package/dist/assets.js +1 -0
  3. package/dist/assistant.js +2 -1
  4. package/dist/auth.js +1 -0
  5. package/dist/chat.js +4 -3
  6. package/dist/{chunk-6NDOA4SB.js → chunk-2ISY4R72.js} +112 -104
  7. package/dist/{chunk-KIRJZUX2.js → chunk-BR2LMUAE.js} +61 -34
  8. package/dist/{chunk-H7GMPMPB.js → chunk-GTJ5PSK5.js} +90 -3
  9. package/dist/{chunk-CUUUFJF5.js → chunk-KOUYJ6QP.js} +23 -23
  10. package/dist/{chunk-3RNYDTQ3.js → chunk-LQHTCM56.js} +21 -27
  11. package/dist/chunk-NXUSLH7H.js +7528 -0
  12. package/dist/{chunk-2XNT74ZX.js → chunk-OMUIPJQZ.js} +28 -20
  13. package/dist/{chunk-KCWIC3SJ.js → chunk-PZ62T5PM.js} +281 -214
  14. package/dist/chunk-U67V476Y.js +35 -0
  15. package/dist/chunk-VIREDUBF.js +215 -0
  16. package/dist/dashboard.d.ts +82 -66
  17. package/dist/dashboard.js +5 -4
  18. package/dist/editor.js +2 -0
  19. package/dist/files.d.ts +5 -0
  20. package/dist/files.js +1 -0
  21. package/dist/globals.css +1170 -47
  22. package/dist/hooks.js +1 -0
  23. package/dist/index.d.ts +3 -1
  24. package/dist/index.js +95 -65
  25. package/dist/integrations.d.ts +5 -6
  26. package/dist/integrations.js +158 -63
  27. package/dist/markdown.js +2 -0
  28. package/dist/openui.d.ts +0 -5
  29. package/dist/openui.js +1 -0
  30. package/dist/pages.d.ts +1 -1
  31. package/dist/pages.js +89 -88
  32. package/dist/ports-list-DfG0VfPt.d.ts +17 -0
  33. package/dist/primitives.js +1 -0
  34. package/dist/run.js +1 -0
  35. package/dist/sdk-hooks.js +1 -0
  36. package/dist/stores.js +1 -0
  37. package/dist/styles.css +1170 -47
  38. package/dist/terminal.js +5 -209
  39. package/dist/utils.js +1 -0
  40. package/dist/workbench.d.ts +227 -0
  41. package/dist/workbench.js +40 -0
  42. package/dist/workflows.js +2 -1
  43. package/dist/workspace.d.ts +6 -2
  44. package/dist/workspace.js +2 -1
  45. package/package.json +13 -7
@@ -82,7 +82,7 @@ function ResizeHandle({ label, onDragStart, onStep, className }) {
82
82
  className
83
83
  ),
84
84
  children: [
85
- /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border transition-colors" }),
85
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-[var(--md3-outline-variant)] transition-colors" }),
86
86
  /* @__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" })
87
87
  ]
88
88
  }
@@ -119,7 +119,7 @@ function HorizontalResizeHandle({ label, onDragStart, onStep, className }) {
119
119
  className
120
120
  ),
121
121
  children: [
122
- /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-border transition-colors" }),
122
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-[var(--md3-outline-variant)] transition-colors" }),
123
123
  /* @__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" })
124
124
  ]
125
125
  }
@@ -140,11 +140,11 @@ function MobileDrawer({ side, title, header, onClose, children }) {
140
140
  "aside",
141
141
  {
142
142
  className: cn(
143
- "relative flex h-full w-[min(88vw,24rem)] flex-col border-border bg-background shadow-[var(--shadow-dropdown)]",
143
+ "relative flex h-full w-[min(88vw,24rem)] flex-col border-[var(--md3-outline-variant)] bg-surface-container-highest shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]",
144
144
  side === "left" ? "border-r" : "ml-auto border-l"
145
145
  ),
146
146
  children: [
147
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-border px-3 py-2", children: [
147
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--md3-outline-variant)] px-3 py-2", children: [
148
148
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: header ?? /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-foreground", children: title }) }),
149
149
  /* @__PURE__ */ jsx(
150
150
  "button",
@@ -298,9 +298,9 @@ function WorkspaceLayout({
298
298
  {
299
299
  "aria-label": leftLabel,
300
300
  style: leftStyle,
301
- className: "hidden shrink-0 border-r border-border bg-background lg:flex lg:flex-col",
301
+ className: "hidden shrink-0 border-r border-[var(--md3-outline-variant)] bg-surface-container-low lg:flex lg:flex-col",
302
302
  children: [
303
- 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: [
303
+ leftHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--md3-outline-variant)] px-3 py-1.5 bg-surface-container-high", children: [
304
304
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: leftHeader }),
305
305
  /* @__PURE__ */ jsx(
306
306
  "button",
@@ -327,7 +327,7 @@ function WorkspaceLayout({
327
327
  )
328
328
  ] }),
329
329
  /* @__PURE__ */ jsxs("main", { className: "flex min-w-0 flex-1 flex-col", children: [
330
- (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: [
330
+ (centerHeader || left || right || bottom) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-1.5", children: [
331
331
  left && !leftOpen && /* @__PURE__ */ jsx(
332
332
  "button",
333
333
  {
@@ -374,10 +374,10 @@ function WorkspaceLayout({
374
374
  "section",
375
375
  {
376
376
  "aria-label": bottomLabel,
377
- className: "border-t border-border bg-card shrink-0",
377
+ className: "border-t border-[var(--md3-outline-variant)] bg-surface-container shrink-0",
378
378
  style: { height: `${bottomHeight}px` },
379
379
  children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col", children: [
380
- /* @__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: [
380
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--md3-outline-variant)] px-3 py-1.5 bg-surface-container-high shrink-0", children: [
381
381
  /* @__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" }) }),
382
382
  /* @__PURE__ */ jsx(
383
383
  "button",
@@ -395,7 +395,7 @@ function WorkspaceLayout({
395
395
  }
396
396
  )
397
397
  ] }),
398
- centerFooter && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-border bg-background", children: centerFooter })
398
+ centerFooter && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-[var(--md3-outline-variant)] bg-surface-container-low", children: centerFooter })
399
399
  ] }),
400
400
  desktop && right && rightOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
401
401
  resizable && /* @__PURE__ */ jsx(
@@ -411,9 +411,9 @@ function WorkspaceLayout({
411
411
  {
412
412
  "aria-label": rightLabel,
413
413
  style: rightStyle,
414
- className: "hidden shrink-0 border-l border-border bg-background lg:flex lg:flex-col",
414
+ className: "hidden shrink-0 border-l border-[var(--md3-outline-variant)] bg-surface-container-low lg:flex lg:flex-col",
415
415
  children: [
416
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-1.5 bg-muted/20", children: [
416
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-[var(--md3-outline-variant)] px-3 py-1.5 bg-surface-container-high", children: [
417
417
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: rightHeader ?? /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-foreground", children: "Artifacts" }) }),
418
418
  /* @__PURE__ */ jsx(
419
419
  "button",
@@ -599,36 +599,52 @@ import { Binary, ShieldCheck, TerminalSquare } from "lucide-react";
599
599
  import { Loader2, AlertCircle, CheckCircle, Wifi } from "lucide-react";
600
600
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
601
601
  var BANNER_STYLES = {
602
- provisioning: { bg: "bg-primary/5", border: "border-primary/20", icon: Loader2 },
603
- connecting: { bg: "bg-[var(--code-number)]/5", border: "border-[var(--code-number)]/20", icon: Wifi },
604
- error: { bg: "bg-[var(--code-error)]/5", border: "border-[var(--code-error)]/20", icon: AlertCircle },
605
- success: { bg: "bg-[var(--code-success)]/5", border: "border-[var(--code-success)]/20", icon: CheckCircle },
606
- info: { bg: "bg-muted/50", border: "border-border", icon: AlertCircle }
602
+ provisioning: { bg: "bg-primary/5", border: "border-primary/20", text: "text-primary", icon: Loader2 },
603
+ connecting: { bg: "bg-[var(--code-number)]/5", border: "border-[var(--code-number)]/20", text: "text-[var(--code-number)]", icon: Wifi },
604
+ error: { bg: "bg-[var(--code-error)]/5", border: "border-[var(--code-error)]/20", text: "text-[var(--code-error)]", icon: AlertCircle },
605
+ success: { bg: "bg-[var(--code-success)]/5", border: "border-[var(--code-success)]/20", text: "text-[var(--code-success)]", icon: CheckCircle },
606
+ info: { bg: "bg-surface-container-high", border: "border-[var(--md3-outline-variant)]", text: "text-muted-foreground", icon: AlertCircle }
607
607
  };
608
608
  function StatusBanner({ type, message, detail, onDismiss, className }) {
609
609
  const style = BANNER_STYLES[type];
610
610
  const Icon = style.icon;
611
611
  const isAnimated = type === "provisioning" || type === "connecting";
612
- 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: [
613
- /* @__PURE__ */ jsx3(Icon, { className: cn("h-4 w-4 shrink-0", isAnimated && "animate-spin") }),
614
- /* @__PURE__ */ jsx3("span", { className: "text-foreground", children: message }),
615
- detail && /* @__PURE__ */ jsx3("span", { className: "text-muted-foreground text-xs", children: detail }),
616
- onDismiss && /* @__PURE__ */ jsx3("button", { onClick: onDismiss, className: "ml-auto text-muted-foreground hover:text-foreground text-xs", children: "Dismiss" })
617
- ] });
612
+ return /* @__PURE__ */ jsxs3(
613
+ "div",
614
+ {
615
+ className: cn(
616
+ "flex items-center gap-2.5 px-4 py-2 border-b font-sans text-sm",
617
+ style.bg,
618
+ style.border,
619
+ className
620
+ ),
621
+ children: [
622
+ /* @__PURE__ */ jsx3(Icon, { className: cn("h-4 w-4 shrink-0", style.text, isAnimated && "animate-spin") }),
623
+ /* @__PURE__ */ jsx3("span", { className: "font-medium text-foreground", children: message }),
624
+ detail && /* @__PURE__ */ jsx3("span", { className: "font-mono text-xs text-muted-foreground tabular-nums", children: detail }),
625
+ onDismiss && /* @__PURE__ */ jsx3(
626
+ "button",
627
+ {
628
+ onClick: onDismiss,
629
+ className: "ml-auto font-sans text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",
630
+ children: "Dismiss"
631
+ }
632
+ )
633
+ ]
634
+ }
635
+ );
618
636
  }
619
637
 
620
638
  // src/workspace/status-bar.tsx
621
639
  import { Zap, FileText, X as X2 } from "lucide-react";
622
640
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
623
641
  var STATUS_LABELS = {
624
- connected: { label: "", color: "bg-[var(--code-success)]" },
625
- connecting: { label: "Connecting...", color: "bg-[var(--code-number)]" },
642
+ connected: { label: "Connected", color: "bg-[var(--code-success)]" },
643
+ connecting: { label: "Connecting\u2026", color: "bg-[var(--code-number)]" },
626
644
  disconnected: { label: "Disconnected", color: "bg-[var(--code-error)]" },
627
- provisioning: { label: "Provisioning...", color: "bg-[var(--code-number)]" }
645
+ provisioning: { label: "Provisioning\u2026", color: "bg-[var(--code-number)]" }
628
646
  };
629
647
  function StatusBar({
630
- modelLabel,
631
- onModelClick,
632
648
  credits,
633
649
  contextBadges = [],
634
650
  onRemoveBadge,
@@ -640,26 +656,18 @@ function StatusBar({
640
656
  "div",
641
657
  {
642
658
  className: cn(
643
- "flex items-center gap-3 px-3 py-1 border-t border-border bg-muted/20 text-[12px]",
659
+ "flex items-center gap-3 px-3 py-1 border-t border-[var(--md3-outline-variant)] bg-surface-container-high font-sans text-[12px]",
644
660
  className
645
661
  ),
646
662
  children: [
647
- modelLabel && /* @__PURE__ */ jsxs4(
648
- "button",
649
- {
650
- onClick: onModelClick,
651
- 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",
652
- children: [
653
- /* @__PURE__ */ jsx4("span", { className: cn("w-1.5 h-1.5 rounded-full", statusInfo.color) }),
654
- modelLabel
655
- ]
656
- }
657
- ),
658
- statusInfo.label && /* @__PURE__ */ jsx4("span", { className: "text-muted-foreground", children: statusInfo.label }),
663
+ /* @__PURE__ */ jsxs4("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: [
664
+ /* @__PURE__ */ jsx4("span", { className: cn("w-1.5 h-1.5 rounded-full", statusInfo.color) }),
665
+ statusInfo.label
666
+ ] }),
659
667
  contextBadges.map((badge) => /* @__PURE__ */ jsxs4(
660
668
  "span",
661
669
  {
662
- className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-[2px] border border-border text-foreground bg-[var(--border-accent)]/5",
670
+ className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-[2px] border border-[var(--md3-outline-variant)] text-foreground bg-[var(--border-accent)]/5",
663
671
  children: [
664
672
  /* @__PURE__ */ jsx4(FileText, { className: "h-3 w-3" }),
665
673
  badge.label,
@@ -678,9 +686,9 @@ function StatusBar({
678
686
  )),
679
687
  /* @__PURE__ */ jsx4("div", { className: "flex-1" }),
680
688
  credits !== void 0 && /* @__PURE__ */ jsxs4("span", { className: "inline-flex items-center gap-1 text-muted-foreground", children: [
681
- /* @__PURE__ */ jsx4(Zap, { className: "h-3 w-3" }),
682
- credits.toLocaleString(),
683
- " credits"
689
+ /* @__PURE__ */ jsx4(Zap, { className: "h-3 w-3 shrink-0" }),
690
+ /* @__PURE__ */ jsx4("span", { className: "font-mono tabular-nums", children: credits.toLocaleString() }),
691
+ /* @__PURE__ */ jsx4("span", { children: "credits" })
684
692
  ] })
685
693
  ]
686
694
  }
@@ -718,7 +726,7 @@ function TerminalPanel({
718
726
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
719
727
  }
720
728
  }, [lines, isCollapsed]);
721
- return /* @__PURE__ */ jsxs5("div", { className: cn("border-t border-border bg-card", className), children: [
729
+ return /* @__PURE__ */ jsxs5("div", { className: cn("border-t border-[var(--md3-outline-variant)] bg-surface-container", className), children: [
722
730
  /* @__PURE__ */ jsxs5(
723
731
  "button",
724
732
  {
@@ -727,7 +735,7 @@ function TerminalPanel({
727
735
  children: [
728
736
  /* @__PURE__ */ jsx5(TerminalIcon, { className: "h-3.5 w-3.5" }),
729
737
  /* @__PURE__ */ jsx5("span", { className: "font-medium", children: title }),
730
- lines.length > 0 && /* @__PURE__ */ jsx5("span", { className: "px-1.5 py-0.5 rounded-full bg-muted text-[10px] tabular-nums", children: lines.length }),
738
+ lines.length > 0 && /* @__PURE__ */ jsx5("span", { className: "px-1.5 py-0.5 rounded-full bg-surface-container-high text-[10px] tabular-nums", children: lines.length }),
731
739
  /* @__PURE__ */ jsx5("div", { className: "flex-1" }),
732
740
  onClose && /* @__PURE__ */ jsx5(X3, { className: "h-3 w-3 hover:text-foreground", onClick: (e) => {
733
741
  e.stopPropagation();
@@ -741,7 +749,7 @@ function TerminalPanel({
741
749
  "div",
742
750
  {
743
751
  ref: scrollRef,
744
- className: "overflow-auto px-3 pb-2 font-mono text-xs leading-[1.6]",
752
+ className: "overflow-auto px-3 pb-2 font-mono text-xs leading-[1.6] bg-surface-container-lowest",
745
753
  style: { maxHeight },
746
754
  children: [
747
755
  lines.map((line) => /* @__PURE__ */ jsxs5("div", { className: cn("whitespace-pre-wrap", LINE_COLORS[line.type]), children: [
@@ -773,19 +781,19 @@ function RuntimePane({
773
781
  "section",
774
782
  {
775
783
  className: cn(
776
- "flex h-full min-h-0 flex-col overflow-hidden bg-background text-foreground",
784
+ "flex h-full min-h-0 flex-col overflow-hidden bg-surface-container text-foreground",
777
785
  className
778
786
  ),
779
787
  children: [
780
- /* @__PURE__ */ jsxs6("header", { className: "border-b border-border bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-4 py-3", children: [
788
+ /* @__PURE__ */ jsxs6("header", { className: "border-b border-[var(--md3-outline-variant)] bg-surface-container-high bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-4 py-3", children: [
781
789
  /* @__PURE__ */ jsx6("div", { className: "mb-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground", children: "Sandbox" }),
782
790
  /* @__PURE__ */ jsx6("div", { className: "text-sm font-semibold text-foreground", children: title }),
783
791
  /* @__PURE__ */ jsx6("div", { className: "mt-1 text-xs text-muted-foreground", children: subtitle })
784
792
  ] }),
785
793
  statusBanner && /* @__PURE__ */ jsx6(StatusBanner, { ...statusBanner }),
786
794
  statusBar && /* @__PURE__ */ jsx6(StatusBar, { ...statusBar }),
787
- 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: [
788
- /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-card", children: terminal ? /* @__PURE__ */ jsx6(
795
+ 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(--md3-outline-variant)] lg:grid-cols-[minmax(0,1.35fr)_minmax(20rem,0.9fr)]", children: [
796
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-surface-container", children: terminal ? /* @__PURE__ */ jsx6(
789
797
  TerminalPanel,
790
798
  {
791
799
  ...terminal,
@@ -795,18 +803,18 @@ function RuntimePane({
795
803
  /* @__PURE__ */ jsx6(TerminalSquare, { className: "h-4 w-4" }),
796
804
  "No terminal activity yet"
797
805
  ] }) }) }),
798
- /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 gap-px bg-border", children: [
799
- /* @__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: [
806
+ /* @__PURE__ */ jsxs6("div", { className: "grid min-h-0 gap-px bg-[var(--md3-outline-variant)]", children: [
807
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-surface-container", 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: [
800
808
  /* @__PURE__ */ jsx6(ShieldCheck, { className: "h-4 w-4" }),
801
809
  "No audit data available"
802
810
  ] }) }) }),
803
- /* @__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: [
811
+ /* @__PURE__ */ jsx6("div", { className: "min-h-0 overflow-auto bg-surface-container", 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: [
804
812
  /* @__PURE__ */ jsx6(Binary, { className: "h-4 w-4" }),
805
813
  "No runtime inspector attached"
806
814
  ] }) }) })
807
815
  ] })
808
816
  ] }),
809
- footer && /* @__PURE__ */ jsx6("footer", { className: "shrink-0 border-t border-border bg-card px-3 py-2", children: footer })
817
+ footer && /* @__PURE__ */ jsx6("footer", { className: "shrink-0 border-t border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-2", children: footer })
810
818
  ]
811
819
  }
812
820
  );
@@ -939,7 +947,7 @@ function badgeTone(tone = "neutral") {
939
947
  case "danger":
940
948
  return "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]";
941
949
  default:
942
- return "border-border bg-muted text-muted-foreground";
950
+ return "border-[var(--md3-outline-variant)] bg-surface-container-high text-muted-foreground";
943
951
  }
944
952
  }
945
953
  function navigateToHref(href) {
@@ -1045,10 +1053,10 @@ function SessionSidebar({
1045
1053
  return /* @__PURE__ */ jsxs7(
1046
1054
  "aside",
1047
1055
  {
1048
- className: cn("relative flex shrink-0 flex-col border-r border-border bg-card", className),
1056
+ className: cn("relative flex shrink-0 flex-col border-r border-[var(--md3-outline-variant)] bg-surface-container-low", className),
1049
1057
  style: { width: resizable ? resize.width : defaultWidth },
1050
1058
  children: [
1051
- /* @__PURE__ */ jsx7("div", { className: "flex shrink-0 items-center border-b border-border bg-muted/20 px-3 py-1.5", children: /* @__PURE__ */ jsxs7("div", { className: "flex w-full items-center justify-between gap-2", children: [
1059
+ /* @__PURE__ */ jsx7("div", { className: "flex shrink-0 items-center border-b border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-1.5", children: /* @__PURE__ */ jsxs7("div", { className: "flex w-full items-center justify-between gap-2", children: [
1052
1060
  /* @__PURE__ */ jsxs7("div", { className: "flex min-w-0 items-center gap-2", children: [
1053
1061
  /* @__PURE__ */ jsx7("div", { className: "flex h-7 w-7 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.5 w-3.5" }) }),
1054
1062
  /* @__PURE__ */ jsxs7("div", { className: "min-w-0", children: [
@@ -1064,13 +1072,13 @@ function SessionSidebar({
1064
1072
  type: "button",
1065
1073
  onClick: onCreate,
1066
1074
  title: createLabel,
1067
- className: "flex h-7 w-7 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",
1075
+ className: "flex h-7 w-7 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--md3-outline-variant)] text-muted-foreground transition-colors hover:bg-[var(--accent-surface-soft)] hover:text-foreground",
1068
1076
  children: /* @__PURE__ */ jsx7(Plus, { className: "h-3.5 w-3.5" })
1069
1077
  }
1070
1078
  )
1071
1079
  ] })
1072
1080
  ] }) }),
1073
- (enableSearch && items.length > 0 || filters.length > 0) && /* @__PURE__ */ jsxs7("div", { className: "shrink-0 border-b border-border px-3 py-2.5", children: [
1081
+ (enableSearch && items.length > 0 || filters.length > 0) && /* @__PURE__ */ jsxs7("div", { className: "shrink-0 border-b border-[var(--md3-outline-variant)] px-3 py-2.5", children: [
1074
1082
  enableSearch && effectiveItems.length > 0 && /* @__PURE__ */ jsxs7("div", { className: "relative", children: [
1075
1083
  /* @__PURE__ */ jsx7(Search2, { className: "pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }),
1076
1084
  /* @__PURE__ */ jsx7(
@@ -1080,7 +1088,7 @@ function SessionSidebar({
1080
1088
  onChange: (event) => setQuery(event.target.value),
1081
1089
  placeholder: searchPlaceholder,
1082
1090
  "aria-label": searchPlaceholder,
1083
- className: "h-8 w-full rounded-[var(--radius-sm)] border border-transparent bg-muted/40 pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground transition-colors focus-visible:border-[var(--border-accent)] focus-visible:bg-transparent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-accent)]"
1091
+ className: "h-8 w-full rounded-[var(--radius-sm)] border border-[var(--md3-outline-variant)] bg-surface-container-lowest pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground transition-colors focus-visible:border-[var(--border-accent)] focus-visible:bg-transparent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-accent)]"
1084
1092
  }
1085
1093
  )
1086
1094
  ] }),
@@ -1093,7 +1101,7 @@ function SessionSidebar({
1093
1101
  onClick: () => setActiveFilterId(filter.id),
1094
1102
  className: cn(
1095
1103
  "inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium transition-colors",
1096
- isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary" : "border-border text-muted-foreground hover:text-foreground"
1104
+ isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary" : "border-[var(--md3-outline-variant)] text-muted-foreground hover:text-foreground"
1097
1105
  ),
1098
1106
  children: [
1099
1107
  /* @__PURE__ */ jsx7("span", { children: filter.label }),
@@ -1174,8 +1182,8 @@ function SessionSidebar({
1174
1182
  }
1175
1183
  ) }, item.id);
1176
1184
  }) }) }),
1177
- activityMonitor && /* @__PURE__ */ jsx7("div", { className: "border-t border-border px-2 py-1.5", children: activityMonitor }),
1178
- links.length > 0 && /* @__PURE__ */ jsx7("nav", { "aria-label": "Workspace sections", className: "border-t border-border px-1.5 py-1.5", children: /* @__PURE__ */ jsx7("div", { className: "space-y-px", children: links.map((link) => {
1185
+ activityMonitor && /* @__PURE__ */ jsx7("div", { className: "border-t border-[var(--md3-outline-variant)] px-2 py-1.5", children: activityMonitor }),
1186
+ links.length > 0 && /* @__PURE__ */ jsx7("nav", { "aria-label": "Workspace sections", className: "border-t border-[var(--md3-outline-variant)] px-1.5 py-1.5", children: /* @__PURE__ */ jsx7("div", { className: "space-y-px", children: links.map((link) => {
1179
1187
  const Icon = iconForLink(link.icon);
1180
1188
  return /* @__PURE__ */ jsxs7(
1181
1189
  "button",
@@ -1264,7 +1272,7 @@ function SessionActivityMonitor({
1264
1272
  const sessionLookup = Object.keys(sessionsById).length > 0 ? sessionsById : Object.fromEntries(trackedSessions.map((session) => [session.sessionId, session]));
1265
1273
  if (projectActivity.length === 0) {
1266
1274
  if (compact) return null;
1267
- 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 });
1275
+ return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-lg)] border border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-2.5 text-xs text-muted-foreground", className), children: emptyMessage });
1268
1276
  }
1269
1277
  return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-1.5", className), children: [
1270
1278
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between", children: [
@@ -1279,7 +1287,7 @@ function SessionActivityMonitor({
1279
1287
  return /* @__PURE__ */ jsxs8(
1280
1288
  "div",
1281
1289
  {
1282
- className: "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card",
1290
+ className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--md3-outline-variant)] bg-surface-container",
1283
1291
  children: [
1284
1292
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-2 px-2.5 py-1.5", children: [
1285
1293
  /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
@@ -1295,7 +1303,7 @@ function SessionActivityMonitor({
1295
1303
  " live"
1296
1304
  ] })
1297
1305
  ] }),
1298
- !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) => {
1306
+ !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "border-t border-[var(--md3-outline-variant)] bg-surface-container-high px-1 py-0.5", children: project.runningSessionIds.map((sessionId) => {
1299
1307
  const session = sessionLookup[sessionId];
1300
1308
  if (!session) return null;
1301
1309
  return /* @__PURE__ */ jsxs8(
@@ -1370,15 +1378,15 @@ function ArtifactTabs({
1370
1378
  onClose
1371
1379
  }) {
1372
1380
  if (artifacts.length === 0) return null;
1373
- return /* @__PURE__ */ jsx9("div", { className: "flex items-center overflow-x-auto border-b border-border bg-muted/20", children: artifacts.map((artifact) => {
1381
+ return /* @__PURE__ */ jsx9("div", { className: "flex items-center overflow-x-auto border-b border-[var(--md3-outline-variant)] bg-surface-container-high", children: artifacts.map((artifact) => {
1374
1382
  const Icon = getArtifactTabIcon(artifact.kind);
1375
1383
  const isActive = artifact.id === activeArtifactId;
1376
1384
  return /* @__PURE__ */ jsxs9(
1377
1385
  "div",
1378
1386
  {
1379
1387
  className: cn(
1380
- "group flex shrink-0 items-center border-r border-border bg-background relative",
1381
- 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"
1388
+ "group flex shrink-0 items-center border-r border-[var(--md3-outline-variant)] bg-surface-container relative",
1389
+ 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-surface-container-high cursor-pointer"
1382
1390
  ),
1383
1391
  children: [
1384
1392
  /* @__PURE__ */ jsxs9(
@@ -1550,7 +1558,7 @@ function SandboxWorkbench({
1550
1558
  }
1551
1559
  onArtifactChange?.(artifactId);
1552
1560
  };
1553
- 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: [
1561
+ const centerHeader = /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 items-start justify-between gap-4 rounded-[var(--radius-xl)] border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-3.5", children: [
1554
1562
  /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
1555
1563
  /* @__PURE__ */ jsx9("div", { className: "text-[10px] font-semibold uppercase tracking-[0.18em] text-primary", children: "Tangle Sandbox" }),
1556
1564
  /* @__PURE__ */ jsx9("div", { className: "truncate text-[17px] font-semibold tracking-[0.01em] text-foreground", children: title }),
@@ -1574,7 +1582,7 @@ function SandboxWorkbench({
1574
1582
  meta: session.meta,
1575
1583
  headerActions: session.headerActions,
1576
1584
  className: "h-full",
1577
- contentClassName: "bg-background",
1585
+ contentClassName: "bg-surface-container",
1578
1586
  children: /* @__PURE__ */ jsxs9("div", { className: "flex h-full min-h-0 flex-col", children: [
1579
1587
  /* @__PURE__ */ jsx9(
1580
1588
  ChatContainer,
@@ -1584,11 +1592,11 @@ function SandboxWorkbench({
1584
1592
  presentation: session.presentation ?? "timeline"
1585
1593
  }
1586
1594
  ),
1587
- composerControls && /* @__PURE__ */ jsx9("div", { className: "shrink-0 border-t border-border bg-muted/30 px-3 py-2", children: composerControls })
1595
+ composerControls && /* @__PURE__ */ jsx9("div", { className: "shrink-0 border-t border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-2", children: composerControls })
1588
1596
  ] })
1589
1597
  }
1590
1598
  );
1591
- const artifactPanel = artifacts.length > 0 ? /* @__PURE__ */ jsxs9("section", { className: "flex h-full min-h-0 flex-col bg-background", children: [
1599
+ const artifactPanel = artifacts.length > 0 ? /* @__PURE__ */ jsxs9("section", { className: "flex h-full min-h-0 flex-col bg-surface-container", children: [
1592
1600
  /* @__PURE__ */ jsx9(
1593
1601
  ArtifactTabs,
1594
1602
  {
@@ -1598,7 +1606,7 @@ function SandboxWorkbench({
1598
1606
  onClose: onArtifactClose
1599
1607
  }
1600
1608
  ),
1601
- /* @__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(
1609
+ /* @__PURE__ */ jsx9("div", { className: "min-h-0 flex-1 overflow-auto bg-surface-container", children: activeArtifact ? renderArtifact(activeArtifact) : /* @__PURE__ */ jsx9("div", { className: "flex h-full items-center justify-center p-6", children: emptyArtifactState ?? /* @__PURE__ */ jsx9(
1602
1610
  EmptyState2,
1603
1611
  {
1604
1612
  icon: /* @__PURE__ */ jsx9(Boxes, { className: "h-8 w-8" }),
@@ -1690,7 +1698,7 @@ function AuditResults({ forms, crossFormChecks = [], overallScore, className })
1690
1698
  const totalPassed = forms.reduce((s, f) => s + f.passed, 0);
1691
1699
  const totalChecks = forms.reduce((s, f) => s + f.passed + f.failed, 0);
1692
1700
  return /* @__PURE__ */ jsxs10("div", { className: cn("space-y-3 p-3", className), children: [
1693
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-3 py-2 rounded-[var(--radius-md)] bg-background border border-border", children: [
1701
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-3 py-2 rounded-[var(--radius-md)] bg-surface-container-high border border-[var(--md3-outline-variant)]", children: [
1694
1702
  /* @__PURE__ */ jsx10(Shield, { className: cn("h-5 w-5", totalChecks === totalPassed ? "text-[var(--code-success)]" : "text-[var(--code-number)]") }),
1695
1703
  /* @__PURE__ */ jsxs10("div", { children: [
1696
1704
  /* @__PURE__ */ jsxs10("div", { className: "text-sm font-semibold text-foreground", children: [
@@ -1716,7 +1724,7 @@ function AuditResults({ forms, crossFormChecks = [], overallScore, className })
1716
1724
  function FormAuditCard({ form }) {
1717
1725
  const [expanded, setExpanded] = useState6(form.failed > 0);
1718
1726
  const allPassed = form.failed === 0 && form.found;
1719
- return /* @__PURE__ */ jsxs10("div", { className: "rounded-[var(--radius-md)] border border-border overflow-hidden", children: [
1727
+ return /* @__PURE__ */ jsxs10("div", { className: "rounded-[var(--radius-md)] border border-[var(--md3-outline-variant)] bg-surface-container-high overflow-hidden", children: [
1720
1728
  /* @__PURE__ */ jsxs10(
1721
1729
  "button",
1722
1730
  {
@@ -1734,7 +1742,7 @@ function FormAuditCard({ form }) {
1734
1742
  ]
1735
1743
  }
1736
1744
  ),
1737
- 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)) })
1745
+ expanded && /* @__PURE__ */ jsx10("div", { className: "border-t border-[var(--md3-outline-variant)] px-3 py-1.5 space-y-0.5", children: form.checks.map((check, i) => /* @__PURE__ */ jsx10(CheckRow, { check }, i)) })
1738
1746
  ] });
1739
1747
  }
1740
1748
  function CheckRow({ check }) {
@@ -1801,17 +1809,17 @@ function TaskBoard({
1801
1809
  event.preventDefault();
1802
1810
  onClickItem(item);
1803
1811
  },
1804
- className: "group w-full rounded-lg border border-border bg-card p-3 text-left transition-colors hover:border-accent/50",
1812
+ className: "group w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high p-3 text-left transition-colors hover:border-accent/50",
1805
1813
  children: [
1806
1814
  /* @__PURE__ */ jsx11("p", { className: "text-sm font-medium text-foreground", children: item.title }),
1807
1815
  item.description && /* @__PURE__ */ jsx11("p", { className: "mt-1 text-xs text-muted-foreground line-clamp-2", children: item.description }),
1808
1816
  (item.priority || item.tags?.length) && /* @__PURE__ */ jsxs11("div", { className: "mt-2 flex flex-wrap gap-1.5", children: [
1809
- item.priority && (renderBadge ? renderBadge(item.priority, "priority") : /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-border px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: item.priority })),
1817
+ item.priority && (renderBadge ? renderBadge(item.priority, "priority") : /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--md3-outline-variant)] px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: item.priority })),
1810
1818
  item.tags?.map(
1811
1819
  (tag) => renderBadge ? /* @__PURE__ */ jsx11("span", { children: renderBadge(tag, "tag") }, tag) : /* @__PURE__ */ jsx11(
1812
1820
  "span",
1813
1821
  {
1814
- className: "rounded-full border border-border px-2 py-0.5 text-[10px] text-muted-foreground",
1822
+ className: "rounded-full border border-[var(--md3-outline-variant)] px-2 py-0.5 text-[10px] text-muted-foreground",
1815
1823
  children: tag
1816
1824
  },
1817
1825
  tag
@@ -1831,14 +1839,14 @@ function TaskBoard({
1831
1839
  "div",
1832
1840
  {
1833
1841
  className: cn(
1834
- "flex w-72 shrink-0 flex-col rounded-xl border border-border bg-card/50 border-t-2",
1842
+ "flex w-72 shrink-0 flex-col rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container border-t-2",
1835
1843
  col.accent ?? "border-t-muted-foreground/30"
1836
1844
  ),
1837
1845
  children: [
1838
1846
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-between px-4 py-3", children: [
1839
1847
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
1840
1848
  /* @__PURE__ */ jsx11("h3", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: col.label }),
1841
- /* @__PURE__ */ jsx11("span", { className: "inline-flex h-5 min-w-[20px] items-center justify-center rounded-full border border-border px-1.5 text-[10px] font-medium text-muted-foreground", children: colItems.length })
1849
+ /* @__PURE__ */ jsx11("span", { className: "inline-flex h-5 min-w-[20px] items-center justify-center rounded-full border border-[var(--md3-outline-variant)] px-1.5 text-[10px] font-medium text-muted-foreground", children: colItems.length })
1842
1850
  ] }),
1843
1851
  renderColumnAction?.(col)
1844
1852
  ] }),
@@ -1943,8 +1951,8 @@ function CalendarView({
1943
1951
  });
1944
1952
  const selectedDayEvents = selectedDay ? eventsByDate[selectedDay] ?? [] : [];
1945
1953
  return /* @__PURE__ */ jsxs12("div", { className: cn("flex flex-1 min-h-0 overflow-hidden", className), children: [
1946
- /* @__PURE__ */ jsxs12("div", { className: "flex-1 flex flex-col overflow-hidden border-r border-border", children: [
1947
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between border-b border-border px-4 py-2.5 shrink-0", children: [
1954
+ /* @__PURE__ */ jsxs12("div", { className: "flex-1 flex flex-col overflow-hidden border-r border-[var(--md3-outline-variant)]", children: [
1955
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between border-b border-[var(--md3-outline-variant)] px-4 py-2.5 shrink-0", children: [
1948
1956
  /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
1949
1957
  headerLeft,
1950
1958
  /* @__PURE__ */ jsx12(
@@ -1952,7 +1960,7 @@ function CalendarView({
1952
1960
  {
1953
1961
  type: "button",
1954
1962
  onClick: prevMonth,
1955
- className: "h-7 w-7 rounded-md hover:bg-muted flex items-center justify-center text-muted-foreground",
1963
+ className: "h-7 w-7 rounded-md hover:bg-surface-container-high flex items-center justify-center text-muted-foreground",
1956
1964
  children: /* @__PURE__ */ jsx12("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx12("path", { d: "m15 18-6-6 6-6" }) })
1957
1965
  }
1958
1966
  ),
@@ -1962,7 +1970,7 @@ function CalendarView({
1962
1970
  {
1963
1971
  type: "button",
1964
1972
  onClick: nextMonth,
1965
- className: "h-7 w-7 rounded-md hover:bg-muted flex items-center justify-center text-muted-foreground",
1973
+ className: "h-7 w-7 rounded-md hover:bg-surface-container-high flex items-center justify-center text-muted-foreground",
1966
1974
  children: /* @__PURE__ */ jsx12("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx12("path", { d: "m9 18 6-6-6-6" }) })
1967
1975
  }
1968
1976
  ),
@@ -1974,14 +1982,14 @@ function CalendarView({
1974
1982
  setMonth(today.getFullYear(), today.getMonth());
1975
1983
  selectDay(todayKey);
1976
1984
  },
1977
- className: "h-7 px-2 rounded-md border border-border text-xs font-medium text-muted-foreground hover:text-foreground",
1985
+ className: "h-7 px-2 rounded-md border border-[var(--md3-outline-variant)] text-xs font-medium text-muted-foreground hover:text-foreground",
1978
1986
  children: "Today"
1979
1987
  }
1980
1988
  )
1981
1989
  ] }),
1982
1990
  headerRight
1983
1991
  ] }),
1984
- /* @__PURE__ */ jsx12("div", { className: "grid grid-cols-7 border-b border-border shrink-0", children: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"].map((d) => /* @__PURE__ */ jsx12(
1992
+ /* @__PURE__ */ jsx12("div", { className: "grid grid-cols-7 border-b border-[var(--md3-outline-variant)] shrink-0", children: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"].map((d) => /* @__PURE__ */ jsx12(
1985
1993
  "div",
1986
1994
  {
1987
1995
  className: "px-2 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground text-center",
@@ -2000,10 +2008,10 @@ function CalendarView({
2000
2008
  onClick: () => selectDay(key),
2001
2009
  onDoubleClick: () => onDoubleClickDay?.(key),
2002
2010
  className: cn(
2003
- "flex flex-col items-start p-1.5 border-b border-r border-border text-left transition-colors min-h-[72px]",
2011
+ "flex flex-col items-start p-1.5 border-b border-r border-[var(--md3-outline-variant)] text-left transition-colors min-h-[72px]",
2004
2012
  !inMonth && "bg-muted/30",
2005
2013
  isSelected && "bg-primary/5 ring-1 ring-inset ring-primary/20",
2006
- !isSelected && "hover:bg-muted/50"
2014
+ !isSelected && "hover:bg-surface-container-high"
2007
2015
  ),
2008
2016
  children: [
2009
2017
  /* @__PURE__ */ jsx12(
@@ -2043,7 +2051,7 @@ function CalendarView({
2043
2051
  }) })
2044
2052
  ] }),
2045
2053
  showDayPanel && /* @__PURE__ */ jsx12("div", { className: "w-80 shrink-0 flex flex-col overflow-hidden", children: renderDayDetail ? renderDayDetail(selectedDay ?? todayKey, selectedDayEvents) : /* @__PURE__ */ jsxs12(Fragment3, { children: [
2046
- /* @__PURE__ */ jsxs12("div", { className: "px-4 py-3 border-b border-border shrink-0", children: [
2054
+ /* @__PURE__ */ jsxs12("div", { className: "px-4 py-3 border-b border-[var(--md3-outline-variant)] shrink-0", children: [
2047
2055
  /* @__PURE__ */ jsx12("h3", { className: "text-sm font-semibold text-foreground", children: selectedDay === todayKey ? "Today" : selectedDay ? (/* @__PURE__ */ new Date(selectedDay + "T00:00:00")).toLocaleDateString(
2048
2056
  "en-US",
2049
2057
  { weekday: "long", month: "long", day: "numeric" }
@@ -2059,10 +2067,10 @@ function CalendarView({
2059
2067
  selectedDayEvents.map((evt) => /* @__PURE__ */ jsxs12(
2060
2068
  "div",
2061
2069
  {
2062
- className: "rounded-lg border border-border bg-card p-3",
2070
+ className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-3",
2063
2071
  children: [
2064
2072
  /* @__PURE__ */ jsx12("p", { className: "text-sm font-medium text-foreground", children: evt.title }),
2065
- evt.type && /* @__PURE__ */ jsx12("span", { className: "mt-1 inline-block rounded-full border border-border px-2 py-0.5 text-[10px] text-muted-foreground", children: evt.type })
2073
+ evt.type && /* @__PURE__ */ jsx12("span", { className: "mt-1 inline-block rounded-full border border-[var(--md3-outline-variant)] px-2 py-0.5 text-[10px] text-muted-foreground", children: evt.type })
2066
2074
  ]
2067
2075
  },
2068
2076
  evt.id
@@ -2122,9 +2130,9 @@ function ApprovalQueue({
2122
2130
  stats.length > 0 && /* @__PURE__ */ jsx13("div", { className: "flex gap-3 mb-6 flex-wrap", children: renderStats ? renderStats(stats) : stats.map((s) => /* @__PURE__ */ jsxs13(
2123
2131
  "div",
2124
2132
  {
2125
- className: "flex-1 min-w-[120px] rounded-lg border border-border bg-card p-3",
2133
+ className: "flex-1 min-w-[120px] rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-3",
2126
2134
  children: [
2127
- /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-2 mb-1", children: renderTypeBadge ? renderTypeBadge(s.type) : /* @__PURE__ */ jsx13("span", { className: "rounded-full border border-border px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: s.type }) }),
2135
+ /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-2 mb-1", children: renderTypeBadge ? renderTypeBadge(s.type) : /* @__PURE__ */ jsx13("span", { className: "rounded-full border border-[var(--md3-outline-variant)] px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: s.type }) }),
2128
2136
  /* @__PURE__ */ jsx13("div", { className: "flex items-baseline gap-1", children: /* @__PURE__ */ jsxs13("span", { className: "text-xl font-semibold text-foreground", children: [
2129
2137
  s.rate,
2130
2138
  "%"
@@ -2148,13 +2156,13 @@ function ApprovalQueue({
2148
2156
  /* @__PURE__ */ jsx13("div", { className: "space-y-3", children: pending.map((item) => /* @__PURE__ */ jsxs13(
2149
2157
  "div",
2150
2158
  {
2151
- className: "rounded-lg border border-primary/20 bg-card p-4",
2159
+ className: "rounded-lg border border-primary/20 bg-surface-container p-4",
2152
2160
  children: [
2153
2161
  /* @__PURE__ */ jsxs13("div", { className: "flex items-start gap-3", children: [
2154
2162
  /* @__PURE__ */ jsxs13("div", { className: "flex-1 min-w-0", children: [
2155
2163
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 mb-1", children: [
2156
2164
  /* @__PURE__ */ jsx13("h4", { className: "text-sm font-medium text-foreground", children: item.title }),
2157
- renderTypeBadge ? renderTypeBadge(item.type) : /* @__PURE__ */ jsx13("span", { className: "rounded-full border border-border px-2 py-0.5 text-[10px] text-muted-foreground", children: item.type })
2165
+ renderTypeBadge ? renderTypeBadge(item.type) : /* @__PURE__ */ jsx13("span", { className: "rounded-full border border-[var(--md3-outline-variant)] px-2 py-0.5 text-[10px] text-muted-foreground", children: item.type })
2158
2166
  ] }),
2159
2167
  item.description && /* @__PURE__ */ jsx13("p", { className: "text-xs text-muted-foreground line-clamp-2", children: item.description }),
2160
2168
  renderItemDetail?.(item)
@@ -2165,7 +2173,7 @@ function ApprovalQueue({
2165
2173
  {
2166
2174
  type: "button",
2167
2175
  onClick: () => onApprove?.(item),
2168
- className: "h-8 px-3 rounded-md border border-border text-xs font-medium text-emerald-500 hover:bg-emerald-500/10 hover:border-emerald-500/30 transition-colors",
2176
+ className: "h-8 px-3 rounded-md border border-[var(--md3-outline-variant)] text-xs font-medium text-emerald-500 hover:bg-emerald-500/10 hover:border-emerald-500/30 transition-colors",
2169
2177
  children: "Approve"
2170
2178
  }
2171
2179
  ),
@@ -2179,20 +2187,20 @@ function ApprovalQueue({
2179
2187
  );
2180
2188
  setRejectReason("");
2181
2189
  },
2182
- className: "h-8 px-3 rounded-md border border-border text-xs font-medium text-destructive hover:bg-destructive/10 hover:border-destructive/30 transition-colors",
2190
+ className: "h-8 px-3 rounded-md border border-[var(--md3-outline-variant)] text-xs font-medium text-destructive hover:bg-destructive/10 hover:border-destructive/30 transition-colors",
2183
2191
  children: "Reject"
2184
2192
  }
2185
2193
  )
2186
2194
  ] })
2187
2195
  ] }),
2188
- rejectingId === item.id && /* @__PURE__ */ jsxs13("div", { className: "mt-3 border-t border-border pt-3", children: [
2196
+ rejectingId === item.id && /* @__PURE__ */ jsxs13("div", { className: "mt-3 border-t border-[var(--md3-outline-variant)] pt-3", children: [
2189
2197
  /* @__PURE__ */ jsx13(
2190
2198
  "textarea",
2191
2199
  {
2192
2200
  placeholder: "Why are you rejecting this?",
2193
2201
  value: rejectReason,
2194
2202
  onChange: (e) => setRejectReason(e.target.value),
2195
- className: "w-full rounded-md border border-border bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 mb-2",
2203
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 mb-2",
2196
2204
  rows: 2
2197
2205
  }
2198
2206
  ),
@@ -2262,7 +2270,7 @@ function ApprovalQueue({
2262
2270
  showResolved && /* @__PURE__ */ jsx13("div", { className: "space-y-2", children: resolved.map((item) => /* @__PURE__ */ jsxs13(
2263
2271
  "div",
2264
2272
  {
2265
- className: "rounded-lg border border-border bg-card p-4 opacity-60",
2273
+ className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-4 opacity-60",
2266
2274
  children: [
2267
2275
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 mb-1", children: [
2268
2276
  /* @__PURE__ */ jsx13("h4", { className: "text-sm font-medium text-foreground", children: item.title }),