@almadar/ui 5.123.0 → 5.125.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 (63) 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 +332 -275
  6. package/dist/avl/index.js +334 -277
  7. package/dist/components/index.cjs +284 -248
  8. package/dist/components/index.d.cts +4 -3
  9. package/dist/components/index.d.ts +4 -3
  10. package/dist/components/index.js +284 -248
  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/{offline-executor-aRuNznZx.d.cts → offline-executor-Qz4b6GpF.d.cts} +19 -1
  16. package/dist/{offline-executor-aRuNznZx.d.ts → offline-executor-Qz4b6GpF.d.ts} +19 -1
  17. package/dist/providers/index.cjs +395 -275
  18. package/dist/providers/index.d.cts +6 -6
  19. package/dist/providers/index.d.ts +6 -6
  20. package/dist/providers/index.js +394 -276
  21. package/dist/renderer/index.cjs +8 -0
  22. package/dist/renderer/index.d.cts +2 -2
  23. package/dist/renderer/index.d.ts +2 -2
  24. package/dist/renderer/index.js +1 -1
  25. package/dist/runtime/index.cjs +325 -268
  26. package/dist/runtime/index.d.cts +4 -2
  27. package/dist/runtime/index.d.ts +4 -2
  28. package/dist/runtime/index.js +327 -270
  29. package/package.json +13 -11
  30. package/themes/_contract.md +2 -0
  31. package/themes/almadar-website.css +3 -3
  32. package/themes/almadar.css +4 -4
  33. package/themes/bloomberg-dense.css +2 -2
  34. package/themes/clay.css +417 -0
  35. package/themes/corporate.css +411 -0
  36. package/themes/game-adventure.css +3 -3
  37. package/themes/game-rpg.css +2 -2
  38. package/themes/game-sci-fi.css +1 -1
  39. package/themes/game-ui-pack.css +2 -2
  40. package/themes/gazette.css +2 -2
  41. package/themes/glass.css +428 -0
  42. package/themes/index.css +9 -13
  43. package/themes/kiosk.css +5 -5
  44. package/themes/linear-clean.css +1 -1
  45. package/themes/minimalist.css +2 -2
  46. package/themes/neon.css +3 -3
  47. package/themes/notion-editorial.css +1 -1
  48. package/themes/prism.css +3 -3
  49. package/themes/retro.css +410 -0
  50. package/themes/terminal.css +1 -1
  51. package/themes/trait-wars.css +8 -8
  52. package/themes/wireframe.css +2 -2
  53. package/themes/arctic.css +0 -235
  54. package/themes/copper.css +0 -235
  55. package/themes/ember.css +0 -238
  56. package/themes/forest.css +0 -238
  57. package/themes/lavender.css +0 -233
  58. package/themes/midnight.css +0 -234
  59. package/themes/ocean.css +0 -238
  60. package/themes/rose.css +0 -233
  61. package/themes/sand.css +0 -234
  62. package/themes/slate.css +0 -233
  63. package/themes/sunset.css +0 -238
