@almadar/ui 5.123.0 → 5.124.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 (57) hide show
  1. package/dist/{TraitProvider-YkK6tXDw.d.cts → TraitProvider-Ch79cUcb.d.cts} +6 -1
  2. package/dist/{TraitProvider-YkK6tXDw.d.ts → TraitProvider-Ch79cUcb.d.ts} +6 -1
  3. package/dist/{UserContext-bziZwgFL.d.cts → UserContext-BKckAUv7.d.cts} +5 -5
  4. package/dist/{UserContext-bziZwgFL.d.ts → UserContext-BKckAUv7.d.ts} +5 -5
  5. package/dist/avl/index.cjs +265 -227
  6. package/dist/avl/index.js +267 -229
  7. package/dist/components/index.cjs +208 -200
  8. package/dist/components/index.d.cts +4 -3
  9. package/dist/components/index.d.ts +4 -3
  10. package/dist/components/index.js +208 -200
  11. package/dist/context/index.cjs +25 -66
  12. package/dist/context/index.d.cts +1 -1
  13. package/dist/context/index.d.ts +1 -1
  14. package/dist/context/index.js +25 -66
  15. package/dist/providers/index.cjs +286 -219
  16. package/dist/providers/index.d.cts +4 -4
  17. package/dist/providers/index.d.ts +4 -4
  18. package/dist/providers/index.js +286 -219
  19. package/dist/runtime/index.cjs +258 -220
  20. package/dist/runtime/index.d.cts +4 -2
  21. package/dist/runtime/index.d.ts +4 -2
  22. package/dist/runtime/index.js +260 -222
  23. package/package.json +8 -7
  24. package/themes/_contract.md +2 -0
  25. package/themes/almadar-website.css +3 -3
  26. package/themes/almadar.css +4 -4
  27. package/themes/bloomberg-dense.css +2 -2
  28. package/themes/clay.css +417 -0
  29. package/themes/corporate.css +411 -0
  30. package/themes/game-adventure.css +3 -3
  31. package/themes/game-rpg.css +2 -2
  32. package/themes/game-sci-fi.css +1 -1
  33. package/themes/game-ui-pack.css +2 -2
  34. package/themes/gazette.css +2 -2
  35. package/themes/glass.css +428 -0
  36. package/themes/index.css +9 -13
  37. package/themes/kiosk.css +5 -5
  38. package/themes/linear-clean.css +1 -1
  39. package/themes/minimalist.css +2 -2
  40. package/themes/neon.css +3 -3
  41. package/themes/notion-editorial.css +1 -1
  42. package/themes/prism.css +3 -3
  43. package/themes/retro.css +410 -0
  44. package/themes/terminal.css +1 -1
  45. package/themes/trait-wars.css +8 -8
  46. package/themes/wireframe.css +2 -2
  47. package/themes/arctic.css +0 -235
  48. package/themes/copper.css +0 -235
  49. package/themes/ember.css +0 -238
  50. package/themes/forest.css +0 -238
  51. package/themes/lavender.css +0 -233
  52. package/themes/midnight.css +0 -234
  53. package/themes/ocean.css +0 -238
  54. package/themes/rose.css +0 -233
  55. package/themes/sand.css +0 -234
  56. package/themes/slate.css +0 -233
  57. package/themes/sunset.css +0 -238
