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":"BiasVarianceBars.js","sourceRoot":"","sources":["../../src/viz/BiasVarianceBars.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BiasVarianceBars.js","sourceRoot":"","sources":["../../src/viz/BiasVarianceBars.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ export interface BoxPlotProps {
12
12
  padding?: PlotPadding;
13
13
  yLabel?: string;
14
14
  title?: string;
15
+ /** Faithful host-provided text alternative; defaults to a data summary. */
16
+ description?: string;
15
17
  className?: string;
16
18
  }
17
19
  /**
@@ -20,5 +22,5 @@ export interface BoxPlotProps {
20
22
  * a median line, whiskers over the min→max span, and dots for 1.5·IQR outliers.
21
23
  * Pure inline SVG; hosts pass grouped raw values.
22
24
  */
23
- export declare function BoxPlot({ groups, width, height, padding, yLabel, title, className, }: BoxPlotProps): import("react").JSX.Element;
25
+ export declare function BoxPlot({ groups, width, height, padding, yLabel, title, description, className, }: BoxPlotProps): import("react").JSX.Element;
24
26
  //# sourceMappingURL=BoxPlot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxPlot.d.ts","sourceRoot":"","sources":["../../src/viz/BoxPlot.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAgB,EAChB,KAA4B,EAC5B,SAAS,GACV,EAAE,YAAY,+BAmJd"}
