@cascivo/charts 0.18.0 → 1.0.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/README.md +14 -0
- package/dist/chart-frame.module-CkOcXGSL.js +191 -0
- package/dist/index.d.ts +45 -44
- package/dist/index.js +2005 -2172
- package/dist/node/chart-frame.module-CkOcXGSL.js +191 -0
- package/dist/node/index.js +2005 -2172
- package/dist/node/sparkline.js +61 -0
- package/dist/sparkline.d.ts +43 -0
- package/dist/sparkline.js +62 -0
- package/package.json +9 -3
- package/readme.body.md +14 -0
package/README.md
CHANGED
|
@@ -81,6 +81,20 @@ The charts are signal-driven. In a plain React app (no Babel signals transform),
|
|
|
81
81
|
from `@cascivo/core` as the first statement of any component that reads a signal during render. The
|
|
82
82
|
docs app (Preact) does not need this.
|
|
83
83
|
|
|
84
|
+
## One sparkline, without the engine
|
|
85
|
+
|
|
86
|
+
`import { Sparkline } from '@cascivo/charts'` pulls in the whole charting engine — tooltips, voronoi hit-testing, a canvas layer, zoom/pan, a toolbox, PNG/SVG export — because `Sparkline` is built on the same frame as every other chart. An adopter measured 44.87 kB / 14.84 kB gzip for a single trend line on a landing page.
|
|
87
|
+
|
|
88
|
+
For a page that wants a sparkline and draws no other charts, there is a subpath that does not:
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
import { Sparkline } from '@cascivo/charts/sparkline' // ~3.5 kB gzip, no engine
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Identical props, identical markup, identical styling — asserted by a DOM-parity test, and the size is held by a budget in CI. **One difference: no hover tooltip**, because the tooltip is what requires the engine.
|
|
95
|
+
|
|
96
|
+
Use the main entry when the page draws other charts anyway: the engine is already paid for and the subpath saves nothing.
|
|
97
|
+
|
|
84
98
|
## Coloring
|
|
85
99
|
|
|
86
100
|
By default every slice/series/layer is colored from the positional palette
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/engine/scale.ts
|
|
3
|
+
function e(e, n) {
|
|
4
|
+
let [r, i] = e, [a, o] = n, s = i - r;
|
|
5
|
+
return {
|
|
6
|
+
domain: e,
|
|
7
|
+
range: n,
|
|
8
|
+
map: (e) => s === 0 ? a : a + (e - r) / s * (o - a),
|
|
9
|
+
invert: (e) => o - a === 0 ? r : r + (e - a) / (o - a) * s,
|
|
10
|
+
ticks: (e = 5, n) => t(r, i, e, n)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function t(e, t, n = 5, r) {
|
|
14
|
+
if (!Number.isFinite(e) || !Number.isFinite(t) || e === t) return [e];
|
|
15
|
+
e > t && ([e, t] = [t, e]);
|
|
16
|
+
let i = r ?? !(Number.isInteger(e) && Number.isInteger(t)), a = (t - e) / Math.max(1, n), o = 10 ** Math.floor(Math.log10(a)), s = i ? [
|
|
17
|
+
1,
|
|
18
|
+
2,
|
|
19
|
+
2.5,
|
|
20
|
+
5,
|
|
21
|
+
10
|
|
22
|
+
] : [
|
|
23
|
+
1,
|
|
24
|
+
2,
|
|
25
|
+
5,
|
|
26
|
+
10
|
|
27
|
+
], c = a / o, l = (s.find((e) => e >= c) ?? 10) * o;
|
|
28
|
+
i || (l = Math.max(1, Math.round(l)));
|
|
29
|
+
let u = Math.ceil(e / l), d = Math.floor(t / l + 1e-9), f = [], p = Math.max(0, Math.ceil(-Math.log10(l)) + 2);
|
|
30
|
+
for (let e = u; e <= d; e++) f.push(parseFloat((e * l).toFixed(p)));
|
|
31
|
+
return f;
|
|
32
|
+
}
|
|
33
|
+
function n(e, t, n = .1) {
|
|
34
|
+
let [r, i] = t, a = e.length, o = (i - r) / Math.max(1, a + n * (a + 1)), s = o, c = o * n, l = new Map(e.map((e, t) => [e, t]));
|
|
35
|
+
return {
|
|
36
|
+
domain: e,
|
|
37
|
+
range: t,
|
|
38
|
+
bandwidth: s,
|
|
39
|
+
map: (e) => {
|
|
40
|
+
let t = l.get(e);
|
|
41
|
+
return t === void 0 ? void 0 : r + c + t * (o + c);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function r(e, t) {
|
|
46
|
+
let [n, r] = e, [i, a] = t, o = Math.sqrt(Math.max(0, n)), s = Math.sqrt(Math.max(0, r)) - o;
|
|
47
|
+
return (e) => s === 0 ? (i + a) / 2 : i + (Math.sqrt(Math.max(0, e)) - o) / s * (a - i);
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/engine/shape.ts
|
|
51
|
+
function i(e) {
|
|
52
|
+
return Math.round(e * 100) / 100;
|
|
53
|
+
}
|
|
54
|
+
function a(e, t = !1) {
|
|
55
|
+
if (t) {
|
|
56
|
+
let t = e.filter((e) => e !== null);
|
|
57
|
+
return t.length > 0 ? [t] : [];
|
|
58
|
+
}
|
|
59
|
+
let n = [], r = [];
|
|
60
|
+
for (let t of e) t === null ? (r.length > 0 && n.push(r), r = []) : r.push(t);
|
|
61
|
+
return r.length > 0 && n.push(r), n;
|
|
62
|
+
}
|
|
63
|
+
function o(e, t = "linear") {
|
|
64
|
+
if (e.length === 0) return "";
|
|
65
|
+
if (e.length === 1 || t === "linear") return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
66
|
+
switch (t) {
|
|
67
|
+
case "monotone": return p(e);
|
|
68
|
+
case "step":
|
|
69
|
+
case "stepBefore":
|
|
70
|
+
case "stepAfter": return s(e, t);
|
|
71
|
+
case "natural": return l(e);
|
|
72
|
+
case "basis": return u(e);
|
|
73
|
+
case "cardinal": return d(e, 0);
|
|
74
|
+
case "catmullRom": return f(e, .5);
|
|
75
|
+
default: return p(e);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function s(e, t) {
|
|
79
|
+
let n = `M${e[0][0]},${e[0][1]}`;
|
|
80
|
+
for (let r = 0; r < e.length - 1; r++) {
|
|
81
|
+
let [i, a] = e[r], [o, s] = e[r + 1];
|
|
82
|
+
if (t === "stepBefore") n += `L${i},${s}L${o},${s}`;
|
|
83
|
+
else if (t === "stepAfter") n += `L${o},${a}L${o},${s}`;
|
|
84
|
+
else {
|
|
85
|
+
let e = (i + o) / 2;
|
|
86
|
+
n += `L${e},${a}L${e},${s}L${o},${s}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return n;
|
|
90
|
+
}
|
|
91
|
+
function c(e) {
|
|
92
|
+
let t = e.length - 1;
|
|
93
|
+
if (t < 1) return [[], []];
|
|
94
|
+
let n = Array(t), r = Array(t), i = Array(t);
|
|
95
|
+
r[0] = 2, i[0] = e[0] + 2 * e[1];
|
|
96
|
+
for (let a = 1; a < t - 1; a++) n[a] = 1, r[a] = 4, i[a] = 4 * e[a] + 2 * e[a + 1];
|
|
97
|
+
n[t - 1] = 2, r[t - 1] = 7, i[t - 1] = 8 * e[t - 1] + e[t];
|
|
98
|
+
for (let e = 1; e < t; e++) {
|
|
99
|
+
let t = (n[e] ?? 0) / r[e - 1];
|
|
100
|
+
r[e] = r[e] - t, i[e] = i[e] - t * i[e - 1];
|
|
101
|
+
}
|
|
102
|
+
let a = Array(t), o = Array(t);
|
|
103
|
+
a[t - 1] = i[t - 1] / r[t - 1];
|
|
104
|
+
for (let e = t - 2; e >= 0; e--) a[e] = (i[e] - a[e + 1]) / r[e];
|
|
105
|
+
for (let n = 0; n < t - 1; n++) o[n] = 2 * e[n + 1] - a[n + 1];
|
|
106
|
+
return o[t - 1] = (e[t] + a[t - 1]) / 2, [a, o];
|
|
107
|
+
}
|
|
108
|
+
function l(e) {
|
|
109
|
+
let t = e.length;
|
|
110
|
+
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
111
|
+
let n = e.map((e) => e[0]), r = e.map((e) => e[1]), [i, a] = c(n), [o, s] = c(r), l = `M${n[0]},${r[0]}`;
|
|
112
|
+
for (let e = 0; e < t - 1; e++) l += `C${i[e]},${o[e]} ${a[e]},${s[e]} ${n[e + 1]},${r[e + 1]}`;
|
|
113
|
+
return l;
|
|
114
|
+
}
|
|
115
|
+
function u(e) {
|
|
116
|
+
let t = e.length;
|
|
117
|
+
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
118
|
+
let n = (n) => e[Math.max(0, Math.min(t - 1, n))][0], r = (n) => e[Math.max(0, Math.min(t - 1, n))][1], i = `M${n(0)},${r(0)}`;
|
|
119
|
+
for (let e = 0; e < t - 1; e++) {
|
|
120
|
+
let t = n(e - 1), a = r(e - 1), o = n(e), s = r(e), c = n(e + 1), l = r(e + 1), u = (2 * t + o) / 3, d = (2 * a + s) / 3, f = (t + 2 * o) / 3, p = (a + 2 * s) / 3, m = (t + 4 * o + c) / 6, h = (a + 4 * s + l) / 6;
|
|
121
|
+
i += `C${u},${d} ${f},${p} ${m},${h}`;
|
|
122
|
+
}
|
|
123
|
+
let a = e[t - 1];
|
|
124
|
+
return i += `L${a[0]},${a[1]}`, i;
|
|
125
|
+
}
|
|
126
|
+
function d(e, t) {
|
|
127
|
+
let n = e.length;
|
|
128
|
+
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
129
|
+
let r = (1 - t) / 6, i = (t) => e[Math.max(0, Math.min(n - 1, t))], a = `M${e[0][0]},${e[0][1]}`;
|
|
130
|
+
for (let e = 0; e < n - 1; e++) {
|
|
131
|
+
let t = i(e - 1), n = i(e), o = i(e + 1), s = i(e + 2), c = n[0] + r * (o[0] - t[0]), l = n[1] + r * (o[1] - t[1]), u = o[0] - r * (s[0] - n[0]), d = o[1] - r * (s[1] - n[1]);
|
|
132
|
+
a += `C${c},${l} ${u},${d} ${o[0]},${o[1]}`;
|
|
133
|
+
}
|
|
134
|
+
return a;
|
|
135
|
+
}
|
|
136
|
+
function f(e, t) {
|
|
137
|
+
let n = e.length;
|
|
138
|
+
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
139
|
+
let r = (t) => e[Math.max(0, Math.min(n - 1, t))], i = (e, t) => Math.hypot(t[0] - e[0], t[1] - e[1]), a = `M${e[0][0]},${e[0][1]}`;
|
|
140
|
+
for (let e = 0; e < n - 1; e++) {
|
|
141
|
+
let n = r(e - 1), o = r(e), s = r(e + 1), c = r(e + 2), l = i(n, o) ** +t || 1e-6, u = i(o, s) ** +t || 1e-6, d = i(s, c) ** +t || 1e-6, f = s[0] - o[0] + u * ((o[0] - n[0]) / l - (s[0] - n[0]) / (l + u)), p = s[1] - o[1] + u * ((o[1] - n[1]) / l - (s[1] - n[1]) / (l + u)), m = s[0] - o[0] + u * ((c[0] - s[0]) / d - (c[0] - o[0]) / (u + d)), h = s[1] - o[1] + u * ((c[1] - s[1]) / d - (c[1] - o[1]) / (u + d)), g = o[0] + f / 3, _ = o[1] + p / 3, v = s[0] - m / 3, y = s[1] - h / 3;
|
|
142
|
+
a += `C${g},${_} ${v},${y} ${s[0]},${s[1]}`;
|
|
143
|
+
}
|
|
144
|
+
return a;
|
|
145
|
+
}
|
|
146
|
+
function p(e) {
|
|
147
|
+
let t = e.length, n = [], r = [], i = [];
|
|
148
|
+
for (let a = 0; a < t - 1; a++) n[a] = e[a + 1][0] - e[a][0], r[a] = e[a + 1][1] - e[a][1], i[a] = n[a] === 0 ? 0 : r[a] / n[a];
|
|
149
|
+
let a = [i[0] ?? 0];
|
|
150
|
+
for (let e = 1; e < t - 1; e++) {
|
|
151
|
+
let t = i[e - 1], n = i[e];
|
|
152
|
+
a[e] = t * n <= 0 ? 0 : 2 * t * n / (t + n);
|
|
153
|
+
}
|
|
154
|
+
a[t - 1] = i[t - 2] ?? 0;
|
|
155
|
+
let o = `M${e[0][0]},${e[0][1]}`;
|
|
156
|
+
for (let n = 0; n < t - 1; n++) {
|
|
157
|
+
let [t, r] = e[n], [i, s] = e[n + 1], c = (i - t) / 3;
|
|
158
|
+
o += `C${t + c},${r + c * a[n]} ${i - c},${s - c * a[n + 1]} ${i},${s}`;
|
|
159
|
+
}
|
|
160
|
+
return o;
|
|
161
|
+
}
|
|
162
|
+
function m(e, t, n = "linear") {
|
|
163
|
+
if (e.length === 0) return "";
|
|
164
|
+
let r = o(e, n), i = e[e.length - 1], a = e[0];
|
|
165
|
+
return `${r}L${i[0]},${t}L${a[0]},${t}Z`;
|
|
166
|
+
}
|
|
167
|
+
function h(e, t, n, r, a, o) {
|
|
168
|
+
let s = 2 * Math.PI;
|
|
169
|
+
if (Math.abs(o - a) >= s - 1e-9) {
|
|
170
|
+
let i = a + Math.PI;
|
|
171
|
+
return h(e, t, n, r, a, i) + h(e, t, n, r, i, a + s - 1e-9);
|
|
172
|
+
}
|
|
173
|
+
let c = (n, r) => [i(e + n * Math.sin(r)), i(t - n * Math.cos(r))], l = +(o - a > Math.PI), u = i(n), d = i(r), [f, p] = c(n, a), [m, g] = c(n, o);
|
|
174
|
+
if (r <= 0) return `M${i(e)},${i(t)}L${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}Z`;
|
|
175
|
+
let [_, v] = c(r, o), [y, b] = c(r, a);
|
|
176
|
+
return `M${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}L${_},${v}A${d},${d} 0 ${l} 0 ${y},${b}Z`;
|
|
177
|
+
}
|
|
178
|
+
function g(e) {
|
|
179
|
+
let t = e[0]?.length ?? 0, n = Array.from({ length: t }, () => 0);
|
|
180
|
+
return e.map((e) => e.map((e, t) => {
|
|
181
|
+
let r = n[t];
|
|
182
|
+
return n[t] = r + e, [r, n[t]];
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
var _ = {
|
|
186
|
+
frame: "_frame_1gm0a_2",
|
|
187
|
+
"cascivo-chart-in": "_cascivo-chart-in_1gm0a_1",
|
|
188
|
+
fallback: "_fallback_1gm0a_78"
|
|
189
|
+
};
|
|
190
|
+
//#endregion
|
|
191
|
+
export { i as a, n as c, r as d, o as i, e as l, h as n, a as o, m as r, g as s, _ as t, t as u };
|
package/dist/index.d.ts
CHANGED
|
@@ -312,7 +312,9 @@ interface BarChartProps<Datum = {
|
|
|
312
312
|
title: string;
|
|
313
313
|
description?: string;
|
|
314
314
|
/**
|
|
315
|
-
*
|
|
315
|
+
* Direction the bars grow. `vertical` puts the categories on the x-axis and grows bars
|
|
316
|
+
* upward (columns); `horizontal` puts them on the y-axis and grows bars rightward — the
|
|
317
|
+
* better choice for long category names.
|
|
316
318
|
*
|
|
317
319
|
* @defaultValue `vertical`
|
|
318
320
|
* @see the component manifest
|
|
@@ -329,37 +331,14 @@ interface BarChartProps<Datum = {
|
|
|
329
331
|
*/
|
|
330
332
|
width?: number;
|
|
331
333
|
height?: number;
|
|
332
|
-
/**
|
|
333
|
-
* Approximate number of ticks on the x-axis.
|
|
334
|
-
*
|
|
335
|
-
* ⚠ **Follows SCREEN position, so its meaning swaps with `orientation`.** On a vertical
|
|
336
|
-
* chart the x-axis is the category axis; on a horizontal one it is the VALUE axis. Prefer
|
|
337
|
-
* {@link BarChartProps.valueAxisTicks} / {@link BarChartProps.categoryAxisTicks}, which
|
|
338
|
-
* name the axis by role and never swap.
|
|
339
|
-
*
|
|
340
|
-
* @defaultValue `5`
|
|
341
|
-
* @deprecated Use `valueAxisTicks` / `categoryAxisTicks`.
|
|
342
|
-
*/
|
|
343
|
-
xTicks?: number;
|
|
344
|
-
/**
|
|
345
|
-
* Approximate number of ticks on the y-axis.
|
|
346
|
-
*
|
|
347
|
-
* ⚠ **Follows SCREEN position, so its meaning swaps with `orientation`** — see
|
|
348
|
-
* {@link BarChartProps.xTicks}.
|
|
349
|
-
*
|
|
350
|
-
* @defaultValue `5`
|
|
351
|
-
* @deprecated Use `valueAxisTicks` / `categoryAxisTicks`.
|
|
352
|
-
*/
|
|
353
|
-
yTicks?: number;
|
|
354
334
|
/**
|
|
355
335
|
* Approximate number of ticks on the **value** axis, whichever way the chart is turned.
|
|
356
336
|
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
* C17b). Wins over `xTicks`/`yTicks` when both are given.
|
|
337
|
+
* Named by ROLE, so it means the same thing on both orientations. The screen-position
|
|
338
|
+
* pair it replaced (`xTicks`/`yTicks`, removed at 1.0) swapped meaning with `orientation`:
|
|
339
|
+
* `yTicks={1}` silently did nothing on a horizontal chart while `xTicks={1}` worked, and
|
|
340
|
+
* `xLabelEvery` did not swap at all — two conventions in one component with nothing in the
|
|
341
|
+
* types to say so (2026-07-28 report C17b).
|
|
363
342
|
*
|
|
364
343
|
* @defaultValue `5`
|
|
365
344
|
*/
|
|
@@ -376,7 +355,7 @@ interface BarChartProps<Datum = {
|
|
|
376
355
|
* Show every Nth category label (and always the last) to thin a crowded axis.
|
|
377
356
|
*
|
|
378
357
|
* Always strides the **category** axis (the `x` field of each datum), on both
|
|
379
|
-
* orientations
|
|
358
|
+
* orientations.
|
|
380
359
|
* {@link BarChartProps.categoryLabelEvery} is the unambiguous name; this is kept for
|
|
381
360
|
* compatibility.
|
|
382
361
|
*/
|
|
@@ -438,8 +417,6 @@ declare function BarChart<Datum = {
|
|
|
438
417
|
mode,
|
|
439
418
|
width: fixedWidth,
|
|
440
419
|
height,
|
|
441
|
-
xTicks,
|
|
442
|
-
yTicks,
|
|
443
420
|
valueAxisTicks,
|
|
444
421
|
categoryAxisTicks,
|
|
445
422
|
xLabelEvery,
|
|
@@ -1257,7 +1234,7 @@ declare function Glyph({
|
|
|
1257
1234
|
}: GlyphProps): ReactNode;
|
|
1258
1235
|
/** Greedily wrap `text` to lines no wider than `maxWidth` (px) at the given font size. */
|
|
1259
1236
|
declare function wrapText(text: string, maxWidth: number, fontSize: number): string[];
|
|
1260
|
-
interface
|
|
1237
|
+
interface ChartTextProps {
|
|
1261
1238
|
x: number;
|
|
1262
1239
|
y: number;
|
|
1263
1240
|
children: string;
|
|
@@ -1270,11 +1247,17 @@ interface TextProps {
|
|
|
1270
1247
|
className?: string;
|
|
1271
1248
|
}
|
|
1272
1249
|
/**
|
|
1273
|
-
* An SVG text primitive that wraps to a max width (canvas-measured, with a char
|
|
1274
|
-
* fallback). The `@visx/text` analogue — used by `Axis` for long category labels
|
|
1275
|
-
*
|
|
1250
|
+
* An SVG `<text>` primitive that wraps to a max width (canvas-measured, with a char
|
|
1251
|
+
* fallback). The `@visx/text` analogue — used by `Axis` for long category labels and
|
|
1252
|
+
* available to custom charts.
|
|
1253
|
+
*
|
|
1254
|
+
* Named `ChartText`, not `Text`: `@cascivo/react` also exports a `Text` (the typography
|
|
1255
|
+
* component), and a dashboard file importing from both packages is the normal case. The
|
|
1256
|
+
* collision resolved silently — the wrong `Text` renders an SVG node where a paragraph was
|
|
1257
|
+
* meant, with no error — and it was the last one in the catalog after `Calendar` became
|
|
1258
|
+
* `CalendarHeatmap` (2026-08-22 report item 20).
|
|
1276
1259
|
*/
|
|
1277
|
-
declare function
|
|
1260
|
+
declare function ChartText({
|
|
1278
1261
|
x,
|
|
1279
1262
|
y,
|
|
1280
1263
|
children,
|
|
@@ -1284,7 +1267,7 @@ declare function Text({
|
|
|
1284
1267
|
fill,
|
|
1285
1268
|
lineHeight,
|
|
1286
1269
|
className
|
|
1287
|
-
}:
|
|
1270
|
+
}: ChartTextProps): ReactNode;
|
|
1288
1271
|
interface BrushProps {
|
|
1289
1272
|
/** Total number of selectable items (data length). */
|
|
1290
1273
|
count: number;
|
|
@@ -1693,9 +1676,11 @@ interface AreaChartProps<Datum = {
|
|
|
1693
1676
|
*/
|
|
1694
1677
|
curve?: Curve;
|
|
1695
1678
|
/**
|
|
1696
|
-
* Area fill style — solid, a top→bottom gradient, or a pattern.
|
|
1679
|
+
* Area fill style — solid, a top→bottom gradient, or a pattern. A single non-stacked
|
|
1680
|
+
* series defaults to `gradient` (a lone solid area reads as a heavy block); stacked and
|
|
1681
|
+
* overlapping series default to `solid`.
|
|
1697
1682
|
*
|
|
1698
|
-
* @defaultValue `solid`
|
|
1683
|
+
* @defaultValue `gradient for one non-stacked series, solid otherwise`
|
|
1699
1684
|
* @see the component manifest
|
|
1700
1685
|
*/
|
|
1701
1686
|
fill?: FillKind;
|
|
@@ -1804,7 +1789,7 @@ declare function AreaChart<Datum = {
|
|
|
1804
1789
|
description,
|
|
1805
1790
|
stacked,
|
|
1806
1791
|
curve,
|
|
1807
|
-
fill,
|
|
1792
|
+
fill: fillProp,
|
|
1808
1793
|
patternKind,
|
|
1809
1794
|
width: fixedWidth,
|
|
1810
1795
|
height,
|
|
@@ -2062,7 +2047,7 @@ interface MeterProps {
|
|
|
2062
2047
|
max?: number;
|
|
2063
2048
|
label: string;
|
|
2064
2049
|
/**
|
|
2065
|
-
*
|
|
2050
|
+
* `bar` draws a straight horizontal track; `gauge` draws a half-donut dial.
|
|
2066
2051
|
*
|
|
2067
2052
|
* @defaultValue `bar`
|
|
2068
2053
|
* @see the component manifest
|
|
@@ -2191,7 +2176,7 @@ declare function Histogram({
|
|
|
2191
2176
|
data,
|
|
2192
2177
|
bins,
|
|
2193
2178
|
title,
|
|
2194
|
-
label
|
|
2179
|
+
label,
|
|
2195
2180
|
description,
|
|
2196
2181
|
width: fixedWidth,
|
|
2197
2182
|
height,
|
|
@@ -2852,7 +2837,22 @@ interface CalendarHeatmapProps {
|
|
|
2852
2837
|
* @see the component manifest
|
|
2853
2838
|
*/
|
|
2854
2839
|
width?: number;
|
|
2840
|
+
/**
|
|
2841
|
+
* SVG height in px. A **cap on the drawn grid, never a crop** — cells shrink so all seven
|
|
2842
|
+
* weekday rows fit inside it.
|
|
2843
|
+
*
|
|
2844
|
+
* @defaultValue `160` (`48` when `plain`)
|
|
2845
|
+
* @see the component manifest
|
|
2846
|
+
*/
|
|
2855
2847
|
height?: number;
|
|
2848
|
+
/**
|
|
2849
|
+
* Optional ceiling on a cell's edge, in px. Cells are already clamped to fit `height`; use
|
|
2850
|
+
* this only to keep them small in a short, wide range (GitHub's calendar uses ~11).
|
|
2851
|
+
*
|
|
2852
|
+
* Omitted by default so the height budget alone decides — a fixed default would shrink
|
|
2853
|
+
* year-length ranges that render correctly today.
|
|
2854
|
+
*/
|
|
2855
|
+
maxCellSize?: number;
|
|
2856
2856
|
tooltip?: boolean;
|
|
2857
2857
|
className?: string;
|
|
2858
2858
|
/**
|
|
@@ -2874,6 +2874,7 @@ declare function CalendarHeatmap({
|
|
|
2874
2874
|
to,
|
|
2875
2875
|
width: fixedWidth,
|
|
2876
2876
|
height,
|
|
2877
|
+
maxCellSize,
|
|
2877
2878
|
tooltip,
|
|
2878
2879
|
className,
|
|
2879
2880
|
plain,
|
|
@@ -3112,4 +3113,4 @@ declare function Gauge({
|
|
|
3112
3113
|
className,
|
|
3113
3114
|
plain
|
|
3114
3115
|
}: GaugeProps): import("react").JSX.Element;
|
|
3115
|
-
export { AXIS_CHAR_PX, AXIS_LINE_PX, AggOp, AggregateSpec, AngleBand, Annotation, AnnotationContext, AnnotationScale, AreaChart, AreaChartProps, AreaChartSeries, AreaDecimateOptions, Axis, AxisProps, BandScale, BarChart, BarChartProps, BarChartSeries, Bin, BoundStream, BoxStats, Boxplot, BoxplotProps, BoxplotSeries, Brush, BrushProps, BubbleChart, BubbleChartProps, BubbleDatum, BubbleSeries, Bullet, BulletProps, CalendarHeatmap, CalendarHeatmapDatum, CalendarHeatmapProps, Candlestick, CandlestickDatum, CandlestickProps, CanvasLayer, CanvasLayerProps, CanvasPaint, CanvasSize, CategoryDatum, CategoryMapping, ChartDefs, ChartDefsProps, ChartFrame, ChartFrameProps, ChartSize, ComboChart, ComboChartBar, ComboChartPoint, ComboChartProps, Curve, DEFAULT_MARGINS, DataLabel, DataLabelProps, DataZoom, DataZoomProps, DecimateMethod, DecimateOptions, DefSeries, EncodeMapping, EncodedResult, EncodedSeries, FillKind, Funnel, FunnelProps, FunnelStage, Gauge, GaugeProps, GaugeThreshold, Glyph, GlyphProps, GlyphShape, GridLines, GridLinesProps, Heatmap, HeatmapDatum, HeatmapProps, HierNode, Histogram, HistogramBin, HistogramProps, IntervalUnit, Kpi, KpiProps, LabelOptions, LaidLink, LaidNode, Legend, LegendProps, LegendSeries, LineChart, LineChartProps, LineChartSeries, LinearScale, LogScale, Meter, MeterProps, MeterThresholds, PLAIN_MARGINS, PartitionedNode, PatternKind, PieChart, PieChartDatum, PieChartProps, Point, Polar, PolarDatum, PolarProps, Pt, Radar, RadarProps, RadarSeries, RadialBar, RadialBarDatum, RadialBarProps, RampKind, Rect, RegressionResult, RegressionType, ResolvedLabelOptions, Row, Sankey, SankeyLayout, SankeyLink, SankeyNode, SankeyOptions, SankeyProps, ScatterChart, ScatterChartProps, ScatterChartSeries, ScatterDatum, Sparkline, SparklineProps, StackedRow, StackedSegment, Stream, StreamDecimate, StreamOffset, StreamProps, StreamSeries, StreamSeriesOptions, StreamSource, Sunburst, SunburstProps, SyncGroup,
|
|
3116
|
+
export { AXIS_CHAR_PX, AXIS_LINE_PX, AggOp, AggregateSpec, AngleBand, Annotation, AnnotationContext, AnnotationScale, AreaChart, AreaChartProps, AreaChartSeries, AreaDecimateOptions, Axis, AxisProps, BandScale, BarChart, BarChartProps, BarChartSeries, Bin, BoundStream, BoxStats, Boxplot, BoxplotProps, BoxplotSeries, Brush, BrushProps, BubbleChart, BubbleChartProps, BubbleDatum, BubbleSeries, Bullet, BulletProps, CalendarHeatmap, CalendarHeatmapDatum, CalendarHeatmapProps, Candlestick, CandlestickDatum, CandlestickProps, CanvasLayer, CanvasLayerProps, CanvasPaint, CanvasSize, CategoryDatum, CategoryMapping, ChartDefs, ChartDefsProps, ChartFrame, ChartFrameProps, ChartSize, ChartText, ChartTextProps, ComboChart, ComboChartBar, ComboChartPoint, ComboChartProps, Curve, DEFAULT_MARGINS, DataLabel, DataLabelProps, DataZoom, DataZoomProps, DecimateMethod, DecimateOptions, DefSeries, EncodeMapping, EncodedResult, EncodedSeries, FillKind, Funnel, FunnelProps, FunnelStage, Gauge, GaugeProps, GaugeThreshold, Glyph, GlyphProps, GlyphShape, GridLines, GridLinesProps, Heatmap, HeatmapDatum, HeatmapProps, HierNode, Histogram, HistogramBin, HistogramProps, IntervalUnit, Kpi, KpiProps, LabelOptions, LaidLink, LaidNode, Legend, LegendProps, LegendSeries, LineChart, LineChartProps, LineChartSeries, LinearScale, LogScale, Meter, MeterProps, MeterThresholds, PLAIN_MARGINS, PartitionedNode, PatternKind, PieChart, PieChartDatum, PieChartProps, Point, Polar, PolarDatum, PolarProps, Pt, Radar, RadarProps, RadarSeries, RadialBar, RadialBarDatum, RadialBarProps, RampKind, Rect, RegressionResult, RegressionType, ResolvedLabelOptions, Row, Sankey, SankeyLayout, SankeyLink, SankeyNode, SankeyOptions, SankeyProps, ScatterChart, ScatterChartProps, ScatterChartSeries, ScatterDatum, Sparkline, SparklineProps, StackedRow, StackedSegment, Stream, StreamDecimate, StreamOffset, StreamProps, StreamSeries, StreamSeriesOptions, StreamSource, Sunburst, SunburstProps, SyncGroup, TimeScale, Toolbox, ToolboxOptions, ToolboxProps, Treemap, TreemapDatum, TreemapNode, TreemapProps, TreemapRect, Vec, VisualChannel, VisualMap, VisualMapOptions, VisualMapProps, VisualMode, VisualResult, ZoomConfig, _syncGroupCount, aggregate, angleBand, annotationSummary, arcPath, areaPath, autoLabelStride, bandScale, bin, binValues, bindStream, boxStats, cellPath, decimate$1 as decimate, divergingRamp, download, encode, encodeCategory, extent, fillFor, filter, getSyncGroup, glyphPath, gradientId, isZoomed, leftMarginForLabels, linePath, linearScale, linkPath, logScale, lttb, mapVisual, maxDepth, minmax, nearestIndex, niceTicks, panWindow, partition, patternId, pieceIndex, polarPoint, quantize, radiusScale, rampLightness, rampOf, rampStops, regression, releaseSyncGroup, renderAnnotation, renderAnnotations, resolveColor, resolveLabels, rightMarginForLabels, sankeyLayout, sequentialRamp, serializeSvg, sort, splitDefined, sqrtScale, squarify, stackSeries, streamExtent, streamLayout, sumValue, svgToPngBlob, timeScale, toStackedSeries, useChartSize, useStreamSeries, visualVisible, voronoiCells, voronoiFind, wrapText, zoomWindow };
|