@@ -3926,15 +3926,15 @@ var init_TextHighlight = __esm({
3926
3926
  const typeStyles = {
3927
3927
  question: cn(
3928
3928
  // Blue border for questions
3929
- "bg-card border-b-2 border-primary-600",
3929
+ "bg-card border-b-2 border-primary",
3930
3930
  "hover:bg-muted",
3931
- isActive && "bg-primary-100 ring-2 ring-primary-600"
3931
+ isActive && "bg-primary/10 ring-2 ring-primary"
3932
3932
  ),
3933
3933
  note: cn(
3934
3934
  // Yellow border for notes
3935
- "bg-card border-b-2 border-amber-500",
3935
+ "bg-card border-b-2 border-warning",
3936
3936
  "hover:bg-muted",
3937
- isActive && "bg-amber-100 ring-2 ring-amber-500"
3937
+ isActive && "bg-warning/10 ring-2 ring-warning"
3938
3938
  )
3939
3939
  };
3940
3940
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4542,7 +4542,7 @@ function DayCell({
4542
4542
  {
4543
4543
  className: cn(
4544
4544
  "p-2 text-center cursor-pointer hover:bg-muted transition-colors",
4545
- isToday && "bg-blue-500/10",
4545
+ isToday && "bg-primary/10",
4546
4546
  className
4547
4547
  ),
4548
4548
  onClick: handleClick,
@@ -4553,7 +4553,7 @@ function DayCell({
4553
4553
  variant: "small",
4554
4554
  className: cn(
4555
4555
  "font-medium",
4556
- isToday ? "text-blue-600" : "text-muted-foreground"
4556
+ isToday ? "text-primary" : "text-muted-foreground"
4557
4557
  ),
4558
4558
  children: dayAbbr
4559
4559
  }
@@ -4565,7 +4565,7 @@ function DayCell({
4565
4565
  rounded: "full",
4566
4566
  className: cn(
4567
4567
  "h-8 w-8 mx-auto items-center justify-center",
4568
- isToday && "bg-blue-600 text-white"
4568
+ isToday && "bg-primary text-primary-foreground"
4569
4569
  ),
4570
4570
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-semibold", children: safeDate.getDate() })
4571
4571
  }
@@ -7880,19 +7880,19 @@ var init_ActivationBlock = __esm({
7880
7880
  "div",
7881
7881
  {
7882
7882
  className: cn(
7883
- "bg-indigo-50 dark:bg-indigo-900/20 border-2 border-indigo-200 dark:border-indigo-800 rounded-lg p-5 mb-6",
7883
+ "bg-primary/10 border-2 border-primary rounded-lg p-5 mb-6",
7884
7884
  className
7885
7885
  ),
7886
7886
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
7887
- /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-indigo-600 dark:text-indigo-400 flex-shrink-0 mt-1", size: 24 }),
7887
+ /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-primary flex-shrink-0 mt-1", size: 24 }),
7888
7888
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
7889
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-indigo-900 dark:text-indigo-100 mb-2", children: "Before You Begin..." }),
7890
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-700 dark:text-gray-300 mb-3 text-sm md:text-base", children: question }),
7889
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-primary mb-2", children: "Before You Begin..." }),
7890
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground mb-3 text-sm md:text-base", children: question }),
7891
7891
  isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7892
7892
  /* @__PURE__ */ jsxRuntime.jsx(
7893
7893
  "textarea",
7894
7894
  {
7895
- className: "w-full p-3 border border-indigo-300 dark:border-indigo-700 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-indigo-500 focus:border-transparent text-sm",
7895
+ className: "w-full p-3 border border-input rounded-md bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent text-sm",
7896
7896
  placeholder: "Jot down your thoughts...",
7897
7897
  value: response,
7898
7898
  onChange: (e) => setResponse(e.target.value),
@@ -7904,7 +7904,7 @@ var init_ActivationBlock = __esm({
7904
7904
  "button",
7905
7905
  {
7906
7906
  onClick: handleSubmit,
7907
- className: "px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 text-sm font-medium transition-colors",
7907
+ className: "px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary-hover text-sm font-medium transition-colors",
7908
7908
  children: "Continue to Lesson \u2192"
7909
7909
  }
7910
7910
  ),
@@ -7915,7 +7915,7 @@ var init_ActivationBlock = __esm({
7915
7915
  emit(`UI:${saveEvent}`, { response: "" });
7916
7916
  setIsExpanded(false);
7917
7917
  },
7918
- className: "px-4 py-2 text-indigo-600 dark:text-indigo-400 hover:underline text-sm",
7918
+ className: "px-4 py-2 text-primary hover:underline text-sm",
7919
7919
  children: "Skip for now"
7920
7920
  }
7921
7921
  )
@@ -7924,7 +7924,7 @@ var init_ActivationBlock = __esm({
7924
7924
  "button",
7925
7925
  {
7926
7926
  onClick: () => setIsExpanded(true),
7927
- className: "text-sm text-indigo-600 dark:text-indigo-400 hover:underline font-medium",
7927
+ className: "text-sm text-primary hover:underline font-medium",
7928
7928
  children: "\u2713 Answered \xB7 Edit response"
7929
7929
  }
7930
7930
  )
@@ -8737,7 +8737,7 @@ var init_AuthLayout = __esm({
8737
8737
  exports.VStack,
8738
8738
  {
8739
8739
  className: cn(
8740
- "hidden lg:flex lg:w-1/2 bg-primary-600 relative overflow-hidden",
8740
+ "hidden lg:flex lg:w-1/2 bg-primary relative overflow-hidden",
8741
8741
  "justify-between p-12"
8742
8742
  ),
8743
8743
  style: backgroundImage ? {
@@ -8746,7 +8746,7 @@ var init_AuthLayout = __esm({
8746
8746
  } : void 0,
8747
8747
  gap: "none",
8748
8748
  children: [
8749
- /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute inset-0 bg-gradient-to-br from-primary-600/90 to-primary-800/90" }),
8749
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute inset-0 bg-gradient-to-br from-primary/90 to-primary-hover/90" }),
8750
8750
  /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "relative z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-3", children: [
8751
8751
  logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-10 h-10 bg-[var(--color-card)]/20 rounded-xl flex items-center justify-center backdrop-blur", children: /* @__PURE__ */ jsxRuntime.jsx(
8752
8752
  exports.Typography,
@@ -8831,7 +8831,7 @@ var init_AuthLayout = __esm({
8831
8831
  ),
8832
8832
  children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "w-full max-w-md", children: [
8833
8833
  /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "lg:hidden mb-8 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "inline-flex items-center gap-3", children: [
8834
- logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-12 h-12 bg-primary-600 rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
8834
+ logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-12 h-12 bg-primary rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
8835
8835
  exports.Typography,
8836
8836
  {
8837
8837
  variant: "body1",
@@ -10825,7 +10825,7 @@ var init_CodeBlock = __esm({
10825
10825
  {
10826
10826
  justify: "between",
10827
10827
  align: "center",
10828
- className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-gray-700",
10828
+ className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-border",
10829
10829
  children: [
10830
10830
  showLanguageBadge && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", children: language }),
10831
10831
  effectiveCopy && /* @__PURE__ */ jsxRuntime.jsx(
@@ -10834,9 +10834,9 @@ var init_CodeBlock = __esm({
10834
10834
  variant: "ghost",
10835
10835
  size: "sm",
10836
10836
  onClick: handleCopy,
10837
- className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
10837
+ className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",
10838
10838
  "aria-label": t("common.copy"),
10839
- children: copied ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "check", className: "w-4 h-4 text-green-400" }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "copy", className: "w-4 h-4" })
10839
+ children: copied ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "check", className: "w-4 h-4 text-success" }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "copy", className: "w-4 h-4" })
10840
10840
  }
10841
10841
  )
10842
10842
  ]
@@ -11204,12 +11204,12 @@ var init_BloomQuizBlock = __esm({
11204
11204
  init_useEventBus();
11205
11205
  init_cn();
11206
11206
  BLOOM_CONFIG = {
11207
- remember: { color: "bg-gray-500", bgColor: "bg-gray-50 dark:bg-gray-900/30", label: "Remember" },
11208
- understand: { color: "bg-blue-500", bgColor: "bg-blue-50 dark:bg-blue-900/30", label: "Understand" },
11209
- apply: { color: "bg-green-500", bgColor: "bg-green-50 dark:bg-green-900/30", label: "Apply" },
11210
- analyze: { color: "bg-yellow-500", bgColor: "bg-yellow-50 dark:bg-yellow-900/30", label: "Analyze" },
11211
- evaluate: { color: "bg-orange-500", bgColor: "bg-orange-50 dark:bg-orange-900/30", label: "Evaluate" },
11212
- create: { color: "bg-purple-500", bgColor: "bg-purple-50 dark:bg-purple-900/30", label: "Create" }
11207
+ remember: { color: "bg-secondary text-secondary-foreground", bgColor: "bg-muted", label: "Remember" },
11208
+ understand: { color: "bg-info text-info-foreground", bgColor: "bg-info/10", label: "Understand" },
11209
+ apply: { color: "bg-success text-success-foreground", bgColor: "bg-success/10", label: "Apply" },
11210
+ analyze: { color: "bg-warning text-warning-foreground", bgColor: "bg-warning/10", label: "Analyze" },
11211
+ evaluate: { color: "bg-accent text-accent-foreground", bgColor: "bg-accent/10", label: "Evaluate" },
11212
+ create: { color: "bg-primary text-primary-foreground", bgColor: "bg-primary/10", label: "Create" }
11213
11213
  };
11214
11214
  exports.BloomQuizBlock = ({
11215
11215
  level,
@@ -11235,22 +11235,22 @@ var init_BloomQuizBlock = __esm({
11235
11235
  "div",
11236
11236
  {
11237
11237
  className: cn(
11238
- "rounded-lg border border-indigo-100 dark:border-indigo-800 p-4 my-4 transition-all",
11238
+ "rounded-lg border border-primary p-4 my-4 transition-all",
11239
11239
  config.bgColor,
11240
11240
  className
11241
11241
  ),
11242
11242
  children: [
11243
11243
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-3", children: [
11244
11244
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
11245
- index !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500 dark:text-gray-400 font-medium text-sm", children: [
11245
+ index !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground font-medium text-sm", children: [
11246
11246
  "Question ",
11247
11247
  index + 1
11248
11248
  ] }),
11249
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(config.color, "text-white text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
11249
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(config.color, "text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
11250
11250
  ] }),
11251
- isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-green-600 dark:text-green-400 flex-shrink-0", size: 20 })
11251
+ isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-success flex-shrink-0", size: 20 })
11252
11252
  ] }),
11253
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-indigo-900 dark:text-indigo-200 mb-3 space-y-2", children: questionSegments.map(
11253
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-primary mb-3 space-y-2", children: questionSegments.map(
11254
11254
  (segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
11255
11255
  exports.CodeBlock,
11256
11256
  {
@@ -11264,13 +11264,13 @@ var init_BloomQuizBlock = __esm({
11264
11264
  "button",
11265
11265
  {
11266
11266
  type: "button",
11267
- className: "inline-flex items-center rounded-md bg-indigo-600 dark:bg-indigo-500 px-3 py-1.5 text-sm font-medium text-white hover:bg-indigo-700 dark:hover:bg-indigo-600 transition-colors",
11267
+ className: "inline-flex items-center rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary-hover transition-colors",
11268
11268
  onClick: handleReveal,
11269
11269
  children: revealed ? "Hide Answer" : "Reveal Answer"
11270
11270
  }
11271
11271
  ),
11272
- revealed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-white/80 dark:bg-gray-800/80 p-3 text-sm text-slate-800 dark:text-gray-200 shadow-sm border border-indigo-100 dark:border-indigo-800 mt-3 space-y-2", children: [
11273
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-gray-600 dark:text-gray-400 mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
11272
+ revealed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-card/80 p-3 text-sm text-foreground shadow-sm border border-primary mt-3 space-y-2", children: [
11273
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
11274
11274
  answerSegments.map(
11275
11275
  (segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
11276
11276
  exports.CodeBlock,
@@ -11544,12 +11544,12 @@ var init_QuizBlock = __esm({
11544
11544
  }) => {
11545
11545
  const { t } = hooks.useTranslate();
11546
11546
  const [revealed, setRevealed] = React74.useState(false);
11547
- return /* @__PURE__ */ jsxRuntime.jsx(Card2, { className: cn("my-4 border-blue-200 dark:border-blue-800", className), children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "sm", className: "p-4", children: [
11547
+ return /* @__PURE__ */ jsxRuntime.jsx(Card2, { className: cn("my-4 border-primary", className), children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "sm", className: "p-4", children: [
11548
11548
  /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", children: [
11549
- /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: LucideIcons2.HelpCircle, size: "sm", className: "text-blue-500 mt-0.5 shrink-0" }),
11549
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: LucideIcons2.HelpCircle, size: "sm", className: "text-primary mt-0.5 shrink-0" }),
11550
11550
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-medium", children: question })
11551
11551
  ] }),
11552
- revealed ? /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "pl-7 pt-2 border-t border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
11552
+ revealed ? /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "pl-7 pt-2 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
11553
11553
  /* @__PURE__ */ jsxRuntime.jsx(
11554
11554
  exports.Button,
11555
11555
  {
@@ -13461,7 +13461,7 @@ var init_BookTableOfContents = __esm({
13461
13461
  className: cn(
13462
13462
  "justify-start text-left w-full",
13463
13463
  direction === "rtl" && "text-right",
13464
- isCurrent && "bg-blue-50 dark:bg-blue-950 text-blue-600 dark:text-blue-400"
13464
+ isCurrent && "bg-primary/10 text-primary"
13465
13465
  ),
13466
13466
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "truncate", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", children: String(chapter.title ?? "") }) })
13467
13467
  },
@@ -14709,7 +14709,7 @@ function CalendarGrid({
14709
14709
  border: true,
14710
14710
  className: cn(
14711
14711
  "cursor-pointer hover:shadow-sm transition-shadow text-xs truncate",
14712
- color ? color : "bg-blue-500/15 border-blue-500/30 text-blue-600"
14712
+ color ? color : "bg-primary/10 border-primary/30 text-primary"
14713
14713
  ),
14714
14714
  onClick: (e) => handleEventClick(event, e),
14715
14715
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "truncate font-medium", children: event.title })
@@ -14807,7 +14807,7 @@ function CalendarGrid({
14807
14807
  onClick: () => handleSlotClick(day, time),
14808
14808
  className: cn(
14809
14809
  "border-l border-border",
14810
- isToday && "bg-blue-50/30"
14810
+ isToday && "bg-primary/10"
14811
14811
  ),
14812
14812
  ...longPressEvent ? {
14813
14813
  onPointerDown: () => startLongPress(day, time),
@@ -18483,31 +18483,31 @@ var init_CodeRunnerPanel = __esm({
18483
18483
  }
18484
18484
  )
18485
18485
  ] }),
18486
- hasOutput && /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "rounded-lg border border-gray-700 bg-[#0d0d0d] overflow-hidden", children: [
18486
+ hasOutput && /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "rounded-lg border border-border bg-foreground overflow-hidden", children: [
18487
18487
  /* @__PURE__ */ jsxRuntime.jsxs(
18488
18488
  exports.HStack,
18489
18489
  {
18490
18490
  gap: "sm",
18491
18491
  align: "center",
18492
- className: "px-3 py-2 bg-gray-800 border-b border-gray-700",
18492
+ className: "px-3 py-2 bg-card border-b border-border",
18493
18493
  children: [
18494
- /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Terminal, { size: 16, className: "text-gray-400" }),
18495
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-300 font-medium", children: "Output" })
18494
+ /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Terminal, { size: 16, className: "text-muted-foreground" }),
18495
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-foreground font-medium", children: "Output" })
18496
18496
  ]
18497
18497
  }
18498
18498
  ),
18499
- /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18500
- output?.stdout ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-200 whitespace-pre-wrap", children: output.stdout }) : null,
18501
- output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: output.stderr }) : null,
18502
- !output?.stdout && !output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500 italic", children: "No output" }) : null,
18503
- output && output.testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mt-3 pt-3 border-t border-gray-700 space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", className: "text-xs", children: [
18504
- test.passed ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { size: 14, className: "text-green-400 mt-0.5" }) : /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.XCircle, { size: 14, className: "text-red-400 mt-0.5" }),
18499
+ /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18500
+ output?.stdout ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-background whitespace-pre-wrap", children: output.stdout }) : null,
18501
+ output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: output.stderr }) : null,
18502
+ !output?.stdout && !output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-background italic", children: "No output" }) : null,
18503
+ output && output.testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mt-3 pt-3 border-t border-border space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", className: "text-xs", children: [
18504
+ test.passed ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { size: 14, className: "text-success mt-0.5" }) : /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.XCircle, { size: 14, className: "text-error mt-0.5" }),
18505
18505
  /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "xs", className: "flex-1", children: [
18506
18506
  /* @__PURE__ */ jsxRuntime.jsxs(
18507
18507
  exports.Typography,
18508
18508
  {
18509
18509
  variant: "small",
18510
- className: test.passed ? "text-green-400" : "text-red-400",
18510
+ className: test.passed ? "text-success" : "text-error",
18511
18511
  children: [
18512
18512
  "Test ",
18513
18513
  index + 1,
@@ -18516,15 +18516,15 @@ var init_CodeRunnerPanel = __esm({
18516
18516
  ]
18517
18517
  }
18518
18518
  ),
18519
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-gray-400", children: [
18519
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
18520
18520
  "Input: ",
18521
18521
  test.input
18522
18522
  ] }),
18523
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-gray-400", children: [
18523
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
18524
18524
  "Expected: ",
18525
18525
  test.expectedOutput
18526
18526
  ] }),
18527
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-gray-400", children: [
18527
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
18528
18528
  "Actual: ",
18529
18529
  test.actualOutput
18530
18530
  ] })
@@ -18709,14 +18709,14 @@ var init_ConnectionBlock = __esm({
18709
18709
  "div",
18710
18710
  {
18711
18711
  className: cn(
18712
- "bg-emerald-50 dark:bg-emerald-900/20 border-l-4 border-emerald-500 rounded-r-lg p-5 mb-6",
18712
+ "bg-success/10 border-l-4 border-success rounded-r-lg p-5 mb-6",
18713
18713
  className
18714
18714
  ),
18715
18715
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
18716
- /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-1", size: 20 }),
18716
+ /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-success flex-shrink-0 mt-1", size: 20 }),
18717
18717
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
18718
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-emerald-900 dark:text-emerald-100 mb-2", children: "Building On What You Know" }),
18719
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-gray-700 dark:text-gray-300", children: /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content }) })
18718
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-success mb-2", children: "Building On What You Know" }),
18719
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content }) })
18720
18720
  ] })
18721
18721
  ] })
18722
18722
  }
@@ -19107,7 +19107,7 @@ function CounterStandard({
19107
19107
  variant: "h1",
19108
19108
  className: cn(
19109
19109
  sizeStyles8[size].display,
19110
- "font-bold tabular-nums text-primary-600"
19110
+ "font-bold tabular-nums text-primary"
19111
19111
  ),
19112
19112
  children: resolved.count
19113
19113
  }
@@ -19180,7 +19180,7 @@ function CounterFull({
19180
19180
  variant: "h1",
19181
19181
  className: cn(
19182
19182
  sizeStyles8[size].display,
19183
- "font-bold tabular-nums text-primary-600"
19183
+ "font-bold tabular-nums text-primary"
19184
19184
  ),
19185
19185
  children: resolved.count
19186
19186
  }
@@ -19445,11 +19445,11 @@ var init_DashboardLayout = __esm({
19445
19445
  className: "h-16 px-4 border-b border-border dark:border-border",
19446
19446
  children: [
19447
19447
  /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2", children: [
19448
- logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
19448
+ logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-8 h-8 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
19449
19449
  exports.Typography,
19450
19450
  {
19451
19451
  variant: "small",
19452
- className: "text-white font-bold text-sm",
19452
+ className: "text-primary-foreground font-bold text-sm",
19453
19453
  as: "span",
19454
19454
  children: appName.charAt(0).toUpperCase()
19455
19455
  }
@@ -19528,11 +19528,11 @@ var init_DashboardLayout = __esm({
19528
19528
  className: "hidden @md/dashboard:flex items-center gap-1 overflow-x-auto",
19529
19529
  children: [
19530
19530
  /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2 mr-3 shrink-0", children: [
19531
- logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-7 h-7 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
19531
+ logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-7 h-7 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
19532
19532
  exports.Typography,
19533
19533
  {
19534
19534
  variant: "small",
19535
- className: "text-white font-bold text-xs",
19535
+ className: "text-primary-foreground font-bold text-xs",
19536
19536
  as: "span",
19537
19537
  children: appName.charAt(0).toUpperCase()
19538
19538
  }
@@ -19592,8 +19592,8 @@ var init_DashboardLayout = __esm({
19592
19592
  {
19593
19593
  as: "span",
19594
19594
  className: cn(
19595
- "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold text-white flex items-center justify-center",
19596
- action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
19595
+ "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold flex items-center justify-center",
19596
+ action.variant === "danger" ? "bg-error text-error-foreground" : action.variant === "primary" ? "bg-primary text-primary-foreground" : "bg-foreground text-background"
19597
19597
  ),
19598
19598
  children: action.badge
19599
19599
  }
@@ -19615,7 +19615,7 @@ var init_DashboardLayout = __esm({
19615
19615
  exports.Box,
19616
19616
  {
19617
19617
  as: "span",
19618
- className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-xs font-semibold text-white flex items-center justify-center",
19618
+ className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-xs font-semibold text-error-foreground flex items-center justify-center",
19619
19619
  children: unreadCount > 99 ? "99+" : unreadCount
19620
19620
  }
19621
19621
  )
@@ -19898,7 +19898,7 @@ function SubMenu({
19898
19898
  ),
19899
19899
  children: [
19900
19900
  item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: item.icon, size: "sm", className: "flex-shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: item.icon, size: "sm", className: "flex-shrink-0" })),
19901
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: cn("flex-1", isDanger && "text-red-600"), children: item.label }),
19901
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: cn("flex-1", isDanger && "text-error"), children: item.label }),
19902
19902
  item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-xs font-medium", children: item.badge })
19903
19903
  ]
19904
19904
  },
@@ -19955,7 +19955,7 @@ function MenuItemRow({
19955
19955
  exports.Typography,
19956
19956
  {
19957
19957
  variant: "small",
19958
- className: cn("flex-1", isDanger && "text-red-600"),
19958
+ className: cn("flex-1", isDanger && "text-error"),
19959
19959
  children: item.label
19960
19960
  }
19961
19961
  ),
@@ -20723,20 +20723,24 @@ function DataGrid({
20723
20723
  const bodyFields = fieldDefs.filter((f3) => f3 !== titleField && !badgeFields.includes(f3));
20724
20724
  const primaryActions = actionDefs.filter((a) => a.variant !== "danger");
20725
20725
  const dangerActions = actionDefs.filter((a) => a.variant === "danger");
20726
- const handleActionClick = (action, itemData) => (e) => {
20727
- e.stopPropagation();
20728
- const payload = {
20729
- id: itemData.id,
20730
- row: itemData
20731
- };
20732
- eventBus.emit(`UI:${action.event}`, payload);
20726
+ const fireAction = (action, itemData) => {
20733
20727
  if (action.navigatesTo) {
20734
20728
  const url = action.navigatesTo.replace(
20735
20729
  /\{\{row\.(\w+(?:\.\w+)*)\}\}/g,
20736
20730
  (_, field) => String(itemData[field] ?? "")
20737
20731
  );
20738
- eventBus.emit("UI:NAVIGATE", { url });
20732
+ eventBus.emit("UI:NAVIGATE", { url, row: itemData });
20733
+ return;
20739
20734
  }
20735
+ const payload = {
20736
+ id: itemData.id,
20737
+ row: itemData
20738
+ };
20739
+ eventBus.emit(`UI:${action.event}`, payload);
20740
+ };
20741
+ const handleActionClick = (action, itemData) => (e) => {
20742
+ e.stopPropagation();
20743
+ fireAction(action, itemData);
20740
20744
  };
20741
20745
  const hasRenderProp = typeof children === "function";
20742
20746
  React74.useEffect(() => {
@@ -20838,10 +20842,7 @@ function DataGrid({
20838
20842
  label: action.label,
20839
20843
  icon: action.icon,
20840
20844
  event: action.event,
20841
- onClick: () => eventBus.emit(`UI:${action.event}`, {
20842
- id: itemData.id,
20843
- row: itemData
20844
- })
20845
+ onClick: () => fireAction(action, itemData)
20845
20846
  }))
20846
20847
  }
20847
20848
  )
@@ -20983,10 +20984,7 @@ function DataGrid({
20983
20984
  label: action.label,
20984
20985
  icon: action.icon,
20985
20986
  event: action.event,
20986
- onClick: () => eventBus.emit(`UI:${action.event}`, {
20987
- id: itemData.id,
20988
- row: itemData
20989
- })
20987
+ onClick: () => fireAction(action, itemData)
20990
20988
  }))
20991
20989
  }
20992
20990
  )
@@ -24005,8 +24003,8 @@ var init_RelationSelect = __esm({
24005
24003
  disabled,
24006
24004
  className: cn(
24007
24005
  "w-full justify-between font-normal",
24008
- error && "border-red-300 focus:border-red-500 focus:ring-red-500",
24009
- isOpen && "ring-2 ring-primary-500 border-primary-500"
24006
+ error && "border-error/50 focus:border-error focus:ring-error",
24007
+ isOpen && "ring-2 ring-primary border-primary"
24010
24008
  ),
24011
24009
  children: [
24012
24010
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -24086,7 +24084,7 @@ var init_RelationSelect = __esm({
24086
24084
  paddingY: "sm",
24087
24085
  className: cn(
24088
24086
  "text-left text-sm hover:bg-muted focus:outline-none focus:bg-muted",
24089
- option.value === value && "bg-primary-50 text-primary-700",
24087
+ option.value === value && "bg-primary/10 text-primary",
24090
24088
  option.disabled && "opacity-50 cursor-not-allowed"
24091
24089
  ),
24092
24090
  onClick: () => handleSelect(option),
@@ -24243,7 +24241,7 @@ var init_SidePanel = __esm({
24243
24241
  showOverlay && /* @__PURE__ */ jsxRuntime.jsx(exports.Presence, { show: isOpen, animation: "overlay", children: /* @__PURE__ */ jsxRuntime.jsx(
24244
24242
  exports.Box,
24245
24243
  {
24246
- className: "fixed inset-0 bg-white/80 backdrop-blur-sm z-40 lg:hidden",
24244
+ className: "fixed inset-0 bg-background/80 backdrop-blur-sm z-40 lg:hidden",
24247
24245
  onClick: handleClose
24248
24246
  }
24249
24247
  ) }),
@@ -24610,7 +24608,7 @@ var init_WizardNavigation = __esm({
24610
24608
  /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", size: "sm" }),
24611
24609
  resolvedBackLabel
24612
24610
  ] }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
24613
- /* @__PURE__ */ jsxRuntime.jsx(exports.HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-neutral-500", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
24611
+ /* @__PURE__ */ jsxRuntime.jsx(exports.HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-muted-foreground", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
24614
24612
  isLastStep && showComplete ? /* @__PURE__ */ jsxRuntime.jsx(exports.Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxRuntime.jsxs(exports.Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
24615
24613
  resolvedNextLabel,
24616
24614
  /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", size: "sm" })
@@ -29329,6 +29327,7 @@ var init_Lightbox = __esm({
29329
29327
  {
29330
29328
  className: cn(
29331
29329
  "fixed inset-0 z-50 flex items-center justify-center",
29330
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: lightbox scrim behind images
29332
29331
  "bg-black bg-opacity-90",
29333
29332
  className
29334
29333
  ),
@@ -29351,7 +29350,7 @@ var init_Lightbox = __esm({
29351
29350
  "p-2 rounded-full",
29352
29351
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29353
29352
  "hover:bg-opacity-70 transition-opacity",
29354
- "focus:outline-none focus:ring-2 focus:ring-white"
29353
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29355
29354
  ),
29356
29355
  "aria-label": t("aria.closeModal"),
29357
29356
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "x", className: "w-6 h-6" })
@@ -29370,7 +29369,7 @@ var init_Lightbox = __esm({
29370
29369
  "p-2 rounded-full",
29371
29370
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29372
29371
  "hover:bg-opacity-70 transition-opacity",
29373
- "focus:outline-none focus:ring-2 focus:ring-white"
29372
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29374
29373
  ),
29375
29374
  "aria-label": t("aria.previousImage"),
29376
29375
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", className: "w-8 h-8" })
@@ -29407,7 +29406,7 @@ var init_Lightbox = __esm({
29407
29406
  "p-2 rounded-full",
29408
29407
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29409
29408
  "hover:bg-opacity-70 transition-opacity",
29410
- "focus:outline-none focus:ring-2 focus:ring-white"
29409
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29411
29410
  ),
29412
29411
  "aria-label": t("aria.nextImage"),
29413
29412
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", className: "w-8 h-8" })
@@ -32480,6 +32479,7 @@ var init_QrScanner = __esm({
32480
32479
  overflow: "hidden",
32481
32480
  rounded: "sm",
32482
32481
  className: cn(
32482
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32483
32483
  "bg-black",
32484
32484
  "aspect-square w-full max-w-md",
32485
32485
  className
@@ -32544,7 +32544,9 @@ var init_QrScanner = __esm({
32544
32544
  type: "button",
32545
32545
  onClick: togglePause,
32546
32546
  className: cn(
32547
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32547
32548
  "rounded-full bg-black bg-opacity-60 p-2 text-white",
32549
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32548
32550
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32549
32551
  ),
32550
32552
  "aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
@@ -32557,7 +32559,9 @@ var init_QrScanner = __esm({
32557
32559
  type: "button",
32558
32560
  onClick: toggleFacing,
32559
32561
  className: cn(
32562
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32560
32563
  "rounded-full bg-black bg-opacity-60 p-2 text-white",
32564
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32561
32565
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32562
32566
  ),
32563
32567
  "aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
@@ -32570,7 +32574,9 @@ var init_QrScanner = __esm({
32570
32574
  type: "button",
32571
32575
  onClick: handleMockScan,
32572
32576
  className: cn(
32577
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32573
32578
  "rounded-full bg-black bg-opacity-60 px-3 py-2 text-xs text-white",
32579
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32574
32580
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32575
32581
  ),
32576
32582
  "aria-label": t("aria.mockScanDev"),
@@ -35306,10 +35312,10 @@ var init_ModuleCard = __esm({
35306
35312
  init_avl_atom_types();
35307
35313
  init_MiniStateMachine();
35308
35314
  PERSISTENCE_BORDER = {
35309
- persistent: "border-l-[3px] border-l-blue-500 border-solid",
35310
- runtime: "border-l-[3px] border-l-blue-500 border-dashed",
35311
- singleton: "border-l-[3px] border-l-blue-500 border-double",
35312
- instance: "border-l-[3px] border-l-blue-500 border-dotted"
35315
+ persistent: "border-l-[3px] border-l-primary border-solid",
35316
+ runtime: "border-l-[3px] border-l-primary border-dashed",
35317
+ singleton: "border-l-[3px] border-l-primary border-double",
35318
+ instance: "border-l-[3px] border-l-primary border-dotted"
35313
35319
  };
35314
35320
  PERSISTENCE_ICON = {
35315
35321
  persistent: "\u26C1",
@@ -35339,8 +35345,8 @@ var init_ModuleCard = __esm({
35339
35345
  className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
35340
35346
  style: { minWidth: 280, maxWidth: 400 },
35341
35347
  children: [
35342
- /* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-orange-400" }),
35343
- /* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "source", position: react.Position.Right, className: "!w-2.5 !h-2.5 !bg-orange-400" }),
35348
+ /* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-warning" }),
35349
+ /* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "source", position: react.Position.Right, className: "!w-2.5 !h-2.5 !bg-warning" }),
35344
35350
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2 border-b border-[var(--color-border)]", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-bold text-[var(--color-foreground)]", children: orbitalName }) }),
35345
35351
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
35346
35352
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
@@ -37796,19 +37802,19 @@ var init_ReflectionBlock = __esm({
37796
37802
  "div",
37797
37803
  {
37798
37804
  className: cn(
37799
- "my-6 border-l-4 border-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded-r-lg p-4",
37805
+ "my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
37800
37806
  className
37801
37807
  ),
37802
37808
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
37803
- /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-amber-600 dark:text-amber-400 flex-shrink-0 mt-1", size: 20 }),
37809
+ /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
37804
37810
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
37805
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-amber-900 dark:text-amber-100 mb-2", children: "Pause & Reflect" }),
37806
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-700 dark:text-gray-300 text-sm mb-3", children: prompt }),
37811
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-warning mb-2", children: "Pause & Reflect" }),
37812
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground text-sm mb-3", children: prompt }),
37807
37813
  isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
37808
37814
  /* @__PURE__ */ jsxRuntime.jsx(
37809
37815
  "textarea",
37810
37816
  {
37811
- className: "w-full p-2 border border-amber-300 dark:border-amber-700 rounded text-sm bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-amber-500 focus:border-transparent",
37817
+ className: "w-full p-2 border border-input rounded text-sm bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent",
37812
37818
  placeholder: "Your thoughts...",
37813
37819
  value: note,
37814
37820
  onChange: (e) => setNote(e.target.value),
@@ -37819,7 +37825,7 @@ var init_ReflectionBlock = __esm({
37819
37825
  "button",
37820
37826
  {
37821
37827
  onClick: handleSave,
37822
- className: "mt-2 text-sm px-3 py-1 bg-amber-600 text-white rounded hover:bg-amber-700 transition-colors",
37828
+ className: "mt-2 text-sm px-3 py-1 bg-warning text-warning-foreground rounded hover:opacity-90 transition-colors",
37823
37829
  children: "Save & Continue"
37824
37830
  }
37825
37831
  )
@@ -37827,7 +37833,7 @@ var init_ReflectionBlock = __esm({
37827
37833
  "button",
37828
37834
  {
37829
37835
  onClick: () => setIsExpanded(true),
37830
- className: "text-sm text-amber-600 dark:text-amber-400 hover:underline",
37836
+ className: "text-sm text-warning hover:underline",
37831
37837
  children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
37832
37838
  }
37833
37839
  )
@@ -38331,7 +38337,7 @@ function DataTable({
38331
38337
  )),
38332
38338
  rowActions && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "w-12 px-4 py-3" })
38333
38339
  ] }) }),
38334
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-gray-200 dark:divide-gray-700", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
38340
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-border", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
38335
38341
  "td",
38336
38342
  {
38337
38343
  colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
@@ -38702,7 +38708,7 @@ var init_DetailPanel = __esm({
38702
38708
  };
38703
38709
  const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
38704
38710
  const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
38705
- React74.useCallback(
38711
+ const handleActionClick = React74.useCallback(
38706
38712
  (action, data2) => {
38707
38713
  if (action.navigatesTo) {
38708
38714
  const url = action.navigatesTo.replace(
@@ -38894,8 +38900,9 @@ var init_DetailPanel = __esm({
38894
38900
  {
38895
38901
  variant: action.variant || "secondary",
38896
38902
  size: "sm",
38897
- action: action.event,
38903
+ action: action.navigatesTo ? void 0 : action.event,
38898
38904
  actionPayload: { row: normalizedData },
38905
+ onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
38899
38906
  icon: action.icon,
38900
38907
  "data-testid": action.event ? `action-${action.event}` : void 0,
38901
38908
  "data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
@@ -40938,8 +40945,9 @@ var init_MediaGallery = __esm({
40938
40945
  )
40939
40946
  }
40940
40947
  ),
40941
- item.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
40942
- selectable && isSelected && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-white text-xs", children: "\u2713" }) })
40948
+ item.caption && // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: caption scrim over image
40949
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
40950
+ selectable && isSelected && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-primary-foreground text-xs", children: "\u2713" }) })
40943
40951
  ]
40944
40952
  },
40945
40953
  item.id
@@ -40968,7 +40976,7 @@ var init_MediaGallery = __esm({
40968
40976
  size: "sm",
40969
40977
  icon: LucideIcons2.X,
40970
40978
  action: "LIGHTBOX_CLOSE",
40971
- className: "text-white hover:bg-white/20"
40979
+ className: "text-foreground hover:bg-muted/50"
40972
40980
  }
40973
40981
  ) }),
40974
40982
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -40979,7 +40987,7 @@ var init_MediaGallery = __esm({
40979
40987
  className: "max-w-full max-h-[80vh] object-contain rounded-md"
40980
40988
  }
40981
40989
  ),
40982
- lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-white mt-3 text-center", children: lightboxItem.caption })
40990
+ lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground mt-3 text-center", children: lightboxItem.caption })
40983
40991
  ]
40984
40992
  }
40985
40993
  )
@@ -41421,7 +41429,7 @@ function WalkMinimap() {
41421
41429
  {
41422
41430
  variant,
41423
41431
  size: "sm",
41424
- className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-cyan-400" : ""}`,
41432
+ className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
41425
41433
  children: [
41426
41434
  isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
41427
41435
  " ",
@@ -41562,13 +41570,13 @@ function WalkMinimap() {
41562
41570
  })
41563
41571
  ] }) }),
41564
41572
  /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "px-2 py-1 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", className: "items-center justify-between", children: [
41565
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-green-500", children: [
41573
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-success", children: [
41566
41574
  "Engine: ",
41567
41575
  engineCount,
41568
41576
  "/",
41569
41577
  totalTransitions
41570
41578
  ] }),
41571
- domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-cyan-500", children: [
41579
+ domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-info", children: [
41572
41580
  "DOM: ",
41573
41581
  domCount
41574
41582
  ] }),
@@ -41601,13 +41609,13 @@ function TraitsTab({ traits: traits2 }) {
41601
41609
  const accordionItems = traits2.map((trait) => ({
41602
41610
  id: trait.id,
41603
41611
  header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
41604
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-purple-600 dark:text-purple-400", children: trait.name }),
41612
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-primary", children: trait.name }),
41605
41613
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "success", size: "sm", children: trait.currentState }),
41606
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500 ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
41614
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
41607
41615
  ] }),
41608
41616
  content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
41609
41617
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41610
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.states") }),
41618
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.states") }),
41611
41619
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsxRuntime.jsx(
41612
41620
  exports.Badge,
41613
41621
  {
@@ -41619,18 +41627,18 @@ function TraitsTab({ traits: traits2 }) {
41619
41627
  )) })
41620
41628
  ] }),
41621
41629
  trait.transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41622
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.transitions") }),
41630
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.transitions") }),
41623
41631
  /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: trait.transitions.map((t2, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono", children: [
41624
41632
  t2.from,
41625
41633
  " \u2192 ",
41626
41634
  t2.to,
41627
41635
  " ",
41628
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500", children: [
41636
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
41629
41637
  "(",
41630
41638
  t2.event,
41631
41639
  ")"
41632
41640
  ] }),
41633
- t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-amber-500", children: [
41641
+ t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-warning", children: [
41634
41642
  " [",
41635
41643
  t2.guard,
41636
41644
  "]"
@@ -41638,7 +41646,7 @@ function TraitsTab({ traits: traits2 }) {
41638
41646
  ] }, i)) })
41639
41647
  ] }),
41640
41648
  trait.guards.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41641
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.guards") }),
41649
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.guards") }),
41642
41650
  /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: trait.guards.map((g, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
41643
41651
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: g.name }),
41644
41652
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: g.lastResult === true ? "success" : g.lastResult === false ? "danger" : "default", size: "sm", children: g.lastResult === void 0 ? "?" : g.lastResult ? "\u2713" : "\u2717" })
@@ -41681,11 +41689,11 @@ function TicksTab({ ticks: ticks2 }) {
41681
41689
  };
41682
41690
  const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
41683
41691
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
41684
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-green-500" : "bg-gray-400"}` }),
41685
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-amber-600 dark:text-amber-400", children: tick.name }),
41686
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500", children: tick.traitName })
41692
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-success" : "bg-muted-foreground"}` }),
41693
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: tick.name }),
41694
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: tick.traitName })
41687
41695
  ] }),
41688
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-gray-500", children: [
41696
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-muted-foreground", children: [
41689
41697
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
41690
41698
  tick.interval,
41691
41699
  "ms"
@@ -41708,7 +41716,7 @@ function TicksTab({ ticks: ticks2 }) {
41708
41716
  ] });
41709
41717
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
41710
41718
  activeTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
41711
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: [
41719
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
41712
41720
  "Active (",
41713
41721
  activeTicks.length,
41714
41722
  ")"
@@ -41716,7 +41724,7 @@ function TicksTab({ ticks: ticks2 }) {
41716
41724
  /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsxRuntime.jsx(TickCard, { tick, active: true }, tick.id)) })
41717
41725
  ] }),
41718
41726
  inactiveTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41719
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-400 mb-2", children: [
41727
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
41720
41728
  "Inactive (",
41721
41729
  inactiveTicks.length,
41722
41730
  ")"
@@ -41764,33 +41772,33 @@ function EntitiesTab({ snapshot }) {
41764
41772
  id: `singleton-${name}`,
41765
41773
  header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
41766
41774
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
41767
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-sky-600 dark:text-sky-400", children: name })
41775
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: name })
41768
41776
  ] }),
41769
- content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
41777
+ content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
41770
41778
  }));
