@tangle-network/sandbox-ui 0.45.0 → 0.46.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 (44) hide show
  1. package/dist/{WorkflowGraph-7YYGIBNV.js → WorkflowGraph-6IKZYPST.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-CXV6X33U.js} +19 -1
  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 +1149 -48
  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.js +2 -1
  26. package/dist/markdown.js +2 -0
  27. package/dist/openui.d.ts +0 -5
  28. package/dist/openui.js +1 -0
  29. package/dist/pages.d.ts +1 -1
  30. package/dist/pages.js +89 -88
  31. package/dist/ports-list-DfG0VfPt.d.ts +17 -0
  32. package/dist/primitives.js +1 -0
  33. package/dist/run.js +1 -0
  34. package/dist/sdk-hooks.js +1 -0
  35. package/dist/stores.js +1 -0
  36. package/dist/styles.css +1149 -48
  37. package/dist/terminal.js +5 -209
  38. package/dist/utils.js +1 -0
  39. package/dist/workbench.d.ts +227 -0
  40. package/dist/workbench.js +40 -0
  41. package/dist/workflows.js +2 -1
  42. package/dist/workspace.d.ts +6 -2
  43. package/dist/workspace.js +2 -1
  44. package/package.json +13 -7
package/dist/pages.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  PricingPage,
5
5
  TemplateCard,
6
6
  UsageChart
7
- } from "./chunk-2XNT74ZX.js";
7
+ } from "./chunk-OMUIPJQZ.js";
8
8
  import {
9
9
  Badge,
10
10
  Button,
@@ -24,10 +24,11 @@ import {
24
24
  Switch,
25
25
  Textarea
26
26
  } from "./chunk-4ZZUMXPX.js";
27
- import "./chunk-3RNYDTQ3.js";
27
+ import "./chunk-LQHTCM56.js";
28
28
  import {
29
29
  cn
30
30
  } from "./chunk-EI44GEQ5.js";
31
+ import "./chunk-U67V476Y.js";
31
32
 
32
33
  // src/pages/auth-page.tsx
33
34
  import { useState } from "react";
@@ -271,7 +272,7 @@ function BillingPageSkeleton({
271
272
  /* @__PURE__ */ jsx2(SkeletonCard, {}),
272
273
  /* @__PURE__ */ jsx2(SkeletonCard, {})
273
274
  ] }),
