@rinzai/zen 0.6.1 → 0.7.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/LICENSE +27 -0
- package/README.md +3 -3
- package/dist/alert/index.d.ts +21 -0
- package/dist/alert/index.d.ts.map +1 -0
- package/dist/alert/index.js +49 -0
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +25 -22
- package/dist/button/index.d.ts +2 -1
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +43 -12
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +86 -85
- package/dist/chart/donut.d.ts +4 -1
- package/dist/chart/donut.d.ts.map +1 -1
- package/dist/chart/donut.js +76 -66
- package/dist/chart/index.d.ts +8 -2
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.js +192 -182
- package/dist/chart/palette.d.ts +14 -0
- package/dist/chart/palette.d.ts.map +1 -0
- package/dist/chart/palette.js +9 -0
- package/dist/chart/tooltip.d.ts +6 -2
- package/dist/chart/tooltip.d.ts.map +1 -1
- package/dist/chart/tooltip.js +6 -6
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +28 -44
- package/dist/chip/index.js +1 -1
- package/dist/code-block/index.js +1 -1
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +24 -38
- package/dist/disclosure/index.js +1 -1
- package/dist/editable-cell/index.js +1 -1
- package/dist/field/index.d.ts +1 -1
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +33 -32
- package/dist/header/index.d.ts +9 -1
- package/dist/header/index.d.ts.map +1 -1
- package/dist/header/index.js +17 -9
- package/dist/icons/arrow-left.d.ts +3 -0
- package/dist/icons/arrow-left.d.ts.map +1 -0
- package/dist/icons/arrow-right.d.ts +3 -0
- package/dist/icons/arrow-right.d.ts.map +1 -0
- package/dist/icons/bars.d.ts +3 -0
- package/dist/icons/bars.d.ts.map +1 -0
- package/dist/icons/calendar.d.ts +3 -0
- package/dist/icons/calendar.d.ts.map +1 -0
- package/dist/icons/chart-bar.d.ts +3 -0
- package/dist/icons/chart-bar.d.ts.map +1 -0
- package/dist/icons/chevron-down.d.ts.map +1 -1
- package/dist/icons/chevron-down.js +4 -2
- package/dist/icons/chevron-left.d.ts.map +1 -1
- package/dist/icons/chevron-left.js +4 -2
- package/dist/icons/chevron-right.d.ts.map +1 -1
- package/dist/icons/chevron-right.js +4 -2
- package/dist/icons/chevron-up.d.ts.map +1 -1
- package/dist/icons/chevron-up.js +4 -2
- package/dist/icons/ellipsis.d.ts +0 -1
- package/dist/icons/ellipsis.d.ts.map +1 -1
- package/dist/icons/flag.d.ts +3 -0
- package/dist/icons/flag.d.ts.map +1 -0
- package/dist/icons/list-bullet.d.ts +3 -0
- package/dist/icons/list-bullet.d.ts.map +1 -0
- package/dist/icons/lock.d.ts +3 -0
- package/dist/icons/lock.d.ts.map +1 -0
- package/dist/icons/logout.d.ts +3 -0
- package/dist/icons/logout.d.ts.map +1 -0
- package/dist/icons/micro/calendar.d.ts +3 -0
- package/dist/icons/micro/calendar.d.ts.map +1 -0
- package/dist/icons/micro/calendar.js +21 -0
- package/dist/icons/micro/check.d.ts +3 -0
- package/dist/icons/micro/check.d.ts.map +1 -0
- package/dist/icons/micro/check.js +21 -0
- package/dist/icons/micro/chevron-down.d.ts +3 -0
- package/dist/icons/micro/chevron-down.d.ts.map +1 -0
- package/dist/icons/micro/chevron-down.js +21 -0
- package/dist/icons/micro/chevron-right.d.ts +3 -0
- package/dist/icons/micro/chevron-right.d.ts.map +1 -0
- package/dist/icons/micro/chevron-right.js +21 -0
- package/dist/icons/micro/exclamation-triangle.d.ts +3 -0
- package/dist/icons/micro/exclamation-triangle.d.ts.map +1 -0
- package/dist/icons/micro/exclamation-triangle.js +21 -0
- package/dist/icons/micro/information-circle.d.ts +3 -0
- package/dist/icons/micro/information-circle.d.ts.map +1 -0
- package/dist/icons/micro/information-circle.js +21 -0
- package/dist/icons/micro/minus.d.ts +3 -0
- package/dist/icons/micro/minus.d.ts.map +1 -0
- package/dist/icons/micro/minus.js +17 -0
- package/dist/icons/micro/moon.d.ts +3 -0
- package/dist/icons/micro/moon.d.ts.map +1 -0
- package/dist/icons/micro/moon.js +17 -0
- package/dist/icons/micro/sun.d.ts +3 -0
- package/dist/icons/micro/sun.d.ts.map +1 -0
- package/dist/icons/micro/sun.js +17 -0
- package/dist/icons/micro/x-mark.d.ts +3 -0
- package/dist/icons/micro/x-mark.d.ts.map +1 -0
- package/dist/icons/micro/x-mark.js +17 -0
- package/dist/icons/search.d.ts.map +1 -1
- package/dist/icons/search.js +4 -2
- package/dist/icons/settings.d.ts +3 -0
- package/dist/icons/settings.d.ts.map +1 -0
- package/dist/icons/squares.d.ts +3 -0
- package/dist/icons/squares.d.ts.map +1 -0
- package/dist/icons/table.d.ts +3 -0
- package/dist/icons/table.d.ts.map +1 -0
- package/dist/icons/x-mark.d.ts.map +1 -1
- package/dist/icons/x-mark.js +4 -2
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/lib.js +57 -61
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +67 -60
- package/dist/month-picker/index.d.ts.map +1 -1
- package/dist/month-picker/index.js +55 -55
- package/dist/pills/index.d.ts +1 -1
- package/dist/pills/index.d.ts.map +1 -1
- package/dist/pills/index.js +6 -2
- package/dist/popover/index.js +12 -11
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +96 -102
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/status-pill/index.d.ts +18 -0
- package/dist/status-pill/index.d.ts.map +1 -0
- package/dist/status-pill/index.js +25 -0
- package/dist/tab-bar/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +9 -5
- package/dist/theme-toggle/index.d.ts +26 -4
- package/dist/theme-toggle/index.d.ts.map +1 -1
- package/dist/theme-toggle/index.js +42 -35
- package/dist/theme.css +67 -1
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +119 -106
- package/dist/tree/index.d.ts +22 -3
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +76 -56
- package/dist/utils/date.d.ts +6 -4
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +18 -16
- package/dist/utils/field-chevron.d.ts.map +1 -1
- package/dist/utils/field-chevron.js +5 -14
- package/dist/utils/status-icons.d.ts +1 -1
- package/dist/utils/status-icons.d.ts.map +1 -1
- package/dist/utils/status-icons.js +11 -41
- package/dist/utils/styles.d.ts +9 -3
- package/dist/utils/styles.d.ts.map +1 -1
- package/dist/utils/styles.js +2 -2
- package/dist/utils/theme-wave.d.ts +26 -0
- package/dist/utils/theme-wave.d.ts.map +1 -0
- package/dist/utils/theme-wave.js +239 -0
- package/dist/utils/typeahead.d.ts +12 -0
- package/dist/utils/typeahead.d.ts.map +1 -0
- package/dist/utils/typeahead.js +19 -0
- package/dist/zen.css +1 -1
- package/package.json +2 -1
- package/dist/icons/ellipsis.js +0 -31
- package/dist/icons/index.d.ts +0 -9
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/status.d.ts +0 -2
- package/dist/icons/status.d.ts.map +0 -1
package/dist/chart/index.js
CHANGED
|
@@ -1,103 +1,104 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import {
|
|
4
|
-
import r from "./
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
3
|
+
import { paletteColor as t } from "./palette.js";
|
|
4
|
+
import { ChartTooltipCard as n, Key as r } from "./tooltip.js";
|
|
5
|
+
import i from "./donut.js";
|
|
6
|
+
import { Children as a, isValidElement as o, useEffect as s, useId as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
7
|
+
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
7
8
|
//#region packages/chart/index.tsx
|
|
8
|
-
var
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
]),
|
|
9
|
+
var h = () => null, g = () => null, _ = () => null, v = () => null, ee = /* @__PURE__ */ new Map([
|
|
10
|
+
[h, "area"],
|
|
11
|
+
[g, "line"],
|
|
12
|
+
[_, "bar"]
|
|
13
|
+
]), y = {
|
|
13
14
|
top: 12,
|
|
14
15
|
right: 8,
|
|
15
16
|
bottom: 26
|
|
16
|
-
},
|
|
17
|
-
function
|
|
18
|
-
let
|
|
19
|
-
let e =
|
|
20
|
-
for (let
|
|
21
|
-
|
|
22
|
-
let e = ee.get(
|
|
17
|
+
}, b = 11;
|
|
18
|
+
function x({ data: r, x: i, label: s, summary: h, height: g = 240, formatX: _ = String, formatY: x = O, formatTooltipX: D, renderTooltip: A, legend: j, palette: M = "chart", className: N, children: ie }) {
|
|
19
|
+
let P = c().replace(/[^\w-]/g, ""), F = u(null), I = T(F), [L, R] = d(null), [z, B] = d(null), V = l(() => {
|
|
20
|
+
let e = a.toArray(ie).filter(o), n = e.filter((e) => ee.has(e.type)).length, s = [], c = [];
|
|
21
|
+
for (let r of e) {
|
|
22
|
+
r.type === v && c.push(r.props);
|
|
23
|
+
let e = ee.get(r.type);
|
|
23
24
|
if (!e) continue;
|
|
24
|
-
let
|
|
25
|
-
|
|
26
|
-
...
|
|
25
|
+
let i = r.props;
|
|
26
|
+
s.push({
|
|
27
|
+
...i,
|
|
27
28
|
kind: e,
|
|
28
|
-
color:
|
|
29
|
+
color: i.color ?? t(M, s.length, n)
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
let
|
|
32
|
-
for (let e of
|
|
33
|
-
|
|
34
|
-
let
|
|
32
|
+
let l = r, u = s.flatMap((e) => l.map((t) => S(t, e.dataKey))).filter((e) => e !== null);
|
|
33
|
+
for (let e of c) e.y !== void 0 && u.push(e.y);
|
|
34
|
+
s.some((e) => e.kind !== "line") && u.push(0);
|
|
35
|
+
let d = E(u.length ? Math.min(...u) : 0, u.length ? Math.max(...u) : 1), [h, C] = [d[0], d[d.length - 1]], w = d.map((e) => x(e)), T = Math.ceil(Math.max(...w.map((e) => e.length)) * b * .62) + 10, D = Math.max(0, I - T - y.right), O = Math.max(0, g - y.top - y.bottom), k = l.length, A = s.filter((e) => e.kind === "bar"), j = A.length > 0 || k === 1, N = k ? j ? D / k : D / (k - 1) : 0, F = (e) => T + (j ? (e + .5) * N : e * N), L = (e) => y.top + (C === h ? O / 2 : (C - e) / (C - h) * O), R = L(Math.min(Math.max(0, h), C)), z = A.length ? Math.max(2, Math.min(24, N * .72 / A.length - 2)) : 0, B = (e, t) => F(e) - (A.length * (z + 2) - 2) / 2 + t * (z + 2), V = l.map((e) => _(e[i])), H = Math.max(1, ...V.map((e) => e.length)) * b * .6 + 12, U = N ? Math.max(1, Math.ceil(H / N)) : 1;
|
|
35
36
|
return {
|
|
36
|
-
series:
|
|
37
|
-
rows:
|
|
38
|
-
n:
|
|
39
|
-
bars:
|
|
40
|
-
banded:
|
|
41
|
-
step:
|
|
42
|
-
left:
|
|
43
|
-
plotH:
|
|
44
|
-
cx0:
|
|
45
|
-
cy:
|
|
46
|
-
base:
|
|
47
|
-
barW:
|
|
48
|
-
barX:
|
|
49
|
-
back: /* @__PURE__ */
|
|
50
|
-
/* @__PURE__ */
|
|
51
|
-
id: `${
|
|
37
|
+
series: s,
|
|
38
|
+
rows: l,
|
|
39
|
+
n: k,
|
|
40
|
+
bars: A,
|
|
41
|
+
banded: j,
|
|
42
|
+
step: N,
|
|
43
|
+
left: T,
|
|
44
|
+
plotH: O,
|
|
45
|
+
cx0: F,
|
|
46
|
+
cy: L,
|
|
47
|
+
base: R,
|
|
48
|
+
barW: z,
|
|
49
|
+
barX: B,
|
|
50
|
+
back: /* @__PURE__ */ m(f, { children: [
|
|
51
|
+
/* @__PURE__ */ p("defs", { children: s.map((e, t) => e.kind === "area" ? /* @__PURE__ */ m("linearGradient", {
|
|
52
|
+
id: `${P}-fill-${t}`,
|
|
52
53
|
x1: "0",
|
|
53
54
|
y1: "0",
|
|
54
55
|
x2: "0",
|
|
55
56
|
y2: "1",
|
|
56
|
-
children: [/* @__PURE__ */
|
|
57
|
+
children: [/* @__PURE__ */ p("stop", {
|
|
57
58
|
offset: "0%",
|
|
58
59
|
style: { stopColor: e.color },
|
|
59
60
|
stopOpacity: e.dashed ? .16 : .32
|
|
60
|
-
}), /* @__PURE__ */
|
|
61
|
+
}), /* @__PURE__ */ p("stop", {
|
|
61
62
|
offset: "100%",
|
|
62
63
|
style: { stopColor: e.color },
|
|
63
64
|
stopOpacity: 0
|
|
64
65
|
})]
|
|
65
66
|
}, t) : null) }),
|
|
66
|
-
|
|
67
|
-
x1:
|
|
68
|
-
x2:
|
|
69
|
-
y1:
|
|
70
|
-
y2:
|
|
67
|
+
d.map((e, t) => /* @__PURE__ */ m("g", { children: [/* @__PURE__ */ p("line", {
|
|
68
|
+
x1: T,
|
|
69
|
+
x2: T + D,
|
|
70
|
+
y1: L(e),
|
|
71
|
+
y2: L(e),
|
|
71
72
|
className: "stroke-tint/[0.07]",
|
|
72
73
|
shapeRendering: "crispEdges"
|
|
73
|
-
}), /* @__PURE__ */
|
|
74
|
-
x:
|
|
75
|
-
y:
|
|
74
|
+
}), /* @__PURE__ */ p("text", {
|
|
75
|
+
x: T - 8,
|
|
76
|
+
y: L(e),
|
|
76
77
|
dy: "0.32em",
|
|
77
78
|
textAnchor: "end",
|
|
78
79
|
className: "fill-muted-foreground tabular-nums",
|
|
79
|
-
style: { fontSize:
|
|
80
|
-
children:
|
|
80
|
+
style: { fontSize: b },
|
|
81
|
+
children: w[t]
|
|
81
82
|
})] }, e)),
|
|
82
|
-
|
|
83
|
-
x:
|
|
84
|
-
y:
|
|
85
|
-
textAnchor: !
|
|
83
|
+
V.map((e, t) => t % U === 0 ? /* @__PURE__ */ p("text", {
|
|
84
|
+
x: F(t),
|
|
85
|
+
y: g - 8,
|
|
86
|
+
textAnchor: !A.length && k > 1 && t === 0 ? "start" : !A.length && t === k - 1 ? "end" : "middle",
|
|
86
87
|
className: "fill-muted-foreground",
|
|
87
|
-
style: { fontSize:
|
|
88
|
+
style: { fontSize: b },
|
|
88
89
|
children: e
|
|
89
90
|
}, t) : null)
|
|
90
91
|
] }),
|
|
91
|
-
front: /* @__PURE__ */
|
|
92
|
-
let r =
|
|
93
|
-
return r === null ? null : [
|
|
92
|
+
front: /* @__PURE__ */ m(f, { children: [s.map((e, t) => e.kind === "bar" ? null : te(l.map((t, n) => {
|
|
93
|
+
let r = S(t, e.dataKey);
|
|
94
|
+
return r === null ? null : [F(n), L(r)];
|
|
94
95
|
})).map((n, r) => {
|
|
95
96
|
let i = (e.curve === "linear" ? ne : re)(n);
|
|
96
|
-
return /* @__PURE__ */
|
|
97
|
-
d: `${i}L${n[n.length - 1][0]},${
|
|
98
|
-
fill: `url(#${
|
|
97
|
+
return /* @__PURE__ */ m("g", { children: [e.kind === "area" && /* @__PURE__ */ p("path", {
|
|
98
|
+
d: `${i}L${n[n.length - 1][0]},${R}L${n[0][0]},${R}Z`,
|
|
99
|
+
fill: `url(#${P}-fill-${t})`,
|
|
99
100
|
className: "zen__chart-fade"
|
|
100
|
-
}), /* @__PURE__ */
|
|
101
|
+
}), /* @__PURE__ */ p("path", {
|
|
101
102
|
d: i,
|
|
102
103
|
fill: "none",
|
|
103
104
|
strokeWidth: e.kind === "area" && !e.dashed ? 2.5 : 2,
|
|
@@ -108,158 +109,159 @@ function b({ data: n, x: r, label: o, summary: m, height: h = 240, formatX: g =
|
|
|
108
109
|
className: e.dashed ? "zen__chart-fade" : "zen__chart-draw",
|
|
109
110
|
style: { stroke: e.color }
|
|
110
111
|
})] }, `${t}-${r}`);
|
|
111
|
-
})),
|
|
112
|
+
})), c.map((e, t) => {
|
|
112
113
|
let n = e.tone === "destructive" ? "stroke-destructive/45" : "stroke-muted-foreground/60";
|
|
113
|
-
if (e.y !== void 0) return /* @__PURE__ */
|
|
114
|
-
x1:
|
|
115
|
-
x2:
|
|
116
|
-
y1:
|
|
117
|
-
y2:
|
|
114
|
+
if (e.y !== void 0) return /* @__PURE__ */ p("line", {
|
|
115
|
+
x1: T,
|
|
116
|
+
x2: T + D,
|
|
117
|
+
y1: L(e.y),
|
|
118
|
+
y2: L(e.y),
|
|
118
119
|
className: n,
|
|
119
120
|
strokeDasharray: e.dashed ? "3 4" : void 0,
|
|
120
121
|
shapeRendering: "crispEdges"
|
|
121
122
|
}, t);
|
|
122
|
-
let
|
|
123
|
-
if (
|
|
124
|
-
let a = !!e.label &&
|
|
125
|
-
return /* @__PURE__ */
|
|
126
|
-
x1:
|
|
127
|
-
x2:
|
|
128
|
-
y1:
|
|
129
|
-
y2:
|
|
123
|
+
let r = l.findIndex((t) => t[i] === e.x);
|
|
124
|
+
if (r < 0) return null;
|
|
125
|
+
let a = !!e.label && F(r) - 6 - e.label.length * b * .6 < T;
|
|
126
|
+
return /* @__PURE__ */ m("g", { children: [/* @__PURE__ */ p("line", {
|
|
127
|
+
x1: F(r),
|
|
128
|
+
x2: F(r),
|
|
129
|
+
y1: y.top,
|
|
130
|
+
y2: y.top + O,
|
|
130
131
|
className: n,
|
|
131
132
|
strokeDasharray: e.dashed === !1 ? void 0 : "3 4"
|
|
132
|
-
}), e.label && /* @__PURE__ */
|
|
133
|
-
x:
|
|
134
|
-
y:
|
|
133
|
+
}), e.label && /* @__PURE__ */ p("text", {
|
|
134
|
+
x: F(r) + (a ? 6 : -6),
|
|
135
|
+
y: y.top + 4,
|
|
135
136
|
dy: "0.7em",
|
|
136
137
|
textAnchor: a ? "start" : "end",
|
|
137
138
|
className: "fill-muted-foreground",
|
|
138
|
-
style: { fontSize:
|
|
139
|
+
style: { fontSize: b },
|
|
139
140
|
children: e.label
|
|
140
141
|
})] }, t);
|
|
141
142
|
})] })
|
|
142
143
|
};
|
|
143
144
|
}, [
|
|
144
|
-
|
|
145
|
-
n,
|
|
145
|
+
ie,
|
|
146
146
|
r,
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
i,
|
|
148
|
+
I,
|
|
149
149
|
g,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
_,
|
|
151
|
+
x,
|
|
152
|
+
P,
|
|
153
|
+
M
|
|
154
|
+
]), { series: H, rows: U, n: W, bars: G, banded: ae, step: K, left: q, plotH: J, cx0: Y, cy: X, base: Z, barW: oe, barX: se } = V, ce = l(() => G.map((e, t) => U.map((n, r) => {
|
|
155
|
+
let i = S(n, e.dataKey);
|
|
154
156
|
if (i === null) return null;
|
|
155
|
-
let a =
|
|
156
|
-
return /* @__PURE__ */
|
|
157
|
-
d:
|
|
157
|
+
let a = X(i), o = Math.abs(Z - a), s = i < 0;
|
|
158
|
+
return /* @__PURE__ */ p("path", {
|
|
159
|
+
d: k(se(r, t), s ? Z : a, oe, o, s),
|
|
158
160
|
"data-negative": s || void 0,
|
|
159
161
|
className: "zen__chart-grow transition-opacity duration-200",
|
|
160
162
|
style: {
|
|
161
163
|
fill: e.color,
|
|
162
|
-
opacity: (e.dim?.(n, r) ? .35 : .9) * (
|
|
164
|
+
opacity: (e.dim?.(n, r) ? .35 : .9) * (L !== null && L !== r ? .7 : 1),
|
|
163
165
|
animationDelay: `${Math.min(r * 25, 400)}ms`
|
|
164
166
|
}
|
|
165
167
|
}, `${t}-${r}`);
|
|
166
168
|
})), [
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
Y,
|
|
169
|
+
G,
|
|
170
|
+
U,
|
|
170
171
|
X,
|
|
171
|
-
ae,
|
|
172
172
|
Z,
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
se,
|
|
174
|
+
oe,
|
|
175
|
+
L
|
|
176
|
+
]), le = l(() => /* @__PURE__ */ m("table", {
|
|
175
177
|
className: "sr-only",
|
|
176
178
|
children: [
|
|
177
|
-
/* @__PURE__ */
|
|
178
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ p("caption", { children: s }),
|
|
180
|
+
/* @__PURE__ */ p("thead", { children: /* @__PURE__ */ m("tr", { children: [/* @__PURE__ */ p("th", {
|
|
179
181
|
scope: "col",
|
|
180
|
-
children: String(
|
|
181
|
-
}),
|
|
182
|
+
children: String(i)
|
|
183
|
+
}), H.map((e) => /* @__PURE__ */ p("th", {
|
|
182
184
|
scope: "col",
|
|
183
185
|
children: e.label
|
|
184
186
|
}, e.dataKey))] }) }),
|
|
185
|
-
/* @__PURE__ */
|
|
187
|
+
/* @__PURE__ */ p("tbody", { children: U.map((e, t) => /* @__PURE__ */ m("tr", { children: [/* @__PURE__ */ p("th", {
|
|
186
188
|
scope: "row",
|
|
187
|
-
children: (
|
|
188
|
-
}),
|
|
189
|
-
let n =
|
|
190
|
-
return /* @__PURE__ */
|
|
189
|
+
children: (D ?? _)(e[i])
|
|
190
|
+
}), H.map((t) => {
|
|
191
|
+
let n = S(e, t.dataKey);
|
|
192
|
+
return /* @__PURE__ */ p("td", { children: n === null ? "" : x(n) }, t.dataKey);
|
|
191
193
|
})] }, t)) })
|
|
192
194
|
]
|
|
193
195
|
}), [
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
V,
|
|
196
|
+
s,
|
|
197
|
+
i,
|
|
197
198
|
H,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
199
|
+
U,
|
|
200
|
+
D,
|
|
201
|
+
_,
|
|
202
|
+
x
|
|
203
|
+
]), ue = (e) => {
|
|
204
|
+
if (!W || !K) return null;
|
|
205
|
+
let t = ae ? Math.floor((e - q) / K) : Math.round((e - q) / K);
|
|
206
|
+
return Math.min(W - 1, Math.max(0, t));
|
|
207
|
+
}, de = (e) => {
|
|
206
208
|
let t = e.currentTarget.getBoundingClientRect(), n = e.clientX - t.left, r = Math.round(e.clientY - t.top);
|
|
207
|
-
|
|
208
|
-
},
|
|
209
|
-
if (!
|
|
209
|
+
R(ue(n)), B((e) => e?.y === r ? e : { y: r });
|
|
210
|
+
}, fe = (e) => {
|
|
211
|
+
if (!W) return;
|
|
210
212
|
let t = {
|
|
211
213
|
ArrowRight: 1,
|
|
212
214
|
ArrowLeft: -1
|
|
213
215
|
}[e.key];
|
|
214
|
-
if (e.key === "Escape") return
|
|
215
|
-
if (e.key === "Home" || e.key === "End") return e.preventDefault(),
|
|
216
|
-
t && (e.preventDefault(),
|
|
217
|
-
},
|
|
218
|
-
return /* @__PURE__ */
|
|
219
|
-
"aria-label":
|
|
220
|
-
className: e("zen__chart m-0 flex flex-col gap-3",
|
|
216
|
+
if (e.key === "Escape") return R(null);
|
|
217
|
+
if (e.key === "Home" || e.key === "End") return e.preventDefault(), B(null), R(e.key === "Home" ? 0 : W - 1);
|
|
218
|
+
t && (e.preventDefault(), B(null), R((e) => e === null ? t > 0 ? 0 : W - 1 : Math.min(W - 1, Math.max(0, e + t))));
|
|
219
|
+
}, pe = j ?? (H.length > 1 || H.some((e) => e.dimLabel)), Q = L === null ? null : U[L], $ = L === null ? 0 : Y(L), me = z?.y ?? y.top;
|
|
220
|
+
return /* @__PURE__ */ m("figure", {
|
|
221
|
+
"aria-label": s,
|
|
222
|
+
className: e("zen__chart m-0 flex flex-col gap-3", N),
|
|
221
223
|
children: [
|
|
222
|
-
|
|
223
|
-
/* @__PURE__ */
|
|
224
|
-
ref:
|
|
224
|
+
pe && /* @__PURE__ */ p(C, { series: H }),
|
|
225
|
+
/* @__PURE__ */ m("div", {
|
|
226
|
+
ref: F,
|
|
225
227
|
tabIndex: 0,
|
|
226
|
-
"aria-label": `${
|
|
227
|
-
onPointerMove:
|
|
228
|
+
"aria-label": `${s}: use the arrow keys to read values`,
|
|
229
|
+
onPointerMove: de,
|
|
228
230
|
onPointerLeave: () => {
|
|
229
|
-
|
|
231
|
+
R(null), B(null);
|
|
230
232
|
},
|
|
231
|
-
onKeyDown:
|
|
232
|
-
onBlur: () =>
|
|
233
|
+
onKeyDown: fe,
|
|
234
|
+
onBlur: () => R(null),
|
|
233
235
|
className: "focus-visible:ring-ring/50 relative rounded-lg outline-hidden focus-visible:ring-2",
|
|
234
|
-
style: { height:
|
|
235
|
-
children: [
|
|
236
|
-
width:
|
|
237
|
-
height:
|
|
236
|
+
style: { height: g },
|
|
237
|
+
children: [I > 0 && /* @__PURE__ */ m("svg", {
|
|
238
|
+
width: I,
|
|
239
|
+
height: g,
|
|
238
240
|
"aria-hidden": !0,
|
|
239
241
|
className: "block overflow-visible",
|
|
240
242
|
children: [
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
x:
|
|
244
|
-
y:
|
|
245
|
-
width:
|
|
246
|
-
height:
|
|
243
|
+
V.back,
|
|
244
|
+
L !== null && (G.length ? /* @__PURE__ */ p("rect", {
|
|
245
|
+
x: Y(L) - K / 2,
|
|
246
|
+
y: y.top,
|
|
247
|
+
width: K,
|
|
248
|
+
height: J,
|
|
247
249
|
className: "fill-tint/[0.04]"
|
|
248
|
-
}) : /* @__PURE__ */
|
|
250
|
+
}) : /* @__PURE__ */ p("line", {
|
|
249
251
|
x1: $,
|
|
250
252
|
x2: $,
|
|
251
|
-
y1:
|
|
252
|
-
y2:
|
|
253
|
+
y1: y.top,
|
|
254
|
+
y2: y.top + J,
|
|
253
255
|
className: "stroke-glow/40"
|
|
254
256
|
})),
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
257
|
+
ce,
|
|
258
|
+
V.front,
|
|
259
|
+
L !== null && H.map((e, t) => {
|
|
258
260
|
if (e.kind === "bar") return null;
|
|
259
|
-
let n =
|
|
260
|
-
return n === null ? null : /* @__PURE__ */
|
|
261
|
+
let n = S(U[L], e.dataKey);
|
|
262
|
+
return n === null ? null : /* @__PURE__ */ p("circle", {
|
|
261
263
|
cx: $,
|
|
262
|
-
cy:
|
|
264
|
+
cy: X(n),
|
|
263
265
|
r: 4,
|
|
264
266
|
strokeWidth: 2,
|
|
265
267
|
className: "stroke-card",
|
|
@@ -267,50 +269,58 @@ function b({ data: n, x: r, label: o, summary: m, height: h = 240, formatX: g =
|
|
|
267
269
|
}, t);
|
|
268
270
|
})
|
|
269
271
|
]
|
|
270
|
-
}), Q &&
|
|
272
|
+
}), Q && L !== null && /* @__PURE__ */ p("div", {
|
|
271
273
|
className: "pointer-events-none absolute top-0 z-10 transition-[translate] duration-75",
|
|
272
|
-
style:
|
|
273
|
-
children:
|
|
274
|
-
title: (
|
|
275
|
-
rows:
|
|
274
|
+
style: w($, me, I, g),
|
|
275
|
+
children: A ? A(Q, L) : /* @__PURE__ */ p(n, {
|
|
276
|
+
title: (D ?? _)(Q[i]),
|
|
277
|
+
rows: H.map((e) => ({
|
|
276
278
|
s: e,
|
|
277
|
-
v:
|
|
279
|
+
v: S(Q, e.dataKey)
|
|
278
280
|
})).filter(({ v: e }) => e !== null).map(({ s: e, v: t }) => ({
|
|
279
281
|
label: e.label,
|
|
280
|
-
value:
|
|
282
|
+
value: x(t),
|
|
281
283
|
color: e.color,
|
|
282
284
|
dashed: e.dashed
|
|
283
285
|
}))
|
|
284
286
|
})
|
|
285
287
|
})]
|
|
286
288
|
}),
|
|
287
|
-
|
|
289
|
+
h && /* @__PURE__ */ p("figcaption", {
|
|
288
290
|
className: "sr-only",
|
|
289
|
-
children:
|
|
291
|
+
children: h
|
|
290
292
|
}),
|
|
291
|
-
|
|
293
|
+
le
|
|
292
294
|
]
|
|
293
295
|
});
|
|
294
296
|
}
|
|
295
|
-
function
|
|
297
|
+
function S(e, t) {
|
|
296
298
|
let n = e[t];
|
|
297
299
|
return typeof n == "number" && Number.isFinite(n) ? n : null;
|
|
298
300
|
}
|
|
299
|
-
function
|
|
300
|
-
|
|
301
|
+
function C({ series: e }) {
|
|
302
|
+
let t = e.filter((t, n) => t.dimLabel && e.findIndex((e) => e.dimLabel === t.dimLabel) === n);
|
|
303
|
+
return /* @__PURE__ */ m("ul", {
|
|
301
304
|
className: "text-muted-foreground flex flex-wrap gap-x-4 gap-y-1 text-xs",
|
|
302
305
|
"aria-label": "Legend",
|
|
303
|
-
children: e.map((e) => /* @__PURE__ */
|
|
306
|
+
children: [e.map((e) => /* @__PURE__ */ m("li", {
|
|
304
307
|
className: "flex items-center gap-1.5",
|
|
305
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ p(r, {
|
|
306
309
|
color: e.color,
|
|
307
310
|
dashed: e.dashed,
|
|
308
311
|
kind: e.kind
|
|
309
312
|
}), e.label]
|
|
310
|
-
}, e.dataKey))
|
|
313
|
+
}, e.dataKey)), t.map((e) => /* @__PURE__ */ m("li", {
|
|
314
|
+
className: "flex items-center gap-1.5",
|
|
315
|
+
children: [/* @__PURE__ */ p(r, {
|
|
316
|
+
color: e.color,
|
|
317
|
+
kind: "bar",
|
|
318
|
+
faded: !0
|
|
319
|
+
}), e.dimLabel]
|
|
320
|
+
}, `faded-${e.dimLabel}`))]
|
|
311
321
|
});
|
|
312
322
|
}
|
|
313
|
-
function
|
|
323
|
+
function w(e, t, n, r) {
|
|
314
324
|
let i = e > n / 2, a = Math.round(Math.min(Math.max(0, t - 20), r - 80));
|
|
315
325
|
return i ? {
|
|
316
326
|
right: 0,
|
|
@@ -320,24 +330,24 @@ function C(e, t, n, r) {
|
|
|
320
330
|
translate: `${Math.round(e + 12)}px ${a}px`
|
|
321
331
|
};
|
|
322
332
|
}
|
|
323
|
-
function
|
|
324
|
-
let [t, n] =
|
|
325
|
-
return
|
|
333
|
+
function T(e) {
|
|
334
|
+
let [t, n] = d(0);
|
|
335
|
+
return s(() => {
|
|
326
336
|
let t = e.current;
|
|
327
337
|
if (!t || (n(t.clientWidth), typeof ResizeObserver > "u")) return;
|
|
328
338
|
let r = new ResizeObserver(() => n(t.clientWidth));
|
|
329
339
|
return r.observe(t), () => r.disconnect();
|
|
330
340
|
}, [e]), t;
|
|
331
341
|
}
|
|
332
|
-
function
|
|
342
|
+
function E(e, t, n = 5) {
|
|
333
343
|
e === t && ([e, t] = e === 0 ? [0, 1] : [Math.min(0, e), Math.max(0, t)]);
|
|
334
344
|
let r = (t - e) / n, i = 10 ** Math.floor(Math.log10(r)), a = r / i, o = i * (a >= 7.5 ? 10 : a >= 3.5 ? 5 : a >= 1.5 ? 2 : 1), s = Math.floor(e / o), c = Math.ceil(t / o);
|
|
335
345
|
return Array.from({ length: c - s + 1 }, (e, t) => Number(((s + t) * o).toPrecision(12)));
|
|
336
346
|
}
|
|
337
|
-
var
|
|
347
|
+
var D = new Intl.NumberFormat("en", {
|
|
338
348
|
notation: "compact",
|
|
339
349
|
maximumFractionDigits: 1
|
|
340
|
-
}),
|
|
350
|
+
}), O = (e) => D.format(e);
|
|
341
351
|
function te(e) {
|
|
342
352
|
let t = [], n = [];
|
|
343
353
|
for (let r of e) r ? n.push(r) : n.length && (t.push(n), n = []);
|
|
@@ -356,9 +366,9 @@ function re(e) {
|
|
|
356
366
|
}
|
|
357
367
|
return a;
|
|
358
368
|
}
|
|
359
|
-
function
|
|
369
|
+
function k(e, t, n, r, i) {
|
|
360
370
|
let a = Math.min(4, n / 2, r);
|
|
361
371
|
return i ? `M${e},${t}V${t + r - a}Q${e},${t + r} ${e + a},${t + r}H${e + n - a}Q${e + n},${t + r} ${e + n},${t + r - a}V${t}Z` : `M${e},${t + r}V${t + a}Q${e},${t} ${e + a},${t}H${e + n - a}Q${e + n},${t} ${e + n},${t + a}V${t + r}Z`;
|
|
362
372
|
}
|
|
363
373
|
//#endregion
|
|
364
|
-
export {
|
|
374
|
+
export { h as ChartArea, _ as ChartBar, g as ChartLine, v as ChartReference, n as ChartTooltipCard, i as DonutChart, x as default, E as niceTicks, t as paletteColor };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a chart's colours come from when a series or item doesn't give its own:
|
|
3
|
+
* `chart`, the categorical palette (--chart-1…8, distinct hues); `glow`, shades
|
|
4
|
+
* of the theme's two glow colours, from the first to the second and deepening
|
|
5
|
+
* towards the background, for a chart in the theme's own colours (e.g. parts
|
|
6
|
+
* of one whole).
|
|
7
|
+
*/
|
|
8
|
+
export type ChartPalette = 'chart' | 'glow';
|
|
9
|
+
/**
|
|
10
|
+
* The i-th (0-based) of n colours in the palette: what a chart draws its i-th
|
|
11
|
+
* series or item in, for a legend of your own beside it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function paletteColor(palette: ChartPalette, i: number, n: number): string;
|
|
14
|
+
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../packages/chart/palette.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/chart/palette.ts
|
|
3
|
+
function e(e, t, n) {
|
|
4
|
+
if (e === "chart") return `var(--chart-${Math.min(t + 1, 8)})`;
|
|
5
|
+
let r = n <= 1 ? 0 : t / (n - 1);
|
|
6
|
+
return `color-mix(in oklch, ${`color-mix(in oklch, oklch(var(--glow)), oklch(var(--glow-2)) ${Math.round(r * 100)}%)`}, oklch(var(--background)) ${Math.round(r * 45)}%)`;
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { e as paletteColor };
|
package/dist/chart/tooltip.d.ts
CHANGED
|
@@ -6,11 +6,15 @@ export type Kind = 'area' | 'line' | 'bar';
|
|
|
6
6
|
* show your own rows.
|
|
7
7
|
*/
|
|
8
8
|
export declare function ChartTooltipCard({ title, rows, className }: ChartTooltipCardProps): import('react').JSX.Element;
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A series' key: a short line for lines (dashed if the series is), a rounded swatch for
|
|
11
|
+
* bars and areas; `faded` as a bar's dimmed rows are drawn.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Key({ color, dashed, kind, faded, }: {
|
|
11
14
|
color: string;
|
|
12
15
|
dashed?: boolean;
|
|
13
16
|
kind?: Kind;
|
|
17
|
+
faded?: boolean;
|
|
14
18
|
}): import('react').JSX.Element;
|
|
15
19
|
export interface ChartTooltipCardProps {
|
|
16
20
|
title: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../packages/chart/tooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAiBjF;AAED
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../packages/chart/tooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAiBjF;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,EAChB,KAAK,EACL,MAAM,EACN,IAAa,EACb,KAAK,GACR,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,+BAuBA;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/chart/tooltip.js
CHANGED
|
@@ -26,8 +26,8 @@ function r({ title: r, rows: a, className: o }) {
|
|
|
26
26
|
})]
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
function i({ color:
|
|
30
|
-
return
|
|
29
|
+
function i({ color: n, dashed: r, kind: i = "line", faded: a }) {
|
|
30
|
+
return i === "line" || r ? /* @__PURE__ */ t("svg", {
|
|
31
31
|
viewBox: "0 0 12 4",
|
|
32
32
|
"aria-hidden": !0,
|
|
33
33
|
className: "h-1 w-3 shrink-0 overflow-visible",
|
|
@@ -38,13 +38,13 @@ function i({ color: e, dashed: n, kind: r = "line" }) {
|
|
|
38
38
|
y2: "2",
|
|
39
39
|
strokeWidth: "2",
|
|
40
40
|
strokeLinecap: "round",
|
|
41
|
-
strokeDasharray:
|
|
42
|
-
style: { stroke:
|
|
41
|
+
strokeDasharray: r ? "3 3" : void 0,
|
|
42
|
+
style: { stroke: n }
|
|
43
43
|
})
|
|
44
44
|
}) : /* @__PURE__ */ t("span", {
|
|
45
45
|
"aria-hidden": !0,
|
|
46
|
-
className: "size-2.5 shrink-0 rounded-[3px]",
|
|
47
|
-
style: { background:
|
|
46
|
+
className: e("size-2.5 shrink-0 rounded-[3px]", a && "opacity-40"),
|
|
47
|
+
style: { background: n }
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/checkbox/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC7B,QAAQ,EACR,WAAW,EACX,aAAqB,EACrB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EAAE,aAAa,+BAkDf;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAClG,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,oCAAoC;IACpC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|