41771
41779
  const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
41772
41780
  id: entity.id,
41773
41781
  header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
41774
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-sky-600 dark:text-sky-400", children: entity.type }),
41775
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-gray-500", children: [
41782
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: entity.type }),
41783
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground", children: [
41776
41784
  "#",
41777
41785
  entity.id.slice(0, 8)
41778
41786
  ] })
41779
41787
  ] }),
41780
- content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 p-2 rounded overflow-auto max-h-40", children: JSON.stringify(entity.data, null, 2) })
41788
+ content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(entity.data, null, 2) })
41781
41789
  }));
41782
41790
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--entities", children: [
41783
41791
  singletonItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
41784
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
41792
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
41785
41793
  /* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: singletonItems, multiple: true })
41786
41794
  ] }),
41787
41795
  runtimeItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
41788
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
41796
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
41789
41797
  /* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: runtimeItems, multiple: true }),
41790
- runtimeEntities.length > 20 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
41798
+ runtimeEntities.length > 20 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
41791
41799
  ] }),
41792
41800
  persistentEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41793
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.persistent") }),
41801
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.persistent") }),
41794
41802
  /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: persistentEntries.map(([type, info]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1", children: [
41795
41803
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: type }),
41796
41804
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ? t("debug.loadedCount", { count: info.count }) : t("debug.notLoaded") })
@@ -41875,7 +41883,7 @@ function EventFlowTab({ events: events2 }) {
41875
41883
  );
41876
41884
  })
41877
41885
  ] }),
41878
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-500 ml-auto cursor-pointer", children: [
41886
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground ml-auto cursor-pointer", children: [
41879
41887
  /* @__PURE__ */ jsxRuntime.jsx(
41880
41888
  exports.Checkbox,
41881
41889
  {
@@ -41890,18 +41898,18 @@ function EventFlowTab({ events: events2 }) {
41890
41898
  "div",
41891
41899
  {
41892
41900
  ref: containerRef,
41893
- className: "max-h-64 overflow-y-auto space-y-1 bg-gray-50 dark:bg-gray-800 rounded p-2",
41901
+ className: "max-h-64 overflow-y-auto space-y-1 bg-muted rounded p-2",
41894
41902
  children: filteredEvents.slice(-100).map((event) => {
41895
41903
  const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
41896
41904
  return /* @__PURE__ */ jsxRuntime.jsxs(
41897
41905
  "div",
41898
41906
  {
41899
- className: "flex items-start gap-2 text-xs py-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded px-1",
41907
+ className: "flex items-start gap-2 text-xs py-1 hover:bg-muted/50 rounded px-1",
41900
41908
  children: [
41901
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
41909
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
41902
41910
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: icon }),
41903
41911
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "min-w-[60px] justify-center", children: event.source }),
41904
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-600 dark:text-gray-400", children: event.message })
41912
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
41905
41913
  ]
41906
41914
  },
41907
41915
  event.id
@@ -41965,21 +41973,21 @@ function GuardsPanel({ guards }) {
41965
41973
  id: guard.id,
41966
41974
  header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
41967
41975
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: guard.result ? "success" : "danger", size: "sm", children: guard.result ? "\u2713" : "\u2717" }),
41968
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-amber-600 dark:text-amber-400", children: guard.guardName }),
41969
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
41970
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 ml-auto", children: formatTime2(guard.timestamp) })
41976
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: guard.guardName }),
41977
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
41978
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: formatTime2(guard.timestamp) })
41971
41979
  ] }),
