@glyphjs/components 0.7.1 → 0.9.1

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.
package/dist/index.cjs CHANGED
@@ -33,6 +33,18 @@ var dagre__default = /*#__PURE__*/_interopDefault(dagre);
33
33
  var katex__default = /*#__PURE__*/_interopDefault(katex);
34
34
 
35
35
  // src/callout/index.ts
36
+ var CALLOUT_BORDER_MAP = {
37
+ info: "var(--glyph-callout-info-border, var(--glyph-color-info, #38bdf8))",
38
+ warning: "var(--glyph-callout-warning-border, var(--glyph-color-warning, #d97706))",
39
+ error: "var(--glyph-callout-error-border, var(--glyph-color-error, #dc2626))",
40
+ tip: "var(--glyph-callout-tip-border, var(--glyph-color-success, #16a34a))"
41
+ };
42
+ var CALLOUT_BG_MAP = {
43
+ info: "var(--glyph-callout-info-bg, rgba(56, 189, 248, 0.08))",
44
+ warning: "var(--glyph-callout-warning-bg, rgba(217, 119, 6, 0.08))",
45
+ error: "var(--glyph-callout-error-bg, rgba(220, 38, 38, 0.08))",
46
+ tip: "var(--glyph-callout-tip-bg, rgba(22, 163, 74, 0.08))"
47
+ };
36
48
  var CALLOUT_ICONS = {
37
49
  info: "\u2139\uFE0F",
38
50
  warning: "\u26A0\uFE0F",
@@ -48,8 +60,8 @@ var CALLOUT_LABELS = {
48
60
  function Callout({ data }) {
49
61
  const { type, title, content } = data;
50
62
  const containerStyle11 = {
51
- backgroundColor: `var(--glyph-callout-${type}-bg)`,
52
- borderLeft: `4px solid var(--glyph-callout-${type}-border)`,
63
+ backgroundColor: CALLOUT_BG_MAP[type],
64
+ borderLeft: `4px solid ${CALLOUT_BORDER_MAP[type]}`,
53
65
  borderRadius: "var(--glyph-radius-md, 0.1875rem)",
54
66
  padding: "var(--glyph-spacing-md, 1rem)",
55
67
  margin: "var(--glyph-spacing-sm, 0.5rem) 0",
@@ -119,26 +131,16 @@ var DEFAULT_WIDTH = 600;
119
131
  var DEFAULT_HEIGHT = 400;
120
132
  var MARGIN = { top: 20, right: 30, bottom: 50, left: 60 };
121
133
  var COLOR_SCHEME = [
122
- "#00d4aa",
123
- // cyan-green
124
- "#b44dff",
125
- // purple
126
- "#22c55e",
127
- // green
128
- "#e040fb",
129
- // magenta
130
- "#00e5ff",
131
- // teal
132
- "#84cc16",
133
- // lime
134
- "#f472b6",
135
- // rose
136
- "#fb923c",
137
- // orange
138
- "#818cf8",
139
- // indigo
140
- "#38bdf8"
141
- // sky
134
+ "var(--glyph-palette-color-1, #00d4aa)",
135
+ "var(--glyph-palette-color-2, #b44dff)",
136
+ "var(--glyph-palette-color-3, #22c55e)",
137
+ "var(--glyph-palette-color-4, #e040fb)",
138
+ "var(--glyph-palette-color-5, #00e5ff)",
139
+ "var(--glyph-palette-color-6, #84cc16)",
140
+ "var(--glyph-palette-color-7, #f472b6)",
141
+ "var(--glyph-palette-color-8, #fb923c)",
142
+ "var(--glyph-palette-color-9, #818cf8)",
143
+ "var(--glyph-palette-color-10, #38bdf8)"
142
144
  ];
143
145
  function getNumericValue(d, key) {
144
146
  const v = d[key];
@@ -160,7 +162,7 @@ function renderAxes(g, xScale, yScale, xAxisConfig, yAxisConfig, innerWidth, inn
160
162
  d32__namespace.axisBottom(xScale)
161
163
  );
162
164
  }
163
- xAxisG.selectAll("text, line, path").attr("fill", "var(--glyph-text, #1a2035)").attr("stroke", "var(--glyph-grid, #1a2035)");
165
+ xAxisG.selectAll("text, line, path").attr("fill", "var(--glyph-text, #1a2035)").attr("stroke", "var(--glyph-grid, var(--glyph-border, #d0d8e4))");
164
166
  if (xAxisConfig?.label) {
165
167
  g.append("text").attr("class", "x-label").attr("x", innerWidth / 2).attr("y", innerHeight + MARGIN.bottom - 6).attr("text-anchor", "middle").attr("fill", "var(--glyph-text, #1a2035)").attr("font-size", "12px").text(inlineToText(xAxisConfig.label));
166
168
  }
@@ -168,7 +170,7 @@ function renderAxes(g, xScale, yScale, xAxisConfig, yAxisConfig, innerWidth, inn
168
170
  yAxisG.call(
169
171
  d32__namespace.axisLeft(yScale)
170
172
  );
171
- yAxisG.selectAll("text, line, path").attr("fill", "var(--glyph-text, #1a2035)").attr("stroke", "var(--glyph-grid, #1a2035)");
173
+ yAxisG.selectAll("text, line, path").attr("fill", "var(--glyph-text, #1a2035)").attr("stroke", "var(--glyph-grid, var(--glyph-border, #d0d8e4))");
172
174
  if (yAxisConfig?.label) {
173
175
  g.append("text").attr("class", "y-label").attr("transform", "rotate(-90)").attr("x", -innerHeight / 2).attr("y", -MARGIN.left + 14).attr("text-anchor", "middle").attr("fill", "var(--glyph-text, #1a2035)").attr("font-size", "12px").text(inlineToText(yAxisConfig.label));
174
176
  }
@@ -207,7 +209,7 @@ function renderOHLCSeries(g, seriesData, xScale, xScalePoint, yScale, innerWidth
207
209
  const low = getNumericValue(d, "low");
208
210
  const cx = xScalePoint(d);
209
211
  const isBullish = close >= open;
210
- const candleColor = isBullish ? "var(--glyph-chart-bullish, #22c55e)" : "var(--glyph-chart-bearish, #f87171)";
212
+ const candleColor = isBullish ? "var(--glyph-chart-bullish, var(--glyph-color-success, #22c55e))" : "var(--glyph-chart-bearish, var(--glyph-color-error, #f87171))";
211
213
  g.append("line").attr("x1", cx).attr("x2", cx).attr("y1", yScale(high)).attr("y2", yScale(low)).attr("stroke", candleColor).attr("stroke-width", 1);
212
214
  const bodyTop = yScale(Math.max(open, close));
213
215
  const bodyBottom = yScale(Math.min(open, close));
@@ -614,11 +616,11 @@ var CONNECTOR_WIDTH = "2px";
614
616
  function colorForStatus(status) {
615
617
  switch (status) {
616
618
  case "pending":
617
- return "var(--glyph-steps-pending-color, #7a8599)";
619
+ return "var(--glyph-steps-pending-color, var(--glyph-text-muted, #6b7a94))";
618
620
  case "active":
619
- return "var(--glyph-steps-active-color, #00d4aa)";
621
+ return "var(--glyph-steps-active-color, var(--glyph-accent, #00d4aa))";
620
622
  case "completed":
621
- return "var(--glyph-steps-completed-color, #22c55e)";
623
+ return "var(--glyph-steps-completed-color, var(--glyph-color-success, #22c55e))";
622
624
  }
623
625
  }
624
626
  function itemStyle(isLast) {
@@ -637,7 +639,7 @@ function connectorStyle(status) {
637
639
  top: INDICATOR_SIZE,
638
640
  bottom: 0,
639
641
  width: CONNECTOR_WIDTH,
640
- backgroundColor: status === "completed" ? "var(--glyph-steps-completed-color, #22c55e)" : "var(--glyph-steps-connector-color, #d0d8e4)"
642
+ backgroundColor: status === "completed" ? "var(--glyph-steps-completed-color, var(--glyph-color-success, #22c55e))" : "var(--glyph-steps-connector-color, var(--glyph-border, #d0d8e4))"
641
643
  };
642
644
  }
643
645
  function indicatorStyle(status) {
@@ -667,14 +669,14 @@ var bodyStyle = {
667
669
  function titleStyle(status) {
668
670
  return {
669
671
  fontWeight: 600,
670
- color: status === "pending" ? "var(--glyph-steps-pending-color, #7a8599)" : "var(--glyph-text, #1a2035)"
672
+ color: status === "pending" ? "var(--glyph-steps-pending-color, var(--glyph-text-muted, #6b7a94))" : "var(--glyph-text, #1a2035)"
671
673
  };
672
674
  }
673
675
  function contentStyle(status) {
674
676
  return {
675
677
  marginTop: "var(--glyph-spacing-xs, 0.25rem)",
676
678
  fontSize: "0.9em",
677
- color: status === "pending" ? "var(--glyph-steps-pending-color, #7a8599)" : "var(--glyph-text-muted, #7a8599)"
679
+ color: status === "pending" ? "var(--glyph-steps-pending-color, var(--glyph-text-muted, #6b7a94))" : "var(--glyph-text-muted, #7a8599)"
678
680
  };
679
681
  }
680
682
 
@@ -723,9 +725,9 @@ function TableAggregationFooter({
723
725
  {
724
726
  style: {
725
727
  padding: "var(--glyph-table-cell-padding, 8px 12px)",
726
- borderTop: "2px solid var(--glyph-table-border, #d0d8e4)",
728
+ borderTop: "2px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
727
729
  fontWeight: "bold",
728
- background: "var(--glyph-table-footer-bg, #e8ecf3)",
730
+ background: "var(--glyph-table-footer-bg, var(--glyph-surface, #e8ecf3))",
729
731
  color: "var(--glyph-table-footer-color, inherit)"
730
732
  },
731
733
  children: agg ? computeAggregation(rows, col.key, agg.fn) : ""
@@ -759,8 +761,8 @@ function TableHead({
759
761
  style: {
760
762
  padding: "var(--glyph-table-cell-padding, 8px 12px)",
761
763
  textAlign: "left",
762
- borderBottom: "2px solid var(--glyph-table-border, #d0d8e4)",
763
- background: "var(--glyph-table-header-bg, #e8ecf3)",
764
+ borderBottom: "2px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
765
+ background: "var(--glyph-table-header-bg, var(--glyph-surface, #e8ecf3))",
764
766
  color: "var(--glyph-table-header-color, inherit)",
765
767
  cursor: col.sortable ? "pointer" : "default",
766
768
  userSelect: col.sortable ? "none" : void 0,
@@ -790,7 +792,7 @@ function TableHead({
790
792
  style: {
791
793
  width: "100%",
792
794
  padding: "4px 6px",
793
- border: "1px solid var(--glyph-table-border, #d0d8e4)",
795
+ border: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
794
796
  borderRadius: "3px",
795
797
  fontSize: "inherit",
796
798
  boxSizing: "border-box",
@@ -934,7 +936,7 @@ function Table({
934
936
  style: {
935
937
  width: "100%",
936
938
  borderCollapse: "collapse",
937
- border: "1px solid var(--glyph-table-border, #d0d8e4)",
939
+ border: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
938
940
  fontFamily: "var(--glyph-font-body, inherit)",
939
941
  fontSize: isCompact ? "0.8125rem" : "var(--glyph-table-font-size, 0.9rem)"
940
942
  },
@@ -955,14 +957,14 @@ function Table({
955
957
  "tr",
956
958
  {
957
959
  style: {
958
- background: rowIdx % 2 === 0 ? "var(--glyph-table-row-bg, transparent)" : "var(--glyph-table-row-alt-bg, #f4f6fa)"
960
+ background: rowIdx % 2 === 0 ? "var(--glyph-table-row-bg, transparent)" : "var(--glyph-table-row-alt-bg, var(--glyph-surface-raised, #f4f6fa))"
959
961
  },
960
962
  children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
961
963
  "td",
962
964
  {
963
965
  style: {
964
966
  padding: "var(--glyph-table-cell-padding, 8px 12px)",
965
- borderBottom: "1px solid var(--glyph-table-border, #d0d8e4)",
967
+ borderBottom: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
966
968
  color: "var(--glyph-table-cell-color, inherit)"
967
969
  },
968
970
  children: String(row[col.key] ?? "")
@@ -1139,14 +1141,14 @@ var MARKER_RADIUS = 8;
1139
1141
  var LINE_THICKNESS = 2;
1140
1142
  var EVENT_SPACING_MIN = 80;
1141
1143
  var TYPE_PALETTE = [
1142
- "var(--glyph-timeline-color-1, #00d4aa)",
1143
- "var(--glyph-timeline-color-2, #b44dff)",
1144
- "var(--glyph-timeline-color-3, #22c55e)",
1145
- "var(--glyph-timeline-color-4, #e040fb)",
1146
- "var(--glyph-timeline-color-5, #00e5ff)",
1147
- "var(--glyph-timeline-color-6, #84cc16)",
1148
- "var(--glyph-timeline-color-7, #f472b6)",
1149
- "var(--glyph-timeline-color-8, #fb923c)"
1144
+ "var(--glyph-timeline-color-1, var(--glyph-palette-color-1, #00d4aa))",
1145
+ "var(--glyph-timeline-color-2, var(--glyph-palette-color-2, #b44dff))",
1146
+ "var(--glyph-timeline-color-3, var(--glyph-palette-color-3, #22c55e))",
1147
+ "var(--glyph-timeline-color-4, var(--glyph-palette-color-4, #e040fb))",
1148
+ "var(--glyph-timeline-color-5, var(--glyph-palette-color-5, #00e5ff))",
1149
+ "var(--glyph-timeline-color-6, var(--glyph-palette-color-6, #84cc16))",
1150
+ "var(--glyph-timeline-color-7, var(--glyph-palette-color-7, #f472b6))",
1151
+ "var(--glyph-timeline-color-8, var(--glyph-palette-color-8, #fb923c))"
1150
1152
  ];
1151
1153
  function parseDate(raw) {
1152
1154
  const d = new Date(raw);
@@ -1201,7 +1203,7 @@ function Timeline({ data }) {
1201
1203
  top: 0,
1202
1204
  bottom: 0,
1203
1205
  width: LINE_THICKNESS,
1204
- backgroundColor: "var(--glyph-timeline-line, #d0d8e4)",
1206
+ backgroundColor: "var(--glyph-timeline-line, var(--glyph-border, #d0d8e4))",
1205
1207
  transform: "translateX(-50%)"
1206
1208
  } : {
1207
1209
  position: "absolute",
@@ -1209,7 +1211,7 @@ function Timeline({ data }) {
1209
1211
  left: 0,
1210
1212
  right: 0,
1211
1213
  height: LINE_THICKNESS,
1212
- backgroundColor: "var(--glyph-timeline-line, #d0d8e4)",
1214
+ backgroundColor: "var(--glyph-timeline-line, var(--glyph-border, #d0d8e4))",
1213
1215
  transform: "translateY(-50%)"
1214
1216
  };
1215
1217
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1246,7 +1248,7 @@ function Timeline({ data }) {
1246
1248
  {
1247
1249
  style: {
1248
1250
  fontSize: "var(--glyph-timeline-date-size, 0.75rem)",
1249
- color: "var(--glyph-timeline-date-color, #7a8599)",
1251
+ color: "var(--glyph-timeline-date-color, var(--glyph-text-muted, #6b7a94))",
1250
1252
  fontWeight: 600
1251
1253
  },
1252
1254
  children: formatDate(pe.event.date)
@@ -1268,7 +1270,7 @@ function Timeline({ data }) {
1268
1270
  {
1269
1271
  style: {
1270
1272
  fontSize: "var(--glyph-timeline-desc-size, 0.8rem)",
1271
- color: "var(--glyph-timeline-desc-color, #7a8599)",
1273
+ color: "var(--glyph-timeline-desc-color, var(--glyph-text-muted, #6b7a94))",
1272
1274
  marginTop: 2
1273
1275
  },
1274
1276
  children: /* @__PURE__ */ jsxRuntime.jsx(runtime.RichText, { content: pe.event.description })
@@ -1342,13 +1344,13 @@ function connectorStyle2(_pe, isVertical) {
1342
1344
  return {
1343
1345
  flex: "0 0 20px",
1344
1346
  height: LINE_THICKNESS,
1345
- backgroundColor: "var(--glyph-timeline-line, #d0d8e4)"
1347
+ backgroundColor: "var(--glyph-timeline-line, var(--glyph-border, #d0d8e4))"
1346
1348
  };
1347
1349
  }
1348
1350
  return {
1349
1351
  flex: "0 0 20px",
1350
1352
  width: LINE_THICKNESS,
1351
- backgroundColor: "var(--glyph-timeline-line, #d0d8e4)"
1353
+ backgroundColor: "var(--glyph-timeline-line, var(--glyph-border, #d0d8e4))"
1352
1354
  };
1353
1355
  }
1354
1356
  function labelStyle(pe, isVertical) {
@@ -1822,7 +1824,7 @@ function InteractionOverlay({
1822
1824
  width,
1823
1825
  height,
1824
1826
  pointerEvents: "none",
1825
- border: "2px solid var(--glyph-interaction-active-border, #0a9d7c)",
1827
+ border: "2px solid var(--glyph-interaction-active-border, var(--glyph-accent, #0a9d7c))",
1826
1828
  borderRadius: "4px"
1827
1829
  },
1828
1830
  "aria-hidden": "true"
@@ -1847,8 +1849,8 @@ var TOOLTIP_STYLE = {
1847
1849
  bottom: "12px",
1848
1850
  right: "12px",
1849
1851
  padding: "6px 10px",
1850
- backgroundColor: "var(--glyph-interaction-tooltip-bg, rgba(26, 32, 53, 0.9))",
1851
- color: "var(--glyph-interaction-tooltip-text, #f4f6fa)",
1852
+ backgroundColor: "var(--glyph-interaction-tooltip-bg, var(--glyph-tooltip-bg, rgba(26, 32, 53, 0.9)))",
1853
+ color: "var(--glyph-interaction-tooltip-text, var(--glyph-tooltip-text, #f4f6fa))",
1852
1854
  borderRadius: "4px",
1853
1855
  fontSize: "12px",
1854
1856
  fontFamily: "Inter, system-ui, sans-serif",
@@ -1868,8 +1870,8 @@ var ACTIVATION_OVERLAY_STYLE = {
1868
1870
  };
1869
1871
  var ACTIVATION_TEXT_STYLE = {
1870
1872
  padding: "12px 20px",
1871
- backgroundColor: "var(--glyph-interaction-tooltip-bg, rgba(26, 32, 53, 0.9))",
1872
- color: "var(--glyph-interaction-tooltip-text, #f4f6fa)",
1873
+ backgroundColor: "var(--glyph-interaction-tooltip-bg, var(--glyph-tooltip-bg, rgba(26, 32, 53, 0.9)))",
1874
+ color: "var(--glyph-interaction-tooltip-text, var(--glyph-tooltip-text, #f4f6fa))",
1873
1875
  borderRadius: "6px",
1874
1876
  fontSize: "14px",
1875
1877
  fontFamily: "Inter, system-ui, sans-serif",
@@ -1952,28 +1954,18 @@ var BUTTON_STYLE = {
1952
1954
  boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
1953
1955
  };
1954
1956
  var GROUP_PALETTE = [
1955
- "#00d4aa",
1956
- // cyan-green
1957
- "#b44dff",
1958
- // purple
1959
- "#22c55e",
1960
- // green
1961
- "#e040fb",
1962
- // magenta
1963
- "#00e5ff",
1964
- // teal
1965
- "#84cc16",
1966
- // lime
1967
- "#f472b6",
1968
- // rose
1969
- "#fb923c",
1970
- // orange
1971
- "#818cf8",
1972
- // indigo
1973
- "#38bdf8"
1974
- // sky
1957
+ "var(--glyph-palette-color-1, #00d4aa)",
1958
+ "var(--glyph-palette-color-2, #b44dff)",
1959
+ "var(--glyph-palette-color-3, #22c55e)",
1960
+ "var(--glyph-palette-color-4, #e040fb)",
1961
+ "var(--glyph-palette-color-5, #00e5ff)",
1962
+ "var(--glyph-palette-color-6, #84cc16)",
1963
+ "var(--glyph-palette-color-7, #f472b6)",
1964
+ "var(--glyph-palette-color-8, #fb923c)",
1965
+ "var(--glyph-palette-color-9, #818cf8)",
1966
+ "var(--glyph-palette-color-10, #38bdf8)"
1975
1967
  ];
1976
- var DEFAULT_NODE_COLOR = "#00d4aa";
1968
+ var DEFAULT_NODE_COLOR = "var(--glyph-palette-color-1, #00d4aa)";
1977
1969
  function getGroupColor(group, groupIndex) {
1978
1970
  if (!group) return GROUP_PALETTE[0];
1979
1971
  let idx = groupIndex.get(group);
@@ -2004,7 +1996,7 @@ function renderGraph(svgElement, layout, groupIndex, outgoingRefs, onNavigate, z
2004
1996
  const height = Math.max(layout.height, 200);
2005
1997
  svg.attr("viewBox", `0 0 ${width} ${height}`);
2006
1998
  const defs = svg.append("defs");
2007
- defs.append("marker").attr("id", ARROW_MARKER_ID).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 Z").attr("fill", "var(--glyph-edge-color, #6b7a94)");
1999
+ defs.append("marker").attr("id", ARROW_MARKER_ID).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 Z").attr("fill", "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))");
2008
2000
  const container = svgElement.parentElement ?? svgElement;
2009
2001
  const nodeRadius = getThemeVar(container, "--glyph-node-radius", "3");
2010
2002
  const nodeStrokeWidth = getThemeVar(container, "--glyph-node-stroke-width", "1.5");
@@ -2023,11 +2015,14 @@ function renderGraph(svgElement, layout, groupIndex, outgoingRefs, onNavigate, z
2023
2015
  const edgeGroup = root.append("g").attr("class", "glyph-graph-edges");
2024
2016
  for (const edge of layout.edges) {
2025
2017
  const edgeG = edgeGroup.append("g").attr("class", "glyph-graph-edge");
2026
- edgeG.append("path").attr("d", lineGen(edge.points) ?? "").attr("fill", "none").attr("stroke", edge.style?.["stroke"] ?? "var(--glyph-edge-color, #6b7a94)").attr("stroke-width", edge.style?.["stroke-width"] ?? nodeStrokeWidth).attr("marker-end", `url(#${ARROW_MARKER_ID})`).attr("stroke-dasharray", edge.type === "dashed" ? "5,5" : null);
2018
+ edgeG.append("path").attr("d", lineGen(edge.points) ?? "").attr("fill", "none").attr(
2019
+ "stroke",
2020
+ edge.style?.["stroke"] ?? "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))"
2021
+ ).attr("stroke-width", edge.style?.["stroke-width"] ?? nodeStrokeWidth).attr("marker-end", `url(#${ARROW_MARKER_ID})`).attr("stroke-dasharray", edge.type === "dashed" ? "5,5" : null);
2027
2022
  if (edge.label) {
2028
2023
  const mid = edge.points[Math.floor(edge.points.length / 2)];
2029
2024
  if (mid) {
2030
- edgeG.append("text").attr("x", mid.x).attr("y", mid.y - 8).attr("text-anchor", "middle").attr("font-size", "11px").attr("fill", "var(--glyph-edge-color, #6b7a94)").text(inlineToText(edge.label));
2025
+ edgeG.append("text").attr("x", mid.x).attr("y", mid.y - 8).attr("text-anchor", "middle").attr("font-size", "11px").attr("fill", "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))").text(inlineToText(edge.label));
2031
2026
  }
2032
2027
  }
2033
2028
  }
@@ -2038,7 +2033,7 @@ function renderGraph(svgElement, layout, groupIndex, outgoingRefs, onNavigate, z
2038
2033
  const isNavigable = navigableNodes.has(node.id);
2039
2034
  const nodeX = node.x - node.width / 2;
2040
2035
  const nodeY = node.y - node.height / 2;
2041
- const defaultStroke = d32__namespace.color(color3)?.darker(0.5)?.toString() ?? "var(--glyph-edge-color, #6b7a94)";
2036
+ const defaultStroke = d32__namespace.color(color3)?.darker(0.5)?.toString() ?? "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))";
2042
2037
  if (node.type === "circle") {
2043
2038
  nodeG.append("circle").attr("cx", node.x).attr("cy", node.y).attr("r", Math.min(node.width, node.height) / 2).attr("fill", node.style?.["fill"] ?? color3).attr("stroke", node.style?.["stroke"] ?? defaultStroke).attr("stroke-width", node.style?.["stroke-width"] ?? nodeStrokeWidth).attr("opacity", nodeFillOpacity);
2044
2039
  } else {
@@ -2269,19 +2264,19 @@ function drawCrowsFoot(g, x, y, angle, symbol) {
2269
2264
  if (symbol === "N" || symbol === "M") {
2270
2265
  const cx = x + Math.cos(angle) * len;
2271
2266
  const cy = y + Math.sin(angle) * len;
2272
- g.append("line").attr("x1", x).attr("y1", y).attr("x2", cx).attr("y2", cy).attr("stroke", "var(--glyph-relation-line, #6b7a94)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2267
+ g.append("line").attr("x1", x).attr("y1", y).attr("x2", cx).attr("y2", cy).attr("stroke", "var(--glyph-relation-line, var(--glyph-border, #d0d8e4))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2273
2268
  const lx = x + Math.cos(angle + spread) * len;
2274
2269
  const ly = y + Math.sin(angle + spread) * len;
2275
- g.append("line").attr("x1", x).attr("y1", y).attr("x2", lx).attr("y2", ly).attr("stroke", "var(--glyph-relation-line, #6b7a94)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2270
+ g.append("line").attr("x1", x).attr("y1", y).attr("x2", lx).attr("y2", ly).attr("stroke", "var(--glyph-relation-line, var(--glyph-border, #d0d8e4))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2276
2271
  const rx = x + Math.cos(angle - spread) * len;
2277
2272
  const ry = y + Math.sin(angle - spread) * len;
2278
- g.append("line").attr("x1", x).attr("y1", y).attr("x2", rx).attr("y2", ry).attr("stroke", "var(--glyph-relation-line, #6b7a94)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2273
+ g.append("line").attr("x1", x).attr("y1", y).attr("x2", rx).attr("y2", ry).attr("stroke", "var(--glyph-relation-line, var(--glyph-border, #d0d8e4))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2279
2274
  } else {
2280
2275
  const perpAngle = angle + Math.PI / 2;
2281
2276
  const halfLen = 8;
2282
2277
  const tx = x + Math.cos(angle) * 6;
2283
2278
  const ty = y + Math.sin(angle) * 6;
2284
- g.append("line").attr("x1", tx - Math.cos(perpAngle) * halfLen).attr("y1", ty - Math.sin(perpAngle) * halfLen).attr("x2", tx + Math.cos(perpAngle) * halfLen).attr("y2", ty + Math.sin(perpAngle) * halfLen).attr("stroke", "var(--glyph-relation-line, #6b7a94)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2279
+ g.append("line").attr("x1", tx - Math.cos(perpAngle) * halfLen).attr("y1", ty - Math.sin(perpAngle) * halfLen).attr("x2", tx + Math.cos(perpAngle) * halfLen).attr("y2", ty + Math.sin(perpAngle) * halfLen).attr("stroke", "var(--glyph-relation-line, var(--glyph-border, #d0d8e4))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2285
2280
  }
2286
2281
  }
2287
2282
  function renderRelation(svgElement, layout, zoomBehavior) {
@@ -2300,7 +2295,7 @@ function renderRelation(svgElement, layout, zoomBehavior) {
2300
2295
  const edgeGroup = root.append("g").attr("class", "glyph-relation-edges");
2301
2296
  for (const rel of layout.relationships) {
2302
2297
  const edgeG = edgeGroup.append("g").attr("class", "glyph-relation-edge");
2303
- edgeG.append("path").attr("d", lineGen(rel.points) ?? "").attr("fill", "none").attr("stroke", "var(--glyph-relation-line, #6b7a94)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2298
+ edgeG.append("path").attr("d", lineGen(rel.points) ?? "").attr("fill", "none").attr("stroke", "var(--glyph-relation-line, var(--glyph-border, #d0d8e4))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2304
2299
  const { fromSymbol, toSymbol } = parseCardinality(rel.cardinality);
2305
2300
  const p0 = rel.points[0];
2306
2301
  const p1 = rel.points[1];
@@ -2317,7 +2312,7 @@ function renderRelation(svgElement, layout, zoomBehavior) {
2317
2312
  if (rel.label) {
2318
2313
  const mid = rel.points[Math.floor(rel.points.length / 2)];
2319
2314
  if (mid) {
2320
- edgeG.append("text").attr("x", mid.x).attr("y", mid.y - 10).attr("text-anchor", "middle").attr("font-size", "11px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-label, #6b7a94)").text(inlineToText(rel.label));
2315
+ edgeG.append("text").attr("x", mid.x).attr("y", mid.y - 10).attr("text-anchor", "middle").attr("font-size", "11px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-label, var(--glyph-text-muted, #6b7a94))").text(inlineToText(rel.label));
2321
2316
  }
2322
2317
  }
2323
2318
  const pFirst = rel.points[0];
@@ -2325,14 +2320,14 @@ function renderRelation(svgElement, layout, zoomBehavior) {
2325
2320
  if (pFirst && pSecond) {
2326
2321
  const fromLabelX = pFirst.x + (pSecond.x - pFirst.x) * 0.15;
2327
2322
  const fromLabelY = pFirst.y + (pSecond.y - pFirst.y) * 0.15 - 10;
2328
- edgeG.append("text").attr("x", fromLabelX).attr("y", fromLabelY).attr("text-anchor", "middle").attr("font-size", "10px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-cardinality, #6b7a94)").text(fromSymbol);
2323
+ edgeG.append("text").attr("x", fromLabelX).attr("y", fromLabelY).attr("text-anchor", "middle").attr("font-size", "10px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-cardinality, var(--glyph-text-muted, #6b7a94))").text(fromSymbol);
2329
2324
  }
2330
2325
  const pEnd = rel.points[rel.points.length - 1];
2331
2326
  const pBeforeEnd = rel.points[rel.points.length - 2];
2332
2327
  if (pEnd && pBeforeEnd) {
2333
2328
  const toLabelX = pEnd.x + (pBeforeEnd.x - pEnd.x) * 0.15;
2334
2329
  const toLabelY = pEnd.y + (pBeforeEnd.y - pEnd.y) * 0.15 - 10;
2335
- edgeG.append("text").attr("x", toLabelX).attr("y", toLabelY).attr("text-anchor", "middle").attr("font-size", "10px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-cardinality, #6b7a94)").text(toSymbol);
2330
+ edgeG.append("text").attr("x", toLabelX).attr("y", toLabelY).attr("text-anchor", "middle").attr("font-size", "10px").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-cardinality, var(--glyph-text-muted, #6b7a94))").text(toSymbol);
2336
2331
  }
2337
2332
  }
2338
2333
  const entityGroup = root.append("g").attr("class", "glyph-relation-entities");
@@ -2341,24 +2336,24 @@ function renderRelation(svgElement, layout, zoomBehavior) {
2341
2336
  const x = entity.x - entity.width / 2;
2342
2337
  const y = entity.y - entity.height / 2;
2343
2338
  const attrs = entity.attributes ?? [];
2344
- entityG.append("rect").attr("x", x).attr("y", y).attr("width", entity.width).attr("height", entity.height).attr("rx", 4).attr("ry", 4).attr("fill", "var(--glyph-relation-entity-bg, #f4f6fa)").attr("stroke", "var(--glyph-relation-entity-border, #a8b5c8)").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2339
+ entityG.append("rect").attr("x", x).attr("y", y).attr("width", entity.width).attr("height", entity.height).attr("rx", 4).attr("ry", 4).attr("fill", "var(--glyph-relation-entity-bg, var(--glyph-surface-raised, #f4f6fa))").attr("stroke", "var(--glyph-relation-entity-border, var(--glyph-border-strong, #a8b5c8))").attr("stroke-width", "var(--glyph-node-stroke-width, 1.5)");
2345
2340
  const headerHeight = ENTITY_HEADER_HEIGHT;
2346
- entityG.append("rect").attr("x", x).attr("y", y).attr("width", entity.width).attr("height", headerHeight).attr("rx", 4).attr("ry", 4).attr("fill", "var(--glyph-relation-header-bg, #00d4aa)");
2347
- entityG.append("rect").attr("x", x).attr("y", y + headerHeight - 4).attr("width", entity.width).attr("height", 4).attr("fill", "var(--glyph-relation-header-bg, #00d4aa)");
2348
- entityG.append("text").attr("x", entity.x).attr("y", y + headerHeight / 2).attr("dy", "0.35em").attr("text-anchor", "middle").attr("font-size", "13px").attr("font-weight", "bold").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-header-text, #fff)").text(inlineToText(entity.label));
2341
+ entityG.append("rect").attr("x", x).attr("y", y).attr("width", entity.width).attr("height", headerHeight).attr("rx", 4).attr("ry", 4).attr("fill", "var(--glyph-relation-header-bg, var(--glyph-accent, #0a9d7c))");
2342
+ entityG.append("rect").attr("x", x).attr("y", y + headerHeight - 4).attr("width", entity.width).attr("height", 4).attr("fill", "var(--glyph-relation-header-bg, var(--glyph-accent, #0a9d7c))");
2343
+ entityG.append("text").attr("x", entity.x).attr("y", y + headerHeight / 2).attr("dy", "0.35em").attr("text-anchor", "middle").attr("font-size", "13px").attr("font-weight", "bold").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-relation-header-text, var(--glyph-text-on-accent, #fff))").text(inlineToText(entity.label));
2349
2344
  if (attrs.length > 0) {
2350
- entityG.append("line").attr("x1", x).attr("y1", y + headerHeight).attr("x2", x + entity.width).attr("y2", y + headerHeight).attr("stroke", "var(--glyph-relation-entity-border, #a8b5c8)").attr("stroke-width", 1);
2345
+ entityG.append("line").attr("x1", x).attr("y1", y + headerHeight).attr("x2", x + entity.width).attr("y2", y + headerHeight).attr("stroke", "var(--glyph-relation-entity-border, var(--glyph-border-strong, #a8b5c8))").attr("stroke-width", 1);
2351
2346
  }
2352
2347
  for (let i = 0; i < attrs.length; i++) {
2353
2348
  const attr = attrs[i];
2354
2349
  if (!attr) continue;
2355
2350
  const attrY = y + headerHeight + i * ENTITY_ATTR_HEIGHT + ENTITY_ATTR_HEIGHT / 2 + 4;
2356
- const textEl = entityG.append("text").attr("x", x + ENTITY_PADDING).attr("y", attrY).attr("dy", "0.35em").attr("font-size", "12px").attr("font-family", "system-ui, -apple-system, monospace").attr("fill", "var(--glyph-relation-attr-text, #1a2035)");
2351
+ const textEl = entityG.append("text").attr("x", x + ENTITY_PADDING).attr("y", attrY).attr("dy", "0.35em").attr("font-size", "12px").attr("font-family", "system-ui, -apple-system, monospace").attr("fill", "var(--glyph-relation-attr-text, var(--glyph-text, #1a2035))");
2357
2352
  const nameSpan = textEl.append("tspan").text(inlineToText(attr.name));
2358
2353
  if (attr.primaryKey) {
2359
2354
  nameSpan.attr("font-weight", "bold").attr("text-decoration", "underline");
2360
2355
  }
2361
- textEl.append("tspan").attr("fill", "var(--glyph-relation-attr-type, #6b7a94)").text(`: ${attr.type}`);
2356
+ textEl.append("tspan").attr("fill", "var(--glyph-relation-attr-type, var(--glyph-text-muted, #6b7a94))").text(`: ${attr.type}`);
2362
2357
  }
2363
2358
  }
2364
2359
  }
@@ -2440,6 +2435,11 @@ var relationDefinition = {
2440
2435
  schema: schemas.relationSchema,
2441
2436
  render: Relation
2442
2437
  };
2438
+ var KPI_COLOR_MAP = {
2439
+ positive: "var(--glyph-kpi-positive, var(--glyph-color-success, #16a34a))",
2440
+ negative: "var(--glyph-kpi-negative, var(--glyph-color-error, #dc2626))",
2441
+ neutral: "var(--glyph-kpi-neutral, var(--glyph-text-muted, #6b7a94))"
2442
+ };
2443
2443
  var TREND_SYMBOLS = {
2444
2444
  up: "\u25B2",
2445
2445
  down: "\u25BC",
@@ -2522,7 +2522,7 @@ function Kpi({ data, block, container }) {
2522
2522
  const deltaStyle = {
2523
2523
  fontSize: "0.875rem",
2524
2524
  marginTop: "var(--glyph-spacing-xs, 0.25rem)",
2525
- color: `var(--glyph-kpi-${sentiment}, inherit)`
2525
+ color: KPI_COLOR_MAP[sentiment]
2526
2526
  };
2527
2527
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "group", "aria-label": buildAriaLabel(metric), style: cardStyle2, children: [
2528
2528
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle4, children: /* @__PURE__ */ jsxRuntime.jsx(runtime.RichText, { content: metric.label }) }),
@@ -2673,7 +2673,10 @@ function renderValue(value) {
2673
2673
  "span",
2674
2674
  {
2675
2675
  "aria-label": "Supported",
2676
- style: { color: "var(--glyph-comparison-yes, #16a34a)", fontSize: "1.25rem" },
2676
+ style: {
2677
+ color: "var(--glyph-comparison-yes, var(--glyph-color-success, #16a34a))",
2678
+ fontSize: "1.25rem"
2679
+ },
2677
2680
  children: "\u2713"
2678
2681
  }
2679
2682
  );
@@ -2682,7 +2685,10 @@ function renderValue(value) {
2682
2685
  "span",
2683
2686
  {
2684
2687
  "aria-label": "Not supported",
2685
- style: { color: "var(--glyph-comparison-no, #dc2626)", fontSize: "1.25rem" },
2688
+ style: {
2689
+ color: "var(--glyph-comparison-no, var(--glyph-color-error, #dc2626))",
2690
+ fontSize: "1.25rem"
2691
+ },
2686
2692
  children: "\u2717"
2687
2693
  }
2688
2694
  );
@@ -2691,7 +2697,10 @@ function renderValue(value) {
2691
2697
  "span",
2692
2698
  {
2693
2699
  "aria-label": "Partially supported",
2694
- style: { color: "var(--glyph-comparison-partial, #d97706)", fontSize: "1.25rem" },
2700
+ style: {
2701
+ color: "var(--glyph-comparison-partial, var(--glyph-color-warning, #d97706))",
2702
+ fontSize: "1.25rem"
2703
+ },
2695
2704
  children: "\u25D0"
2696
2705
  }
2697
2706
  );
@@ -2716,7 +2725,7 @@ function Comparison({
2716
2725
  const tableStyle2 = {
2717
2726
  width: "100%",
2718
2727
  borderCollapse: "collapse",
2719
- border: "1px solid var(--glyph-table-border, #d0d8e4)",
2728
+ border: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
2720
2729
  borderRadius: "var(--glyph-radius-md, 0.5rem)",
2721
2730
  overflow: "hidden",
2722
2731
  fontSize: isCompact ? "0.8125rem" : "0.875rem"
@@ -2725,8 +2734,8 @@ function Comparison({
2725
2734
  padding: cellPadding,
2726
2735
  textAlign: "center",
2727
2736
  fontWeight: 600,
2728
- background: "var(--glyph-table-header-bg, #e8ecf3)",
2729
- borderBottom: "2px solid var(--glyph-table-border, #d0d8e4)",
2737
+ background: "var(--glyph-table-header-bg, var(--glyph-surface, #e8ecf3))",
2738
+ borderBottom: "2px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
2730
2739
  color: "var(--glyph-heading, #0a0e1a)"
2731
2740
  };
2732
2741
  const featureThStyle = {
@@ -2737,14 +2746,14 @@ function Comparison({
2737
2746
  padding: cellPadding,
2738
2747
  textAlign: "left",
2739
2748
  fontWeight: 600,
2740
- borderBottom: "1px solid var(--glyph-table-border, #d0d8e4)",
2749
+ borderBottom: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
2741
2750
  fontSize: "0.8125rem"
2742
2751
  };
2743
2752
  const cellStyle2 = (rowIndex) => ({
2744
2753
  padding: cellPadding,
2745
2754
  textAlign: "center",
2746
- borderBottom: "1px solid var(--glyph-table-border, #d0d8e4)",
2747
- background: rowIndex % 2 === 1 ? "var(--glyph-table-row-alt-bg, transparent)" : "transparent"
2755
+ borderBottom: "1px solid var(--glyph-table-border, var(--glyph-border, #d0d8e4))",
2756
+ background: rowIndex % 2 === 1 ? "var(--glyph-table-row-alt-bg, var(--glyph-surface-raised, transparent))" : "transparent"
2748
2757
  });
2749
2758
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { id: baseId, role: "region", "aria-label": title ?? "Comparison", style: containerStyle11, children: [
2750
2759
  title && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2807,7 +2816,7 @@ function Comparison({
2807
2816
  scope: "row",
2808
2817
  style: {
2809
2818
  ...rowThStyle,
2810
- background: rowIndex % 2 === 1 ? "var(--glyph-table-row-alt-bg, transparent)" : "transparent"
2819
+ background: rowIndex % 2 === 1 ? "var(--glyph-table-row-alt-bg, var(--glyph-surface-raised, transparent))" : "transparent"
2811
2820
  },
2812
2821
  children: feature.name
2813
2822
  }
@@ -2946,8 +2955,9 @@ function CodeDiff({ data, block }) {
2946
2955
  return void 0;
2947
2956
  }
2948
2957
  function rowColor(kind) {
2949
- if (kind === "add") return "var(--glyph-codediff-add-color, inherit)";
2950
- if (kind === "del") return "var(--glyph-codediff-del-color, inherit)";
2958
+ if (kind === "add")
2959
+ return "var(--glyph-codediff-add-color, var(--glyph-color-success, #16a34a))";
2960
+ if (kind === "del") return "var(--glyph-codediff-del-color, var(--glyph-color-error, #dc2626))";
2951
2961
  return void 0;
2952
2962
  }
2953
2963
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { id: baseId, role: "region", "aria-label": summary, style: containerStyle11, children: [
@@ -4074,21 +4084,20 @@ function renderIcon(g, iconName, x, y, size = 20) {
4074
4084
 
4075
4085
  // src/architecture/render.ts
4076
4086
  var NODE_PALETTE = [
4077
- "#00d4aa",
4078
- "#b44dff",
4079
- "#22c55e",
4080
- "#e040fb",
4081
- "#00e5ff",
4082
- "#84cc16",
4083
- "#f472b6",
4084
- "#fb923c",
4085
- "#818cf8",
4086
- "#38bdf8"
4087
+ "var(--glyph-palette-color-1, #00d4aa)",
4088
+ "var(--glyph-palette-color-2, #b44dff)",
4089
+ "var(--glyph-palette-color-3, #22c55e)",
4090
+ "var(--glyph-palette-color-4, #e040fb)",
4091
+ "var(--glyph-palette-color-5, #00e5ff)",
4092
+ "var(--glyph-palette-color-6, #84cc16)",
4093
+ "var(--glyph-palette-color-7, #f472b6)",
4094
+ "var(--glyph-palette-color-8, #fb923c)",
4095
+ "var(--glyph-palette-color-9, #818cf8)",
4096
+ "var(--glyph-palette-color-10, #38bdf8)"
4087
4097
  ];
4088
4098
  function zoneBackground(depth) {
4089
4099
  const alphas = [0.06, 0.1, 0.14, 0.18];
4090
- const alpha = alphas[Math.min(depth, alphas.length - 1)] ?? 0.18;
4091
- return `rgba(0,212,170,${alpha})`;
4100
+ return alphas[Math.min(depth, alphas.length - 1)] ?? 0.18;
4092
4101
  }
4093
4102
  function getThemeVar3(container, varName, fallback) {
4094
4103
  return getComputedStyle(container).getPropertyValue(varName).trim() || fallback;
@@ -4101,7 +4110,7 @@ function renderArchitecture(svgElement, layout, rootRef, zoomBehavior) {
4101
4110
  const height = Math.max(layout.height, 200);
4102
4111
  svg.attr("viewBox", `0 0 ${width} ${height}`);
4103
4112
  const defs = svg.append("defs");
4104
- defs.append("marker").attr("id", ARROW_MARKER_ID3).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 Z").attr("fill", "var(--glyph-edge-color, #6b7a94)");
4113
+ defs.append("marker").attr("id", ARROW_MARKER_ID3).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 Z").attr("fill", "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))");
4105
4114
  const container = svgElement.parentElement ?? svgElement;
4106
4115
  const nodeRadius = getThemeVar3(container, "--glyph-node-radius", "3");
4107
4116
  const nodeStrokeWidth = getThemeVar3(container, "--glyph-node-stroke-width", "1.5");
@@ -4117,7 +4126,7 @@ function renderArchitecture(svgElement, layout, rootRef, zoomBehavior) {
4117
4126
  const zoneGroup = root.append("g").attr("class", "glyph-architecture-zones");
4118
4127
  for (const zone of sortedZones) {
4119
4128
  const zoneG = zoneGroup.append("g").attr("class", "glyph-architecture-zone");
4120
- zoneG.append("rect").attr("x", zone.x).attr("y", zone.y).attr("width", zone.width).attr("height", zone.height).attr("rx", nodeRadius).attr("ry", nodeRadius).attr("fill", zoneBackground(zone.depth)).attr("stroke", "var(--glyph-accent-muted, #1a4a3a)").attr("stroke-width", 1).attr("stroke-dasharray", "6,3");
4129
+ zoneG.append("rect").attr("x", zone.x).attr("y", zone.y).attr("width", zone.width).attr("height", zone.height).attr("rx", nodeRadius).attr("ry", nodeRadius).attr("fill", "var(--glyph-accent, #00d4aa)").attr("fill-opacity", zoneBackground(zone.depth)).attr("stroke", "var(--glyph-accent-muted, #1a4a3a)").attr("stroke-width", 1).attr("stroke-dasharray", "6,3");
4121
4130
  zoneG.append("text").attr("x", zone.x + 10).attr("y", zone.y + 18).attr("font-size", "12px").attr("font-weight", "bold").attr("font-family", "Inter, system-ui, sans-serif").attr("fill", "var(--glyph-text-muted, #7a8599)").text(zone.label);
4122
4131
  }
4123
4132
  const edgeGroup = root.append("g").attr("class", "glyph-architecture-edges");
@@ -4127,7 +4136,10 @@ function renderArchitecture(svgElement, layout, rootRef, zoomBehavior) {
4127
4136
  const lineGen = d32__namespace.line().x((d) => d.x).y((d) => d.y);
4128
4137
  const strokeWidth = edge.type === "data" ? 2.5 : 1.5;
4129
4138
  const dashArray = edge.type === "async" ? "5,5" : null;
4130
- edgeG.append("path").attr("d", lineGen(edge.points) ?? "").attr("fill", "none").attr("stroke", edge.style?.["stroke"] ?? "var(--glyph-edge-color, #6b7a94)").attr("stroke-width", edge.style?.["stroke-width"] ?? String(strokeWidth)).attr("marker-end", `url(#${ARROW_MARKER_ID3})`).attr("stroke-dasharray", dashArray);
4139
+ edgeG.append("path").attr("d", lineGen(edge.points) ?? "").attr("fill", "none").attr(
4140
+ "stroke",
4141
+ edge.style?.["stroke"] ?? "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))"
4142
+ ).attr("stroke-width", edge.style?.["stroke-width"] ?? String(strokeWidth)).attr("marker-end", `url(#${ARROW_MARKER_ID3})`).attr("stroke-dasharray", dashArray);
4131
4143
  if (edge.label && edge.points.length > 1) {
4132
4144
  let totalLen = 0;
4133
4145
  const segments = [];
@@ -4168,7 +4180,7 @@ function renderArchitecture(svgElement, layout, rootRef, zoomBehavior) {
4168
4180
  if (!node) continue;
4169
4181
  const nodeG = nodeGroup.append("g").attr("class", "glyph-architecture-node");
4170
4182
  const color3 = NODE_PALETTE[nodeIdx % NODE_PALETTE.length] ?? "#00d4aa";
4171
- const defaultStroke = d32__namespace.color(color3)?.darker(0.5)?.toString() ?? "var(--glyph-edge-color, #6b7a94)";
4183
+ const defaultStroke = d32__namespace.color(color3)?.darker(0.5)?.toString() ?? "var(--glyph-edge-color, var(--glyph-border, #d0d8e4))";
4172
4184
  nodeG.append("rect").attr("x", node.x).attr("y", node.y).attr("width", node.width).attr("height", node.height).attr("rx", nodeRadius).attr("ry", nodeRadius).attr("fill", color3).attr("stroke", defaultStroke).attr("stroke-width", nodeStrokeWidth).attr("opacity", nodeFillOpacity);
4173
4185
  if (node.icon) {
4174
4186
  renderIcon(nodeG, node.icon, node.x + node.width / 2, node.y + 20, 18);
@@ -4746,9 +4758,9 @@ function optionLabelStyle(isSelected, submitted, isCorrectOption, isIncorrectSel
4746
4758
  marginBottom: "0.375rem",
4747
4759
  borderRadius: "var(--glyph-radius-md, 0.5rem)",
4748
4760
  cursor: submitted ? "default" : "pointer",
4749
- background: submitted ? isCorrectOption ? "var(--glyph-quiz-correct-bg, #dcfce7)" : isIncorrectSelection ? "var(--glyph-quiz-incorrect-bg, #fee2e2)" : "transparent" : isSelected ? "var(--glyph-surface, #e8ecf3)" : "transparent",
4761
+ background: submitted ? isCorrectOption ? "var(--glyph-quiz-correct-bg, rgba(22, 163, 74, 0.12))" : isIncorrectSelection ? "var(--glyph-quiz-incorrect-bg, rgba(220, 38, 38, 0.1))" : "transparent" : isSelected ? "var(--glyph-surface, #e8ecf3)" : "transparent",
4750
4762
  border: "1px solid",
4751
- borderColor: submitted ? isCorrectOption ? "var(--glyph-quiz-correct, #16a34a)" : isIncorrectSelection ? "var(--glyph-quiz-incorrect, #dc2626)" : "var(--glyph-border, #d0d8e4)" : isSelected ? "var(--glyph-border, #d0d8e4)" : "transparent",
4763
+ borderColor: submitted ? isCorrectOption ? "var(--glyph-quiz-correct, var(--glyph-color-success, #16a34a))" : isIncorrectSelection ? "var(--glyph-quiz-incorrect, var(--glyph-color-error, #dc2626))" : "var(--glyph-border, #d0d8e4)" : isSelected ? "var(--glyph-border, #d0d8e4)" : "transparent",
4752
4764
  fontSize: "0.875rem",
4753
4765
  lineHeight: 1.6
4754
4766
  };
@@ -4771,8 +4783,8 @@ function feedbackStyle(correct) {
4771
4783
  marginTop: "0.75rem",
4772
4784
  padding: "0.5rem 0.75rem",
4773
4785
  borderRadius: "var(--glyph-radius-md, 0.5rem)",
4774
- background: correct ? "var(--glyph-quiz-correct-bg, #dcfce7)" : "var(--glyph-quiz-incorrect-bg, #fee2e2)",
4775
- color: correct ? "var(--glyph-quiz-correct, #16a34a)" : "var(--glyph-quiz-incorrect, #dc2626)",
4786
+ background: correct ? "var(--glyph-quiz-correct-bg, rgba(22, 163, 74, 0.12))" : "var(--glyph-quiz-incorrect-bg, rgba(220, 38, 38, 0.1))",
4787
+ color: correct ? "var(--glyph-quiz-correct, var(--glyph-color-success, #16a34a))" : "var(--glyph-quiz-incorrect, var(--glyph-color-error, #dc2626))",
4776
4788
  fontWeight: 600,
4777
4789
  fontSize: "0.875rem"
4778
4790
  };
@@ -5220,10 +5232,10 @@ function computeSectionLayout(sections) {
5220
5232
  });
5221
5233
  }
5222
5234
  var PROGRESS_COLORS = [
5223
- "var(--glyph-infographic-color-1, #3b82f6)",
5224
- "var(--glyph-infographic-color-2, #22c55e)",
5225
- "var(--glyph-infographic-color-3, #f59e0b)",
5226
- "var(--glyph-infographic-color-4, #ef4444)"
5235
+ "var(--glyph-infographic-color-1, var(--glyph-palette-color-1, #00d4aa))",
5236
+ "var(--glyph-infographic-color-2, var(--glyph-palette-color-2, #b44dff))",
5237
+ "var(--glyph-infographic-color-3, var(--glyph-palette-color-3, #22c55e))",
5238
+ "var(--glyph-infographic-color-4, var(--glyph-palette-color-4, #e040fb))"
5227
5239
  ];
5228
5240
  function renderStatGroup(items, keyPrefix) {
5229
5241
  const rowStyle = {
@@ -5238,12 +5250,12 @@ function renderStatGroup(items, keyPrefix) {
5238
5250
  const valueStyle = {
5239
5251
  fontSize: "1.75rem",
5240
5252
  fontWeight: 700,
5241
- color: "var(--glyph-infographic-value-color, #1d4ed8)",
5253
+ color: "var(--glyph-infographic-value-color, var(--glyph-accent, #0a9d7c))",
5242
5254
  lineHeight: 1.2
5243
5255
  };
5244
5256
  const labelStyle4 = {
5245
5257
  fontSize: "0.8125rem",
5246
- color: "var(--glyph-infographic-label-color, #475569)",
5258
+ color: "var(--glyph-infographic-label-color, var(--glyph-text-muted, #6b7a94))",
5247
5259
  marginTop: "var(--glyph-spacing-xs, 0.25rem)",
5248
5260
  textTransform: "uppercase",
5249
5261
  letterSpacing: "0.06em",
@@ -5251,7 +5263,7 @@ function renderStatGroup(items, keyPrefix) {
5251
5263
  };
5252
5264
  const descStyle = {
5253
5265
  fontSize: "0.75rem",
5254
- color: "var(--glyph-infographic-desc-color, #64748b)",
5266
+ color: "var(--glyph-infographic-desc-color, var(--glyph-text-muted, #6b7a94))",
5255
5267
  marginTop: "var(--glyph-spacing-xs, 0.25rem)",
5256
5268
  fontStyle: "italic"
5257
5269
  };
@@ -5265,7 +5277,7 @@ function renderProgressGroup(items, keyPrefix, colorOffset) {
5265
5277
  const trackStyle = {
5266
5278
  height: "0.5rem",
5267
5279
  borderRadius: "var(--glyph-radius-sm, 0.375rem)",
5268
- background: "var(--glyph-infographic-track, #e0e4ea)",
5280
+ background: "var(--glyph-infographic-track, var(--glyph-surface, #e8ecf3))",
5269
5281
  overflow: "hidden"
5270
5282
  };
5271
5283
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-group": "progress", children: items.map((item, i) => {
@@ -5298,7 +5310,7 @@ function renderProgressGroup(items, keyPrefix, colorOffset) {
5298
5310
  "span",
5299
5311
  {
5300
5312
  style: {
5301
- color: "var(--glyph-infographic-value-color, #1d4ed8)",
5313
+ color: "var(--glyph-infographic-value-color, var(--glyph-accent, #0a9d7c))",
5302
5314
  fontWeight: 700
5303
5315
  },
5304
5316
  children: [
@@ -5345,7 +5357,7 @@ function renderFactGroup(items, keyPrefix) {
5345
5357
  {
5346
5358
  style: {
5347
5359
  marginRight: "var(--glyph-spacing-xs, 0.25rem)",
5348
- color: "var(--glyph-infographic-accent, #3b82f6)"
5360
+ color: "var(--glyph-infographic-accent, var(--glyph-accent, #0a9d7c))"
5349
5361
  },
5350
5362
  "aria-hidden": "true",
5351
5363
  children: item.icon
@@ -5360,7 +5372,7 @@ function renderTextGroup(items, keyPrefix) {
5360
5372
  fontSize: "0.875rem",
5361
5373
  lineHeight: 1.6,
5362
5374
  color: "var(--glyph-text, #1a2035)",
5363
- borderLeft: "3px solid var(--glyph-infographic-accent, #3b82f6)",
5375
+ borderLeft: "3px solid var(--glyph-infographic-accent, var(--glyph-accent, #0a9d7c))",
5364
5376
  paddingLeft: "var(--glyph-spacing-sm, 0.5rem)"
5365
5377
  };
5366
5378
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-group": "text", children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx("p", { style: pStyle, children: item.content }, `${keyPrefix}-${String(i)}`)) }, keyPrefix);
@@ -5433,7 +5445,7 @@ function renderPieGroup(items, keyPrefix, colorOffset) {
5433
5445
  style: {
5434
5446
  fontSize: "0.875rem",
5435
5447
  fontWeight: 600,
5436
- color: "var(--glyph-infographic-heading-color, #1e293b)",
5448
+ color: "var(--glyph-infographic-heading-color, var(--glyph-heading, #0a0e1a))",
5437
5449
  marginBottom: "var(--glyph-spacing-xs, 0.25rem)"
5438
5450
  },
5439
5451
  children: item.label
@@ -5492,7 +5504,7 @@ function renderDividerGroup(items, keyPrefix) {
5492
5504
  role: "separator",
5493
5505
  style: {
5494
5506
  border: "none",
5495
- borderTop: `1px ${item.style ?? "solid"} var(--glyph-infographic-section-divider, #d0d8e4)`,
5507
+ borderTop: `1px ${item.style ?? "solid"} var(--glyph-infographic-section-divider, var(--glyph-border, #d0d8e4))`,
5496
5508
  margin: "var(--glyph-spacing-sm, 0.5rem) 0"
5497
5509
  }
5498
5510
  },
@@ -5500,7 +5512,7 @@ function renderDividerGroup(items, keyPrefix) {
5500
5512
  )) }, keyPrefix);
5501
5513
  }
5502
5514
  function renderRatingGroup(items, keyPrefix) {
5503
- const starColor = "var(--glyph-infographic-star, #f59e0b)";
5515
+ const starColor = "var(--glyph-infographic-star, var(--glyph-rating-star-fill, #f59e0b))";
5504
5516
  const emptyColor = "var(--glyph-text-muted, #6b7a94)";
5505
5517
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-group": "rating", children: items.map((item, i) => {
5506
5518
  const max2 = item.max ?? 5;
@@ -5593,11 +5605,11 @@ function renderRatingGroup(items, keyPrefix) {
5593
5605
  {
5594
5606
  style: {
5595
5607
  fontSize: "0.75rem",
5596
- color: "var(--glyph-infographic-desc-color, #64748b)",
5608
+ color: "var(--glyph-infographic-desc-color, var(--glyph-text-muted, #6b7a94))",
5597
5609
  marginTop: "var(--glyph-spacing-xs, 0.25rem)",
5598
5610
  fontStyle: "italic"
5599
5611
  },
5600
- children: item.description
5612
+ children: /* @__PURE__ */ jsxRuntime.jsx(runtime.RichText, { content: item.description })
5601
5613
  }
5602
5614
  )
5603
5615
  ] })
@@ -5636,11 +5648,11 @@ function Infographic({
5636
5648
  margin: 0,
5637
5649
  paddingBottom: "var(--glyph-spacing-sm, 0.5rem)",
5638
5650
  marginBottom: "var(--glyph-spacing-md, 1rem)",
5639
- borderBottom: "2px solid var(--glyph-infographic-accent, #3b82f6)",
5651
+ borderBottom: "2px solid var(--glyph-infographic-accent, var(--glyph-accent, #0a9d7c))",
5640
5652
  ...useGrid ? { gridColumn: "1 / -1" } : {}
5641
5653
  };
5642
5654
  const sectionDividerStyle = {
5643
- borderTop: "1px solid var(--glyph-infographic-section-divider, #d0d8e4)",
5655
+ borderTop: "1px solid var(--glyph-infographic-section-divider, var(--glyph-border, #d0d8e4))",
5644
5656
  paddingTop: "var(--glyph-spacing-md, 1rem)",
5645
5657
  marginTop: "var(--glyph-spacing-md, 1rem)"
5646
5658
  };
@@ -5658,9 +5670,9 @@ function Infographic({
5658
5670
  const headingStyle = {
5659
5671
  fontWeight: 700,
5660
5672
  fontSize: "1rem",
5661
- color: "var(--glyph-infographic-heading-color, #1e293b)",
5673
+ color: "var(--glyph-infographic-heading-color, var(--glyph-heading, #0a0e1a))",
5662
5674
  marginBottom: "var(--glyph-spacing-sm, 0.5rem)",
5663
- borderLeft: "3px solid var(--glyph-infographic-accent, #3b82f6)",
5675
+ borderLeft: "3px solid var(--glyph-infographic-accent, var(--glyph-accent, #0a9d7c))",
5664
5676
  paddingLeft: "var(--glyph-spacing-sm, 0.5rem)"
5665
5677
  };
5666
5678
  const printCss = useGrid ? `@media print { #${cssEscape(baseId)} [data-layout="grid"] { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 0.5rem !important; } #${cssEscape(baseId)} [data-layout="grid"] > div { break-inside: avoid; } }` : "";
@@ -6640,7 +6652,7 @@ var labelStyle3 = {
6640
6652
  marginBottom: "0.375rem"
6641
6653
  };
6642
6654
  var requiredStyle = {
6643
- color: "var(--glyph-form-error, #dc2626)",
6655
+ color: "var(--glyph-form-error, var(--glyph-color-error, #dc2626))",
6644
6656
  marginLeft: "0.25rem"
6645
6657
  };
6646
6658
  var textInputStyle = {
@@ -6677,7 +6689,7 @@ var submitButtonStyle = {
6677
6689
  borderRadius: "var(--glyph-radius-md, 0.5rem)",
6678
6690
  border: "1px solid var(--glyph-accent, #0a9d7c)",
6679
6691
  background: "var(--glyph-accent, #0a9d7c)",
6680
- color: "#fff",
6692
+ color: "var(--glyph-text-on-accent, #fff)",
6681
6693
  cursor: "pointer",
6682
6694
  fontWeight: 600,
6683
6695
  fontSize: "0.875rem",
@@ -6686,7 +6698,7 @@ var submitButtonStyle = {
6686
6698
  function invalidStyle(isInvalid) {
6687
6699
  if (!isInvalid) return {};
6688
6700
  return {
6689
- borderColor: "var(--glyph-form-error, #dc2626)"
6701
+ borderColor: "var(--glyph-form-error, var(--glyph-color-error, #dc2626))"
6690
6702
  };
6691
6703
  }
6692
6704
  function renderField({
@@ -6962,9 +6974,9 @@ var columnCountStyle = {
6962
6974
  };
6963
6975
  function cardStyle(isGrabbed, priority) {
6964
6976
  const priorityColors = {
6965
- high: "var(--glyph-kanban-priority-high, #dc2626)",
6966
- medium: "var(--glyph-kanban-priority-medium, #f59e0b)",
6967
- low: "var(--glyph-kanban-priority-low, #22c55e)"
6977
+ high: "var(--glyph-kanban-priority-high, var(--glyph-color-error, #dc2626))",
6978
+ medium: "var(--glyph-kanban-priority-medium, var(--glyph-color-warning, #d97706))",
6979
+ low: "var(--glyph-kanban-priority-low, var(--glyph-color-success, #22c55e))"
6968
6980
  };
6969
6981
  return {
6970
6982
  background: "var(--glyph-kanban-card-bg, var(--glyph-surface-raised, #f4f6fa))",
@@ -7468,6 +7480,129 @@ var annotateDefinition = {
7468
7480
  schema: schemas.annotateSchema,
7469
7481
  render: Annotate
7470
7482
  };
7483
+ function Columns({
7484
+ data,
7485
+ block,
7486
+ layout,
7487
+ container
7488
+ }) {
7489
+ const childBlocks = block.children ?? [];
7490
+ const ratio = data.ratio ?? childBlocks.map(() => 1);
7491
+ const cols = ratio.map((r) => `${String(r)}fr`).join(" ");
7492
+ const gap = data.gap ?? "1rem";
7493
+ return /* @__PURE__ */ jsxRuntime.jsx(
7494
+ "div",
7495
+ {
7496
+ style: {
7497
+ display: "grid",
7498
+ gridTemplateColumns: cols,
7499
+ gap
7500
+ },
7501
+ children: childBlocks.map((child, i) => /* @__PURE__ */ jsxRuntime.jsx(
7502
+ runtime.BlockRenderer,
7503
+ {
7504
+ block: child,
7505
+ layout,
7506
+ index: i,
7507
+ container
7508
+ },
7509
+ child.id
7510
+ ))
7511
+ }
7512
+ );
7513
+ }
7514
+
7515
+ // src/columns/index.ts
7516
+ var columnsDefinition = {
7517
+ type: "ui:columns",
7518
+ schema: schemas.columnsSchema,
7519
+ render: Columns
7520
+ };
7521
+ function Rows({
7522
+ data,
7523
+ block,
7524
+ layout,
7525
+ container
7526
+ }) {
7527
+ const childBlocks = block.children ?? [];
7528
+ const ratio = data.ratio ?? childBlocks.map(() => 1);
7529
+ const rows = ratio.map((r) => `${String(r)}fr`).join(" ");
7530
+ const gap = data.gap ?? "1rem";
7531
+ return /* @__PURE__ */ jsxRuntime.jsx(
7532
+ "div",
7533
+ {
7534
+ style: {
7535
+ display: "grid",
7536
+ gridTemplateRows: rows,
7537
+ gap,
7538
+ height: "100%"
7539
+ },
7540
+ children: childBlocks.map((child, i) => /* @__PURE__ */ jsxRuntime.jsx(
7541
+ runtime.BlockRenderer,
7542
+ {
7543
+ block: child,
7544
+ layout,
7545
+ index: i,
7546
+ container
7547
+ },
7548
+ child.id
7549
+ ))
7550
+ }
7551
+ );
7552
+ }
7553
+
7554
+ // src/rows/index.ts
7555
+ var rowsDefinition = {
7556
+ type: "ui:rows",
7557
+ schema: schemas.rowsSchema,
7558
+ render: Rows
7559
+ };
7560
+ var PANEL_STYLES = {
7561
+ card: {
7562
+ backgroundColor: "var(--glyph-surface, #ffffff)",
7563
+ borderRadius: "var(--glyph-radius-lg, 0.5rem)",
7564
+ boxShadow: "var(--glyph-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",
7565
+ border: "1px solid var(--glyph-border, rgba(0,0,0,0.08))"
7566
+ },
7567
+ bordered: {
7568
+ border: "1px solid var(--glyph-border, rgba(0,0,0,0.2))",
7569
+ borderRadius: "var(--glyph-radius-md, 0.25rem)"
7570
+ },
7571
+ elevated: {
7572
+ backgroundColor: "var(--glyph-surface, #ffffff)",
7573
+ borderRadius: "var(--glyph-radius-lg, 0.5rem)",
7574
+ boxShadow: "var(--glyph-shadow-md, 0 4px 12px rgba(0,0,0,0.15))"
7575
+ },
7576
+ ghost: {}
7577
+ };
7578
+ function Panel({
7579
+ data,
7580
+ block,
7581
+ layout,
7582
+ container
7583
+ }) {
7584
+ const childBlock = block.children?.[0];
7585
+ const panelStyle = data.style ?? "card";
7586
+ const padding = data.padding ?? "1rem";
7587
+ return /* @__PURE__ */ jsxRuntime.jsx(
7588
+ "div",
7589
+ {
7590
+ style: {
7591
+ ...PANEL_STYLES[panelStyle],
7592
+ padding,
7593
+ overflow: "hidden"
7594
+ },
7595
+ children: childBlock && /* @__PURE__ */ jsxRuntime.jsx(runtime.BlockRenderer, { block: childBlock, layout, index: 0, container })
7596
+ }
7597
+ );
7598
+ }
7599
+
7600
+ // src/panel/index.ts
7601
+ var panelDefinition = {
7602
+ type: "ui:panel",
7603
+ schema: schemas.panelSchema,
7604
+ render: Panel
7605
+ };
7471
7606
 
7472
7607
  // src/index.ts
7473
7608
  var allComponentDefinitions = [
@@ -7499,7 +7634,10 @@ var allComponentDefinitions = [
7499
7634
  matrixDefinition,
7500
7635
  formDefinition,
7501
7636
  kanbanDefinition,
7502
- annotateDefinition
7637
+ annotateDefinition,
7638
+ columnsDefinition,
7639
+ rowsDefinition,
7640
+ panelDefinition
7503
7641
  ];
7504
7642
 
7505
7643
  exports.Accordion = Accordion;
@@ -7509,6 +7647,7 @@ exports.Callout = Callout;
7509
7647
  exports.Card = Card;
7510
7648
  exports.Chart = Chart;
7511
7649
  exports.CodeDiff = CodeDiff;
7650
+ exports.Columns = Columns;
7512
7651
  exports.Comparison = Comparison;
7513
7652
  exports.Equation = Equation;
7514
7653
  exports.FileTree = FileTree;
@@ -7520,11 +7659,13 @@ exports.Kanban = Kanban;
7520
7659
  exports.Kpi = Kpi;
7521
7660
  exports.Matrix = Matrix;
7522
7661
  exports.MindMap = MindMap;
7662
+ exports.Panel = Panel;
7523
7663
  exports.Poll = Poll;
7524
7664
  exports.Quiz = Quiz;
7525
7665
  exports.Ranker = Ranker;
7526
7666
  exports.Rating = Rating;
7527
7667
  exports.Relation = Relation;
7668
+ exports.Rows = Rows;
7528
7669
  exports.Sequence = Sequence;
7529
7670
  exports.Slider = Slider;
7530
7671
  exports.Steps = Steps;
@@ -7539,6 +7680,7 @@ exports.calloutDefinition = calloutDefinition;
7539
7680
  exports.cardDefinition = cardDefinition;
7540
7681
  exports.chartDefinition = chartDefinition;
7541
7682
  exports.codeDiffDefinition = codeDiffDefinition;
7683
+ exports.columnsDefinition = columnsDefinition;
7542
7684
  exports.comparisonDefinition = comparisonDefinition;
7543
7685
  exports.computeArchitectureLayout = computeArchitectureLayout;
7544
7686
  exports.computeDagreLayout = computeDagreLayout;
@@ -7554,11 +7696,13 @@ exports.kanbanDefinition = kanbanDefinition;
7554
7696
  exports.kpiDefinition = kpiDefinition;
7555
7697
  exports.matrixDefinition = matrixDefinition;
7556
7698
  exports.mindMapDefinition = mindMapDefinition;
7699
+ exports.panelDefinition = panelDefinition;
7557
7700
  exports.pollDefinition = pollDefinition;
7558
7701
  exports.quizDefinition = quizDefinition;
7559
7702
  exports.rankerDefinition = rankerDefinition;
7560
7703
  exports.ratingDefinition = ratingDefinition;
7561
7704
  exports.relationDefinition = relationDefinition;
7705
+ exports.rowsDefinition = rowsDefinition;
7562
7706
  exports.sequenceDefinition = sequenceDefinition;
7563
7707
  exports.sliderDefinition = sliderDefinition;
7564
7708
  exports.stepsDefinition = stepsDefinition;