@@ -3851,15 +3851,15 @@ var init_TextHighlight = __esm({
3851
3851
  const typeStyles = {
3852
3852
  question: cn(
3853
3853
  // Blue border for questions
3854
- "bg-card border-b-2 border-primary-600",
3854
+ "bg-card border-b-2 border-primary",
3855
3855
  "hover:bg-muted",
3856
- isActive && "bg-primary-100 ring-2 ring-primary-600"
3856
+ isActive && "bg-primary/10 ring-2 ring-primary"
3857
3857
  ),
3858
3858
  note: cn(
3859
3859
  // Yellow border for notes
3860
- "bg-card border-b-2 border-amber-500",
3860
+ "bg-card border-b-2 border-warning",
3861
3861
  "hover:bg-muted",
3862
- isActive && "bg-amber-100 ring-2 ring-amber-500"
3862
+ isActive && "bg-warning/10 ring-2 ring-warning"
3863
3863
  )
3864
3864
  };
3865
3865
  return /* @__PURE__ */ jsx(
@@ -4467,7 +4467,7 @@ function DayCell({
4467
4467
  {
4468
4468
  className: cn(
4469
4469
  "p-2 text-center cursor-pointer hover:bg-muted transition-colors",
4470
- isToday && "bg-blue-500/10",
4470
+ isToday && "bg-primary/10",
4471
4471
  className
4472
4472
  ),
4473
4473
  onClick: handleClick,
@@ -4478,7 +4478,7 @@ function DayCell({
4478
4478
  variant: "small",
4479
4479
  className: cn(
4480
4480
  "font-medium",
4481
- isToday ? "text-blue-600" : "text-muted-foreground"
4481
+ isToday ? "text-primary" : "text-muted-foreground"
4482
4482
  ),
4483
4483
  children: dayAbbr
4484
4484
  }
@@ -4490,7 +4490,7 @@ function DayCell({
4490
4490
  rounded: "full",
4491
4491
  className: cn(
4492
4492
  "h-8 w-8 mx-auto items-center justify-center",
4493
- isToday && "bg-blue-600 text-white"
4493
+ isToday && "bg-primary text-primary-foreground"
4494
4494
  ),
4495
4495
  children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "font-semibold", children: safeDate.getDate() })
4496
4496
  }
@@ -7805,19 +7805,19 @@ var init_ActivationBlock = __esm({
7805
7805
  "div",
7806
7806
  {
7807
7807
  className: cn(
7808
- "bg-indigo-50 dark:bg-indigo-900/20 border-2 border-indigo-200 dark:border-indigo-800 rounded-lg p-5 mb-6",
7808
+ "bg-primary/10 border-2 border-primary rounded-lg p-5 mb-6",
7809
7809
  className
7810
7810
  ),
7811
7811
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
7812
- /* @__PURE__ */ jsx(Lightbulb, { className: "text-indigo-600 dark:text-indigo-400 flex-shrink-0 mt-1", size: 24 }),
7812
+ /* @__PURE__ */ jsx(Lightbulb, { className: "text-primary flex-shrink-0 mt-1", size: 24 }),
7813
7813
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
7814
- /* @__PURE__ */ jsx("h4", { className: "font-semibold text-indigo-900 dark:text-indigo-100 mb-2", children: "Before You Begin..." }),
7815
- /* @__PURE__ */ jsx("p", { className: "text-gray-700 dark:text-gray-300 mb-3 text-sm md:text-base", children: question }),
7814
+ /* @__PURE__ */ jsx("h4", { className: "font-semibold text-primary mb-2", children: "Before You Begin..." }),
7815
+ /* @__PURE__ */ jsx("p", { className: "text-foreground mb-3 text-sm md:text-base", children: question }),
7816
7816
  isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
7817
7817
  /* @__PURE__ */ jsx(
7818
7818
  "textarea",
7819
7819
  {
7820
- 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",
7820
+ 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",
7821
7821
  placeholder: "Jot down your thoughts...",
7822
7822
  value: response,
7823
7823
  onChange: (e) => setResponse(e.target.value),
@@ -7829,7 +7829,7 @@ var init_ActivationBlock = __esm({
7829
7829
  "button",
7830
7830
  {
7831
7831
  onClick: handleSubmit,
7832
- className: "px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 text-sm font-medium transition-colors",
7832
+ className: "px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary-hover text-sm font-medium transition-colors",
7833
7833
  children: "Continue to Lesson \u2192"
7834
7834
  }
7835
7835
  ),
@@ -7840,7 +7840,7 @@ var init_ActivationBlock = __esm({
7840
7840
  emit(`UI:${saveEvent}`, { response: "" });
7841
7841
  setIsExpanded(false);
7842
7842
  },
7843
- className: "px-4 py-2 text-indigo-600 dark:text-indigo-400 hover:underline text-sm",
7843
+ className: "px-4 py-2 text-primary hover:underline text-sm",
7844
7844
  children: "Skip for now"
7845
7845
  }
7846
7846
  )
@@ -7849,7 +7849,7 @@ var init_ActivationBlock = __esm({
7849
7849
  "button",
7850
7850
  {
7851
7851
  onClick: () => setIsExpanded(true),
7852
- className: "text-sm text-indigo-600 dark:text-indigo-400 hover:underline font-medium",
7852
+ className: "text-sm text-primary hover:underline font-medium",
7853
7853
  children: "\u2713 Answered \xB7 Edit response"
7854
7854
  }
7855
7855
  )
@@ -8662,7 +8662,7 @@ var init_AuthLayout = __esm({
8662
8662
  VStack,
8663
8663
  {
8664
8664
  className: cn(
8665
- "hidden lg:flex lg:w-1/2 bg-primary-600 relative overflow-hidden",
8665
+ "hidden lg:flex lg:w-1/2 bg-primary relative overflow-hidden",
8666
8666
  "justify-between p-12"
8667
8667
  ),
8668
8668
  style: backgroundImage ? {
@@ -8671,7 +8671,7 @@ var init_AuthLayout = __esm({
8671
8671
  } : void 0,
8672
8672
  gap: "none",
8673
8673
  children: [
8674
- /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 bg-gradient-to-br from-primary-600/90 to-primary-800/90" }),
8674
+ /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 bg-gradient-to-br from-primary/90 to-primary-hover/90" }),
8675
8675
  /* @__PURE__ */ jsx(Box, { className: "relative z-10", children: /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-3", children: [
8676
8676
  logo || /* @__PURE__ */ jsx(Box, { className: "w-10 h-10 bg-[var(--color-card)]/20 rounded-xl flex items-center justify-center backdrop-blur", children: /* @__PURE__ */ jsx(
8677
8677
  Typography,
@@ -8756,7 +8756,7 @@ var init_AuthLayout = __esm({
8756
8756
  ),
8757
8757
  children: /* @__PURE__ */ jsxs(Box, { className: "w-full max-w-md", children: [
8758
8758
  /* @__PURE__ */ jsx(Box, { className: "lg:hidden mb-8 text-center", children: /* @__PURE__ */ jsxs(Link, { to: "/", className: "inline-flex items-center gap-3", children: [
8759
- logo || /* @__PURE__ */ jsx(Box, { className: "w-12 h-12 bg-primary-600 rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsx(
8759
+ logo || /* @__PURE__ */ jsx(Box, { className: "w-12 h-12 bg-primary rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsx(
8760
8760
  Typography,
8761
8761
  {
8762
8762
  variant: "body1",
@@ -10750,7 +10750,7 @@ var init_CodeBlock = __esm({
10750
10750
  {
10751
10751
  justify: "between",
10752
10752
  align: "center",
10753
- className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-gray-700",
10753
+ className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-border",
10754
10754
  children: [
10755
10755
  showLanguageBadge && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: language }),
10756
10756
  effectiveCopy && /* @__PURE__ */ jsx(
@@ -10759,9 +10759,9 @@ var init_CodeBlock = __esm({
10759
10759
  variant: "ghost",
10760
10760
  size: "sm",
10761
10761
  onClick: handleCopy,
10762
- className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
10762
+ className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",
10763
10763
  "aria-label": t("common.copy"),
10764
- children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-green-400" }) : /* @__PURE__ */ jsx(Icon, { name: "copy", className: "w-4 h-4" })
10764
+ children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-success" }) : /* @__PURE__ */ jsx(Icon, { name: "copy", className: "w-4 h-4" })
10765
10765
  }
10766
10766
  )
10767
10767
  ]
@@ -11129,12 +11129,12 @@ var init_BloomQuizBlock = __esm({
11129
11129
  init_useEventBus();
11130
11130
  init_cn();
11131
11131
  BLOOM_CONFIG = {
11132
- remember: { color: "bg-gray-500", bgColor: "bg-gray-50 dark:bg-gray-900/30", label: "Remember" },
11133
- understand: { color: "bg-blue-500", bgColor: "bg-blue-50 dark:bg-blue-900/30", label: "Understand" },
11134
- apply: { color: "bg-green-500", bgColor: "bg-green-50 dark:bg-green-900/30", label: "Apply" },
11135
- analyze: { color: "bg-yellow-500", bgColor: "bg-yellow-50 dark:bg-yellow-900/30", label: "Analyze" },
11136
- evaluate: { color: "bg-orange-500", bgColor: "bg-orange-50 dark:bg-orange-900/30", label: "Evaluate" },
11137
- create: { color: "bg-purple-500", bgColor: "bg-purple-50 dark:bg-purple-900/30", label: "Create" }
11132
+ remember: { color: "bg-secondary text-secondary-foreground", bgColor: "bg-muted", label: "Remember" },
11133
+ understand: { color: "bg-info text-info-foreground", bgColor: "bg-info/10", label: "Understand" },
11134
+ apply: { color: "bg-success text-success-foreground", bgColor: "bg-success/10", label: "Apply" },
11135
+ analyze: { color: "bg-warning text-warning-foreground", bgColor: "bg-warning/10", label: "Analyze" },
11136
+ evaluate: { color: "bg-accent text-accent-foreground", bgColor: "bg-accent/10", label: "Evaluate" },
11137
+ create: { color: "bg-primary text-primary-foreground", bgColor: "bg-primary/10", label: "Create" }
11138
11138
  };
11139
11139
  BloomQuizBlock = ({
11140
11140
  level,
@@ -11160,22 +11160,22 @@ var init_BloomQuizBlock = __esm({
11160
11160
  "div",
11161
11161
  {
11162
11162
  className: cn(
11163
- "rounded-lg border border-indigo-100 dark:border-indigo-800 p-4 my-4 transition-all",
11163
+ "rounded-lg border border-primary p-4 my-4 transition-all",
11164
11164
  config.bgColor,
11165
11165
  className
11166
11166
  ),
11167
11167
  children: [
11168
11168
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
11169
11169
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
11170
- index !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-gray-500 dark:text-gray-400 font-medium text-sm", children: [
11170
+ index !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground font-medium text-sm", children: [
11171
11171
  "Question ",
11172
11172
  index + 1
11173
11173
  ] }),
11174
- /* @__PURE__ */ jsx("span", { className: cn(config.color, "text-white text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
11174
+ /* @__PURE__ */ jsx("span", { className: cn(config.color, "text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
11175
11175
  ] }),
11176
- isAnswered && /* @__PURE__ */ jsx(CheckCircle, { className: "text-green-600 dark:text-green-400 flex-shrink-0", size: 20 })
11176
+ isAnswered && /* @__PURE__ */ jsx(CheckCircle, { className: "text-success flex-shrink-0", size: 20 })
11177
11177
  ] }),
11178
- /* @__PURE__ */ jsx("div", { className: "font-semibold text-indigo-900 dark:text-indigo-200 mb-3 space-y-2", children: questionSegments.map(
11178
+ /* @__PURE__ */ jsx("div", { className: "font-semibold text-primary mb-3 space-y-2", children: questionSegments.map(
11179
11179
  (segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsx(
11180
11180
  CodeBlock,
11181
11181
  {
@@ -11189,13 +11189,13 @@ var init_BloomQuizBlock = __esm({
11189
11189
  "button",
11190
11190
  {
11191
11191
  type: "button",
11192
- 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",
11192
+ 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",
11193
11193
  onClick: handleReveal,
11194
11194
  children: revealed ? "Hide Answer" : "Reveal Answer"
11195
11195
  }
11196
11196
  ),
11197
- revealed && /* @__PURE__ */ 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: [
11198
- /* @__PURE__ */ jsx("div", { className: "text-xs text-gray-600 dark:text-gray-400 mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
11197
+ revealed && /* @__PURE__ */ 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: [
11198
+ /* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
11199
11199
  answerSegments.map(
11200
11200
  (segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsx(
11201
11201
  CodeBlock,
@@ -11469,12 +11469,12 @@ var init_QuizBlock = __esm({
11469
11469
  }) => {
11470
11470
  const { t } = useTranslate();
11471
11471
  const [revealed, setRevealed] = useState(false);
11472
- return /* @__PURE__ */ jsx(Card2, { className: cn("my-4 border-blue-200 dark:border-blue-800", className), children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "p-4", children: [
11472
+ return /* @__PURE__ */ jsx(Card2, { className: cn("my-4 border-primary", className), children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "p-4", children: [
11473
11473
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", children: [
11474
- /* @__PURE__ */ jsx(Icon, { icon: HelpCircle, size: "sm", className: "text-blue-500 mt-0.5 shrink-0" }),
11474
+ /* @__PURE__ */ jsx(Icon, { icon: HelpCircle, size: "sm", className: "text-primary mt-0.5 shrink-0" }),
11475
11475
  /* @__PURE__ */ jsx(Typography, { variant: "body", className: "font-medium", children: question })
11476
11476
  ] }),
11477
- revealed ? /* @__PURE__ */ jsx(Box, { className: "pl-7 pt-2 border-t border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
11477
+ revealed ? /* @__PURE__ */ jsx(Box, { className: "pl-7 pt-2 border-t border-border", children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
11478
11478
  /* @__PURE__ */ jsx(
11479
11479
  Button,
11480
11480
  {
@@ -13386,7 +13386,7 @@ var init_BookTableOfContents = __esm({
13386
13386
  className: cn(
13387
13387
  "justify-start text-left w-full",
13388
13388
  direction === "rtl" && "text-right",
13389
- isCurrent && "bg-blue-50 dark:bg-blue-950 text-blue-600 dark:text-blue-400"
13389
+ isCurrent && "bg-primary/10 text-primary"
13390
13390
  ),
13391
13391
  children: /* @__PURE__ */ jsx(Box, { className: "truncate", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: String(chapter.title ?? "") }) })
13392
13392
  },
@@ -14634,7 +14634,7 @@ function CalendarGrid({
14634
14634
  border: true,
14635
14635
  className: cn(
14636
14636
  "cursor-pointer hover:shadow-sm transition-shadow text-xs truncate",
14637
- color ? color : "bg-blue-500/15 border-blue-500/30 text-blue-600"
14637
+ color ? color : "bg-primary/10 border-primary/30 text-primary"
14638
14638
  ),
14639
14639
  onClick: (e) => handleEventClick(event, e),
14640
14640
  children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
@@ -14732,7 +14732,7 @@ function CalendarGrid({
14732
14732
  onClick: () => handleSlotClick(day, time),
14733
14733
  className: cn(
14734
14734
  "border-l border-border",
14735
- isToday && "bg-blue-50/30"
14735
+ isToday && "bg-primary/10"
14736
14736
  ),
14737
14737
  ...longPressEvent ? {
14738
14738
  onPointerDown: () => startLongPress(day, time),
@@ -18408,31 +18408,31 @@ var init_CodeRunnerPanel = __esm({
18408
18408
  }
18409
18409
  )
18410
18410
  ] }),
18411
- hasOutput && /* @__PURE__ */ jsxs(Box, { className: "rounded-lg border border-gray-700 bg-[#0d0d0d] overflow-hidden", children: [
18411
+ hasOutput && /* @__PURE__ */ jsxs(Box, { className: "rounded-lg border border-border bg-foreground overflow-hidden", children: [
18412
18412
  /* @__PURE__ */ jsxs(
18413
18413
  HStack,
18414
18414
  {
18415
18415
  gap: "sm",
18416
18416
  align: "center",
18417
- className: "px-3 py-2 bg-gray-800 border-b border-gray-700",
18417
+ className: "px-3 py-2 bg-card border-b border-border",
18418
18418
  children: [
18419
- /* @__PURE__ */ jsx(Terminal, { size: 16, className: "text-gray-400" }),
18420
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-300 font-medium", children: "Output" })
18419
+ /* @__PURE__ */ jsx(Terminal, { size: 16, className: "text-muted-foreground" }),
18420
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-foreground font-medium", children: "Output" })
18421
18421
  ]
18422
18422
  }
18423
18423
  ),
18424
- /* @__PURE__ */ jsx(VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
18425
- output?.stdout ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-200 whitespace-pre-wrap", children: output.stdout }) : null,
18426
- output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: output.stderr }) : null,
18427
- !output?.stdout && !output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500 italic", children: "No output" }) : null,
18428
- output && output.testResults.length > 0 && /* @__PURE__ */ jsx(Box, { className: "mt-3 pt-3 border-t border-gray-700 space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "text-xs", children: [
18429
- test.passed ? /* @__PURE__ */ jsx(CheckCircle, { size: 14, className: "text-green-400 mt-0.5" }) : /* @__PURE__ */ jsx(XCircle, { size: 14, className: "text-red-400 mt-0.5" }),
18424
+ /* @__PURE__ */ jsx(VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
18425
+ output?.stdout ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-background whitespace-pre-wrap", children: output.stdout }) : null,
18426
+ output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: output.stderr }) : null,
18427
+ !output?.stdout && !output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-background italic", children: "No output" }) : null,
18428
+ output && output.testResults.length > 0 && /* @__PURE__ */ jsx(Box, { className: "mt-3 pt-3 border-t border-border space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "text-xs", children: [
18429
+ test.passed ? /* @__PURE__ */ jsx(CheckCircle, { size: 14, className: "text-success mt-0.5" }) : /* @__PURE__ */ jsx(XCircle, { size: 14, className: "text-error mt-0.5" }),
18430
18430
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1", children: [
18431
18431
  /* @__PURE__ */ jsxs(
18432
18432
  Typography,
18433
18433
  {
18434
18434
  variant: "small",
18435
- className: test.passed ? "text-green-400" : "text-red-400",
18435
+ className: test.passed ? "text-success" : "text-error",
18436
18436
  children: [
18437
18437
  "Test ",
18438
18438
  index + 1,
@@ -18441,15 +18441,15 @@ var init_CodeRunnerPanel = __esm({
18441
18441
  ]
18442
18442
  }
18443
18443
  ),
18444
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
18444
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
18445
18445
  "Input: ",
18446
18446
  test.input
18447
18447
  ] }),
18448
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
18448
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
18449
18449
  "Expected: ",
18450
18450
  test.expectedOutput
18451
18451
  ] }),
18452
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
18452
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
18453
18453
  "Actual: ",
18454
18454
  test.actualOutput
18455
18455
  ] })
@@ -18634,14 +18634,14 @@ var init_ConnectionBlock = __esm({
18634
18634
  "div",
18635
18635
  {
18636
18636
  className: cn(
18637
- "bg-emerald-50 dark:bg-emerald-900/20 border-l-4 border-emerald-500 rounded-r-lg p-5 mb-6",
18637
+ "bg-success/10 border-l-4 border-success rounded-r-lg p-5 mb-6",
18638
18638
  className
18639
18639
  ),
18640
18640
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
18641
- /* @__PURE__ */ jsx(Link2, { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-1", size: 20 }),
18641
+ /* @__PURE__ */ jsx(Link2, { className: "text-success flex-shrink-0 mt-1", size: 20 }),
18642
18642
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
18643
- /* @__PURE__ */ jsx("h4", { className: "font-semibold text-emerald-900 dark:text-emerald-100 mb-2", children: "Building On What You Know" }),
18644
- /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-gray-700 dark:text-gray-300", children: /* @__PURE__ */ jsx(MarkdownContent, { content }) })
18643
+ /* @__PURE__ */ jsx("h4", { className: "font-semibold text-success mb-2", children: "Building On What You Know" }),
18644
+ /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-foreground", children: /* @__PURE__ */ jsx(MarkdownContent, { content }) })
18645
18645
  ] })
18646
18646
  ] })
18647
18647
  }
@@ -19032,7 +19032,7 @@ function CounterStandard({
19032
19032
  variant: "h1",
19033
19033
  className: cn(
19034
19034
  sizeStyles8[size].display,
19035
- "font-bold tabular-nums text-primary-600"
19035
+ "font-bold tabular-nums text-primary"
19036
19036
  ),
19037
19037
  children: resolved.count
19038
19038
  }
@@ -19105,7 +19105,7 @@ function CounterFull({
19105
19105
  variant: "h1",
19106
19106
  className: cn(
19107
19107
  sizeStyles8[size].display,
19108
- "font-bold tabular-nums text-primary-600"
19108
+ "font-bold tabular-nums text-primary"
19109
19109
  ),
19110
19110
  children: resolved.count
19111
19111
  }
@@ -19370,11 +19370,11 @@ var init_DashboardLayout = __esm({
19370
19370
  className: "h-16 px-4 border-b border-border dark:border-border",
19371
19371
  children: [
19372
19372
  /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
19373
- logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
19373
+ logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
19374
19374
  Typography,
19375
19375
  {
19376
19376
  variant: "small",
19377
- className: "text-white font-bold text-sm",
19377
+ className: "text-primary-foreground font-bold text-sm",
19378
19378
  as: "span",
19379
19379
  children: appName.charAt(0).toUpperCase()
19380
19380
  }
@@ -19453,11 +19453,11 @@ var init_DashboardLayout = __esm({
19453
19453
  className: "hidden @md/dashboard:flex items-center gap-1 overflow-x-auto",
19454
19454
  children: [
19455
19455
  /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2 mr-3 shrink-0", children: [
19456
- logo || /* @__PURE__ */ jsx(Box, { className: "w-7 h-7 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
19456
+ logo || /* @__PURE__ */ jsx(Box, { className: "w-7 h-7 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
19457
19457
  Typography,
19458
19458
  {
19459
19459
  variant: "small",
19460
- className: "text-white font-bold text-xs",
19460
+ className: "text-primary-foreground font-bold text-xs",
19461
19461
  as: "span",
19462
19462
  children: appName.charAt(0).toUpperCase()
19463
19463
  }
@@ -19517,8 +19517,8 @@ var init_DashboardLayout = __esm({
19517
19517
  {
19518
19518
  as: "span",
19519
19519
  className: cn(
19520
- "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",
19521
- action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
19520
+ "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",
19521
+ action.variant === "danger" ? "bg-error text-error-foreground" : action.variant === "primary" ? "bg-primary text-primary-foreground" : "bg-foreground text-background"
19522
19522
  ),
19523
19523
  children: action.badge
19524
19524
  }
@@ -19540,7 +19540,7 @@ var init_DashboardLayout = __esm({
19540
19540
  Box,
19541
19541
  {
19542
19542
  as: "span",
19543
- 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",
19543
+ 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",
19544
19544
  children: unreadCount > 99 ? "99+" : unreadCount
19545
19545
  }
19546
19546
  )
@@ -19823,7 +19823,7 @@ function SubMenu({
19823
19823
  ),
19824
19824
  children: [
19825
19825
  item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm", className: "flex-shrink-0" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm", className: "flex-shrink-0" })),
19826
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: cn("flex-1", isDanger && "text-red-600"), children: item.label }),
19826
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: cn("flex-1", isDanger && "text-error"), children: item.label }),
19827
19827
  item.badge !== void 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs font-medium", children: item.badge })
19828
19828
  ]
19829
19829
  },
@@ -19880,7 +19880,7 @@ function MenuItemRow({
19880
19880
  Typography,
19881
19881
  {
19882
19882
  variant: "small",
19883
- className: cn("flex-1", isDanger && "text-red-600"),
19883
+ className: cn("flex-1", isDanger && "text-error"),
19884
19884
  children: item.label
19885
19885
  }
19886
19886
  ),
@@ -20648,20 +20648,24 @@ function DataGrid({
20648
20648
  const bodyFields = fieldDefs.filter((f3) => f3 !== titleField && !badgeFields.includes(f3));
20649
20649
  const primaryActions = actionDefs.filter((a) => a.variant !== "danger");
20650
20650
  const dangerActions = actionDefs.filter((a) => a.variant === "danger");
20651
- const handleActionClick = (action, itemData) => (e) => {
20652
- e.stopPropagation();
20653
- const payload = {
20654
- id: itemData.id,
20655
- row: itemData
20656
- };
20657
- eventBus.emit(`UI:${action.event}`, payload);
20651
+ const fireAction = (action, itemData) => {
20658
20652
  if (action.navigatesTo) {
20659
20653
  const url = action.navigatesTo.replace(
20660
20654
  /\{\{row\.(\w+(?:\.\w+)*)\}\}/g,
20661
20655
  (_, field) => String(itemData[field] ?? "")
20662
20656
  );
20663
- eventBus.emit("UI:NAVIGATE", { url });
20657
+ eventBus.emit("UI:NAVIGATE", { url, row: itemData });
20658
+ return;
20664
20659
  }
20660
+ const payload = {
20661
+ id: itemData.id,
20662
+ row: itemData
20663
+ };
20664
+ eventBus.emit(`UI:${action.event}`, payload);
20665
+ };
20666
+ const handleActionClick = (action, itemData) => (e) => {
20667
+ e.stopPropagation();
20668
+ fireAction(action, itemData);
20665
20669
  };
20666
20670
  const hasRenderProp = typeof children === "function";
20667
20671
  useEffect(() => {
@@ -20763,10 +20767,7 @@ function DataGrid({
20763
20767
  label: action.label,
20764
20768
  icon: action.icon,
20765
20769
  event: action.event,
20766
- onClick: () => eventBus.emit(`UI:${action.event}`, {
20767
- id: itemData.id,
20768
- row: itemData
20769
- })
20770
+ onClick: () => fireAction(action, itemData)
20770
20771
  }))
20771
20772
  }
20772
20773
  )
@@ -20819,13 +20820,13 @@ function DataGrid({
20819
20820
  }
20820
20821
  ),
20821
20822
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1 min-w-0", children: [
20822
- titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxs(HStack, { gap: "xs", className: "items-center", children: [
20823
+ titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxs(HStack, { gap: "xs", className: "items-center min-w-0", children: [
20823
20824
  titleField?.icon && renderIconInput(titleField.icon, { size: "sm", className: "text-primary flex-shrink-0" }),
20824
20825
  /* @__PURE__ */ jsx(
20825
20826
  Typography,
20826
20827
  {
20827
20828
  variant: titleField?.variant === "h3" ? "h3" : "h4",
20828
- className: "font-semibold truncate",
20829
+ className: "font-semibold truncate min-w-0",
20829
20830
  children: String(titleValue)
20830
20831
  }
20831
20832
  )
@@ -20883,7 +20884,7 @@ function DataGrid({
20883
20884
  )
20884
20885
  ] }, field.name);
20885
20886
  }) }) }),
20886
- primaryActions.length > 0 && /* @__PURE__ */ jsx(Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "justify-end", children: [
20887
+ primaryActions.length > 0 && /* @__PURE__ */ jsx(Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "justify-end flex-wrap", children: [
20887
20888
  (maxInlineActions != null ? primaryActions.slice(0, maxInlineActions) : primaryActions).map((action, idx) => /* @__PURE__ */ jsxs(
20888
20889
  Button,
20889
20890
  {
@@ -20908,10 +20909,7 @@ function DataGrid({
20908
20909
  label: action.label,
20909
20910
  icon: action.icon,
20910
20911
  event: action.event,
20911
- onClick: () => eventBus.emit(`UI:${action.event}`, {
20912
- id: itemData.id,
20913
- row: itemData
20914
- })
20912
+ onClick: () => fireAction(action, itemData)
20915
20913
  }))
20916
20914
  }
20917
20915
  )
@@ -23930,8 +23928,8 @@ var init_RelationSelect = __esm({
23930
23928
  disabled,
23931
23929
  className: cn(
23932
23930
  "w-full justify-between font-normal",
23933
- error && "border-red-300 focus:border-red-500 focus:ring-red-500",
23934
- isOpen && "ring-2 ring-primary-500 border-primary-500"
23931
+ error && "border-error/50 focus:border-error focus:ring-error",
23932
+ isOpen && "ring-2 ring-primary border-primary"
23935
23933
  ),
23936
23934
  children: [
23937
23935
  /* @__PURE__ */ jsx(
@@ -24011,7 +24009,7 @@ var init_RelationSelect = __esm({
24011
24009
  paddingY: "sm",
24012
24010
  className: cn(
24013
24011
  "text-left text-sm hover:bg-muted focus:outline-none focus:bg-muted",
24014
- option.value === value && "bg-primary-50 text-primary-700",
24012
+ option.value === value && "bg-primary/10 text-primary",
24015
24013
  option.disabled && "opacity-50 cursor-not-allowed"
24016
24014
  ),
24017
24015
  onClick: () => handleSelect(option),
@@ -24168,7 +24166,7 @@ var init_SidePanel = __esm({
24168
24166
  showOverlay && /* @__PURE__ */ jsx(Presence, { show: isOpen, animation: "overlay", children: /* @__PURE__ */ jsx(
24169
24167
  Box,
24170
24168
  {
24171
- className: "fixed inset-0 bg-white/80 backdrop-blur-sm z-40 lg:hidden",
24169
+ className: "fixed inset-0 bg-background/80 backdrop-blur-sm z-40 lg:hidden",
24172
24170
  onClick: handleClose
24173
24171
  }
24174
24172
  ) }),
@@ -24535,7 +24533,7 @@ var init_WizardNavigation = __esm({
24535
24533
  /* @__PURE__ */ jsx(Icon, { name: "chevron-left", size: "sm" }),
24536
24534
  resolvedBackLabel
24537
24535
  ] }) : /* @__PURE__ */ jsx(Box, {}),
24538
- /* @__PURE__ */ jsx(HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-neutral-500", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
24536
+ /* @__PURE__ */ jsx(HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
24539
24537
  isLastStep && showComplete ? /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
24540
24538
  resolvedNextLabel,
24541
24539
  /* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm" })
@@ -29254,6 +29252,7 @@ var init_Lightbox = __esm({
29254
29252
  {
29255
29253
  className: cn(
29256
29254
  "fixed inset-0 z-50 flex items-center justify-center",
29255
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: lightbox scrim behind images
29257
29256
  "bg-black bg-opacity-90",
29258
29257
  className
29259
29258
  ),
@@ -29276,7 +29275,7 @@ var init_Lightbox = __esm({
29276
29275
  "p-2 rounded-full",
29277
29276
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29278
29277
  "hover:bg-opacity-70 transition-opacity",
29279
- "focus:outline-none focus:ring-2 focus:ring-white"
29278
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29280
29279
  ),
29281
29280
  "aria-label": t("aria.closeModal"),
29282
29281
  children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "w-6 h-6" })
@@ -29295,7 +29294,7 @@ var init_Lightbox = __esm({
29295
29294
  "p-2 rounded-full",
29296
29295
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29297
29296
  "hover:bg-opacity-70 transition-opacity",
29298
- "focus:outline-none focus:ring-2 focus:ring-white"
29297
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29299
29298
  ),
29300
29299
  "aria-label": t("aria.previousImage"),
29301
29300
  children: /* @__PURE__ */ jsx(Icon, { name: "chevron-left", className: "w-8 h-8" })
@@ -29332,7 +29331,7 @@ var init_Lightbox = __esm({
29332
29331
  "p-2 rounded-full",
29333
29332
  "text-[var(--color-foreground)] bg-[var(--color-card)]",
29334
29333
  "hover:bg-opacity-70 transition-opacity",
29335
- "focus:outline-none focus:ring-2 focus:ring-white"
29334
+ "focus:outline-none focus:ring-2 focus:ring-ring"
29336
29335
  ),
29337
29336
  "aria-label": t("aria.nextImage"),
29338
29337
  children: /* @__PURE__ */ jsx(Icon, { name: "chevron-right", className: "w-8 h-8" })
@@ -29552,7 +29551,7 @@ function TableView({
29552
29551
  col.key
29553
29552
  );
29554
29553
  }),
29555
- hasActions && /* @__PURE__ */ jsx(Box, { "aria-hidden": true })
29554
+ hasActions && /* @__PURE__ */ jsx(Box, { "aria-hidden": true, className: "sticky right-0 bg-[var(--color-surface-subtle)]" })
29556
29555
  ]
29557
29556
  }
29558
29557
  );
@@ -29596,41 +29595,54 @@ function TableView({
29596
29595
  }
29597
29596
  return /* @__PURE__ */ jsx(Box, { role: "cell", className: cellBase, children: /* @__PURE__ */ jsx("span", { className: "truncate", children: formatCell(raw, col.format) }) }, col.key);
29598
29597
  }),
29599
- itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxs(HStack, { gap: "xs", className: "justify-end flex-shrink-0 opacity-60 group-hover:opacity-100 transition-opacity", children: [
29600
- (maxInlineActions != null ? itemActions.slice(0, maxInlineActions) : itemActions).map((action, i) => /* @__PURE__ */ jsxs(
29601
- Button,
29602
- {
29603
- variant: action.variant ?? "ghost",
29604
- size: "sm",
29605
- onClick: handleActionClick(action, row),
29606
- "data-testid": `action-${action.event}`,
29607
- "data-row-id": String(row.id),
29608
- className: cn(action.variant === "danger" && "text-error hover:bg-error/10"),
29609
- children: [
29610
- action.icon && renderIconInput3(action.icon, { size: "xs", className: "mr-1" }),
29611
- action.label
29612
- ]
29613
- },
29614
- i
29615
- )),
29616
- maxInlineActions != null && itemActions.length > maxInlineActions && /* @__PURE__ */ jsx(
29617
- Menu,
29618
- {
29619
- position: "bottom-end",
29620
- trigger: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", size: "xs" }) }),
29621
- items: itemActions.slice(maxInlineActions).map((action) => ({
29622
- label: action.label,
29623
- icon: action.icon,
29624
- event: action.event,
29625
- variant: action.variant === "danger" ? "danger" : "default",
29626
- onClick: () => eventBus.emit(`UI:${action.event}`, {
29627
- id: row.id,
29628
- row
29629
- })
29630
- }))
29631
- }
29632
- )
29633
- ] })
29598
+ itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxs(
29599
+ HStack,
29600
+ {
29601
+ gap: "xs",
29602
+ className: cn(
29603
+ // Pinned: the fixed column tracks routinely overflow the caller's
29604
+ // scroll container, which used to leave the actions off-screen.
29605
+ // Opaque so scrolled cells pass underneath it.
29606
+ "justify-end flex-shrink-0 sticky right-0 z-[1] transition-colors",
29607
+ lk.striped && index % 2 === 1 ? "bg-[var(--color-surface-subtle)]" : "bg-[var(--color-card)] group-hover:bg-[var(--color-surface-subtle)]"
29608
+ ),
29609
+ children: [
29610
+ (maxInlineActions != null ? itemActions.slice(0, maxInlineActions) : itemActions).map((action, i) => /* @__PURE__ */ jsxs(
29611
+ Button,
29612
+ {
29613
+ variant: action.variant ?? "ghost",
29614
+ size: "sm",
29615
+ onClick: handleActionClick(action, row),
29616
+ "data-testid": `action-${action.event}`,
29617
+ "data-row-id": String(row.id),
29618
+ className: cn(action.variant === "danger" && "text-error hover:bg-error/10"),
29619
+ children: [
29620
+ action.icon && renderIconInput3(action.icon, { size: "xs", className: "mr-1" }),
29621
+ action.label
29622
+ ]
29623
+ },
29624
+ i
29625
+ )),
29626
+ maxInlineActions != null && itemActions.length > maxInlineActions && /* @__PURE__ */ jsx(
29627
+ Menu,
29628
+ {
29629
+ position: "bottom-end",
29630
+ trigger: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", size: "xs" }) }),
29631
+ items: itemActions.slice(maxInlineActions).map((action) => ({
29632
+ label: action.label,
29633
+ icon: action.icon,
29634
+ event: action.event,
29635
+ variant: action.variant === "danger" ? "danger" : "default",
29636
+ onClick: () => eventBus.emit(`UI:${action.event}`, {
29637
+ id: row.id,
29638
+ row
29639
+ })
29640
+ }))
29641
+ }
29642
+ )
29643
+ ]
29644
+ }
29645
+ )
29634
29646
  ]
29635
29647
  }
29636
29648
  );
@@ -32405,6 +32417,7 @@ var init_QrScanner = __esm({
32405
32417
  overflow: "hidden",
32406
32418
  rounded: "sm",
32407
32419
  className: cn(
32420
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32408
32421
  "bg-black",
32409
32422
  "aspect-square w-full max-w-md",
32410
32423
  className
@@ -32469,7 +32482,9 @@ var init_QrScanner = __esm({
32469
32482
  type: "button",
32470
32483
  onClick: togglePause,
32471
32484
  className: cn(
32485
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32472
32486
  "rounded-full bg-black bg-opacity-60 p-2 text-white",
32487
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32473
32488
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32474
32489
  ),
32475
32490
  "aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
@@ -32482,7 +32497,9 @@ var init_QrScanner = __esm({
32482
32497
  type: "button",
32483
32498
  onClick: toggleFacing,
32484
32499
  className: cn(
32500
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32485
32501
  "rounded-full bg-black bg-opacity-60 p-2 text-white",
32502
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32486
32503
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32487
32504
  ),
32488
32505
  "aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
@@ -32495,7 +32512,9 @@ var init_QrScanner = __esm({
32495
32512
  type: "button",
32496
32513
  onClick: handleMockScan,
32497
32514
  className: cn(
32515
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32498
32516
  "rounded-full bg-black bg-opacity-60 px-3 py-2 text-xs text-white",
32517
+ // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
32499
32518
  "hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
32500
32519
  ),
32501
32520
  "aria-label": t("aria.mockScanDev"),
@@ -35231,10 +35250,10 @@ var init_ModuleCard = __esm({
35231
35250
  init_avl_atom_types();
35232
35251
  init_MiniStateMachine();
35233
35252
  PERSISTENCE_BORDER = {
35234
- persistent: "border-l-[3px] border-l-blue-500 border-solid",
35235
- runtime: "border-l-[3px] border-l-blue-500 border-dashed",
35236
- singleton: "border-l-[3px] border-l-blue-500 border-double",
35237
- instance: "border-l-[3px] border-l-blue-500 border-dotted"
35253
+ persistent: "border-l-[3px] border-l-primary border-solid",
35254
+ runtime: "border-l-[3px] border-l-primary border-dashed",
35255
+ singleton: "border-l-[3px] border-l-primary border-double",
35256
+ instance: "border-l-[3px] border-l-primary border-dotted"
35238
35257
  };
35239
35258
  PERSISTENCE_ICON = {
35240
35259
  persistent: "\u26C1",
@@ -35264,8 +35283,8 @@ var init_ModuleCard = __esm({
35264
35283
  className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
35265
35284
  style: { minWidth: 280, maxWidth: 400 },
35266
35285
  children: [
35267
- /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, className: "!w-2.5 !h-2.5 !bg-orange-400" }),
35268
- /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: "!w-2.5 !h-2.5 !bg-orange-400" }),
35286
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, className: "!w-2.5 !h-2.5 !bg-warning" }),
35287
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: "!w-2.5 !h-2.5 !bg-warning" }),
35269
35288
  /* @__PURE__ */ jsx("div", { className: "px-3 py-2 border-b border-[var(--color-border)]", children: /* @__PURE__ */ jsx("span", { className: "text-base font-bold text-[var(--color-foreground)]", children: orbitalName }) }),
35270
35289
  /* @__PURE__ */ jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
35271
35290
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
@@ -37721,19 +37740,19 @@ var init_ReflectionBlock = __esm({
37721
37740
  "div",
37722
37741
  {
37723
37742
  className: cn(
37724
- "my-6 border-l-4 border-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded-r-lg p-4",
37743
+ "my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
37725
37744
  className
37726
37745
  ),
37727
37746
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
37728
- /* @__PURE__ */ jsx(PauseCircle, { className: "text-amber-600 dark:text-amber-400 flex-shrink-0 mt-1", size: 20 }),
37747
+ /* @__PURE__ */ jsx(PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
37729
37748
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
37730
- /* @__PURE__ */ jsx("div", { className: "font-medium text-amber-900 dark:text-amber-100 mb-2", children: "Pause & Reflect" }),
37731
- /* @__PURE__ */ jsx("p", { className: "text-gray-700 dark:text-gray-300 text-sm mb-3", children: prompt }),
37749
+ /* @__PURE__ */ jsx("div", { className: "font-medium text-warning mb-2", children: "Pause & Reflect" }),
37750
+ /* @__PURE__ */ jsx("p", { className: "text-foreground text-sm mb-3", children: prompt }),
37732
37751
  isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
37733
37752
  /* @__PURE__ */ jsx(
37734
37753
  "textarea",
37735
37754
  {
37736
- 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",
37755
+ className: "w-full p-2 border border-input rounded text-sm bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent",
37737
37756
  placeholder: "Your thoughts...",
37738
37757
  value: note,
37739
37758
  onChange: (e) => setNote(e.target.value),
@@ -37744,7 +37763,7 @@ var init_ReflectionBlock = __esm({
37744
37763
  "button",
37745
37764
  {
37746
37765
  onClick: handleSave,
37747
- className: "mt-2 text-sm px-3 py-1 bg-amber-600 text-white rounded hover:bg-amber-700 transition-colors",
37766
+ className: "mt-2 text-sm px-3 py-1 bg-warning text-warning-foreground rounded hover:opacity-90 transition-colors",
37748
37767
  children: "Save & Continue"
37749
37768
  }
37750
37769
  )
@@ -37752,7 +37771,7 @@ var init_ReflectionBlock = __esm({
37752
37771
  "button",
37753
37772
  {
37754
37773
  onClick: () => setIsExpanded(true),
37755
- className: "text-sm text-amber-600 dark:text-amber-400 hover:underline",
37774
+ className: "text-sm text-warning hover:underline",
37756
37775
  children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
37757
37776
  }
37758
37777
  )
@@ -38256,7 +38275,7 @@ function DataTable({
38256
38275
  )),
38257
38276
  rowActions && /* @__PURE__ */ jsx("th", { className: "w-12 px-4 py-3" })
38258
38277
  ] }) }),
38259
- /* @__PURE__ */ jsx("tbody", { className: "divide-y divide-gray-200 dark:divide-gray-700", children: isLoading ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
38278
+ /* @__PURE__ */ jsx("tbody", { className: "divide-y divide-border", children: isLoading ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
38260
38279
  "td",
38261
38280
  {
38262
38281
  colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
@@ -38576,6 +38595,16 @@ function normalizeFieldDefs(fields) {
38576
38595
  return String(f3);
38577
38596
  });
38578
38597
  }
38598
+ function buildFieldLabelMap(fields) {
38599
+ const map = {};
38600
+ if (!fields) return map;
38601
+ for (const f3 of fields) {
38602
+ if (typeof f3 === "object" && "key" in f3 && f3.header !== void 0 && f3.header !== "") {
38603
+ map[f3.key] = f3.header;
38604
+ }
38605
+ }
38606
+ return map;
38607
+ }
38579
38608
  function buildFieldTypeMap(fields) {
38580
38609
  const map = {};
38581
38610
  if (!fields) return map;
@@ -38627,7 +38656,9 @@ var init_DetailPanel = __esm({
38627
38656
  };
38628
38657
  const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
38629
38658
  const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
38630
- useCallback(
38659
+ const fieldLabelMap = isFieldDefArray(propFields) ? buildFieldLabelMap(propFields) : {};
38660
+ const labelFor = (field) => fieldLabelMap[field] ?? formatFieldLabel(field);
38661
+ const handleActionClick = useCallback(
38631
38662
  (action, data2) => {
38632
38663
  if (action.navigatesTo) {
38633
38664
  const url = action.navigatesTo.replace(
@@ -38662,7 +38693,7 @@ var init_DetailPanel = __esm({
38662
38693
  if (typeof field === "string") {
38663
38694
  const value = getNestedValue(normalizedData, field);
38664
38695
  return {
38665
- label: formatFieldLabel(field),
38696
+ label: labelFor(field),
38666
38697
  value: formatFieldValue(value, field),
38667
38698
  icon: getFieldIcon(field)
38668
38699
  };
@@ -38673,7 +38704,10 @@ var init_DetailPanel = __esm({
38673
38704
  }
38674
38705
  if (normalizedData && effectiveFieldNames) {
38675
38706
  const primaryField = effectiveFieldNames[0];
38676
- if (!title && primaryField && normalizedData[primaryField]) {
38707
+ const titleDerivedFromPrimary = Boolean(
38708
+ !title && primaryField && normalizedData[primaryField]
38709
+ );
38710
+ if (titleDerivedFromPrimary) {
38677
38711
  title = String(normalizedData[primaryField]);
38678
38712
  }
38679
38713
  const statusFields = effectiveFieldNames.filter(
@@ -38692,16 +38726,16 @@ var init_DetailPanel = __esm({
38692
38726
  (f3) => f3.toLowerCase().includes("description") || f3.toLowerCase().includes("note")
38693
38727
  );
38694
38728
  const otherFields = effectiveFieldNames.filter(
38695
- (f3) => f3 !== primaryField && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
38729
+ (f3) => (!titleDerivedFromPrimary || f3 !== primaryField) && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
38696
38730
  );
38697
38731
  sections = [];
38698
38732
  if (statusFields.length > 0 || otherFields.length > 0) {
38699
38733
  const overviewFields = [];
38700
- [...statusFields, ...otherFields.slice(0, 3)].forEach((field) => {
38734
+ [...statusFields, ...otherFields].forEach((field) => {
38701
38735
  const value = getNestedValue(normalizedData, field);
38702
38736
  if (value !== void 0 && value !== null) {
38703
38737
  overviewFields.push({
38704
- label: formatFieldLabel(field),
38738
+ label: labelFor(field),
38705
38739
  value: renderRichFieldValue(value, field, fieldTypeMap[field]),
38706
38740
  icon: getFieldIcon(field)
38707
38741
  });
@@ -38717,7 +38751,7 @@ var init_DetailPanel = __esm({
38717
38751
  const value = getNestedValue(normalizedData, field);
38718
38752
  if (value !== void 0 && value !== null) {
38719
38753
  metricsFields.push({
38720
- label: formatFieldLabel(field),
38754
+ label: labelFor(field),
38721
38755
  value: renderRichFieldValue(value, field, fieldTypeMap[field]),
38722
38756
  icon: getFieldIcon(field)
38723
38757
  });
@@ -38733,7 +38767,7 @@ var init_DetailPanel = __esm({
38733
38767
  const value = getNestedValue(normalizedData, field);
38734
38768
  if (value !== void 0 && value !== null) {
38735
38769
  timelineFields.push({
38736
- label: formatFieldLabel(field),
38770
+ label: labelFor(field),
38737
38771
  value: renderRichFieldValue(value, field, fieldTypeMap[field]),
38738
38772
  icon: getFieldIcon(field)
38739
38773
  });
@@ -38749,7 +38783,7 @@ var init_DetailPanel = __esm({
38749
38783
  const value = getNestedValue(normalizedData, field);
38750
38784
  if (value !== void 0 && value !== null) {
38751
38785
  descFields.push({
38752
- label: formatFieldLabel(field),
38786
+ label: labelFor(field),
38753
38787
  value: renderRichFieldValue(value, field, fieldTypeMap[field]),
38754
38788
  icon: getFieldIcon(field)
38755
38789
  });
@@ -38797,7 +38831,7 @@ var init_DetailPanel = __esm({
38797
38831
  if (typeof field === "string") {
38798
38832
  const value = normalizedData ? getNestedValue(normalizedData, field) : void 0;
38799
38833
  allFields.push({
38800
- label: formatFieldLabel(field),
38834
+ label: labelFor(field),
38801
38835
  value: renderRichFieldValue(value, field, fieldTypeMap[field]),
38802
38836
  icon: getFieldIcon(field)
38803
38837
  });
@@ -38819,8 +38853,9 @@ var init_DetailPanel = __esm({
38819
38853
  {
38820
38854
  variant: action.variant || "secondary",
38821
38855
  size: "sm",
38822
- action: action.event,
38856
+ action: action.navigatesTo ? void 0 : action.event,
38823
38857
  actionPayload: { row: normalizedData },
38858
+ onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
38824
38859
  icon: action.icon,
38825
38860
  "data-testid": action.event ? `action-${action.event}` : void 0,
38826
38861
  "data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
@@ -40863,8 +40898,9 @@ var init_MediaGallery = __esm({
40863
40898
  )
40864
40899
  }
40865
40900
  ),
40866
- item.caption && /* @__PURE__ */ jsx(Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
40867
- selectable && isSelected && /* @__PURE__ */ jsx(Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white text-xs", children: "\u2713" }) })
40901
+ item.caption && // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: caption scrim over image
40902
+ /* @__PURE__ */ jsx(Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
40903
+ selectable && isSelected && /* @__PURE__ */ jsx(Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-primary-foreground text-xs", children: "\u2713" }) })
40868
40904
  ]
40869
40905
  },
40870
40906
  item.id
@@ -40893,7 +40929,7 @@ var init_MediaGallery = __esm({
40893
40929
  size: "sm",
40894
40930
  icon: X,
40895
40931
  action: "LIGHTBOX_CLOSE",
40896
- className: "text-white hover:bg-white/20"
40932
+ className: "text-foreground hover:bg-muted/50"
40897
40933
  }
40898
40934
  ) }),
40899
40935
  /* @__PURE__ */ jsx(
@@ -40904,7 +40940,7 @@ var init_MediaGallery = __esm({
40904
40940
  className: "max-w-full max-h-[80vh] object-contain rounded-md"
40905
40941
  }
40906
40942
  ),
40907
- lightboxItem.caption && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-white mt-3 text-center", children: lightboxItem.caption })
40943
+ lightboxItem.caption && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-foreground mt-3 text-center", children: lightboxItem.caption })
40908
40944
  ]
40909
40945
  }
40910
40946
  )
@@ -41346,7 +41382,7 @@ function WalkMinimap() {
41346
41382
  {
41347
41383
  variant,
41348
41384
  size: "sm",
41349
- className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-cyan-400" : ""}`,
41385
+ className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
41350
41386
  children: [
41351
41387
  isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
41352
41388
  " ",
@@ -41487,13 +41523,13 @@ function WalkMinimap() {
41487
41523
  })
41488
41524
  ] }) }),
41489
41525
  /* @__PURE__ */ jsx(Box, { className: "px-2 py-1 border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "items-center justify-between", children: [
41490
- /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-green-500", children: [
41526
+ /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-success", children: [
41491
41527
  "Engine: ",
41492
41528
  engineCount,
41493
41529
  "/",
41494
41530
  totalTransitions
41495
41531
  ] }),
41496
- domCount > 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-cyan-500", children: [
41532
+ domCount > 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-info", children: [
41497
41533
  "DOM: ",
41498
41534
  domCount
41499
41535
  ] }),
@@ -41526,13 +41562,13 @@ function TraitsTab({ traits: traits2 }) {
41526
41562
  const accordionItems = traits2.map((trait) => ({
41527
41563
  id: trait.id,
41528
41564
  header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
41529
- /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-purple-600 dark:text-purple-400", children: trait.name }),
41565
+ /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-primary", children: trait.name }),
41530
41566
  /* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: trait.currentState }),
41531
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500 ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
41567
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
41532
41568
  ] }),
41533
41569
  content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
41534
41570
  /* @__PURE__ */ jsxs("div", { children: [
41535
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.states") }),
41571
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.states") }),
41536
41572
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsx(
41537
41573
  Badge,
41538
41574
  {
@@ -41544,18 +41580,18 @@ function TraitsTab({ traits: traits2 }) {
41544
41580
  )) })
41545
41581
  ] }),
41546
41582
  trait.transitions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
41547
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.transitions") }),
41583
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.transitions") }),
41548
41584
  /* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.transitions.map((t2, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono", children: [
41549
41585
  t2.from,
41550
41586
  " \u2192 ",
41551
41587
  t2.to,
41552
41588
  " ",
41553
- /* @__PURE__ */ jsxs("span", { className: "text-gray-500", children: [
41589
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
41554
41590
  "(",
41555
41591
  t2.event,
41556
41592
  ")"
41557
41593
  ] }),
41558
- t2.guard && /* @__PURE__ */ jsxs("span", { className: "text-amber-500", children: [
41594
+ t2.guard && /* @__PURE__ */ jsxs("span", { className: "text-warning", children: [
41559
41595
  " [",
41560
41596
  t2.guard,
41561
41597
  "]"
@@ -41563,7 +41599,7 @@ function TraitsTab({ traits: traits2 }) {
41563
41599
  ] }, i)) })
41564
41600
  ] }),
41565
41601
  trait.guards.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
41566
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.guards") }),
41602
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.guards") }),
41567
41603
  /* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.guards.map((g, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
41568
41604
  /* @__PURE__ */ jsx(Typography, { variant: "small", children: g.name }),
41569
41605
  /* @__PURE__ */ jsx(Badge, { variant: g.lastResult === true ? "success" : g.lastResult === false ? "danger" : "default", size: "sm", children: g.lastResult === void 0 ? "?" : g.lastResult ? "\u2713" : "\u2717" })
@@ -41606,11 +41642,11 @@ function TicksTab({ ticks: ticks2 }) {
41606
41642
  };
41607
41643
  const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxs(Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
41608
41644
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
41609
- /* @__PURE__ */ jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-green-500" : "bg-gray-400"}` }),
41610
- /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-amber-600 dark:text-amber-400", children: tick.name }),
41611
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: tick.traitName })
41645
+ /* @__PURE__ */ jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-success" : "bg-muted-foreground"}` }),
41646
+ /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-warning", children: tick.name }),
41647
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: tick.traitName })
41612
41648
  ] }),
41613
- /* @__PURE__ */ jsxs("div", { className: "flex gap-3 text-xs text-gray-500", children: [
41649
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-3 text-xs text-muted-foreground", children: [
41614
41650
  /* @__PURE__ */ jsxs("span", { children: [
41615
41651
  tick.interval,
41616
41652
  "ms"
@@ -41633,7 +41669,7 @@ function TicksTab({ ticks: ticks2 }) {
41633
41669
  ] });
41634
41670
  return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
41635
41671
  activeTicks.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
41636
- /* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: [
41672
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
41637
41673
  "Active (",
41638
41674
  activeTicks.length,
41639
41675
  ")"
@@ -41641,7 +41677,7 @@ function TicksTab({ ticks: ticks2 }) {
41641
41677
  /* @__PURE__ */ jsx(Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsx(TickCard, { tick, active: true }, tick.id)) })
41642
41678
  ] }),
41643
41679
  inactiveTicks.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
41644
- /* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-gray-400 mb-2", children: [
41680
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
41645
41681
  "Inactive (",
41646
41682
  inactiveTicks.length,
41647
41683
  ")"
@@ -41689,33 +41725,33 @@ function EntitiesTab({ snapshot }) {
41689
41725
  id: `singleton-${name}`,
41690
41726
  header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
41691
41727
  /* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
41692
- /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-sky-600 dark:text-sky-400", children: name })
41728
+ /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-info", children: name })
41693
41729
  ] }),
41694
- content: /* @__PURE__ */ 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) })
41730
+ content: /* @__PURE__ */ jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
41695
41731
  }));
41696
41732
  const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
41697
41733
  id: entity.id,
41698
41734
  header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
41699
- /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-sky-600 dark:text-sky-400", children: entity.type }),
41700
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-500", children: [
41735
+ /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-info", children: entity.type }),
41736
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground", children: [
41701
41737
  "#",
41702
41738
  entity.id.slice(0, 8)
41703
41739
  ] })
41704
41740
  ] }),
41705
- content: /* @__PURE__ */ 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) })
41741
+ content: /* @__PURE__ */ 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) })
41706
41742
  }));
41707
41743
  return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--entities", children: [
41708
41744
  singletonItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
41709
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
41745
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
41710
41746
  /* @__PURE__ */ jsx(Accordion, { items: singletonItems, multiple: true })
41711
41747
  ] }),
41712
41748
  runtimeItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
41713
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
41749
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
41714
41750
  /* @__PURE__ */ jsx(Accordion, { items: runtimeItems, multiple: true }),
41715
- runtimeEntities.length > 20 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
41751
+ runtimeEntities.length > 20 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
41716
41752
  ] }),
41717
41753
  persistentEntries.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
41718
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.persistent") }),
41754
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.persistent") }),
41719
41755
  /* @__PURE__ */ jsx(Stack, { gap: "xs", children: persistentEntries.map(([type, info]) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1", children: [
41720
41756
  /* @__PURE__ */ jsx(Typography, { variant: "small", children: type }),
41721
41757
  /* @__PURE__ */ jsx(Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ? t("debug.loadedCount", { count: info.count }) : t("debug.notLoaded") })
@@ -41800,7 +41836,7 @@ function EventFlowTab({ events: events2 }) {
41800
41836
  );
41801
41837
  })
41802
41838
  ] }),
41803
- /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-500 ml-auto cursor-pointer", children: [
41839
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground ml-auto cursor-pointer", children: [
41804
41840
  /* @__PURE__ */ jsx(
41805
41841
  Checkbox,
41806
41842
  {
@@ -41815,18 +41851,18 @@ function EventFlowTab({ events: events2 }) {
41815
41851
  "div",
41816
41852
  {
41817
41853
  ref: containerRef,
41818
- className: "max-h-64 overflow-y-auto space-y-1 bg-gray-50 dark:bg-gray-800 rounded p-2",
41854
+ className: "max-h-64 overflow-y-auto space-y-1 bg-muted rounded p-2",
41819
41855
  children: filteredEvents.slice(-100).map((event) => {
41820
41856
  const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
41821
41857
  return /* @__PURE__ */ jsxs(
41822
41858
  "div",
41823
41859
  {
41824
- className: "flex items-start gap-2 text-xs py-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded px-1",
41860
+ className: "flex items-start gap-2 text-xs py-1 hover:bg-muted/50 rounded px-1",
41825
41861
  children: [
41826
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
41862
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
41827
41863
  /* @__PURE__ */ jsx("span", { children: icon }),
41828
41864
  /* @__PURE__ */ jsx(Badge, { variant, size: "sm", className: "min-w-[60px] justify-center", children: event.source }),
41829
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-600 dark:text-gray-400", children: event.message })
41865
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
41830
41866
  ]
41831
41867
  },
41832
41868
  event.id
@@ -41890,21 +41926,21 @@ function GuardsPanel({ guards }) {
41890
41926
  id: guard.id,
41891
41927
  header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
41892
41928
  /* @__PURE__ */ jsx(Badge, { variant: guard.result ? "success" : "danger", size: "sm", children: guard.result ? "\u2713" : "\u2717" }),
41893
- /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-amber-600 dark:text-amber-400", children: guard.guardName }),
41894
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
41895
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 ml-auto", children: formatTime2(guard.timestamp) })
41929
+ /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-warning", children: guard.guardName }),
41930
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
41931
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: formatTime2(guard.timestamp) })
41896
41932
  ] }),
41897
41933
  content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
41898
41934
  /* @__PURE__ */ jsxs("div", { children: [
41899
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.expression") }),
41900
- /* @__PURE__ */ 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 })
41935
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.expression") }),
41936
+ /* @__PURE__ */ jsx("code", { className: "block mt-1 text-xs text-warning bg-warning/10 px-2 py-1 rounded", children: guard.expression })
41901
41937
  ] }),
41902
41938
  /* @__PURE__ */ jsxs("div", { children: [
41903
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.inputs") }),
41904
- /* @__PURE__ */ 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) })
41939
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.inputs") }),
41940
+ /* @__PURE__ */ 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) })
41905
41941
  ] }),
41906
41942
  /* @__PURE__ */ jsxs("div", { children: [
41907
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.trait") }),
41943
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.trait") }),
41908
41944
  /* @__PURE__ */ jsx(Typography, { variant: "small", children: guard.context.traitName })
41909
41945
  ] })
41910
41946
  ] })
@@ -41960,7 +41996,7 @@ function VerificationTab({ checks, summary }) {
41960
41996
  (a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
41961
41997
  );
41962
41998
  return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--verification", children: [
41963
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-gray-50 dark:bg-gray-800 rounded", children: [
41999
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-muted rounded", children: [
41964
42000
  /* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
41965
42001
  summary.passed,
41966
42002
  " passed"
@@ -41977,7 +42013,7 @@ function VerificationTab({ checks, summary }) {
41977
42013
  summary.pending,
41978
42014
  " pending"
41979
42015
  ] }),
41980
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-500 ml-auto", children: [
42016
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
41981
42017
  summary.totalChecks,
41982
42018
  " total checks"
41983
42019
  ] })
@@ -41987,12 +42023,12 @@ function VerificationTab({ checks, summary }) {
41987
42023
  return /* @__PURE__ */ jsxs(
41988
42024
  "div",
41989
42025
  {
41990
- className: "flex items-start gap-2 p-2 rounded hover:bg-gray-50 dark:hover:bg-gray-800",
42026
+ className: "flex items-start gap-2 p-2 rounded hover:bg-muted/50",
41991
42027
  children: [
41992
42028
  /* @__PURE__ */ jsx(Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
41993
42029
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
41994
42030
  /* @__PURE__ */ jsx(Typography, { variant: "small", className: "break-words", children: check.label }),
41995
- check.details && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500 break-words", children: check.details })
42031
+ check.details && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground break-words", children: check.details })
41996
42032
  ] }),
41997
42033
  /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs shrink-0", children: new Date(check.updatedAt).toLocaleTimeString("en-US", {
41998
42034
  hour12: false,
@@ -42027,10 +42063,10 @@ var init_VerificationTab = __esm({
42027
42063
  function EffectBadge({ effect }) {
42028
42064
  const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
42029
42065
  const icon = effect.status === "executed" ? "\u2713" : effect.status === "failed" ? "\u2717" : "-";
42030
- return /* @__PURE__ */ 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: [
42066
+ return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-muted rounded px-1.5 py-0.5", children: [
42031
42067
  /* @__PURE__ */ jsx(Badge, { variant, size: "sm", className: "!text-[9px] !px-1 !py-0", children: icon }),
42032
- /* @__PURE__ */ jsx("span", { className: "text-gray-600 dark:text-gray-400", children: effect.type }),
42033
- effect.error && /* @__PURE__ */ jsx("span", { className: "text-red-500 truncate max-w-[120px]", title: effect.error, children: effect.error })
42068
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: effect.type }),
42069
+ effect.error && /* @__PURE__ */ jsx("span", { className: "text-error truncate max-w-[120px]", title: effect.error, children: effect.error })
42034
42070
  ] });
42035
42071
  }
42036
42072
  function TransitionTimeline({ transitions }) {
@@ -42065,8 +42101,8 @@ function TransitionTimeline({ transitions }) {
42065
42101
  const sorted = [...transitions].reverse();
42066
42102
  return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
42067
42103
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
42068
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
42069
- /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-500 cursor-pointer", children: [
42104
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
42105
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground cursor-pointer", children: [
42070
42106
  /* @__PURE__ */ jsx(
42071
42107
  Checkbox,
42072
42108
  {
@@ -42091,22 +42127,22 @@ function TransitionTimeline({ transitions }) {
42091
42127
  {
42092
42128
  className: `
42093
42129
  relative pl-6 pb-3 border-l-2 cursor-pointer
42094
- hover:bg-gray-50 dark:hover:bg-gray-800 rounded-r
42095
- ${hasFailedEffects ? "border-red-300 dark:border-red-700" : "border-gray-200 dark:border-gray-700"}
42130
+ hover:bg-muted/50 rounded-r
42131
+ ${hasFailedEffects ? "border-error" : "border-border"}
42096
42132
  `,
42097
42133
  onClick: () => setExpandedId(isExpanded ? null : trace.id),
42098
42134
  children: [
42099
42135
  /* @__PURE__ */ jsx("div", { className: `
42100
42136
  absolute left-[-5px] top-1 w-2 h-2 rounded-full
42101
- ${hasFailedEffects ? "bg-red-500" : allPassed ? "bg-green-500" : "bg-gray-400"}
42137
+ ${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
42102
42138
  ` }),
42103
42139
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs py-1 px-2", children: [
42104
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
42140
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
42105
42141
  /* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", className: "min-w-[60px] justify-center", children: trace.traitName }),
42106
- /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-gray-600 dark:text-gray-400", children: [
42142
+ /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-muted-foreground", children: [
42107
42143
  trace.from,
42108
42144
  " ",
42109
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "\u2192" }),
42145
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
42110
42146
  " ",
42111
42147
  trace.to
42112
42148
  ] }),
@@ -42123,9 +42159,9 @@ function TransitionTimeline({ transitions }) {
42123
42159
  ]
42124
42160
  }
42125
42161
  ),
42126
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
42162
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
42127
42163
  ] }),
42128
- isExpanded && trace.effects.length > 0 && /* @__PURE__ */ 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__ */ jsxs("div", { className: "flex items-center gap-1", children: [
42164
+ isExpanded && trace.effects.length > 0 && /* @__PURE__ */ 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__ */ jsxs("div", { className: "flex items-center gap-1", children: [
42129
42165
  /* @__PURE__ */ jsx(EffectBadge, { effect }),
42130
42166
  effect.args.length > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs truncate max-w-[200px]", children: JSON.stringify(effect.args) }),
42131
42167
  effect.durationMs !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
@@ -42159,8 +42195,8 @@ var init_TransitionTimeline = __esm({
42159
42195
  }
42160
42196
  });
42161
42197
  function StatRow({ label, value, variant }) {
42162
- return /* @__PURE__ */ 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: [
42163
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: label }),
42198
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-border last:border-b-0", children: [
42199
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: label }),
42164
42200
  variant ? /* @__PURE__ */ jsx(Badge, { variant, size: "sm", children: String(value) }) : /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "font-mono", children: String(value) })
42165
42201
  ] });
42166
42202
  }
@@ -42189,7 +42225,7 @@ function ServerBridgeTab({ bridge }) {
42189
42225
  return /* @__PURE__ */ jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
42190
42226
  /* @__PURE__ */ jsxs(Card, { className: "p-3", children: [
42191
42227
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
42192
- /* @__PURE__ */ jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-green-500 animate-pulse" : "bg-red-500"}` }),
42228
+ /* @__PURE__ */ jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-success animate-pulse" : "bg-error"}` }),
42193
42229
  /* @__PURE__ */ jsx(Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
42194
42230
  ] }),
42195
42231
  /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
@@ -42224,11 +42260,11 @@ function ServerBridgeTab({ bridge }) {
42224
42260
  )
42225
42261
  ] })
42226
42262
  ] }),
42227
- bridge.lastError && /* @__PURE__ */ jsxs(Card, { className: "p-3 border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950", children: [
42228
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-red-600 dark:text-red-400 mb-1", children: t("debug.lastError") }),
42229
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-500 font-mono break-all", children: bridge.lastError })
42263
+ bridge.lastError && /* @__PURE__ */ jsxs(Card, { className: "p-3 border-error/30 bg-error/10", children: [
42264
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-error mb-1", children: t("debug.lastError") }),
42265
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error font-mono break-all", children: bridge.lastError })
42230
42266
  ] }),
42231
- bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
42267
+ bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
42232
42268
  ] }) });
42233
42269
  }
42234
42270
  var init_ServerBridgeTab = __esm({
@@ -42354,7 +42390,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42354
42390
  };
42355
42391
  return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
42356
42392
  /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
42357
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.activeStates") }),
42393
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.activeStates") }),
42358
42394
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: traits2.map((trait) => /* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
42359
42395
  trait.name,
42360
42396
  ": ",
@@ -42362,8 +42398,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42362
42398
  ] }, trait.id)) })
42363
42399
  ] }),
42364
42400
  /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
42365
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.availableEvents") }),
42366
- availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsx(Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
42401
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.availableEvents") }),
42402
+ availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsx(Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
42367
42403
  /* @__PURE__ */ jsx(
42368
42404
  Button,
42369
42405
  {
@@ -42374,22 +42410,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
42374
42410
  children: event
42375
42411
  }
42376
42412
  ),
42377
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
42413
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
42378
42414
  transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
42379
42415
  ] }, event)) })
42380
42416
  ] }),
42381
42417
  unavailableEvents.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
42382
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.otherEvents") }),
42418
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.otherEvents") }),
42383
42419
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
42384
42420
  ] }),
42385
42421
  log19.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
42386
- /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.recentTransitions") }),
42422
+ /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.recentTransitions") }),
42387
42423
  /* @__PURE__ */ jsx(Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-xs", children: [
42388
- /* @__PURE__ */ jsx("span", { className: "text-purple-400", children: entry.traitName }),
42424
+ /* @__PURE__ */ jsx("span", { className: "text-primary", children: entry.traitName }),
42389
42425
  " ",
42390
- /* @__PURE__ */ jsx("span", { className: "text-gray-500", children: entry.from }),
42426
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: entry.from }),
42391
42427
  " -> ",
42392
- /* @__PURE__ */ jsx("span", { className: "text-green-400", children: entry.to })
42428
+ /* @__PURE__ */ jsx("span", { className: "text-success", children: entry.to })
42393
42429
  ] }, i)) })
42394
42430
  ] })
42395
42431
  ] });
@@ -42415,21 +42451,21 @@ var init_RuntimeDebugger = __esm({
42415
42451
  function ServerResponseRow({ sr }) {
42416
42452
  const { t } = useTranslate();
42417
42453
  const entityEntries = Object.entries(sr.dataEntities);
42418
- return /* @__PURE__ */ jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
42454
+ return /* @__PURE__ */ jsxs("div", { className: "ml-4 pl-2 border-l border-primary py-0.5 text-xs font-mono", children: [
42419
42455
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
42420
- /* @__PURE__ */ jsxs("span", { className: sr.success ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400", children: [
42456
+ /* @__PURE__ */ jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
42421
42457
  sr.success ? "\u2713" : "\u2717",
42422
42458
  " ",
42423
42459
  t("debug.server")
42424
42460
  ] }),
42425
- /* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-300", children: sr.orbitalName }),
42426
- sr.clientEffects > 0 && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-purple-500/15 text-purple-600 dark:text-purple-300", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
42427
- sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-blue-500/15 text-blue-300", children: [
42461
+ /* @__PURE__ */ jsx("span", { className: "text-primary", children: sr.orbitalName }),
42462
+ sr.clientEffects > 0 && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-primary/10 text-primary", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
42463
+ sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-primary/10 text-primary", children: [
42428
42464
  t("debug.emitLabel"),
42429
42465
  " ",
42430
42466
  sr.emittedEvents.join(", ")
42431
42467
  ] }),
42432
- sr.error && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-red-500/15 text-red-600 dark:text-red-400 truncate max-w-[300px]", children: sr.error })
42468
+ sr.error && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-error/10 text-error truncate max-w-[300px]", children: sr.error })
42433
42469
  ] }),
42434
42470
  entityEntries.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 mt-0.5", children: entityEntries.map(([name, count]) => /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-[var(--color-card)] text-foreground", children: [
42435
42471
  name,
@@ -42445,9 +42481,9 @@ function TransitionRow({ trace }) {
42445
42481
  if (isServerEntry && trace.serverResponse) {
42446
42482
  return /* @__PURE__ */ jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
42447
42483
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
42448
- /* @__PURE__ */ jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-purple-500" }),
42484
+ /* @__PURE__ */ jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-primary" }),
42449
42485
  /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
42450
- /* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-400 flex-shrink-0", children: t("debug.serverResponse") })
42486
+ /* @__PURE__ */ jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
42451
42487
  ] }),
42452
42488
  /* @__PURE__ */ jsx(ServerResponseRow, { sr: trace.serverResponse })
42453
42489
  ] });
@@ -42456,7 +42492,7 @@ function TransitionRow({ trace }) {
42456
42492
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
42457
42493
  /* @__PURE__ */ jsx("span", { className: cn(
42458
42494
  "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
42459
- hasFailedEffects ? "bg-red-500" : "bg-green-500"
42495
+ hasFailedEffects ? "bg-error" : "bg-success"
42460
42496
  ) }),
42461
42497
  /* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
42462
42498
  /* @__PURE__ */ jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
@@ -42470,7 +42506,7 @@ function TransitionRow({ trace }) {
42470
42506
  ] }),
42471
42507
  trace.effects.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 ml-6 mt-0.5", children: trace.effects.map((eff, i) => /* @__PURE__ */ jsxs("span", { className: cn(
42472
42508
  "px-1 rounded text-xs",
42473
- 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"
42509
+ eff.status === "executed" ? "bg-success/10 text-success" : eff.status === "failed" ? "bg-error/10 text-error" : "bg-warning/10 text-warning"
42474
42510
  ), children: [
42475
42511
  eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
42476
42512
  " ",
@@ -42504,7 +42540,7 @@ function VerifyModePanel({
42504
42540
  {
42505
42541
  className: cn(
42506
42542
  "runtime-debugger runtime-debugger--verify",
42507
- "flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-cyan-500",
42543
+ "flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-accent",
42508
42544
  hudBottom ? "" : "fixed bottom-0 left-0 right-0",
42509
42545
  className
42510
42546
  ),
@@ -42525,8 +42561,8 @@ function VerifyModePanel({
42525
42561
  /* @__PURE__ */ jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
42526
42562
  /* @__PURE__ */ jsx(Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
42527
42563
  /* @__PURE__ */ jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
42528
- /* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-400", children: t("debug.serverCount", { count: serverCount }) }),
42529
- traitStates && /* @__PURE__ */ jsx("span", { className: "text-cyan-600 dark:text-cyan-400 truncate max-w-[400px]", children: traitStates }),
42564
+ /* @__PURE__ */ jsx("span", { className: "text-primary", children: t("debug.serverCount", { count: serverCount }) }),
42565
+ traitStates && /* @__PURE__ */ jsx("span", { className: "text-accent truncate max-w-[400px]", children: traitStates }),
42530
42566
  !expanded && transitions.length > 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
42531
42567
  ]
42532
42568
  }
@@ -42721,7 +42757,7 @@ function RuntimeDebugger({
42721
42757
  title: t("debug.openDebugger"),
42722
42758
  children: failedChecks > 0 ? /* @__PURE__ */ jsxs("span", { className: "relative", children: [
42723
42759
  /* @__PURE__ */ jsx("span", { children: "V" }),
42724
- /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-red-500 rounded-full" })
42760
+ /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-error rounded-full" })
42725
42761
  ] }) : /* @__PURE__ */ jsx("span", { children: "V" })
42726
42762
  }
42727
42763
  ) : /* @__PURE__ */ jsxs(Card, { className: "runtime-debugger__panel", children: [
@@ -42809,7 +42845,7 @@ var init_SegmentRenderer = __esm({
42809
42845
  "div",
42810
42846
  {
42811
42847
  className: cn(
42812
- "border border-gray-200 dark:border-gray-700 rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
42848
+ "border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
42813
42849
  containerClassName,
42814
42850
  className
42815
42851
  ),