41972
41980
  content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
41973
41981
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41974
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.expression") }),
41975
- /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block mt-1 text-xs text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-2 py-1 rounded", children: guard.expression })
41982
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.expression") }),
41983
+ /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block mt-1 text-xs text-warning bg-warning/10 px-2 py-1 rounded", children: guard.expression })
41976
41984
  ] }),
41977
41985
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41978
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.inputs") }),
41979
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 p-2 rounded overflow-auto max-h-24", children: JSON.stringify(guard.inputs, null, 2) })
41986
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.inputs") }),
41987
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-24", children: JSON.stringify(guard.inputs, null, 2) })
41980
41988
  ] }),
41981
41989
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
41982
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.trait") }),
41990
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.trait") }),
41983
41991
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: guard.context.traitName })
41984
41992
  ] })
41985
41993
  ] })
@@ -42035,7 +42043,7 @@ function VerificationTab({ checks, summary }) {
42035
42043
  (a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
42036
42044
  );
42037
42045
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--verification", children: [
42038
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-gray-50 dark:bg-gray-800 rounded", children: [
42046
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-muted rounded", children: [
42039
42047
  /* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
42040
42048
  summary.passed,
42041
42049
  " passed"
@@ -42052,7 +42060,7 @@ function VerificationTab({ checks, summary }) {
42052
42060
  summary.pending,
42053
42061
  " pending"
42054
42062
  ] }),
42055
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-gray-500 ml-auto", children: [
42063
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
42056
42064
  summary.totalChecks,
42057
42065
  " total checks"
42058
42066
  ] })
@@ -42062,12 +42070,12 @@ function VerificationTab({ checks, summary }) {
42062
42070
  return /* @__PURE__ */ jsxRuntime.jsxs(
42063
42071
  "div",
42064
42072
  {
42065
- className: "flex items-start gap-2 p-2 rounded hover:bg-gray-50 dark:hover:bg-gray-800",
42073
+ className: "flex items-start gap-2 p-2 rounded hover:bg-muted/50",
42066
42074
  children: [
42067
42075
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
42068
42076
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
42069
42077
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "break-words", children: check.label }),
42070
- check.details && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500 break-words", children: check.details })
42078
+ check.details && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground break-words", children: check.details })
42071
42079
  ] }),
