gridsmith-ui 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts.d.ts +22 -12
- package/dist/charts.js +86 -17
- package/dist/charts.js.map +1 -1
- package/dist/chat.js +4 -3
- package/dist/chat.js.map +1 -1
- package/dist/{chunk-RLNIRPOH.js → chunk-CQADS7JZ.js} +5 -45
- package/dist/chunk-CQADS7JZ.js.map +1 -0
- package/dist/{chunk-VXKSQ56H.js → chunk-ENBESZS2.js} +3 -3
- package/dist/{chunk-VXKSQ56H.js.map → chunk-ENBESZS2.js.map} +1 -1
- package/dist/chunk-FDIFQ5UF.js +67 -0
- package/dist/chunk-FDIFQ5UF.js.map +1 -0
- package/dist/{chunk-QVNGQ64Q.js → chunk-OVVRMMCO.js} +13 -5
- package/dist/chunk-OVVRMMCO.js.map +1 -0
- package/dist/chunk-PKLVP5ZB.js +49 -0
- package/dist/chunk-PKLVP5ZB.js.map +1 -0
- package/dist/chunk-RG4KUCRS.js +9 -0
- package/dist/chunk-RG4KUCRS.js.map +1 -0
- package/dist/chunk-Z37HO5NU.js +950 -0
- package/dist/chunk-Z37HO5NU.js.map +1 -0
- package/dist/data-grid.d.ts +3 -1
- package/dist/data-grid.js +40 -10
- package/dist/data-grid.js.map +1 -1
- package/dist/index.d.ts +76 -65
- package/dist/index.js +874 -1321
- package/dist/index.js.map +1 -1
- package/dist/kanban.d.ts +7 -1
- package/dist/kanban.js +23 -6
- package/dist/kanban.js.map +1 -1
- package/dist/resizable.d.ts +48 -2
- package/dist/resizable.js +151 -4
- package/dist/resizable.js.map +1 -1
- package/dist/roots.css +8 -4
- package/dist/{use-breakpoint-BfKzmkxx.d.ts → table-utils-GounRE6s.d.ts} +4 -1
- package/dist/tokens.css +6 -4
- package/dist-static/tokens.css +6 -4
- package/package.json +1 -1
- package/dist/chunk-5B2ZFL2H.js +0 -89
- package/dist/chunk-5B2ZFL2H.js.map +0 -1
- package/dist/chunk-QVNGQ64Q.js.map +0 -1
- package/dist/chunk-RLNIRPOH.js.map +0 -1
package/dist/charts.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
|
+
type XAxisInterval = number | "preserveStart" | "preserveEnd" | "preserveStartEnd" | "equidistantPreserveStart";
|
|
6
|
+
|
|
5
7
|
interface BarDef {
|
|
6
8
|
dataKey: string;
|
|
7
9
|
label?: string;
|
|
@@ -9,10 +11,12 @@ interface BarDef {
|
|
|
9
11
|
}
|
|
10
12
|
interface BarChartProps {
|
|
11
13
|
/**
|
|
12
|
-
* Which category ticks show.
|
|
13
|
-
*
|
|
14
|
+
* Which category ticks show. Leave it out: the chart measures its widest label with the chart's font and labels every
|
|
15
|
+
* k-th category from the first, the last only when it falls on the step (Sprint 25.4 C-11, decision 7). A number
|
|
16
|
+
* labels every Nth category instead. The Recharts strings ("preserveStartEnd") are accepted for compatibility and
|
|
17
|
+
* mean the same measured labelling — they never hand the ticks back to Recharts' thinning (round 13).
|
|
14
18
|
*/
|
|
15
|
-
xAxisInterval?:
|
|
19
|
+
xAxisInterval?: XAxisInterval;
|
|
16
20
|
data: Record<string, unknown>[];
|
|
17
21
|
bars: BarDef[];
|
|
18
22
|
xAxisKey: string;
|
|
@@ -37,10 +41,12 @@ interface LineDef {
|
|
|
37
41
|
}
|
|
38
42
|
interface LineChartProps {
|
|
39
43
|
/**
|
|
40
|
-
* Which category ticks show.
|
|
41
|
-
*
|
|
44
|
+
* Which category ticks show. Leave it out: the chart measures its widest label with the chart's font and labels every
|
|
45
|
+
* k-th category from the first, the last only when it falls on the step (Sprint 25.4 C-11, decision 7). A number
|
|
46
|
+
* labels every Nth category instead. The Recharts strings ("preserveStartEnd") are accepted for compatibility and
|
|
47
|
+
* mean the same measured labelling — they never hand the ticks back to Recharts' thinning (round 13).
|
|
42
48
|
*/
|
|
43
|
-
xAxisInterval?:
|
|
49
|
+
xAxisInterval?: XAxisInterval;
|
|
44
50
|
data: Record<string, unknown>[];
|
|
45
51
|
lines: LineDef[];
|
|
46
52
|
xAxisKey: string;
|
|
@@ -64,10 +70,12 @@ interface AreaDef {
|
|
|
64
70
|
}
|
|
65
71
|
interface AreaChartProps {
|
|
66
72
|
/**
|
|
67
|
-
* Which category ticks show.
|
|
68
|
-
*
|
|
73
|
+
* Which category ticks show. Leave it out: the chart measures its widest label with the chart's font and labels every
|
|
74
|
+
* k-th category from the first, the last only when it falls on the step (Sprint 25.4 C-11, decision 7). A number
|
|
75
|
+
* labels every Nth category instead. The Recharts strings ("preserveStartEnd") are accepted for compatibility and
|
|
76
|
+
* mean the same measured labelling — they never hand the ticks back to Recharts' thinning (round 13).
|
|
69
77
|
*/
|
|
70
|
-
xAxisInterval?:
|
|
78
|
+
xAxisInterval?: XAxisInterval;
|
|
71
79
|
data: Record<string, unknown>[];
|
|
72
80
|
areas: AreaDef[];
|
|
73
81
|
xAxisKey: string;
|
|
@@ -105,10 +113,12 @@ declare const PieChart: react.ForwardRefExoticComponent<PieChartProps & react.Re
|
|
|
105
113
|
|
|
106
114
|
interface CompositeChartProps {
|
|
107
115
|
/**
|
|
108
|
-
* Which category ticks show.
|
|
109
|
-
*
|
|
116
|
+
* Which category ticks show. Leave it out: the chart measures its widest label with the chart's font and labels every
|
|
117
|
+
* k-th category from the first, the last only when it falls on the step (Sprint 25.4 C-11, decision 7). A number
|
|
118
|
+
* labels every Nth category instead. The Recharts strings ("preserveStartEnd") are accepted for compatibility and
|
|
119
|
+
* mean the same measured labelling — they never hand the ticks back to Recharts' thinning (round 13).
|
|
110
120
|
*/
|
|
111
|
-
xAxisInterval?:
|
|
121
|
+
xAxisInterval?: XAxisInterval;
|
|
112
122
|
data: Record<string, unknown>[];
|
|
113
123
|
bars: BarDef[];
|
|
114
124
|
lines: LineDef[];
|
package/dist/charts.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Skeleton } from './chunk-M3AARGLI.js';
|
|
2
|
+
import { mergeRefs } from './chunk-PKLVP5ZB.js';
|
|
2
3
|
import { cn, GLASS_SURFACE } from './chunk-4KVFH5KC.js';
|
|
3
|
-
import { createContext, forwardRef, useId, useContext,
|
|
4
|
+
import { createContext, forwardRef, useRef, useId, useContext, useMemo, useState, useEffect, useSyncExternalStore, useLayoutEffect } from 'react';
|
|
4
5
|
import { ResponsiveContainer, BarChart as BarChart$1, CartesianGrid, XAxis, YAxis, Tooltip, Legend, Bar, LineChart as LineChart$1, Line, AreaChart as AreaChart$1, Area, PieChart as PieChart$1, Pie, Cell, ComposedChart, ScatterChart as ScatterChart$1, ZAxis, Scatter, RadarChart as RadarChart$1, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar, RadialBarChart as RadialBarChart$1, RadialBar, FunnelChart as FunnelChart$1, Funnel, LabelList, Treemap, Sankey, Text } from 'recharts';
|
|
5
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
7
|
|
|
@@ -201,14 +202,69 @@ function useRadius() {
|
|
|
201
202
|
return isNaN(parsed) ? 6 : parsed;
|
|
202
203
|
}
|
|
203
204
|
function xAxisTick(props) {
|
|
204
|
-
const { x, y, payload, width, visibleTicksCount, ...rest } = props;
|
|
205
|
-
|
|
206
|
-
return /* @__PURE__ */ jsx(Text, { ...rest, x, y, width: tickWidth, textAnchor: "middle", verticalAnchor: "start", maxLines: 1, children: payload.value });
|
|
205
|
+
const { x, y, payload, width: _width, visibleTicksCount: _count, ...rest } = props;
|
|
206
|
+
return /* @__PURE__ */ jsx(Text, { ...rest, x, y, textAnchor: "middle", verticalAnchor: "start", children: payload.value });
|
|
207
207
|
}
|
|
208
208
|
function yAxisTick(props) {
|
|
209
209
|
const { x, y, payload, ...rest } = props;
|
|
210
210
|
return /* @__PURE__ */ jsx(Text, { ...rest, x, y, textAnchor: "end", verticalAnchor: "middle", width: 200, maxLines: 2, children: payload.value });
|
|
211
211
|
}
|
|
212
|
+
function lengthPx(value, el) {
|
|
213
|
+
const v = value.trim();
|
|
214
|
+
if (v.endsWith("rem")) return parseFloat(v) * (parseFloat(getComputedStyle(el.ownerDocument.documentElement).fontSize) || 16);
|
|
215
|
+
if (v.endsWith("px")) return parseFloat(v);
|
|
216
|
+
const n = parseFloat(v);
|
|
217
|
+
return Number.isFinite(n) ? n : NaN;
|
|
218
|
+
}
|
|
219
|
+
function widestLabel(el, labels) {
|
|
220
|
+
if (typeof document === "undefined") return null;
|
|
221
|
+
const ctx = document.createElement("canvas").getContext?.("2d");
|
|
222
|
+
if (!ctx) return null;
|
|
223
|
+
const cs = getComputedStyle(el);
|
|
224
|
+
const size = lengthPx(cs.getPropertyValue("--ds-font-size-xs"), el) || 12;
|
|
225
|
+
const family = cs.getPropertyValue("--ds-font-sans").trim() || cs.fontFamily || "sans-serif";
|
|
226
|
+
ctx.font = `${size}px ${family}`;
|
|
227
|
+
return labels.reduce((w, l) => Math.max(w, ctx.measureText(l).width), 0);
|
|
228
|
+
}
|
|
229
|
+
var TICK_GAP = 12;
|
|
230
|
+
var AXIS_RESERVE = 48;
|
|
231
|
+
function useCategoryTicks(data, xAxisKey, ref, override) {
|
|
232
|
+
const labels = useMemo(() => (data ?? []).map((d) => String(d[xAxisKey] ?? "")), [data, xAxisKey]);
|
|
233
|
+
const labelsKey = labels.join("");
|
|
234
|
+
const [ticks, setTicks] = useState(void 0);
|
|
235
|
+
const [endMargin, setEndMargin] = useState(4);
|
|
236
|
+
const numeric = typeof override === "number" ? override : void 0;
|
|
237
|
+
useEffect(() => {
|
|
238
|
+
const el = ref.current;
|
|
239
|
+
if (numeric !== void 0 || !el || labels.length === 0) return;
|
|
240
|
+
let live = true;
|
|
241
|
+
const compute = () => {
|
|
242
|
+
if (!live) return;
|
|
243
|
+
const widest = widestLabel(el, labels);
|
|
244
|
+
const plot = el.clientWidth - AXIS_RESERVE;
|
|
245
|
+
if (widest == null || plot <= 0) {
|
|
246
|
+
setTicks(void 0);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
setEndMargin(Math.max(4, Math.ceil(widest / 2)));
|
|
250
|
+
const fits = Math.max(1, Math.floor(plot / (widest + TICK_GAP)));
|
|
251
|
+
const step = Math.ceil(labels.length / fits);
|
|
252
|
+
setTicks(labels.filter((_, i) => i % step === 0));
|
|
253
|
+
};
|
|
254
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
255
|
+
const ro = new ResizeObserver(compute);
|
|
256
|
+
ro.observe(el);
|
|
257
|
+
const fonts = document.fonts;
|
|
258
|
+
fonts?.ready.then(compute, () => {
|
|
259
|
+
});
|
|
260
|
+
return () => {
|
|
261
|
+
live = false;
|
|
262
|
+
ro.disconnect();
|
|
263
|
+
};
|
|
264
|
+
}, [labelsKey, numeric, ref]);
|
|
265
|
+
if (numeric !== void 0) return { interval: numeric, endMargin: 4 };
|
|
266
|
+
return ticks ? { ticks, interval: 0, endMargin } : { interval: "preserveStartEnd", endMargin: 4 };
|
|
267
|
+
}
|
|
212
268
|
var ChartContainerContext = createContext(false);
|
|
213
269
|
function useInsideChartContainer() {
|
|
214
270
|
return useContext(ChartContainerContext);
|
|
@@ -230,7 +286,7 @@ var BarChart = forwardRef(function BarChart2({
|
|
|
230
286
|
data,
|
|
231
287
|
bars,
|
|
232
288
|
xAxisKey,
|
|
233
|
-
xAxisInterval
|
|
289
|
+
xAxisInterval,
|
|
234
290
|
height = "md",
|
|
235
291
|
stacked = false,
|
|
236
292
|
horizontal = false,
|
|
@@ -243,6 +299,8 @@ var BarChart = forwardRef(function BarChart2({
|
|
|
243
299
|
"aria-label": ariaLabel,
|
|
244
300
|
className
|
|
245
301
|
}, ref) {
|
|
302
|
+
const wrapperRef = useRef(null);
|
|
303
|
+
const xTicks = useCategoryTicks(data, xAxisKey, wrapperRef, horizontal ? xAxisInterval ?? "preserveStartEnd" : xAxisInterval);
|
|
246
304
|
const solidColors = useChartColors(bars.length, false);
|
|
247
305
|
const softColors = useChartColors(bars.length, true);
|
|
248
306
|
const gridStroke = useGridStroke();
|
|
@@ -261,12 +319,12 @@ var BarChart = forwardRef(function BarChart2({
|
|
|
261
319
|
}
|
|
262
320
|
const axisLabelStyle = { fontSize: "var(--ds-font-size-xs)", fontFamily: "var(--ds-font-sans)", fill: axisStyle.tick.fill };
|
|
263
321
|
if (!data?.length) return null;
|
|
264
|
-
return /* @__PURE__ */ jsx(ChartWrapper, { ref, height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(
|
|
322
|
+
return /* @__PURE__ */ jsx(ChartWrapper, { ref: mergeRefs(ref, wrapperRef), height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(
|
|
265
323
|
BarChart$1,
|
|
266
324
|
{
|
|
267
325
|
data,
|
|
268
326
|
layout,
|
|
269
|
-
margin: { top: 4, right:
|
|
327
|
+
margin: { top: 4, right: xTicks.endMargin, bottom: 4, left: 4 },
|
|
270
328
|
accessibilityLayer: true,
|
|
271
329
|
children: [
|
|
272
330
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: gridStroke, vertical: !horizontal, horizontal: true }),
|
|
@@ -302,7 +360,8 @@ var BarChart = forwardRef(function BarChart2({
|
|
|
302
360
|
axisLine: false,
|
|
303
361
|
tickLine: false,
|
|
304
362
|
tick: xAxisTick,
|
|
305
|
-
interval:
|
|
363
|
+
interval: xTicks.interval,
|
|
364
|
+
ticks: xTicks.ticks,
|
|
306
365
|
height: "auto",
|
|
307
366
|
label: xAxisLabel ? { value: xAxisLabel, position: "insideBottom", offset: -2, style: axisLabelStyle } : void 0
|
|
308
367
|
}
|
|
@@ -340,7 +399,7 @@ var LineChart = forwardRef(function LineChart2({
|
|
|
340
399
|
data,
|
|
341
400
|
lines,
|
|
342
401
|
xAxisKey,
|
|
343
|
-
xAxisInterval
|
|
402
|
+
xAxisInterval,
|
|
344
403
|
height = "md",
|
|
345
404
|
curved = true,
|
|
346
405
|
showDots = false,
|
|
@@ -353,6 +412,8 @@ var LineChart = forwardRef(function LineChart2({
|
|
|
353
412
|
"aria-label": ariaLabel,
|
|
354
413
|
className
|
|
355
414
|
}, ref) {
|
|
415
|
+
const wrapperRef = useRef(null);
|
|
416
|
+
const xTicks = useCategoryTicks(data, xAxisKey, wrapperRef, xAxisInterval);
|
|
356
417
|
const colors = useChartColors(lines.length, false);
|
|
357
418
|
const gridStroke = useGridStroke();
|
|
358
419
|
const axisStyle = useAxisStyle();
|
|
@@ -360,7 +421,7 @@ var LineChart = forwardRef(function LineChart2({
|
|
|
360
421
|
const legendVisible = showLegend ?? lines.length >= 2;
|
|
361
422
|
const axisLabelStyle = { fontSize: "var(--ds-font-size-xs)", fontFamily: "var(--ds-font-sans)", fill: axisStyle.tick.fill };
|
|
362
423
|
if (!data?.length) return null;
|
|
363
|
-
return /* @__PURE__ */ jsx(ChartWrapper, { ref, height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(LineChart$1, { data, margin: { top: 4, right:
|
|
424
|
+
return /* @__PURE__ */ jsx(ChartWrapper, { ref: mergeRefs(ref, wrapperRef), height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(LineChart$1, { data, margin: { top: 4, right: xTicks.endMargin, bottom: 4, left: 4 }, accessibilityLayer: true, children: [
|
|
364
425
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: gridStroke }),
|
|
365
426
|
/* @__PURE__ */ jsx(
|
|
366
427
|
XAxis,
|
|
@@ -370,7 +431,8 @@ var LineChart = forwardRef(function LineChart2({
|
|
|
370
431
|
axisLine: false,
|
|
371
432
|
tickLine: false,
|
|
372
433
|
tick: xAxisTick,
|
|
373
|
-
interval:
|
|
434
|
+
interval: xTicks.interval,
|
|
435
|
+
ticks: xTicks.ticks,
|
|
374
436
|
height: "auto",
|
|
375
437
|
label: xAxisLabel ? { value: xAxisLabel, position: "insideBottom", offset: -2, style: axisLabelStyle } : void 0
|
|
376
438
|
}
|
|
@@ -408,7 +470,7 @@ var AreaChart = forwardRef(function AreaChart2({
|
|
|
408
470
|
data,
|
|
409
471
|
areas,
|
|
410
472
|
xAxisKey,
|
|
411
|
-
xAxisInterval
|
|
473
|
+
xAxisInterval,
|
|
412
474
|
height = "md",
|
|
413
475
|
stacked = false,
|
|
414
476
|
curved = true,
|
|
@@ -422,6 +484,8 @@ var AreaChart = forwardRef(function AreaChart2({
|
|
|
422
484
|
"aria-label": ariaLabel,
|
|
423
485
|
className
|
|
424
486
|
}, ref) {
|
|
487
|
+
const wrapperRef = useRef(null);
|
|
488
|
+
const xTicks = useCategoryTicks(data, xAxisKey, wrapperRef, xAxisInterval);
|
|
425
489
|
const instanceId = useId();
|
|
426
490
|
const solidColors = useChartColors(areas.length, false);
|
|
427
491
|
const softColors = useChartColors(areas.length, true);
|
|
@@ -431,7 +495,7 @@ var AreaChart = forwardRef(function AreaChart2({
|
|
|
431
495
|
const legendVisible = showLegend ?? areas.length >= 2;
|
|
432
496
|
const axisLabelStyle = { fontSize: "var(--ds-font-size-xs)", fontFamily: "var(--ds-font-sans)", fill: axisStyle.tick.fill };
|
|
433
497
|
if (!data?.length) return null;
|
|
434
|
-
return /* @__PURE__ */ jsx(ChartWrapper, { ref, height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(AreaChart$1, { data, margin: { top: 4, right:
|
|
498
|
+
return /* @__PURE__ */ jsx(ChartWrapper, { ref: mergeRefs(ref, wrapperRef), height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(AreaChart$1, { data, margin: { top: 4, right: xTicks.endMargin, bottom: 4, left: 4 }, accessibilityLayer: true, children: [
|
|
435
499
|
/* @__PURE__ */ jsx("defs", { children: areas.map((area, i) => /* @__PURE__ */ jsxs("linearGradient", { id: `gradient-${instanceId}-${area.dataKey}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
436
500
|
/* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: softColors[i], stopOpacity: 1 }),
|
|
437
501
|
/* @__PURE__ */ jsx("stop", { offset: "95%", stopColor: softColors[i], stopOpacity: 0.1 })
|
|
@@ -445,7 +509,8 @@ var AreaChart = forwardRef(function AreaChart2({
|
|
|
445
509
|
axisLine: false,
|
|
446
510
|
tickLine: false,
|
|
447
511
|
tick: xAxisTick,
|
|
448
|
-
interval:
|
|
512
|
+
interval: xTicks.interval,
|
|
513
|
+
ticks: xTicks.ticks,
|
|
449
514
|
height: "auto",
|
|
450
515
|
label: xAxisLabel ? { value: xAxisLabel, position: "insideBottom", offset: -2, style: axisLabelStyle } : void 0
|
|
451
516
|
}
|
|
@@ -521,7 +586,7 @@ var CompositeChart = forwardRef(function CompositeChart2({
|
|
|
521
586
|
bars,
|
|
522
587
|
lines,
|
|
523
588
|
xAxisKey,
|
|
524
|
-
xAxisInterval
|
|
589
|
+
xAxisInterval,
|
|
525
590
|
height = "md",
|
|
526
591
|
dualAxis = true,
|
|
527
592
|
showGrid = true,
|
|
@@ -533,6 +598,8 @@ var CompositeChart = forwardRef(function CompositeChart2({
|
|
|
533
598
|
"aria-label": ariaLabel,
|
|
534
599
|
className
|
|
535
600
|
}, ref) {
|
|
601
|
+
const wrapperRef = useRef(null);
|
|
602
|
+
const xTicks = useCategoryTicks(data, xAxisKey, wrapperRef, xAxisInterval);
|
|
536
603
|
const barSoftColors = useChartColors(bars.length, true);
|
|
537
604
|
const lineColors = useChartColors(lines.length, false);
|
|
538
605
|
const gridStroke = useGridStroke();
|
|
@@ -541,7 +608,7 @@ var CompositeChart = forwardRef(function CompositeChart2({
|
|
|
541
608
|
const radius = useRadius();
|
|
542
609
|
const axisLabelStyle = { fontSize: "var(--ds-font-size-xs)", fontFamily: "var(--ds-font-sans)", fill: axisStyle.tick.fill };
|
|
543
610
|
if (!data?.length) return null;
|
|
544
|
-
return /* @__PURE__ */ jsx(ChartWrapper, { ref, height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(ComposedChart, { data, margin: { top: 4, right:
|
|
611
|
+
return /* @__PURE__ */ jsx(ChartWrapper, { ref: mergeRefs(ref, wrapperRef), height, className, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(ComposedChart, { data, margin: { top: 4, right: xTicks.endMargin, bottom: 4, left: 4 }, accessibilityLayer: true, children: [
|
|
545
612
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: gridStroke }),
|
|
546
613
|
/* @__PURE__ */ jsx(
|
|
547
614
|
XAxis,
|
|
@@ -551,7 +618,8 @@ var CompositeChart = forwardRef(function CompositeChart2({
|
|
|
551
618
|
axisLine: false,
|
|
552
619
|
tickLine: false,
|
|
553
620
|
tick: xAxisTick,
|
|
554
|
-
interval:
|
|
621
|
+
interval: xTicks.interval,
|
|
622
|
+
ticks: xTicks.ticks,
|
|
555
623
|
height: "auto",
|
|
556
624
|
label: xAxisLabel ? { value: xAxisLabel, position: "insideBottom", offset: -2, style: axisLabelStyle } : void 0
|
|
557
625
|
}
|
|
@@ -1006,6 +1074,7 @@ function ChartContainer({
|
|
|
1006
1074
|
return /* @__PURE__ */ jsxs(
|
|
1007
1075
|
"div",
|
|
1008
1076
|
{
|
|
1077
|
+
"data-card": "",
|
|
1009
1078
|
className: cn(
|
|
1010
1079
|
variant === "ghost" ? "bg-transparent" : cn(
|
|
1011
1080
|
"rounded-[var(--ds-radius-md)] p-ds-4",
|