@schemavaults/ui 0.100.0 → 0.102.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/layout/dashboard-layout/DashboardLayoutProps.d.ts +19 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js +7 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout-reduced-motion.d.ts +43 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-reduced-motion.js +41 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-reduced-motion.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout.d.ts +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout.js +22 -8
- package/dist/components/layout/dashboard-layout/dashboard-layout.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js +3 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.js +14 -6
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js +13 -6
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js +11 -4
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-layout.js +6 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-layout.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js +9 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js.map +1 -1
- package/dist/components/layout/dashboard-layout/index.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/index.js +4 -0
- package/dist/components/layout/dashboard-layout/index.js.map +1 -1
- package/dist/components/layout/dashboard-layout/useDashboardLayoutReducedMotion.d.ts +36 -0
- package/dist/components/layout/dashboard-layout/useDashboardLayoutReducedMotion.js +55 -0
- package/dist/components/layout/dashboard-layout/useDashboardLayoutReducedMotion.js.map +1 -0
- package/dist/components/layout/dashboard-layout/useToggleDashboardLayoutCollapsedTransitionTime.d.ts +14 -0
- package/dist/components/layout/dashboard-layout/useToggleDashboardLayoutCollapsedTransitionTime.js +21 -0
- package/dist/components/layout/dashboard-layout/useToggleDashboardLayoutCollapsedTransitionTime.js.map +1 -0
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/scatter-plot/index.d.ts +3 -0
- package/dist/components/ui/scatter-plot/index.js +3 -0
- package/dist/components/ui/scatter-plot/index.js.map +1 -0
- package/dist/components/ui/scatter-plot/scatter-plot.d.ts +169 -0
- package/dist/components/ui/scatter-plot/scatter-plot.js +385 -0
- package/dist/components/ui/scatter-plot/scatter-plot.js.map +1 -0
- package/dist/framer-motion.d.ts +2 -2
- package/dist/framer-motion.js +1 -1
- package/dist/framer-motion.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { cn } from "../../../lib/utils";
|
|
6
|
+
export const scatterPlotSizeIds = [
|
|
7
|
+
"sm",
|
|
8
|
+
"md",
|
|
9
|
+
"lg",
|
|
10
|
+
"xl",
|
|
11
|
+
];
|
|
12
|
+
export const scatterPlotColorIds = [
|
|
13
|
+
"default",
|
|
14
|
+
"primary",
|
|
15
|
+
"positive",
|
|
16
|
+
"warning",
|
|
17
|
+
"destructive",
|
|
18
|
+
"muted",
|
|
19
|
+
];
|
|
20
|
+
export const scatterPlotShapeIds = [
|
|
21
|
+
"circle",
|
|
22
|
+
"square",
|
|
23
|
+
"triangle",
|
|
24
|
+
"diamond",
|
|
25
|
+
];
|
|
26
|
+
/** Default canvas dimensions per size. Either axis can be overridden via the
|
|
27
|
+
* `width` / `height` props. */
|
|
28
|
+
const SIZE_TO_CANVAS = {
|
|
29
|
+
sm: { width: 240, height: 180 },
|
|
30
|
+
md: { width: 360, height: 260 },
|
|
31
|
+
lg: { width: 480, height: 340 },
|
|
32
|
+
xl: { width: 640, height: 440 },
|
|
33
|
+
};
|
|
34
|
+
const FILL_CLASSES = {
|
|
35
|
+
default: "fill-schemavaults-brand-blue",
|
|
36
|
+
primary: "fill-primary",
|
|
37
|
+
positive: "fill-emerald-500 dark:fill-emerald-400",
|
|
38
|
+
warning: "fill-warning",
|
|
39
|
+
destructive: "fill-destructive",
|
|
40
|
+
muted: "fill-muted-foreground",
|
|
41
|
+
};
|
|
42
|
+
const STROKE_CLASSES = {
|
|
43
|
+
default: "stroke-schemavaults-brand-blue",
|
|
44
|
+
primary: "stroke-primary",
|
|
45
|
+
positive: "stroke-emerald-500 dark:stroke-emerald-400",
|
|
46
|
+
warning: "stroke-warning",
|
|
47
|
+
destructive: "stroke-destructive",
|
|
48
|
+
muted: "stroke-muted-foreground",
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Fallback color/shape rotation when a series doesn't specify its own. Index
|
|
52
|
+
* is the series position in the input array, modulo the palette length. Shapes
|
|
53
|
+
* rotate alongside colors so overlapping series stay distinguishable without
|
|
54
|
+
* relying on color alone.
|
|
55
|
+
*/
|
|
56
|
+
const DEFAULT_COLOR_ROTATION = [
|
|
57
|
+
"default",
|
|
58
|
+
"positive",
|
|
59
|
+
"warning",
|
|
60
|
+
"destructive",
|
|
61
|
+
"primary",
|
|
62
|
+
"muted",
|
|
63
|
+
];
|
|
64
|
+
const DEFAULT_SHAPE_ROTATION = [
|
|
65
|
+
"circle",
|
|
66
|
+
"triangle",
|
|
67
|
+
"square",
|
|
68
|
+
"diamond",
|
|
69
|
+
];
|
|
70
|
+
export const scatterPlotVariants = cva("relative inline-flex shrink-0 items-center justify-center", {
|
|
71
|
+
variants: {
|
|
72
|
+
size: {
|
|
73
|
+
sm: "text-[10px]",
|
|
74
|
+
md: "text-[11px]",
|
|
75
|
+
lg: "text-xs",
|
|
76
|
+
xl: "text-sm",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
defaultVariants: {
|
|
80
|
+
size: "md",
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
function isFiniteNumber(value) {
|
|
84
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
85
|
+
}
|
|
86
|
+
function round(value) {
|
|
87
|
+
return value.toFixed(2);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Build the `d` attribute for a marker centered at (cx, cy). Every shape is
|
|
91
|
+
* drawn as a path so markers share one element type (and therefore one set of
|
|
92
|
+
* event handlers and focus semantics).
|
|
93
|
+
*/
|
|
94
|
+
function buildMarkerPath(shape, cx, cy, r) {
|
|
95
|
+
switch (shape) {
|
|
96
|
+
case "square": {
|
|
97
|
+
// Half-side chosen so the square's area approximates the circle's.
|
|
98
|
+
const h = r * 0.886;
|
|
99
|
+
return `M ${round(cx - h)} ${round(cy - h)} H ${round(cx + h)} V ${round(cy + h)} H ${round(cx - h)} Z`;
|
|
100
|
+
}
|
|
101
|
+
case "triangle": {
|
|
102
|
+
// Equilateral triangle with circumradius scaled for equal visual weight.
|
|
103
|
+
const R = r * 1.2;
|
|
104
|
+
const points = [-90, 30, 150]
|
|
105
|
+
.map((deg) => {
|
|
106
|
+
const rad = (deg * Math.PI) / 180;
|
|
107
|
+
return `${round(cx + R * Math.cos(rad))} ${round(cy + R * Math.sin(rad))}`;
|
|
108
|
+
})
|
|
109
|
+
.join(" L ");
|
|
110
|
+
return `M ${points} Z`;
|
|
111
|
+
}
|
|
112
|
+
case "diamond": {
|
|
113
|
+
const R = r * 1.25;
|
|
114
|
+
return `M ${round(cx)} ${round(cy - R)} L ${round(cx + R)} ${round(cy)} L ${round(cx)} ${round(cy + R)} L ${round(cx - R)} ${round(cy)} Z`;
|
|
115
|
+
}
|
|
116
|
+
case "circle":
|
|
117
|
+
default:
|
|
118
|
+
return `M ${round(cx - r)} ${round(cy)} a ${round(r)} ${round(r)} 0 1 0 ${round(r * 2)} 0 a ${round(r)} ${round(r)} 0 1 0 ${round(-r * 2)} 0 Z`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Ordinary least-squares fit over the supplied domain points. Returns `null`
|
|
123
|
+
* when a line can't be determined (fewer than two points, or all x identical).
|
|
124
|
+
*/
|
|
125
|
+
function computeTrendLine(points) {
|
|
126
|
+
if (points.length < 2)
|
|
127
|
+
return null;
|
|
128
|
+
let sumX = 0;
|
|
129
|
+
let sumY = 0;
|
|
130
|
+
let sumXY = 0;
|
|
131
|
+
let sumXX = 0;
|
|
132
|
+
for (const p of points) {
|
|
133
|
+
sumX += p.x;
|
|
134
|
+
sumY += p.y;
|
|
135
|
+
sumXY += p.x * p.y;
|
|
136
|
+
sumXX += p.x * p.x;
|
|
137
|
+
}
|
|
138
|
+
const n = points.length;
|
|
139
|
+
const denominator = n * sumXX - sumX * sumX;
|
|
140
|
+
if (denominator === 0)
|
|
141
|
+
return null;
|
|
142
|
+
const slope = (n * sumXY - sumX * sumY) / denominator;
|
|
143
|
+
const intercept = (sumY - slope * sumX) / n;
|
|
144
|
+
if (!Number.isFinite(slope) || !Number.isFinite(intercept))
|
|
145
|
+
return null;
|
|
146
|
+
return { slope, intercept };
|
|
147
|
+
}
|
|
148
|
+
function ScatterPlot({ series, label, size, width, height, xMin, xMax, yMin, yMax, pointRadius = 4, sizeRange = [4, 14], pointOpacity = 0.8, showAxis = true, gridLineCount = 0, verticalGridLineCount = 0, xTickFormatter, xTickCount = 5, showXAxisLabels = false, yTickFormatter, yTickCount = 5, showYAxisLabels = false, yTickLabelWidth = 36, xAxisTitle, yAxisTitle, xReferenceLines, yReferenceLines, showValueLabels = false, valueLabelFormatter, onPointClick, emptyMessage = "No data", children, className, overlayClassName, valueLabelClassName, tickLabelClassName, axisClassName, ref, ...props }) {
|
|
149
|
+
const resolvedSize = size ?? "md";
|
|
150
|
+
const canvas = SIZE_TO_CANVAS[resolvedSize];
|
|
151
|
+
const W = width ?? canvas.width;
|
|
152
|
+
const H = height ?? canvas.height;
|
|
153
|
+
const titleId = useId();
|
|
154
|
+
const hasXAxisLabels = typeof xTickFormatter === "function" || showXAxisLabels;
|
|
155
|
+
const hasYAxisLabels = typeof yTickFormatter === "function" || showYAxisLabels;
|
|
156
|
+
// Reserve gutters for axis labels / titles.
|
|
157
|
+
const padTop = showValueLabels ? 16 : 8;
|
|
158
|
+
const padBottom = (hasXAxisLabels ? 20 : 8) + (xAxisTitle ? 16 : 0);
|
|
159
|
+
const padLeft = (hasYAxisLabels ? Math.max(8, yTickLabelWidth) : 8) +
|
|
160
|
+
(yAxisTitle ? 16 : 0);
|
|
161
|
+
const padRight = 10;
|
|
162
|
+
const plotX0 = padLeft;
|
|
163
|
+
const plotY0 = padTop;
|
|
164
|
+
const plotW = Math.max(0, W - padLeft - padRight);
|
|
165
|
+
const plotH = Math.max(0, H - padTop - padBottom);
|
|
166
|
+
// Determine the domain across all series, ignoring non-finite coordinates.
|
|
167
|
+
let domainXMin = Number.POSITIVE_INFINITY;
|
|
168
|
+
let domainXMax = Number.NEGATIVE_INFINITY;
|
|
169
|
+
let domainYMin = Number.POSITIVE_INFINITY;
|
|
170
|
+
let domainYMax = Number.NEGATIVE_INFINITY;
|
|
171
|
+
let domainSizeMin = Number.POSITIVE_INFINITY;
|
|
172
|
+
let domainSizeMax = Number.NEGATIVE_INFINITY;
|
|
173
|
+
let totalFinitePoints = 0;
|
|
174
|
+
for (const s of series) {
|
|
175
|
+
for (const p of s.points) {
|
|
176
|
+
if (!isFiniteNumber(p.x) || !isFiniteNumber(p.y))
|
|
177
|
+
continue;
|
|
178
|
+
totalFinitePoints += 1;
|
|
179
|
+
if (p.x < domainXMin)
|
|
180
|
+
domainXMin = p.x;
|
|
181
|
+
if (p.x > domainXMax)
|
|
182
|
+
domainXMax = p.x;
|
|
183
|
+
if (p.y < domainYMin)
|
|
184
|
+
domainYMin = p.y;
|
|
185
|
+
if (p.y > domainYMax)
|
|
186
|
+
domainYMax = p.y;
|
|
187
|
+
if (isFiniteNumber(p.size)) {
|
|
188
|
+
if (p.size < domainSizeMin)
|
|
189
|
+
domainSizeMin = p.size;
|
|
190
|
+
if (p.size > domainSizeMax)
|
|
191
|
+
domainSizeMax = p.size;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const hasData = totalFinitePoints > 0;
|
|
196
|
+
const hasSizedPoints = Number.isFinite(domainSizeMin) && Number.isFinite(domainSizeMax);
|
|
197
|
+
const effectiveXMin = isFiniteNumber(xMin)
|
|
198
|
+
? xMin
|
|
199
|
+
: hasData
|
|
200
|
+
? domainXMin
|
|
201
|
+
: 0;
|
|
202
|
+
const effectiveXMax = isFiniteNumber(xMax)
|
|
203
|
+
? xMax
|
|
204
|
+
: hasData
|
|
205
|
+
? domainXMax
|
|
206
|
+
: 1;
|
|
207
|
+
const effectiveYMin = isFiniteNumber(yMin)
|
|
208
|
+
? yMin
|
|
209
|
+
: hasData
|
|
210
|
+
? domainYMin
|
|
211
|
+
: 0;
|
|
212
|
+
const effectiveYMax = isFiniteNumber(yMax)
|
|
213
|
+
? yMax
|
|
214
|
+
: hasData
|
|
215
|
+
? domainYMax
|
|
216
|
+
: 1;
|
|
217
|
+
const xSpan = effectiveXMax > effectiveXMin ? effectiveXMax - effectiveXMin : 1;
|
|
218
|
+
const ySpan = effectiveYMax > effectiveYMin ? effectiveYMax - effectiveYMin : 1;
|
|
219
|
+
const [minRadius, maxRadius] = sizeRange;
|
|
220
|
+
// Inset the data area so markers sitting on the domain edges aren't clipped.
|
|
221
|
+
const markerPad = hasSizedPoints
|
|
222
|
+
? Math.max(minRadius, maxRadius) + 2
|
|
223
|
+
: pointRadius + 2;
|
|
224
|
+
const innerW = Math.max(0, plotW - markerPad * 2);
|
|
225
|
+
const innerH = Math.max(0, plotH - markerPad * 2);
|
|
226
|
+
const projectX = (x) => plotX0 + markerPad + ((x - effectiveXMin) / xSpan) * innerW;
|
|
227
|
+
const projectY = (y) => plotY0 + markerPad + innerH - ((y - effectiveYMin) / ySpan) * innerH;
|
|
228
|
+
const sizeSpan = hasSizedPoints
|
|
229
|
+
? domainSizeMax - domainSizeMin
|
|
230
|
+
: 0;
|
|
231
|
+
const resolveRadius = (point, seriesRadius) => {
|
|
232
|
+
if (!hasSizedPoints || !isFiniteNumber(point.size))
|
|
233
|
+
return seriesRadius;
|
|
234
|
+
if (sizeSpan <= 0)
|
|
235
|
+
return maxRadius;
|
|
236
|
+
// Square-root scale: marker *area* tracks the value, not the radius.
|
|
237
|
+
const t = (point.size - domainSizeMin) / sizeSpan;
|
|
238
|
+
return minRadius + (maxRadius - minRadius) * Math.sqrt(t);
|
|
239
|
+
};
|
|
240
|
+
const resolved = series.map((s, seriesIndex) => {
|
|
241
|
+
const colorId = s.colorId ??
|
|
242
|
+
DEFAULT_COLOR_ROTATION[seriesIndex % DEFAULT_COLOR_ROTATION.length];
|
|
243
|
+
const shape = s.shape ??
|
|
244
|
+
DEFAULT_SHAPE_ROTATION[seriesIndex % DEFAULT_SHAPE_ROTATION.length];
|
|
245
|
+
const seriesRadius = s.pointRadius ?? pointRadius;
|
|
246
|
+
const points = [];
|
|
247
|
+
s.points.forEach((p, index) => {
|
|
248
|
+
if (!isFiniteNumber(p.x) || !isFiniteNumber(p.y))
|
|
249
|
+
return;
|
|
250
|
+
points.push({
|
|
251
|
+
point: p,
|
|
252
|
+
x: projectX(p.x),
|
|
253
|
+
y: projectY(p.y),
|
|
254
|
+
r: resolveRadius(p, seriesRadius),
|
|
255
|
+
index,
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
return {
|
|
259
|
+
series: s,
|
|
260
|
+
points,
|
|
261
|
+
colorId,
|
|
262
|
+
shape,
|
|
263
|
+
opacity: s.pointOpacity ?? pointOpacity,
|
|
264
|
+
};
|
|
265
|
+
});
|
|
266
|
+
const horizontalGridLines = (() => {
|
|
267
|
+
if (gridLineCount <= 0)
|
|
268
|
+
return [];
|
|
269
|
+
const lines = [];
|
|
270
|
+
for (let i = 1; i <= gridLineCount; i += 1) {
|
|
271
|
+
lines.push(i / (gridLineCount + 1));
|
|
272
|
+
}
|
|
273
|
+
return lines;
|
|
274
|
+
})();
|
|
275
|
+
const verticalGridLines = (() => {
|
|
276
|
+
if (verticalGridLineCount <= 0)
|
|
277
|
+
return [];
|
|
278
|
+
const lines = [];
|
|
279
|
+
for (let i = 1; i <= verticalGridLineCount; i += 1) {
|
|
280
|
+
lines.push(i / (verticalGridLineCount + 1));
|
|
281
|
+
}
|
|
282
|
+
return lines;
|
|
283
|
+
})();
|
|
284
|
+
const xTicks = (() => {
|
|
285
|
+
if (!hasXAxisLabels || !hasData)
|
|
286
|
+
return [];
|
|
287
|
+
const count = Math.max(2, xTickCount);
|
|
288
|
+
const ticks = [];
|
|
289
|
+
for (let i = 0; i < count; i += 1) {
|
|
290
|
+
const t = i / (count - 1);
|
|
291
|
+
const value = effectiveXMin + t * xSpan;
|
|
292
|
+
const text = typeof xTickFormatter === "function"
|
|
293
|
+
? xTickFormatter(value, i)
|
|
294
|
+
: String(value);
|
|
295
|
+
if (text === null || text === "")
|
|
296
|
+
continue;
|
|
297
|
+
ticks.push({ x: projectX(value), text });
|
|
298
|
+
}
|
|
299
|
+
return ticks;
|
|
300
|
+
})();
|
|
301
|
+
const yTicks = (() => {
|
|
302
|
+
if (!hasYAxisLabels || !hasData)
|
|
303
|
+
return [];
|
|
304
|
+
const count = Math.max(2, yTickCount);
|
|
305
|
+
const ticks = [];
|
|
306
|
+
for (let i = 0; i < count; i += 1) {
|
|
307
|
+
// Iterate top-down (i = 0 -> yMax) so the first call to a custom
|
|
308
|
+
// formatter receives the largest value -- the order most consumers
|
|
309
|
+
// expect.
|
|
310
|
+
const t = i / (count - 1);
|
|
311
|
+
const value = effectiveYMax - t * ySpan;
|
|
312
|
+
const text = typeof yTickFormatter === "function"
|
|
313
|
+
? yTickFormatter(value, i)
|
|
314
|
+
: String(value);
|
|
315
|
+
if (text === null || text === "")
|
|
316
|
+
continue;
|
|
317
|
+
ticks.push({ y: projectY(value), text });
|
|
318
|
+
}
|
|
319
|
+
return ticks;
|
|
320
|
+
})();
|
|
321
|
+
return (_jsxs("div", { ref: ref, role: "img", "aria-labelledby": titleId, "data-slot": "scatter-plot", className: cn(scatterPlotVariants({ size }), className), style: { width: W, height: H }, ...props, children: [_jsxs("svg", { width: W, height: H, viewBox: `0 0 ${W} ${H}`, "aria-hidden": children ? "true" : undefined, className: "h-full w-full overflow-visible", children: [_jsx("title", { id: titleId, children: label }), horizontalGridLines.length > 0 || verticalGridLines.length > 0 ? (_jsxs("g", { "aria-hidden": "true", "data-slot": "scatter-plot-gridlines", className: "pointer-events-none", children: [horizontalGridLines.map((t) => {
|
|
322
|
+
const y = plotY0 + plotH - t * plotH;
|
|
323
|
+
return (_jsx("line", { x1: plotX0, y1: y, x2: plotX0 + plotW, y2: y, strokeWidth: 1, className: cn("stroke-border/60", axisClassName) }, `h-grid-${t}`));
|
|
324
|
+
}), verticalGridLines.map((t) => {
|
|
325
|
+
const x = plotX0 + t * plotW;
|
|
326
|
+
return (_jsx("line", { x1: x, y1: plotY0, x2: x, y2: plotY0 + plotH, strokeWidth: 1, className: cn("stroke-border/60", axisClassName) }, `v-grid-${t}`));
|
|
327
|
+
})] })) : null, showAxis ? (_jsxs("g", { "aria-hidden": "true", "data-slot": "scatter-plot-axis", className: "pointer-events-none", children: [_jsx("line", { x1: plotX0, y1: plotY0, x2: plotX0, y2: plotY0 + plotH, strokeWidth: 1, className: cn("stroke-border", axisClassName) }), _jsx("line", { x1: plotX0, y1: plotY0 + plotH, x2: plotX0 + plotW, y2: plotY0 + plotH, strokeWidth: 1, className: cn("stroke-border", axisClassName) })] })) : null, hasData && xReferenceLines && xReferenceLines.length > 0 ? (_jsx("g", { "aria-hidden": "true", "data-slot": "scatter-plot-x-reference-lines", className: "pointer-events-none select-none", children: xReferenceLines.map((line, index) => {
|
|
328
|
+
const x = projectX(line.value);
|
|
329
|
+
return (_jsxs("g", { children: [_jsx("line", { x1: x, y1: plotY0, x2: x, y2: plotY0 + plotH, strokeWidth: 1, strokeDasharray: "4 3", className: cn("stroke-muted-foreground/70", line.className) }), line.label ? (_jsx("text", { x: x + 4, y: plotY0 + 8, className: "fill-muted-foreground", children: line.label })) : null] }, `x-ref-${index}-${line.value}`));
|
|
330
|
+
}) })) : null, hasData && yReferenceLines && yReferenceLines.length > 0 ? (_jsx("g", { "aria-hidden": "true", "data-slot": "scatter-plot-y-reference-lines", className: "pointer-events-none select-none", children: yReferenceLines.map((line, index) => {
|
|
331
|
+
const y = projectY(line.value);
|
|
332
|
+
return (_jsxs("g", { children: [_jsx("line", { x1: plotX0, y1: y, x2: plotX0 + plotW, y2: y, strokeWidth: 1, strokeDasharray: "4 3", className: cn("stroke-muted-foreground/70", line.className) }), line.label ? (_jsx("text", { x: plotX0 + plotW - 4, y: y - 4, textAnchor: "end", className: "fill-muted-foreground", children: line.label })) : null] }, `y-ref-${index}-${line.value}`));
|
|
333
|
+
}) })) : null, !hasData ? (_jsx("text", { x: W / 2, y: H / 2, textAnchor: "middle", dominantBaseline: "central", className: "fill-muted-foreground", children: emptyMessage })) : (resolved.map((rs) => {
|
|
334
|
+
const rawColor = rs.series.color;
|
|
335
|
+
const fillClass = rawColor
|
|
336
|
+
? undefined
|
|
337
|
+
: FILL_CLASSES[rs.colorId];
|
|
338
|
+
const strokeClass = rawColor
|
|
339
|
+
? undefined
|
|
340
|
+
: STROKE_CLASSES[rs.colorId];
|
|
341
|
+
const handler = rs.series.onPointClick ?? onPointClick;
|
|
342
|
+
const isInteractive = typeof handler === "function";
|
|
343
|
+
const trend = rs.series.trendLine
|
|
344
|
+
? computeTrendLine(rs.series.points.filter((p) => isFiniteNumber(p.x) && isFiniteNumber(p.y)))
|
|
345
|
+
: null;
|
|
346
|
+
return (_jsxs("g", { "data-slot": "scatter-plot-series", "data-series-id": rs.series.id, children: [trend ? (_jsx("line", { "aria-hidden": "true", "data-slot": "scatter-plot-trend-line", x1: projectX(effectiveXMin), y1: projectY(trend.slope * effectiveXMin + trend.intercept), x2: projectX(effectiveXMax), y2: projectY(trend.slope * effectiveXMax + trend.intercept), stroke: rawColor, strokeWidth: 1.5, strokeDasharray: "5 4", strokeLinecap: "round", className: cn("pointer-events-none", strokeClass) })) : null, rs.points.map((rp) => {
|
|
347
|
+
const pointKey = rp.point.id ?? `${rs.series.id}-${rp.index}`;
|
|
348
|
+
const seriesName = rs.series.label ?? rs.series.id;
|
|
349
|
+
const ariaLabel = rp.point.label
|
|
350
|
+
? `${seriesName} – ${rp.point.label}: (${rp.point.x}, ${rp.point.y})`
|
|
351
|
+
: `${seriesName}: (${rp.point.x}, ${rp.point.y})`;
|
|
352
|
+
return (_jsx("path", { d: buildMarkerPath(rs.shape, rp.x, rp.y, rp.r), fill: rawColor ?? "currentColor", fillOpacity: rs.opacity, stroke: "hsl(var(--background))", strokeWidth: 1, "data-point-index": rp.index, "data-testid": `scatter-plot-point-${pointKey}`, role: isInteractive ? "button" : undefined, tabIndex: isInteractive ? 0 : undefined, "aria-label": ariaLabel, onClick: isInteractive
|
|
353
|
+
? (event) => {
|
|
354
|
+
handler(rp.point, rs.series, event);
|
|
355
|
+
}
|
|
356
|
+
: undefined, onKeyDown: isInteractive
|
|
357
|
+
? (event) => {
|
|
358
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
359
|
+
event.preventDefault();
|
|
360
|
+
handler(rp.point, rs.series, event);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
: undefined, className: cn("transition-opacity", fillClass, isInteractive &&
|
|
364
|
+
"cursor-pointer hover:opacity-80 focus:outline-none focus-visible:opacity-60", rs.series.className), children: _jsx("title", { children: ariaLabel }) }, pointKey));
|
|
365
|
+
}), showValueLabels
|
|
366
|
+
? rs.points.map((rp) => {
|
|
367
|
+
const text = valueLabelFormatter
|
|
368
|
+
? valueLabelFormatter({
|
|
369
|
+
series: rs.series,
|
|
370
|
+
point: rp.point,
|
|
371
|
+
index: rp.index,
|
|
372
|
+
})
|
|
373
|
+
: (rp.point.label ??
|
|
374
|
+
`(${rp.point.x}, ${rp.point.y})`);
|
|
375
|
+
if (text === null || text === "")
|
|
376
|
+
return null;
|
|
377
|
+
const labelKey = (rp.point.id ?? `${rs.series.id}-${rp.index}`) + "-val";
|
|
378
|
+
return (_jsx("text", { x: rp.x, y: rp.y - rp.r - 4, textAnchor: "middle", className: cn("pointer-events-none select-none fill-foreground font-medium", valueLabelClassName), children: text }, labelKey));
|
|
379
|
+
})
|
|
380
|
+
: null] }, rs.series.id));
|
|
381
|
+
})), xTicks.length > 0 ? (_jsx("g", { "aria-hidden": "true", "data-slot": "scatter-plot-x-ticks", className: "pointer-events-none select-none", children: xTicks.map((tick, index) => (_jsxs("g", { children: [_jsx("line", { x1: tick.x, x2: tick.x, y1: plotY0 + plotH, y2: plotY0 + plotH + 3, strokeWidth: 1, className: cn("stroke-border", axisClassName) }), _jsx("text", { x: tick.x, y: plotY0 + plotH + 14, textAnchor: "middle", className: cn("fill-muted-foreground", tickLabelClassName), children: tick.text })] }, `xtick-${index}-${tick.text}`))) })) : null, yTicks.length > 0 ? (_jsx("g", { "aria-hidden": "true", "data-slot": "scatter-plot-y-ticks", className: "pointer-events-none select-none", children: yTicks.map((tick, index) => (_jsxs("g", { children: [_jsx("line", { x1: plotX0 - 3, x2: plotX0, y1: tick.y, y2: tick.y, strokeWidth: 1, className: cn("stroke-border", axisClassName) }), _jsx("text", { x: plotX0 - 6, y: tick.y, textAnchor: "end", dominantBaseline: "central", className: cn("fill-muted-foreground", tickLabelClassName), children: tick.text })] }, `ytick-${index}-${tick.text}`))) })) : null, xAxisTitle ? (_jsx("text", { "aria-hidden": "true", "data-slot": "scatter-plot-x-axis-title", x: plotX0 + plotW / 2, y: H - 2, textAnchor: "middle", className: "pointer-events-none select-none fill-muted-foreground font-medium", children: xAxisTitle })) : null, yAxisTitle ? (_jsx("text", { "aria-hidden": "true", "data-slot": "scatter-plot-y-axis-title", x: 10, y: plotY0 + plotH / 2, textAnchor: "middle", transform: `rotate(-90 10 ${plotY0 + plotH / 2})`, className: "pointer-events-none select-none fill-muted-foreground font-medium", children: yAxisTitle })) : null] }), children ? (_jsx("div", { className: cn("pointer-events-none absolute inset-0 flex items-center justify-center text-center", overlayClassName), children: children })) : null] }));
|
|
382
|
+
}
|
|
383
|
+
ScatterPlot.displayName = "ScatterPlot";
|
|
384
|
+
export { ScatterPlot };
|
|
385
|
+
//# sourceMappingURL=scatter-plot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scatter-plot.js","sourceRoot":"","sources":["../../../../src/components/ui/scatter-plot/scatter-plot.tsx"],"names":[],"mappings":"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"}
|
package/dist/framer-motion.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { m, animate, AnimatePresence, domAnimation, LazyMotion, Reorder, useAnimate, useAnimationFrame, useTransform, useMotionValue, usePresence, useScroll, useSpring, useMotionValueEvent, useReducedMotion, } from "framer-motion";
|
|
2
|
-
export type { MotionValue, AnimationScope } from "framer-motion";
|
|
1
|
+
export { m, animate, AnimatePresence, domAnimation, LazyMotion, MotionConfig, MotionConfigContext, Reorder, useAnimate, useAnimationFrame, useTransform, useMotionValue, usePresence, useScroll, useSpring, useMotionValueEvent, useReducedMotion, useReducedMotionConfig, } from "framer-motion";
|
|
2
|
+
export type { MotionValue, AnimationScope, MotionConfigProps, } from "framer-motion";
|
package/dist/framer-motion.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { m, animate, AnimatePresence, domAnimation, LazyMotion, Reorder, useAnimate, useAnimationFrame, useTransform, useMotionValue, usePresence, useScroll, useSpring, useMotionValueEvent, useReducedMotion, } from "framer-motion";
|
|
2
|
+
export { m, animate, AnimatePresence, domAnimation, LazyMotion, MotionConfig, MotionConfigContext, Reorder, useAnimate, useAnimationFrame, useTransform, useMotionValue, usePresence, useScroll, useSpring, useMotionValueEvent, useReducedMotion, useReducedMotionConfig, } from "framer-motion";
|
|
3
3
|
//# sourceMappingURL=framer-motion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framer-motion.js","sourceRoot":"","sources":["../src/framer-motion.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EACL,CAAC,EACD,OAAO,EACP,eAAe,EACf,YAAY,EACZ,UAAU,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"framer-motion.js","sourceRoot":"","sources":["../src/framer-motion.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EACL,CAAC,EACD,OAAO,EACP,eAAe,EACf,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
|