42072
42080
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs shrink-0", children: new Date(check.updatedAt).toLocaleTimeString("en-US", {
42073
42081
  hour12: false,
@@ -42102,10 +42110,10 @@ var init_VerificationTab = __esm({
42102
42110
  function EffectBadge({ effect }) {
42103
42111
  const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
42104
42112
  const icon = effect.status === "executed" ? "\u2713" : effect.status === "failed" ? "\u2717" : "-";
42105
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-gray-100 dark:bg-gray-700 rounded px-1.5 py-0.5", children: [
42113
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-muted rounded px-1.5 py-0.5", children: [
42106
42114
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "!text-[9px] !px-1 !py-0", children: icon }),
42107
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600 dark:text-gray-400", children: effect.type }),
42108
- effect.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 truncate max-w-[120px]", title: effect.error, children: effect.error })
42115
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: effect.type }),
42116
+ effect.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-error truncate max-w-[120px]", title: effect.error, children: effect.error })
42109
42117
  ] });
42110
42118
  }
42111
42119
  function TransitionTimeline({ transitions }) {
@@ -42140,8 +42148,8 @@ function TransitionTimeline({ transitions }) {
42140
42148
  const sorted = [...transitions].reverse();
42141
42149
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
42142
42150
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2", children: [
42143
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
42144
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-500 cursor-pointer", children: [
42151
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
42152
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground cursor-pointer", children: [
42145
42153
  /* @__PURE__ */ jsxRuntime.jsx(
42146
42154
  exports.Checkbox,
42147
42155
  {
@@ -42166,22 +42174,22 @@ function TransitionTimeline({ transitions }) {
42166
42174
  {
42167
42175
  className: `
42168
42176
  relative pl-6 pb-3 border-l-2 cursor-pointer
42169
- hover:bg-gray-50 dark:hover:bg-gray-800 rounded-r
42170
- ${hasFailedEffects ? "border-red-300 dark:border-red-700" : "border-gray-200 dark:border-gray-700"}
42177
+ hover:bg-muted/50 rounded-r
42178
+ ${hasFailedEffects ? "border-error" : "border-border"}
42171
42179
  `,
42172
42180
  onClick: () => setExpandedId(isExpanded ? null : trace.id),
42173
42181
  children: [
42174
42182
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `
42175
42183
  absolute left-[-5px] top-1 w-2 h-2 rounded-full
42176
- ${hasFailedEffects ? "bg-red-500" : allPassed ? "bg-green-500" : "bg-gray-400"}
42184
+ ${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
42177
42185
  ` }),
42178
42186
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs py-1 px-2", children: [
42179
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
42187
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
42180
42188
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", className: "min-w-[60px] justify-center", children: trace.traitName }),
42181
- /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-gray-600 dark:text-gray-400", children: [
42189
+ /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-muted-foreground", children: [
42182
42190
  trace.from,
42183
42191
  " ",
42184
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: "\u2192" }),
42192
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
42185
42193
  " ",
42186
42194
  trace.to
42187
42195
  ] }),
