footprint-explainable-ui 0.26.1 → 0.27.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.
@@ -2430,8 +2430,8 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
2430
2430
  gap: 6,
2431
2431
  padding: "6px 12px",
2432
2432
  fontSize: 11,
2433
- background: rawDefaults.colors.bgSecondary,
2434
- borderBottom: `1px solid ${rawDefaults.colors.border}`,
2433
+ background: theme.bgSecondary,
2434
+ borderBottom: `1px solid ${theme.border}`,
2435
2435
  flexShrink: 0
2436
2436
  },
2437
2437
  "aria-label": "Subflow breadcrumb",
@@ -2454,7 +2454,7 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
2454
2454
  padding: 0,
2455
2455
  fontSize: 11,
2456
2456
  fontWeight: isLast ? 600 : 500,
2457
- color: isLast ? rawDefaults.colors.textPrimary : rawDefaults.colors.primary,
2457
+ color: isLast ? theme.textPrimary : theme.primary,
2458
2458
  cursor: isLast ? "default" : "pointer",
2459
2459
  textDecoration: isLast ? "none" : "underline",
2460
2460
  fontFamily: "inherit"
@@ -2462,7 +2462,7 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
2462
2462
  children: entry.label
2463
2463
  }
2464
2464
  ),
2465
- !isLast && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { color: rawDefaults.colors.textMuted }, children: "\u203A" })
2465
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { color: theme.textMuted }, children: "\u203A" })
2466
2466
  ]
2467
2467
  },
2468
2468
  entry.subflowId ?? "__top__"
@@ -2475,10 +2475,9 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
2475
2475
  // src/components/GroupContainerNode/GroupContainerNode.tsx
2476
2476
  var import_react15 = require("@xyflow/react");
2477
2477
  var import_jsx_runtime10 = require("react/jsx-runtime");
2478
- var C = rawDefaults.colors;
2479
2478
  function GroupContainerNode({ data }) {
2480
2479
  const d = data;
2481
- const borderColor = d.error ? C.error : d.active ? C.primary : d.done ? C.success : C.border;
2480
+ const borderColor = d.error ? theme.error : d.active ? theme.primary : d.done ? theme.nodeVisited : theme.border;
2482
2481
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2483
2482
  "div",
2484
2483
  {
@@ -2488,8 +2487,9 @@ function GroupContainerNode({ data }) {
2488
2487
  boxSizing: "border-box",
2489
2488
  border: `1.5px ${d.active || d.done || d.error ? "solid" : "dashed"} ${borderColor}`,
2490
2489
  borderRadius: 12,
2491
- // Translucent so the dotted background + nested children read clearly.
2492
- background: "rgba(148, 163, 184, 0.06)",
2490
+ // Translucent (theme-derived) so the dotted background + nested children
2491
+ // read clearly, while still following dark/light.
2492
+ background: `color-mix(in srgb, ${theme.textMuted} 7%, transparent)`,
2493
2493
  opacity: d.dimmed ? 0.4 : 1,
2494
2494
  position: "relative"
2495
2495
  },
@@ -2504,7 +2504,7 @@ function GroupContainerNode({ data }) {
2504
2504
  padding: "8px 12px",
2505
2505
  fontSize: 12,
2506
2506
  fontWeight: 600,
2507
- color: C.textMuted,
2507
+ color: theme.textMuted,
2508
2508
  letterSpacing: 0.2
2509
2509
  },
2510
2510
  children: [
@@ -3811,11 +3811,10 @@ function createTraceStructureRecorder(options = {}) {
3811
3811
  // src/components/SlotPillNode/SlotPillNode.tsx
3812
3812
  var import_react24 = require("@xyflow/react");
3813
3813
  var import_jsx_runtime15 = require("react/jsx-runtime");
3814
- var C2 = rawDefaults.colors;
3815
3814
  function SlotPillNode({ data }) {
3816
3815
  const d = data;
3817
3816
  const lit = !!(d.active || d.selected);
3818
- const accent = lit ? C2.primary : d.done ? C2.success : C2.textMuted;
3817
+ const accent = lit ? theme.primary : d.done ? theme.nodeVisited : theme.textMuted;
3819
3818
  const opacity = d.dimmed && !lit ? 0.45 : 1;
3820
3819
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
3821
3820
  "div",
@@ -3830,13 +3829,16 @@ function SlotPillNode({ data }) {
3830
3829
  padding: "0 12px",
3831
3830
  borderRadius: 999,
3832
3831
  // full pill
3833
- border: `1.5px solid ${lit ? C2.primary : C2.border}`,
3834
- background: lit ? "rgba(99, 102, 241, 0.14)" : "rgba(148, 163, 184, 0.06)",
3835
- boxShadow: lit ? `0 0 0 2px rgba(99,102,241,0.25)` : "none",
3832
+ border: `1.5px solid ${lit ? theme.primary : theme.border}`,
3833
+ // Fills derive from the theme so the pill follows dark/light — the lit
3834
+ // state is a faint primary tint over the resting node bg, unlit is the
3835
+ // resting bg itself (visible against the canvas via the border).
3836
+ background: lit ? `color-mix(in srgb, ${theme.primary} 14%, ${theme.bgSecondary})` : theme.bgSecondary,
3837
+ boxShadow: lit ? `0 0 0 2px color-mix(in srgb, ${theme.primary} 25%, transparent)` : "none",
3836
3838
  opacity,
3837
3839
  fontSize: 12,
3838
3840
  fontWeight: 600,
3839
- color: lit ? C2.textPrimary : C2.textSecondary,
3841
+ color: lit ? theme.textPrimary : theme.textSecondary,
3840
3842
  whiteSpace: "nowrap",
3841
3843
  overflow: "hidden",
3842
3844
  transition: "opacity 120ms, box-shadow 120ms, border-color 120ms"