@burdenoff/microfe-brainyrich 2026.828.2 → 2026.830.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brainyrich/components/viz.d.ts.map +1 -1
- package/dist/brainyrich/components/viz.js +148 -147
- package/dist/brainyrich/components/viz.js.map +1 -1
- package/dist/brainyrich/hooks/useTr.d.ts +17 -0
- package/dist/brainyrich/hooks/useTr.d.ts.map +1 -0
- package/dist/brainyrich/hooks/useTr.js +14 -0
- package/dist/brainyrich/hooks/useTr.js.map +1 -0
- package/dist/brainyrich/pages/AnalyticsPage.d.ts.map +1 -1
- package/dist/brainyrich/pages/AnalyticsPage.js +253 -252
- package/dist/brainyrich/pages/AnalyticsPage.js.map +1 -1
- package/dist/brainyrich/pages/PortfoliosPage.d.ts.map +1 -1
- package/dist/brainyrich/pages/PortfoliosPage.js +482 -476
- package/dist/brainyrich/pages/PortfoliosPage.js.map +1 -1
- package/dist/brainyrich/pages/ReportsPage.js +36 -36
- package/dist/brainyrich/pages/ReportsPage.js.map +1 -1
- package/dist/brainyrich/pages/RiskPage.d.ts.map +1 -1
- package/dist/brainyrich/pages/RiskPage.js +272 -271
- package/dist/brainyrich/pages/RiskPage.js.map +1 -1
- package/dist/brainyrich/pages/TaxPage.d.ts.map +1 -1
- package/dist/brainyrich/pages/TaxPage.js +198 -197
- package/dist/brainyrich/pages/TaxPage.js.map +1 -1
- package/dist/brainyrich/pages/_shared.d.ts.map +1 -1
- package/dist/brainyrich/pages/_shared.js +84 -82
- package/dist/brainyrich/pages/_shared.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,29 +12,30 @@ import { BarChart as u } from "../../node_modules/recharts/es6/chart/BarChart.js
|
|
|
12
12
|
import { PieChart as d } from "../../node_modules/recharts/es6/chart/PieChart.js";
|
|
13
13
|
import { AreaChart as f } from "../../node_modules/recharts/es6/chart/AreaChart.js";
|
|
14
14
|
import { twMerge as p } from "../../node_modules/tailwind-merge/dist/bundle-mjs.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { useTr as m } from "../hooks/useTr.js";
|
|
16
|
+
import { useEffect as h, useId as g, useMemo as _, useState as v } from "react";
|
|
17
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
17
18
|
//#region src/brainyrich/components/viz.tsx
|
|
18
|
-
function
|
|
19
|
+
function x(...t) {
|
|
19
20
|
return p(e(t));
|
|
20
21
|
}
|
|
21
|
-
function
|
|
22
|
+
function S() {
|
|
22
23
|
return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
-
let [e, t] =
|
|
26
|
-
return
|
|
25
|
+
function C() {
|
|
26
|
+
let [e, t] = v(S);
|
|
27
|
+
return h(() => {
|
|
27
28
|
if (typeof window > "u" || typeof window.matchMedia != "function") return;
|
|
28
29
|
let e = window.matchMedia("(prefers-reduced-motion: reduce)"), n = (e) => t(e.matches);
|
|
29
30
|
return e.addEventListener("change", n), () => e.removeEventListener("change", n);
|
|
30
31
|
}, []), e;
|
|
31
32
|
}
|
|
32
|
-
var
|
|
33
|
-
if (typeof document < "u" && !document.getElementById(
|
|
33
|
+
var w = "brainyrich-viz-motion", T = "\n@keyframes br-fade-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: none; }\n}\n.br-fade-in {\n animation: br-fade-in 240ms var(--motion-easing-standard, ease-out) both;\n}\n";
|
|
34
|
+
if (typeof document < "u" && !document.getElementById(w)) {
|
|
34
35
|
let e = document.createElement("style");
|
|
35
|
-
e.id =
|
|
36
|
+
e.id = w, e.textContent = T, document.head.appendChild(e);
|
|
36
37
|
}
|
|
37
|
-
var
|
|
38
|
+
var E = {
|
|
38
39
|
brand: "--color-action-primary-bg",
|
|
39
40
|
brandBorder: "--color-action-primary-border",
|
|
40
41
|
grid: "--color-chart-grid",
|
|
@@ -53,7 +54,7 @@ var T = {
|
|
|
53
54
|
textSecondary: "--color-text-secondary",
|
|
54
55
|
surface: "--color-bg-elevated",
|
|
55
56
|
border: "--color-border-subtle"
|
|
56
|
-
},
|
|
57
|
+
}, D = [
|
|
57
58
|
"--color-action-primary-bg",
|
|
58
59
|
"--color-chart-2",
|
|
59
60
|
"--color-chart-3",
|
|
@@ -67,12 +68,12 @@ var T = {
|
|
|
67
68
|
"--color-chart-11",
|
|
68
69
|
"--color-chart-12"
|
|
69
70
|
];
|
|
70
|
-
function
|
|
71
|
+
function O(e) {
|
|
71
72
|
return typeof window > "u" ? `var(${e})` : getComputedStyle(document.documentElement).getPropertyValue(e).trim() || `var(${e})`;
|
|
72
73
|
}
|
|
73
|
-
function
|
|
74
|
-
let [e, t] =
|
|
75
|
-
return
|
|
74
|
+
function k() {
|
|
75
|
+
let [e, t] = v(0);
|
|
76
|
+
return h(() => {
|
|
76
77
|
if (typeof window > "u") return;
|
|
77
78
|
let e = new MutationObserver(() => t((e) => e + 1));
|
|
78
79
|
return e.observe(document.documentElement, {
|
|
@@ -83,8 +84,8 @@ function O() {
|
|
|
83
84
|
"style"
|
|
84
85
|
]
|
|
85
86
|
}), () => e.disconnect();
|
|
86
|
-
}, []),
|
|
87
|
-
let e = Object.fromEntries(Object.keys(
|
|
87
|
+
}, []), _(() => {
|
|
88
|
+
let e = Object.fromEntries(Object.keys(E).map((e) => [e, O(E[e])])), t = D.map(O), n = (t) => {
|
|
88
89
|
switch (t) {
|
|
89
90
|
case "brand":
|
|
90
91
|
case "primary": return e.brand;
|
|
@@ -109,8 +110,8 @@ function O() {
|
|
|
109
110
|
};
|
|
110
111
|
}, [e]);
|
|
111
112
|
}
|
|
112
|
-
function
|
|
113
|
-
let e =
|
|
113
|
+
function A() {
|
|
114
|
+
let e = k();
|
|
114
115
|
return {
|
|
115
116
|
wrapper: {
|
|
116
117
|
background: e.surface,
|
|
@@ -128,20 +129,20 @@ function k() {
|
|
|
128
129
|
}
|
|
129
130
|
};
|
|
130
131
|
}
|
|
131
|
-
function
|
|
132
|
-
let i =
|
|
133
|
-
return !e || !t || t.length === 0 ? null : /* @__PURE__ */
|
|
132
|
+
function j({ active: e, payload: t, label: n, valueFormatter: r }) {
|
|
133
|
+
let i = A();
|
|
134
|
+
return !e || !t || t.length === 0 ? null : /* @__PURE__ */ b("div", {
|
|
134
135
|
style: i.wrapper,
|
|
135
136
|
role: "tooltip",
|
|
136
|
-
children: [n !== void 0 && n !== "" ? /* @__PURE__ */
|
|
137
|
+
children: [n !== void 0 && n !== "" ? /* @__PURE__ */ y("div", {
|
|
137
138
|
style: i.label,
|
|
138
139
|
children: n
|
|
139
140
|
}) : null, t.map((e, t) => {
|
|
140
141
|
let n = typeof e.value == "number" ? e.value : Number(e.value), a = r && Number.isFinite(n) ? r(n) : String(e.value ?? "");
|
|
141
|
-
return /* @__PURE__ */
|
|
142
|
+
return /* @__PURE__ */ b("div", {
|
|
142
143
|
className: "flex items-center gap-2",
|
|
143
144
|
children: [
|
|
144
|
-
e.color ? /* @__PURE__ */
|
|
145
|
+
e.color ? /* @__PURE__ */ y("span", {
|
|
145
146
|
"aria-hidden": "true",
|
|
146
147
|
style: {
|
|
147
148
|
width: 8,
|
|
@@ -151,11 +152,11 @@ function A({ active: e, payload: t, label: n, valueFormatter: r }) {
|
|
|
151
152
|
display: "inline-block"
|
|
152
153
|
}
|
|
153
154
|
}) : null,
|
|
154
|
-
e.name ? /* @__PURE__ */
|
|
155
|
+
e.name ? /* @__PURE__ */ b("span", {
|
|
155
156
|
style: { color: i.label.color },
|
|
156
157
|
children: [e.name, ":"]
|
|
157
158
|
}) : null,
|
|
158
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ y("span", {
|
|
159
160
|
style: { fontWeight: 600 },
|
|
160
161
|
children: a
|
|
161
162
|
})
|
|
@@ -164,43 +165,43 @@ function A({ active: e, payload: t, label: n, valueFormatter: r }) {
|
|
|
164
165
|
})]
|
|
165
166
|
});
|
|
166
167
|
}
|
|
167
|
-
function
|
|
168
|
-
return
|
|
168
|
+
function M({ children: e, index: t = 0, delay: n = 0, className: r, as: i = "div" }) {
|
|
169
|
+
return C() ? /* @__PURE__ */ y(i, {
|
|
169
170
|
className: r,
|
|
170
171
|
children: e
|
|
171
|
-
}) : /* @__PURE__ */
|
|
172
|
-
className:
|
|
172
|
+
}) : /* @__PURE__ */ y(i, {
|
|
173
|
+
className: x("br-fade-in", r),
|
|
173
174
|
style: { animationDelay: `${n + t * .04}s` },
|
|
174
175
|
children: e
|
|
175
176
|
});
|
|
176
177
|
}
|
|
177
|
-
function
|
|
178
|
-
return /* @__PURE__ */
|
|
179
|
-
className:
|
|
178
|
+
function N({ children: e, className: t, glow: n = !1 }) {
|
|
179
|
+
return /* @__PURE__ */ y("div", {
|
|
180
|
+
className: x("rounded-2xl border p-5", "border-[var(--color-border-glass,var(--color-border-subtle))]", "bg-[var(--color-surface-glass,var(--color-bg-elevated))]", "shadow-[var(--shadow-float,var(--shadow-elevation-3))]", "backdrop-blur-[var(--blur-glass,12px)]", n && "ring-1 ring-[var(--color-action-primary-border)]/40", t),
|
|
180
181
|
children: e
|
|
181
182
|
});
|
|
182
183
|
}
|
|
183
|
-
function
|
|
184
|
-
let u =
|
|
185
|
-
if (
|
|
184
|
+
function P({ data: e, centerLabel: a, centerValue: o, legend: s = !0, height: c = 220, valueFormatter: l }) {
|
|
185
|
+
let u = k(), f = C(), p = m(), h = e.filter((e) => Number.isFinite(e.value) && e.value > 0);
|
|
186
|
+
if (h.length === 0) return /* @__PURE__ */ y("p", {
|
|
186
187
|
className: "text-sm text-text-secondary",
|
|
187
|
-
children: "No data."
|
|
188
|
+
children: p("brainyrich.common.noData", "No data.")
|
|
188
189
|
});
|
|
189
|
-
let
|
|
190
|
-
return /* @__PURE__ */
|
|
190
|
+
let g = (e, t) => e.tone ? u.tone(e.tone) : u.palette[t % u.palette.length];
|
|
191
|
+
return /* @__PURE__ */ b("div", {
|
|
191
192
|
className: "flex flex-col items-center gap-4 sm:flex-row sm:items-center",
|
|
192
|
-
children: [/* @__PURE__ */
|
|
193
|
+
children: [/* @__PURE__ */ b("div", {
|
|
193
194
|
className: "relative",
|
|
194
195
|
style: {
|
|
195
196
|
width: "100%",
|
|
196
197
|
maxWidth: 260,
|
|
197
198
|
height: c
|
|
198
199
|
},
|
|
199
|
-
children: [/* @__PURE__ */
|
|
200
|
+
children: [/* @__PURE__ */ y(n, {
|
|
200
201
|
width: "100%",
|
|
201
202
|
height: "100%",
|
|
202
|
-
children: /* @__PURE__ */
|
|
203
|
-
data:
|
|
203
|
+
children: /* @__PURE__ */ b(d, { children: [/* @__PURE__ */ y(i, {
|
|
204
|
+
data: h,
|
|
204
205
|
dataKey: "value",
|
|
205
206
|
nameKey: "label",
|
|
206
207
|
innerRadius: "62%",
|
|
@@ -209,34 +210,34 @@ function N({ data: e, centerLabel: a, centerValue: o, legend: s = !0, height: c
|
|
|
209
210
|
stroke: "transparent",
|
|
210
211
|
isAnimationActive: !f,
|
|
211
212
|
animationDuration: 250,
|
|
212
|
-
children:
|
|
213
|
-
}), /* @__PURE__ */
|
|
214
|
-
}), o || a ? /* @__PURE__ */
|
|
213
|
+
children: h.map((e, t) => /* @__PURE__ */ y(r, { fill: g(e, t) }, e.label))
|
|
214
|
+
}), /* @__PURE__ */ y(t, { content: /* @__PURE__ */ y(j, { valueFormatter: l }) })] })
|
|
215
|
+
}), o || a ? /* @__PURE__ */ b("div", {
|
|
215
216
|
className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center",
|
|
216
|
-
children: [o ? /* @__PURE__ */
|
|
217
|
+
children: [o ? /* @__PURE__ */ y("span", {
|
|
217
218
|
className: "text-xl font-semibold text-text-primary",
|
|
218
219
|
children: o
|
|
219
|
-
}) : null, a ? /* @__PURE__ */
|
|
220
|
+
}) : null, a ? /* @__PURE__ */ y("span", {
|
|
220
221
|
className: "text-xs text-text-secondary",
|
|
221
222
|
children: a
|
|
222
223
|
}) : null]
|
|
223
224
|
}) : null]
|
|
224
|
-
}), s ? /* @__PURE__ */
|
|
225
|
+
}), s ? /* @__PURE__ */ y("ul", {
|
|
225
226
|
className: "grid flex-1 grid-cols-1 gap-2 sm:grid-cols-2",
|
|
226
227
|
"aria-label": "Legend",
|
|
227
|
-
children:
|
|
228
|
+
children: h.map((e, t) => /* @__PURE__ */ b("li", {
|
|
228
229
|
className: "flex items-center gap-2 text-xs",
|
|
229
230
|
children: [
|
|
230
|
-
/* @__PURE__ */
|
|
231
|
+
/* @__PURE__ */ y("span", {
|
|
231
232
|
"aria-hidden": "true",
|
|
232
233
|
className: "size-2.5 shrink-0 rounded-full",
|
|
233
|
-
style: { background:
|
|
234
|
+
style: { background: g(e, t) }
|
|
234
235
|
}),
|
|
235
|
-
/* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ y("span", {
|
|
236
237
|
className: "truncate text-text-secondary",
|
|
237
238
|
children: e.label
|
|
238
239
|
}),
|
|
239
|
-
/* @__PURE__ */
|
|
240
|
+
/* @__PURE__ */ y("span", {
|
|
240
241
|
className: "ml-auto font-medium text-text-primary",
|
|
241
242
|
children: l ? l(e.value) : e.value
|
|
242
243
|
})
|
|
@@ -245,9 +246,9 @@ function N({ data: e, centerLabel: a, centerValue: o, legend: s = !0, height: c
|
|
|
245
246
|
}) : null]
|
|
246
247
|
});
|
|
247
248
|
}
|
|
248
|
-
function
|
|
249
|
-
let a =
|
|
250
|
-
if (o.length < 2) return /* @__PURE__ */
|
|
249
|
+
function F({ data: e, tone: t = "brand", height: r = 40, className: i }) {
|
|
250
|
+
let a = k().tone(t), o = e.filter((e) => Number.isFinite(e)), c = `spark-${g().replace(/:/g, "")}`;
|
|
251
|
+
if (o.length < 2) return /* @__PURE__ */ y("div", {
|
|
251
252
|
className: i,
|
|
252
253
|
style: { height: r },
|
|
253
254
|
"aria-hidden": "true"
|
|
@@ -256,17 +257,17 @@ function P({ data: e, tone: t = "brand", height: r = 40, className: i }) {
|
|
|
256
257
|
x: t,
|
|
257
258
|
y: e
|
|
258
259
|
}));
|
|
259
|
-
return /* @__PURE__ */
|
|
260
|
+
return /* @__PURE__ */ y("div", {
|
|
260
261
|
className: i,
|
|
261
262
|
style: {
|
|
262
263
|
width: "100%",
|
|
263
264
|
height: r
|
|
264
265
|
},
|
|
265
266
|
"aria-hidden": "true",
|
|
266
|
-
children: /* @__PURE__ */
|
|
267
|
+
children: /* @__PURE__ */ y(n, {
|
|
267
268
|
width: "100%",
|
|
268
269
|
height: "100%",
|
|
269
|
-
children: /* @__PURE__ */
|
|
270
|
+
children: /* @__PURE__ */ b(f, {
|
|
270
271
|
data: l,
|
|
271
272
|
margin: {
|
|
272
273
|
top: 2,
|
|
@@ -274,22 +275,22 @@ function P({ data: e, tone: t = "brand", height: r = 40, className: i }) {
|
|
|
274
275
|
bottom: 0,
|
|
275
276
|
left: 0
|
|
276
277
|
},
|
|
277
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ y("defs", { children: /* @__PURE__ */ b("linearGradient", {
|
|
278
279
|
id: c,
|
|
279
280
|
x1: "0",
|
|
280
281
|
y1: "0",
|
|
281
282
|
x2: "0",
|
|
282
283
|
y2: "1",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
284
|
+
children: [/* @__PURE__ */ y("stop", {
|
|
284
285
|
offset: "0%",
|
|
285
286
|
stopColor: a,
|
|
286
287
|
stopOpacity: .28
|
|
287
|
-
}), /* @__PURE__ */
|
|
288
|
+
}), /* @__PURE__ */ y("stop", {
|
|
288
289
|
offset: "100%",
|
|
289
290
|
stopColor: a,
|
|
290
291
|
stopOpacity: 0
|
|
291
292
|
})]
|
|
292
|
-
}) }), /* @__PURE__ */
|
|
293
|
+
}) }), /* @__PURE__ */ y(s, {
|
|
293
294
|
type: "monotone",
|
|
294
295
|
dataKey: "y",
|
|
295
296
|
stroke: a,
|
|
@@ -302,12 +303,12 @@ function P({ data: e, tone: t = "brand", height: r = 40, className: i }) {
|
|
|
302
303
|
})
|
|
303
304
|
});
|
|
304
305
|
}
|
|
305
|
-
function
|
|
306
|
-
let a =
|
|
307
|
-
return
|
|
308
|
-
let e = requestAnimationFrame(() =>
|
|
306
|
+
function I({ value: e, label: t, tone: n = "brand", size: r = 120, strokeWidth: i = 10 }) {
|
|
307
|
+
let a = k(), o = C(), s = Math.max(0, Math.min(100, Number.isFinite(e) ? e : 0)), c = (r - i) / 2, l = 2 * Math.PI * c, u = s / 100 * l, d = a.tone(n), f = l - u, [p, m] = v(o ? f : l);
|
|
308
|
+
return h(() => {
|
|
309
|
+
let e = requestAnimationFrame(() => m(f));
|
|
309
310
|
return () => cancelAnimationFrame(e);
|
|
310
|
-
}, [f]), /* @__PURE__ */
|
|
311
|
+
}, [f]), /* @__PURE__ */ b("div", {
|
|
311
312
|
className: "relative inline-flex items-center justify-center",
|
|
312
313
|
style: {
|
|
313
314
|
width: r,
|
|
@@ -318,18 +319,18 @@ function F({ value: e, label: t, tone: n = "brand", size: r = 120, strokeWidth:
|
|
|
318
319
|
"aria-valuemin": 0,
|
|
319
320
|
"aria-valuemax": 100,
|
|
320
321
|
"aria-label": t ?? "Progress",
|
|
321
|
-
children: [/* @__PURE__ */
|
|
322
|
+
children: [/* @__PURE__ */ b("svg", {
|
|
322
323
|
width: r,
|
|
323
324
|
height: r,
|
|
324
325
|
className: "-rotate-90",
|
|
325
|
-
children: [/* @__PURE__ */
|
|
326
|
+
children: [/* @__PURE__ */ y("circle", {
|
|
326
327
|
cx: r / 2,
|
|
327
328
|
cy: r / 2,
|
|
328
329
|
r: c,
|
|
329
330
|
fill: "none",
|
|
330
331
|
stroke: a.border,
|
|
331
332
|
strokeWidth: i
|
|
332
|
-
}), /* @__PURE__ */
|
|
333
|
+
}), /* @__PURE__ */ y("circle", {
|
|
333
334
|
cx: r / 2,
|
|
334
335
|
cy: r / 2,
|
|
335
336
|
r: c,
|
|
@@ -341,39 +342,39 @@ function F({ value: e, label: t, tone: n = "brand", size: r = 120, strokeWidth:
|
|
|
341
342
|
strokeDashoffset: p,
|
|
342
343
|
style: { transition: o ? "none" : "stroke-dashoffset 600ms ease" }
|
|
343
344
|
})]
|
|
344
|
-
}), /* @__PURE__ */
|
|
345
|
+
}), /* @__PURE__ */ b("div", {
|
|
345
346
|
className: "absolute inset-0 flex flex-col items-center justify-center",
|
|
346
|
-
children: [/* @__PURE__ */
|
|
347
|
+
children: [/* @__PURE__ */ b("span", {
|
|
347
348
|
className: "text-lg font-semibold text-text-primary",
|
|
348
349
|
children: [Math.round(s), "%"]
|
|
349
|
-
}), t ? /* @__PURE__ */
|
|
350
|
+
}), t ? /* @__PURE__ */ y("span", {
|
|
350
351
|
className: "text-[10px] text-text-secondary",
|
|
351
352
|
children: t
|
|
352
353
|
}) : null]
|
|
353
354
|
})]
|
|
354
355
|
});
|
|
355
356
|
}
|
|
356
|
-
function
|
|
357
|
-
let s =
|
|
358
|
-
if (
|
|
357
|
+
function L({ data: e, height: r = 240, valueFormatter: i }) {
|
|
358
|
+
let s = k(), d = C(), f = m(), p = e.filter((e) => Number.isFinite(e.inflow) && Number.isFinite(e.outflow));
|
|
359
|
+
if (p.length === 0) return /* @__PURE__ */ y("p", {
|
|
359
360
|
className: "text-sm text-text-secondary",
|
|
360
|
-
children: "No cashflow data."
|
|
361
|
+
children: f("brainyrich.common.noCashflowData", "No cashflow data.")
|
|
361
362
|
});
|
|
362
|
-
let
|
|
363
|
+
let h = p.map((e) => ({
|
|
363
364
|
label: e.label,
|
|
364
365
|
inflow: Math.abs(e.inflow),
|
|
365
366
|
outflow: -Math.abs(e.outflow)
|
|
366
367
|
}));
|
|
367
|
-
return /* @__PURE__ */
|
|
368
|
+
return /* @__PURE__ */ y("div", {
|
|
368
369
|
style: {
|
|
369
370
|
width: "100%",
|
|
370
371
|
height: r
|
|
371
372
|
},
|
|
372
|
-
children: /* @__PURE__ */
|
|
373
|
+
children: /* @__PURE__ */ y(n, {
|
|
373
374
|
width: "100%",
|
|
374
375
|
height: "100%",
|
|
375
|
-
children: /* @__PURE__ */
|
|
376
|
-
data:
|
|
376
|
+
children: /* @__PURE__ */ b(u, {
|
|
377
|
+
data: h,
|
|
377
378
|
margin: {
|
|
378
379
|
top: 8,
|
|
379
380
|
right: 8,
|
|
@@ -382,7 +383,7 @@ function I({ data: e, height: r = 240, valueFormatter: i }) {
|
|
|
382
383
|
},
|
|
383
384
|
stackOffset: "sign",
|
|
384
385
|
children: [
|
|
385
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ y(c, {
|
|
386
387
|
dataKey: "label",
|
|
387
388
|
tick: {
|
|
388
389
|
fill: s.textSecondary,
|
|
@@ -391,7 +392,7 @@ function I({ data: e, height: r = 240, valueFormatter: i }) {
|
|
|
391
392
|
axisLine: { stroke: s.grid },
|
|
392
393
|
tickLine: !1
|
|
393
394
|
}),
|
|
394
|
-
/* @__PURE__ */
|
|
395
|
+
/* @__PURE__ */ y(l, {
|
|
395
396
|
tick: {
|
|
396
397
|
fill: s.textSecondary,
|
|
397
398
|
fontSize: 11
|
|
@@ -401,18 +402,18 @@ function I({ data: e, height: r = 240, valueFormatter: i }) {
|
|
|
401
402
|
width: 44,
|
|
402
403
|
tickFormatter: (e) => i ? i(Math.abs(e)) : String(Math.abs(e))
|
|
403
404
|
}),
|
|
404
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ y(o, {
|
|
405
406
|
y: 0,
|
|
406
407
|
stroke: s.grid
|
|
407
408
|
}),
|
|
408
|
-
/* @__PURE__ */
|
|
409
|
+
/* @__PURE__ */ y(t, {
|
|
409
410
|
cursor: {
|
|
410
411
|
fill: s.border,
|
|
411
412
|
opacity: .25
|
|
412
413
|
},
|
|
413
|
-
content: /* @__PURE__ */
|
|
414
|
+
content: /* @__PURE__ */ y(j, { valueFormatter: (e) => i ? i(Math.abs(e)) : String(Math.abs(e)) })
|
|
414
415
|
}),
|
|
415
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ y(a, {
|
|
416
417
|
dataKey: "inflow",
|
|
417
418
|
name: "Inflow",
|
|
418
419
|
fill: s.positive,
|
|
@@ -425,7 +426,7 @@ function I({ data: e, height: r = 240, valueFormatter: i }) {
|
|
|
425
426
|
isAnimationActive: !d,
|
|
426
427
|
animationDuration: 250
|
|
427
428
|
}),
|
|
428
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ y(a, {
|
|
429
430
|
dataKey: "outflow",
|
|
430
431
|
name: "Outflow",
|
|
431
432
|
fill: s.negative,
|
|
@@ -443,21 +444,21 @@ function I({ data: e, height: r = 240, valueFormatter: i }) {
|
|
|
443
444
|
})
|
|
444
445
|
});
|
|
445
446
|
}
|
|
446
|
-
function
|
|
447
|
-
let d =
|
|
448
|
-
return
|
|
447
|
+
function R({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormatter: u }) {
|
|
448
|
+
let d = k(), p = C(), h = m(), _ = d.tone(i), v = e.filter((e) => Number.isFinite(e.y)), x = `area-${g().replace(/:/g, "")}`;
|
|
449
|
+
return v.length < 2 ? /* @__PURE__ */ y("p", {
|
|
449
450
|
className: "text-sm text-text-secondary",
|
|
450
|
-
children: "Not enough data to chart."
|
|
451
|
-
}) : /* @__PURE__ */
|
|
451
|
+
children: h("brainyrich.common.notEnoughData", "Not enough data to chart.")
|
|
452
|
+
}) : /* @__PURE__ */ y("div", {
|
|
452
453
|
style: {
|
|
453
454
|
width: "100%",
|
|
454
455
|
height: a
|
|
455
456
|
},
|
|
456
|
-
children: /* @__PURE__ */
|
|
457
|
+
children: /* @__PURE__ */ y(n, {
|
|
457
458
|
width: "100%",
|
|
458
459
|
height: "100%",
|
|
459
|
-
children: /* @__PURE__ */
|
|
460
|
-
data:
|
|
460
|
+
children: /* @__PURE__ */ b(f, {
|
|
461
|
+
data: v,
|
|
461
462
|
margin: {
|
|
462
463
|
top: 8,
|
|
463
464
|
right: 8,
|
|
@@ -465,23 +466,23 @@ function L({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormat
|
|
|
465
466
|
left: 8
|
|
466
467
|
},
|
|
467
468
|
children: [
|
|
468
|
-
/* @__PURE__ */
|
|
469
|
-
id:
|
|
469
|
+
/* @__PURE__ */ y("defs", { children: /* @__PURE__ */ b("linearGradient", {
|
|
470
|
+
id: x,
|
|
470
471
|
x1: "0",
|
|
471
472
|
y1: "0",
|
|
472
473
|
x2: "0",
|
|
473
474
|
y2: "1",
|
|
474
|
-
children: [/* @__PURE__ */
|
|
475
|
+
children: [/* @__PURE__ */ y("stop", {
|
|
475
476
|
offset: "0%",
|
|
476
|
-
stopColor:
|
|
477
|
+
stopColor: _,
|
|
477
478
|
stopOpacity: .3
|
|
478
|
-
}), /* @__PURE__ */
|
|
479
|
+
}), /* @__PURE__ */ y("stop", {
|
|
479
480
|
offset: "100%",
|
|
480
|
-
stopColor:
|
|
481
|
+
stopColor: _,
|
|
481
482
|
stopOpacity: .02
|
|
482
483
|
})]
|
|
483
484
|
}) }),
|
|
484
|
-
/* @__PURE__ */
|
|
485
|
+
/* @__PURE__ */ y(c, {
|
|
485
486
|
dataKey: "x",
|
|
486
487
|
tick: {
|
|
487
488
|
fill: d.textSecondary,
|
|
@@ -490,7 +491,7 @@ function L({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormat
|
|
|
490
491
|
axisLine: { stroke: d.grid },
|
|
491
492
|
tickLine: !1
|
|
492
493
|
}),
|
|
493
|
-
/* @__PURE__ */
|
|
494
|
+
/* @__PURE__ */ y(l, {
|
|
494
495
|
tick: {
|
|
495
496
|
fill: d.textSecondary,
|
|
496
497
|
fontSize: 11
|
|
@@ -500,8 +501,8 @@ function L({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormat
|
|
|
500
501
|
width: 44,
|
|
501
502
|
tickFormatter: (e) => u ? u(e) : String(e)
|
|
502
503
|
}),
|
|
503
|
-
/* @__PURE__ */
|
|
504
|
-
r !== void 0 && Number.isFinite(r) ? /* @__PURE__ */
|
|
504
|
+
/* @__PURE__ */ y(t, { content: /* @__PURE__ */ y(j, { valueFormatter: u }) }),
|
|
505
|
+
r !== void 0 && Number.isFinite(r) ? /* @__PURE__ */ y(o, {
|
|
505
506
|
y: r,
|
|
506
507
|
stroke: d.textSecondary,
|
|
507
508
|
strokeDasharray: "5 4",
|
|
@@ -512,12 +513,12 @@ function L({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormat
|
|
|
512
513
|
fontSize: 10
|
|
513
514
|
}
|
|
514
515
|
}) : null,
|
|
515
|
-
/* @__PURE__ */
|
|
516
|
+
/* @__PURE__ */ y(s, {
|
|
516
517
|
type: "monotone",
|
|
517
518
|
dataKey: "y",
|
|
518
|
-
stroke:
|
|
519
|
+
stroke: _,
|
|
519
520
|
strokeWidth: 2,
|
|
520
|
-
fill: `url(#${
|
|
521
|
+
fill: `url(#${x})`,
|
|
521
522
|
isAnimationActive: !p,
|
|
522
523
|
animationDuration: 250,
|
|
523
524
|
dot: !1
|
|
@@ -527,45 +528,45 @@ function L({ data: e, target: r, tone: i = "brand", height: a = 200, valueFormat
|
|
|
527
528
|
})
|
|
528
529
|
});
|
|
529
530
|
}
|
|
530
|
-
var
|
|
531
|
-
function
|
|
532
|
-
let r =
|
|
533
|
-
return /* @__PURE__ */
|
|
534
|
-
className:
|
|
531
|
+
var z = /reject|cancel|abandon|decline|fail/i;
|
|
532
|
+
function B({ steps: e, current: t, className: n }) {
|
|
533
|
+
let r = z.test(t), i = e.findIndex((e) => e.toLowerCase() === t.toLowerCase());
|
|
534
|
+
return /* @__PURE__ */ b("ol", {
|
|
535
|
+
className: x("flex w-full items-center overflow-x-auto", n),
|
|
535
536
|
"aria-label": "Lifecycle progress",
|
|
536
537
|
children: [e.map((t, n) => {
|
|
537
538
|
let a = n === e.length - 1, o = i >= 0 && n < i, s = i >= 0 && n === i && !r, c = o ? "done" : s ? "active" : "upcoming";
|
|
538
|
-
return /* @__PURE__ */
|
|
539
|
+
return /* @__PURE__ */ b("li", {
|
|
539
540
|
className: "flex min-w-fit flex-1 items-center",
|
|
540
541
|
"aria-current": s ? "step" : void 0,
|
|
541
|
-
children: [/* @__PURE__ */
|
|
542
|
+
children: [/* @__PURE__ */ b("div", {
|
|
542
543
|
className: "flex flex-col items-center gap-1.5 px-1",
|
|
543
|
-
children: [/* @__PURE__ */
|
|
544
|
-
className:
|
|
544
|
+
children: [/* @__PURE__ */ y("span", {
|
|
545
|
+
className: x("flex size-7 items-center justify-center rounded-full border text-xs font-semibold transition-colors", c === "done" && "border-transparent bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)]", c === "active" && "border-[var(--color-action-primary-border)] bg-[var(--color-action-primary-bg)]/15 text-[var(--color-action-primary-text)]", c === "upcoming" && "border-border-subtle bg-bg-sunken text-text-secondary"),
|
|
545
546
|
"aria-hidden": "true",
|
|
546
547
|
children: o ? "✓" : n + 1
|
|
547
|
-
}), /* @__PURE__ */
|
|
548
|
-
className:
|
|
548
|
+
}), /* @__PURE__ */ y("span", {
|
|
549
|
+
className: x("whitespace-nowrap text-[11px]", s ? "font-medium text-text-primary" : "text-text-secondary"),
|
|
549
550
|
children: t
|
|
550
551
|
})]
|
|
551
|
-
}), a ? null : /* @__PURE__ */
|
|
552
|
+
}), a ? null : /* @__PURE__ */ y("span", {
|
|
552
553
|
"aria-hidden": "true",
|
|
553
|
-
className:
|
|
554
|
+
className: x("mx-1 h-0.5 flex-1 rounded-full", o ? "bg-[var(--color-action-primary-bg)]" : "bg-border-subtle")
|
|
554
555
|
})]
|
|
555
556
|
}, t);
|
|
556
|
-
}), r ? /* @__PURE__ */
|
|
557
|
+
}), r ? /* @__PURE__ */ b("li", {
|
|
557
558
|
className: "ml-2 flex min-w-fit items-center gap-1.5",
|
|
558
559
|
"aria-current": "step",
|
|
559
|
-
children: [/* @__PURE__ */
|
|
560
|
+
children: [/* @__PURE__ */ y("span", {
|
|
560
561
|
className: "mx-1 h-0.5 w-6 rounded-full bg-status-error-border",
|
|
561
562
|
"aria-hidden": "true"
|
|
562
|
-
}), /* @__PURE__ */
|
|
563
|
+
}), /* @__PURE__ */ b("div", {
|
|
563
564
|
className: "flex flex-col items-center gap-1.5 px-1",
|
|
564
|
-
children: [/* @__PURE__ */
|
|
565
|
+
children: [/* @__PURE__ */ y("span", {
|
|
565
566
|
className: "flex size-7 items-center justify-center rounded-full border border-transparent bg-status-error text-xs font-semibold text-status-error-text",
|
|
566
567
|
"aria-hidden": "true",
|
|
567
568
|
children: "✕"
|
|
568
|
-
}), /* @__PURE__ */
|
|
569
|
+
}), /* @__PURE__ */ y("span", {
|
|
569
570
|
className: "whitespace-nowrap text-[11px] font-medium text-status-error-text",
|
|
570
571
|
children: t
|
|
571
572
|
})]
|
|
@@ -573,35 +574,35 @@ function z({ steps: e, current: t, className: n }) {
|
|
|
573
574
|
}) : null]
|
|
574
575
|
});
|
|
575
576
|
}
|
|
576
|
-
function
|
|
577
|
+
function V({ label: e, value: t, delta: n, deltaTone: r, deltaSuffix: i = "%", spark: a, sparkTone: o = "brand", glow: s = !1, icon: c, className: l }) {
|
|
577
578
|
let u = r ? r === "positive" : (n ?? 0) > 0, d = r ? r === "negative" : (n ?? 0) < 0, f = u ? "text-status-success-text bg-status-success-bg" : d ? "text-status-error-text bg-status-error-bg" : "text-text-secondary bg-bg-sunken", p = n !== void 0 && n > 0 ? "+" : "";
|
|
578
|
-
return /* @__PURE__ */
|
|
579
|
-
className:
|
|
579
|
+
return /* @__PURE__ */ b("div", {
|
|
580
|
+
className: x("group relative overflow-hidden rounded-xl border border-border-subtle bg-bg-surface p-4 transition-shadow", "motion-safe:hover:shadow-[var(--shadow-pop-hover,var(--shadow-elevation-2))]", s && "ring-1 ring-[var(--color-action-primary-border)]/40", l),
|
|
580
581
|
children: [
|
|
581
|
-
s ? /* @__PURE__ */
|
|
582
|
+
s ? /* @__PURE__ */ y("span", {
|
|
582
583
|
"aria-hidden": "true",
|
|
583
584
|
className: "pointer-events-none absolute -right-8 -top-8 size-24 rounded-full bg-[var(--color-action-primary-bg)]/15 blur-2xl"
|
|
584
585
|
}) : null,
|
|
585
|
-
/* @__PURE__ */
|
|
586
|
+
/* @__PURE__ */ b("div", {
|
|
586
587
|
className: "flex items-start justify-between gap-2",
|
|
587
|
-
children: [/* @__PURE__ */
|
|
588
|
+
children: [/* @__PURE__ */ y("p", {
|
|
588
589
|
className: "text-xs text-text-secondary",
|
|
589
590
|
children: e
|
|
590
|
-
}), c ? /* @__PURE__ */
|
|
591
|
+
}), c ? /* @__PURE__ */ y("span", {
|
|
591
592
|
className: "text-text-secondary",
|
|
592
593
|
children: c
|
|
593
594
|
}) : null]
|
|
594
595
|
}),
|
|
595
|
-
/* @__PURE__ */
|
|
596
|
+
/* @__PURE__ */ y("p", {
|
|
596
597
|
className: "mt-1 text-2xl font-semibold text-text-primary",
|
|
597
598
|
children: t
|
|
598
599
|
}),
|
|
599
|
-
/* @__PURE__ */
|
|
600
|
+
/* @__PURE__ */ b("div", {
|
|
600
601
|
className: "mt-2 flex items-center justify-between gap-2",
|
|
601
|
-
children: [n !== void 0 && Number.isFinite(n) ? /* @__PURE__ */
|
|
602
|
-
className:
|
|
602
|
+
children: [n !== void 0 && Number.isFinite(n) ? /* @__PURE__ */ b("span", {
|
|
603
|
+
className: x("inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium", f),
|
|
603
604
|
children: [
|
|
604
|
-
/* @__PURE__ */
|
|
605
|
+
/* @__PURE__ */ y("span", {
|
|
605
606
|
"aria-hidden": "true",
|
|
606
607
|
children: u ? "▲" : d ? "▼" : "—"
|
|
607
608
|
}),
|
|
@@ -609,9 +610,9 @@ function B({ label: e, value: t, delta: n, deltaTone: r, deltaSuffix: i = "%", s
|
|
|
609
610
|
n.toFixed(1),
|
|
610
611
|
i
|
|
611
612
|
]
|
|
612
|
-
}) : /* @__PURE__ */
|
|
613
|
+
}) : /* @__PURE__ */ y("span", {}), a && a.length > 1 ? /* @__PURE__ */ y("div", {
|
|
613
614
|
className: "w-20 shrink-0",
|
|
614
|
-
children: /* @__PURE__ */
|
|
615
|
+
children: /* @__PURE__ */ y(F, {
|
|
615
616
|
data: a,
|
|
616
617
|
tone: o,
|
|
617
618
|
height: 28
|
|
@@ -622,6 +623,6 @@ function B({ label: e, value: t, delta: n, deltaTone: r, deltaSuffix: i = "%", s
|
|
|
622
623
|
});
|
|
623
624
|
}
|
|
624
625
|
//#endregion
|
|
625
|
-
export {
|
|
626
|
+
export { P as DonutChart, M as FadeIn, N as GlassCard, B as LifecycleStepper, R as MiniAreaChart, I as ProgressRing, F as Sparkline, V as StatTile, L as TrendBars, C as useReducedMotion, k as useVizColors };
|
|
626
627
|
|
|
627
628
|
//# sourceMappingURL=viz.js.map
|