@@ -42198,9 +42206,9 @@ function TransitionTimeline({ transitions }) {
42198
42206
  ]
42199
42207
  }
42200
42208
  ),
42201
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
42209
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
42202
42210
  ] }),
42203
- isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-gray-200 dark:border-gray-700 space-y-1", children: trace.effects.map((effect, eIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
42211
+ isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-border space-y-1", children: trace.effects.map((effect, eIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
42204
42212
  /* @__PURE__ */ jsxRuntime.jsx(EffectBadge, { effect }),
42205
42213
  effect.args.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs truncate max-w-[200px]", children: JSON.stringify(effect.args) }),
42206
42214
  effect.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
@@ -42234,8 +42242,8 @@ var init_TransitionTimeline = __esm({
42234
42242
  }
42235
42243
  });
42236
42244
  function StatRow({ label, value, variant }) {
42237
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-gray-100 dark:border-gray-800 last:border-b-0", children: [
42238
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500", children: label }),
42245
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-border last:border-b-0", children: [
42246
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: label }),
42239
42247
  variant ? /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", children: String(value) }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "font-mono", children: String(value) })
42240
42248
  ] });
42241
42249
  }
@@ -42264,7 +42272,7 @@ function ServerBridgeTab({ bridge }) {
42264
42272
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
42265
42273
  /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3", children: [
42266
42274
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
42267
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-green-500 animate-pulse" : "bg-red-500"}` }),
42275
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-success animate-pulse" : "bg-error"}` }),
42268
42276
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
42269
42277
  ] }),
