basalt-ui 1.14.0 → 1.16.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/AGENTS.md +1 -1
- package/CHANGELOG.md +15 -0
- package/README.md +38 -2
- package/agent/rules/basalt-charts.md +279 -108
- package/agent/rules/basalt-mantine.md +4 -2
- package/agent/skills/basalt-charts/SKILL.md +114 -64
- package/agent/skills/basalt-design/SKILL.md +4 -3
- package/agent/templates/CLAUDE-block.md.tpl +9 -6
- package/configs/oxlint-plugin.js +152 -0
- package/configs/oxlint-plugin.test.ts +107 -0
- package/configs/oxlint.json +2 -0
- package/dist/charts/cursor/resolve.d.ts +33 -0
- package/dist/charts/cursor/resolve.d.ts.map +1 -0
- package/dist/charts/cursor/resolve.js +61 -0
- package/dist/charts/cursor/resolve.test.d.ts +2 -0
- package/dist/charts/cursor/resolve.test.d.ts.map +1 -0
- package/dist/charts/cursor/scope.d.ts +17 -0
- package/dist/charts/cursor/scope.d.ts.map +1 -0
- package/dist/charts/cursor/scope.js +20 -0
- package/dist/charts/cursor/store.d.ts +31 -0
- package/dist/charts/cursor/store.d.ts.map +1 -0
- package/dist/charts/cursor/store.js +25 -0
- package/dist/charts/cursor/store.test.d.ts +2 -0
- package/dist/charts/cursor/store.test.d.ts.map +1 -0
- package/dist/charts/hooks/useChartCursor.d.ts +39 -0
- package/dist/charts/hooks/useChartCursor.d.ts.map +1 -0
- package/dist/charts/hooks/useChartCursor.js +104 -0
- package/dist/charts/hooks/useChartSize.d.ts +8 -4
- package/dist/charts/hooks/useChartSize.d.ts.map +1 -1
- package/dist/charts/index.d.ts +16 -13
- package/dist/charts/index.d.ts.map +1 -1
- package/dist/charts/index.js +38 -19
- package/dist/charts/kinds/Bars.d.ts +45 -54
- package/dist/charts/kinds/Bars.d.ts.map +1 -1
- package/dist/charts/kinds/Bars.js +235 -392
- package/dist/charts/kinds/Bars.test.d.ts +2 -0
- package/dist/charts/kinds/Bars.test.d.ts.map +1 -0
- package/dist/charts/kinds/Donut.d.ts +5 -4
- package/dist/charts/kinds/Donut.d.ts.map +1 -1
- package/dist/charts/kinds/Donut.js +17 -14
- package/dist/charts/kinds/DualPanel.d.ts +13 -0
- package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
- package/dist/charts/kinds/DualPanel.js +185 -92
- package/dist/charts/kinds/DualPanel.test.d.ts +2 -0
- package/dist/charts/kinds/DualPanel.test.d.ts.map +1 -0
- package/dist/charts/kinds/Heatmap.d.ts +15 -11
- package/dist/charts/kinds/Heatmap.d.ts.map +1 -1
- package/dist/charts/kinds/Heatmap.js +38 -22
- package/dist/charts/kinds/MultiLine.d.ts +27 -35
- package/dist/charts/kinds/MultiLine.d.ts.map +1 -1
- package/dist/charts/kinds/MultiLine.js +122 -235
- package/dist/charts/kinds/MultiLine.test.d.ts +2 -0
- package/dist/charts/kinds/MultiLine.test.d.ts.map +1 -0
- package/dist/charts/kinds/StackedArea.d.ts +21 -10
- package/dist/charts/kinds/StackedArea.d.ts.map +1 -1
- package/dist/charts/kinds/StackedArea.js +74 -132
- package/dist/charts/kinds/ZonedLine.d.ts +24 -40
- package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
- package/dist/charts/kinds/ZonedLine.js +104 -184
- package/dist/charts/kinds/ZonedLine.test.d.ts +2 -0
- package/dist/charts/kinds/ZonedLine.test.d.ts.map +1 -0
- package/dist/charts/layout/auto-margin.d.ts +60 -0
- package/dist/charts/layout/auto-margin.d.ts.map +1 -0
- package/dist/charts/layout/auto-margin.js +37 -0
- package/dist/charts/layout/auto-margin.test.d.ts +2 -0
- package/dist/charts/layout/auto-margin.test.d.ts.map +1 -0
- package/dist/charts/primitives/CartesianChart.d.ts +161 -0
- package/dist/charts/primitives/CartesianChart.d.ts.map +1 -0
- package/dist/charts/primitives/CartesianChart.js +359 -0
- package/dist/charts/primitives/CartesianChart.test.d.ts +2 -0
- package/dist/charts/primitives/CartesianChart.test.d.ts.map +1 -0
- package/dist/charts/primitives/ChartFrame.d.ts +16 -5
- package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
- package/dist/charts/primitives/ChartFrame.js +17 -2
- package/dist/charts/primitives/ChartLegend.d.ts +15 -1
- package/dist/charts/primitives/ChartLegend.d.ts.map +1 -1
- package/dist/charts/primitives/ChartLegend.js +25 -3
- package/dist/charts/primitives/ChartLegend.test.d.ts +2 -0
- package/dist/charts/primitives/ChartLegend.test.d.ts.map +1 -0
- package/dist/charts/primitives/ChartTooltip.d.ts +16 -16
- package/dist/charts/primitives/ChartTooltip.d.ts.map +1 -1
- package/dist/charts/primitives/ChartTooltip.js +45 -19
- package/dist/charts/primitives/HoverOverlay.d.ts +19 -4
- package/dist/charts/primitives/HoverOverlay.d.ts.map +1 -1
- package/dist/charts/primitives/HoverOverlay.js +22 -1
- package/dist/charts/primitives/XZoneRects.d.ts +54 -0
- package/dist/charts/primitives/XZoneRects.d.ts.map +1 -0
- package/dist/charts/primitives/XZoneRects.js +65 -0
- package/dist/charts/primitives/XZoneRects.test.d.ts +2 -0
- package/dist/charts/primitives/XZoneRects.test.d.ts.map +1 -0
- package/dist/charts/series.d.ts +28 -3
- package/dist/charts/series.d.ts.map +1 -1
- package/dist/charts/series.js +5 -2
- package/dist/charts/series.test.d.ts +2 -0
- package/dist/charts/series.test.d.ts.map +1 -0
- package/dist/charts/utils/measure-text.d.ts +25 -0
- package/dist/charts/utils/measure-text.d.ts.map +1 -0
- package/dist/charts/utils/measure-text.js +64 -0
- package/dist/charts/utils/measure-text.test.d.ts +2 -0
- package/dist/charts/utils/measure-text.test.d.ts.map +1 -0
- package/dist/content/fence-block.d.ts.map +1 -1
- package/dist/surfaces.d.ts +1 -1
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +1 -1
- package/dist/tokens/chart-margin.test.d.ts +2 -0
- package/dist/tokens/chart-margin.test.d.ts.map +1 -0
- package/dist/tokens/index.d.ts +29 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +10 -0
- package/dist/tokens/palette.d.ts +4 -0
- package/dist/tokens/palette.d.ts.map +1 -1
- package/dist/tokens/palette.js +3 -0
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/src/charts/cursor/resolve.test.ts +61 -0
- package/src/charts/cursor/resolve.ts +102 -0
- package/src/charts/cursor/scope.tsx +32 -0
- package/src/charts/cursor/store.test.ts +46 -0
- package/src/charts/cursor/store.ts +53 -0
- package/src/charts/hooks/useChartCursor.ts +163 -0
- package/src/charts/hooks/useChartSize.ts +8 -4
- package/src/charts/index.ts +35 -14
- package/src/charts/kinds/Bars.test.tsx +98 -0
- package/src/charts/kinds/Bars.tsx +350 -467
- package/src/charts/kinds/Donut.tsx +31 -23
- package/src/charts/kinds/DualPanel.test.tsx +131 -0
- package/src/charts/kinds/DualPanel.tsx +301 -135
- package/src/charts/kinds/Heatmap.tsx +72 -47
- package/src/charts/kinds/MultiLine.test.tsx +37 -0
- package/src/charts/kinds/MultiLine.tsx +171 -290
- package/src/charts/kinds/StackedArea.tsx +116 -175
- package/src/charts/kinds/ZonedLine.test.tsx +37 -0
- package/src/charts/kinds/ZonedLine.tsx +149 -255
- package/src/charts/layout/auto-margin.test.ts +42 -0
- package/src/charts/layout/auto-margin.ts +110 -0
- package/src/charts/primitives/CartesianChart.test.tsx +160 -0
- package/src/charts/primitives/CartesianChart.tsx +598 -0
- package/src/charts/primitives/ChartFrame.test.tsx +33 -0
- package/src/charts/primitives/ChartFrame.tsx +40 -4
- package/src/charts/primitives/ChartLegend.test.tsx +78 -0
- package/src/charts/primitives/ChartLegend.tsx +52 -2
- package/src/charts/primitives/ChartTooltip.tsx +67 -37
- package/src/charts/primitives/HoverOverlay.tsx +39 -3
- package/src/charts/primitives/XZoneRects.test.tsx +123 -0
- package/src/charts/primitives/XZoneRects.tsx +132 -0
- package/src/charts/series.test.ts +112 -0
- package/src/charts/series.ts +33 -5
- package/src/charts/utils/measure-text.test.ts +36 -0
- package/src/charts/utils/measure-text.ts +109 -0
- package/src/content/fence-block.tsx +2 -3
- package/src/surfaces.ts +2 -1
- package/src/theme/spacing.test.ts +2 -0
- package/src/tokens/chart-margin.test.ts +39 -0
- package/src/tokens/density.test.ts +1 -0
- package/src/tokens/index.ts +36 -0
- package/src/tokens/palette.ts +3 -0
- package/dist/charts/hooks/useChartTooltip.d.ts +0 -13
- package/dist/charts/hooks/useChartTooltip.d.ts.map +0 -1
- package/dist/charts/hooks/useChartTooltip.js +0 -26
- package/dist/charts/hooks/useHoverSync.d.ts +0 -46
- package/dist/charts/hooks/useHoverSync.d.ts.map +0 -1
- package/dist/charts/hooks/useHoverSync.js +0 -75
- package/dist/charts/hover-context.d.ts +0 -21
- package/dist/charts/hover-context.d.ts.map +0 -1
- package/dist/charts/hover-context.js +0 -12
- package/dist/charts/hover-sync.d.ts +0 -14
- package/dist/charts/hover-sync.d.ts.map +0 -1
- package/dist/charts/hover-sync.js +0 -17
- package/dist/charts/primitives/ResponsiveChart.d.ts +0 -45
- package/dist/charts/primitives/ResponsiveChart.d.ts.map +0 -1
- package/dist/charts/primitives/ResponsiveChart.js +0 -24
- package/src/charts/hooks/useChartTooltip.ts +0 -31
- package/src/charts/hooks/useHoverSync.ts +0 -152
- package/src/charts/hover-context.ts +0 -28
- package/src/charts/hover-sync.tsx +0 -37
- package/src/charts/primitives/ResponsiveChart.tsx +0 -64
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChartMargin } from '../../tokens/index.js';
|
|
2
|
+
import type { AxisConfig, CartesianTooltipConfig } from '../primitives/CartesianChart.js';
|
|
2
3
|
import type { ZoneSpec } from '../primitives/ZoneRects.js';
|
|
3
4
|
import type { ChartLegendConfig } from '../series.js';
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* `T = unknown` is load-bearing, not a shortcut: it keeps a consumer's existing
|
|
7
|
+
* `const bars: BarsBar[] = [...]` compiling (and still assignable to `BarsBar<Row>[]`,
|
|
8
|
+
* contravariantly) even though the type is now generic over the datum.
|
|
9
|
+
*/
|
|
10
|
+
export type BarsBar<T = unknown> = {
|
|
5
11
|
/** Field key — `getValue(d, key)` extracts the number (null = skip this slot, not domain hole). */
|
|
6
12
|
key: string;
|
|
7
13
|
/** Tooltip + legend label. */
|
|
@@ -9,21 +15,29 @@ export type BarsBar = {
|
|
|
9
15
|
/** Fill color (a resolved CSS color / token ref). Per `docs/DESIGN-SPEC.md` §5, the primary bar
|
|
10
16
|
* series should typically resolve to `VX.accent`, a secondary companion to `VX.faint`. */
|
|
11
17
|
color: string;
|
|
12
|
-
/** Per-series tooltip value formatter — overrides
|
|
13
|
-
|
|
18
|
+
/** Per-series tooltip value formatter — overrides the left/right axis's own format. Receives the
|
|
19
|
+
* hovered datum alongside the value. */
|
|
20
|
+
formatValue?: (v: number, d: T) => string;
|
|
14
21
|
/** Y axis to plot against. Honored only in grouped layout. Default 'left'. */
|
|
15
22
|
axisSide?: 'left' | 'right';
|
|
16
23
|
/** Relative width within the group (only honored in grouped layout). Default 1 — all bars equal. */
|
|
17
24
|
weight?: number;
|
|
25
|
+
/** Default true; false = drawn and legended, but never listed as a tooltip row — threads
|
|
26
|
+
* `SeriesStyle.tooltip` through `Bars`, replacing the removed per-kind `hideBarTooltipRows`. */
|
|
27
|
+
tooltip?: boolean;
|
|
18
28
|
};
|
|
19
|
-
export type BarsLine = {
|
|
29
|
+
export type BarsLine<T = unknown> = {
|
|
20
30
|
key: string;
|
|
21
31
|
label: string;
|
|
22
32
|
color: string;
|
|
23
33
|
axisSide?: 'left' | 'right';
|
|
24
34
|
strokeWidth?: number;
|
|
25
35
|
dashed?: boolean;
|
|
26
|
-
formatValue?: (v: number) => string;
|
|
36
|
+
formatValue?: (v: number, d: T) => string;
|
|
37
|
+
/** Default true; false = drawn and legended, but never listed as a tooltip row. */
|
|
38
|
+
tooltip?: boolean;
|
|
39
|
+
/** Dims the plotted stroke AND the legend swatch, never the tooltip row (`SeriesStyle.strokeOpacity`). */
|
|
40
|
+
strokeOpacity?: number;
|
|
27
41
|
};
|
|
28
42
|
/** @deprecated Use ZoneSpec from primitives/ZoneRects. Kept as an alias. */
|
|
29
43
|
export type BarsZone = ZoneSpec;
|
|
@@ -34,43 +48,33 @@ export type BarsRefLine = {
|
|
|
34
48
|
dashed?: boolean;
|
|
35
49
|
axisSide?: 'left' | 'right';
|
|
36
50
|
};
|
|
37
|
-
export type BarsAxisConfig = {
|
|
38
|
-
/** Fixed [min, max] or 'auto' (computed from bars + lines + zones + refLines on this axis). */
|
|
39
|
-
domain: [number, number] | 'auto';
|
|
40
|
-
/** Auto-domain padding multiplier. Default 1.1. The lower bound always pads DOWN from
|
|
41
|
-
* `min(dataMin, autoMinCeil)` (never up, which would clip data) — see {@link padAutoLower}. */
|
|
42
|
-
autoPad?: number;
|
|
43
|
-
/** Auto-domain lower bound ceiling — never above this. Default 0. */
|
|
44
|
-
autoMinCeil?: number;
|
|
45
|
-
/** Auto-domain upper bound floor — never below this. */
|
|
46
|
-
autoMaxFloor?: number;
|
|
47
|
-
/** Tick label formatter (e.g. (v) => `${v}h`). */
|
|
48
|
-
formatTick?: (v: number) => string;
|
|
49
|
-
/** Number of ticks. Default 5. */
|
|
50
|
-
numTicks?: number;
|
|
51
|
-
};
|
|
52
51
|
export type BarsProps<T> = {
|
|
53
52
|
data: T[];
|
|
54
|
-
/** Fixed height in pixels, forwarded to
|
|
53
|
+
/** Fixed height in pixels, forwarded to `CartesianChart`. Default 240. */
|
|
55
54
|
height?: number;
|
|
56
55
|
chartId: string;
|
|
57
56
|
getX: (d: T) => string;
|
|
58
57
|
/** Generic value accessor — given a data point and a bar/line key, returns the value or null. */
|
|
59
58
|
getValue: (d: T, key: string) => number | null;
|
|
60
59
|
/** 1+ bar series, stacked when ≥2, plotted above baseline (y >= 0). */
|
|
61
|
-
positiveBars: BarsBar[];
|
|
60
|
+
positiveBars: BarsBar<T>[];
|
|
62
61
|
/** Optional bar series stacked below baseline (rendered as flipped negatives). */
|
|
63
|
-
negativeBars?: BarsBar[];
|
|
62
|
+
negativeBars?: BarsBar<T>[];
|
|
64
63
|
/** 0–2 line overlays, each on left or right axis. */
|
|
65
|
-
lines?: BarsLine[];
|
|
64
|
+
lines?: BarsLine<T>[];
|
|
66
65
|
/** Horizontal value-range overlays (target zones, optimal bands). */
|
|
67
66
|
zones?: BarsZone[];
|
|
68
67
|
/** Dashed/solid horizontal reference lines. */
|
|
69
68
|
refLines?: BarsRefLine[];
|
|
70
|
-
/** Left axis config
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
/** Left axis config — bars always live here. In `barLayout: 'stacked'` (the default), `domain`
|
|
70
|
+
* defaults to the summed per-point stack total (bars + any left-axis lines), not a per-series
|
|
71
|
+
* max — the same function-domain seam `StackedArea` uses — unless overridden with a fixed tuple
|
|
72
|
+
* or a custom function. Optional, like every other kind's — omit it for a plain auto domain. */
|
|
73
|
+
y?: AxisConfig<T>;
|
|
74
|
+
/** Right axis config. Passing it is what makes the chart dual-axis: it draws the right axis and
|
|
75
|
+
* widens the right margin by measurement. Line overlays (and grouped-layout bars) opt in with
|
|
76
|
+
* `axisSide: 'right'`. */
|
|
77
|
+
y2?: AxisConfig<T>;
|
|
74
78
|
/** Bar width as fraction of slot width. Default 0.6. */
|
|
75
79
|
barWidthRatio?: number;
|
|
76
80
|
/**
|
|
@@ -82,30 +86,18 @@ export type BarsProps<T> = {
|
|
|
82
86
|
barLayout?: 'stacked' | 'grouped';
|
|
83
87
|
/** Per-bar opacity override. Receives the data point + bar key. Default 0.85. */
|
|
84
88
|
barOpacity?: (d: T, key: string) => number;
|
|
85
|
-
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
/** Tooltip rows rendered AFTER the generated bar/line rows. */
|
|
93
|
-
renderExtraTooltipRows?: (d: T) => ReactNode;
|
|
94
|
-
/** Skip the auto-generated positive/negative bar rows in the tooltip (chart still renders them). */
|
|
95
|
-
hideBarTooltipRows?: boolean;
|
|
96
|
-
/** Default value formatter if a series doesn't define its own. */
|
|
97
|
-
formatValue?: (v: number) => string;
|
|
98
|
-
/** X-axis tick count override. */
|
|
99
|
-
numTicksX?: number;
|
|
100
|
-
/** Override the left margin (defaults to VX.margin.left = 44). Useful when
|
|
101
|
-
* y-axis labels are unusually wide (e.g. five-digit step counts). */
|
|
102
|
-
marginLeft?: number;
|
|
103
|
-
/** Legend config forwarded to `ChartFrame`; `false` disables the legend (sparkline escape).
|
|
89
|
+
/** X tick count override. Default: as many as fit. */
|
|
90
|
+
xTicks?: number;
|
|
91
|
+
/** `false` disables the tooltip entirely (and with it the crosshair dots). */
|
|
92
|
+
tooltip?: CartesianTooltipConfig<T> | false;
|
|
93
|
+
/** Per-side overrides of the measured margins — the escape hatch, applied last. */
|
|
94
|
+
margin?: Partial<ChartMargin>;
|
|
95
|
+
/** Legend config forwarded to `CartesianChart`; `false` disables the legend (sparkline escape).
|
|
104
96
|
* Default `{ placement: 'bottom' }`. */
|
|
105
97
|
legend?: ChartLegendConfig | false;
|
|
106
|
-
/** Accessible text alternative, forwarded
|
|
98
|
+
/** Accessible text alternative, forwarded as `aria-label` (+ `role="img"`). */
|
|
107
99
|
ariaLabel?: string;
|
|
108
|
-
/** Forwarded to `
|
|
100
|
+
/** Forwarded to `CartesianChart` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
109
101
|
isPending?: boolean;
|
|
110
102
|
};
|
|
111
103
|
/**
|
|
@@ -113,10 +105,9 @@ export type BarsProps<T> = {
|
|
|
113
105
|
* overlays on left/right axes, horizontal zones, and reference lines. Covers
|
|
114
106
|
* diverging-stack + bar+line + any future stacked-bar preset.
|
|
115
107
|
*
|
|
116
|
-
* Composes `
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* `highlightedKey` prop).
|
|
108
|
+
* Composes `CartesianChart` (`docs/CHARTS-SPEC.md` §2) — margin, scales, grid, axes, the shared
|
|
109
|
+
* cursor, the crosshair + per-series dots, and the tooltip are ALL the primitive's job. This file
|
|
110
|
+
* draws only the bar rects, the line overlays, and (for a diverging stack) the zero baseline.
|
|
120
111
|
*
|
|
121
112
|
* X-axis is built from the full `data` array so the calendar is preserved even
|
|
122
113
|
* with per-bar nulls (nulls become visual gaps, not domain holes).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"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"}
|