@schemavaults/ui 0.82.0 → 0.83.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.
@@ -182,6 +182,8 @@ export * from "./bar-chart";
182
182
  export type * from "./bar-chart";
183
183
  export * from "./line-chart";
184
184
  export type * from "./line-chart";
185
+ export * from "./radar-chart";
186
+ export type * from "./radar-chart";
185
187
  export * from "./comparison-slider";
186
188
  export type * from "./comparison-slider";
187
189
  export * from "./theme-selector";
@@ -90,6 +90,7 @@ export * from "./calendar-heatmap";
90
90
  export * from "./pie-chart";
91
91
  export * from "./bar-chart";
92
92
  export * from "./line-chart";
93
+ export * from "./radar-chart";
93
94
  export * from "./comparison-slider";
94
95
  export * from "./theme-selector";
95
96
  export * from "./tree-view";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { RadarChart, radarChartVariants, radarChartSizeIds, radarChartColorIds, radarChartGridShapeIds, } from "./radar-chart";
2
+ export type * from "./radar-chart";
3
+ export { RadarChart as default } from "./radar-chart";
@@ -0,0 +1,3 @@
1
+ export { RadarChart, radarChartVariants, radarChartSizeIds, radarChartColorIds, radarChartGridShapeIds, } from "./radar-chart";
2
+ export { RadarChart as default } from "./radar-chart";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/radar-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,146 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import type { HTMLAttributes, KeyboardEvent, MouseEvent, ReactElement, ReactNode, Ref } from "react";
3
+ export declare const radarChartSizeIds: ["sm", "md", "lg", "xl"];
4
+ export type RadarChartSizeId = (typeof radarChartSizeIds)[number];
5
+ export declare const radarChartColorIds: ["default", "primary", "positive", "warning", "destructive", "muted"];
6
+ export type RadarChartColorId = (typeof radarChartColorIds)[number];
7
+ export declare const radarChartGridShapeIds: ["polygon", "circle"];
8
+ export type RadarChartGridShapeId = (typeof radarChartGridShapeIds)[number];
9
+ export declare const radarChartVariants: (props?: ({
10
+ size?: "sm" | "lg" | "xl" | "md" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ export interface RadarChartAxis {
13
+ /** Stable identifier used as React key. */
14
+ id: string;
15
+ /** Human-readable label placed at the axis tip. */
16
+ label?: string;
17
+ /**
18
+ * Optional per-axis maximum. Overrides the chart-level `max` for scaling
19
+ * this axis' values only. Useful when axes are measured on different scales.
20
+ */
21
+ max?: number;
22
+ /**
23
+ * Optional per-axis minimum. Overrides the chart-level `min` for scaling
24
+ * this axis' values only.
25
+ */
26
+ min?: number;
27
+ }
28
+ export interface RadarChartSeriesPoint {
29
+ /** Numeric value for the axis at the same index. Non-finite = gap. */
30
+ value: number;
31
+ /** Human-readable label used in aria-labels and tooltips. */
32
+ label?: string;
33
+ }
34
+ export interface RadarChartSeries {
35
+ /** Stable identifier used as React key and click payload. */
36
+ id: string;
37
+ /** Display name for the series. */
38
+ label?: string;
39
+ /**
40
+ * One value per axis, in axis order. Extra values are ignored and missing
41
+ * values are treated as gaps. Values may be raw numbers or point objects
42
+ * with an optional label.
43
+ */
44
+ values: ReadonlyArray<number | RadarChartSeriesPoint>;
45
+ /** Preset color id from the chart palette. Ignored if `stroke` is provided. */
46
+ color?: RadarChartColorId;
47
+ /**
48
+ * Override the stroke with a raw CSS color (e.g. `"#ff0080"` or
49
+ * `"hsl(var(--chart-1))"`). Takes precedence over `color`.
50
+ */
51
+ stroke?: string;
52
+ /** Fill the shape. Defaults to the chart-level `area` (true). */
53
+ area?: boolean;
54
+ /** Opacity applied to the filled area. Defaults to `0.2`. */
55
+ fillOpacity?: number;
56
+ /** Stroke width in user units. Defaults to `2`. */
57
+ strokeWidth?: number;
58
+ /** Stroke dash pattern, e.g. `"4 3"`. Defaults to a solid line. */
59
+ strokeDasharray?: string;
60
+ /** Override the chart-level `showPoints`. */
61
+ showPoints?: boolean;
62
+ /** Extra classes applied to this series' shape `<path>`. */
63
+ className?: string;
64
+ /** Fired when a vertex in this series is clicked or activated via keyboard. */
65
+ onPointClick?: (axis: RadarChartAxis, value: number, series: RadarChartSeries, event: MouseEvent<SVGCircleElement> | KeyboardEvent<SVGCircleElement>) => void;
66
+ }
67
+ export interface RadarChartValueLabelContext {
68
+ series: RadarChartSeries;
69
+ axis: RadarChartAxis;
70
+ value: number;
71
+ axisIndex: number;
72
+ }
73
+ export interface RadarChartProps extends Omit<HTMLAttributes<HTMLDivElement>, "onClick">, VariantProps<typeof radarChartVariants> {
74
+ /** Axes to render, in order (clockwise starting from 12 o'clock). */
75
+ axes: ReadonlyArray<RadarChartAxis>;
76
+ /** Series to render, in order (later series are drawn on top). */
77
+ series: ReadonlyArray<RadarChartSeries>;
78
+ /** Accessible label describing what the chart represents. */
79
+ label: string;
80
+ /** Override the rendered diameter in pixels (defaults are size-aware). */
81
+ diameter?: number;
82
+ /**
83
+ * Lower bound of the value axis. Defaults to `0`. Applied per-axis unless the
84
+ * axis specifies its own `min`.
85
+ */
86
+ min?: number;
87
+ /**
88
+ * Upper bound of the value axis. Defaults to the largest value across
89
+ * series. Applied per-axis unless the axis specifies its own `max`.
90
+ */
91
+ max?: number;
92
+ /**
93
+ * Angle in degrees at which the first axis is placed. `0` = 12 o'clock;
94
+ * positive rotates clockwise. Defaults to `0`.
95
+ */
96
+ startAngle?: number;
97
+ /**
98
+ * Number of concentric grid rings (excluding the outer boundary). Defaults
99
+ * to `4`. Set to `0` to hide grid rings.
100
+ */
101
+ gridLevels?: number;
102
+ /** Shape of the grid rings. Defaults to `"polygon"`. */
103
+ gridShape?: RadarChartGridShapeId;
104
+ /** Render the axis spokes. Defaults to `true`. */
105
+ showAxis?: boolean;
106
+ /** Render the axis labels at each spoke tip. Defaults to `true`. */
107
+ showAxisLabels?: boolean;
108
+ /** Render the outer boundary ring. Defaults to `true`. */
109
+ showBoundary?: boolean;
110
+ /**
111
+ * Fill the area under each series' shape. Individual series can override.
112
+ * Defaults to `true`.
113
+ */
114
+ area?: boolean;
115
+ /** Render point markers at every axis vertex. Defaults to `false`. */
116
+ showPoints?: boolean;
117
+ /** Render a value label at every axis vertex. Defaults to `false`. */
118
+ showValueLabels?: boolean;
119
+ /**
120
+ * Customize the value-label text. Return `null` to skip a point. Defaults
121
+ * to the raw value (`String(value)`).
122
+ */
123
+ valueLabelFormatter?: (context: RadarChartValueLabelContext) => string | null;
124
+ /**
125
+ * Fallback handler invoked for any point that doesn't have its own series-
126
+ * level `onPointClick`. Receives the axis, value, and series.
127
+ */
128
+ onPointClick?: (axis: RadarChartAxis, value: number, series: RadarChartSeries, event: MouseEvent<SVGCircleElement> | KeyboardEvent<SVGCircleElement>) => void;
129
+ /** Optional content overlaid at the center of the chart. */
130
+ children?: ReactNode;
131
+ /** Extra classes for the overlay content wrapper. */
132
+ overlayClassName?: string;
133
+ /** Extra classes applied to every axis label `<text>` element. */
134
+ axisLabelClassName?: string;
135
+ /** Extra classes applied to every value-label `<text>` element. */
136
+ valueLabelClassName?: string;
137
+ /** Extra classes applied to the grid / axis `<path>` / `<line>` elements. */
138
+ gridClassName?: string;
139
+ /** Optional ref forwarded to the wrapper element. */
140
+ ref?: Ref<HTMLDivElement>;
141
+ }
142
+ declare function RadarChart({ axes, series, label, size, diameter, min, max, startAngle, gridLevels, gridShape, showAxis, showAxisLabels, showBoundary, area, showPoints, showValueLabels, valueLabelFormatter, onPointClick, children, className, overlayClassName, axisLabelClassName, valueLabelClassName, gridClassName, ref, ...props }: RadarChartProps): ReactElement;
143
+ declare namespace RadarChart {
144
+ var displayName: string;
145
+ }
146
+ export { RadarChart };
@@ -0,0 +1,312 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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 radarChartSizeIds = [
7
+ "sm",
8
+ "md",
9
+ "lg",
10
+ "xl",
11
+ ];
12
+ export const radarChartColorIds = [
13
+ "default",
14
+ "primary",
15
+ "positive",
16
+ "warning",
17
+ "destructive",
18
+ "muted",
19
+ ];
20
+ export const radarChartGridShapeIds = [
21
+ "polygon",
22
+ "circle",
23
+ ];
24
+ const SIZE_TO_PIXELS = {
25
+ sm: 160,
26
+ md: 240,
27
+ lg: 320,
28
+ xl: 420,
29
+ };
30
+ const STROKE_CLASSES = {
31
+ default: "stroke-schemavaults-brand-blue",
32
+ primary: "stroke-primary",
33
+ positive: "stroke-emerald-500 dark:stroke-emerald-400",
34
+ warning: "stroke-warning",
35
+ destructive: "stroke-destructive",
36
+ muted: "stroke-muted-foreground",
37
+ };
38
+ const FILL_CLASSES = {
39
+ default: "fill-schemavaults-brand-blue",
40
+ primary: "fill-primary",
41
+ positive: "fill-emerald-500 dark:fill-emerald-400",
42
+ warning: "fill-warning",
43
+ destructive: "fill-destructive",
44
+ muted: "fill-muted-foreground",
45
+ };
46
+ const TEXT_CLASSES = {
47
+ default: "text-schemavaults-brand-blue",
48
+ primary: "text-primary",
49
+ positive: "text-emerald-500 dark:text-emerald-400",
50
+ warning: "text-warning",
51
+ destructive: "text-destructive",
52
+ muted: "text-muted-foreground",
53
+ };
54
+ /**
55
+ * Fallback color rotation when a series doesn't specify its own color. Index
56
+ * is the series position in the input array, modulo the palette length.
57
+ */
58
+ const DEFAULT_COLOR_ROTATION = [
59
+ "default",
60
+ "positive",
61
+ "warning",
62
+ "destructive",
63
+ "primary",
64
+ "muted",
65
+ ];
66
+ export const radarChartVariants = cva("relative inline-flex shrink-0 items-center justify-center", {
67
+ variants: {
68
+ size: {
69
+ sm: "text-[10px]",
70
+ md: "text-[11px]",
71
+ lg: "text-xs",
72
+ xl: "text-sm",
73
+ },
74
+ },
75
+ defaultVariants: {
76
+ size: "md",
77
+ },
78
+ });
79
+ function isFiniteNumber(value) {
80
+ return typeof value === "number" && Number.isFinite(value);
81
+ }
82
+ function normalizeValue(value) {
83
+ if (value === undefined) {
84
+ return { value: 0, label: undefined, isGap: true };
85
+ }
86
+ if (typeof value === "number") {
87
+ return {
88
+ value: isFiniteNumber(value) ? value : 0,
89
+ label: undefined,
90
+ isGap: !isFiniteNumber(value),
91
+ };
92
+ }
93
+ const raw = value.value;
94
+ return {
95
+ value: isFiniteNumber(raw) ? raw : 0,
96
+ label: value.label,
97
+ isGap: !isFiniteNumber(raw),
98
+ };
99
+ }
100
+ function buildShapePath(points) {
101
+ // Skip gaps by breaking the path into separate closed sub-paths whenever a
102
+ // run of non-gap vertices ends. Wrap around the end/start of the axis list.
103
+ const n = points.length;
104
+ if (n === 0)
105
+ return "";
106
+ // Find the first non-gap so wrapped runs stay contiguous.
107
+ let start = 0;
108
+ while (start < n && points[start].isGap)
109
+ start += 1;
110
+ if (start === n)
111
+ return "";
112
+ const segments = [];
113
+ let current = [];
114
+ for (let i = 0; i < n; i += 1) {
115
+ const p = points[(start + i) % n];
116
+ if (p.isGap) {
117
+ if (current.length > 0) {
118
+ segments.push(current);
119
+ current = [];
120
+ }
121
+ continue;
122
+ }
123
+ current.push(p);
124
+ }
125
+ if (current.length > 0)
126
+ segments.push(current);
127
+ // If the shape wraps fully around (no gaps at all), it's a single closed
128
+ // polygon connecting back to the first vertex.
129
+ const allClosed = segments.length === 1 && segments[0].length === n;
130
+ let d = "";
131
+ for (const seg of segments) {
132
+ if (seg.length === 0)
133
+ continue;
134
+ const first = seg[0];
135
+ d += `${d ? " " : ""}M ${first.x.toFixed(2)} ${first.y.toFixed(2)}`;
136
+ for (let i = 1; i < seg.length; i += 1) {
137
+ const p = seg[i];
138
+ d += ` L ${p.x.toFixed(2)} ${p.y.toFixed(2)}`;
139
+ }
140
+ if (allClosed)
141
+ d += " Z";
142
+ }
143
+ return d;
144
+ }
145
+ function buildRingPath(cx, cy, ratio, axesAngles, radius, shape) {
146
+ if (shape === "circle") {
147
+ const r = radius * ratio;
148
+ // Two arcs to draw a full circle in SVG.
149
+ return `M ${(cx + r).toFixed(2)} ${cy.toFixed(2)} A ${r.toFixed(2)} ${r.toFixed(2)} 0 1 1 ${(cx - r).toFixed(2)} ${cy.toFixed(2)} A ${r.toFixed(2)} ${r.toFixed(2)} 0 1 1 ${(cx + r).toFixed(2)} ${cy.toFixed(2)} Z`;
150
+ }
151
+ if (axesAngles.length === 0)
152
+ return "";
153
+ let d = "";
154
+ axesAngles.forEach((angle, idx) => {
155
+ const x = cx + Math.sin(angle) * radius * ratio;
156
+ const y = cy - Math.cos(angle) * radius * ratio;
157
+ d += `${idx === 0 ? "M" : " L"} ${x.toFixed(2)} ${y.toFixed(2)}`;
158
+ });
159
+ return `${d} Z`;
160
+ }
161
+ function RadarChart({ axes, series, label, size, diameter, min = 0, max, startAngle = 0, gridLevels = 4, gridShape = "polygon", showAxis = true, showAxisLabels = true, showBoundary = true, area = true, showPoints = false, showValueLabels = false, valueLabelFormatter, onPointClick, children, className, overlayClassName, axisLabelClassName, valueLabelClassName, gridClassName, ref, ...props }) {
162
+ const resolvedSize = size ?? "md";
163
+ const D = diameter ?? SIZE_TO_PIXELS[resolvedSize];
164
+ const titleId = useId();
165
+ const axisLabelGutter = showAxisLabels ? 44 : 8;
166
+ const radius = Math.max(0, D / 2 - axisLabelGutter / 2);
167
+ const cx = D / 2;
168
+ const cy = D / 2;
169
+ const axisCount = axes.length;
170
+ const hasAxes = axisCount >= 3;
171
+ const hasSeries = series.length > 0;
172
+ // Compute a chart-level max fallback from data.
173
+ const dataMax = (() => {
174
+ let m = Number.NEGATIVE_INFINITY;
175
+ for (const s of series) {
176
+ for (const raw of s.values) {
177
+ const n = normalizeValue(raw);
178
+ if (!n.isGap && n.value > m)
179
+ m = n.value;
180
+ }
181
+ }
182
+ return Number.isFinite(m) ? m : 1;
183
+ })();
184
+ const effectiveMax = isFiniteNumber(max) ? max : dataMax;
185
+ const startAngleRad = (startAngle * Math.PI) / 180;
186
+ const resolvedAxes = axes.map((axis, idx) => {
187
+ const angle = startAngleRad + (idx * (2 * Math.PI)) / Math.max(1, axisCount);
188
+ const axisMin = isFiniteNumber(axis.min) ? axis.min : min;
189
+ const axisMax = isFiniteNumber(axis.max) ? axis.max : effectiveMax;
190
+ return {
191
+ axis,
192
+ angle,
193
+ min: axisMin,
194
+ max: axisMax,
195
+ tipX: cx + Math.sin(angle) * radius,
196
+ tipY: cy - Math.cos(angle) * radius,
197
+ };
198
+ });
199
+ const axesAngles = resolvedAxes.map((a) => a.angle);
200
+ const resolvedSeries = series.map((s, seriesIndex) => {
201
+ const color = s.color ??
202
+ DEFAULT_COLOR_ROTATION[seriesIndex % DEFAULT_COLOR_ROTATION.length];
203
+ const seriesShowPoints = s.showPoints ?? showPoints;
204
+ const seriesArea = s.area ?? area;
205
+ const points = resolvedAxes.map((ra, axisIndex) => {
206
+ const raw = s.values[axisIndex];
207
+ const norm = normalizeValue(raw);
208
+ const span = ra.max - ra.min > 0 ? ra.max - ra.min : 1;
209
+ const clamped = Math.max(0, Math.min(1, (norm.value - ra.min) / span));
210
+ const r = norm.isGap ? 0 : clamped * radius;
211
+ return {
212
+ axisIndex,
213
+ value: norm.value,
214
+ label: norm.label,
215
+ isGap: norm.isGap,
216
+ x: cx + Math.sin(ra.angle) * r,
217
+ y: cy - Math.cos(ra.angle) * r,
218
+ };
219
+ });
220
+ return {
221
+ series: s,
222
+ color,
223
+ points,
224
+ showPoints: seriesShowPoints,
225
+ area: seriesArea,
226
+ };
227
+ });
228
+ const gridRatios = (() => {
229
+ if (gridLevels <= 0)
230
+ return [];
231
+ const out = [];
232
+ for (let i = 1; i <= gridLevels; i += 1) {
233
+ out.push(i / (gridLevels + 1));
234
+ }
235
+ return out;
236
+ })();
237
+ return (_jsxs("div", { ref: ref, role: "img", "aria-labelledby": titleId, "data-slot": "radar-chart", className: cn(radarChartVariants({ size }), className), style: { width: D, height: D }, ...props, children: [_jsxs("svg", { width: D, height: D, viewBox: `0 0 ${D} ${D}`, "aria-hidden": children ? "true" : undefined, className: "h-full w-full overflow-visible", children: [_jsx("title", { id: titleId, children: label }), !hasAxes ? (_jsx("text", { x: D / 2, y: D / 2, textAnchor: "middle", dominantBaseline: "central", className: "fill-muted-foreground", children: axisCount === 0 ? "No axes" : "Need ≥3 axes" })) : (_jsxs(_Fragment, { children: [gridRatios.length > 0 ? (_jsx("g", { "aria-hidden": "true", "data-slot": "radar-chart-grid", className: "pointer-events-none", children: gridRatios.map((r) => (_jsx("path", { d: buildRingPath(cx, cy, r, axesAngles, radius, gridShape), fill: "none", strokeWidth: 1, className: cn("stroke-border/60", gridClassName) }, `grid-${r}`))) })) : null, showBoundary ? (_jsx("path", { "aria-hidden": "true", "data-slot": "radar-chart-boundary", d: buildRingPath(cx, cy, 1, axesAngles, radius, gridShape), fill: "none", strokeWidth: 1, className: cn("stroke-border", gridClassName) })) : null, showAxis ? (_jsx("g", { "aria-hidden": "true", "data-slot": "radar-chart-axes", className: "pointer-events-none", children: resolvedAxes.map((ra) => (_jsx("line", { x1: cx, y1: cy, x2: ra.tipX, y2: ra.tipY, strokeWidth: 1, className: cn("stroke-border", gridClassName) }, `axis-${ra.axis.id}`))) })) : null, hasSeries ? (resolvedSeries.map((rs) => {
238
+ const strokeWidth = rs.series.strokeWidth ?? 2;
239
+ const shapePath = buildShapePath(rs.points);
240
+ const strokeClass = rs.series.stroke
241
+ ? undefined
242
+ : STROKE_CLASSES[rs.color];
243
+ const fillClass = rs.series.stroke
244
+ ? undefined
245
+ : FILL_CLASSES[rs.color];
246
+ const textClass = rs.series.stroke
247
+ ? undefined
248
+ : TEXT_CLASSES[rs.color];
249
+ const fillOpacity = rs.series.fillOpacity ?? 0.2;
250
+ return (_jsxs("g", { "data-slot": "radar-chart-series", "data-series-id": rs.series.id, children: [rs.area && shapePath !== "" ? (_jsx("path", { d: shapePath, stroke: "none", fill: rs.series.stroke ?? "currentColor", fillOpacity: fillOpacity, className: cn(fillClass, "pointer-events-none") })) : null, shapePath !== "" ? (_jsx("path", { d: shapePath, fill: "none", stroke: rs.series.stroke, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", strokeDasharray: rs.series.strokeDasharray, className: cn(strokeClass, rs.series.className) })) : null, rs.showPoints
251
+ ? rs.points.map((rp) => {
252
+ if (rp.isGap)
253
+ return null;
254
+ const ra = resolvedAxes[rp.axisIndex];
255
+ const handler = rs.series.onPointClick ?? onPointClick;
256
+ const isInteractive = typeof handler === "function";
257
+ const pointLabel = rp.label ??
258
+ `${rs.series.label ?? rs.series.id} – ${ra.axis.label ?? ra.axis.id}: ${rp.value}`;
259
+ return (_jsx("circle", { cx: rp.x, cy: rp.y, r: Math.max(strokeWidth + 1, 3), fill: rs.series.stroke ?? "currentColor", stroke: "hsl(var(--background))", strokeWidth: 1.5, "data-axis-id": ra.axis.id, role: isInteractive ? "button" : undefined, tabIndex: isInteractive ? 0 : undefined, "aria-label": pointLabel, onClick: isInteractive
260
+ ? (event) => {
261
+ handler(ra.axis, rp.value, rs.series, event);
262
+ }
263
+ : undefined, onKeyDown: isInteractive
264
+ ? (event) => {
265
+ if (event.key === "Enter" ||
266
+ event.key === " ") {
267
+ event.preventDefault();
268
+ handler(ra.axis, rp.value, rs.series, event);
269
+ }
270
+ }
271
+ : undefined, className: cn("transition-opacity", rs.series.stroke ? undefined : fillClass, isInteractive &&
272
+ "cursor-pointer hover:opacity-80 focus:outline-none focus-visible:opacity-80") }, `${rs.series.id}-${ra.axis.id}`));
273
+ })
274
+ : null, showValueLabels
275
+ ? rs.points.map((rp) => {
276
+ if (rp.isGap)
277
+ return null;
278
+ const ra = resolvedAxes[rp.axisIndex];
279
+ const text = valueLabelFormatter
280
+ ? valueLabelFormatter({
281
+ series: rs.series,
282
+ axis: ra.axis,
283
+ value: rp.value,
284
+ axisIndex: rp.axisIndex,
285
+ })
286
+ : String(rp.value);
287
+ if (text === null || text === "")
288
+ return null;
289
+ // Offset the label a couple pixels outward from the
290
+ // vertex so it doesn't collide with the point marker.
291
+ const dx = Math.sin(ra.angle);
292
+ const dy = -Math.cos(ra.angle);
293
+ const offset = 8;
294
+ return (_jsx("text", { x: rp.x + dx * offset, y: rp.y + dy * offset, textAnchor: "middle", dominantBaseline: "central", className: cn("pointer-events-none select-none fill-foreground font-medium", textClass, valueLabelClassName), children: text }, `${rs.series.id}-${ra.axis.id}-val`));
295
+ })
296
+ : null] }, rs.series.id));
297
+ })) : null, showAxisLabels ? (_jsx("g", { "aria-hidden": "true", "data-slot": "radar-chart-axis-labels", className: "pointer-events-none select-none", children: resolvedAxes.map((ra) => {
298
+ const text = ra.axis.label ?? ra.axis.id;
299
+ const dx = Math.sin(ra.angle);
300
+ const dy = -Math.cos(ra.angle);
301
+ const labelOffset = 12;
302
+ const lx = ra.tipX + dx * labelOffset;
303
+ const ly = ra.tipY + dy * labelOffset;
304
+ // Anchor the label so it doesn't overrun the axis tip.
305
+ const textAnchor = dx > 0.15 ? "start" : dx < -0.15 ? "end" : "middle";
306
+ const dominantBaseline = dy > 0.15 ? "auto" : dy < -0.15 ? "hanging" : "middle";
307
+ return (_jsx("text", { x: lx, y: ly, textAnchor: textAnchor, dominantBaseline: dominantBaseline, className: cn("fill-muted-foreground", axisLabelClassName), children: text }, `label-${ra.axis.id}`));
308
+ }) })) : null] }))] }), children ? (_jsx("div", { className: cn("pointer-events-none absolute inset-0 flex items-center justify-center text-center", overlayClassName), children: children })) : null] }));
309
+ }
310
+ RadarChart.displayName = "RadarChart";
311
+ export { RadarChart };
312
+ //# sourceMappingURL=radar-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radar-chart.js","sourceRoot":"","sources":["../../../../src/components/ui/radar-chart/radar-chart.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/ui",
3
- "version": "0.82.0",
3
+ "version": "0.83.0",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",