42270
42278
  /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "xs", children: [
@@ -42299,11 +42307,11 @@ function ServerBridgeTab({ bridge }) {
42299
42307
  )
42300
42308
  ] })
42301
42309
  ] }),
42302
- bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950", children: [
42303
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-red-600 dark:text-red-400 mb-1", children: t("debug.lastError") }),
42304
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-red-500 font-mono break-all", children: bridge.lastError })
42310
+ bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-error/30 bg-error/10", children: [
42311
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-error mb-1", children: t("debug.lastError") }),
42312
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error font-mono break-all", children: bridge.lastError })
42305
42313
  ] }),
42306
- bridge.connected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
42314
+ bridge.connected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
42307
42315
  ] }) });
42308
42316
  }
42309
42317
  var init_ServerBridgeTab = __esm({
@@ -42429,7 +42437,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42429
42437
  };
42430
42438
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
42431
42439
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
42432
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.activeStates") }),
42440
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.activeStates") }),
42433
42441
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: traits2.map((trait) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
42434
42442
  trait.name,
42435
42443
  ": ",
@@ -42437,8 +42445,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42437
42445
  ] }, trait.id)) })
42438
42446
  ] }),
42439
42447
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
42440
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.availableEvents") }),
42441
- availableEvents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-400 italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
42448
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.availableEvents") }),
42449
+ availableEvents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
42442
42450
  /* @__PURE__ */ jsxRuntime.jsx(
42443
42451
  exports.Button,
42444
42452
  {
@@ -42449,22 +42457,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42449
42457
  children: event
42450
42458
  }
42451
42459
  ),
