nirs4all-ui 0.1.13 → 0.1.15

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 (95) hide show
  1. package/README.md +4 -1
  2. package/dist/chains/NodeEffectForest.d.ts.map +1 -1
  3. package/dist/chains/NodeEffectForest.js +5 -1
  4. package/dist/chains/NodeEffectForest.js.map +1 -1
  5. package/dist/chains/contract.d.ts.map +1 -1
  6. package/dist/chains/contract.js +10 -5
  7. package/dist/chains/contract.js.map +1 -1
  8. package/dist/datasetBuilder/exportConfig.d.ts.map +1 -1
  9. package/dist/datasetBuilder/exportConfig.js +1 -7
  10. package/dist/datasetBuilder/exportConfig.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/nodeRegistry/index.d.ts +9 -0
  16. package/dist/nodeRegistry/index.d.ts.map +1 -0
  17. package/dist/nodeRegistry/index.js +9 -0
  18. package/dist/nodeRegistry/index.js.map +1 -0
  19. package/dist/nodeRegistry/n4m.d.ts +83 -0
  20. package/dist/nodeRegistry/n4m.d.ts.map +1 -0
  21. package/dist/nodeRegistry/n4m.js +131 -0
  22. package/dist/nodeRegistry/n4m.js.map +1 -0
  23. package/dist/viz/BiasVarianceBars.d.ts +3 -1
  24. package/dist/viz/BiasVarianceBars.d.ts.map +1 -1
  25. package/dist/viz/BiasVarianceBars.js +19 -7
  26. package/dist/viz/BiasVarianceBars.js.map +1 -1
  27. package/dist/viz/BoxPlot.d.ts +3 -1
  28. package/dist/viz/BoxPlot.d.ts.map +1 -1
  29. package/dist/viz/BoxPlot.js +15 -2
  30. package/dist/viz/BoxPlot.js.map +1 -1
  31. package/dist/viz/ConformalIntervalStrip.d.ts +4 -2
  32. package/dist/viz/ConformalIntervalStrip.d.ts.map +1 -1
  33. package/dist/viz/ConformalIntervalStrip.js +25 -5
  34. package/dist/viz/ConformalIntervalStrip.js.map +1 -1
  35. package/dist/viz/ConfusionMatrix.d.ts +3 -1
  36. package/dist/viz/ConfusionMatrix.d.ts.map +1 -1
  37. package/dist/viz/ConfusionMatrix.js +28 -7
  38. package/dist/viz/ConfusionMatrix.js.map +1 -1
  39. package/dist/viz/FeatureImportanceBar.d.ts +3 -1
  40. package/dist/viz/FeatureImportanceBar.d.ts.map +1 -1
  41. package/dist/viz/FeatureImportanceBar.js +10 -3
  42. package/dist/viz/FeatureImportanceBar.js.map +1 -1
  43. package/dist/viz/FoldStabilityLines.d.ts +3 -1
  44. package/dist/viz/FoldStabilityLines.d.ts.map +1 -1
  45. package/dist/viz/FoldStabilityLines.js +14 -2
  46. package/dist/viz/FoldStabilityLines.js.map +1 -1
  47. package/dist/viz/Histogram.d.ts +3 -1
  48. package/dist/viz/Histogram.d.ts.map +1 -1
  49. package/dist/viz/Histogram.js +15 -3
  50. package/dist/viz/Histogram.js.map +1 -1
  51. package/dist/viz/PcaScatter.d.ts +3 -1
  52. package/dist/viz/PcaScatter.d.ts.map +1 -1
  53. package/dist/viz/PcaScatter.js +30 -6
  54. package/dist/viz/PcaScatter.js.map +1 -1
  55. package/dist/viz/PipelineFlow.d.ts +3 -1
  56. package/dist/viz/PipelineFlow.d.ts.map +1 -1
  57. package/dist/viz/PipelineFlow.js +8 -2
  58. package/dist/viz/PipelineFlow.js.map +1 -1
  59. package/dist/viz/PredictionScatter.d.ts +4 -2
  60. package/dist/viz/PredictionScatter.d.ts.map +1 -1
  61. package/dist/viz/PredictionScatter.js +25 -4
  62. package/dist/viz/PredictionScatter.js.map +1 -1
  63. package/dist/viz/ResidualPlot.d.ts +3 -1
  64. package/dist/viz/ResidualPlot.d.ts.map +1 -1
  65. package/dist/viz/ResidualPlot.js +18 -3
  66. package/dist/viz/ResidualPlot.js.map +1 -1
  67. package/dist/viz/ScoreHeatmap.d.ts +3 -1
  68. package/dist/viz/ScoreHeatmap.d.ts.map +1 -1
  69. package/dist/viz/ScoreHeatmap.js +23 -2
  70. package/dist/viz/ScoreHeatmap.js.map +1 -1
  71. package/dist/viz/ScoreSummary.d.ts +3 -1
  72. package/dist/viz/ScoreSummary.d.ts.map +1 -1
  73. package/dist/viz/ScoreSummary.js +8 -2
  74. package/dist/viz/ScoreSummary.js.map +1 -1
  75. package/dist/viz/ShapBeeswarm.d.ts +3 -1
  76. package/dist/viz/ShapBeeswarm.d.ts.map +1 -1
  77. package/dist/viz/ShapBeeswarm.js +20 -4
  78. package/dist/viz/ShapBeeswarm.js.map +1 -1
  79. package/dist/viz/SpectraPlot.d.ts +4 -2
  80. package/dist/viz/SpectraPlot.d.ts.map +1 -1
  81. package/dist/viz/SpectraPlot.js +27 -7
  82. package/dist/viz/SpectraPlot.js.map +1 -1
  83. package/dist/viz/WaterfallChart.d.ts +3 -1
  84. package/dist/viz/WaterfallChart.d.ts.map +1 -1
  85. package/dist/viz/WaterfallChart.js +18 -6
  86. package/dist/viz/WaterfallChart.js.map +1 -1
  87. package/dist/viz/description.d.ts +9 -0
  88. package/dist/viz/description.d.ts.map +1 -0
  89. package/dist/viz/description.js +25 -0
  90. package/dist/viz/description.js.map +1 -0
  91. package/dist/viz/index.d.ts +3 -1
  92. package/dist/viz/index.d.ts.map +1 -1
  93. package/dist/viz/index.js +3 -1
  94. package/dist/viz/index.js.map +1 -1
  95. package/package.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FoldStabilityLines.js","sourceRoot":"","sources":["../../src/viz/FoldStabilityLines.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FoldStabilityLines.js","sourceRoot":"","sources":["../../src/viz/FoldStabilityLines.tsx"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export interface HistogramProps {