274
- /* @__PURE__ */ jsxs2("div", { className: "space-y-4 rounded-xl border border-border bg-card p-6", children: [
275
+ /* @__PURE__ */ jsxs2("div", { className: "space-y-4 rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-6", children: [
275
276
  /* @__PURE__ */ jsx2(Skeleton, { className: "h-6 w-48" }),
276
277
  /* @__PURE__ */ jsx2("div", { className: "h-48", children: /* @__PURE__ */ jsx2(Skeleton, { className: "h-full w-full" }) })
277
278
  ] })
@@ -448,7 +449,7 @@ function BillingPage({
448
449
  title: "Credit Usage History",
449
450
  unit: "credits"
450
451
  }
451
- ) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-col items-center justify-center rounded-xl border border-border bg-card p-12 text-center", children: [
452
+ ) : /* @__PURE__ */ jsxs2("div", { className: "flex flex-col items-center justify-center rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-12 text-center", children: [
452
453
  /* @__PURE__ */ jsxs2(
453
454
  "svg",
454
455
  {
@@ -584,7 +585,7 @@ function AddSshKeyDialog({
584
585
  placeholder: "My laptop",
585
586
  autoComplete: "off",
586
587
  "aria-invalid": errors.name ? true : void 0,
587
- className: "w-full rounded-md border border-border bg-card px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
588
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
588
589
  }
589
590
  ),
590
591
  errors.name && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.name })
@@ -609,7 +610,7 @@ function AddSshKeyDialog({
609
610
  autoComplete: "off",
610
611
  spellCheck: false,
611
612
  "aria-invalid": errors.publicKey ? true : void 0,
612
- className: "min-h-24 w-full resize-y rounded-md border border-border bg-card px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
613
+ className: "min-h-24 w-full resize-y rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
613
614
  }
614
615
  ),
615
616
  errors.publicKey && /* @__PURE__ */ jsx3("p", { className: "text-xs text-destructive", children: errors.publicKey })
@@ -624,7 +625,7 @@ function AddSshKeyDialog({
624
625
  type: "button",
625
626
  onClick: () => onOpenChange(false),
626
627
  disabled: isSaving,
627
- className: "rounded-md border border-border bg-card px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors disabled:opacity-50",
628
+ className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors disabled:opacity-50",
628
629
  children: "Cancel"
629
630
  }
630
631
  ),
@@ -652,7 +653,7 @@ var VALID_DRIVERS = /* @__PURE__ */ new Set([
652
653
  "firecracker",
653
654
  "tangle"
654
655
  ]);
655
- var SECTION_CARD_CLASS = "rounded-lg border border-border bg-card p-5 shadow-sm";
656
+ var SECTION_CARD_CLASS = "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-sm";
656
657
  var FIELD_LABEL_CLASS = "block text-xs font-medium text-muted-foreground uppercase tracking-[0.06em]";
657
658
  var STACK_DISPLAY = {
658
659
  universal: {
@@ -851,7 +852,7 @@ function SshAccessStep({ config }) {
851
852
  },
852
853
  className: cn(
853
854
  "group p-3 text-left rounded-lg border transition-colors duration-200",
854
- selected ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-card border-border hover:border-primary/30 active:scale-[0.99]"
855
+ selected ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
855
856
  ),
856
857
  children: /* @__PURE__ */ jsxs4("div", { className: "flex items-start justify-between gap-2", children: [
857
858
  /* @__PURE__ */ jsxs4("span", { className: "min-w-0", children: [
@@ -868,7 +869,7 @@ function SshAccessStep({ config }) {
868
869
  "aria-hidden": "true",
869
870
  className: cn(
870
871
  "flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px] border-2 transition-colors duration-200",
871
- selected ? "border-primary bg-primary" : "border-border group-hover:border-primary/40"
872
+ selected ? "border-primary bg-primary" : "border-[var(--md3-outline-variant)] group-hover:border-primary/40"
872
873
  ),
873
874
  children: selected && /* @__PURE__ */ jsx4(Check, { className: "h-2.5 w-2.5 text-primary-foreground" })
874
875
  }
@@ -1210,17 +1211,17 @@ function ProvisioningWizard({
1210
1211
  onClick: () => setSelectedEnv(env.id),
1211
1212
  className: cn(
1212
1213
  "group p-3.5 rounded-lg text-left border transition-colors duration-200",
1213
- selectedEnv === env.id ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-card border-border hover:border-primary/30 active:scale-[0.99]"
1214
+ selectedEnv === env.id ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
1214
1215
  ),
1215
1216
  children: [
1216
1217
  /* @__PURE__ */ jsxs4("div", { className: "flex justify-between items-start mb-2.5", children: [
1217
- /* @__PURE__ */ jsx4("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-muted/50 border border-border", children: env.icon }),
1218
+ /* @__PURE__ */ jsx4("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-surface-container-high border border-[var(--md3-outline-variant)]", children: env.icon }),
1218
1219
  /* @__PURE__ */ jsx4(
1219
1220
  "div",
1220
1221
  {
1221
1222
  className: cn(
1222
1223
  "w-4 h-4 rounded-full border-2 flex items-center justify-center transition-colors duration-200",
1223
- selectedEnv === env.id ? "border-primary bg-primary" : "border-border group-hover:border-primary/40"
1224
+ selectedEnv === env.id ? "border-primary bg-primary" : "border-[var(--md3-outline-variant)] group-hover:border-primary/40"
1224
1225
  ),
1225
1226
  children: selectedEnv === env.id && /* @__PURE__ */ jsx4(Check, { className: "h-2.5 w-2.5 text-primary-foreground" })
1226
1227
  }
@@ -1250,7 +1251,7 @@ function ProvisioningWizard({
1250
1251
  disabled: p.locked,
1251
1252
  className: cn(
1252
1253
  "p-2.5 rounded-lg transition-colors duration-200 text-center group border relative",
1253
- active ? "bg-primary/5 border-primary ring-1 ring-primary/20" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-card border-border hover:border-primary/30 active:scale-[0.99]"
1254
+ active ? "bg-primary/5 border-primary ring-1 ring-primary/20" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-surface-container border-[var(--md3-outline-variant)] hover:border-primary/30 active:scale-[0.99]"
1254
1255
  ),
1255
1256
  children: [
1256
1257
  p.locked && /* @__PURE__ */ jsx4("div", { className: "absolute -top-1.5 -right-1.5 bg-primary text-primary-foreground text-[9px] font-semibold px-1.5 py-0.5 rounded-full uppercase tracking-wider", children: p.unlockLabel }),
@@ -1471,7 +1472,7 @@ function ProvisioningWizard({
1471
1472
  }
1472
1473
  )
1473
1474
  ] }, env.uid)),
1474
- envVars.length === 0 && /* @__PURE__ */ jsx4("div", { className: "text-center p-3 border border-dashed border-border rounded-lg text-muted-foreground/60 text-xs italic", children: "No environment variables set" })
1475
+ envVars.length === 0 && /* @__PURE__ */ jsx4("div", { className: "text-center p-3 border border-dashed border-[var(--md3-outline-variant)] rounded-lg text-muted-foreground/60 text-xs italic", children: "No environment variables set" })
1475
1476
  ] })
1476
1477
  ] }),
1477
1478
  availableScripts.length > 0 && /* @__PURE__ */ jsxs4("div", { children: [
@@ -1483,7 +1484,7 @@ function ProvisioningWizard({
1483
1484
  return /* @__PURE__ */ jsxs4(
1484
1485
  "label",
1485
1486
  {
1486
- className: "flex items-start gap-3 cursor-pointer group rounded-lg border border-border p-3 transition-colors hover:border-primary/30",
1487
+ className: "flex items-start gap-3 cursor-pointer group rounded-lg border border-[var(--md3-outline-variant)] p-3 transition-colors hover:border-primary/30",
1487
1488
  children: [
1488
1489
  /* @__PURE__ */ jsx4(
1489
1490
  "input",
@@ -1495,7 +1496,7 @@ function ProvisioningWizard({
1495
1496
  (id) => id !== script.id
1496
1497
  ) : [...prev, script.id]
1497
1498
  ),
1498
- className: "mt-0.5 h-4 w-4 rounded border-border text-primary focus:ring-primary/30"
1499
+ className: "mt-0.5 h-4 w-4 rounded border-[var(--md3-outline-variant)] text-primary focus:ring-primary/30"
1499
1500
  }
1500
1501
  ),
1501
1502
  /* @__PURE__ */ jsxs4("div", { className: "flex-1 min-w-0", children: [
@@ -1504,7 +1505,7 @@ function ProvisioningWizard({
1504
1505
  script.injectSecrets.length > 0 && /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1 mt-1.5", children: script.injectSecrets.map((s) => /* @__PURE__ */ jsxs4(
1505
1506
  "span",
1506
1507
  {
1507
- className: "inline-flex items-center gap-0.5 rounded-full bg-muted px-2 py-0.5 text-[10px] text-muted-foreground",
1508
+ className: "inline-flex items-center gap-0.5 rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] text-muted-foreground",
1508
1509
  children: [
1509
1510
  /* @__PURE__ */ jsxs4(
1510
1511
  "svg",
@@ -1542,7 +1543,7 @@ function ProvisioningWizard({
1542
1543
  );
1543
1544
  }) })
1544
1545
  ] }),
1545
- /* @__PURE__ */ jsxs4("div", { className: "pt-3 border-t border-border flex items-start justify-between gap-3", children: [
1546
+ /* @__PURE__ */ jsxs4("div", { className: "pt-3 border-t border-[var(--md3-outline-variant)] flex items-start justify-between gap-3", children: [
1546
1547
  /* @__PURE__ */ jsxs4("div", { children: [
1547
1548
  /* @__PURE__ */ jsx4(
1548
1549
  "label",
@@ -1564,13 +1565,13 @@ function ProvisioningWizard({
1564
1565
  }
1565
1566
  )
1566
1567
  ] }),
1567
- sshAccess && /* @__PURE__ */ jsx4("div", { className: "pt-3 border-t border-border", children: /* @__PURE__ */ jsx4(SshAccessStep, { config: sshAccess }) })
1568
+ sshAccess && /* @__PURE__ */ jsx4("div", { className: "pt-3 border-t border-[var(--md3-outline-variant)]", children: /* @__PURE__ */ jsx4(SshAccessStep, { config: sshAccess }) })
1568
1569
  ] })
1569
1570
  ] }) })
1570
1571
  ] })
1571
1572
  ] }),
1572
1573
  /* @__PURE__ */ jsxs4("div", { className: "col-span-12 xl:col-span-4 sticky top-4 space-y-4", children: [
1573
- /* @__PURE__ */ jsxs4("div", { className: "rounded-lg border border-border bg-card p-5 shadow-sm", children: [
1574
+ /* @__PURE__ */ jsxs4("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-sm", children: [
1574
1575
  /* @__PURE__ */ jsxs4("div", { className: "flex justify-between items-center mb-3", children: [
1575
1576
  /* @__PURE__ */ jsx4("span", { className: FIELD_LABEL_CLASS, children: "Run Cost" }),
1576
1577
  /* @__PURE__ */ jsxs4(
@@ -1578,7 +1579,7 @@ function ProvisioningWizard({
1578
1579
  {
1579
1580
  role: "group",
1580
1581
  "aria-label": "Pricing view",
1581
- className: "inline-flex items-center rounded-md border border-border bg-muted/50 p-0.5",
1582
+ className: "inline-flex items-center rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low p-0.5",
1582
1583
  children: [
1583
1584
  /* @__PURE__ */ jsx4(
1584
1585
  "button",
@@ -1588,7 +1589,7 @@ function ProvisioningWizard({
1588
1589
  onClick: () => setPricingView("hourly"),
1589
1590
  className: cn(
1590
1591
  "rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
1591
- pricingView === "hourly" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1592
+ pricingView === "hourly" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1592
1593
  ),
1593
1594
  children: "Per Hour"
1594
1595
  }
@@ -1601,7 +1602,7 @@ function ProvisioningWizard({
1601
1602
  onClick: () => setPricingView("perSecond"),
1602
1603
  className: cn(
1603
1604
  "rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
1604
- pricingView === "perSecond" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1605
+ pricingView === "perSecond" ? "bg-surface-container-high text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1605
1606
  ),
1606
1607
  children: "Per Second"
1607
1608
  }
@@ -1627,7 +1628,7 @@ function ProvisioningWizard({
1627
1628
  ),
1628
1629
  /* @__PURE__ */ jsx4("span", { className: "text-muted-foreground text-sm", children: pricingSuffix })
1629
1630
  ] }),
1630
- /* @__PURE__ */ jsxs4("div", { className: "space-y-2 rounded-md border border-border bg-muted/30 p-3", children: [
1631
+ /* @__PURE__ */ jsxs4("div", { className: "space-y-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-high p-3", children: [
1631
1632
  /* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-muted-foreground", children: [
1632
1633
  /* @__PURE__ */ jsx4("span", { children: "COMPUTE" }),
1633
1634
  /* @__PURE__ */ jsxs4("span", { className: "text-foreground", children: [
@@ -1652,7 +1653,7 @@ function ProvisioningWizard({
1652
1653
  rateSuffix
1653
1654
  ] })
1654
1655
  ] }),
1655
- hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-primary border-t border-border pt-2", children: [
1656
+ hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs4("div", { className: "flex justify-between text-xs font-mono tracking-wide text-primary border-t border-[var(--md3-outline-variant)] pt-2", children: [
1656
1657
  /* @__PURE__ */ jsx4("span", { children: "MIN CHARGE" }),
1657
1658
  /* @__PURE__ */ jsxs4("span", { children: [
1658
1659
  "$",
@@ -1812,9 +1813,9 @@ function StandalonePricingPage({
1812
1813
  loading: state.selectingTier
1813
1814
  }
1814
1815
  ),
1815
- /* @__PURE__ */ jsxs5("div", { className: "mx-auto max-w-2xl space-y-4 border-t border-border pt-12", children: [
1816
+ /* @__PURE__ */ jsxs5("div", { className: "mx-auto max-w-2xl space-y-4 border-t border-[var(--md3-outline-variant)] pt-12", children: [
1816
1817
  /* @__PURE__ */ jsx5("h2", { className: "text-center text-xl font-bold text-foreground mb-6", children: "Frequently Asked Questions" }),
1817
- FAQ.map(({ q, a }) => /* @__PURE__ */ jsxs5("details", { className: "group rounded-xl border border-border bg-card overflow-hidden", children: [
1818
+ FAQ.map(({ q, a }) => /* @__PURE__ */ jsxs5("details", { className: "group rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container overflow-hidden", children: [
1818
1819
  /* @__PURE__ */ jsxs5("summary", { className: "flex cursor-pointer items-center justify-between px-6 py-4 font-medium text-foreground text-sm", children: [
1819
1820
  q,
1820
1821
  /* @__PURE__ */ jsx5(ChevronDown, { className: "h-4 w-4 text-muted-foreground transition-transform group-open:rotate-180" })
@@ -2068,7 +2069,7 @@ function ProfileCard({
2068
2069
  return /* @__PURE__ */ jsxs6(
2069
2070
  Card,
2070
2071
  {
2071
- className: "cursor-pointer p-4 transition-colors hover:border-border/80",
2072
+ className: "cursor-pointer p-4 transition-colors hover:border-[var(--md3-outline)]",
2072
2073
  onClick: onView,
2073
2074
  children: [
2074
2075
  /* @__PURE__ */ jsxs6("div", { className: "flex items-start justify-between", children: [
@@ -2110,7 +2111,7 @@ function ProfileCard({
2110
2111
  ] }),
2111
2112
  profile.model && /* @__PURE__ */ jsx6(Badge2, { variant: "outline", className: "text-xs", children: profile.model.split("/").pop() })
2112
2113
  ] }),
2113
- profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "mt-3 flex gap-4 border-border border-t pt-3 text-muted-foreground text-xs", children: [
2114
+ profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "mt-3 flex gap-4 border-[var(--md3-outline-variant)] border-t pt-3 text-muted-foreground text-xs", children: [
2114
2115
  /* @__PURE__ */ jsxs6("span", { children: [
2115
2116
  profile.metrics.total_runs,
2116
2117
  " runs"
@@ -2248,7 +2249,7 @@ function ProfileFormDialog({
2248
2249
  {
2249
2250
  value: formData.extends,
2250
2251
  onChange: (e) => setFormData((d) => ({ ...d, extends: e.target.value })),
2251
- className: "w-full rounded-md border border-border bg-background px-3 py-2 text-sm",
2252
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm",
2252
2253
  children: [
2253
2254
  /* @__PURE__ */ jsx6("option", { value: "", children: "None (start from scratch)" }),
2254
2255
  builtinProfiles.map((p) => /* @__PURE__ */ jsxs6("option", { value: p.name, children: [
@@ -2281,7 +2282,7 @@ function ProfileFormDialog({
2281
2282
  onChange: (e) => setFormData((d) => ({ ...d, system_prompt: e.target.value })),
2282
2283
  placeholder: "Custom system prompt for the agent...",
2283
2284
  rows: 4,
2284
- className: "w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-sm"
2285
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-sm"
2285
2286
  }
2286
2287
  )
2287
2288
  ] }),
@@ -2308,7 +2309,7 @@ function ProfileFormDialog({
2308
2309
  id: "is_public",
2309
2310
  checked: formData.is_public,
2310
2311
  onChange: (e) => setFormData((d) => ({ ...d, is_public: e.target.checked })),
2311
- className: "rounded border-border"
2312
+ className: "rounded border-[var(--md3-outline-variant)]"
2312
2313
  }
2313
2314
  ),
2314
2315
  /* @__PURE__ */ jsx6("label", { htmlFor: "is_public", className: "text-sm", children: "Make this profile public (visible to other users)" })
@@ -2413,7 +2414,7 @@ function ProfileDetailDialog({
2413
2414
  profile.system_prompt && /* @__PURE__ */ jsxs6("div", { children: [
2414
2415
  /* @__PURE__ */ jsx6("label", { className: "font-medium text-muted-foreground text-xs", children: "System Prompt" }),
2415
2416
  /* @__PURE__ */ jsxs6("div", { className: "relative mt-1", children: [
2416
- /* @__PURE__ */ jsx6("pre", { className: "max-h-48 overflow-auto rounded-lg bg-muted p-3 font-mono text-sm", children: profile.system_prompt }),
2417
+ /* @__PURE__ */ jsx6("pre", { className: "max-h-48 overflow-auto rounded-lg bg-surface-container-low p-3 font-mono text-sm", children: profile.system_prompt }),
2417
2418
  /* @__PURE__ */ jsx6(
2418
2419
  Button2,
2419
2420
  {
@@ -2434,7 +2435,7 @@ function ProfileDetailDialog({
2434
2435
  inst
2435
2436
  ] }, i)) })
2436
2437
  ] }),
2437
- profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "rounded-lg border border-border p-4", children: [
2438
+ profile.metrics && profile.metrics.total_runs > 0 && /* @__PURE__ */ jsxs6("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high p-4", children: [
2438
2439
  /* @__PURE__ */ jsx6("label", { className: "font-medium text-muted-foreground text-xs", children: "Performance Metrics" }),
2439
2440
  /* @__PURE__ */ jsxs6("div", { className: "mt-2 grid grid-cols-2 gap-4 sm:grid-cols-4", children: [
2440
2441
  /* @__PURE__ */ jsxs6("div", { children: [
@@ -2737,7 +2738,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2737
2738
  {
2738
2739
  type: "button",
2739
2740
  onClick: () => setIsImportOpen(true),
2740
- className: "inline-flex items-center gap-2 rounded-lg border border-border bg-card px-4 py-2.5 text-sm font-semibold text-foreground hover:bg-muted transition-colors active:scale-[0.97]",
2741
+ className: "inline-flex items-center gap-2 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2.5 text-sm font-semibold text-foreground hover:bg-surface-container-high transition-colors active:scale-[0.97]",
2741
2742
  children: [
2742
2743
  /* @__PURE__ */ jsx7(Upload, { className: "h-4 w-4" }),
2743
2744
  "Import .env"
@@ -2759,7 +2760,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2759
2760
  ] })
2760
2761
  }
2761
2762
  ),
2762
- teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-border bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
2763
+ teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
2763
2764
  /* @__PURE__ */ jsx7(Users, { className: "h-5 w-5 shrink-0 text-[var(--accent-text)]", "aria-hidden": "true" }),
2764
2765
  /* @__PURE__ */ jsxs7("div", { className: "flex-1 text-sm", children: [
2765
2766
  /* @__PURE__ */ jsx7("p", { className: "font-semibold text-foreground", children: "Setting up secrets for a team?" }),
@@ -2774,7 +2775,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2774
2775
  {
2775
2776
  type: "button",
2776
2777
  onClick: teamSecretsHint.onNavigate,
2777
- className: "inline-flex shrink-0 items-center gap-1 rounded-md border border-border bg-card px-3 py-1.5 text-xs font-semibold text-foreground hover:bg-muted transition-colors",
2778
+ className: "inline-flex shrink-0 items-center gap-1 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-1.5 text-xs font-semibold text-foreground hover:bg-surface-container-high transition-colors",
2778
2779
  children: [
2779
2780
  teamSecretsHint.label ?? "Manage team secrets",
2780
2781
  /* @__PURE__ */ jsx7(ArrowRight, { className: "h-3 w-3", "aria-hidden": "true" })
@@ -2783,11 +2784,11 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2783
2784
  )
2784
2785
  ] }),
2785
2786
  /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-4", children: [
2786
- /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-border bg-card p-5 shadow-[var(--shadow-card)]", children: [
2787
+ /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
2787
2788
  /* @__PURE__ */ jsx7("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Total Active Secrets" }),
2788
2789
  /* @__PURE__ */ jsx7("div", { className: "mt-2 flex items-baseline gap-2", children: /* @__PURE__ */ jsx7("span", { className: "font-display text-2xl font-extrabold text-foreground", children: secrets.length }) })
2789
2790
  ] }),
2790
- /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-border bg-card p-5 shadow-[var(--shadow-card)]", children: [
2791
+ /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
2791
2792
  /* @__PURE__ */ jsx7("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Status" }),
2792
2793
  /* @__PURE__ */ jsxs7("div", { className: "mt-2 flex items-center gap-2", children: [
2793
2794
  /* @__PURE__ */ jsx7(CheckCircle, { className: "h-4 w-4 text-[var(--surface-success-text,#047857)]" }),
@@ -2842,7 +2843,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2842
2843
  onChange: (e) => setNewName(e.target.value.toUpperCase().replace(/[^A-Z0-9_]/g, "_")),
2843
2844
  placeholder: "MY_SECRET_KEY",
2844
2845
  autoComplete: "off",
2845
- className: "w-full rounded-md border border-border bg-card px-3 py-2.5 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2846
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2.5 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2846
2847
  }
2847
2848
  )
2848
2849
  ] }),
@@ -2859,7 +2860,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2859
2860
  onChange: (e) => setNewValue(e.target.value),
2860
2861
  placeholder: "Enter secret value...",
2861
2862
  autoComplete: "new-password",
2862
- className: "w-full rounded-md border border-border bg-card px-3 py-2.5 pr-10 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2863
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2.5 pr-10 text-sm font-mono text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2863
2864
  }
2864
2865
  ),
2865
2866
  /* @__PURE__ */ jsx7(
@@ -2891,7 +2892,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2891
2892
  setNewValue("");
2892
2893
  setCreateError(null);
2893
2894
  },
2894
- className: "rounded-md border border-border bg-card px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors",
2895
+ className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
2895
2896
  children: "Cancel"
2896
2897
  }
2897
2898
  ),
@@ -2940,7 +2941,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2940
2941
  {
2941
2942
  type: "button",
2942
2943
  onClick: () => fileInputRef.current?.click(),
2943
- className: "inline-flex items-center gap-2 rounded-md border border-border bg-card px-3 py-2 text-xs font-semibold text-foreground hover:bg-muted transition-colors",
2944
+ className: "inline-flex items-center gap-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-2 text-xs font-semibold text-foreground hover:bg-surface-container-high transition-colors",
2944
2945
  children: [
2945
2946
  /* @__PURE__ */ jsx7(Upload, { className: "h-3.5 w-3.5" }),
2946
2947
  "Choose .env file"
@@ -2967,7 +2968,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
2967
2968
  onChange: (e) => setImportText(e.target.value),
2968
2969
  rows: 6,
2969
2970
  spellCheck: false,
2970
- className: "w-full rounded-md border border-border bg-card px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2971
+ className: "w-full rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
2971
2972
  }
2972
2973
  ),
2973
2974
  /* @__PURE__ */ jsxs7("p", { className: "text-[11px] text-muted-foreground", children: [
@@ -3017,7 +3018,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3017
3018
  /* @__PURE__ */ jsx7("div", { className: "max-h-64 space-y-2 overflow-y-auto", children: importResult.rows.map((row, index) => {
3018
3019
  const status = rowStatus[index];
3019
3020
  const message = rowMessages[index];
3020
- return /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-2 rounded-md border border-border bg-muted/30 p-2", children: [
3021
+ return /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-2 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-high p-2", children: [
3021
3022
  /* @__PURE__ */ jsx7(
3022
3023
  "input",
3023
3024
  {
@@ -3026,7 +3027,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3026
3027
  value: row.key,
3027
3028
  onChange: (e) => updateRowKey(index, e.target.value),
3028
3029
  disabled: isImportSaving,
3029
- className: "w-2/5 rounded border border-border bg-card px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
3030
+ className: "w-2/5 rounded border border-[var(--md3-outline-variant)] bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
3030
3031
  }
3031
3032
  ),
3032
3033
  /* @__PURE__ */ jsx7(
@@ -3037,7 +3038,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3037
3038
  value: row.value,
3038
3039
  onChange: (e) => updateRowValue(index, e.target.value),
3039
3040
  disabled: isImportSaving,
3040
- className: "w-2/5 rounded border border-border bg-card px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
3041
+ className: "w-2/5 rounded border border-[var(--md3-outline-variant)] bg-surface-container-low px-2 py-1.5 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-60"
3041
3042
  }
3042
3043
  ),
3043
3044
  /* @__PURE__ */ jsxs7("div", { className: "flex w-1/5 flex-col items-end gap-1", children: [
@@ -3076,7 +3077,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3076
3077
  resetImportState();
3077
3078
  },
3078
3079
  disabled: isImportSaving,
3079
- className: "rounded-md border border-border bg-card px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors disabled:opacity-50 disabled:pointer-events-none",
3080
+ className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors disabled:opacity-50 disabled:pointer-events-none",
3080
3081
  children: "Cancel"
3081
3082
  }
3082
3083
  ),
@@ -3109,7 +3110,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3109
3110
  {
3110
3111
  type: "button",
3111
3112
  onClick: () => setDeleteTarget(null),
3112
- className: "rounded-md border border-border bg-card px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors",
3113
+ className: "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
3113
3114
  children: "Cancel"
3114
3115
  }
3115
3116
  ),
@@ -3125,8 +3126,8 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3125
3126
  )
3126
3127
  ] })
3127
3128
  ] }) }),
3128
- /* @__PURE__ */ jsxs7("div", { className: "overflow-hidden rounded-lg border border-border bg-card shadow-[var(--shadow-card)]", children: [
3129
- /* @__PURE__ */ jsxs7("div", { className: "border-b border-border px-6 py-4 flex items-center justify-between", children: [
3129
+ /* @__PURE__ */ jsxs7("div", { className: "overflow-hidden rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container shadow-[var(--shadow-card)]", children: [
3130
+ /* @__PURE__ */ jsxs7("div", { className: "border-b border-[var(--md3-outline-variant)] px-6 py-4 flex items-center justify-between", children: [
3130
3131
  /* @__PURE__ */ jsx7("div", { className: "flex gap-6", children: /* @__PURE__ */ jsx7("button", { type: "button", className: "text-xs font-bold uppercase tracking-widest text-foreground border-b-2 border-foreground pb-1", children: "All Secrets" }) }),
3131
3132
  /* @__PURE__ */ jsxs7("span", { className: "text-xs text-muted-foreground font-mono", children: [
3132
3133
  secrets.length,
@@ -3152,18 +3153,18 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3152
3153
  }
3153
3154
  )
3154
3155
  ] }) : /* @__PURE__ */ jsxs7("table", { className: "w-full text-left border-collapse", children: [
3155
- /* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "bg-muted/30 border-b border-border", children: [
3156
+ /* @__PURE__ */ jsx7("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "bg-surface-container-high border-b border-[var(--md3-outline-variant)]", children: [
3156
3157
  /* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Secret Name" }),
3157
3158
  /* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Encrypted Value" }),
3158
3159
  /* @__PURE__ */ jsx7("th", { className: "px-6 py-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground text-right", children: "Created" }),
3159
3160
  /* @__PURE__ */ jsx7("th", { className: "px-6 py-4 w-12" })
3160
3161
  ] }) }),
3161
- /* @__PURE__ */ jsx7("tbody", { className: "divide-y divide-border", children: secrets.map((secret) => /* @__PURE__ */ jsxs7("tr", { className: "hover:bg-muted/20 transition-colors", children: [
3162
+ /* @__PURE__ */ jsx7("tbody", { className: "divide-y divide-border", children: secrets.map((secret) => /* @__PURE__ */ jsxs7("tr", { className: "hover:bg-surface-container-high transition-colors", children: [
3162
3163
  /* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3", children: [
3163
3164
  /* @__PURE__ */ jsx7(Key, { className: "h-4 w-4 text-muted-foreground" }),
3164
3165
  /* @__PURE__ */ jsx7("span", { className: "text-sm font-bold font-mono text-foreground", children: secret.name })
3165
3166
  ] }) }),
3166
- /* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-muted px-2 py-1 rounded", children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }) }),
3167
+ /* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7("code", { className: "text-xs font-mono text-muted-foreground bg-surface-container-high px-2 py-1 rounded", children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }) }),
3167
3168
  /* @__PURE__ */ jsx7("td", { className: "px-6 py-4 text-right", children: /* @__PURE__ */ jsx7("span", { className: "text-xs text-muted-foreground", children: formatDate(secret.createdAt) }) }),
3168
3169
  /* @__PURE__ */ jsx7("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsx7(
3169
3170
  "button",
@@ -3179,14 +3180,14 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
3179
3180
  ] })
3180
3181
  ] }),
3181
3182
  /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
3182
- /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-border bg-card p-6 shadow-[var(--shadow-card)]", children: [
3183
+ /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
3183
3184
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 mb-3", children: [
3184
3185
  /* @__PURE__ */ jsx7("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx7(Shield, { className: "h-5 w-5" }) }),
3185
3186
  /* @__PURE__ */ jsx7("h3", { className: "text-sm font-bold text-foreground", children: "Encryption Standard" })
3186
3187
  ] }),
3187
3188
  /* @__PURE__ */ jsx7("p", { className: "text-sm text-muted-foreground leading-relaxed", children: "Your secrets are encrypted using AES-256-GCM at rest and TLS 1.3 in transit. Hardware Security Modules manage all root keys." })
3188
3189
  ] }),
3189
- /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-border bg-card p-6 shadow-[var(--shadow-card)]", children: [
3190
+ /* @__PURE__ */ jsxs7("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
3190
3191
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 mb-3", children: [
3191
3192
  /* @__PURE__ */ jsx7("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx7(Lock, { className: "h-5 w-5" }) }),
3192
3193
  /* @__PURE__ */ jsx7("h3", { className: "text-sm font-bold text-foreground", children: "Access Policy" })
@@ -3207,7 +3208,7 @@ function TemplatesPage({ templates, loading = false, onUseTemplate, className })
3207
3208
  /* @__PURE__ */ jsx8("h1", { className: "font-bold text-3xl text-foreground", children: "Templates" }),
3208
3209
  /* @__PURE__ */ jsx8("p", { className: "mt-1 text-muted-foreground", children: "Pre-configured environments to get started quickly" })
3209
3210
  ] }),
3210
- loading || !templates ? /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx8(Skeleton3, { className: "h-56 rounded-2xl" }, i)) }) : templates.length === 0 ? /* @__PURE__ */ jsxs8("div", { className: "rounded-2xl border border-border bg-card p-16 text-center", children: [
3211
+ loading || !templates ? /* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx8(Skeleton3, { className: "h-56 rounded-2xl" }, i)) }) : templates.length === 0 ? /* @__PURE__ */ jsxs8("div", { className: "rounded-2xl border border-[var(--md3-outline-variant)] bg-surface-container p-16 text-center", children: [
3211
3212
  /* @__PURE__ */ jsx8(Layers2, { className: "mx-auto mb-3 h-10 w-10 text-muted-foreground" }),
3212
3213
  /* @__PURE__ */ jsx8("p", { className: "text-sm font-medium text-foreground mb-1", children: "No templates available" }),
3213
3214
  /* @__PURE__ */ jsx8("p", { className: "text-sm text-muted-foreground", children: "Check back later for pre-configured environments." })
@@ -3594,11 +3595,11 @@ function StartupScriptsPage({ apiClient, className }) {
3594
3595
  }
3595
3596
  ),
3596
3597
  /* @__PURE__ */ jsxs9("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-4", children: [
3597
- /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-border bg-card p-5 shadow-[var(--shadow-card)]", children: [
3598
+ /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
3598
3599
  /* @__PURE__ */ jsx9("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Total Scripts" }),
3599
3600
  /* @__PURE__ */ jsx9("div", { className: "mt-2 flex items-baseline gap-2", children: /* @__PURE__ */ jsx9("span", { className: "font-display text-2xl font-extrabold text-foreground", children: scripts.length }) })
3600
3601
  ] }),
3601
- /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-border bg-card p-5 shadow-[var(--shadow-card)]", children: [
3602
+ /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]", children: [
3602
3603
  /* @__PURE__ */ jsx9("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Active" }),
3603
3604
  /* @__PURE__ */ jsxs9("div", { className: "mt-2 flex items-baseline gap-2", children: [
3604
3605
  /* @__PURE__ */ jsx9("span", { className: "font-display text-2xl font-extrabold text-foreground", children: activeCount }),
@@ -3643,7 +3644,7 @@ function StartupScriptsPage({ apiClient, className }) {
3643
3644
  {
3644
3645
  type: "button",
3645
3646
  onClick: () => openBlankScript(type),
3646
- className: "rounded-lg border border-border bg-card px-4 py-2.5 text-sm font-medium text-foreground hover:border-primary/30 hover:bg-muted/50 transition-colors",
3647
+ className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-4 py-2.5 text-sm font-medium text-foreground hover:border-primary/30 hover:bg-surface-container-high transition-colors",
3647
3648
  children: meta.label
3648
3649
  },
3649
3650
  type
@@ -3656,16 +3657,16 @@ function StartupScriptsPage({ apiClient, className }) {
3656
3657
  {
3657
3658
  type: "button",
3658
3659
  onClick: () => openFromTemplate(tmpl),
3659
- className: "w-full text-left rounded-lg border border-border bg-card p-4 hover:border-primary/30 hover:bg-muted/30 transition-colors group",
3660
+ className: "w-full text-left rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-4 hover:border-primary/30 hover:bg-surface-container-high transition-colors group",
3660
3661
  children: [
3661
3662
  /* @__PURE__ */ jsxs9("div", { className: "flex items-center justify-between", children: [
3662
3663
  /* @__PURE__ */ jsxs9("div", { children: [
3663
3664
  /* @__PURE__ */ jsx9("h4", { className: "text-sm font-bold text-foreground group-hover:text-primary transition-colors", children: tmpl.name }),
3664
3665
  /* @__PURE__ */ jsx9("p", { className: "mt-0.5 text-xs text-muted-foreground", children: tmpl.description })
3665
3666
  ] }),
3666
- /* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-muted rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[tmpl.scriptType].label })
3667
+ /* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[tmpl.scriptType].label })
3667
3668
  ] }),
3668
- tmpl.injectSecrets.length > 0 && /* @__PURE__ */ jsx9("div", { className: "mt-2 flex flex-wrap gap-1", children: tmpl.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-0.5 rounded-full bg-muted px-2 py-0.5 text-[10px] text-muted-foreground", children: [
3669
+ tmpl.injectSecrets.length > 0 && /* @__PURE__ */ jsx9("div", { className: "mt-2 flex flex-wrap gap-1", children: tmpl.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-0.5 rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] text-muted-foreground", children: [
3669
3670
  /* @__PURE__ */ jsx9(Lock2, { className: "h-2.5 w-2.5" }),
3670
3671
  s
3671
3672
  ] }, s)) })
@@ -3702,7 +3703,7 @@ function StartupScriptsPage({ apiClient, className }) {
3702
3703
  onChange: (e) => setFormData((p) => ({ ...p, name: e.target.value })),
3703
3704
  placeholder: "Install Claude Code",
3704
3705
  maxLength: 64,
3705
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3706
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3706
3707
  }
3707
3708
  )
3708
3709
  ] }),
@@ -3716,7 +3717,7 @@ function StartupScriptsPage({ apiClient, className }) {
3716
3717
  onChange: (e) => setFormData((p) => ({ ...p, description: e.target.value })),
3717
3718
  placeholder: "Sets up Claude Code with authentication",
3718
3719
  maxLength: 256,
3719
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3720
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3720
3721
  }
3721
3722
  )
3722
3723
  ] }),
@@ -3737,7 +3738,7 @@ function StartupScriptsPage({ apiClient, className }) {
3737
3738
  },
3738
3739
  className: cn(
3739
3740
  "rounded-lg px-3 py-1.5 text-xs font-medium border transition-colors",
3740
- formData.scriptType === type ? "bg-primary/10 border-primary/30 text-primary" : "bg-background border-border text-muted-foreground hover:border-primary/20"
3741
+ formData.scriptType === type ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
3741
3742
  ),
3742
3743
  children: meta.label
3743
3744
  },
@@ -3753,7 +3754,7 @@ function StartupScriptsPage({ apiClient, className }) {
3753
3754
  onChange: (e) => setFormData((p) => ({ ...p, content: e.target.value })),
3754
3755
  rows: 12,
3755
3756
  spellCheck: false,
3756
- className: "mt-1.5 w-full rounded-lg border border-border bg-[var(--depth-1,hsl(var(--muted)))] px-4 py-3 font-mono text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y"
3757
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-4 py-3 font-mono text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y"
3757
3758
  }
3758
3759
  ),
3759
3760
  /* @__PURE__ */ jsxs9("p", { className: "mt-1 text-xs text-muted-foreground", children: [
@@ -3775,7 +3776,7 @@ function StartupScriptsPage({ apiClient, className }) {
3775
3776
  onClick: () => toggleSecret(secret.name),
3776
3777
  className: cn(
3777
3778
  "inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs font-medium border transition-colors",
3778
- selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-muted border-border text-muted-foreground hover:border-primary/20"
3779
+ selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
3779
3780
  ),
3780
3781
  children: [
3781
3782
  /* @__PURE__ */ jsx9(Lock2, { className: "h-3 w-3" }),
@@ -3799,7 +3800,7 @@ function StartupScriptsPage({ apiClient, className }) {
3799
3800
  ]
3800
3801
  }
3801
3802
  ),
3802
- showConditions && /* @__PURE__ */ jsxs9("div", { className: "mt-3 space-y-4 rounded-lg border border-border bg-muted/30 p-4", children: [
3803
+ showConditions && /* @__PURE__ */ jsxs9("div", { className: "mt-3 space-y-4 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high p-4", children: [
3803
3804
  /* @__PURE__ */ jsxs9("div", { children: [
3804
3805
  /* @__PURE__ */ jsxs9("label", { className: "text-xs font-bold uppercase tracking-widest text-muted-foreground flex items-center gap-1.5", children: [
3805
3806
  /* @__PURE__ */ jsx9(Layers3, { className: "h-3.5 w-3.5" }),
@@ -3815,7 +3816,7 @@ function StartupScriptsPage({ apiClient, className }) {
3815
3816
  onClick: () => toggleEnvironment(env.id),
3816
3817
  className: cn(
3817
3818
  "rounded-full px-3 py-1 text-xs font-medium border transition-colors",
3818
- selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-background border-border text-muted-foreground hover:border-primary/20"
3819
+ selected ? "bg-primary/10 border-primary/30 text-primary" : "bg-surface-container-low border-[var(--md3-outline-variant)] text-muted-foreground hover:border-primary/20"
3819
3820
  ),
3820
3821
  children: env.name || env.id
3821
3822
  },
@@ -3841,7 +3842,7 @@ function StartupScriptsPage({ apiClient, className }) {
3841
3842
  placeholder: "Any",
3842
3843
  min: 0.5,
3843
3844
  step: 0.5,
3844
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3845
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3845
3846
  }
3846
3847
  )
3847
3848
  ] }),
@@ -3862,7 +3863,7 @@ function StartupScriptsPage({ apiClient, className }) {
3862
3863
  placeholder: "Any",
3863
3864
  min: 1,
3864
3865
  step: 1,
3865
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3866
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3866
3867
  }
3867
3868
  )
3868
3869
  ] })
@@ -3881,7 +3882,7 @@ function StartupScriptsPage({ apiClient, className }) {
3881
3882
  onChange: (e) => setFormData((p) => ({ ...p, runOrder: e.target.value ? Math.max(0, Number(e.target.value)) : 0 })),
3882
3883
  min: 0,
3883
3884
  max: 9999,
3884
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3885
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3885
3886
  }
3886
3887
  ),
3887
3888
  /* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs text-muted-foreground", children: "Lower runs first" })
@@ -3899,7 +3900,7 @@ function StartupScriptsPage({ apiClient, className }) {
3899
3900
  onChange: (e) => setFormData((p) => ({ ...p, timeoutSeconds: e.target.value ? Math.max(5, Number(e.target.value)) : 300 })),
3900
3901
  min: 5,
3901
3902
  max: 3600,
3902
- className: "mt-1.5 w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3903
+ className: "mt-1.5 w-full rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-low px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"
3903
3904
  }
3904
3905
  )
3905
3906
  ] })
@@ -3971,7 +3972,7 @@ function StartupScriptsPage({ apiClient, className }) {
3971
3972
  {
3972
3973
  type: "button",
3973
3974
  onClick: () => goToStep("picker"),
3974
- className: "inline-flex items-center gap-1.5 rounded-lg border border-border px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",
3975
+ className: "inline-flex items-center gap-1.5 rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:bg-surface-container-high transition-colors",
3975
3976
  children: [
3976
3977
  /* @__PURE__ */ jsx9("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx9("path", { d: "m15 18-6-6 6-6" }) }),
3977
3978
  "Back"
@@ -3984,7 +3985,7 @@ function StartupScriptsPage({ apiClient, className }) {
3984
3985
  {
3985
3986
  type: "button",
3986
3987
  onClick: () => setIsDialogOpen(false),
3987
- className: "rounded-lg border border-border px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors",
3988
+ className: "rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
3988
3989
  children: "Cancel"
3989
3990
  }
3990
3991
  ),
@@ -4020,7 +4021,7 @@ function StartupScriptsPage({ apiClient, className }) {
4020
4021
  {
4021
4022
  type: "button",
4022
4023
  onClick: () => setDeleteTarget(null),
4023
- className: "rounded-lg border border-border px-4 py-2 text-sm font-medium text-foreground hover:bg-muted transition-colors",
4024
+ className: "rounded-lg border border-[var(--md3-outline-variant)] px-4 py-2 text-sm font-medium text-foreground hover:bg-surface-container-high transition-colors",
4024
4025
  children: "Cancel"
4025
4026
  }
4026
4027
  ),
@@ -4036,8 +4037,8 @@ function StartupScriptsPage({ apiClient, className }) {
4036
4037
  )
4037
4038
  ] })
4038
4039
  ] }) }),
4039
- /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-lg border border-border bg-card shadow-[var(--shadow-card)]", children: [
4040
- /* @__PURE__ */ jsxs9("div", { className: "border-b border-border px-6 py-4 flex items-center justify-between", children: [
4040
+ /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container shadow-[var(--shadow-card)]", children: [
4041
+ /* @__PURE__ */ jsxs9("div", { className: "border-b border-[var(--md3-outline-variant)] px-6 py-4 flex items-center justify-between", children: [
4041
4042
  /* @__PURE__ */ jsx9("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx9("button", { className: "text-xs font-bold uppercase tracking-widest text-foreground", children: "All Scripts" }) }),
4042
4043
  /* @__PURE__ */ jsxs9("span", { className: "text-xs text-muted-foreground font-mono", children: [
4043
4044
  scripts.length,
@@ -4062,11 +4063,11 @@ function StartupScriptsPage({ apiClient, className }) {
4062
4063
  ]
4063
4064
  }
4064
4065
  )
4065
- ] }) : /* @__PURE__ */ jsx9("div", { className: "divide-y divide-border", children: scripts.map((script) => /* @__PURE__ */ jsxs9(
4066
+ ] }) : /* @__PURE__ */ jsx9("div", { className: "divide-y divide-[var(--md3-outline-variant)]", children: scripts.map((script) => /* @__PURE__ */ jsxs9(
4066
4067
  "div",
4067
4068
  {
4068
4069
  className: cn(
4069
- "group flex items-center gap-4 px-6 py-4 transition-colors hover:bg-muted/30",
4070
+ "group flex items-center gap-4 px-6 py-4 transition-colors hover:bg-surface-container-high",
4070
4071
  !script.enabled && "opacity-60"
4071
4072
  ),
4072
4073
  children: [
@@ -4086,8 +4087,8 @@ function StartupScriptsPage({ apiClient, className }) {
4086
4087
  /* @__PURE__ */ jsxs9("div", { className: "flex-1 min-w-0", children: [
4087
4088
  /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2", children: [
4088
4089
  /* @__PURE__ */ jsx9("h4", { className: "text-sm font-bold text-foreground truncate", children: script.name }),
4089
- /* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-muted rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[script.scriptType ?? "bash"].label }),
4090
- script.runOrder !== 100 && /* @__PURE__ */ jsxs9("span", { className: "text-[10px] font-mono text-muted-foreground bg-muted rounded px-1.5 py-0.5", children: [
4090
+ /* @__PURE__ */ jsx9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: SCRIPT_TYPE_META[script.scriptType ?? "bash"].label }),
4091
+ script.runOrder !== 100 && /* @__PURE__ */ jsxs9("span", { className: "text-[10px] font-mono text-muted-foreground bg-surface-container-high rounded px-1.5 py-0.5", children: [
4091
4092
  "#",
4092
4093
  script.runOrder
4093
4094
  ] })
@@ -4095,7 +4096,7 @@ function StartupScriptsPage({ apiClient, className }) {
4095
4096
  script.description && /* @__PURE__ */ jsx9("p", { className: "mt-0.5 text-xs text-muted-foreground truncate", children: script.description }),
4096
4097
  /* @__PURE__ */ jsxs9("div", { className: "mt-1.5 flex flex-wrap gap-1.5", children: [
4097
4098
  script.environments.map((env) => /* @__PURE__ */ jsx9("span", { className: "rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary", children: env }, env)),
4098
- script.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground flex items-center gap-0.5", children: [
4099
+ script.injectSecrets.map((s) => /* @__PURE__ */ jsxs9("span", { className: "rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] font-medium text-muted-foreground flex items-center gap-0.5", children: [
4099
4100
  /* @__PURE__ */ jsx9(Lock2, { className: "h-2.5 w-2.5" }),
4100
4101
  s
4101
4102
  ] }, s)),
@@ -4114,7 +4115,7 @@ function StartupScriptsPage({ apiClient, className }) {
4114
4115
  {
4115
4116
  type: "button",
4116
4117
  onClick: () => openEdit(script),
4117
- className: "rounded-md p-2 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",
4118
+ className: "rounded-md p-2 text-muted-foreground hover:text-foreground hover:bg-surface-container-high transition-colors",
4118
4119
  "aria-label": `Edit ${script.name}`,
4119
4120
  children: /* @__PURE__ */ jsx9(Pencil, { className: "h-4 w-4" })
4120
4121
  }
@@ -4136,14 +4137,14 @@ function StartupScriptsPage({ apiClient, className }) {
4136
4137
  )) })
4137
4138
  ] }),
4138
4139
  /* @__PURE__ */ jsxs9("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
4139
- /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-border bg-card p-6 shadow-[var(--shadow-card)]", children: [
4140
+ /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
4140
4141
  /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 mb-3", children: [
4141
4142
  /* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx9(Play, { className: "h-5 w-5" }) }),
4142
4143
  /* @__PURE__ */ jsx9("h3", { className: "text-sm font-bold text-foreground", children: "How Scripts Run" })
4143
4144
  ] }),
4144
4145
  /* @__PURE__ */ jsx9("p", { className: "text-sm text-muted-foreground", children: 'Scripts execute in order after the container starts but before the AI agent. They run as bash scripts with full access to mounted tools (Nix profile) and workspace. Failed scripts abort sandbox creation unless "continue on failure" is enabled.' })
4145
4146
  ] }),
4146
- /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-border bg-card p-6 shadow-[var(--shadow-card)]", children: [
4147
+ /* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]", children: [
4147
4148
  /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 mb-3", children: [
4148
4149
  /* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]", children: /* @__PURE__ */ jsx9(Shield2, { className: "h-5 w-5" }) }),
4149
4150
  /* @__PURE__ */ jsx9("h3", { className: "text-sm font-bold text-foreground", children: "Security & Secrets" })