@tekki-forge/runtime-admin 0.2.0 → 0.3.2
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/admin-dashboard.d.ts +16 -0
- package/dist/admin-dashboard.js +60 -0
- package/dist/admin-dashboard.js.map +1 -0
- package/dist/admin-orgs.d.ts +14 -0
- package/dist/admin-orgs.js +75 -0
- package/dist/admin-orgs.js.map +1 -0
- package/dist/admin-shell.d.ts +55 -0
- package/dist/admin-shell.js +141 -0
- package/dist/admin-shell.js.map +1 -0
- package/dist/admin.js +35 -4
- package/dist/admin.js.map +1 -1
- package/dist/app-pages.d.ts +19 -0
- package/dist/app-pages.js +109 -0
- package/dist/app-pages.js.map +1 -0
- package/dist/auth-pages.js +7 -2
- package/dist/auth-pages.js.map +1 -1
- package/dist/charts.d.ts +98 -2
- package/dist/charts.js +264 -24
- package/dist/charts.js.map +1 -1
- package/dist/context.js +32 -1
- package/dist/context.js.map +1 -1
- package/dist/dashboard.d.ts +63 -8
- package/dist/dashboard.js +180 -36
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/messages/de.js +751 -0
- package/dist/i18n/messages/de.js.map +1 -1
- package/dist/i18n/messages/en.js +751 -0
- package/dist/i18n/messages/en.js.map +1 -1
- package/dist/i18n/messages/es.js +751 -0
- package/dist/i18n/messages/es.js.map +1 -1
- package/dist/i18n/messages/fr.js +751 -0
- package/dist/i18n/messages/fr.js.map +1 -1
- package/dist/i18n/messages/pt.js +751 -0
- package/dist/i18n/messages/pt.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/shell.js +37 -34
- package/dist/shell.js.map +1 -1
- package/dist/site/editor/api.d.ts +74 -0
- package/dist/site/editor/api.js +93 -0
- package/dist/site/editor/api.js.map +1 -0
- package/dist/site/editor/content-page.d.ts +4 -0
- package/dist/site/editor/content-page.js +65 -0
- package/dist/site/editor/content-page.js.map +1 -0
- package/dist/site/editor/inbox-tab.d.ts +4 -0
- package/dist/site/editor/inbox-tab.js +88 -0
- package/dist/site/editor/inbox-tab.js.map +1 -0
- package/dist/site/editor/index.d.ts +1 -0
- package/dist/site/editor/index.js +3 -0
- package/dist/site/editor/index.js.map +1 -0
- package/dist/site/editor/model.d.ts +145 -0
- package/dist/site/editor/model.js +408 -0
- package/dist/site/editor/model.js.map +1 -0
- package/dist/site/editor/page-editor.d.ts +10 -0
- package/dist/site/editor/page-editor.js +257 -0
- package/dist/site/editor/page-editor.js.map +1 -0
- package/dist/site/editor/page-settings.d.ts +9 -0
- package/dist/site/editor/page-settings.js +105 -0
- package/dist/site/editor/page-settings.js.map +1 -0
- package/dist/site/editor/pages-tab.d.ts +5 -0
- package/dist/site/editor/pages-tab.js +108 -0
- package/dist/site/editor/pages-tab.js.map +1 -0
- package/dist/site/editor/posts-tab.d.ts +6 -0
- package/dist/site/editor/posts-tab.js +139 -0
- package/dist/site/editor/posts-tab.js.map +1 -0
- package/dist/site/editor/preview.d.ts +32 -0
- package/dist/site/editor/preview.js +104 -0
- package/dist/site/editor/preview.js.map +1 -0
- package/dist/site/editor/prop-fields.d.ts +53 -0
- package/dist/site/editor/prop-fields.js +233 -0
- package/dist/site/editor/prop-fields.js.map +1 -0
- package/dist/site/editor/section-list.d.ts +14 -0
- package/dist/site/editor/section-list.js +110 -0
- package/dist/site/editor/section-list.js.map +1 -0
- package/dist/site/editor/section-picker.d.ts +12 -0
- package/dist/site/editor/section-picker.js +44 -0
- package/dist/site/editor/section-picker.js.map +1 -0
- package/dist/site/editor/widgets.d.ts +84 -0
- package/dist/site/editor/widgets.js +130 -0
- package/dist/site/editor/widgets.js.map +1 -0
- package/dist/site/format.d.ts +31 -0
- package/dist/site/format.js +106 -0
- package/dist/site/format.js.map +1 -0
- package/dist/site/forms.d.ts +43 -0
- package/dist/site/forms.js +155 -0
- package/dist/site/forms.js.map +1 -0
- package/dist/site/header.d.ts +32 -0
- package/dist/site/header.js +76 -0
- package/dist/site/header.js.map +1 -0
- package/dist/site/icons.d.ts +10 -0
- package/dist/site/icons.js +28 -0
- package/dist/site/icons.js.map +1 -0
- package/dist/site/index.d.ts +11 -0
- package/dist/site/index.js +13 -0
- package/dist/site/index.js.map +1 -0
- package/dist/site/markdown.d.ts +14 -0
- package/dist/site/markdown.js +457 -0
- package/dist/site/markdown.js.map +1 -0
- package/dist/site/page.d.ts +16 -0
- package/dist/site/page.js +65 -0
- package/dist/site/page.js.map +1 -0
- package/dist/site/proxy.d.ts +13 -0
- package/dist/site/proxy.js +43 -0
- package/dist/site/proxy.js.map +1 -0
- package/dist/site/sections.d.ts +43 -0
- package/dist/site/sections.js +560 -0
- package/dist/site/sections.js.map +1 -0
- package/dist/site/server.d.ts +73 -0
- package/dist/site/server.js +235 -0
- package/dist/site/server.js.map +1 -0
- package/dist/site/types.d.ts +137 -0
- package/dist/site/types.js +2 -0
- package/dist/site/types.js.map +1 -0
- package/dist/support.d.ts +29 -0
- package/dist/support.js +165 -0
- package/dist/support.js.map +1 -0
- package/dist/system-config.d.ts +24 -0
- package/dist/system-config.js +37 -0
- package/dist/system-config.js.map +1 -0
- package/dist/system-settings.d.ts +9 -0
- package/dist/system-settings.js +60 -0
- package/dist/system-settings.js.map +1 -0
- package/dist/theme-catalog.d.ts +72 -2
- package/dist/theme-catalog.js +47 -0
- package/dist/theme-catalog.js.map +1 -1
- package/dist/theme-switcher.d.ts +8 -0
- package/dist/theme-switcher.js +39 -4
- package/dist/theme-switcher.js.map +1 -1
- package/dist/theme.js +8 -0
- package/dist/theme.js.map +1 -1
- package/dist/transactions.d.ts +4 -0
- package/dist/transactions.js +60 -0
- package/dist/transactions.js.map +1 -0
- package/package.json +9 -5
- package/styles.css +1089 -0
package/dist/charts.js
CHANGED
|
@@ -2,17 +2,37 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useId, useRef, useState } from "react";
|
|
4
4
|
import { useLocale, useT } from "./context.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Series colours from the theme: `--forge-chart-1…8` (styles.css derives them from the primary and accent colours,
|
|
7
|
+
* lightened in dark mode for contrast), with the raw theme colours and mid-tone hues as fallbacks.
|
|
8
|
+
*/
|
|
6
9
|
export const CHART_PALETTE = [
|
|
7
|
-
"var(--forge-primary)",
|
|
8
|
-
"var(--forge-accent)",
|
|
9
|
-
"#14b8a6", // teal
|
|
10
|
-
"#f59e0b", // amber
|
|
11
|
-
"#ec4899", // pink
|
|
12
|
-
"#8b5cf6", // violet
|
|
13
|
-
"#0ea5e9", // sky
|
|
14
|
-
"#84cc16", // lime
|
|
10
|
+
"var(--forge-chart-1, var(--forge-primary))",
|
|
11
|
+
"var(--forge-chart-2, var(--forge-accent))",
|
|
12
|
+
"var(--forge-chart-3, #14b8a6)", // teal
|
|
13
|
+
"var(--forge-chart-4, #f59e0b)", // amber
|
|
14
|
+
"var(--forge-chart-5, #ec4899)", // pink
|
|
15
|
+
"var(--forge-chart-6, #8b5cf6)", // violet
|
|
16
|
+
"var(--forge-chart-7, #0ea5e9)", // sky
|
|
17
|
+
"var(--forge-chart-8, #84cc16)", // lime
|
|
15
18
|
];
|
|
19
|
+
/** A widget colour (hex, or a theme token: primary, accent, success, info, danger, chart-1…chart-8) as CSS. */
|
|
20
|
+
export function chartColor(c) {
|
|
21
|
+
if (c.startsWith("#") || c.startsWith("var("))
|
|
22
|
+
return c;
|
|
23
|
+
if (c === "primary")
|
|
24
|
+
return CHART_PALETTE[0];
|
|
25
|
+
if (c === "accent")
|
|
26
|
+
return CHART_PALETTE[1];
|
|
27
|
+
const n = /^chart-([1-8])$/.exec(c);
|
|
28
|
+
if (n)
|
|
29
|
+
return CHART_PALETTE[Number(n[1]) - 1];
|
|
30
|
+
return `var(--forge-${c})`;
|
|
31
|
+
}
|
|
32
|
+
/** `colors` (widget option) resolved to CSS, cycling; the theme palette by default. */
|
|
33
|
+
export function chartPalette(colors) {
|
|
34
|
+
return colors?.length ? colors.map(chartColor) : CHART_PALETTE;
|
|
35
|
+
}
|
|
16
36
|
const DEFAULT_HEIGHT = 220;
|
|
17
37
|
const DEFAULT_WIDTH = 640;
|
|
18
38
|
const FONT = 11;
|
|
@@ -22,7 +42,6 @@ const INK_MUTED = "var(--forge-ink-muted)";
|
|
|
22
42
|
const INK_SUBTLE = "var(--forge-ink-subtle)";
|
|
23
43
|
const LINE = "var(--forge-line)";
|
|
24
44
|
const SURFACE = "var(--forge-surface)";
|
|
25
|
-
const PRIMARY = "var(--forge-primary)";
|
|
26
45
|
const FORMATS = new Map();
|
|
27
46
|
/** Default value and percentage formatters for a UI locale ("en" → en-US). */
|
|
28
47
|
function localeFormats(locale) {
|
|
@@ -125,7 +144,7 @@ function useWidth() {
|
|
|
125
144
|
function ChartFrame({ title, height, empty, emptyLabel, columns, rows, children }) {
|
|
126
145
|
const [ref, width] = useWidth();
|
|
127
146
|
const t = useT();
|
|
128
|
-
return (_jsxs("figure", { className: "m-0 w-full", children: [_jsx(ChartStyles, {}), _jsx("figcaption", { className: "sr-only", children: title }), _jsx("div", { ref: ref, className: "w-full", children: empty ? (_jsx("div", { className: "flex items-center justify-center text-sm text-ink-subtle", style: { height }, children: emptyLabel ?? t("charts.noData") })) : (children(width)) }), !empty && (_jsxs("table", { className: "sr-only", children: [_jsx("caption", { children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c) => _jsx("th", { scope: "col", children: c }, c)) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.map((cell, j) => (j === 0 ? _jsx("th", { scope: "row", children: cell }, j) : _jsx("td", { children: cell }, j))) }, i))) })] }))] }));
|
|
147
|
+
return (_jsxs("figure", { className: "m-0 w-full", children: [_jsx(ChartStyles, {}), _jsx("figcaption", { className: "sr-only", children: title }), _jsx("div", { ref: ref, className: "w-full", children: empty ? (_jsx("div", { className: "flex items-center justify-center text-sm text-ink-subtle", style: { height }, children: emptyLabel ?? t("charts.noData") })) : (children(width)) }), !empty && (_jsx("div", { className: "sr-only", children: _jsxs("table", { className: "sr-only", children: [_jsx("caption", { children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c) => _jsx("th", { scope: "col", children: c }, c)) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.map((cell, j) => (j === 0 ? _jsx("th", { scope: "row", children: cell }, j) : _jsx("td", { children: cell }, j))) }, i))) })] }) }))] }));
|
|
129
148
|
}
|
|
130
149
|
function Svg({ width, height, label, className, children }) {
|
|
131
150
|
return (_jsx("svg", { role: "img", "aria-label": label, viewBox: `0 0 ${width} ${height}`, width: "100%", preserveAspectRatio: "xMidYMid meet", className: className, style: { display: "block", overflow: "visible", fontSize: FONT, fontVariantNumeric: "tabular-nums" }, children: children }));
|
|
@@ -172,13 +191,13 @@ const valueRows = (data, fmt) => data.map((d) => [d.label, fmt(d.value)]);
|
|
|
172
191
|
// ---- BarChart ----
|
|
173
192
|
export function BarChart(props) {
|
|
174
193
|
const t = useT();
|
|
175
|
-
const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel } = props;
|
|
194
|
+
const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, color = CHART_PALETTE[0] } = props;
|
|
176
195
|
const data = clean(props.data);
|
|
177
196
|
const orientation = props.orientation ?? (data.length > 8 || data.some((d) => d.label.length > 12) ? "horizontal" : "vertical");
|
|
178
197
|
const label = summarize(t("charts.bar"), data, format, t);
|
|
179
|
-
return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => orientation === "vertical" ? (_jsx(VerticalBars, { data: data, width: width, height: height, fmt: format, label: label })) : (_jsx(HorizontalBars, { data: data, width: width, height: height, fmt: format, label: label })) }));
|
|
198
|
+
return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => orientation === "vertical" ? (_jsx(VerticalBars, { data: data, width: width, height: height, fmt: format, label: label, color: color })) : (_jsx(HorizontalBars, { data: data, width: width, height: height, fmt: format, label: label, color: color })) }));
|
|
180
199
|
}
|
|
181
|
-
function VerticalBars({ data, width, height, fmt, label }) {
|
|
200
|
+
function VerticalBars({ data, width, height, fmt, label, color }) {
|
|
182
201
|
const top = 10, bottom = 24, right = 8;
|
|
183
202
|
const { lo, hi, ticks } = niceDomain(data.map((d) => d.value), Math.max(2, Math.floor((height - top - bottom) / 40)));
|
|
184
203
|
const left = Math.max(...ticks.map((t) => textWidth(fmt(t)))) + 12;
|
|
@@ -188,10 +207,10 @@ function VerticalBars({ data, width, height, fmt, label }) {
|
|
|
188
207
|
const xs = data.map((_, i) => left + band * (i + 0.5));
|
|
189
208
|
return (_jsxs(Svg, { width: width, height: height, label: label, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: fmt }), _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
|
|
190
209
|
const y0 = y(Math.max(0, d.value)), y1 = y(Math.min(0, d.value));
|
|
191
|
-
return (_jsx(Linked, { d: d, fmt: fmt, children: _jsx("path", { className: "fc-mark", d: barPath(xs[i] - barW / 2, y0, barW, y1 - y0, d.value < 0 ? "b" : "t"), fill:
|
|
210
|
+
return (_jsx(Linked, { d: d, fmt: fmt, children: _jsx("path", { className: "fc-mark", d: barPath(xs[i] - barW / 2, y0, barW, y1 - y0, d.value < 0 ? "b" : "t"), fill: color, children: _jsx("title", { children: tip(d, fmt) }) }) }, i));
|
|
192
211
|
}) }), _jsx(CategoryAxis, { data: data, xs: xs, slot: band, y: height - 6 })] }));
|
|
193
212
|
}
|
|
194
|
-
function HorizontalBars({ data, width, height, fmt, label }) {
|
|
213
|
+
function HorizontalBars({ data, width, height, fmt, label, color }) {
|
|
195
214
|
const rowH = 24, top = 4, bottom = 22;
|
|
196
215
|
const h = Math.max(height, data.length * rowH + top + bottom);
|
|
197
216
|
const row = (h - top - bottom) / data.length;
|
|
@@ -205,13 +224,13 @@ function HorizontalBars({ data, width, height, fmt, label }) {
|
|
|
205
224
|
return (_jsxs(Svg, { width: width, height: h, label: label, children: [_jsx(ValueGrid, { axis: "x", ticks: ticks, pos: x, from: top, to: h - bottom, labelAt: h - 6, fmt: fmt }), _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
|
|
206
225
|
const cy = top + row * (i + 0.5);
|
|
207
226
|
const x0 = x(Math.min(0, d.value)), x1 = x(Math.max(0, d.value));
|
|
208
|
-
return (_jsx(Linked, { d: d, fmt: fmt, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: tip(d, fmt) }), _jsx("path", { d: barPath(x0, cy - barH / 2, x1 - x0, barH, d.value < 0 ? "l" : "r"), fill:
|
|
227
|
+
return (_jsx(Linked, { d: d, fmt: fmt, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: tip(d, fmt) }), _jsx("path", { d: barPath(x0, cy - barH / 2, x1 - x0, barH, d.value < 0 ? "l" : "r"), fill: color }), _jsx("text", { x: left - 10, y: cy, dy: "0.32em", textAnchor: "end", fill: INK, children: truncate(d.label, chars) }), !hasNeg && (_jsx("text", { x: x1 + 6, y: cy, dy: "0.32em", fill: INK_MUTED, children: fmt(d.value) }))] }) }, i));
|
|
209
228
|
}) })] }));
|
|
210
229
|
}
|
|
211
230
|
// ---- LineChart ----
|
|
212
231
|
export function LineChart(props) {
|
|
213
232
|
const t = useT();
|
|
214
|
-
const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, area = false } = props;
|
|
233
|
+
const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, area = false, color = CHART_PALETTE[0] } = props;
|
|
215
234
|
const data = clean(props.data);
|
|
216
235
|
const gradientId = `fc-area-${useId().replace(/[^\w-]/g, "")}`;
|
|
217
236
|
return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => {
|
|
@@ -225,7 +244,7 @@ export function LineChart(props) {
|
|
|
225
244
|
const line = pts.map((p, i) => `${i ? "L" : "M"}${p.x},${p.y}`).join("");
|
|
226
245
|
const base = y(0);
|
|
227
246
|
const dense = slot < 14;
|
|
228
|
-
return (_jsxs(Svg, { width: width, height: height, label: summarize(t("charts.line"), data, format, t), className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: format }), area && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor:
|
|
247
|
+
return (_jsxs(Svg, { width: width, height: height, label: summarize(t("charts.line"), data, format, t), className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: format }), area && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor: color, stopOpacity: 0.28 } }), _jsx("stop", { offset: "100%", style: { stopColor: color, stopOpacity: 0.02 } })] }) }), _jsx("path", { className: "fc-enter", d: `${line}L${pts[pts.length - 1].x},${base}L${pts[0].x},${base}Z`, fill: `url(#${gradientId})` })] })), _jsx("path", { className: "fc-draw", pathLength: 1, d: line, fill: "none", stroke: color, strokeWidth: 2, strokeLinejoin: "round", strokeLinecap: "round" }), _jsx("g", { children: pts.map(({ d, x, y: py }, i) => (_jsx(Linked, { d: d, fmt: format, children: _jsxs("g", { className: "fc-point", children: [_jsx("title", { children: tip(d, format) }), _jsx("circle", { cx: x, cy: py, r: Math.max(4, Math.min(10, slot / 2)), fill: "transparent" }), _jsx("circle", { className: "fc-dot", cx: x, cy: py, r: 3.5, fill: SURFACE, stroke: color, strokeWidth: 2 })] }) }, i))) }), _jsx(CategoryAxis, { data: data, xs: pts.map((p) => p.x), slot: slot, y: height - 6 })] }));
|
|
229
248
|
} }));
|
|
230
249
|
}
|
|
231
250
|
// ---- DonutChart ----
|
|
@@ -239,21 +258,242 @@ function arcPath(c, r0, r1, a0, a1) {
|
|
|
239
258
|
export function DonutChart(props) {
|
|
240
259
|
const t = useT();
|
|
241
260
|
const formats = localeFormats(useLocale());
|
|
242
|
-
const { title, height = DEFAULT_HEIGHT, format = formats.number, emptyLabel } = props;
|
|
261
|
+
const { title, height = DEFAULT_HEIGHT, format = formats.number, emptyLabel, hole = 0.64, legend = true } = props;
|
|
262
|
+
const palette = chartPalette(props.colors);
|
|
243
263
|
const positive = clean(props.data).filter((d) => d.value > 0).sort((a, b) => b.value - a.value);
|
|
244
264
|
const total = positive.reduce((s, d) => s + d.value, 0);
|
|
245
|
-
const slices = positive.slice(0, MAX_SLICES).map((d, i) => ({ ...d, color:
|
|
265
|
+
const slices = positive.slice(0, MAX_SLICES).map((d, i) => ({ ...d, color: palette[i % palette.length] }));
|
|
246
266
|
if (positive.length > MAX_SLICES) {
|
|
247
267
|
const rest = positive.slice(MAX_SLICES).reduce((s, d) => s + d.value, 0);
|
|
248
268
|
slices.push({ label: t("charts.other"), value: rest, color: INK_SUBTLE });
|
|
249
269
|
}
|
|
250
270
|
const pct = (v) => formats.percent(total ? v / total : 0);
|
|
251
|
-
const S = height, c = S / 2, r1 = c - 4, r0 = r1 * 0.
|
|
271
|
+
const S = height, c = S / 2, r1 = c - 4, r0 = r1 * Math.max(0, Math.min(0.9, hole));
|
|
252
272
|
let angle = -Math.PI / 2;
|
|
253
|
-
return (_jsx(ChartFrame, { title: title, height: height, empty: total <= 0, emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.share")], rows: slices.map((d) => [d.label, format(d.value), pct(d.value)]), children: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-x-8 gap-y-4", children: [_jsx("div", { className: "shrink-0", style: { width: "100%", maxWidth: S }, children: _jsxs(Svg, { width: S, height: S, label: t("charts.donutSummary", { total: format(total), slices: slices.map((d) => `${tip(d, format)} (${pct(d.value)})`).join("; ") }), children: [_jsx("g", { className: "fc-marks fc-enter", children: slices.map((d, i) => {
|
|
273
|
+
return (_jsx(ChartFrame, { title: title, height: height, empty: total <= 0, emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.share")], rows: slices.map((d) => [d.label, format(d.value), pct(d.value)]), children: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-x-8 gap-y-4", children: [_jsx("div", { className: "shrink-0", style: { width: "100%", maxWidth: S }, children: _jsxs(Svg, { width: S, height: S, label: t(hole > 0 ? "charts.donutSummary" : "charts.pieSummary", { total: format(total), slices: slices.map((d) => `${tip(d, format)} (${pct(d.value)})`).join("; ") }), children: [_jsx("g", { className: "fc-marks fc-enter", children: slices.map((d, i) => {
|
|
254
274
|
const a0 = angle;
|
|
255
275
|
angle += (d.value / total) * Math.PI * 2;
|
|
256
276
|
return (_jsx(Linked, { d: d, fmt: format, children: _jsx("path", { className: "fc-mark", d: arcPath(c, r0, r1, a0, angle), fill: d.color, stroke: SURFACE, strokeWidth: slices.length > 1 ? 2 : 0, strokeLinejoin: "round", children: _jsx("title", { children: `${tip(d, format)} (${pct(d.value)})` }) }) }, i));
|
|
257
|
-
}) }), _jsx("text", { x: c, y: c, dy: "-0.1em", textAnchor: "middle", fill: INK, style: { fontSize: Math.max(14, S * 0.1), fontWeight: 600 }, children: format(total) }), _jsx("text", { x: c, y: c, dy: "1.6em", textAnchor: "middle", fill: INK_MUTED, children: t("charts.total") })] }) }), _jsx("ul", { className: "fc-legend m-0 min-w-40 flex-1 list-none space-y-1.5 p-0 text-sm", "aria-hidden": "true", children: slices.map((d, i) => (_jsxs("li", { className: "flex items-center gap-2", title: `${tip(d, format)} (${pct(d.value)})`, children: [_jsx("span", { className: "size-2.5 shrink-0 rounded-sm", style: { background: d.color } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-ink", children: d.label }), _jsx("span", { className: "tabular-nums text-ink", children: format(d.value) }), _jsx("span", { className: "w-12 text-right tabular-nums text-ink-muted", children: pct(d.value) })] }, i))) })] })) }));
|
|
277
|
+
}) }), hole > 0.3 && (_jsxs(_Fragment, { children: [_jsx("text", { x: c, y: c, dy: "-0.1em", textAnchor: "middle", fill: INK, style: { fontSize: Math.max(14, S * 0.1), fontWeight: 600 }, children: format(total) }), _jsx("text", { x: c, y: c, dy: "1.6em", textAnchor: "middle", fill: INK_MUTED, children: t("charts.total") })] }))] }) }), legend && _jsx("ul", { className: "fc-legend m-0 min-w-40 flex-1 list-none space-y-1.5 p-0 text-sm", "aria-hidden": "true", children: slices.map((d, i) => (_jsxs("li", { className: "flex items-center gap-2", title: `${tip(d, format)} (${pct(d.value)})`, children: [_jsx("span", { className: "size-2.5 shrink-0 rounded-sm", style: { background: d.color } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-ink", children: d.label }), _jsx("span", { className: "tabular-nums text-ink", children: format(d.value) }), _jsx("span", { className: "w-12 text-right tabular-nums text-ink-muted", children: pct(d.value) })] }, i))) })] })) }));
|
|
278
|
+
}
|
|
279
|
+
// ---- Shared by the charts below ----
|
|
280
|
+
/** Number formatters for a locale (default chart formatting), for callers that build their own. */
|
|
281
|
+
export function chartFormats(locale) {
|
|
282
|
+
return localeFormats(locale);
|
|
283
|
+
}
|
|
284
|
+
/** Line patterns and point shapes per series, so series differ by more than colour. */
|
|
285
|
+
const DASHES = [undefined, "6 4", "2 3", "9 3 2 3"];
|
|
286
|
+
const SHAPES = ["circle", "square", "triangle", "diamond"];
|
|
287
|
+
function Marker({ shape, x, y, r, color, className }) {
|
|
288
|
+
const common = { className, fill: SURFACE, stroke: color, strokeWidth: 2 };
|
|
289
|
+
if (shape === "square")
|
|
290
|
+
return _jsx("rect", { ...common, x: x - r, y: y - r, width: r * 2, height: r * 2 });
|
|
291
|
+
if (shape === "triangle")
|
|
292
|
+
return _jsx("path", { ...common, d: `M${x},${y - r * 1.2}L${x + r * 1.1},${y + r * 0.8}L${x - r * 1.1},${y + r * 0.8}Z` });
|
|
293
|
+
if (shape === "diamond")
|
|
294
|
+
return _jsx("path", { ...common, d: `M${x},${y - r * 1.3}L${x + r * 1.3},${y}L${x},${y + r * 1.3}L${x - r * 1.3},${y}Z` });
|
|
295
|
+
return _jsx("circle", { ...common, cx: x, cy: y, r: r });
|
|
296
|
+
}
|
|
297
|
+
/** A visible legend (series are also named in tooltips and the data table, never by colour alone). */
|
|
298
|
+
export function ChartLegend({ items }) {
|
|
299
|
+
return (_jsx("ul", { className: "forge-chart-legend m-0 mt-3 flex list-none flex-wrap gap-x-4 gap-y-1.5 p-0 text-xs text-ink-muted", children: items.map((it, i) => (_jsxs("li", { className: "flex items-center gap-1.5", children: [it.kind === "line" ? (_jsxs("svg", { width: "22", height: "10", "aria-hidden": "true", focusable: "false", className: "shrink-0", children: [_jsx("line", { x1: "1", x2: "21", y1: "5", y2: "5", stroke: it.color, strokeWidth: 2, strokeDasharray: DASHES[(it.index ?? i) % DASHES.length], strokeLinecap: "round" }), _jsx(Marker, { shape: SHAPES[(it.index ?? i) % SHAPES.length], x: 11, y: 5, r: 2.5, color: it.color })] })) : (_jsx("span", { className: "forge-chart-swatch size-2.5 shrink-0 rounded-sm", style: { background: it.color }, "aria-hidden": "true" })), _jsx("span", { className: "text-ink", children: it.label }), it.note && _jsxs("span", { children: ["(", it.note, ")"] })] }, i))) }));
|
|
300
|
+
}
|
|
301
|
+
export function ChartTable({ title, columns, rows, emptyLabel, caption = false }) {
|
|
302
|
+
const t = useT();
|
|
303
|
+
if (!rows.length)
|
|
304
|
+
return _jsx("div", { className: "flex h-24 items-center justify-center text-sm text-ink-subtle", children: emptyLabel ?? t("charts.noData") });
|
|
305
|
+
return (_jsx("div", { className: "forge-chart-table-wrap max-h-80 overflow-auto", children: _jsxs("table", { className: "forge-chart-table w-full border-collapse text-sm tabular-nums", children: [_jsx("caption", { className: caption ? "mb-2 text-left text-xs text-ink-muted" : "sr-only", children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c, i) => (_jsx("th", { scope: "col", className: i === 0 ? "text-left" : "text-right", children: c }, i))) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.cells.map((cell, j) => j === 0 ? (_jsx("th", { scope: "row", className: "text-left font-normal", children: r.href ? (_jsx("a", { href: r.href, className: "forge-focusable text-ink hover:text-link", children: cell })) : (cell) }, j)) : (_jsx("td", { className: "text-right", children: cell }, j))) }, i))) })] }) }));
|
|
306
|
+
}
|
|
307
|
+
/** Indexes of the series a bar chart draws as bars (right-axis series become lines when both axes are used). */
|
|
308
|
+
function barIndexes(series) {
|
|
309
|
+
const hasLeft = series.some((s) => s.axis === "left");
|
|
310
|
+
return series.filter((s) => s.axis === "left" || !hasLeft).map((s) => s.index);
|
|
311
|
+
}
|
|
312
|
+
export function MultiSeriesChart(props) {
|
|
313
|
+
const t = useT();
|
|
314
|
+
const { title, categories, kind = "bar", stacked = false, height = DEFAULT_HEIGHT, emptyLabel } = props;
|
|
315
|
+
const format = props.format ?? localeFormats(useLocale()).number;
|
|
316
|
+
const rightFormat = props.rightFormat ?? format;
|
|
317
|
+
const palette = chartPalette(props.colors);
|
|
318
|
+
const gradientBase = `fc-ms-${useId().replace(/[^\w-]/g, "")}`;
|
|
319
|
+
const series = props.series.map((s, i) => ({ ...s, axis: s.axis ?? "left", color: s.color ?? palette[i % palette.length], index: i, values: s.values.map((v) => (Number.isFinite(v) ? v : 0)) }));
|
|
320
|
+
const fmtOf = (s) => (s.axis === "right" ? rightFormat : format);
|
|
321
|
+
const empty = !categories.length || series.every((s) => s.values.every((v) => v === 0));
|
|
322
|
+
const hasRight = series.some((s) => s.axis === "right") && series.some((s) => s.axis === "left");
|
|
323
|
+
const legend = props.legend ?? series.length > 1;
|
|
324
|
+
const bars = kind === "bar" ? barIndexes(series) : [];
|
|
325
|
+
const kindName = t(kind === "bar" ? "charts.bar" : kind === "area" ? "charts.area" : "charts.line");
|
|
326
|
+
const summary = t("charts.seriesSummary", {
|
|
327
|
+
kind: kindName,
|
|
328
|
+
details: series
|
|
329
|
+
.map((s) => {
|
|
330
|
+
let hi = 0;
|
|
331
|
+
s.values.forEach((v, i) => {
|
|
332
|
+
if (v > (s.values[hi] ?? 0))
|
|
333
|
+
hi = i;
|
|
334
|
+
});
|
|
335
|
+
return `${s.label}: ${t("charts.highest", { value: `${categories[hi]?.label ?? ""} ${fmtOf(s)(s.values[hi] ?? 0)}` })}`;
|
|
336
|
+
})
|
|
337
|
+
.join("; "),
|
|
338
|
+
});
|
|
339
|
+
return (_jsxs("div", { children: [_jsx(ChartFrame, { title: title, height: height, empty: empty, emptyLabel: emptyLabel, columns: [t("charts.label"), ...series.map((s) => s.label)], rows: categories.map((c, i) => [c.label, ...series.map((s) => fmtOf(s)(s.values[i] ?? 0))]), children: (width) => (_jsx(MultiPlot, { width, height, kind, stacked, categories, series, bars, hasRight, format, rightFormat, summary, gradientBase })) }), legend && !empty && (_jsx(ChartLegend, { items: series.map((s) => ({
|
|
340
|
+
label: s.label,
|
|
341
|
+
color: s.color,
|
|
342
|
+
kind: bars.includes(s.index) ? "box" : "line",
|
|
343
|
+
index: s.index,
|
|
344
|
+
...(hasRight && s.axis === "right" ? { note: t("charts.rightAxis") } : {}),
|
|
345
|
+
})) }))] }));
|
|
346
|
+
}
|
|
347
|
+
function MultiPlot(p) {
|
|
348
|
+
const { width, height, kind, stacked, categories, series, bars, hasRight, format, rightFormat, summary, gradientBase } = p;
|
|
349
|
+
const top = 10, bottom = 24;
|
|
350
|
+
const n = categories.length;
|
|
351
|
+
// Two axes only when both are used; otherwise every series is read on the left.
|
|
352
|
+
const sideOf = (s) => (hasRight ? s.axis : "left");
|
|
353
|
+
const fmtOf = (s) => (sideOf(s) === "right" ? rightFormat : format);
|
|
354
|
+
const stacks = stacked && kind !== "line";
|
|
355
|
+
const sideValues = (side) => {
|
|
356
|
+
const on = series.filter((s) => sideOf(s) === side);
|
|
357
|
+
if (stacks && side === "left")
|
|
358
|
+
return categories.flatMap((_, i) => [on.reduce((a, s) => a + Math.max(0, s.values[i] ?? 0), 0), on.reduce((a, s) => a + Math.min(0, s.values[i] ?? 0), 0)]);
|
|
359
|
+
return on.flatMap((s) => s.values);
|
|
360
|
+
};
|
|
361
|
+
const tickCount = Math.max(2, Math.floor((height - top - bottom) / 40));
|
|
362
|
+
const leftValues = sideValues("left");
|
|
363
|
+
const L = niceDomain(leftValues.length ? leftValues : [0], tickCount);
|
|
364
|
+
const R = hasRight ? niceDomain(sideValues("right"), Math.max(2, L.ticks.length - 1)) : null;
|
|
365
|
+
const left = Math.max(...L.ticks.map((v) => textWidth(format(v)))) + 14;
|
|
366
|
+
const right = R ? Math.max(...R.ticks.map((v) => textWidth(rightFormat(v)))) + 14 : 12;
|
|
367
|
+
const plotW = Math.max(10, width - left - right);
|
|
368
|
+
const yL = linear(L.lo, L.hi, height - bottom, top);
|
|
369
|
+
const yR = R ? linear(R.lo, R.hi, height - bottom, top) : yL;
|
|
370
|
+
const yOf = (s) => (sideOf(s) === "right" ? yR : yL);
|
|
371
|
+
const pointsMode = kind !== "bar";
|
|
372
|
+
const band = plotW / Math.max(1, n);
|
|
373
|
+
const slot = pointsMode && n > 1 ? plotW / (n - 1) : band;
|
|
374
|
+
const xs = categories.map((_, i) => (pointsMode ? (n > 1 ? left + i * slot : left + plotW / 2) : left + band * (i + 0.5)));
|
|
375
|
+
const barSeries = series.filter((s) => bars.includes(s.index));
|
|
376
|
+
const lineSeries = series.filter((s) => !bars.includes(s.index));
|
|
377
|
+
const groupW = Math.min(band * 0.78, (stacks ? 40 : 22 * barSeries.length) + 6);
|
|
378
|
+
const barW = stacks ? Math.min(56, band * 0.68) : Math.max(1, groupW / Math.max(1, barSeries.length));
|
|
379
|
+
const dense = slot < 14;
|
|
380
|
+
const posBase = categories.map(() => 0);
|
|
381
|
+
const negBase = categories.map(() => 0);
|
|
382
|
+
const areaBase = categories.map(() => 0);
|
|
383
|
+
return (_jsxs(Svg, { width: width, height: height, label: summary, className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: L.ticks, pos: yL, from: left, to: width - right, labelAt: left - 8, fmt: format }), R && (_jsx("g", { "aria-hidden": "true", children: R.ticks.map((v) => (_jsx("text", { x: width - right + 8, y: yR(v), dy: "0.32em", textAnchor: "start", fill: INK_MUTED, children: rightFormat(v) }, v))) })), _jsx("g", { className: "fc-marks fc-enter", children: barSeries.map((s, si) => categories.map((c, i) => {
|
|
384
|
+
const v = s.values[i] ?? 0;
|
|
385
|
+
const y = yOf(s);
|
|
386
|
+
let y0, y1, x;
|
|
387
|
+
if (stacks) {
|
|
388
|
+
const base = v >= 0 ? posBase[i] : negBase[i];
|
|
389
|
+
y0 = y(v >= 0 ? base + v : base);
|
|
390
|
+
y1 = y(v >= 0 ? base : base + v);
|
|
391
|
+
if (v >= 0)
|
|
392
|
+
posBase[i] = base + v;
|
|
393
|
+
else
|
|
394
|
+
negBase[i] = base + v;
|
|
395
|
+
x = xs[i] - barW / 2;
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
y0 = y(Math.max(0, v));
|
|
399
|
+
y1 = y(Math.min(0, v));
|
|
400
|
+
x = xs[i] - groupW / 2 + si * barW + 1;
|
|
401
|
+
}
|
|
402
|
+
const d = { label: `${s.label}, ${c.label}`, value: v, href: s.hrefs?.[i] ?? undefined };
|
|
403
|
+
const w = Math.max(1, stacks ? barW : barW - 2);
|
|
404
|
+
return (_jsx(Linked, { d: d, fmt: fmtOf(s), children: _jsx("path", { className: "fc-mark", d: barPath(x, y0, w, Math.max(0, y1 - y0), v < 0 ? "b" : "t"), fill: s.color, stroke: stacks ? SURFACE : undefined, strokeWidth: stacks ? 1 : undefined, children: _jsx("title", { children: tip(d, fmtOf(s)) }) }) }, `${si}-${i}`));
|
|
405
|
+
})) }), lineSeries.map((s) => {
|
|
406
|
+
const y = yOf(s);
|
|
407
|
+
const stackArea = kind === "area" && stacks && sideOf(s) === "left";
|
|
408
|
+
const tops = s.values.map((v, i) => (stackArea ? areaBase[i] + v : v));
|
|
409
|
+
const bases = s.values.map((_, i) => (stackArea ? areaBase[i] : 0));
|
|
410
|
+
if (stackArea)
|
|
411
|
+
s.values.forEach((v, i) => (areaBase[i] = areaBase[i] + v));
|
|
412
|
+
const pts = tops.map((v, i) => ({ x: xs[i], y: y(v) }));
|
|
413
|
+
const line = pts.map((pt, i) => `${i ? "L" : "M"}${pt.x},${pt.y}`).join("");
|
|
414
|
+
const back = bases.map((b, i) => ({ x: xs[i], y: y(b) })).reverse();
|
|
415
|
+
const gid = `${gradientBase}-${s.index}`;
|
|
416
|
+
const dash = DASHES[s.index % DASHES.length];
|
|
417
|
+
return (_jsxs("g", { children: [kind === "area" && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gid, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor: s.color, stopOpacity: stackArea ? 0.6 : 0.26 } }), _jsx("stop", { offset: "100%", style: { stopColor: s.color, stopOpacity: stackArea ? 0.4 : 0.02 } })] }) }), _jsx("path", { className: "fc-enter", d: `${line}${back.map((b) => `L${b.x},${b.y}`).join("")}Z`, fill: `url(#${gid})` })] })), _jsx("path", { className: dash ? "fc-enter" : "fc-draw", pathLength: dash ? undefined : 1, d: line, fill: "none", stroke: s.color, strokeWidth: 2, strokeDasharray: dash, strokeLinejoin: "round", strokeLinecap: "round" }), pts.map((pt, i) => {
|
|
418
|
+
const d = { label: `${s.label}, ${categories[i].label}`, value: s.values[i] ?? 0, href: s.hrefs?.[i] ?? undefined };
|
|
419
|
+
return (_jsx(Linked, { d: d, fmt: fmtOf(s), children: _jsxs("g", { className: "fc-point", children: [_jsx("title", { children: tip(d, fmtOf(s)) }), _jsx("circle", { cx: pt.x, cy: pt.y, r: Math.max(4, Math.min(10, slot / 2)), fill: "transparent" }), _jsx(Marker, { className: "fc-dot", shape: SHAPES[s.index % SHAPES.length], x: pt.x, y: pt.y, r: 3.25, color: s.color })] }) }, i));
|
|
420
|
+
})] }, s.index));
|
|
421
|
+
}), _jsx(CategoryAxis, { data: categories.map((c) => ({ label: c.label, value: 0 })), xs: xs, slot: pointsMode ? slot : band, y: height - 6 })] }));
|
|
422
|
+
}
|
|
423
|
+
// ---- FunnelChart ----
|
|
424
|
+
export function FunnelChart(props) {
|
|
425
|
+
const t = useT();
|
|
426
|
+
const formats = localeFormats(useLocale());
|
|
427
|
+
const { title, format = formats.number, emptyLabel } = props;
|
|
428
|
+
const data = clean(props.data);
|
|
429
|
+
const color = props.color ?? chartPalette(props.colors)[0];
|
|
430
|
+
const first = data[0]?.value ?? 0;
|
|
431
|
+
const max = Math.max(0, ...data.map((d) => d.value));
|
|
432
|
+
const share = (v) => (first > 0 ? formats.percent(v / first) : "—");
|
|
433
|
+
const rowH = 34;
|
|
434
|
+
const height = Math.max(rowH * data.length + 4, 60);
|
|
435
|
+
return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.ofFirst")], rows: data.map((d) => [d.label, format(d.value), share(d.value)]), children: (width) => {
|
|
436
|
+
const chars = Math.max(4, Math.min(Math.max(...data.map((d) => d.label.length)), 18, Math.floor((width * 0.28) / CHAR_W)));
|
|
437
|
+
const labelW = chars * CHAR_W + 12;
|
|
438
|
+
const valueW = Math.max(...data.map((d) => textWidth(`${format(d.value)} · ${share(d.value)}`))) + 12;
|
|
439
|
+
const plotW = Math.max(20, width - labelW - valueW);
|
|
440
|
+
const cx = labelW + plotW / 2;
|
|
441
|
+
return (_jsx(Svg, { width: width, height: height, label: t("charts.funnelSummary", { steps: data.map((d) => `${tip(d, format)} (${share(d.value)})`).join("; ") }), children: _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
|
|
442
|
+
const w = max > 0 ? Math.max(2, (d.value / max) * plotW) : 2;
|
|
443
|
+
const y = i * rowH + 2;
|
|
444
|
+
const h = rowH - 6;
|
|
445
|
+
return (_jsx(Linked, { d: d, fmt: format, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: `${tip(d, format)} (${share(d.value)})` }), _jsx("rect", { x: cx - w / 2, y: y, width: w, height: h, rx: Math.min(6, h / 2), fill: color, fillOpacity: 1 - (i / Math.max(1, data.length)) * 0.45 }), _jsx("text", { x: labelW - 10, y: y + h / 2, dy: "0.32em", textAnchor: "end", fill: INK, children: truncate(d.label, chars) }), _jsxs("text", { x: labelW + plotW + 8, y: y + h / 2, dy: "0.32em", fill: INK_MUTED, children: [_jsx("tspan", { fill: INK, fontWeight: 600, children: format(d.value) }), ` · ${share(d.value)}`] })] }) }, i));
|
|
446
|
+
}) }) }));
|
|
447
|
+
} }));
|
|
448
|
+
}
|
|
449
|
+
const MONDAY = Date.UTC(2024, 0, 1);
|
|
450
|
+
/** Four intensity steps (plus empty): the value is also in each cell's tooltip and the data table. */
|
|
451
|
+
const LEVELS = [0, 0.3, 0.55, 0.8, 1];
|
|
452
|
+
export function HeatmapChart(props) {
|
|
453
|
+
const t = useT();
|
|
454
|
+
const locale = useLocale();
|
|
455
|
+
const { title, by, columns, cells, emptyLabel } = props;
|
|
456
|
+
const format = props.format ?? localeFormats(locale).number;
|
|
457
|
+
const color = props.color ?? CHART_PALETTE[0];
|
|
458
|
+
const tag = locale === "en" ? "en-US" : locale;
|
|
459
|
+
const weekday = (i, style) => new Intl.DateTimeFormat(tag, { weekday: style, timeZone: "UTC" }).format(new Date(MONDAY + i * 86_400_000));
|
|
460
|
+
const hour = (h) => new Intl.DateTimeFormat(tag, { hour: "numeric", timeZone: "UTC" }).format(new Date(MONDAY + Number(h) * 3_600_000));
|
|
461
|
+
const dayLabel = (date) => new Intl.DateTimeFormat(tag, { weekday: "short", day: "numeric", month: "short", year: "numeric", timeZone: "UTC" }).format(new Date(`${date}T00:00:00Z`));
|
|
462
|
+
const monthLabel = (date) => new Intl.DateTimeFormat(tag, { month: "short", timeZone: "UTC" }).format(new Date(`${date}T00:00:00Z`));
|
|
463
|
+
const max = Math.max(0, ...cells.map((c) => c.value));
|
|
464
|
+
const total = cells.reduce((s, c) => s + c.value, 0);
|
|
465
|
+
const cellName = (c) => (by === "hour" ? `${weekday(c.row, "long")} ${hour(c.column)}` : dayLabel(c.date ?? c.column));
|
|
466
|
+
const top = cells.reduce((a, c) => (!a || c.value > a.value ? c : a), undefined);
|
|
467
|
+
const level = (v) => (max > 0 && v > 0 ? Math.min(4, Math.ceil((v / max) * 4)) : 0);
|
|
468
|
+
const tableColumns = by === "hour" ? [t("charts.label"), ...columns.map(hour)] : [t("charts.label"), t("charts.value")];
|
|
469
|
+
const tableRows = by === "hour"
|
|
470
|
+
? Array.from({ length: 7 }, (_, r) => [weekday(r, "long"), ...columns.map((col) => format(cells.find((c) => c.row === r && c.column === col)?.value ?? 0))])
|
|
471
|
+
: cells.filter((c) => c.value > 0).map((c) => [dayLabel(c.date ?? c.column), format(c.value)]);
|
|
472
|
+
return (_jsxs("div", { children: [_jsx(ChartFrame, { title: title, height: 160, empty: total <= 0, emptyLabel: emptyLabel, columns: tableColumns, rows: tableRows, children: (width) => {
|
|
473
|
+
const labelW = Math.max(...Array.from({ length: 7 }, (_, i) => textWidth(weekday(i, "short")))) + 10;
|
|
474
|
+
const n = Math.max(1, columns.length);
|
|
475
|
+
const gap = by === "day" ? 2 : 3;
|
|
476
|
+
const cell = Math.max(5, Math.min(by === "day" ? 16 : 30, (width - labelW) / n - gap));
|
|
477
|
+
const plotH = 7 * (cell + gap);
|
|
478
|
+
const height = plotH + 22;
|
|
479
|
+
const x = (i) => labelW + i * (cell + gap);
|
|
480
|
+
const y = (r) => r * (cell + gap);
|
|
481
|
+
const colIndex = new Map(columns.map((c, i) => [c, i]));
|
|
482
|
+
const every = cell < 14 ? 6 : 3;
|
|
483
|
+
return (_jsxs(Svg, { width: Math.max(width, x(n)), height: height, label: t("charts.heatmapSummary", { total: format(total), highest: top ? `${cellName(top)}: ${format(top.value)}` : "—" }), children: [_jsxs("g", { "aria-hidden": "true", children: [Array.from({ length: 7 }, (_, r) => r % (cell < 12 ? 2 : 1) === 0 ? (_jsx("text", { x: labelW - 8, y: y(r) + cell / 2, dy: "0.32em", textAnchor: "end", fill: INK_MUTED, children: weekday(r, "short") }, r)) : null), columns.map((col, i) => {
|
|
484
|
+
if (by === "hour")
|
|
485
|
+
return i % every === 0 ? (_jsx("text", { x: x(i) + cell / 2, y: plotH + 14, textAnchor: "middle", fill: INK_MUTED, children: hour(col) }, col)) : null;
|
|
486
|
+
// Calendar: a month label where a month starts.
|
|
487
|
+
const prev = columns[i - 1];
|
|
488
|
+
return !prev || prev.slice(0, 7) !== col.slice(0, 7) ? (_jsx("text", { x: x(i), y: plotH + 14, fill: INK_MUTED, children: monthLabel(col) }, col)) : null;
|
|
489
|
+
})] }), _jsx("g", { className: "fc-marks fc-enter", children: cells.map((c) => {
|
|
490
|
+
const i = colIndex.get(c.column);
|
|
491
|
+
if (i === undefined)
|
|
492
|
+
return null;
|
|
493
|
+
const lv = level(c.value);
|
|
494
|
+
const d = { label: cellName(c), value: c.value, href: c.href };
|
|
495
|
+
return (_jsx(Linked, { d: d, fmt: format, children: _jsx("rect", { className: "fc-mark forge-chart-cell", "data-level": lv, x: x(i), y: y(c.row), width: cell, height: cell, rx: Math.min(3, cell / 4), fill: lv ? color : LINE, fillOpacity: lv ? LEVELS[lv] : 0.7, children: _jsx("title", { children: tip(d, format) }) }) }, `${c.row}-${c.column}`));
|
|
496
|
+
}) })] }));
|
|
497
|
+
} }), total > 0 && (_jsxs("div", { className: "forge-chart-scale mt-2 flex items-center justify-end gap-1 text-xs text-ink-muted", "aria-hidden": "true", children: [_jsx("span", { children: t("charts.less") }), LEVELS.map((o, i) => (_jsx("span", { className: "size-2.5 rounded-sm", style: { background: i ? color : LINE, opacity: i ? o : 0.7 } }, i))), _jsx("span", { children: t("charts.more") })] }))] }));
|
|
258
498
|
}
|
|
259
499
|
//# sourceMappingURL=charts.js.map
|
package/dist/charts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.js","sourceRoot":"","sources":["../src/charts.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charts.js","sourceRoot":"","sources":["../src/charts.tsx"],"names":[],"mappings":"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"}
|