21
21
  xLabel?: string;
22
22
  yLabel?: string;
23
23
  title?: string;
24
+ /** Faithful host-provided text alternative; defaults to a data summary. */
25
+ description?: string;
24
26
  className?: string;
25
27
  }
26
28
  /**
@@ -29,5 +31,5 @@ export interface HistogramProps {
29
31
  * classification renders precomputed categorical `bins`. Pure inline SVG — no
30
32
  * chart library, no state.
31
33
  */
32
- export declare function Histogram({ values, bins, variant, binCount, barColor, meanLine, width, height, padding, xLabel, yLabel, title, className, }: HistogramProps): import("react").JSX.Element;
34
+ export declare function Histogram({ values, bins, variant, binCount, barColor, meanLine, width, height, padding, xLabel, yLabel, title, description, className, }: HistogramProps): import("react").JSX.Element;
33
35
  //# sourceMappingURL=Histogram.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Histogram.d.ts","sourceRoot":"","sources":["../../src/viz/Histogram.tsx"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC1C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,IAAI,EACJ,OAAsB,EACtB,QAAa,EACb,QAA6B,EAC7B,QAAgB,EAChB,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAM,EACN,MAAgB,EAChB,KAAsB,EACtB,SAAS,GACV,EAAE,cAAc,+BAqJhB"}