42452
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-gray-500", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
42460
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
42453
42461
  transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
42454
42462
  ] }, event)) })
42455
42463
  ] }),
42456
42464
  unavailableEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
42457
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.otherEvents") }),
42465
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.otherEvents") }),
42458
42466
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
42459
42467
  ] }),
42460
42468
  log19.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
42461
- /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.recentTransitions") }),
42469
+ /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.recentTransitions") }),
42462
42470
  /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-xs", children: [
42463
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-400", children: entry.traitName }),
42471
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: entry.traitName }),
42464
42472
  " ",
42465
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: entry.from }),
42473
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: entry.from }),
42466
42474
  " -> ",
42467
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-400", children: entry.to })
42475
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: entry.to })
42468
42476
  ] }, i)) })
42469
42477
  ] })
42470
42478
  ] });
@@ -42490,21 +42498,21 @@ var init_RuntimeDebugger = __esm({
42490
42498
  function ServerResponseRow({ sr }) {
42491
42499
  const { t } = hooks.useTranslate();
42492
42500
  const entityEntries = Object.entries(sr.dataEntities);
42493
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
42501
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-primary py-0.5 text-xs font-mono", children: [
42494
42502
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
42495
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400", children: [
42503
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
42496
42504
  sr.success ? "\u2713" : "\u2717",
42497
42505
  " ",
42498
42506
  t("debug.server")
42499
42507
  ] }),
42500
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-600 dark:text-purple-300", children: sr.orbitalName }),
42501
- sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-purple-500/15 text-purple-600 dark:text-purple-300", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
42502
- sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-blue-500/15 text-blue-300", children: [
42508
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: sr.orbitalName }),
42509
+ sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-primary/10 text-primary", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
42510
+ sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-primary/10 text-primary", children: [
42503
42511
  t("debug.emitLabel"),
42504
42512
  " ",
42505
42513
  sr.emittedEvents.join(", ")
42506
42514
  ] }),
42507
- sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-red-500/15 text-red-600 dark:text-red-400 truncate max-w-[300px]", children: sr.error })
42515
+ sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-error/10 text-error truncate max-w-[300px]", children: sr.error })
42508
42516
  ] }),
42509
42517
  entityEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1 mt-0.5", children: entityEntries.map(([name, count]) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-[var(--color-card)] text-foreground", children: [
42510
42518
  name,
@@ -42520,9 +42528,9 @@ function TransitionRow({ trace }) {
42520
42528
  if (isServerEntry && trace.serverResponse) {
42521
42529
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
42522
42530
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
42523
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-purple-500" }),
42531
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-primary" }),
42524
42532
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
42525
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-600 dark:text-purple-400 flex-shrink-0", children: t("debug.serverResponse") })
42533
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
42526
42534
  ] }),
42527
42535
  /* @__PURE__ */ jsxRuntime.jsx(ServerResponseRow, { sr: trace.serverResponse })
42528
42536
  ] });
@@ -42531,7 +42539,7 @@ function TransitionRow({ trace }) {
42531
42539
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
42532
42540
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
42533
42541
  "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
42534
- hasFailedEffects ? "bg-red-500" : "bg-green-500"
42542
+ hasFailedEffects ? "bg-error" : "bg-success"
42535
42543
  ) }),
42536
42544
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
42537
42545
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
@@ -42545,7 +42553,7 @@ function TransitionRow({ trace }) {
42545
42553
  ] }),
42546
42554
  trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1 ml-6 mt-0.5", children: trace.effects.map((eff, i) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn(
42547
42555
  "px-1 rounded text-xs",
42548
- eff.status === "executed" ? "bg-green-500/15 text-green-600 dark:text-green-400" : eff.status === "failed" ? "bg-red-500/15 text-red-600 dark:text-red-400" : "bg-yellow-500/15 text-yellow-600 dark:text-yellow-400"
42556
+ eff.status === "executed" ? "bg-success/10 text-success" : eff.status === "failed" ? "bg-error/10 text-error" : "bg-warning/10 text-warning"
42549
42557
  ), children: [
42550
42558
  eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
42551
42559
  " ",
@@ -42579,7 +42587,7 @@ function VerifyModePanel({
42579
42587
  {
42580
42588
  className: cn(
42581
42589
  "runtime-debugger runtime-debugger--verify",
42582
- "flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-cyan-500",
42590
+ "flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-accent",
42583
42591
  hudBottom ? "" : "fixed bottom-0 left-0 right-0",
42584
42592
  className
42585
42593
  ),
@@ -42600,8 +42608,8 @@ function VerifyModePanel({
42600
42608
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
42601
42609
  /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
42602
42610
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
42603
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-600 dark:text-purple-400", children: t("debug.serverCount", { count: serverCount }) }),
42604
- traitStates && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-cyan-600 dark:text-cyan-400 truncate max-w-[400px]", children: traitStates }),
42611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: t("debug.serverCount", { count: serverCount }) }),
42612
+ traitStates && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-accent truncate max-w-[400px]", children: traitStates }),
42605
42613
  !expanded && transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
42606
42614
  ]
42607
42615
  }
@@ -42796,7 +42804,7 @@ function RuntimeDebugger({
42796
42804
  title: t("debug.openDebugger"),
42797
42805
  children: failedChecks > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
42798
42806
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" }),
42799
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-red-500 rounded-full" })
42807
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-error rounded-full" })
42800
42808
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" })
42801
42809
  }
42802
42810
  ) : /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "runtime-debugger__panel", children: [
@@ -42884,7 +42892,7 @@ var init_SegmentRenderer = __esm({
42884
42892
  "div",
42885
42893
  {
42886
42894
  className: cn(
42887
- "border border-gray-200 dark:border-gray-700 rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
42895
+ "border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
42888
42896
  containerClassName,
42889
42897
  className
42890
42898
  ),