@burdenoff/microfe-brainyrich 2026.828.1 → 2026.828.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/brainyrich/BrainyRichRoot.d.ts.map +1 -1
- package/dist/brainyrich/BrainyRichRoot.js +59 -59
- package/dist/brainyrich/BrainyRichRoot.js.map +1 -1
- package/dist/brainyrich/components/viz.d.ts.map +1 -1
- package/dist/brainyrich/components/viz.js +1 -1
- package/dist/brainyrich/components/viz.js.map +1 -1
- package/dist/brainyrich/pages/AiAssistantPage.js +192 -192
- package/dist/brainyrich/pages/AiAssistantPage.js.map +1 -1
- package/dist/brainyrich/pages/AnalyticsPage.js +9 -9
- package/dist/brainyrich/pages/AnalyticsPage.js.map +1 -1
- package/dist/brainyrich/pages/DashboardPage.js +115 -115
- package/dist/brainyrich/pages/DashboardPage.js.map +1 -1
- package/dist/brainyrich/pages/FamilyPage.js +59 -59
- package/dist/brainyrich/pages/FamilyPage.js.map +1 -1
- package/dist/brainyrich/pages/GoalsPage.js +285 -285
- package/dist/brainyrich/pages/GoalsPage.js.map +1 -1
- package/dist/brainyrich/pages/InvestmentsPage.js +18 -18
- package/dist/brainyrich/pages/InvestmentsPage.js.map +1 -1
- package/dist/brainyrich/pages/PortfoliosPage.d.ts.map +1 -1
- package/dist/brainyrich/pages/PortfoliosPage.js +322 -322
- package/dist/brainyrich/pages/PortfoliosPage.js.map +1 -1
- package/dist/brainyrich/pages/ReportsPage.js +17 -17
- package/dist/brainyrich/pages/ReportsPage.js.map +1 -1
- package/dist/brainyrich/pages/RiskPage.js +16 -16
- 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 +14 -14
- package/dist/brainyrich/pages/TaxPage.js.map +1 -1
- package/dist/brainyrich/types/bra.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,10 +7,10 @@ import { SubjectPicker as g, parseSubject as _ } from "../components/pickers.js"
|
|
|
7
7
|
import "../components/index.js";
|
|
8
8
|
import { EmptyState as v, ErrorState as te, LoadingState as ne, MetricGrid as y, SectionShell as re, formatDate as b, readEngineMetrics as x, statusBadgeVariant as S } from "./_shared.js";
|
|
9
9
|
import { useMemo as C, useState as w } from "react";
|
|
10
|
-
import { AlertTriangle as T, BellRing as
|
|
11
|
-
import { useI18n as
|
|
12
|
-
import { Fragment as
|
|
13
|
-
import { Badge as
|
|
10
|
+
import { AlertTriangle as T, BellRing as E, CheckCircle2 as D, Info as ie, Lightbulb as O, MoreHorizontal as ae, Plus as oe, ShieldAlert as se, XCircle as k } from "lucide-react";
|
|
11
|
+
import { useI18n as ce } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
12
|
+
import { Fragment as le, jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
13
|
+
import { Badge as M, Button as N, Card as ue, CardContent as de, CardDescription as fe, CardHeader as pe, CardTitle as me, DropdownMenu as P, DropdownMenuContent as F, DropdownMenuItem as I, DropdownMenuSeparator as L, DropdownMenuTrigger as he, Input as R, Label as z, ResponsiveDialog as B, ResponsiveDialogContent as V, ResponsiveDialogDescription as ge, ResponsiveDialogFooter as _e, ResponsiveDialogHeader as H, ResponsiveDialogTitle as U, Select as W, SelectContent as G, SelectItem as K, SelectTrigger as q, SelectValue as J, Textarea as Y } from "@burdenoff/fe-libs/ui";
|
|
14
14
|
//#region src/brainyrich/pages/AiAssistantPage.tsx
|
|
15
15
|
var ve = [
|
|
16
16
|
"REBALANCE_DUE",
|
|
@@ -38,7 +38,7 @@ function Q(e) {
|
|
|
38
38
|
function be(e) {
|
|
39
39
|
switch (e) {
|
|
40
40
|
case "CRITICAL": return {
|
|
41
|
-
icon:
|
|
41
|
+
icon: se,
|
|
42
42
|
tone: "text-status-error-text"
|
|
43
43
|
};
|
|
44
44
|
case "HIGH": return {
|
|
@@ -46,15 +46,15 @@ function be(e) {
|
|
|
46
46
|
tone: "text-status-error-text"
|
|
47
47
|
};
|
|
48
48
|
case "MEDIUM": return {
|
|
49
|
-
icon:
|
|
49
|
+
icon: E,
|
|
50
50
|
tone: "text-status-warning-text"
|
|
51
51
|
};
|
|
52
52
|
case "LOW": return {
|
|
53
|
-
icon:
|
|
53
|
+
icon: O,
|
|
54
54
|
tone: "text-status-warning-text"
|
|
55
55
|
};
|
|
56
56
|
default: return {
|
|
57
|
-
icon:
|
|
57
|
+
icon: ie,
|
|
58
58
|
tone: "text-text-secondary"
|
|
59
59
|
};
|
|
60
60
|
}
|
|
@@ -85,147 +85,147 @@ function Ce() {
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
function $() {
|
|
88
|
-
let { t: ee } =
|
|
88
|
+
let { t: ee } = ce(), m = (t, n, r) => e(ee, t, n, r), [g, y] = w(Z), [b, x] = w(Z), [S, T] = w(Z), { items: O, hasMore: ae, loadMore: k, isLoading: M, isFetchingNextPage: fe, isError: pe, refetch: me } = s({
|
|
89
89
|
...g === Z ? {} : { severity: g },
|
|
90
90
|
...b === Z ? {} : { status: b }
|
|
91
|
-
}),
|
|
91
|
+
}), P = t(), F = c(), I = a(), L = o(), he = C(() => {
|
|
92
92
|
let e = /* @__PURE__ */ new Map();
|
|
93
|
-
for (let t of N.data) e.set(t.id, t.name);
|
|
94
93
|
for (let t of P.data) e.set(t.id, t.name);
|
|
95
94
|
for (let t of F.data) e.set(t.id, t.name);
|
|
96
95
|
for (let t of I.data) e.set(t.id, t.name);
|
|
96
|
+
for (let t of L.data) e.set(t.id, t.name);
|
|
97
97
|
return e;
|
|
98
98
|
}, [
|
|
99
|
-
N.data,
|
|
100
99
|
P.data,
|
|
101
100
|
F.data,
|
|
102
|
-
I.data
|
|
103
|
-
|
|
101
|
+
I.data,
|
|
102
|
+
L.data
|
|
103
|
+
]), R = n(), B = i(), V = l(), ge = r(), [_e, H] = w(!1), [U, Y] = w(Ce), be = (e, t) => Y((n) => ({
|
|
104
104
|
...n,
|
|
105
105
|
[e]: t
|
|
106
|
-
})), Se = C(() => S === Z ?
|
|
107
|
-
open:
|
|
108
|
-
critical:
|
|
109
|
-
urgent:
|
|
110
|
-
resolved:
|
|
111
|
-
}), [
|
|
106
|
+
})), Se = C(() => S === Z ? O : O.filter((e) => e.type === S), [O, S]), $ = C(() => ({
|
|
107
|
+
open: O.filter((e) => e.status === "OPEN").length,
|
|
108
|
+
critical: O.filter((e) => e.severity === "CRITICAL").length,
|
|
109
|
+
urgent: O.filter((e) => e.severity === "HIGH" || e.severity === "CRITICAL").length,
|
|
110
|
+
resolved: O.filter((e) => e.status === "RESOLVED").length
|
|
111
|
+
}), [O]), De = C(() => X.map((e) => ({
|
|
112
112
|
label: Q(e),
|
|
113
|
-
value:
|
|
113
|
+
value: O.filter((t) => t.severity === e).length,
|
|
114
114
|
tone: xe(e)
|
|
115
|
-
})).filter((e) => e.value > 0), [
|
|
116
|
-
if (!
|
|
115
|
+
})).filter((e) => e.value > 0), [O]), Oe = C(() => {
|
|
116
|
+
if (!U.metrics.trim()) return !0;
|
|
117
117
|
try {
|
|
118
|
-
return JSON.parse(
|
|
118
|
+
return JSON.parse(U.metrics), !0;
|
|
119
119
|
} catch {
|
|
120
120
|
return !1;
|
|
121
121
|
}
|
|
122
|
-
}, [
|
|
123
|
-
Y(Ce()),
|
|
122
|
+
}, [U.metrics]), ke = U.title.trim().length > 0 && _(U.subject) !== null && Oe, Ae = () => {
|
|
123
|
+
Y(Ce()), H(!0);
|
|
124
124
|
}, je = () => {
|
|
125
125
|
if (!ke) return;
|
|
126
|
-
let e = _(
|
|
126
|
+
let e = _(U.subject);
|
|
127
127
|
if (!e) return;
|
|
128
128
|
let t;
|
|
129
|
-
if (
|
|
130
|
-
t = JSON.parse(
|
|
129
|
+
if (U.metrics.trim()) try {
|
|
130
|
+
t = JSON.parse(U.metrics);
|
|
131
131
|
} catch {
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
134
|
let n = {
|
|
135
|
-
title:
|
|
136
|
-
type:
|
|
137
|
-
severity:
|
|
135
|
+
title: U.title.trim(),
|
|
136
|
+
type: U.type,
|
|
137
|
+
severity: U.severity,
|
|
138
138
|
subjectType: e.subjectType,
|
|
139
139
|
subjectId: e.subjectId,
|
|
140
|
-
detail:
|
|
140
|
+
detail: U.detail.trim() || null,
|
|
141
141
|
...t ? { metrics: t } : {},
|
|
142
|
-
...
|
|
142
|
+
...U.ownerId.trim() ? { ownerId: U.ownerId.trim() } : {}
|
|
143
143
|
};
|
|
144
|
-
|
|
144
|
+
ge.mutate(n, { onSuccess: () => H(!1) });
|
|
145
145
|
}, Me = g !== Z || b !== Z || S !== Z;
|
|
146
|
-
return /* @__PURE__ */
|
|
146
|
+
return /* @__PURE__ */ j(le, { children: [/* @__PURE__ */ A(re, {
|
|
147
147
|
title: m("brainyrich.insights.title", "Insights"),
|
|
148
148
|
description: m("brainyrich.insights.description", "Advisory insights across portfolios, accounts and goals — triage, acknowledge and resolve."),
|
|
149
149
|
badges: [m("brainyrich.insights.badges.advisory", "Advisory")],
|
|
150
150
|
actionLabel: m("brainyrich.insights.actions.create", "New insight"),
|
|
151
151
|
onAction: Ae,
|
|
152
|
-
children:
|
|
152
|
+
children: M ? /* @__PURE__ */ A(ne, { rows: 4 }) : pe ? /* @__PURE__ */ A(te, {
|
|
153
153
|
title: m("brainyrich.insights.error.title", "Could not load insights"),
|
|
154
154
|
description: m("brainyrich.insights.error.description", "We could not reach the insights service. Please try again."),
|
|
155
|
-
onRetry: () =>
|
|
156
|
-
}) : /* @__PURE__ */
|
|
157
|
-
/* @__PURE__ */
|
|
155
|
+
onRetry: () => me()
|
|
156
|
+
}) : /* @__PURE__ */ j(le, { children: [
|
|
157
|
+
/* @__PURE__ */ j(f, {
|
|
158
158
|
className: "grid gap-4 lg:grid-cols-[minmax(0,1.55fr)_minmax(0,1fr)]",
|
|
159
|
-
children: [/* @__PURE__ */
|
|
159
|
+
children: [/* @__PURE__ */ j("div", {
|
|
160
160
|
className: "grid grid-cols-2 gap-4 sm:grid-cols-4 lg:grid-cols-2 xl:grid-cols-4",
|
|
161
161
|
children: [
|
|
162
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ A(h, {
|
|
163
163
|
label: m("brainyrich.insights.metrics.total", "Signals"),
|
|
164
|
-
value: String(
|
|
164
|
+
value: String(O.length),
|
|
165
165
|
glow: !0,
|
|
166
|
-
icon: /* @__PURE__ */
|
|
166
|
+
icon: /* @__PURE__ */ A(E, {
|
|
167
167
|
className: "size-4",
|
|
168
168
|
"aria-hidden": "true"
|
|
169
169
|
})
|
|
170
170
|
}),
|
|
171
|
-
/* @__PURE__ */
|
|
171
|
+
/* @__PURE__ */ A(h, {
|
|
172
172
|
label: m("brainyrich.insights.metrics.open", "Open"),
|
|
173
173
|
value: String($.open),
|
|
174
|
-
icon: /* @__PURE__ */
|
|
174
|
+
icon: /* @__PURE__ */ A(ie, {
|
|
175
175
|
className: "size-4",
|
|
176
176
|
"aria-hidden": "true"
|
|
177
177
|
})
|
|
178
178
|
}),
|
|
179
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ A(h, {
|
|
180
180
|
label: m("brainyrich.insights.metrics.critical", "Critical"),
|
|
181
181
|
value: String($.critical),
|
|
182
182
|
deltaTone: $.critical > 0 ? "negative" : "positive",
|
|
183
|
-
icon: /* @__PURE__ */
|
|
183
|
+
icon: /* @__PURE__ */ A(se, {
|
|
184
184
|
className: "size-4",
|
|
185
185
|
"aria-hidden": "true"
|
|
186
186
|
})
|
|
187
187
|
}),
|
|
188
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ A(h, {
|
|
189
189
|
label: m("brainyrich.insights.metrics.resolved", "Resolved"),
|
|
190
190
|
value: String($.resolved),
|
|
191
191
|
deltaTone: "positive",
|
|
192
|
-
icon: /* @__PURE__ */
|
|
192
|
+
icon: /* @__PURE__ */ A(D, {
|
|
193
193
|
className: "size-4",
|
|
194
194
|
"aria-hidden": "true"
|
|
195
195
|
})
|
|
196
196
|
})
|
|
197
197
|
]
|
|
198
|
-
}), /* @__PURE__ */
|
|
198
|
+
}), /* @__PURE__ */ j(p, {
|
|
199
199
|
className: "flex min-w-0 flex-col p-5",
|
|
200
200
|
children: [
|
|
201
|
-
/* @__PURE__ */
|
|
201
|
+
/* @__PURE__ */ A("p", {
|
|
202
202
|
className: "text-sm font-medium text-text-primary",
|
|
203
203
|
children: m("brainyrich.insights.hero.severityMix", "Severity mix")
|
|
204
204
|
}),
|
|
205
|
-
/* @__PURE__ */
|
|
205
|
+
/* @__PURE__ */ A("p", {
|
|
206
206
|
className: "text-xs text-text-secondary",
|
|
207
207
|
children: m("brainyrich.insights.hero.severityMixHint", "Distribution across the loaded inbox")
|
|
208
208
|
}),
|
|
209
|
-
De.length > 0 ? /* @__PURE__ */
|
|
209
|
+
De.length > 0 ? /* @__PURE__ */ A("div", {
|
|
210
210
|
className: "mt-2 min-w-0",
|
|
211
|
-
children: /* @__PURE__ */
|
|
211
|
+
children: /* @__PURE__ */ A(d, {
|
|
212
212
|
data: De,
|
|
213
213
|
centerLabel: m("brainyrich.insights.hero.center", "Signals"),
|
|
214
|
-
centerValue: String(
|
|
214
|
+
centerValue: String(O.length),
|
|
215
215
|
height: 200
|
|
216
216
|
})
|
|
217
|
-
}) : /* @__PURE__ */
|
|
217
|
+
}) : /* @__PURE__ */ A("p", {
|
|
218
218
|
className: "mt-6 text-sm text-text-secondary",
|
|
219
219
|
children: m("brainyrich.insights.hero.noData", "No signals to chart yet.")
|
|
220
220
|
})
|
|
221
221
|
]
|
|
222
222
|
})]
|
|
223
223
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ j(f, {
|
|
225
225
|
index: 1,
|
|
226
226
|
className: "flex flex-wrap gap-2",
|
|
227
227
|
children: [
|
|
228
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ A(we, {
|
|
229
229
|
label: m("brainyrich.insights.metrics.open", "Open"),
|
|
230
230
|
count: $.open,
|
|
231
231
|
tone: "info",
|
|
@@ -234,7 +234,7 @@ function $() {
|
|
|
234
234
|
x(b === "OPEN" ? Z : "OPEN"), y(Z);
|
|
235
235
|
}
|
|
236
236
|
}),
|
|
237
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ A(we, {
|
|
238
238
|
label: m("brainyrich.insights.metrics.critical", "Critical"),
|
|
239
239
|
count: $.critical,
|
|
240
240
|
tone: "error",
|
|
@@ -243,7 +243,7 @@ function $() {
|
|
|
243
243
|
y(g === "CRITICAL" ? Z : "CRITICAL"), x(Z);
|
|
244
244
|
}
|
|
245
245
|
}),
|
|
246
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ A(we, {
|
|
247
247
|
label: m("brainyrich.insights.metrics.resolved", "Resolved"),
|
|
248
248
|
count: $.resolved,
|
|
249
249
|
tone: "success",
|
|
@@ -254,64 +254,64 @@ function $() {
|
|
|
254
254
|
})
|
|
255
255
|
]
|
|
256
256
|
}),
|
|
257
|
-
/* @__PURE__ */
|
|
257
|
+
/* @__PURE__ */ A(ue, { children: /* @__PURE__ */ j(de, {
|
|
258
258
|
className: "flex flex-col gap-3 p-4 sm:flex-row sm:items-end",
|
|
259
259
|
children: [
|
|
260
|
-
/* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ j("div", {
|
|
261
261
|
className: "w-full space-y-1.5 sm:w-48",
|
|
262
|
-
children: [/* @__PURE__ */
|
|
262
|
+
children: [/* @__PURE__ */ A(z, {
|
|
263
263
|
htmlFor: "insight-filter-severity",
|
|
264
264
|
children: m("brainyrich.insights.filters.severity", "Severity")
|
|
265
|
-
}), /* @__PURE__ */
|
|
265
|
+
}), /* @__PURE__ */ j(W, {
|
|
266
266
|
value: g,
|
|
267
267
|
onValueChange: y,
|
|
268
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ A(q, {
|
|
269
269
|
id: "insight-filter-severity",
|
|
270
|
-
children: /* @__PURE__ */
|
|
271
|
-
}), /* @__PURE__ */
|
|
270
|
+
children: /* @__PURE__ */ A(J, {})
|
|
271
|
+
}), /* @__PURE__ */ j(G, { children: [/* @__PURE__ */ A(K, {
|
|
272
272
|
value: Z,
|
|
273
273
|
children: m("brainyrich.insights.filters.all", "All")
|
|
274
|
-
}), X.map((e) => /* @__PURE__ */
|
|
274
|
+
}), X.map((e) => /* @__PURE__ */ A(K, {
|
|
275
275
|
value: e,
|
|
276
276
|
children: Q(e)
|
|
277
277
|
}, e))] })]
|
|
278
278
|
})]
|
|
279
279
|
}),
|
|
280
|
-
/* @__PURE__ */
|
|
280
|
+
/* @__PURE__ */ j("div", {
|
|
281
281
|
className: "w-full space-y-1.5 sm:w-48",
|
|
282
|
-
children: [/* @__PURE__ */
|
|
282
|
+
children: [/* @__PURE__ */ A(z, {
|
|
283
283
|
htmlFor: "insight-filter-status",
|
|
284
284
|
children: m("brainyrich.insights.filters.status", "Status")
|
|
285
|
-
}), /* @__PURE__ */
|
|
285
|
+
}), /* @__PURE__ */ j(W, {
|
|
286
286
|
value: b,
|
|
287
287
|
onValueChange: x,
|
|
288
|
-
children: [/* @__PURE__ */
|
|
288
|
+
children: [/* @__PURE__ */ A(q, {
|
|
289
289
|
id: "insight-filter-status",
|
|
290
|
-
children: /* @__PURE__ */
|
|
291
|
-
}), /* @__PURE__ */
|
|
290
|
+
children: /* @__PURE__ */ A(J, {})
|
|
291
|
+
}), /* @__PURE__ */ j(G, { children: [/* @__PURE__ */ A(K, {
|
|
292
292
|
value: Z,
|
|
293
293
|
children: m("brainyrich.insights.filters.all", "All")
|
|
294
|
-
}), ye.map((e) => /* @__PURE__ */
|
|
294
|
+
}), ye.map((e) => /* @__PURE__ */ A(K, {
|
|
295
295
|
value: e,
|
|
296
296
|
children: Q(e)
|
|
297
297
|
}, e))] })]
|
|
298
298
|
})]
|
|
299
299
|
}),
|
|
300
|
-
/* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ j("div", {
|
|
301
301
|
className: "w-full space-y-1.5 sm:w-56",
|
|
302
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ A(z, {
|
|
303
303
|
htmlFor: "insight-filter-type",
|
|
304
304
|
children: m("brainyrich.insights.filters.type", "Type")
|
|
305
|
-
}), /* @__PURE__ */
|
|
305
|
+
}), /* @__PURE__ */ j(W, {
|
|
306
306
|
value: S,
|
|
307
307
|
onValueChange: T,
|
|
308
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ A(q, {
|
|
309
309
|
id: "insight-filter-type",
|
|
310
|
-
children: /* @__PURE__ */
|
|
311
|
-
}), /* @__PURE__ */
|
|
310
|
+
children: /* @__PURE__ */ A(J, {})
|
|
311
|
+
}), /* @__PURE__ */ j(G, { children: [/* @__PURE__ */ A(K, {
|
|
312
312
|
value: Z,
|
|
313
313
|
children: m("brainyrich.insights.filters.all", "All")
|
|
314
|
-
}), ve.map((e) => /* @__PURE__ */
|
|
314
|
+
}), ve.map((e) => /* @__PURE__ */ A(K, {
|
|
315
315
|
value: e,
|
|
316
316
|
children: Q(e)
|
|
317
317
|
}, e))] })]
|
|
@@ -319,75 +319,75 @@ function $() {
|
|
|
319
319
|
})
|
|
320
320
|
]
|
|
321
321
|
}) }),
|
|
322
|
-
Se.length === 0 ? /* @__PURE__ */
|
|
323
|
-
icon: /* @__PURE__ */
|
|
322
|
+
Se.length === 0 ? /* @__PURE__ */ A(v, {
|
|
323
|
+
icon: /* @__PURE__ */ A(E, {
|
|
324
324
|
className: "size-6",
|
|
325
325
|
"aria-hidden": "true"
|
|
326
326
|
}),
|
|
327
327
|
title: Me ? m("brainyrich.insights.empty.filteredTitle", "No matching insights") : m("brainyrich.insights.empty.title", "No advisory insights yet"),
|
|
328
328
|
description: Me ? m("brainyrich.insights.empty.filteredDescription", "No insights match the selected filters. Adjust or clear them to see more.") : m("brainyrich.insights.empty.description", "Advisory insights flag rebalancing, drift, concentration and other opportunities. Create one to get started."),
|
|
329
|
-
action: Me ? /* @__PURE__ */
|
|
329
|
+
action: Me ? /* @__PURE__ */ A(N, {
|
|
330
330
|
variant: "outline",
|
|
331
331
|
size: "sm",
|
|
332
332
|
onClick: () => {
|
|
333
333
|
y(Z), x(Z), T(Z);
|
|
334
334
|
},
|
|
335
335
|
children: m("brainyrich.insights.actions.clearFilters", "Clear filters")
|
|
336
|
-
}) : /* @__PURE__ */
|
|
336
|
+
}) : /* @__PURE__ */ j(N, {
|
|
337
337
|
size: "sm",
|
|
338
338
|
onClick: Ae,
|
|
339
|
-
children: [/* @__PURE__ */
|
|
339
|
+
children: [/* @__PURE__ */ A(oe, {
|
|
340
340
|
className: "size-4",
|
|
341
341
|
"aria-hidden": "true"
|
|
342
342
|
}), m("brainyrich.insights.actions.create", "New insight")]
|
|
343
343
|
})
|
|
344
|
-
}) : /* @__PURE__ */
|
|
344
|
+
}) : /* @__PURE__ */ A("div", {
|
|
345
345
|
className: "space-y-3",
|
|
346
|
-
children: Se.map((e, t) => /* @__PURE__ */
|
|
346
|
+
children: Se.map((e, t) => /* @__PURE__ */ A(Te, {
|
|
347
347
|
index: t,
|
|
348
348
|
insight: e,
|
|
349
|
-
subjectName:
|
|
349
|
+
subjectName: he.get(e.subjectId),
|
|
350
350
|
translate: m,
|
|
351
|
-
onAcknowledge: () =>
|
|
352
|
-
onDismiss: () =>
|
|
353
|
-
onResolve: () =>
|
|
354
|
-
acknowledgePending:
|
|
355
|
-
dismissPending:
|
|
356
|
-
resolvePending:
|
|
351
|
+
onAcknowledge: () => R.mutate(e.id),
|
|
352
|
+
onDismiss: () => B.mutate(e.id),
|
|
353
|
+
onResolve: () => V.mutate(e.id),
|
|
354
|
+
acknowledgePending: R.isPending,
|
|
355
|
+
dismissPending: B.isPending,
|
|
356
|
+
resolvePending: V.isPending
|
|
357
357
|
}, e.id))
|
|
358
358
|
}),
|
|
359
|
-
/* @__PURE__ */
|
|
360
|
-
hasMore:
|
|
361
|
-
onClick:
|
|
362
|
-
loading:
|
|
359
|
+
/* @__PURE__ */ A(u, {
|
|
360
|
+
hasMore: ae,
|
|
361
|
+
onClick: k,
|
|
362
|
+
loading: fe,
|
|
363
363
|
label: m("brainyrich.insights.actions.loadMore", "Load more insights")
|
|
364
364
|
})
|
|
365
365
|
] })
|
|
366
|
-
}), /* @__PURE__ */
|
|
366
|
+
}), /* @__PURE__ */ A(Ee, {
|
|
367
367
|
open: _e,
|
|
368
|
-
form:
|
|
368
|
+
form: U,
|
|
369
369
|
setField: be,
|
|
370
370
|
metricsValid: Oe,
|
|
371
371
|
valid: ke,
|
|
372
|
-
pending:
|
|
372
|
+
pending: ge.isPending,
|
|
373
373
|
onSubmit: je,
|
|
374
|
-
onOpenChange: (e) =>
|
|
374
|
+
onOpenChange: (e) => H(e),
|
|
375
375
|
translate: m
|
|
376
376
|
})] });
|
|
377
377
|
}
|
|
378
378
|
function we({ label: e, count: t, tone: n, active: r, onClick: i }) {
|
|
379
|
-
return /* @__PURE__ */
|
|
379
|
+
return /* @__PURE__ */ j("button", {
|
|
380
380
|
type: "button",
|
|
381
381
|
onClick: i,
|
|
382
382
|
"aria-pressed": r,
|
|
383
383
|
className: `group inline-flex items-center gap-2 rounded-full border px-3.5 py-1.5 text-sm font-medium transition-colors motion-safe:transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-action-primary-border)] ${r ? "border-[var(--color-action-primary-border)] bg-bg-elevated text-text-primary shadow-[var(--shadow-elevation-1)]" : "border-border-subtle bg-bg-surface text-text-secondary hover:border-[var(--color-action-primary-border)] hover:text-text-primary"}`,
|
|
384
384
|
children: [
|
|
385
|
-
/* @__PURE__ */
|
|
385
|
+
/* @__PURE__ */ A("span", {
|
|
386
386
|
className: `size-2 rounded-full ${n === "error" ? "bg-status-error-text" : n === "success" ? "bg-status-success-text" : "bg-status-info-text"}`,
|
|
387
387
|
"aria-hidden": "true"
|
|
388
388
|
}),
|
|
389
389
|
e,
|
|
390
|
-
/* @__PURE__ */
|
|
390
|
+
/* @__PURE__ */ A("span", {
|
|
391
391
|
className: "rounded-full bg-bg-sunken px-2 py-0.5 text-xs tabular-nums text-text-primary",
|
|
392
392
|
children: t
|
|
393
393
|
})
|
|
@@ -396,91 +396,91 @@ function we({ label: e, count: t, tone: n, active: r, onClick: i }) {
|
|
|
396
396
|
}
|
|
397
397
|
function Te({ index: e, insight: t, subjectName: n, translate: r, onAcknowledge: i, onDismiss: a, onResolve: o, acknowledgePending: s, dismissPending: c, resolvePending: l }) {
|
|
398
398
|
let u = be(t.severity), d = u.icon, p = t.status === "RESOLVED" || t.status === "DISMISSED", h = t.status === "DISMISSED", [g, _] = w(!1), v = x(t.metrics);
|
|
399
|
-
return /* @__PURE__ */
|
|
399
|
+
return /* @__PURE__ */ A(f, {
|
|
400
400
|
as: "div",
|
|
401
401
|
index: e,
|
|
402
|
-
children: /* @__PURE__ */
|
|
402
|
+
children: /* @__PURE__ */ j(ue, {
|
|
403
403
|
className: "overflow-hidden transition-shadow motion-safe:hover:shadow-[var(--shadow-elevation-2)]",
|
|
404
404
|
children: [
|
|
405
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ A(pe, {
|
|
406
406
|
className: "pb-3",
|
|
407
|
-
children: /* @__PURE__ */
|
|
407
|
+
children: /* @__PURE__ */ j("div", {
|
|
408
408
|
className: "flex items-start justify-between gap-3",
|
|
409
|
-
children: [/* @__PURE__ */
|
|
409
|
+
children: [/* @__PURE__ */ j("div", {
|
|
410
410
|
className: "flex min-w-0 items-start gap-3",
|
|
411
|
-
children: [/* @__PURE__ */
|
|
411
|
+
children: [/* @__PURE__ */ A("span", {
|
|
412
412
|
className: `mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-full bg-bg-sunken ${u.tone}`,
|
|
413
|
-
children: /* @__PURE__ */
|
|
413
|
+
children: /* @__PURE__ */ A(d, {
|
|
414
414
|
className: "size-5",
|
|
415
415
|
"aria-hidden": "true"
|
|
416
416
|
})
|
|
417
|
-
}), /* @__PURE__ */
|
|
417
|
+
}), /* @__PURE__ */ j("div", {
|
|
418
418
|
className: "min-w-0",
|
|
419
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ A(me, {
|
|
420
420
|
className: "text-base",
|
|
421
421
|
children: t.title
|
|
422
|
-
}), /* @__PURE__ */
|
|
422
|
+
}), /* @__PURE__ */ j(fe, {
|
|
423
423
|
className: "mt-1 flex flex-wrap items-center gap-2",
|
|
424
424
|
children: [
|
|
425
|
-
/* @__PURE__ */
|
|
425
|
+
/* @__PURE__ */ A(M, {
|
|
426
426
|
variant: "outline",
|
|
427
427
|
children: Q(t.type)
|
|
428
428
|
}),
|
|
429
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ A(M, {
|
|
430
430
|
variant: S(t.severity),
|
|
431
|
-
children: /* @__PURE__ */
|
|
431
|
+
children: /* @__PURE__ */ j("span", {
|
|
432
432
|
className: `inline-flex items-center gap-1 ${u.tone}`,
|
|
433
|
-
children: [/* @__PURE__ */
|
|
433
|
+
children: [/* @__PURE__ */ A(d, {
|
|
434
434
|
className: "size-3",
|
|
435
435
|
"aria-hidden": "true"
|
|
436
436
|
}), Q(t.severity)]
|
|
437
437
|
})
|
|
438
438
|
}),
|
|
439
|
-
/* @__PURE__ */
|
|
439
|
+
/* @__PURE__ */ A(M, {
|
|
440
440
|
variant: S(t.status),
|
|
441
441
|
children: Q(t.status)
|
|
442
442
|
})
|
|
443
443
|
]
|
|
444
444
|
})]
|
|
445
445
|
})]
|
|
446
|
-
}), /* @__PURE__ */
|
|
446
|
+
}), /* @__PURE__ */ j(P, { children: [/* @__PURE__ */ A(he, {
|
|
447
447
|
asChild: !0,
|
|
448
|
-
children: /* @__PURE__ */
|
|
448
|
+
children: /* @__PURE__ */ A(N, {
|
|
449
449
|
variant: "ghost",
|
|
450
450
|
size: "icon",
|
|
451
451
|
"aria-label": r("brainyrich.insights.actions.menu", "Insight actions"),
|
|
452
|
-
children: /* @__PURE__ */
|
|
452
|
+
children: /* @__PURE__ */ A(ae, {
|
|
453
453
|
className: "size-4",
|
|
454
454
|
"aria-hidden": "true"
|
|
455
455
|
})
|
|
456
456
|
})
|
|
457
|
-
}), /* @__PURE__ */
|
|
457
|
+
}), /* @__PURE__ */ j(F, {
|
|
458
458
|
align: "end",
|
|
459
459
|
children: [
|
|
460
|
-
/* @__PURE__ */
|
|
460
|
+
/* @__PURE__ */ j(I, {
|
|
461
461
|
disabled: s || t.status === "ACKNOWLEDGED" || p,
|
|
462
462
|
onSelect: i,
|
|
463
|
-
children: [/* @__PURE__ */
|
|
463
|
+
children: [/* @__PURE__ */ A(D, {
|
|
464
464
|
className: "size-4",
|
|
465
465
|
"aria-hidden": "true"
|
|
466
466
|
}), r("brainyrich.insights.actions.acknowledge", "Acknowledge")]
|
|
467
467
|
}),
|
|
468
|
-
/* @__PURE__ */
|
|
468
|
+
/* @__PURE__ */ j(I, {
|
|
469
469
|
disabled: l || t.status === "RESOLVED",
|
|
470
470
|
onSelect: o,
|
|
471
|
-
children: [/* @__PURE__ */
|
|
471
|
+
children: [/* @__PURE__ */ A(D, {
|
|
472
472
|
className: "size-4",
|
|
473
473
|
"aria-hidden": "true"
|
|
474
474
|
}), r("brainyrich.insights.actions.resolve", "Resolve")]
|
|
475
475
|
}),
|
|
476
|
-
/* @__PURE__ */
|
|
477
|
-
/* @__PURE__ */
|
|
476
|
+
/* @__PURE__ */ A(L, {}),
|
|
477
|
+
/* @__PURE__ */ j(I, {
|
|
478
478
|
className: "text-status-error-text focus:text-status-error-text",
|
|
479
479
|
disabled: c || t.status === "DISMISSED",
|
|
480
480
|
onSelect: (e) => {
|
|
481
481
|
e.preventDefault(), _(!0);
|
|
482
482
|
},
|
|
483
|
-
children: [/* @__PURE__ */ k
|
|
483
|
+
children: [/* @__PURE__ */ A(k, {
|
|
484
484
|
className: "size-4",
|
|
485
485
|
"aria-hidden": "true"
|
|
486
486
|
}), r("brainyrich.insights.actions.dismiss", "Dismiss")]
|
|
@@ -489,90 +489,90 @@ function Te({ index: e, insight: t, subjectName: n, translate: r, onAcknowledge:
|
|
|
489
489
|
})] })]
|
|
490
490
|
})
|
|
491
491
|
}),
|
|
492
|
-
/* @__PURE__ */
|
|
492
|
+
/* @__PURE__ */ j(de, {
|
|
493
493
|
className: "space-y-3",
|
|
494
494
|
children: [
|
|
495
|
-
t.detail ? /* @__PURE__ */
|
|
495
|
+
t.detail ? /* @__PURE__ */ A("p", {
|
|
496
496
|
className: "text-sm text-text-secondary",
|
|
497
497
|
children: t.detail
|
|
498
498
|
}) : null,
|
|
499
|
-
v ? /* @__PURE__ */
|
|
499
|
+
v ? /* @__PURE__ */ j("div", {
|
|
500
500
|
className: "space-y-2 rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
501
501
|
children: [
|
|
502
|
-
/* @__PURE__ */
|
|
502
|
+
/* @__PURE__ */ A("p", {
|
|
503
503
|
className: "text-[11px] font-medium uppercase tracking-wide text-text-secondary",
|
|
504
504
|
children: r("brainyrich.insights.card.rationale", "Rationale")
|
|
505
505
|
}),
|
|
506
|
-
v.formula ? /* @__PURE__ */
|
|
506
|
+
v.formula ? /* @__PURE__ */ A("p", {
|
|
507
507
|
className: "break-words text-xs text-text-secondary",
|
|
508
508
|
children: v.formula
|
|
509
509
|
}) : null,
|
|
510
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ A(y, { entries: v.entries })
|
|
511
511
|
]
|
|
512
512
|
}) : null,
|
|
513
|
-
/* @__PURE__ */
|
|
513
|
+
/* @__PURE__ */ j("dl", {
|
|
514
514
|
className: "grid grid-cols-2 gap-3 rounded-lg bg-bg-sunken p-3 text-sm sm:grid-cols-3",
|
|
515
515
|
children: [
|
|
516
|
-
/* @__PURE__ */
|
|
516
|
+
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", {
|
|
517
517
|
className: "text-xs text-text-secondary",
|
|
518
518
|
children: r("brainyrich.insights.card.subjectType", "Subject")
|
|
519
|
-
}), /* @__PURE__ */
|
|
519
|
+
}), /* @__PURE__ */ A("dd", {
|
|
520
520
|
className: "font-medium text-text-primary",
|
|
521
521
|
children: Q(t.subjectType)
|
|
522
522
|
})] }),
|
|
523
|
-
/* @__PURE__ */
|
|
523
|
+
/* @__PURE__ */ j("div", {
|
|
524
524
|
className: "min-w-0",
|
|
525
|
-
children: [/* @__PURE__ */
|
|
525
|
+
children: [/* @__PURE__ */ A("dt", {
|
|
526
526
|
className: "text-xs text-text-secondary",
|
|
527
527
|
children: r("brainyrich.insights.card.subject", "Reference")
|
|
528
|
-
}), /* @__PURE__ */
|
|
528
|
+
}), /* @__PURE__ */ A("dd", {
|
|
529
529
|
className: "truncate font-medium text-text-primary",
|
|
530
530
|
title: n ? `${n} (${t.subjectId})` : t.subjectId,
|
|
531
531
|
children: n ?? t.subjectId
|
|
532
532
|
})]
|
|
533
533
|
}),
|
|
534
|
-
/* @__PURE__ */
|
|
534
|
+
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", {
|
|
535
535
|
className: "text-xs text-text-secondary",
|
|
536
536
|
children: r("brainyrich.insights.card.created", "Created")
|
|
537
|
-
}), /* @__PURE__ */
|
|
537
|
+
}), /* @__PURE__ */ A("dd", {
|
|
538
538
|
className: "font-medium text-text-primary",
|
|
539
539
|
children: b(t.createdAt)
|
|
540
540
|
})] }),
|
|
541
|
-
t.resolvedAt ? /* @__PURE__ */
|
|
541
|
+
t.resolvedAt ? /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", {
|
|
542
542
|
className: "text-xs text-text-secondary",
|
|
543
543
|
children: r("brainyrich.insights.card.resolved", "Resolved")
|
|
544
|
-
}), /* @__PURE__ */
|
|
544
|
+
}), /* @__PURE__ */ A("dd", {
|
|
545
545
|
className: "font-medium text-text-primary",
|
|
546
546
|
children: b(t.resolvedAt)
|
|
547
547
|
})] }) : null
|
|
548
548
|
]
|
|
549
549
|
}),
|
|
550
|
-
h ? /* @__PURE__ */
|
|
550
|
+
h ? /* @__PURE__ */ j("div", {
|
|
551
551
|
className: "flex items-center gap-2 rounded-lg bg-bg-sunken px-3 py-2 text-sm text-text-secondary",
|
|
552
|
-
children: [/* @__PURE__ */ k
|
|
552
|
+
children: [/* @__PURE__ */ A(k, {
|
|
553
553
|
className: "size-4 text-status-error-text",
|
|
554
554
|
"aria-hidden": "true"
|
|
555
555
|
}), r("brainyrich.insights.card.dismissed", "Dismissed from active triage")]
|
|
556
|
-
}) : /* @__PURE__ */
|
|
556
|
+
}) : /* @__PURE__ */ A(m, {
|
|
557
557
|
steps: Se,
|
|
558
558
|
current: Q(t.status)
|
|
559
559
|
}),
|
|
560
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ j("div", {
|
|
561
561
|
className: "flex flex-wrap items-center gap-2",
|
|
562
|
-
children: [/* @__PURE__ */
|
|
562
|
+
children: [/* @__PURE__ */ j(N, {
|
|
563
563
|
variant: "outline",
|
|
564
564
|
size: "sm",
|
|
565
565
|
disabled: s || t.status === "ACKNOWLEDGED" || p,
|
|
566
566
|
onClick: i,
|
|
567
|
-
children: [/* @__PURE__ */
|
|
567
|
+
children: [/* @__PURE__ */ A(D, {
|
|
568
568
|
className: "size-4",
|
|
569
569
|
"aria-hidden": "true"
|
|
570
570
|
}), r("brainyrich.insights.actions.acknowledge", "Acknowledge")]
|
|
571
|
-
}), /* @__PURE__ */
|
|
571
|
+
}), /* @__PURE__ */ j(N, {
|
|
572
572
|
size: "sm",
|
|
573
573
|
disabled: l || t.status === "RESOLVED",
|
|
574
574
|
onClick: o,
|
|
575
|
-
children: [/* @__PURE__ */
|
|
575
|
+
children: [/* @__PURE__ */ A(D, {
|
|
576
576
|
className: "size-4",
|
|
577
577
|
"aria-hidden": "true"
|
|
578
578
|
}), r("brainyrich.insights.actions.resolve", "Resolve")]
|
|
@@ -580,7 +580,7 @@ function Te({ index: e, insight: t, subjectName: n, translate: r, onAcknowledge:
|
|
|
580
580
|
})
|
|
581
581
|
]
|
|
582
582
|
}),
|
|
583
|
-
/* @__PURE__ */
|
|
583
|
+
/* @__PURE__ */ A(ee, {
|
|
584
584
|
open: g,
|
|
585
585
|
onOpenChange: _,
|
|
586
586
|
title: r("brainyrich.insights.dismiss.title", "Dismiss this insight?"),
|
|
@@ -596,23 +596,23 @@ function Te({ index: e, insight: t, subjectName: n, translate: r, onAcknowledge:
|
|
|
596
596
|
});
|
|
597
597
|
}
|
|
598
598
|
function Ee({ open: e, form: t, setField: n, metricsValid: r, valid: i, pending: a, onSubmit: o, onOpenChange: s, translate: c }) {
|
|
599
|
-
return /* @__PURE__ */
|
|
599
|
+
return /* @__PURE__ */ A(B, {
|
|
600
600
|
open: e,
|
|
601
601
|
onOpenChange: s,
|
|
602
|
-
children: /* @__PURE__ */
|
|
602
|
+
children: /* @__PURE__ */ j(V, {
|
|
603
603
|
className: "max-h-[90vh] overflow-y-auto sm:max-w-lg",
|
|
604
|
-
children: [/* @__PURE__ */
|
|
604
|
+
children: [/* @__PURE__ */ j(H, { children: [/* @__PURE__ */ A(U, { children: c("brainyrich.insights.form.createTitle", "New insight") }), /* @__PURE__ */ A(ge, { children: c("brainyrich.insights.form.subtitle", "Flag an advisory insight against a portfolio, account, goal or household.") })] }), /* @__PURE__ */ j("form", {
|
|
605
605
|
className: "space-y-4",
|
|
606
606
|
onSubmit: (e) => {
|
|
607
607
|
e.preventDefault(), o();
|
|
608
608
|
},
|
|
609
609
|
children: [
|
|
610
|
-
/* @__PURE__ */
|
|
610
|
+
/* @__PURE__ */ j("div", {
|
|
611
611
|
className: "space-y-1.5",
|
|
612
|
-
children: [/* @__PURE__ */
|
|
612
|
+
children: [/* @__PURE__ */ A(z, {
|
|
613
613
|
htmlFor: "insight-title",
|
|
614
614
|
children: c("brainyrich.insights.form.title", "Title")
|
|
615
|
-
}), /* @__PURE__ */
|
|
615
|
+
}), /* @__PURE__ */ A(R, {
|
|
616
616
|
id: "insight-title",
|
|
617
617
|
value: t.title,
|
|
618
618
|
onChange: (e) => n("title", e.target.value),
|
|
@@ -620,67 +620,67 @@ function Ee({ open: e, form: t, setField: n, metricsValid: r, valid: i, pending:
|
|
|
620
620
|
required: !0
|
|
621
621
|
})]
|
|
622
622
|
}),
|
|
623
|
-
/* @__PURE__ */
|
|
623
|
+
/* @__PURE__ */ j("div", {
|
|
624
624
|
className: "grid grid-cols-2 gap-3",
|
|
625
|
-
children: [/* @__PURE__ */
|
|
625
|
+
children: [/* @__PURE__ */ j("div", {
|
|
626
626
|
className: "space-y-1.5",
|
|
627
|
-
children: [/* @__PURE__ */
|
|
627
|
+
children: [/* @__PURE__ */ A(z, {
|
|
628
628
|
htmlFor: "insight-type",
|
|
629
629
|
children: c("brainyrich.insights.form.type", "Type")
|
|
630
|
-
}), /* @__PURE__ */
|
|
630
|
+
}), /* @__PURE__ */ j(W, {
|
|
631
631
|
value: t.type,
|
|
632
632
|
onValueChange: (e) => n("type", e),
|
|
633
|
-
children: [/* @__PURE__ */
|
|
633
|
+
children: [/* @__PURE__ */ A(q, {
|
|
634
634
|
id: "insight-type",
|
|
635
|
-
children: /* @__PURE__ */
|
|
636
|
-
}), /* @__PURE__ */
|
|
635
|
+
children: /* @__PURE__ */ A(J, {})
|
|
636
|
+
}), /* @__PURE__ */ A(G, { children: ve.map((e) => /* @__PURE__ */ A(K, {
|
|
637
637
|
value: e,
|
|
638
638
|
children: Q(e)
|
|
639
639
|
}, e)) })]
|
|
640
640
|
})]
|
|
641
|
-
}), /* @__PURE__ */
|
|
641
|
+
}), /* @__PURE__ */ j("div", {
|
|
642
642
|
className: "space-y-1.5",
|
|
643
|
-
children: [/* @__PURE__ */
|
|
643
|
+
children: [/* @__PURE__ */ A(z, {
|
|
644
644
|
htmlFor: "insight-severity",
|
|
645
645
|
children: c("brainyrich.insights.form.severity", "Severity")
|
|
646
|
-
}), /* @__PURE__ */
|
|
646
|
+
}), /* @__PURE__ */ j(W, {
|
|
647
647
|
value: t.severity,
|
|
648
648
|
onValueChange: (e) => n("severity", e),
|
|
649
|
-
children: [/* @__PURE__ */
|
|
649
|
+
children: [/* @__PURE__ */ A(q, {
|
|
650
650
|
id: "insight-severity",
|
|
651
|
-
children: /* @__PURE__ */
|
|
652
|
-
}), /* @__PURE__ */
|
|
651
|
+
children: /* @__PURE__ */ A(J, {})
|
|
652
|
+
}), /* @__PURE__ */ A(G, { children: X.map((e) => /* @__PURE__ */ A(K, {
|
|
653
653
|
value: e,
|
|
654
654
|
children: Q(e)
|
|
655
655
|
}, e)) })]
|
|
656
656
|
})]
|
|
657
657
|
})]
|
|
658
658
|
}),
|
|
659
|
-
/* @__PURE__ */
|
|
659
|
+
/* @__PURE__ */ A(g, {
|
|
660
660
|
id: "insight-subject",
|
|
661
661
|
label: c("brainyrich.insights.form.subject", "Subject"),
|
|
662
662
|
placeholder: c("brainyrich.insights.form.subjectPlaceholder", "Select an account, portfolio, goal or household"),
|
|
663
663
|
value: t.subject,
|
|
664
664
|
onChange: (e) => n("subject", e)
|
|
665
665
|
}),
|
|
666
|
-
/* @__PURE__ */
|
|
666
|
+
/* @__PURE__ */ j("div", {
|
|
667
667
|
className: "space-y-1.5",
|
|
668
|
-
children: [/* @__PURE__ */
|
|
668
|
+
children: [/* @__PURE__ */ A(z, {
|
|
669
669
|
htmlFor: "insight-owner",
|
|
670
670
|
children: c("brainyrich.insights.form.ownerId", "Owner ID (optional)")
|
|
671
|
-
}), /* @__PURE__ */
|
|
671
|
+
}), /* @__PURE__ */ A(R, {
|
|
672
672
|
id: "insight-owner",
|
|
673
673
|
value: t.ownerId,
|
|
674
674
|
onChange: (e) => n("ownerId", e.target.value),
|
|
675
675
|
placeholder: c("brainyrich.insights.form.ownerIdPlaceholder", "Defaults to the current owner")
|
|
676
676
|
})]
|
|
677
677
|
}),
|
|
678
|
-
/* @__PURE__ */
|
|
678
|
+
/* @__PURE__ */ j("div", {
|
|
679
679
|
className: "space-y-1.5",
|
|
680
|
-
children: [/* @__PURE__ */
|
|
680
|
+
children: [/* @__PURE__ */ A(z, {
|
|
681
681
|
htmlFor: "insight-detail",
|
|
682
682
|
children: c("brainyrich.insights.form.detail", "Detail")
|
|
683
|
-
}), /* @__PURE__ */
|
|
683
|
+
}), /* @__PURE__ */ A(Y, {
|
|
684
684
|
id: "insight-detail",
|
|
685
685
|
value: t.detail,
|
|
686
686
|
onChange: (e) => n("detail", e.target.value),
|
|
@@ -688,14 +688,14 @@ function Ee({ open: e, form: t, setField: n, metricsValid: r, valid: i, pending:
|
|
|
688
688
|
placeholder: c("brainyrich.insights.form.detailPlaceholder", "Explain the finding and recommended action.")
|
|
689
689
|
})]
|
|
690
690
|
}),
|
|
691
|
-
/* @__PURE__ */
|
|
691
|
+
/* @__PURE__ */ j("div", {
|
|
692
692
|
className: "space-y-1.5",
|
|
693
693
|
children: [
|
|
694
|
-
/* @__PURE__ */
|
|
694
|
+
/* @__PURE__ */ A(z, {
|
|
695
695
|
htmlFor: "insight-metrics",
|
|
696
696
|
children: c("brainyrich.insights.form.metrics", "Metrics JSON (optional)")
|
|
697
697
|
}),
|
|
698
|
-
/* @__PURE__ */
|
|
698
|
+
/* @__PURE__ */ A(Y, {
|
|
699
699
|
id: "insight-metrics",
|
|
700
700
|
value: t.metrics,
|
|
701
701
|
onChange: (e) => n("metrics", e.target.value),
|
|
@@ -704,22 +704,22 @@ function Ee({ open: e, form: t, setField: n, metricsValid: r, valid: i, pending:
|
|
|
704
704
|
placeholder: "{ \"driftPct\": 8.2 }",
|
|
705
705
|
"aria-invalid": !r
|
|
706
706
|
}),
|
|
707
|
-
r ? null : /* @__PURE__ */
|
|
707
|
+
r ? null : /* @__PURE__ */ j("p", {
|
|
708
708
|
className: "flex items-center gap-1 text-xs text-status-error-text",
|
|
709
|
-
children: [/* @__PURE__ */
|
|
709
|
+
children: [/* @__PURE__ */ A(T, {
|
|
710
710
|
className: "size-3.5",
|
|
711
711
|
"aria-hidden": "true"
|
|
712
712
|
}), c("brainyrich.insights.form.metricsInvalid", "Enter valid JSON or leave blank.")]
|
|
713
713
|
})
|
|
714
714
|
]
|
|
715
715
|
}),
|
|
716
|
-
/* @__PURE__ */
|
|
716
|
+
/* @__PURE__ */ j(_e, { children: [/* @__PURE__ */ A(N, {
|
|
717
717
|
type: "button",
|
|
718
718
|
variant: "outline",
|
|
719
719
|
onClick: () => s(!1),
|
|
720
720
|
disabled: a,
|
|
721
721
|
children: c("brainyrich.insights.form.cancel", "Cancel")
|
|
722
|
-
}), /* @__PURE__ */
|
|
722
|
+
}), /* @__PURE__ */ A(N, {
|
|
723
723
|
type: "submit",
|
|
724
724
|
disabled: !i || a,
|
|
725
725
|
children: a ? c("brainyrich.insights.form.saving", "Saving…") : c("brainyrich.insights.form.create", "Create insight")
|