1
+ {"version":3,"file":"Histogram.d.ts","sourceRoot":"","sources":["../../src/viz/Histogram.tsx"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC1C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,IAAI,EACJ,OAAsB,EACtB,QAAa,EACb,QAA6B,EAC7B,QAAgB,EAChB,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAM,EACN,MAAgB,EAChB,KAAsB,EACtB,WAAW,EACX,SAAS,GACV,EAAE,cAAc,+BAmKhB"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cx } from "./_cx.js";
4
+ import { countLabel, rangeText, summaryNumber } from "./description.js";
3
5
  import { buildFrame, extentOf, histogram, makeScale, mean, round, ticks, } from "./geometry.js";
4
6
  import { N4_VIZ_COLORS } from "./theme.js";
5
7
  function fmt(value) {
@@ -20,14 +22,15 @@ function fmtCount(value) {
20
22
  * classification renders precomputed categorical `bins`. Pure inline SVG — no
21
23
  * chart library, no state.
22
24
  */
23
- export function Histogram({ values, bins, variant = "regression", binCount = 12, barColor = N4_VIZ_COLORS.teal, meanLine = false, width = 360, height = 220, padding, xLabel, yLabel = "Count", title = "Distribution", className, }) {
25
+ export function Histogram({ values, bins, variant = "regression", binCount = 12, barColor = N4_VIZ_COLORS.teal, meanLine = false, width = 360, height = 220, padding, xLabel, yLabel = "Count", title = "Distribution", description, className, }) {
26
+ const descriptionId = useId();
24
27
  const frame = buildFrame(width, height, padding);
25
28
  const { top, left } = frame.padding;
26
29
  const bottom = top + frame.innerHeight;
27
30
  const right = left + frame.innerWidth;
28
31
  const isClassification = variant === "classification";
29
32
  const numericBins = isClassification ? [] : histogram(values ?? [], binCount);
30
- const categorical = bins ?? [];
33
+ const categorical = (bins ?? []).filter((bar) => Number.isFinite(bar.count) && bar.count >= 0);
31
34
  const counts = isClassification ? categorical.map((b) => b.count) : numericBins.map((b) => b.count);
32
35
  const maxCount = Math.max(1, ...counts.filter((c) => Number.isFinite(c)));
33
36
  const yDomain = { min: 0, max: maxCount };
@@ -43,7 +46,16 @@ export function Histogram({ values, bins, variant = "regression", binCount = 12,
43
46
  const rotateLabels = categorical.length > 6;
44
47
  const meanValue = mean(values ?? []);
45
48
  const showMean = meanLine && !isClassification && numericBins.length > 0 && Number.isFinite(meanValue);
46
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-histogram", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), isClassification
49
+ const validValues = (values ?? []).filter((value) => Number.isFinite(value));
50
+ const validCategories = categorical;
51
+ const summary = description?.trim() || (isClassification
52
+ ? validCategories.length === 0
53
+ ? "No category counts available."
54
+ : `${countLabel(validCategories.length, "category", "categories")}; ${countLabel(validCategories.reduce((sum, bar) => sum + bar.count, 0), "observation")}; ${validCategories.map((bar) => `${bar.label}: ${summaryNumber(bar.count)}`).join("; ")}.`
55
+ : validValues.length === 0
56
+ ? "No finite numeric observations."
57
+ : `${countLabel(validValues.length, "numeric observation")}; range ${rangeText(validValues)}; mean ${summaryNumber(validValues.reduce((sum, value) => sum + value, 0) / validValues.length)}.`);
58
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-histogram", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, "aria-describedby": descriptionId, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("desc", { id: descriptionId, children: summary }), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), isClassification
47
59
  ? categorical.map((bar, i) => {
48
60
  const center = left + (i + 0.5) * slotW;
49
61
  const y = yScale(bar.count);
@@ -1 +1 @@
1
- {"version":3,"file":"Histogram.js","sourceRoot":"","sources":["../../src/viz/Histogram.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Histogram.js","sourceRoot":"","sources":["../../src/viz/Histogram.tsx"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export interface PcaScatterProps {
25
25
  /** Small swatch legend (top-right); defaults on for categorical modes. */
26
26
  legend?: boolean;
27
27
  title?: string;
28
+ /** Faithful host-provided text alternative; defaults to a data summary. */
29
+ description?: string;
28
30
  className?: string;
29
31
  }
30
32
  /**
@@ -32,5 +34,5 @@ export interface PcaScatterProps {
32
34
  * value, or train/validation/test partition — the Studio Playground and Web PCA
33
35
  * panel. Pure inline SVG; hosts pass already-projected points.
34
36
  */
35
- export declare function PcaScatter({ points, colorMode, groupColors, explained, xLabel, yLabel, pointRadius, pointOpacity, width, height, padding, legend, title, className, }: PcaScatterProps): import("react").JSX.Element;
37
+ export declare function PcaScatter({ points, colorMode, groupColors, explained, xLabel, yLabel, pointRadius, pointOpacity, width, height, padding, legend, title, description, className, }: PcaScatterProps): import("react").JSX.Element;
36
38
  //# sourceMappingURL=PcaScatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PcaScatter.d.ts","sourceRoot":"","sources":["../../src/viz/PcaScatter.tsx"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AASvB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAmB,EACnB,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,WAAiB,EACjB,YAAkB,EAClB,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAa,EACb,KAAoB,EACpB,SAAS,GACV,EAAE,eAAe,+BAkIjB"}
1
+ {"version":3,"file":"PcaScatter.d.ts","sourceRoot":"","sources":["../../src/viz/PcaScatter.tsx"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AASvB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAmB,EACnB,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,WAAiB,EACjB,YAAkB,EAClB,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAa,EACb,KAAoB,EACpB,WAAW,EACX,SAAS,GACV,EAAE,eAAe,+BA2JjB"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cx } from "./_cx.js";
4
+ import { countLabel, rangeText, summaryNumber } from "./description.js";
3
5
  import { buildFrame, extentOf, makeScale, niceExtent, round, ticks, } from "./geometry.js";
4
6
  import { N4_PARTITION_COLORS, N4_VIZ_COLORS, categoricalColor, sequentialColor, } from "./theme.js";
5
7
  function fmt(value) {
@@ -16,23 +18,25 @@ function fmt(value) {
16
18
  * value, or train/validation/test partition — the Studio Playground and Web PCA
17
19
  * panel. Pure inline SVG; hosts pass already-projected points.
18
20
  */
19
- export function PcaScatter({ points, colorMode = "group", groupColors, explained, xLabel, yLabel, pointRadius = 3.5, pointOpacity = 0.8, width = 360, height = 320, padding, legend = true, title = "Projection", className, }) {
21
+ export function PcaScatter({ points, colorMode = "group", groupColors, explained, xLabel, yLabel, pointRadius = 3.5, pointOpacity = 0.8, width = 360, height = 320, padding, legend = true, title = "Projection", description, className, }) {
22
+ const descriptionId = useId();
20
23
  const frame = buildFrame(width, height, padding);
21
24
  const { top, left } = frame.padding;
22
25
  const bottom = top + frame.innerHeight;
23
26
  const right = left + frame.innerWidth;
24
- const xDomain = niceExtent(points.map((p) => p.x), 0.06);
25
- const yDomain = niceExtent(points.map((p) => p.y), 0.06);
27
+ const valid = points.filter((point) => Number.isFinite(point.x) && Number.isFinite(point.y));
28
+ const xDomain = niceExtent(valid.map((p) => p.x), 0.06);
29
+ const yDomain = niceExtent(valid.map((p) => p.y), 0.06);
26
30
  const xScale = makeScale(xDomain, left, right);
27
31
  const yScale = makeScale(yDomain, bottom, top);
28
32
  const xTicks = ticks(xDomain, 5);
29
33
  const yTicks = ticks(yDomain, 5);
30
- const valueList = points
34
+ const valueList = valid
31
35
  .map((p) => p.value)
32
36
  .filter((v) => typeof v === "number" && Number.isFinite(v));
33
37
  const valueDomain = extentOf(valueList.length ? valueList : [0, 1]);
34
38
  const groupOrder = [];
35
- for (const p of points) {
39
+ for (const p of valid) {
36
40
  if (p.group != null && !groupOrder.includes(p.group))
37
41
  groupOrder.push(p.group);
38
42
  }
@@ -62,7 +66,27 @@ export function PcaScatter({ points, colorMode = "group", groupColors, explained
62
66
  const showLegend = legend && colorMode !== "value" && groupOrder.length > 0;
63
67
  const resolvedXLabel = xLabel ?? (explained ? `PC1 (${Math.round(explained[0] * 100)}%)` : "PC1");
64
68
  const resolvedYLabel = yLabel ?? (explained ? `PC2 (${Math.round(explained[1] * 100)}%)` : "PC2");
65
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-pca", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), xTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: top, y2: bottom }, `gx-${t}`))), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), points.map((p, i) => (_jsx("circle", { className: "n4viz-dot", cx: round(xScale(p.x)), cy: round(yScale(p.y)), r: pointRadius, fill: resolveColor(p), fillOpacity: pointOpacity }, i))), _jsx("line", { className: "n4viz-axis", x1: left, x2: right, y1: bottom, y2: bottom }), _jsx("line", { className: "n4viz-axis", x1: left, x2: left, y1: top, y2: bottom }), xTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: round(xScale(t)), y: bottom + 15, textAnchor: "middle", children: fmt(t) }, `tx-${t}`))), yTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: left - 6, y: round(yScale(t)) + 3, textAnchor: "end", children: fmt(t) }, `ty-${t}`))), _jsx("text", { className: "n4viz-axis-label", x: left + frame.innerWidth / 2, y: height - 2, textAnchor: "middle", children: resolvedXLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(11 ${top + frame.innerHeight / 2}) rotate(-90)`, textAnchor: "middle", children: resolvedYLabel }), showLegend
69
+ const groups = new Map();
70
+ if (colorMode !== "value") {
71
+ for (const point of valid) {
72
+ if (point.group != null)
73
+ groups.set(point.group, (groups.get(point.group) ?? 0) + 1);
74
+ }
75
+ }
76
+ const valueRange = colorMode === "value"
77
+ ? rangeText(valid.map((point) => point.value).filter((value) => value != null))
78
+ : null;
79
+ const summary = description?.trim() || (valid.length === 0
80
+ ? "No valid projected points."
81
+ : [
82
+ countLabel(valid.length, "projected point"),
83
+ `${resolvedXLabel} range ${rangeText(valid.map((point) => point.x))}`,
84
+ `${resolvedYLabel} range ${rangeText(valid.map((point) => point.y))}`,
85
+ ...[...groups].map(([group, count]) => `${group}: ${count}`),
86
+ ...(valueRange ? [`color value range ${valueRange}`] : []),
87
+ ...(explained ? [`explained variance ${summaryNumber(explained[0] * 100)}% and ${summaryNumber(explained[1] * 100)}%`] : []),
88
+ ].join("; ") + ".");
89
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-pca", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, "aria-describedby": descriptionId, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("desc", { id: descriptionId, children: summary }), xTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: top, y2: bottom }, `gx-${t}`))), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), valid.map((p, i) => (_jsx("circle", { className: "n4viz-dot", cx: round(xScale(p.x)), cy: round(yScale(p.y)), r: pointRadius, fill: resolveColor(p), fillOpacity: pointOpacity }, i))), _jsx("line", { className: "n4viz-axis", x1: left, x2: right, y1: bottom, y2: bottom }), _jsx("line", { className: "n4viz-axis", x1: left, x2: left, y1: top, y2: bottom }), xTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: round(xScale(t)), y: bottom + 15, textAnchor: "middle", children: fmt(t) }, `tx-${t}`))), yTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: left - 6, y: round(yScale(t)) + 3, textAnchor: "end", children: fmt(t) }, `ty-${t}`))), _jsx("text", { className: "n4viz-axis-label", x: left + frame.innerWidth / 2, y: height - 2, textAnchor: "middle", children: resolvedXLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(11 ${top + frame.innerHeight / 2}) rotate(-90)`, textAnchor: "middle", children: resolvedYLabel }), showLegend
66
90
  ? groupOrder.map((g, i) => {
67
91
  const ly = top + 6 + i * 14;
68
92
  return (_jsxs("g", { className: "n4viz-legend-item", children: [_jsx("rect", { className: "n4viz-swatch", x: round(right - 10), y: round(ly), width: 8, height: 8, rx: 2, fill: colorForGroup(g) }), _jsx("text", { className: "n4viz-legend-label", x: round(right - 14), y: round(ly + 8), textAnchor: "end", children: g })] }, `lg-${g}`));
@@ -1 +1 @@
1
- {"version":3,"file":"PcaScatter.js","sourceRoot":"","sources":["../../src/viz/PcaScatter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PcaScatter.js","sourceRoot":"","sources":["../../src/viz/PcaScatter.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface PipelineFlowProps {
15
15
  /** Defaults to `nodes.length * 84 + 24`. */
16
16
  height?: number;
17
17
  title?: string;
18
+ /** Faithful host-provided text alternative; defaults to a node sequence. */
19
+ description?: string;
18
20
  className?: string;
19
21
  /** Override the per-type accent color. */
20
22
  nodeColor?: (type: PipelineNode["type"]) => string;
@@ -24,5 +26,5 @@ export interface PipelineFlowProps {
24
26
  * pipeline editor, Web CanvasFlow, and Inspector BranchTopology. Each step is a
25
27
  * card connected top→down; pure inline SVG, no interaction or layout engine.
26
28
  */
27
- export declare function PipelineFlow({ nodes, width, height, title, className, nodeColor, }: PipelineFlowProps): import("react").JSX.Element;
29
+ export declare function PipelineFlow({ nodes, width, height, title, description, className, nodeColor, }: PipelineFlowProps): import("react").JSX.Element;
28
30
  //# sourceMappingURL=PipelineFlow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineFlow.d.ts","sourceRoot":"","sources":["../../src/viz/PipelineFlow.tsx"],"names":[],"mappings":"AAIA,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;CACpD;AA6BD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAW,EACX,MAAM,EACN,KAAkB,EAClB,SAAS,EACT,SAA4B,GAC7B,EAAE,iBAAiB,+BAgHnB"}
1
+ {"version":3,"file":"PipelineFlow.d.ts","sourceRoot":"","sources":["../../src/viz/PipelineFlow.tsx"],"names":[],"mappings":"AAOA,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;CACpD;AA6BD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAW,EACX,MAAM,EACN,KAAkB,EAClB,WAAW,EACX,SAAS,EACT,SAA4B,GAC7B,EAAE,iBAAiB,+BAwHnB"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cx } from "./_cx.js";
4
+ import { countLabel, summaryNumber } from "./description.js";
3
5
  import { round } from "./geometry.js";
4
6
  import { N4_VIZ_COLORS } from "./theme.js";
5
7
  const NODE_COLORS = {
@@ -33,7 +35,8 @@ function fmtMetric(value) {
33
35
  * pipeline editor, Web CanvasFlow, and Inspector BranchTopology. Each step is a
34
36
  * card connected top→down; pure inline SVG, no interaction or layout engine.
35
37
  */
36
- export function PipelineFlow({ nodes, width = 300, height, title = "Pipeline", className, nodeColor = defaultNodeColor, }) {
38
+ export function PipelineFlow({ nodes, width = 300, height, title = "Pipeline", description, className, nodeColor = defaultNodeColor, }) {
39
+ const descriptionId = useId();
37
40
  const rowH = 84;
38
41
  const cardH = 60;
39
42
  const marginTop = 12;
@@ -41,7 +44,10 @@ export function PipelineFlow({ nodes, width = 300, height, title = "Pipeline", c
41
44
  const cardW = Math.max(0, width - 36);
42
45
  const spineX = width / 2;
43
46
  const resolvedHeight = height ?? nodes.length * rowH + 24;
44
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-pipeline", className), viewBox: `0 0 ${width} ${resolvedHeight}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), nodes.map((node, i) => {
47
+ const summary = description?.trim() || (nodes.length === 0
48
+ ? "No pipeline steps."
49
+ : `${countLabel(nodes.length, "pipeline step")} in order; ${nodes.map((node, index) => `${index + 1}. ${node.label} (${node.type}${node.status ? `, ${node.status}` : ""}${node.metric != null && Number.isFinite(node.metric) ? `, metric ${summaryNumber(node.metric)}` : ""})`).join("; ")}.`);
50
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-pipeline", className), viewBox: `0 0 ${width} ${resolvedHeight}`, role: "img", "aria-label": title, "aria-describedby": descriptionId, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("desc", { id: descriptionId, children: summary }), nodes.map((node, i) => {
45
51
  if (i === 0)
46
52
  return null;
47
53
  const prevBottom = marginTop + (i - 1) * rowH + cardH;
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineFlow.js","sourceRoot":"","sources":["../../src/viz/PipelineFlow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PipelineFlow.js","sourceRoot":"","sources":["../../src/viz/PipelineFlow.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
  import { type PlotPadding } from "./geometry.js";
3
3
  import { type PartitionKey } from "./theme.js";
4
4
  /** A single predicted-vs-observed observation. */
@@ -28,6 +28,8 @@ export interface PredictionScatterProps {
28
28
  xLabel?: string;
29
29
  yLabel?: string;
30
30
  title?: string;
31
+ /** Faithful host-provided text alternative; defaults to a data summary. */
32
+ description?: string;
31
33
  className?: string;
32
34
  children?: ReactNode;
33
35
  }
@@ -37,5 +39,5 @@ export interface PredictionScatterProps {
37
39
  * Inspector and the Web results view. Pure inline SVG; hosts pass points and
38
40
  * (optionally) precomputed metrics.
39
41
  */
40
- export declare function PredictionScatter({ points, width, height, padding, identityLine, regressionLine, metrics, pointRadius, pointOpacity, xLabel, yLabel, title, className, children, }: PredictionScatterProps): import("react").JSX.Element;
42
+ export declare function PredictionScatter({ points, width, height, padding, identityLine, regressionLine, metrics, pointRadius, pointOpacity, xLabel, yLabel, title, description, className, children, }: PredictionScatterProps): import("react").JSX.Element;
41
43
  //# sourceMappingURL=PredictionScatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PredictionScatter.d.ts","sourceRoot":"","sources":["../../src/viz/PredictionScatter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6DAA6D;IAC7D,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,YAAmB,EACnB,cAAsB,EACtB,OAAO,EACP,WAAe,EACf,YAAkB,EAClB,MAAmB,EACnB,MAAoB,EACpB,KAA+B,EAC/B,SAAS,EACT,QAAQ,GACT,EAAE,sBAAsB,+BAuGxB"}
1
+ {"version":3,"file":"PredictionScatter.d.ts","sourceRoot":"","sources":["../../src/viz/PredictionScatter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6DAA6D;IAC7D,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,YAAmB,EACnB,cAAsB,EACtB,OAAO,EACP,WAAe,EACf,YAAkB,EAClB,MAAmB,EACnB,MAAoB,EACpB,KAA+B,EAC/B,WAAW,EACX,SAAS,EACT,QAAQ,GACT,EAAE,sBAAsB,+BA6HxB"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cx } from "./_cx.js";
4
+ import { countLabel, summaryNumber } from "./description.js";
3
5
  import { buildFrame, linearFit, makeScale, niceExtent, round, ticks, } from "./geometry.js";
4
6
  import { N4_PARTITION_COLORS, N4_VIZ_COLORS } from "./theme.js";
5
7
  function pointColor(point) {
@@ -24,18 +26,37 @@ function fmt(value) {
24
26
  * Inspector and the Web results view. Pure inline SVG; hosts pass points and
25
27
  * (optionally) precomputed metrics.
26
28
  */
27
- export function PredictionScatter({ points, width = 320, height = 320, padding, identityLine = true, regressionLine = false, metrics, pointRadius = 3, pointOpacity = 0.7, xLabel = "Observed", yLabel = "Predicted", title = "Predicted vs observed", className, children, }) {
29
+ export function PredictionScatter({ points, width = 320, height = 320, padding, identityLine = true, regressionLine = false, metrics, pointRadius = 3, pointOpacity = 0.7, xLabel = "Observed", yLabel = "Predicted", title = "Predicted vs observed", description, className, children, }) {
30
+ const descriptionId = useId();
28
31
  const frame = buildFrame(width, height, padding);
29
32
  const { top, left } = frame.padding;
30
33
  const bottom = top + frame.innerHeight;
31
34
  const right = left + frame.innerWidth;
32
- const actuals = points.map((p) => p.actual);
33
- const predicted = points.map((p) => p.predicted);
35
+ const valid = points.filter((point) => Number.isFinite(point.actual) && Number.isFinite(point.predicted));
36
+ const actuals = valid.map((p) => p.actual);
37
+ const predicted = valid.map((p) => p.predicted);
34
38
  const domain = niceExtent([...actuals, ...predicted], 0.06);
35
39
  const xScale = makeScale(domain, left, right);
36
40
  const yScale = makeScale(domain, bottom, top);
37
41
  const axisTicks = ticks(domain, 5);
38
42
  const fit = regressionLine ? linearFit(actuals, predicted) : null;
39
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-scatter", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), axisTicks.map((t) => (_jsxs("g", { children: [_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }), _jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: top, y2: bottom })] }, `grid-${t}`))), identityLine ? (_jsx("line", { className: "n4viz-reference n4viz-identity", x1: round(xScale(domain.min)), y1: round(yScale(domain.min)), x2: round(xScale(domain.max)), y2: round(yScale(domain.max)), stroke: N4_VIZ_COLORS.slate, strokeDasharray: "5 4", strokeWidth: 1.4 })) : null, fit ? (_jsx("line", { className: "n4viz-reference n4viz-fit", x1: round(xScale(domain.min)), y1: round(yScale(fit.slope * domain.min + fit.intercept)), x2: round(xScale(domain.max)), y2: round(yScale(fit.slope * domain.max + fit.intercept)), stroke: N4_VIZ_COLORS.indigo, strokeWidth: 1.8 })) : null, points.map((p, i) => (_jsx("circle", { className: "n4viz-dot", cx: round(xScale(p.actual)), cy: round(yScale(p.predicted)), r: pointRadius, fill: pointColor(p), fillOpacity: pointOpacity }, p.label ?? i))), _jsx("line", { className: "n4viz-axis", x1: left, x2: right, y1: bottom, y2: bottom }), _jsx("line", { className: "n4viz-axis", x1: left, x2: left, y1: top, y2: bottom }), axisTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: round(xScale(t)), y: bottom + 15, textAnchor: "middle", children: fmt(t) }, `tx-${t}`))), axisTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: left - 6, y: round(yScale(t)) + 3, textAnchor: "end", children: fmt(t) }, `ty-${t}`))), _jsx("text", { className: "n4viz-axis-label", x: left + frame.innerWidth / 2, y: height - 2, textAnchor: "middle", children: xLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(11 ${top + frame.innerHeight / 2}) rotate(-90)`, textAnchor: "middle", children: yLabel }), metrics ? (_jsxs("text", { className: "n4viz-badge", x: right, y: top + 12, textAnchor: "end", children: [metrics.r2 != null ? `R² ${fmt(metrics.r2)}` : "", metrics.r2 != null && metrics.rmse != null ? " · " : "", metrics.rmse != null ? `RMSE ${fmt(metrics.rmse)}` : ""] })) : null, children] }));
43
+ const meanAbsoluteError = valid.length
44
+ ? valid.reduce((sum, point) => sum + Math.abs(point.predicted - point.actual), 0) / valid.length
45
+ : null;
46
+ const partitionCounts = new Map();
47
+ for (const point of valid) {
48
+ if (point.partition)
49
+ partitionCounts.set(point.partition, (partitionCounts.get(point.partition) ?? 0) + 1);
50
+ }
51
+ const summary = description?.trim() || (valid.length === 0
52
+ ? "No valid observed and predicted pairs."
53
+ : [
54
+ countLabel(valid.length, "valid observed and predicted pair"),
55
+ `mean absolute error ${summaryNumber(meanAbsoluteError)}`,
56
+ ...[...partitionCounts].map(([partition, count]) => `${partition}: ${count}`),
57
+ ...(metrics?.r2 != null && Number.isFinite(metrics.r2) ? [`R² ${summaryNumber(metrics.r2)}`] : []),
58
+ ...(metrics?.rmse != null && Number.isFinite(metrics.rmse) ? [`RMSE ${summaryNumber(metrics.rmse)}`] : []),
59
+ ].join("; ") + ".");
60
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-scatter", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, "aria-describedby": descriptionId, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("desc", { id: descriptionId, children: summary }), axisTicks.map((t) => (_jsxs("g", { children: [_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }), _jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: top, y2: bottom })] }, `grid-${t}`))), identityLine ? (_jsx("line", { className: "n4viz-reference n4viz-identity", x1: round(xScale(domain.min)), y1: round(yScale(domain.min)), x2: round(xScale(domain.max)), y2: round(yScale(domain.max)), stroke: N4_VIZ_COLORS.slate, strokeDasharray: "5 4", strokeWidth: 1.4 })) : null, fit ? (_jsx("line", { className: "n4viz-reference n4viz-fit", x1: round(xScale(domain.min)), y1: round(yScale(fit.slope * domain.min + fit.intercept)), x2: round(xScale(domain.max)), y2: round(yScale(fit.slope * domain.max + fit.intercept)), stroke: N4_VIZ_COLORS.indigo, strokeWidth: 1.8 })) : null, valid.map((p, i) => (_jsx("circle", { className: "n4viz-dot", cx: round(xScale(p.actual)), cy: round(yScale(p.predicted)), r: pointRadius, fill: pointColor(p), fillOpacity: pointOpacity }, p.label ?? i))), _jsx("line", { className: "n4viz-axis", x1: left, x2: right, y1: bottom, y2: bottom }), _jsx("line", { className: "n4viz-axis", x1: left, x2: left, y1: top, y2: bottom }), axisTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: round(xScale(t)), y: bottom + 15, textAnchor: "middle", children: fmt(t) }, `tx-${t}`))), axisTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: left - 6, y: round(yScale(t)) + 3, textAnchor: "end", children: fmt(t) }, `ty-${t}`))), _jsx("text", { className: "n4viz-axis-label", x: left + frame.innerWidth / 2, y: height - 2, textAnchor: "middle", children: xLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(11 ${top + frame.innerHeight / 2}) rotate(-90)`, textAnchor: "middle", children: yLabel }), metrics ? (_jsxs("text", { className: "n4viz-badge", x: right, y: top + 12, textAnchor: "end", children: [metrics.r2 != null ? `R² ${fmt(metrics.r2)}` : "", metrics.r2 != null && metrics.rmse != null ? " · " : "", metrics.rmse != null ? `RMSE ${fmt(metrics.rmse)}` : ""] })) : null, children] }));
40
61
  }
41
62
  //# sourceMappingURL=PredictionScatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PredictionScatter.js","sourceRoot":"","sources":["../../src/viz/PredictionScatter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PredictionScatter.js","sourceRoot":"","sources":["../../src/viz/PredictionScatter.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface ResidualPlotProps {
20
20
  xLabel?: string;
21
21
  yLabel?: string;
22
22
  title?: string;
23
+ /** Faithful host-provided text alternative; defaults to a data summary. */
24
+ description?: string;
23
25
  className?: string;
24
26
  }
25
27
  /**
@@ -28,5 +30,5 @@ export interface ResidualPlotProps {
28
30
  * SVG; hosts pass points (residual or actual) and (optionally) precomputed
29
31
  * colors.
30
32
  */
31
- export declare function ResidualPlot({ points, width, height, padding, sigmaBand, pointRadius, pointOpacity, xLabel, yLabel, title, className, }: ResidualPlotProps): import("react").JSX.Element;
33
+ export declare function ResidualPlot({ points, width, height, padding, sigmaBand, pointRadius, pointOpacity, xLabel, yLabel, title, description, className, }: ResidualPlotProps): import("react").JSX.Element;
32
34
  //# sourceMappingURL=ResidualPlot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResidualPlot.d.ts","sourceRoot":"","sources":["../../src/viz/ResidualPlot.tsx"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,kGAAkG;AAClG,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,SAAgB,EAChB,WAAe,EACf,YAAkB,EAClB,MAAoB,EACpB,MAAmB,EACnB,KAAmB,EACnB,SAAS,GACV,EAAE,iBAAiB,+BA6GnB"}
1
+ {"version":3,"file":"ResidualPlot.d.ts","sourceRoot":"","sources":["../../src/viz/ResidualPlot.tsx"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,kGAAkG;AAClG,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,SAAgB,EAChB,WAAe,EACf,YAAkB,EAClB,MAAoB,EACpB,MAAmB,EACnB,KAAmB,EACnB,WAAW,EACX,SAAS,GACV,EAAE,iBAAiB,+BAmInB"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cx } from "./_cx.js";
4
+ import { countLabel, finiteRange, rangeText, summaryNumber } from "./description.js";
3
5
  import { buildFrame, makeScale, niceExtent, round, stdDev, ticks, } from "./geometry.js";
4
6
  import { N4_PARTITION_COLORS, N4_VIZ_COLORS } from "./theme.js";
5
7
  function resolveResidual(point) {
@@ -31,7 +33,8 @@ function fmt(value) {
31
33
  * SVG; hosts pass points (residual or actual) and (optionally) precomputed
32
34
  * colors.
33
35
  */
34
- export function ResidualPlot({ points, width = 420, height = 260, padding, sigmaBand = true, pointRadius = 3, pointOpacity = 0.7, xLabel = "Predicted", yLabel = "Residual", title = "Residuals", className, }) {
36
+ export function ResidualPlot({ points, width = 420, height = 260, padding, sigmaBand = true, pointRadius = 3, pointOpacity = 0.7, xLabel = "Predicted", yLabel = "Residual", title = "Residuals", description, className, }) {
37
+ const descriptionId = useId();
35
38
  const frame = buildFrame(width, height, padding);
36
39
  const { top, left } = frame.padding;
37
40
  const bottom = top + frame.innerHeight;
@@ -42,7 +45,8 @@ export function ResidualPlot({ points, width = 420, height = 260, padding, sigma
42
45
  const residuals = resolved.map((p) => p.residual);
43
46
  const sigma = stdDev(residuals);
44
47
  const twoSigma = 2 * sigma;
45
- const maxAbs = Math.max(1e-9, ...residuals.map((r) => Math.abs(r)), sigmaBand ? twoSigma : 0);
48
+ const residualRange = finiteRange(residuals);
49
+ const maxAbs = Math.max(1e-9, Math.abs(residualRange?.min ?? 0), Math.abs(residualRange?.max ?? 0), sigmaBand ? twoSigma : 0);
46
50
  const safeMaxAbs = Number.isFinite(maxAbs) && maxAbs > 0 ? maxAbs : 1;
47
51
  const yDomain = niceExtent([-safeMaxAbs, safeMaxAbs], 0.08);
48
52
  const xDomain = niceExtent(resolved.map((p) => p.predicted), 0.06);
@@ -51,7 +55,18 @@ export function ResidualPlot({ points, width = 420, height = 260, padding, sigma
51
55
  const xTicks = ticks(xDomain, 5);
52
56
  const yTicks = ticks(yDomain, 5);
53
57
  const showSigma = sigmaBand && Number.isFinite(sigma) && sigma > 0 && resolved.length > 1;
54
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-residual", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), showSigma
58
+ const meanResidual = residuals.length
59
+ ? residuals.reduce((sum, value) => sum + value, 0) / residuals.length
60
+ : null;
61
+ const summary = description?.trim() || (resolved.length === 0
62
+ ? "No valid residual observations."
63
+ : [
64
+ countLabel(resolved.length, "valid residual observation"),
65
+ `residual range ${rangeText(residuals)}`,
66
+ `mean residual ${summaryNumber(meanResidual)}`,
67
+ ...(showSigma ? [`two-standard-deviation guides at ±${summaryNumber(twoSigma)}`] : []),
68
+ ].join("; ") + ".");
69
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-residual", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, "aria-describedby": descriptionId, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("desc", { id: descriptionId, children: summary }), yTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(t)), y2: round(yScale(t)) }, `gy-${t}`))), showSigma
55
70
  ? [twoSigma, -twoSigma].map((s) => (_jsx("line", { className: "n4viz-reference n4viz-sigma", x1: left, x2: right, y1: round(yScale(s)), y2: round(yScale(s)), stroke: N4_VIZ_COLORS.amber, strokeDasharray: "5 4", strokeWidth: 1.3 }, `sigma-${s}`)))
56
71
  : null, _jsx("line", { className: "n4viz-reference n4viz-zero", x1: left, x2: right, y1: round(yScale(0)), y2: round(yScale(0)), stroke: N4_VIZ_COLORS.slate, strokeWidth: 1.4 }), resolved.map((p, i) => (_jsx("circle", { className: "n4viz-dot", cx: round(xScale(p.predicted)), cy: round(yScale(p.residual)), r: pointRadius, fill: p.color, fillOpacity: pointOpacity }, i))), _jsx("line", { className: "n4viz-axis", x1: left, x2: right, y1: bottom, y2: bottom }), _jsx("line", { className: "n4viz-axis", x1: left, x2: left, y1: top, y2: bottom }), xTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: round(xScale(t)), y: bottom + 15, textAnchor: "middle", children: fmt(t) }, `tx-${t}`))), yTicks.map((t) => (_jsx("text", { className: "n4viz-tick", x: left - 6, y: round(yScale(t)) + 3, textAnchor: "end", children: fmt(t) }, `ty-${t}`))), _jsx("text", { className: "n4viz-axis-label", x: left + frame.innerWidth / 2, y: height - 2, textAnchor: "middle", children: xLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(11 ${top + frame.innerHeight / 2}) rotate(-90)`, textAnchor: "middle", children: yLabel })] }));
57
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResidualPlot.js","sourceRoot":"","sources":["../../src/viz/ResidualPlot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResidualPlot.js","sourceRoot":"","sources":["../../src/viz/ResidualPlot.tsx"],"names":[],"mappings":"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"}