1
+ {"version":3,"file":"BoxPlot.d.ts","sourceRoot":"","sources":["../../src/viz/BoxPlot.tsx"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,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;AASD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAgB,EAChB,KAA4B,EAC5B,WAAW,EACX,SAAS,GACV,EAAE,YAAY,+BAiKd"}
@@ -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, fiveNumberSummary, makeScale, niceExtent, round, ticks, } from "./geometry.js";
4
6
  import { categoricalColor } from "./theme.js";
5
7
  function fmt(value) {
@@ -17,7 +19,8 @@ function fmt(value) {
17
19
  * a median line, whiskers over the min→max span, and dots for 1.5·IQR outliers.
18
20
  * Pure inline SVG; hosts pass grouped raw values.
19
21
  */
20
- export function BoxPlot({ groups, width = 420, height = 260, padding, yLabel = "Score", title = "Score distribution", className, }) {
22
+ export function BoxPlot({ groups, width = 420, height = 260, padding, yLabel = "Score", title = "Score distribution", description, className, }) {
23
+ const descriptionId = useId();
21
24
  const frame = buildFrame(width, height, padding);
22
25
  const { top, left } = frame.padding;
23
26
  const bottom = top + frame.innerHeight;
@@ -28,7 +31,17 @@ export function BoxPlot({ groups, width = 420, height = 260, padding, yLabel = "
28
31
  const yTicks = ticks(yDomain, 5);
29
32
  const slotW = groups.length > 0 ? frame.innerWidth / groups.length : frame.innerWidth;
30
33
  const boxHalf = Math.min(slotW * 0.28, 26);
31
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-boxplot", 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}`))), groups.map((group, i) => {
34
+ const groupSummaries = groups.flatMap((group) => {
35
+ const validCount = group.values.filter((value) => Number.isFinite(value)).length;
36
+ if (validCount === 0)
37
+ return [];
38
+ const stats = fiveNumberSummary(group.values);
39
+ return [`${group.label}: ${countLabel(validCount, "value")}, median ${summaryNumber(stats.median)}, range ${summaryNumber(stats.min)} to ${summaryNumber(stats.max)}`];
40
+ });
41
+ const summary = description?.trim() || (groupSummaries.length === 0
42
+ ? "No finite grouped scores."
43
+ : `${countLabel(groupSummaries.length, "group")}; ${groupSummaries.join("; ")}.`);
44
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-boxplot", 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}`))), groups.map((group, i) => {
32
45
  const center = left + (i + 0.5) * slotW;
33
46
  const summary = fiveNumberSummary(group.values);
34
47
  const color = group.color ?? categoricalColor(i);
@@ -1 +1 @@
1
- {"version":3,"file":"BoxPlot.js","sourceRoot":"","sources":["../../src/viz/BoxPlot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoxPlot.js","sourceRoot":"","sources":["../../src/viz/BoxPlot.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 { ConformalPredictionRow } from "../conformal/result.js";
4
4
  /** One nested prediction interval at a nominal coverage level. */
@@ -38,6 +38,8 @@ export interface ConformalIntervalStripProps {
38
38
  /** Sequential ramp (pale → dark) for widest → narrowest nested band. */
39
39
  bandStops?: readonly string[];
40
40
  title?: string;
41
+ /** Faithful host-provided text alternative; defaults to a data summary. */
42
+ description?: string;
41
43
  yLabel?: string;
42
44
  xLabel?: string;
43
45
  className?: string;
@@ -62,5 +64,5 @@ export declare function conformalStripSamplesFromRows(rows: readonly ConformalPr
62
64
  * uncertainty read together. Pure inline SVG; hosts pass already-shaped samples
63
65
  * (adapt `conformal` rows with {@link conformalStripSamplesFromRows}).
64
66
  */
65
- export declare function ConformalIntervalStrip({ samples, width, height, padding, sort, targetCoverage, unit, maxSamples, coveredColor, missedColor, predictionColor, bandStops, title, yLabel, xLabel, className, children, }: ConformalIntervalStripProps): import("react").JSX.Element;
67
+ export declare function ConformalIntervalStrip({ samples, width, height, padding, sort, targetCoverage, unit, maxSamples, coveredColor, missedColor, predictionColor, bandStops, title, description, yLabel, xLabel, className, children, }: ConformalIntervalStripProps): import("react").JSX.Element;
66
68
  //# sourceMappingURL=ConformalIntervalStrip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConformalIntervalStrip.d.ts","sourceRoot":"","sources":["../../src/viz/ConformalIntervalStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,kEAAmE,CAAC;AAMrG,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAyB,GAAG,MAAM,CAEhH;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,sBAAsB,EAAE,EACvC,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC/C,oBAAoB,EAAE,CAOxB;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,KAAW,EACX,MAAY,EACZ,OAAO,EACP,IAAc,EACd,cAAqB,EACrB,IAAI,EACJ,UAAgB,EAChB,YAA4B,EAC5B,WAA0B,EAC1B,eAAkC,EAClC,SAAgC,EAChC,KAAwC,EACxC,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,2BAA2B,+BA8N7B"}
1
+ {"version":3,"file":"ConformalIntervalStrip.d.ts","sourceRoot":"","sources":["../../src/viz/ConformalIntervalStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,kEAAmE,CAAC;AAMrG,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAyB,GAAG,MAAM,CAEhH;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,sBAAsB,EAAE,EACvC,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC/C,oBAAoB,EAAE,CAOxB;AAuCD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,KAAW,EACX,MAAY,EACZ,OAAO,EACP,IAAc,EACd,cAAqB,EACrB,IAAI,EACJ,UAAgB,EAChB,YAA4B,EAC5B,WAA0B,EAC1B,eAAkC,EAClC,SAAgC,EAChC,KAAwC,EACxC,WAAW,EACX,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,2BAA2B,+BA8O7B"}
@@ -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, makeScale, niceExtent, round, ticks, } from "./geometry.js";
4
6
  import { N4_VIZ_COLORS, rampAt } from "./theme.js";
5
7
  /** Sequential teal ramp: widest coverage (least certain area) is palest. */
@@ -37,6 +39,10 @@ function fmtCoverage(coverage) {
37
39
  const percent = coverage * 100;
38
40
  return `${Number.isInteger(percent) ? percent.toFixed(0) : percent.toFixed(1)}%`;
39
41
  }
42
+ function validBand(band) {
43
+ return Number.isFinite(band.coverage) && band.coverage >= 0 && band.coverage <= 1
44
+ && Number.isFinite(band.lower) && Number.isFinite(band.upper) && band.lower <= band.upper;
45
+ }
40
46
  function sampleWidth(sample, coverage) {
41
47
  const band = sample.bands.find((candidate) => candidate.coverage === coverage) ?? widestBand(sample);
42
48
  return band ? band.upper - band.lower : Number.POSITIVE_INFINITY;
@@ -66,13 +72,15 @@ function isCovered(sample, coverage) {
66
72
  * uncertainty read together. Pure inline SVG; hosts pass already-shaped samples
67
73
  * (adapt `conformal` rows with {@link conformalStripSamplesFromRows}).
68
74
  */
69
- export function ConformalIntervalStrip({ samples, width = 640, height = 340, padding, sort = "index", targetCoverage = null, unit, maxSamples = 400, coveredColor = COVERED_COLOR, missedColor = MISSED_COLOR, predictionColor = PREDICTION_COLOR, bandStops = CONFORMAL_BAND_STOPS, title = "Conformal prediction intervals", yLabel, xLabel, className, children, }) {
75
+ export function ConformalIntervalStrip({ samples, width = 640, height = 340, padding, sort = "index", targetCoverage = null, unit, maxSamples = 400, coveredColor = COVERED_COLOR, missedColor = MISSED_COLOR, predictionColor = PREDICTION_COLOR, bandStops = CONFORMAL_BAND_STOPS, title = "Conformal prediction intervals", description, yLabel, xLabel, className, children, }) {
76
+ const descriptionId = useId();
70
77
  const frame = buildFrame(width, height, padding ?? { top: 58, right: 18, bottom: 38, left: 50 });
71
78
  const { top, left } = frame.padding;
72
79
  const bottom = top + frame.innerHeight;
73
80
  const right = left + frame.innerWidth;
74
- const valid = samples.filter((sample) => Number.isFinite(sample.prediction)
75
- && sample.bands.some((band) => Number.isFinite(band.lower) && Number.isFinite(band.upper)));
81
+ const valid = samples
82
+ .map((sample) => ({ ...sample, bands: sample.bands.filter(validBand) }))
83
+ .filter((sample) => Number.isFinite(sample.prediction) && sample.bands.length > 0);
76
84
  const coverages = [...new Set(valid.flatMap((sample) => sample.bands.map((band) => band.coverage)))]
77
85
  .filter((coverage) => Number.isFinite(coverage))
78
86
  .sort((leftCoverage, rightCoverage) => rightCoverage - leftCoverage);
@@ -124,8 +132,20 @@ export function ConformalIntervalStrip({ samples, width = 640, height = 340, pad
124
132
  }
125
133
  const observed = evaluated > 0 ? covered / evaluated : null;
126
134
  const hasActuals = evaluated > 0;
135
+ const hasKnownActuals = drawn.some((sample) => sample.actual != null && Number.isFinite(sample.actual));
127
136
  const axisLabelY = yLabel ?? (unit ? `Value (${unit})` : "Value");
128
137
  const axisLabelX = xLabel ?? `Samples (n = ${valid.length})`;
138
+ const summary = description?.trim() || (valid.length === 0
139
+ ? "No valid prediction intervals."
140
+ : [
141
+ `${countLabel(valid.length, "valid prediction")}; ${drawn.length} shown${truncated ? `, ${truncated} omitted` : ""}`,
142
+ ...(Number.isFinite(target) ? [`target interval ${fmtCoverage(target)}`] : []),
143
+ ...(observed != null
144
+ ? [`observed coverage ${summaryNumber(observed * 100)}% (${covered} of ${evaluated} known actual values)`]
145
+ : [hasKnownActuals
146
+ ? "observed coverage unavailable without evaluable target intervals"
147
+ : "observed coverage unavailable without known actual values"]),
148
+ ].join("; ") + ".");
129
149
  // ---- SVG legend (deterministic mono-width slots) ----
130
150
  const legendItems = [
131
151
  ...coverages.map((coverage) => ({ kind: "band", color: shadeOf(coverage), label: fmtCoverage(coverage) })),
@@ -136,7 +156,7 @@ export function ConformalIntervalStrip({ samples, width = 640, height = 340, pad
136
156
  }
137
157
  let legendCursor = left;
138
158
  const legendY = top - 16;
139
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-conformal-strip", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), _jsx("text", { className: "n4viz-conf-title", x: left, y: top - 34, children: title }), legendItems.map((item, index) => {
159
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-conformal-strip", 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 }), _jsx("text", { className: "n4viz-conf-title", x: left, y: top - 34, children: title }), legendItems.map((item, index) => {
140
160
  const swatchX = legendCursor;
141
161
  const textX = swatchX + 15;
142
162
  const advance = 15 + item.label.length * 6.2 + 16;
@@ -145,7 +165,7 @@ export function ConformalIntervalStrip({ samples, width = 640, height = 340, pad
145
165
  }), observed != null ? (_jsx("text", { className: "n4viz-conf-readout", x: right, y: top - 34, textAnchor: "end", children: `target ${fmtCoverage(target)} · obs ${fmtCoverage(observed)} (${covered}/${evaluated})` })) : Number.isFinite(target) ? (_jsx("text", { className: "n4viz-conf-readout", x: right, y: top - 34, textAnchor: "end", children: `target ${fmtCoverage(target)}` })) : null, yTicks.map((tick) => (_jsx("line", { className: "n4viz-grid", x1: left, x2: right, y1: round(yScale(tick)), y2: round(yScale(tick)) }, `grid-${tick}`))), drawn.map((sample, index) => {
146
166
  const xc = left + (index + 0.5) * slot;
147
167
  const bands = [...sample.bands]
148
- .filter((band) => Number.isFinite(band.lower) && Number.isFinite(band.upper))
168
+ .filter(validBand)
149
169
  .sort((a, b) => b.coverage - a.coverage);
150
170
  const state = isCovered(sample, target);
151
171
  return (_jsxs("g", { className: "n4viz-conf-col", children: [bands.map((band) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ConformalIntervalStrip.js","sourceRoot":"","sources":["../../src/viz/ConformalIntervalStrip.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConformalIntervalStrip.js","sourceRoot":"","sources":["../../src/viz/ConformalIntervalStrip.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface ConfusionMatrixProps {
13
13
  xLabel?: string;
14
14
  yLabel?: string;
15
15
  title?: string;
16
+ /** Faithful host-provided text alternative; defaults to a data summary. */
17
+ description?: string;
16
18
  className?: string;
17
19
  }
18
20
  /**
@@ -20,5 +22,5 @@ export interface ConfusionMatrixProps {
20
22
  * amber off-diagonal) — the Studio Inspector / Web results classification view.
21
23
  * Pure inline SVG; hosts pass labels + a counts matrix.
22
24
  */
23
- export declare function ConfusionMatrix({ labels, matrix, normalize, width, height, cellColor, showCounts, xLabel, yLabel, title, className, }: ConfusionMatrixProps): import("react").JSX.Element;
25
+ export declare function ConfusionMatrix({ labels, matrix, normalize, width, height, cellColor, showCounts, xLabel, yLabel, title, description, className, }: ConfusionMatrixProps): import("react").JSX.Element;
24
26
  //# sourceMappingURL=ConfusionMatrix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfusionMatrix.d.ts","sourceRoot":"","sources":["../../src/viz/ConfusionMatrix.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,iDAAiD;IACjD,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACzC,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,MAAM,EACN,SAAiB,EACjB,KAAW,EACX,MAAY,EACZ,SAA4B,EAC5B,UAAiB,EACjB,MAAoB,EACpB,MAAiB,EACjB,KAA0B,EAC1B,SAAS,GACV,EAAE,oBAAoB,+BA+FtB"}
1
+ {"version":3,"file":"ConfusionMatrix.d.ts","sourceRoot":"","sources":["../../src/viz/ConfusionMatrix.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,iDAAiD;IACjD,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACzC,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,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;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,MAAM,EACN,SAAiB,EACjB,KAAW,EACX,MAAY,EACZ,SAA4B,EAC5B,UAAiB,EACjB,MAAoB,EACpB,MAAiB,EACjB,KAA0B,EAC1B,WAAW,EACX,SAAS,GACV,EAAE,oBAAoB,+BAsHtB"}
@@ -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
  function mix(hex, intensity) {
@@ -14,7 +16,8 @@ function defaultCellColor(intensity, isDiagonal) {
14
16
  * amber off-diagonal) — the Studio Inspector / Web results classification view.
15
17
  * Pure inline SVG; hosts pass labels + a counts matrix.
16
18
  */
17
- export function ConfusionMatrix({ labels, matrix, normalize = false, width = 320, height = 320, cellColor = defaultCellColor, showCounts = true, xLabel = "Predicted", yLabel = "Actual", title = "Confusion matrix", className, }) {
19
+ export function ConfusionMatrix({ labels, matrix, normalize = false, width = 320, height = 320, cellColor = defaultCellColor, showCounts = true, xLabel = "Predicted", yLabel = "Actual", title = "Confusion matrix", description, className, }) {
20
+ const descriptionId = useId();
18
21
  const n = labels.length;
19
22
  const padLeft = 46;
20
23
  const padTop = 30;
@@ -24,16 +27,34 @@ export function ConfusionMatrix({ labels, matrix, normalize = false, width = 320
24
27
  const gridH = Math.max(0, height - padTop - padBottom);
25
28
  const cellW = n > 0 ? gridW / n : gridW;
26
29
  const cellH = n > 0 ? gridH / n : gridH;
27
- const globalMax = Math.max(1, ...matrix.flatMap((row) => row.map((v) => (Number.isFinite(v) ? v : 0))));
28
- const rowTotals = matrix.map((row) => Math.max(1, row.reduce((s, v) => s + (Number.isFinite(v) ? v : 0), 0)));
29
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-confusion", className), viewBox: `0 0 ${width} ${height}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), labels.map((_, trueIdx) => labels.map((__, predIdx) => {
30
- const value = matrix[trueIdx]?.[predIdx] ?? 0;
30
+ const counts = labels.map((_, row) => labels.map((__, col) => {
31
+ const value = matrix.length === 0 ? 0 : matrix[row]?.[col];
32
+ return value != null && Number.isFinite(value) && value >= 0 ? value : null;
33
+ }));
34
+ const globalMax = counts.flat().reduce((max, value) => Math.max(max, value ?? 0), 1);
35
+ const classTotals = counts.map((row) => row.every((value) => value != null)
36
+ ? row.reduce((sum, value) => sum + value, 0) : Number.NaN);
37
+ const rowTotals = classTotals.map((total) => Number.isFinite(total) ? Math.max(1, total) : null);
38
+ const total = classTotals.reduce((sum, value) => sum + value, 0);
39
+ const correct = labels.reduce((sum, _, index) => sum + (counts[index]?.[index] ?? Number.NaN), 0);
40
+ const unavailable = counts.flat().filter((value) => value == null).length;
41
+ const summary = description?.trim() || (unavailable || !Number.isFinite(total)
42
+ ? `${countLabel(n, "class", "classes")}; classification counts unavailable${unavailable ? ` (${countLabel(unavailable, "unavailable cell")})` : ""}; accuracy unavailable.`
43
+ : total === 0
44
+ ? `${countLabel(n, "class", "classes")}; no classified observations.`
45
+ : [
46
+ `${countLabel(n, "class", "classes")} and ${countLabel(total, "classified observation")}`,
47
+ `${summaryNumber(correct)} correct (${summaryNumber((correct / total) * 100)}%)`,
48
+ ...labels.map((label, index) => `${label}: ${summaryNumber(counts[index]?.[index] ?? 0)} of ${summaryNumber(classTotals[index] ?? 0)} correct`),
49
+ ].join("; ") + ".");
50
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-confusion", 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 }), labels.map((_, trueIdx) => labels.map((__, predIdx) => {
51
+ const value = counts[trueIdx]?.[predIdx] ?? null;
31
52
  const denom = normalize ? (rowTotals[trueIdx] ?? 1) : globalMax;
32
- const intensity = denom > 0 ? value / denom : 0;
53
+ const intensity = value != null && (!normalize || rowTotals[trueIdx] != null) ? value / denom : null;
33
54
  const x = padLeft + predIdx * cellW;
34
55
  const y = padTop + trueIdx * cellH;
35
56
  const isDiagonal = trueIdx === predIdx;
36
- return (_jsxs("g", { children: [_jsx("rect", { className: "n4viz-cell", x: round(x + 1), y: round(y + 1), width: round(cellW - 2), height: round(cellH - 2), rx: 4, fill: cellColor(intensity, isDiagonal), stroke: isDiagonal ? N4_VIZ_COLORS.teal : "transparent", strokeOpacity: 0.5 }), showCounts ? (_jsx("text", { className: cx("n4viz-cell-value", intensity > 0.55 ? "n4viz-cell-value-strong" : undefined), x: round(x + cellW / 2), y: round(y + cellH / 2 + 4), textAnchor: "middle", children: normalize ? (value / (rowTotals[trueIdx] ?? 1)).toFixed(2) : value })) : null] }, `c-${trueIdx}-${predIdx}`));
57
+ return (_jsxs("g", { children: [_jsx("rect", { className: "n4viz-cell", x: round(x + 1), y: round(y + 1), width: round(cellW - 2), height: round(cellH - 2), rx: 4, fill: intensity == null ? "transparent" : cellColor(intensity, isDiagonal), stroke: isDiagonal ? N4_VIZ_COLORS.teal : "transparent", strokeOpacity: 0.5 }), showCounts ? (_jsx("text", { className: cx("n4viz-cell-value", intensity != null && intensity > 0.55 ? "n4viz-cell-value-strong" : undefined), x: round(x + cellW / 2), y: round(y + cellH / 2 + 4), textAnchor: "middle", children: intensity == null ? "—" : normalize ? intensity.toFixed(2) : value })) : null] }, `c-${trueIdx}-${predIdx}`));
37
58
  })), labels.map((label, i) => (_jsx("text", { className: "n4viz-tick", x: padLeft - 6, y: round(padTop + i * cellH + cellH / 2 + 3), textAnchor: "end", children: label }, `row-${label}-${i}`))), labels.map((label, i) => (_jsx("text", { className: "n4viz-tick", x: round(padLeft + i * cellW + cellW / 2), y: padTop - 8, textAnchor: "middle", children: label }, `col-${label}-${i}`))), _jsx("text", { className: "n4viz-axis-label", x: padLeft + gridW / 2, y: height - 4, textAnchor: "middle", children: xLabel }), _jsx("text", { className: "n4viz-axis-label", transform: `translate(12 ${padTop + gridH / 2}) rotate(-90)`, textAnchor: "middle", children: yLabel })] }));
38
59
  }
39
60
  //# sourceMappingURL=ConfusionMatrix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfusionMatrix.js","sourceRoot":"","sources":["../../src/viz/ConfusionMatrix.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfusionMatrix.js","sourceRoot":"","sources":["../../src/viz/ConfusionMatrix.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsB3C,SAAS,GAAG,CAAC,GAAW,EAAE,SAAiB;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACpD,OAAO,sBAAsB,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,UAAmB;IAC9D,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,EACN,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,SAAS,GAAG,gBAAgB,EAC5B,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,WAAW,EACpB,MAAM,GAAG,QAAQ,EACjB,KAAK,GAAG,kBAAkB,EAC1B,WAAW,EACX,SAAS,GACY;IACrB,MAAM,aAAa,GAAG,KAAK,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;QACzE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,OAAO,GAAG,WAAW,EAAE,IAAI,EAAE,IAAI,CACrC,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,sCAAsC,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB;QAC3K,CAAC,CAAC,KAAK,KAAK,CAAC;YACb,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,+BAA+B;YACrE,CAAC,CAAC;gBACE,GAAG,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,UAAU,CAAC,KAAK,EAAE,wBAAwB,CAAC,EAAE;gBACzF,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,aAAa,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI;gBAChF,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;aAChJ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CACvB,CAAC;IAEF,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,EACpD,OAAO,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,EACjC,IAAI,EAAC,KAAK,gBACE,KAAK,sBACC,aAAa,EAC/B,mBAAmB,EAAC,eAAe,aAEnC,0BAAQ,KAAK,GAAS,EACtB,eAAM,EAAE,EAAE,aAAa,YAAG,OAAO,GAAQ,EAExC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBACjD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChE,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrG,MAAM,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;gBACpC,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;gBACnC,MAAM,UAAU,GAAG,OAAO,KAAK,OAAO,CAAC;gBACvC,OAAO,CACL,wBACE,eACE,SAAS,EAAC,YAAY,EACtB,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EACf,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EACvB,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,EACL,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAC1E,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EACvD,aAAa,EAAE,GAAG,GAClB,EACD,UAAU,CAAC,CAAC,CAAC,CACZ,eACE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,EAChH,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,EACvB,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAC3B,UAAU,EAAC,QAAQ,YAElB,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAC9D,CACR,CAAC,CAAC,CAAC,IAAI,KArBF,KAAK,OAAO,IAAI,OAAO,EAAE,CAsB7B,CACL,CAAC;YACJ,CAAC,CAAC,CACH,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,eAEE,SAAS,EAAC,YAAY,EACtB,CAAC,EAAE,OAAO,GAAG,CAAC,EACd,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAC5C,UAAU,EAAC,KAAK,YAEf,KAAK,IAND,OAAO,KAAK,IAAI,CAAC,EAAE,CAOnB,CACR,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,eAEE,SAAS,EAAC,YAAY,EACtB,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,EACzC,CAAC,EAAE,MAAM,GAAG,CAAC,EACb,UAAU,EAAC,QAAQ,YAElB,KAAK,IAND,OAAO,KAAK,IAAI,CAAC,EAAE,CAOnB,CACR,CAAC,EAEF,eAAM,SAAS,EAAC,kBAAkB,EAAC,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,UAAU,EAAC,QAAQ,YAC1F,MAAM,GACF,EACP,eACE,SAAS,EAAC,kBAAkB,EAC5B,SAAS,EAAE,gBAAgB,MAAM,GAAG,KAAK,GAAG,CAAC,eAAe,EAC5D,UAAU,EAAC,QAAQ,YAElB,MAAM,GACF,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -14,6 +14,8 @@ export interface FeatureImportanceBarProps {
14
14
  /** Auto-sized from `topN` when omitted. */
15
15
  height?: number;
16
16
  title?: string;
17
+ /** Faithful host-provided text alternative; defaults to a data summary. */
18
+ description?: string;
17
19
  className?: string;
18
20
  }
19
21
  /**
@@ -22,5 +24,5 @@ export interface FeatureImportanceBarProps {
22
24
  * N, left-labels each bar and prints its value on the right. Pure inline SVG;
23
25
  * hosts pass precomputed importances.
24
26
  */
25
- export declare function FeatureImportanceBar({ items, topN, barColor, valueFormat, width, height, title, className, }: FeatureImportanceBarProps): import("react").JSX.Element;
27
+ export declare function FeatureImportanceBar({ items, topN, barColor, valueFormat, width, height, title, description, className, }: FeatureImportanceBarProps): import("react").JSX.Element;
26
28
  //# sourceMappingURL=FeatureImportanceBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureImportanceBar.d.ts","sourceRoot":"","sources":["../../src/viz/FeatureImportanceBar.tsx"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IACjC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAS,EACT,QAA6B,EAC7B,WAA2B,EAC3B,KAAW,EACX,MAAM,EACN,KAA4B,EAC5B,SAAS,GACV,EAAE,yBAAyB,+BA6F3B"}
1
+ {"version":3,"file":"FeatureImportanceBar.d.ts","sourceRoot":"","sources":["../../src/viz/FeatureImportanceBar.tsx"],"names":[],"mappings":"AAOA,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IACjC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,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,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAS,EACT,QAA6B,EAC7B,WAA2B,EAC3B,KAAW,EACX,MAAM,EACN,KAA4B,EAC5B,WAAW,EACX,SAAS,GACV,EAAE,yBAAyB,+BAsG3B"}
@@ -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 { makeScale, round, ticks } from "./geometry.js";
4
6
  import { N4_VIZ_COLORS } from "./theme.js";
5
7
  function defaultFormat(value) {
@@ -20,9 +22,10 @@ function truncate(label, max = 15) {
20
22
  * N, left-labels each bar and prints its value on the right. Pure inline SVG;
21
23
  * hosts pass precomputed importances.
22
24
  */
23
- export function FeatureImportanceBar({ items, topN = 12, barColor = N4_VIZ_COLORS.teal, valueFormat = defaultFormat, width = 360, height, title = "Feature importance", className, }) {
25
+ export function FeatureImportanceBar({ items, topN = 12, barColor = N4_VIZ_COLORS.teal, valueFormat = defaultFormat, width = 360, height, title = "Feature importance", description, className, }) {
26
+ const descriptionId = useId();
24
27
  const keep = Math.max(0, Math.trunc(topN));
25
- const sorted = [...items].sort((a, b) => b.value - a.value).slice(0, keep);
28
+ const sorted = items.filter((item) => Number.isFinite(item.value)).sort((a, b) => b.value - a.value).slice(0, keep);
26
29
  const resolvedHeight = height ?? Math.max(160, keep * 22 + 48);
27
30
  const padLeft = 96;
28
31
  const padRight = 46;
@@ -40,7 +43,11 @@ export function FeatureImportanceBar({ items, topN = 12, barColor = N4_VIZ_COLOR
40
43
  const n = sorted.length;
41
44
  const band = n > 0 ? plotHeight / n : plotHeight;
42
45
  const barHeight = Math.min(18, Math.max(4, band - 8));
43
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-importance", className), viewBox: `0 0 ${width} ${resolvedHeight}`, role: "img", "aria-label": title, preserveAspectRatio: "xMidYMid meet", children: [_jsx("title", { children: title }), axisTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: plotTop, y2: plotBottom }, `grid-${t}`))), sorted.map((item, i) => {
46
+ const valid = sorted.filter((item) => Number.isFinite(item.value));
47
+ const summary = description?.trim() || (valid.length === 0
48
+ ? "No finite feature importance values."
49
+ : `${countLabel(valid.length, "shown feature")}${items.length > sorted.length ? ` of ${items.length} supplied` : ""}; ${valid.map((item) => `${item.label}: ${summaryNumber(item.value)}`).join("; ")}.`);
50
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-importance", 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 }), axisTicks.map((t) => (_jsx("line", { className: "n4viz-grid", x1: round(xScale(t)), x2: round(xScale(t)), y1: plotTop, y2: plotBottom }, `grid-${t}`))), sorted.map((item, i) => {
44
51
  const center = plotTop + band * i + band / 2;
45
52
  const barEnd = xScale(item.value);
46
53
  return (_jsxs("g", { children: [_jsx("text", { className: "n4viz-tick", x: plotLeft - 6, y: round(center + 3), textAnchor: "end", children: truncate(item.label) }), _jsx("rect", { className: "n4viz-bar", x: plotLeft, y: round(center - barHeight / 2), width: round(Math.max(0, barEnd - plotLeft)), height: round(barHeight), rx: 2, fill: item.color ?? barColor }), _jsx("text", { className: "n4viz-badge", x: round(barEnd + 4), y: round(center + 3), textAnchor: "start", children: valueFormat(item.value) })] }, `${item.label}-${i}`));
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureImportanceBar.js","sourceRoot":"","sources":["../../src/viz/FeatureImportanceBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeatureImportanceBar.js","sourceRoot":"","sources":["../../src/viz/FeatureImportanceBar.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface FoldStabilityLinesProps {
17
17
  padding?: PlotPadding;
18
18
  yLabel?: string;
19
19
  title?: string;
20
+ /** Faithful host-provided text alternative; defaults to a data summary. */
21
+ description?: string;
20
22
  className?: string;
21
23
  }
22
24
  /**
@@ -25,5 +27,5 @@ export interface FoldStabilityLinesProps {
25
27
  * cross-series mean line and a shaded min/max envelope highlighting agreement.
26
28
  * Pure inline SVG; hosts pass per-fold score arrays.
27
29
  */
28
- export declare function FoldStabilityLines({ series, foldLabels, showMean, width, height, padding, yLabel, title, className, }: FoldStabilityLinesProps): import("react").JSX.Element;
30
+ export declare function FoldStabilityLines({ series, foldLabels, showMean, width, height, padding, yLabel, title, description, className, }: FoldStabilityLinesProps): import("react").JSX.Element;
29
31
  //# sourceMappingURL=FoldStabilityLines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FoldStabilityLines.d.ts","sourceRoot":"","sources":["../../src/viz/FoldStabilityLines.tsx"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,oFAAoF;IACpF,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,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,UAAU,EACV,QAAe,EACf,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAgB,EAChB,KAAwB,EACxB,SAAS,GACV,EAAE,uBAAuB,+BA0HzB"}
1
+ {"version":3,"file":"FoldStabilityLines.d.ts","sourceRoot":"","sources":["../../src/viz/FoldStabilityLines.tsx"],"names":[],"mappings":"AAIA,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,oFAAoF;IACpF,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,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,UAAU,EACV,QAAe,EACf,KAAW,EACX,MAAY,EACZ,OAAO,EACP,MAAgB,EAChB,KAAwB,EACxB,WAAW,EACX,SAAS,GACV,EAAE,uBAAuB,+BAwIzB"}
@@ -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 { bandPath, buildFrame, linePath, makeScale, mean, niceExtent, round, ticks, } from "./geometry.js";
4
6
  import { categoricalColor, N4_VIZ_COLORS } from "./theme.js";
5
7
  function fmt(value) {
@@ -17,7 +19,8 @@ function fmt(value) {
17
19
  * cross-series mean line and a shaded min/max envelope highlighting agreement.
18
20
  * Pure inline SVG; hosts pass per-fold score arrays.
19
21
  */
20
- export function FoldStabilityLines({ series, foldLabels, showMean = true, width = 460, height = 260, padding, yLabel = "Score", title = "Fold stability", className, }) {
22
+ export function FoldStabilityLines({ series, foldLabels, showMean = true, width = 460, height = 260, padding, yLabel = "Score", title = "Fold stability", description, className, }) {
23
+ const descriptionId = useId();
21
24
  const frame = buildFrame(width, height, padding);
22
25
  const { top, left } = frame.padding;
23
26
  const bottom = top + frame.innerHeight;
@@ -43,7 +46,16 @@ export function FoldStabilityLines({ series, foldLabels, showMean = true, width
43
46
  const meanPoints = foldStats.map((f) => [xAt(f.i), yScale(f.mean)]);
44
47
  const upperPoints = foldStats.map((f) => [xAt(f.i), yScale(f.max)]);
45
48
  const lowerPoints = foldStats.map((f) => [xAt(f.i), yScale(f.min)]);
46
- return (_jsxs("svg", { className: cx("n4viz", "n4viz-foldstability", 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}`))), showEnvelope ? (_jsx("path", { className: "n4viz-band", d: bandPath(upperPoints, lowerPoints), fill: N4_VIZ_COLORS.teal, fillOpacity: 0.12, stroke: "none" })) : null, series.map((s, i) => {
49
+ const seriesSummaries = series.flatMap((item) => {
50
+ const scores = item.scores.filter((value) => Number.isFinite(value));
51
+ return scores.length
52
+ ? [`${item.label ?? item.id}: ${countLabel(scores.length, "score")}, mean ${summaryNumber(mean(scores))}, range ${rangeText(scores)}`]
53
+ : [];
54
+ });
55
+ const summary = description?.trim() || (seriesSummaries.length === 0
56
+ ? "No finite fold scores."
57
+ : `${countLabel(seriesSummaries.length, "score series", "score series")} across ${countLabel(foldCount, "fold")}; ${seriesSummaries.join("; ")}.`);
58
+ return (_jsxs("svg", { className: cx("n4viz", "n4viz-foldstability", 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}`))), showEnvelope ? (_jsx("path", { className: "n4viz-band", d: bandPath(upperPoints, lowerPoints), fill: N4_VIZ_COLORS.teal, fillOpacity: 0.12, stroke: "none" })) : null, series.map((s, i) => {
47
59
  const points = [];
48
60
  s.scores.forEach((v, fi) => {
49
61
  if (Number.isFinite(v))