@burdenoff/microfe-brainyrich 2026.825.1 → 2026.828.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.
Files changed (38) hide show
  1. package/dist/brainyrich/components/reuse/DocumentsPanel.d.ts +4 -0
  2. package/dist/brainyrich/components/reuse/DocumentsPanel.d.ts.map +1 -1
  3. package/dist/brainyrich/components/reuse/DocumentsPanel.js +150 -99
  4. package/dist/brainyrich/components/reuse/DocumentsPanel.js.map +1 -1
  5. package/dist/brainyrich/hooks/useBrainyRichApi.d.ts +179 -1
  6. package/dist/brainyrich/hooks/useBrainyRichApi.d.ts.map +1 -1
  7. package/dist/brainyrich/hooks/useBrainyRichApi.js +101 -83
  8. package/dist/brainyrich/hooks/useBrainyRichApi.js.map +1 -1
  9. package/dist/brainyrich/pages/AccountsPage.d.ts.map +1 -1
  10. package/dist/brainyrich/pages/AccountsPage.js +159 -148
  11. package/dist/brainyrich/pages/AccountsPage.js.map +1 -1
  12. package/dist/brainyrich/pages/AdminFirmPage.d.ts.map +1 -1
  13. package/dist/brainyrich/pages/AdminFirmPage.js +115 -83
  14. package/dist/brainyrich/pages/AdminFirmPage.js.map +1 -1
  15. package/dist/brainyrich/pages/AiAssistantPage.d.ts.map +1 -1
  16. package/dist/brainyrich/pages/AiAssistantPage.js +251 -230
  17. package/dist/brainyrich/pages/AiAssistantPage.js.map +1 -1
  18. package/dist/brainyrich/pages/FirmPage.d.ts.map +1 -1
  19. package/dist/brainyrich/pages/FirmPage.js +148 -116
  20. package/dist/brainyrich/pages/FirmPage.js.map +1 -1
  21. package/dist/brainyrich/pages/PortfoliosPage.d.ts +14 -0
  22. package/dist/brainyrich/pages/PortfoliosPage.d.ts.map +1 -1
  23. package/dist/brainyrich/pages/PortfoliosPage.js +530 -353
  24. package/dist/brainyrich/pages/PortfoliosPage.js.map +1 -1
  25. package/dist/brainyrich/pages/RiskPage.d.ts.map +1 -1
  26. package/dist/brainyrich/pages/RiskPage.js +381 -396
  27. package/dist/brainyrich/pages/RiskPage.js.map +1 -1
  28. package/dist/brainyrich/pages/_shared.d.ts +21 -0
  29. package/dist/brainyrich/pages/_shared.d.ts.map +1 -1
  30. package/dist/brainyrich/pages/_shared.js +66 -31
  31. package/dist/brainyrich/pages/_shared.js.map +1 -1
  32. package/dist/generated/global-operations.d.ts +31 -1
  33. package/dist/generated/global-operations.d.ts.map +1 -1
  34. package/dist/generated/wspace-operations.d.ts +31 -1
  35. package/dist/generated/wspace-operations.d.ts.map +1 -1
  36. package/dist/test/setup.d.ts +1 -0
  37. package/dist/test/setup.d.ts.map +1 -0
  38. package/package.json +11 -2
@@ -4,14 +4,14 @@ import { ConfirmDialog as ue } from "../components/ConfirmDialog.js";
4
4
  import { ActorName as c } from "../components/ActorName.js";
5
5
  import { DonutChart as de, FadeIn as l, GlassCard as fe, LifecycleStepper as pe, StatTile as u } from "../components/viz.js";
6
6
  import "../components/index.js";
7
- import { EmptyState as d, ErrorState as f, LoadingState as p, SectionShell as me, formatDate as m, formatMoney as h, formatPct as g, statusBadgeVariant as _ } from "./_shared.js";
8
- import { CommentThread as he } from "../components/reuse/CommentThread.js";
9
- import { useMemo as v, useState as y } from "react";
10
- import { Activity as ge, AlertTriangle as _e, ArrowRight as ve, Check as ye, Eye as be, Gauge as b, Layers as xe, LineChart as Se, MoreHorizontal as Ce, Plus as we, RefreshCw as Te, Scale as Ee, Scissors as De, Search as Oe, ShieldAlert as x, ShieldCheck as S, Sparkles as ke, TrendingUp as Ae, X as C } from "lucide-react";
11
- import { Fragment as je, jsx as w, jsxs as T } from "react/jsx-runtime";
12
- import { Badge as E, Button as D, Card as O, CardContent as k, CardDescription as A, CardHeader as j, CardTitle as M, Dialog as Me, DialogClose as Ne, DialogContent as Pe, DialogDescription as Fe, DialogFooter as Ie, DialogHeader as Le, DialogTitle as Re, DropdownMenu as ze, DropdownMenuContent as Be, DropdownMenuItem as N, DropdownMenuLabel as Ve, DropdownMenuSeparator as He, DropdownMenuTrigger as Ue, Input as P, Label as F, Select as We, SelectContent as Ge, SelectItem as Ke, SelectTrigger as qe, SelectValue as Je, Table as Ye, TableBody as Xe, TableCell as I, TableHead as L, TableHeader as Ze, TableRow as R, Textarea as Qe } from "@burdenoff/fe-libs/ui";
7
+ import { EmptyState as d, ErrorState as f, LoadingState as p, MetricGrid as me, SectionShell as he, formatDate as m, formatMoney as h, formatPct as g, readEngineMetrics as ge, statusBadgeVariant as _ } from "./_shared.js";
8
+ import { CommentThread as v } from "../components/reuse/CommentThread.js";
9
+ import { useMemo as y, useState as b } from "react";
10
+ import { Activity as _e, AlertTriangle as ve, ArrowRight as ye, Check as be, Eye as xe, Gauge as x, Layers as Se, LineChart as Ce, MoreHorizontal as we, Plus as Te, RefreshCw as Ee, Scale as De, Scissors as Oe, Search as ke, ShieldAlert as S, ShieldCheck as C, Sparkles as Ae, TrendingUp as je, X as w } from "lucide-react";
11
+ import { Fragment as Me, jsx as T, jsxs as E } from "react/jsx-runtime";
12
+ import { Badge as D, Button as O, Card as k, CardContent as A, CardDescription as j, CardHeader as M, CardTitle as N, Dialog as Ne, DialogClose as Pe, DialogContent as Fe, DialogDescription as Ie, DialogFooter as Le, DialogHeader as Re, DialogTitle as ze, DropdownMenu as Be, DropdownMenuContent as Ve, DropdownMenuItem as P, DropdownMenuLabel as He, DropdownMenuSeparator as Ue, DropdownMenuTrigger as We, Input as F, Label as I, Select as Ge, SelectContent as Ke, SelectItem as qe, SelectTrigger as Je, SelectValue as Ye, Table as Xe, TableBody as Ze, TableCell as L, TableHead as R, TableHeader as Qe, TableRow as z, Textarea as $e } from "@burdenoff/fe-libs/ui";
13
13
  //#region src/brainyrich/pages/RiskPage.tsx
14
- var $e = {
14
+ var et = {
15
15
  DRAFT: ["PROPOSED", "CANCELLED"],
16
16
  PROPOSED: [
17
17
  "APPROVED",
@@ -22,49 +22,49 @@ var $e = {
22
22
  REJECTED: [],
23
23
  EXECUTED: [],
24
24
  CANCELLED: []
25
- }, et = new Set([
25
+ }, tt = new Set([
26
26
  "DRIFT",
27
27
  "CONCENTRATION_RISK",
28
28
  "REBALANCE_DUE",
29
29
  "CASH_DRAG",
30
30
  "FEE_ANOMALY"
31
31
  ]);
32
- function z(e) {
32
+ function B(e) {
33
33
  return e.toLowerCase().split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
34
34
  }
35
- var tt = [
35
+ var nt = [
36
36
  "Draft",
37
37
  "Proposed",
38
38
  "Approved",
39
39
  "Executed"
40
- ], nt = {
40
+ ], rt = {
41
41
  DRAFT: "neutral",
42
42
  PROPOSED: "warning",
43
43
  APPROVED: "blue",
44
44
  EXECUTED: "success",
45
45
  REJECTED: "error",
46
46
  CANCELLED: "neutral"
47
- }, rt = [
47
+ }, it = [
48
48
  "PROPOSED",
49
49
  "DRAFT",
50
50
  "APPROVED",
51
51
  "EXECUTED",
52
52
  "REJECTED",
53
53
  "CANCELLED"
54
- ], it = {
54
+ ], at = {
55
55
  CRITICAL: "error",
56
56
  HIGH: "warning",
57
57
  MEDIUM: "info",
58
58
  LOW: "teal",
59
59
  INFO: "neutral"
60
- }, at = [
60
+ }, ot = [
61
61
  "CRITICAL",
62
62
  "HIGH",
63
63
  "MEDIUM",
64
64
  "LOW",
65
65
  "INFO"
66
66
  ];
67
- function B(e) {
67
+ function st(e) {
68
68
  if (!Array.isArray(e) || e.length === 0) return null;
69
69
  let t = [];
70
70
  for (let n of e) {
@@ -101,10 +101,7 @@ function B(e) {
101
101
  }
102
102
  return t;
103
103
  }
104
- function ot(e) {
105
- return e == null ? "—" : typeof e == "number" ? Number.isInteger(e) ? e.toLocaleString() : e.toLocaleString(void 0, { maximumFractionDigits: 2 }) : typeof e == "boolean" ? e ? "Yes" : "No" : typeof e == "string" ? e : JSON.stringify(e);
106
- }
107
- function st(e) {
104
+ function V(e) {
108
105
  let t = (e ?? "").toUpperCase();
109
106
  return t.includes("BUY") || t.includes("ADD") ? "text-status-success-text" : t.includes("SELL") || t.includes("TRIM") || t.includes("REDUCE") ? "text-status-error-text" : "text-text-secondary";
110
107
  }
@@ -128,31 +125,31 @@ function ut(e) {
128
125
  let t = Number(e);
129
126
  return Number.isFinite(t) ? t : void 0;
130
127
  }
131
- function V() {
132
- let { data: c, isLoading: pe, isError: he, refetch: tt } = re(), { data: B } = ne(), [ot, st] = y(void 0), V = ot ?? B[0]?.id ?? "", { data: H, isLoading: ht, isError: gt, refetch: _t } = ee(V || void 0), vt = i(), { data: U, isFetching: yt, refetch: bt } = te(V || void 0), { data: W, isLoading: xt, isError: St, refetch: Ct } = oe(V || void 0), wt = a(), G = se(V || void 0), Tt = n(), K = ae(), [Et, Dt] = y(""), q = o(Et || void 0), [Ot, kt] = y(""), [At, jt] = y("BUY"), [Mt, Nt] = y(""), [Pt, Ft] = y(""), { items: It, hasMore: Lt, loadMore: Rt, isLoading: zt, isFetchingNextPage: Bt, isError: Vt, refetch: Ht } = s(), Ut = t(), J = ce(), Wt = e(), Gt = r(), Kt = ie(), [qt, Jt] = y(!1), [Y, X] = y(lt), [Yt, Xt] = y(null), [Zt, Qt] = y(null), [Z, $t] = y(null), Q = v(() => {
128
+ function H() {
129
+ let { data: c, isLoading: pe, isError: me, refetch: ge } = re(), { data: v } = ne(), [nt, st] = b(void 0), V = nt ?? v[0]?.id ?? "", { data: H, isLoading: ht, isError: gt, refetch: _t } = ee(V || void 0), vt = i(), { data: U, isFetching: yt, refetch: bt } = te(V || void 0), { data: W, isLoading: xt, isError: St, refetch: Ct } = oe(V || void 0), wt = a(), G = se(V || void 0), Tt = n(), K = ae(), [Et, Dt] = b(""), q = o(Et || void 0), [Ot, kt] = b(""), [At, jt] = b("BUY"), [Mt, Nt] = b(""), [Pt, Ft] = b(""), { items: It, hasMore: Lt, loadMore: Rt, isLoading: zt, isFetchingNextPage: Bt, isError: Vt, refetch: Ht } = s(), Ut = t(), J = ce(), Wt = e(), Gt = r(), Kt = ie(), [qt, Jt] = b(!1), [Y, X] = b(lt), [Yt, Xt] = b(null), [Zt, Qt] = b(null), [Z, $t] = b(null), Q = y(() => {
133
130
  let e = /* @__PURE__ */ new Map();
134
- for (let t of B) e.set(t.id, t);
131
+ for (let t of v) e.set(t.id, t);
135
132
  return e;
136
- }, [B]), en = v(() => It.filter((e) => et.has(e.type)), [It]), tn = c.filter((e) => e.status === "DRAFT" || e.status === "PROPOSED" || e.status === "APPROVED"), $ = en.filter((e) => e.status === "OPEN"), nn = c.length > 0 ? c.reduce((e, t) => e + (t.driftPct ?? 0), 0) / c.length : null, rn = v(() => c.filter((e) => {
133
+ }, [v]), en = y(() => It.filter((e) => tt.has(e.type)), [It]), tn = c.filter((e) => e.status === "DRAFT" || e.status === "PROPOSED" || e.status === "APPROVED"), $ = en.filter((e) => e.status === "OPEN"), nn = c.length > 0 ? c.reduce((e, t) => e + (t.driftPct ?? 0), 0) / c.length : null, rn = y(() => c.filter((e) => {
137
134
  let t = Q.get(e.portfolioId)?.driftThresholdPct;
138
135
  return t != null && Number.isFinite(t) && e.driftPct >= t;
139
- }).length, [c, Q]), an = v(() => [...c].sort((e, t) => new Date(e.createdAt).getTime() - new Date(t.createdAt).getTime()).map((e) => e.driftPct).filter((e) => Number.isFinite(e)), [c]), on = v(() => {
136
+ }).length, [c, Q]), an = y(() => [...c].sort((e, t) => new Date(e.createdAt).getTime() - new Date(t.createdAt).getTime()).map((e) => e.driftPct).filter((e) => Number.isFinite(e)), [c]), on = y(() => {
140
137
  let e = /* @__PURE__ */ new Map();
141
138
  for (let t of c) e.set(t.status, (e.get(t.status) ?? 0) + 1);
142
- return rt.filter((t) => (e.get(t) ?? 0) > 0).map((t) => ({
143
- label: z(t),
139
+ return it.filter((t) => (e.get(t) ?? 0) > 0).map((t) => ({
140
+ label: B(t),
144
141
  value: e.get(t) ?? 0,
145
- tone: nt[t]
142
+ tone: rt[t]
146
143
  }));
147
- }, [c]), sn = v(() => {
144
+ }, [c]), sn = y(() => {
148
145
  let e = /* @__PURE__ */ new Map();
149
146
  for (let t of $) e.set(t.severity, (e.get(t.severity) ?? 0) + 1);
150
- return at.filter((t) => (e.get(t) ?? 0) > 0).map((t) => ({
151
- label: z(t),
147
+ return ot.filter((t) => (e.get(t) ?? 0) > 0).map((t) => ({
148
+ label: B(t),
152
149
  value: e.get(t) ?? 0,
153
- tone: it[t]
150
+ tone: at[t]
154
151
  }));
155
- }, [$]), cn = B.length > 0;
152
+ }, [$]), cn = v.length > 0;
156
153
  function ln() {
157
154
  X(lt), Xt(null), Jt(!0);
158
155
  }
@@ -191,59 +188,59 @@ function V() {
191
188
  let t = Q.get(e.portfolioId)?.driftThresholdPct;
192
189
  return t != null && Number.isFinite(t) && e.driftPct >= t;
193
190
  }
194
- return /* @__PURE__ */ T(me, {
191
+ return /* @__PURE__ */ E(he, {
195
192
  title: "Risk & Rebalancing",
196
193
  description: "Review drift-driven rebalance proposals and act on portfolio risk insights.",
197
194
  badges: [`${tn.length} active`, `${$.length} open insight${$.length === 1 ? "" : "s"}`],
198
195
  actionLabel: "New proposal",
199
196
  onAction: ln,
200
197
  children: [
201
- /* @__PURE__ */ T("div", {
198
+ /* @__PURE__ */ E("div", {
202
199
  className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-4",
203
200
  children: [
204
- /* @__PURE__ */ w(l, {
201
+ /* @__PURE__ */ T(l, {
205
202
  index: 0,
206
- children: /* @__PURE__ */ w(u, {
203
+ children: /* @__PURE__ */ T(u, {
207
204
  label: "Average drift",
208
205
  value: nn === null ? "—" : g(nn),
209
206
  spark: an.length > 1 ? an : void 0,
210
207
  sparkTone: rn > 0 ? "error" : "brand",
211
208
  glow: !0,
212
- icon: /* @__PURE__ */ w(b, {
209
+ icon: /* @__PURE__ */ T(x, {
213
210
  className: "size-4",
214
211
  "aria-hidden": "true"
215
212
  })
216
213
  })
217
214
  }),
218
- /* @__PURE__ */ w(l, {
215
+ /* @__PURE__ */ T(l, {
219
216
  index: 1,
220
- children: /* @__PURE__ */ w(u, {
217
+ children: /* @__PURE__ */ T(u, {
221
218
  label: "Active proposals",
222
219
  value: String(tn.length),
223
- icon: /* @__PURE__ */ w(ge, {
220
+ icon: /* @__PURE__ */ T(_e, {
224
221
  className: "size-4",
225
222
  "aria-hidden": "true"
226
223
  })
227
224
  })
228
225
  }),
229
- /* @__PURE__ */ w(l, {
226
+ /* @__PURE__ */ T(l, {
230
227
  index: 2,
231
- children: /* @__PURE__ */ w(u, {
228
+ children: /* @__PURE__ */ T(u, {
232
229
  label: "Total proposals",
233
230
  value: String(c.length),
234
- icon: /* @__PURE__ */ w(xe, {
231
+ icon: /* @__PURE__ */ T(Se, {
235
232
  className: "size-4",
236
233
  "aria-hidden": "true"
237
234
  })
238
235
  })
239
236
  }),
240
- /* @__PURE__ */ w(l, {
237
+ /* @__PURE__ */ T(l, {
241
238
  index: 3,
242
- children: /* @__PURE__ */ w(u, {
239
+ children: /* @__PURE__ */ T(u, {
243
240
  label: "Open risk insights",
244
241
  value: String($.length),
245
242
  deltaTone: $.length > 0 ? "negative" : "neutral",
246
- icon: /* @__PURE__ */ w(x, {
243
+ icon: /* @__PURE__ */ T(S, {
247
244
  className: "size-4",
248
245
  "aria-hidden": "true"
249
246
  })
@@ -251,53 +248,53 @@ function V() {
251
248
  })
252
249
  ]
253
250
  }),
254
- (on.length > 0 || sn.length > 0) && !pe ? /* @__PURE__ */ T("div", {
251
+ (on.length > 0 || sn.length > 0) && !pe ? /* @__PURE__ */ E("div", {
255
252
  className: "grid gap-4 lg:grid-cols-2",
256
- children: [/* @__PURE__ */ w(l, {
253
+ children: [/* @__PURE__ */ T(l, {
257
254
  index: 0,
258
- children: /* @__PURE__ */ T(fe, {
255
+ children: /* @__PURE__ */ E(fe, {
259
256
  glow: !0,
260
257
  className: "h-full",
261
- children: [/* @__PURE__ */ T("div", {
258
+ children: [/* @__PURE__ */ E("div", {
262
259
  className: "mb-3 flex items-center gap-2",
263
- children: [/* @__PURE__ */ w(Ae, {
260
+ children: [/* @__PURE__ */ T(je, {
264
261
  className: "size-4 text-text-secondary",
265
262
  "aria-hidden": "true"
266
- }), /* @__PURE__ */ w("h2", {
263
+ }), /* @__PURE__ */ T("h2", {
267
264
  className: "text-sm font-semibold text-text-primary",
268
265
  children: "Proposal pipeline"
269
266
  })]
270
- }), /* @__PURE__ */ w(de, {
267
+ }), /* @__PURE__ */ T(de, {
271
268
  data: on,
272
269
  centerValue: String(c.length),
273
270
  centerLabel: "proposals",
274
271
  height: 200
275
272
  })]
276
273
  })
277
- }), /* @__PURE__ */ w(l, {
274
+ }), /* @__PURE__ */ T(l, {
278
275
  index: 1,
279
- children: /* @__PURE__ */ T(fe, {
276
+ children: /* @__PURE__ */ E(fe, {
280
277
  className: "h-full",
281
- children: [/* @__PURE__ */ T("div", {
278
+ children: [/* @__PURE__ */ E("div", {
282
279
  className: "mb-3 flex items-center gap-2",
283
- children: [/* @__PURE__ */ w(x, {
280
+ children: [/* @__PURE__ */ T(S, {
284
281
  className: "size-4 text-text-secondary",
285
282
  "aria-hidden": "true"
286
- }), /* @__PURE__ */ w("h2", {
283
+ }), /* @__PURE__ */ T("h2", {
287
284
  className: "text-sm font-semibold text-text-primary",
288
285
  children: "Open risk signals"
289
286
  })]
290
- }), sn.length > 0 ? /* @__PURE__ */ w(de, {
287
+ }), sn.length > 0 ? /* @__PURE__ */ T(de, {
291
288
  data: sn,
292
289
  centerValue: String($.length),
293
290
  centerLabel: "open",
294
291
  height: 200
295
- }) : /* @__PURE__ */ T("div", {
292
+ }) : /* @__PURE__ */ E("div", {
296
293
  className: "flex h-[200px] flex-col items-center justify-center gap-2 text-center",
297
- children: [/* @__PURE__ */ w(S, {
294
+ children: [/* @__PURE__ */ T(C, {
298
295
  className: "size-8 text-status-success-text",
299
296
  "aria-hidden": "true"
300
- }), /* @__PURE__ */ w("p", {
297
+ }), /* @__PURE__ */ T("p", {
301
298
  className: "text-sm text-text-secondary",
302
299
  children: "No open risk signals."
303
300
  })]
@@ -305,147 +302,147 @@ function V() {
305
302
  })
306
303
  })]
307
304
  }) : null,
308
- /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(j, { children: [/* @__PURE__ */ T(M, {
305
+ /* @__PURE__ */ E(k, { children: [/* @__PURE__ */ E(M, { children: [/* @__PURE__ */ E(N, {
309
306
  className: "flex items-center gap-2",
310
- children: [/* @__PURE__ */ w(b, {
307
+ children: [/* @__PURE__ */ T(x, {
311
308
  className: "h-5 w-5",
312
309
  "aria-hidden": "true"
313
310
  }), "Portfolio risk signals"]
314
- }), /* @__PURE__ */ w(A, { children: "Real, explainable signals computed live from this portfolio's own holdings and target allocation — every signal below shows the real inputs and formula/threshold behind it. Informational only, never a buy/sell recommendation." })] }), /* @__PURE__ */ T(k, {
311
+ }), /* @__PURE__ */ T(j, { children: "Real, explainable signals computed live from this portfolio's own holdings and target allocation — every signal below shows the real inputs and formula/threshold behind it. Informational only, never a buy/sell recommendation." })] }), /* @__PURE__ */ E(A, {
315
312
  className: "space-y-4",
316
- children: [/* @__PURE__ */ T("div", {
313
+ children: [/* @__PURE__ */ E("div", {
317
314
  className: "flex flex-wrap items-center gap-3",
318
315
  children: [
319
- /* @__PURE__ */ T("div", {
316
+ /* @__PURE__ */ E("div", {
320
317
  className: "min-w-[220px] space-y-1.5",
321
- children: [/* @__PURE__ */ w(F, {
318
+ children: [/* @__PURE__ */ T(I, {
322
319
  htmlFor: "risk-portfolio",
323
320
  children: "Portfolio"
324
- }), /* @__PURE__ */ T(We, {
321
+ }), /* @__PURE__ */ E(Ge, {
325
322
  value: V,
326
323
  onValueChange: st,
327
- children: [/* @__PURE__ */ w(qe, {
324
+ children: [/* @__PURE__ */ T(Je, {
328
325
  id: "risk-portfolio",
329
- children: /* @__PURE__ */ w(Je, { placeholder: "Select a portfolio" })
330
- }), /* @__PURE__ */ w(Ge, { children: B.map((e) => /* @__PURE__ */ w(Ke, {
326
+ children: /* @__PURE__ */ T(Ye, { placeholder: "Select a portfolio" })
327
+ }), /* @__PURE__ */ T(Ke, { children: v.map((e) => /* @__PURE__ */ T(qe, {
331
328
  value: e.id,
332
329
  children: e.name
333
330
  }, e.id)) })]
334
331
  })]
335
332
  }),
336
- /* @__PURE__ */ T(D, {
333
+ /* @__PURE__ */ E(O, {
337
334
  variant: "outline",
338
335
  size: "sm",
339
336
  className: "mt-auto",
340
337
  disabled: !V || ht,
341
338
  onClick: () => _t(),
342
- children: [/* @__PURE__ */ w(Te, {
339
+ children: [/* @__PURE__ */ T(Ee, {
343
340
  className: "size-4",
344
341
  "aria-hidden": "true"
345
342
  }), "Recompute"]
346
343
  }),
347
- /* @__PURE__ */ T(D, {
344
+ /* @__PURE__ */ E(O, {
348
345
  variant: "outline",
349
346
  size: "sm",
350
347
  className: "mt-auto",
351
348
  disabled: !V || (H?.signals.length ?? 0) === 0 || vt.isPending,
352
349
  onClick: () => vt.mutate(V),
353
- children: [/* @__PURE__ */ w(x, {
350
+ children: [/* @__PURE__ */ T(S, {
354
351
  className: "size-4",
355
352
  "aria-hidden": "true"
356
353
  }), vt.isPending ? "Saving…" : "Save as insights"]
357
354
  })
358
355
  ]
359
- }), B.length === 0 ? /* @__PURE__ */ w(d, {
360
- icon: /* @__PURE__ */ w(b, {
356
+ }), v.length === 0 ? /* @__PURE__ */ T(d, {
357
+ icon: /* @__PURE__ */ T(x, {
361
358
  className: "size-6",
362
359
  "aria-hidden": "true"
363
360
  }),
364
361
  title: "No portfolios yet",
365
362
  description: "Create a portfolio to compute real risk signals from its holdings."
366
- }) : ht ? /* @__PURE__ */ w(p, {}) : gt ? /* @__PURE__ */ w(f, { onRetry: () => _t() }) : H ? /* @__PURE__ */ T("div", {
363
+ }) : ht ? /* @__PURE__ */ T(p, {}) : gt ? /* @__PURE__ */ T(f, { onRetry: () => _t() }) : H ? /* @__PURE__ */ E("div", {
367
364
  className: "space-y-4",
368
365
  children: [
369
- /* @__PURE__ */ T("div", {
366
+ /* @__PURE__ */ E("div", {
370
367
  className: "grid gap-3 sm:grid-cols-3",
371
368
  children: [
372
- /* @__PURE__ */ w(u, {
369
+ /* @__PURE__ */ T(u, {
373
370
  label: "Portfolio value",
374
371
  value: h(H.totalValue),
375
- icon: /* @__PURE__ */ w(xe, {
372
+ icon: /* @__PURE__ */ T(Se, {
376
373
  className: "size-4",
377
374
  "aria-hidden": "true"
378
375
  })
379
376
  }),
380
- /* @__PURE__ */ w(u, {
377
+ /* @__PURE__ */ T(u, {
381
378
  label: "Holdings considered",
382
379
  value: String(H.holdingsConsidered),
383
- icon: /* @__PURE__ */ w(ge, {
380
+ icon: /* @__PURE__ */ T(_e, {
384
381
  className: "size-4",
385
382
  "aria-hidden": "true"
386
383
  })
387
384
  }),
388
- /* @__PURE__ */ w(u, {
385
+ /* @__PURE__ */ T(u, {
389
386
  label: "Signals breached",
390
387
  value: String(H.signals.length),
391
388
  deltaTone: H.signals.length > 0 ? "negative" : "neutral",
392
- icon: /* @__PURE__ */ w(x, {
389
+ icon: /* @__PURE__ */ T(S, {
393
390
  className: "size-4",
394
391
  "aria-hidden": "true"
395
392
  })
396
393
  })
397
394
  ]
398
395
  }),
399
- H.signals.length === 0 ? /* @__PURE__ */ w(d, {
400
- icon: /* @__PURE__ */ w(S, {
396
+ H.signals.length === 0 ? /* @__PURE__ */ T(d, {
397
+ icon: /* @__PURE__ */ T(C, {
401
398
  className: "size-6",
402
399
  "aria-hidden": "true"
403
400
  }),
404
401
  title: "No configured threshold was breached",
405
402
  description: "This portfolio's concentration, cash, drift and unrealized-loss metrics are all within their configured thresholds."
406
- }) : /* @__PURE__ */ w("ul", {
403
+ }) : /* @__PURE__ */ T("ul", {
407
404
  className: "space-y-3",
408
- children: H.signals.map((e, t) => /* @__PURE__ */ w(ft, { signal: e }, `${e.kind}-${t}`))
405
+ children: H.signals.map((e, t) => /* @__PURE__ */ T(ft, { signal: e }, `${e.kind}-${t}`))
409
406
  }),
410
- /* @__PURE__ */ T("div", {
407
+ /* @__PURE__ */ E("div", {
411
408
  className: "rounded-xl border border-border-subtle bg-bg-surface p-4",
412
- children: [/* @__PURE__ */ T("div", {
409
+ children: [/* @__PURE__ */ E("div", {
413
410
  className: "flex flex-wrap items-center justify-between gap-2",
414
- children: [/* @__PURE__ */ T("div", {
411
+ children: [/* @__PURE__ */ E("div", {
415
412
  className: "flex items-center gap-2",
416
413
  children: [
417
- /* @__PURE__ */ w(ke, {
414
+ /* @__PURE__ */ T(Ae, {
418
415
  className: "size-4 text-text-secondary",
419
416
  "aria-hidden": "true"
420
417
  }),
421
- /* @__PURE__ */ w("h3", {
418
+ /* @__PURE__ */ T("h3", {
422
419
  className: "text-sm font-semibold text-text-primary",
423
420
  children: "AI summary"
424
421
  }),
425
- /* @__PURE__ */ w("span", {
422
+ /* @__PURE__ */ T("span", {
426
423
  className: "text-xs text-text-muted",
427
424
  children: "(optional — plain-language restatement of the signals above; never a source of numbers)"
428
425
  })
429
426
  ]
430
- }), /* @__PURE__ */ T(D, {
427
+ }), /* @__PURE__ */ E(O, {
431
428
  variant: "outline",
432
429
  size: "sm",
433
430
  disabled: !V || yt,
434
431
  onClick: () => bt(),
435
- children: [/* @__PURE__ */ w(ke, {
432
+ children: [/* @__PURE__ */ T(Ae, {
436
433
  className: "size-4",
437
434
  "aria-hidden": "true"
438
435
  }), yt ? "Generating…" : "Generate AI summary"]
439
436
  })]
440
- }), yt ? /* @__PURE__ */ w("p", {
437
+ }), yt ? /* @__PURE__ */ T("p", {
441
438
  className: "mt-2 text-sm text-text-secondary",
442
439
  children: "Asking the AI provider…"
443
- }) : U?.generated ? /* @__PURE__ */ T("div", {
440
+ }) : U?.generated ? /* @__PURE__ */ E("div", {
444
441
  className: "mt-2 space-y-1",
445
- children: [/* @__PURE__ */ w("p", {
442
+ children: [/* @__PURE__ */ T("p", {
446
443
  className: "text-sm text-text-primary",
447
444
  children: U.summary
448
- }), /* @__PURE__ */ T("p", {
445
+ }), /* @__PURE__ */ E("p", {
449
446
  className: "text-xs text-text-muted",
450
447
  children: [
451
448
  "AI-generated commentary",
@@ -458,21 +455,21 @@ function V() {
458
455
  " above"
459
456
  ]
460
457
  })]
461
- }) : U && !U.generated ? /* @__PURE__ */ T("p", {
458
+ }) : U && !U.generated ? /* @__PURE__ */ E("p", {
462
459
  className: "mt-2 text-sm text-text-secondary",
463
460
  children: [
464
461
  "AI summary unavailable — ",
465
462
  U.reason ?? "no provider configured",
466
463
  ". The deterministic signals above are unaffected."
467
464
  ]
468
- }) : /* @__PURE__ */ w("p", {
465
+ }) : /* @__PURE__ */ T("p", {
469
466
  className: "mt-2 text-sm text-text-muted",
470
467
  children: "Not generated yet. The deterministic signals above always work without this."
471
468
  })]
472
469
  })
473
470
  ]
474
- }) : /* @__PURE__ */ w(d, {
475
- icon: /* @__PURE__ */ w(b, {
471
+ }) : /* @__PURE__ */ T(d, {
472
+ icon: /* @__PURE__ */ T(x, {
476
473
  className: "size-6",
477
474
  "aria-hidden": "true"
478
475
  }),
@@ -480,38 +477,38 @@ function V() {
480
477
  description: "Choose a portfolio above to compute its real risk signals."
481
478
  })]
482
479
  })] }),
483
- /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(j, { children: [/* @__PURE__ */ T(M, {
480
+ /* @__PURE__ */ E(k, { children: [/* @__PURE__ */ E(M, { children: [/* @__PURE__ */ E(N, {
484
481
  className: "flex items-center gap-2",
485
- children: [/* @__PURE__ */ w(De, {
482
+ children: [/* @__PURE__ */ T(Oe, {
486
483
  className: "h-5 w-5",
487
484
  "aria-hidden": "true"
488
485
  }), "Tax-loss-harvesting opportunities"]
489
- }), /* @__PURE__ */ w(A, { children: "Real unrealized-loss detection for the selected portfolio, using configurable dollar/percent thresholds and a wash-sale caution flag from your recorded transactions. Detection only — this never places a trade, and it is not tax advice." })] }), /* @__PURE__ */ T(k, {
486
+ }), /* @__PURE__ */ T(j, { children: "Real unrealized-loss detection for the selected portfolio, using configurable dollar/percent thresholds and a wash-sale caution flag from your recorded transactions. Detection only — this never places a trade, and it is not tax advice." })] }), /* @__PURE__ */ E(A, {
490
487
  className: "space-y-4",
491
- children: [/* @__PURE__ */ T("div", {
488
+ children: [/* @__PURE__ */ E("div", {
492
489
  className: "flex flex-wrap items-center gap-3",
493
490
  children: [
494
- /* @__PURE__ */ T(D, {
491
+ /* @__PURE__ */ E(O, {
495
492
  variant: "outline",
496
493
  size: "sm",
497
494
  disabled: !V || xt,
498
495
  onClick: () => Ct(),
499
- children: [/* @__PURE__ */ w(Te, {
496
+ children: [/* @__PURE__ */ T(Ee, {
500
497
  className: "size-4",
501
498
  "aria-hidden": "true"
502
499
  }), "Recompute"]
503
500
  }),
504
- /* @__PURE__ */ T(D, {
501
+ /* @__PURE__ */ E(O, {
505
502
  variant: "outline",
506
503
  size: "sm",
507
504
  disabled: !V || (W?.opportunities.length ?? 0) === 0 || wt.isPending,
508
505
  onClick: () => wt.mutate({ portfolioId: V }),
509
- children: [/* @__PURE__ */ w(x, {
506
+ children: [/* @__PURE__ */ T(S, {
510
507
  className: "size-4",
511
508
  "aria-hidden": "true"
512
509
  }), wt.isPending ? "Saving…" : "Save as insights"]
513
510
  }),
514
- W ? /* @__PURE__ */ T("span", {
511
+ W ? /* @__PURE__ */ E("span", {
515
512
  className: "text-xs text-text-muted",
516
513
  children: [
517
514
  "Thresholds: ≥",
@@ -522,25 +519,25 @@ function V() {
522
519
  ]
523
520
  }) : null
524
521
  ]
525
- }), B.length === 0 ? /* @__PURE__ */ w(d, {
526
- icon: /* @__PURE__ */ w(De, {
522
+ }), v.length === 0 ? /* @__PURE__ */ T(d, {
523
+ icon: /* @__PURE__ */ T(Oe, {
527
524
  className: "size-6",
528
525
  "aria-hidden": "true"
529
526
  }),
530
527
  title: "No portfolios yet",
531
528
  description: "Create a portfolio to detect real tax-loss-harvesting opportunities from its holdings."
532
- }) : xt ? /* @__PURE__ */ w(p, {}) : St ? /* @__PURE__ */ w(f, { onRetry: () => Ct() }) : W && W.opportunities.length > 0 ? /* @__PURE__ */ w("ul", {
529
+ }) : xt ? /* @__PURE__ */ T(p, {}) : St ? /* @__PURE__ */ T(f, { onRetry: () => Ct() }) : W && W.opportunities.length > 0 ? /* @__PURE__ */ T("ul", {
533
530
  className: "space-y-3",
534
- children: W.opportunities.map((e) => /* @__PURE__ */ w(pt, { opportunity: e }, e.symbol))
535
- }) : W ? /* @__PURE__ */ w(d, {
536
- icon: /* @__PURE__ */ w(S, {
531
+ children: W.opportunities.map((e) => /* @__PURE__ */ T(pt, { opportunity: e }, e.symbol))
532
+ }) : W ? /* @__PURE__ */ T(d, {
533
+ icon: /* @__PURE__ */ T(C, {
537
534
  className: "size-6",
538
535
  "aria-hidden": "true"
539
536
  }),
540
537
  title: "No opportunities at the current thresholds",
541
538
  description: "No symbol's unrealized loss clears the configured dollar/percent thresholds."
542
- }) : /* @__PURE__ */ w(d, {
543
- icon: /* @__PURE__ */ w(De, {
539
+ }) : /* @__PURE__ */ T(d, {
540
+ icon: /* @__PURE__ */ T(Oe, {
544
541
  className: "size-6",
545
542
  "aria-hidden": "true"
546
543
  }),
@@ -548,97 +545,97 @@ function V() {
548
545
  description: "Choose a portfolio above to detect real tax-loss opportunities."
549
546
  })]
550
547
  })] }),
551
- /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(j, { children: [/* @__PURE__ */ T(M, {
548
+ /* @__PURE__ */ E(k, { children: [/* @__PURE__ */ E(M, { children: [/* @__PURE__ */ E(N, {
552
549
  className: "flex items-center gap-2",
553
- children: [/* @__PURE__ */ w(Se, {
550
+ children: [/* @__PURE__ */ T(Ce, {
554
551
  className: "h-5 w-5",
555
552
  "aria-hidden": "true"
556
553
  }), "Trade instructions"]
557
- }), /* @__PURE__ */ w(A, { children: "Real BUY/SELL recommendations for a human advisor to review and manually execute elsewhere — this never submits an order anywhere. Reference prices come from a real live market-data feed." })] }), /* @__PURE__ */ T(k, {
554
+ }), /* @__PURE__ */ T(j, { children: "Real BUY/SELL recommendations for a human advisor to review and manually execute elsewhere — this never submits an order anywhere. Reference prices come from a real live market-data feed." })] }), /* @__PURE__ */ E(A, {
558
555
  className: "space-y-4",
559
556
  children: [
560
- /* @__PURE__ */ T("div", {
557
+ /* @__PURE__ */ E("div", {
561
558
  className: "flex flex-wrap items-end gap-3 rounded-lg border border-border-subtle bg-bg-sunken p-3",
562
- children: [/* @__PURE__ */ T("div", {
559
+ children: [/* @__PURE__ */ E("div", {
563
560
  className: "space-y-1.5",
564
- children: [/* @__PURE__ */ w(F, {
561
+ children: [/* @__PURE__ */ T(I, {
565
562
  htmlFor: "quote-symbol",
566
563
  children: "Live quote lookup"
567
- }), /* @__PURE__ */ T("div", {
564
+ }), /* @__PURE__ */ E("div", {
568
565
  className: "flex gap-2",
569
- children: [/* @__PURE__ */ w(P, {
566
+ children: [/* @__PURE__ */ T(F, {
570
567
  id: "quote-symbol",
571
568
  value: Et,
572
569
  onChange: (e) => Dt(e.target.value.toUpperCase()),
573
570
  placeholder: "AAPL",
574
571
  className: "w-28"
575
- }), /* @__PURE__ */ T(D, {
572
+ }), /* @__PURE__ */ E(O, {
576
573
  variant: "outline",
577
574
  size: "sm",
578
575
  disabled: !Et || q.isFetching,
579
576
  onClick: () => q.refetch(),
580
- children: [/* @__PURE__ */ w(Oe, {
577
+ children: [/* @__PURE__ */ T(ke, {
581
578
  className: "size-4",
582
579
  "aria-hidden": "true"
583
580
  }), "Quote"]
584
581
  })]
585
582
  })]
586
- }), q.data ? /* @__PURE__ */ T("span", {
583
+ }), q.data ? /* @__PURE__ */ E("span", {
587
584
  className: "text-sm text-text-primary",
588
585
  children: [
589
586
  q.data.symbol,
590
587
  ":",
591
588
  " ",
592
- /* @__PURE__ */ w("span", {
589
+ /* @__PURE__ */ T("span", {
593
590
  className: "font-semibold",
594
591
  children: h(q.data.price, q.data.currency ?? "USD")
595
592
  }),
596
593
  " ",
597
- /* @__PURE__ */ T("span", {
594
+ /* @__PURE__ */ E("span", {
598
595
  className: "text-xs text-text-muted",
599
596
  children: ["via ", q.data.source]
600
597
  })
601
598
  ]
602
- }) : q.isError ? /* @__PURE__ */ w("span", {
599
+ }) : q.isError ? /* @__PURE__ */ T("span", {
603
600
  className: "text-sm text-status-error-text",
604
601
  children: "Quote unavailable"
605
602
  }) : null]
606
603
  }),
607
- /* @__PURE__ */ T("div", {
604
+ /* @__PURE__ */ E("div", {
608
605
  className: "grid gap-3 rounded-lg border border-border-subtle bg-bg-sunken p-3 sm:grid-cols-5 sm:items-end",
609
606
  children: [
610
- /* @__PURE__ */ T("div", {
607
+ /* @__PURE__ */ E("div", {
611
608
  className: "space-y-1.5",
612
- children: [/* @__PURE__ */ w(F, {
609
+ children: [/* @__PURE__ */ T(I, {
613
610
  htmlFor: "ti-symbol",
614
611
  children: "Symbol"
615
- }), /* @__PURE__ */ w(P, {
612
+ }), /* @__PURE__ */ T(F, {
616
613
  id: "ti-symbol",
617
614
  value: Ot,
618
615
  onChange: (e) => kt(e.target.value.toUpperCase()),
619
616
  placeholder: "MSFT"
620
617
  })]
621
618
  }),
622
- /* @__PURE__ */ T("div", {
619
+ /* @__PURE__ */ E("div", {
623
620
  className: "space-y-1.5",
624
- children: [/* @__PURE__ */ w(F, { children: "Action" }), /* @__PURE__ */ T(We, {
621
+ children: [/* @__PURE__ */ T(I, { children: "Action" }), /* @__PURE__ */ E(Ge, {
625
622
  value: At,
626
623
  onValueChange: (e) => jt(e),
627
- children: [/* @__PURE__ */ w(qe, { children: /* @__PURE__ */ w(Je, {}) }), /* @__PURE__ */ T(Ge, { children: [/* @__PURE__ */ w(Ke, {
624
+ children: [/* @__PURE__ */ T(Je, { children: /* @__PURE__ */ T(Ye, {}) }), /* @__PURE__ */ E(Ke, { children: [/* @__PURE__ */ T(qe, {
628
625
  value: "BUY",
629
626
  children: "Buy"
630
- }), /* @__PURE__ */ w(Ke, {
627
+ }), /* @__PURE__ */ T(qe, {
631
628
  value: "SELL",
632
629
  children: "Sell"
633
630
  })] })]
634
631
  })]
635
632
  }),
636
- /* @__PURE__ */ T("div", {
633
+ /* @__PURE__ */ E("div", {
637
634
  className: "space-y-1.5",
638
- children: [/* @__PURE__ */ w(F, {
635
+ children: [/* @__PURE__ */ T(I, {
639
636
  htmlFor: "ti-quantity",
640
637
  children: "Quantity"
641
- }), /* @__PURE__ */ w(P, {
638
+ }), /* @__PURE__ */ T(F, {
642
639
  id: "ti-quantity",
643
640
  type: "number",
644
641
  min: "0",
@@ -647,21 +644,21 @@ function V() {
647
644
  onChange: (e) => Nt(e.target.value)
648
645
  })]
649
646
  }),
650
- /* @__PURE__ */ T("div", {
647
+ /* @__PURE__ */ E("div", {
651
648
  className: "space-y-1.5 sm:col-span-2",
652
- children: [/* @__PURE__ */ w(F, {
649
+ children: [/* @__PURE__ */ T(I, {
653
650
  htmlFor: "ti-rationale",
654
651
  children: "Rationale"
655
- }), /* @__PURE__ */ w(P, {
652
+ }), /* @__PURE__ */ T(F, {
656
653
  id: "ti-rationale",
657
654
  value: Pt,
658
655
  onChange: (e) => Ft(e.target.value),
659
656
  placeholder: "Optional"
660
657
  })]
661
658
  }),
662
- /* @__PURE__ */ w("div", {
659
+ /* @__PURE__ */ T("div", {
663
660
  className: "sm:col-span-5",
664
- children: /* @__PURE__ */ T(D, {
661
+ children: /* @__PURE__ */ E(O, {
665
662
  size: "sm",
666
663
  disabled: !V || !Ot.trim() || !Mt || Number(Mt) <= 0 || Tt.isPending,
667
664
  onClick: () => {
@@ -675,7 +672,7 @@ function V() {
675
672
  kt(""), Nt(""), Ft("");
676
673
  } });
677
674
  },
678
- children: [/* @__PURE__ */ w(we, {
675
+ children: [/* @__PURE__ */ T(Te, {
679
676
  className: "size-4",
680
677
  "aria-hidden": "true"
681
678
  }), Tt.isPending ? "Creating…" : "Create instruction"]
@@ -683,48 +680,48 @@ function V() {
683
680
  })
684
681
  ]
685
682
  }),
686
- V ? G.isLoading ? /* @__PURE__ */ w(p, {}) : G.isError ? /* @__PURE__ */ w(f, { onRetry: () => G.refetch() }) : G.data.length === 0 ? /* @__PURE__ */ w(d, {
687
- icon: /* @__PURE__ */ w(Se, {
683
+ V ? G.isLoading ? /* @__PURE__ */ T(p, {}) : G.isError ? /* @__PURE__ */ T(f, { onRetry: () => G.refetch() }) : G.data.length === 0 ? /* @__PURE__ */ T(d, {
684
+ icon: /* @__PURE__ */ T(Ce, {
688
685
  className: "size-6",
689
686
  "aria-hidden": "true"
690
687
  }),
691
688
  title: "No trade instructions yet",
692
689
  description: "Create one above, or generate one from a rebalance proposal's trades."
693
- }) : /* @__PURE__ */ T(Ye, { children: [/* @__PURE__ */ w(Ze, { children: /* @__PURE__ */ T(R, { children: [
694
- /* @__PURE__ */ w(L, { children: "Symbol" }),
695
- /* @__PURE__ */ w(L, { children: "Action" }),
696
- /* @__PURE__ */ w(L, { children: "Qty" }),
697
- /* @__PURE__ */ w(L, { children: "Reference price" }),
698
- /* @__PURE__ */ w(L, { children: "Source" }),
699
- /* @__PURE__ */ w(L, { children: "Status" }),
700
- /* @__PURE__ */ w(L, {
690
+ }) : /* @__PURE__ */ E(Xe, { children: [/* @__PURE__ */ T(Qe, { children: /* @__PURE__ */ E(z, { children: [
691
+ /* @__PURE__ */ T(R, { children: "Symbol" }),
692
+ /* @__PURE__ */ T(R, { children: "Action" }),
693
+ /* @__PURE__ */ T(R, { children: "Qty" }),
694
+ /* @__PURE__ */ T(R, { children: "Reference price" }),
695
+ /* @__PURE__ */ T(R, { children: "Source" }),
696
+ /* @__PURE__ */ T(R, { children: "Status" }),
697
+ /* @__PURE__ */ T(R, {
701
698
  className: "text-right",
702
699
  children: "Review"
703
700
  })
704
- ] }) }), /* @__PURE__ */ w(Xe, { children: G.data.map((e) => /* @__PURE__ */ T(R, { children: [
705
- /* @__PURE__ */ w(I, {
701
+ ] }) }), /* @__PURE__ */ T(Ze, { children: G.data.map((e) => /* @__PURE__ */ E(z, { children: [
702
+ /* @__PURE__ */ T(L, {
706
703
  className: "font-medium",
707
704
  children: e.symbol
708
705
  }),
709
- /* @__PURE__ */ w(I, { children: /* @__PURE__ */ w(E, {
706
+ /* @__PURE__ */ T(L, { children: /* @__PURE__ */ T(D, {
710
707
  variant: e.action === "BUY" ? "default" : "secondary",
711
708
  children: e.action
712
709
  }) }),
713
- /* @__PURE__ */ w(I, { children: e.quantity }),
714
- /* @__PURE__ */ w(I, { children: e.referencePrice == null ? "—" : h(e.referencePrice) }),
715
- /* @__PURE__ */ w(I, {
710
+ /* @__PURE__ */ T(L, { children: e.quantity }),
711
+ /* @__PURE__ */ T(L, { children: e.referencePrice == null ? "—" : h(e.referencePrice) }),
712
+ /* @__PURE__ */ T(L, {
716
713
  className: "text-xs text-text-muted",
717
714
  children: e.priceSource ?? "—"
718
715
  }),
719
- /* @__PURE__ */ w(I, { children: /* @__PURE__ */ w(E, {
716
+ /* @__PURE__ */ T(L, { children: /* @__PURE__ */ T(D, {
720
717
  variant: _(e.status),
721
718
  children: e.status
722
719
  }) }),
723
- /* @__PURE__ */ w(I, {
720
+ /* @__PURE__ */ T(L, {
724
721
  className: "text-right",
725
- children: e.status === "PENDING_REVIEW" ? /* @__PURE__ */ T("div", {
722
+ children: e.status === "PENDING_REVIEW" ? /* @__PURE__ */ E("div", {
726
723
  className: "flex justify-end gap-1.5",
727
- children: [/* @__PURE__ */ w(D, {
724
+ children: [/* @__PURE__ */ T(O, {
728
725
  size: "sm",
729
726
  variant: "ghost",
730
727
  disabled: K.isPending,
@@ -732,11 +729,11 @@ function V() {
732
729
  id: e.id,
733
730
  status: "ACKNOWLEDGED"
734
731
  }),
735
- children: /* @__PURE__ */ w(ye, {
732
+ children: /* @__PURE__ */ T(be, {
736
733
  className: "size-4",
737
734
  "aria-hidden": "true"
738
735
  })
739
- }), /* @__PURE__ */ w(D, {
736
+ }), /* @__PURE__ */ T(O, {
740
737
  size: "sm",
741
738
  variant: "ghost",
742
739
  disabled: K.isPending,
@@ -744,18 +741,18 @@ function V() {
744
741
  id: e.id,
745
742
  status: "DISMISSED"
746
743
  }),
747
- children: /* @__PURE__ */ w(C, {
744
+ children: /* @__PURE__ */ T(w, {
748
745
  className: "size-4",
749
746
  "aria-hidden": "true"
750
747
  })
751
748
  })]
752
- }) : /* @__PURE__ */ w("span", {
749
+ }) : /* @__PURE__ */ T("span", {
753
750
  className: "text-xs text-text-muted",
754
751
  children: "Reviewed"
755
752
  })
756
753
  })
757
- ] }, e.id)) })] }) : /* @__PURE__ */ w(d, {
758
- icon: /* @__PURE__ */ w(Se, {
754
+ ] }, e.id)) })] }) : /* @__PURE__ */ T(d, {
755
+ icon: /* @__PURE__ */ T(Ce, {
759
756
  className: "size-6",
760
757
  "aria-hidden": "true"
761
758
  }),
@@ -764,75 +761,75 @@ function V() {
764
761
  })
765
762
  ]
766
763
  })] }),
767
- /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(j, { children: [/* @__PURE__ */ T(M, {
764
+ /* @__PURE__ */ E(k, { children: [/* @__PURE__ */ E(M, { children: [/* @__PURE__ */ E(N, {
768
765
  className: "flex items-center gap-2",
769
- children: [/* @__PURE__ */ w(Ee, {
766
+ children: [/* @__PURE__ */ T(De, {
770
767
  className: "h-5 w-5",
771
768
  "aria-hidden": "true"
772
769
  }), "Rebalance proposals"]
773
- }), /* @__PURE__ */ w(A, { children: "Drift against target allocation, with lifecycle actions per proposal." })] }), /* @__PURE__ */ w(k, { children: pe ? /* @__PURE__ */ w(p, {}) : he ? /* @__PURE__ */ w(f, { onRetry: () => tt() }) : c.length === 0 ? /* @__PURE__ */ w(d, {
774
- icon: /* @__PURE__ */ w(Ee, {
770
+ }), /* @__PURE__ */ T(j, { children: "Drift against target allocation, with lifecycle actions per proposal." })] }), /* @__PURE__ */ T(A, { children: pe ? /* @__PURE__ */ T(p, {}) : me ? /* @__PURE__ */ T(f, { onRetry: () => ge() }) : c.length === 0 ? /* @__PURE__ */ T(d, {
771
+ icon: /* @__PURE__ */ T(De, {
775
772
  className: "size-6",
776
773
  "aria-hidden": "true"
777
774
  }),
778
775
  title: "No rebalance proposals",
779
776
  description: cn ? "Create a proposal when a portfolio drifts from its target allocation." : "Create a portfolio first, then propose a rebalance when it drifts.",
780
- action: cn ? /* @__PURE__ */ T(D, {
777
+ action: cn ? /* @__PURE__ */ E(O, {
781
778
  size: "sm",
782
779
  onClick: ln,
783
- children: [/* @__PURE__ */ w(we, {
780
+ children: [/* @__PURE__ */ T(Te, {
784
781
  className: "size-4",
785
782
  "aria-hidden": "true"
786
783
  }), "New proposal"]
787
784
  }) : void 0
788
- }) : /* @__PURE__ */ w("div", {
785
+ }) : /* @__PURE__ */ T("div", {
789
786
  className: "overflow-x-auto",
790
- children: /* @__PURE__ */ T(Ye, { children: [/* @__PURE__ */ w(Ze, { children: /* @__PURE__ */ T(R, { children: [
791
- /* @__PURE__ */ w(L, { children: "Portfolio" }),
792
- /* @__PURE__ */ w(L, {
787
+ children: /* @__PURE__ */ E(Xe, { children: [/* @__PURE__ */ T(Qe, { children: /* @__PURE__ */ E(z, { children: [
788
+ /* @__PURE__ */ T(R, { children: "Portfolio" }),
789
+ /* @__PURE__ */ T(R, {
793
790
  className: "text-right",
794
791
  children: "Drift"
795
792
  }),
796
- /* @__PURE__ */ w(L, { children: "Status" }),
797
- /* @__PURE__ */ w(L, { children: "Rationale" }),
798
- /* @__PURE__ */ w(L, { children: "Trades" }),
799
- /* @__PURE__ */ w(L, { children: "Created" }),
800
- /* @__PURE__ */ w(L, {
793
+ /* @__PURE__ */ T(R, { children: "Status" }),
794
+ /* @__PURE__ */ T(R, { children: "Rationale" }),
795
+ /* @__PURE__ */ T(R, { children: "Trades" }),
796
+ /* @__PURE__ */ T(R, { children: "Created" }),
797
+ /* @__PURE__ */ T(R, {
801
798
  className: "w-12 text-right",
802
799
  children: "Actions"
803
800
  })
804
- ] }) }), /* @__PURE__ */ w(Xe, { children: c.map((e) => {
805
- let t = Q.get(e.portfolioId), n = fn(e), r = $e[e.status], i = t?.driftThresholdPct, a = i != null && i > 0 ? Math.min(100, e.driftPct / i * 100) : null;
806
- return /* @__PURE__ */ T(R, {
801
+ ] }) }), /* @__PURE__ */ T(Ze, { children: c.map((e) => {
802
+ let t = Q.get(e.portfolioId), n = fn(e), r = et[e.status], i = t?.driftThresholdPct, a = i != null && i > 0 ? Math.min(100, e.driftPct / i * 100) : null;
803
+ return /* @__PURE__ */ E(z, {
807
804
  onClick: () => Qt(e),
808
805
  className: "cursor-pointer transition-colors motion-safe:hover:bg-bg-elevated",
809
806
  children: [
810
- /* @__PURE__ */ T(I, { children: [/* @__PURE__ */ w("p", {
807
+ /* @__PURE__ */ E(L, { children: [/* @__PURE__ */ T("p", {
811
808
  className: "font-medium text-text-primary",
812
809
  children: t?.name ?? "Unknown portfolio"
813
- }), /* @__PURE__ */ T("p", {
810
+ }), /* @__PURE__ */ E("p", {
814
811
  className: "text-xs text-text-secondary",
815
812
  children: [t?.baseCurrency ?? "—", i == null ? "" : ` · threshold ${g(i)}`]
816
813
  })] }),
817
- /* @__PURE__ */ T(I, {
814
+ /* @__PURE__ */ E(L, {
818
815
  className: "text-right",
819
- children: [/* @__PURE__ */ T("span", {
816
+ children: [/* @__PURE__ */ E("span", {
820
817
  className: `inline-flex items-center justify-end gap-1 font-semibold tabular-nums ${n ? "text-status-error-text" : "text-text-primary"}`,
821
- children: [n ? /* @__PURE__ */ w(_e, {
818
+ children: [n ? /* @__PURE__ */ T(ve, {
822
819
  className: "size-4",
823
820
  "aria-hidden": "true"
824
821
  }) : null, g(e.driftPct)]
825
- }), a == null ? n ? /* @__PURE__ */ w("p", {
822
+ }), a == null ? n ? /* @__PURE__ */ T("p", {
826
823
  className: "text-xs text-status-error-text",
827
824
  children: "Over threshold"
828
- }) : null : /* @__PURE__ */ w("div", {
825
+ }) : null : /* @__PURE__ */ T("div", {
829
826
  className: "ml-auto mt-1 h-1.5 w-24 overflow-hidden rounded-full bg-bg-sunken",
830
827
  role: "progressbar",
831
828
  "aria-valuenow": Math.round(a),
832
829
  "aria-valuemin": 0,
833
830
  "aria-valuemax": 100,
834
831
  "aria-label": `Drift vs threshold for ${t?.name ?? "portfolio"}`,
835
- children: /* @__PURE__ */ w("div", {
832
+ children: /* @__PURE__ */ T("div", {
836
833
  className: "h-full rounded-full",
837
834
  style: {
838
835
  width: `${a}%`,
@@ -841,60 +838,60 @@ function V() {
841
838
  })
842
839
  })]
843
840
  }),
844
- /* @__PURE__ */ w(I, { children: /* @__PURE__ */ w(E, {
841
+ /* @__PURE__ */ T(L, { children: /* @__PURE__ */ T(D, {
845
842
  variant: _(e.status),
846
- children: z(e.status)
843
+ children: B(e.status)
847
844
  }) }),
848
- /* @__PURE__ */ w(I, {
845
+ /* @__PURE__ */ T(L, {
849
846
  className: "max-w-xs",
850
- children: /* @__PURE__ */ w("p", {
847
+ children: /* @__PURE__ */ T("p", {
851
848
  className: "truncate text-sm text-text-secondary",
852
849
  children: e.rationale ?? "—"
853
850
  })
854
851
  }),
855
- /* @__PURE__ */ w(I, {
852
+ /* @__PURE__ */ T(L, {
856
853
  className: "text-sm text-text-secondary",
857
854
  children: ct(e.trades)
858
855
  }),
859
- /* @__PURE__ */ w(I, {
856
+ /* @__PURE__ */ T(L, {
860
857
  className: "text-sm text-text-secondary",
861
858
  children: m(e.createdAt)
862
859
  }),
863
- /* @__PURE__ */ w(I, {
860
+ /* @__PURE__ */ T(L, {
864
861
  className: "text-right",
865
862
  onClick: (e) => e.stopPropagation(),
866
- children: /* @__PURE__ */ T(ze, { children: [/* @__PURE__ */ w(Ue, {
863
+ children: /* @__PURE__ */ E(Be, { children: [/* @__PURE__ */ T(We, {
867
864
  asChild: !0,
868
- children: /* @__PURE__ */ w(D, {
865
+ children: /* @__PURE__ */ T(O, {
869
866
  variant: "ghost",
870
867
  size: "sm",
871
868
  "aria-label": `Actions for ${t?.name ?? "proposal"}`,
872
- children: /* @__PURE__ */ w(Ce, {
869
+ children: /* @__PURE__ */ T(we, {
873
870
  className: "size-4",
874
871
  "aria-hidden": "true"
875
872
  })
876
873
  })
877
- }), /* @__PURE__ */ T(Be, {
874
+ }), /* @__PURE__ */ E(Ve, {
878
875
  align: "end",
879
- children: [/* @__PURE__ */ T(N, {
876
+ children: [/* @__PURE__ */ E(P, {
880
877
  onClick: () => Qt(e),
881
- children: [/* @__PURE__ */ w(be, {
878
+ children: [/* @__PURE__ */ T(xe, {
882
879
  className: "size-4",
883
880
  "aria-hidden": "true"
884
881
  }), "View details"]
885
- }), r.length > 0 ? /* @__PURE__ */ T(je, { children: [
886
- /* @__PURE__ */ w(He, {}),
887
- /* @__PURE__ */ w(Ve, { children: "Advance to" }),
882
+ }), r.length > 0 ? /* @__PURE__ */ E(Me, { children: [
883
+ /* @__PURE__ */ T(Ue, {}),
884
+ /* @__PURE__ */ T(He, { children: "Advance to" }),
888
885
  r.map((t) => {
889
886
  let n = t === "REJECTED" || t === "CANCELLED";
890
- return /* @__PURE__ */ T(N, {
887
+ return /* @__PURE__ */ E(P, {
891
888
  disabled: J.isPending,
892
889
  className: n ? "text-status-error-text" : void 0,
893
890
  onClick: () => dn(e, t),
894
- children: [w(n ? C : ve, {
891
+ children: [T(n ? w : ye, {
895
892
  className: "size-4",
896
893
  "aria-hidden": "true"
897
- }), z(t)]
894
+ }), B(t)]
898
895
  }, t);
899
896
  })
900
897
  ] }) : null]
@@ -904,75 +901,75 @@ function V() {
904
901
  }, e.id);
905
902
  }) })] })
906
903
  }) })] }),
907
- /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(j, { children: [/* @__PURE__ */ T(M, {
904
+ /* @__PURE__ */ E(k, { children: [/* @__PURE__ */ E(M, { children: [/* @__PURE__ */ E(N, {
908
905
  className: "flex items-center gap-2",
909
- children: [/* @__PURE__ */ w(x, {
906
+ children: [/* @__PURE__ */ T(S, {
910
907
  className: "h-5 w-5",
911
908
  "aria-hidden": "true"
912
909
  }), "Risk insights"]
913
- }), /* @__PURE__ */ w(A, { children: "Drift, concentration, cash-drag and fee-anomaly signals detected across your portfolios." })] }), /* @__PURE__ */ w(k, { children: zt ? /* @__PURE__ */ w(p, {}) : Vt ? /* @__PURE__ */ w(f, { onRetry: () => Ht() }) : en.length === 0 ? /* @__PURE__ */ w(d, {
914
- icon: /* @__PURE__ */ w(S, {
910
+ }), /* @__PURE__ */ T(j, { children: "Drift, concentration, cash-drag and fee-anomaly signals detected across your portfolios." })] }), /* @__PURE__ */ T(A, { children: zt ? /* @__PURE__ */ T(p, {}) : Vt ? /* @__PURE__ */ T(f, { onRetry: () => Ht() }) : en.length === 0 ? /* @__PURE__ */ T(d, {
911
+ icon: /* @__PURE__ */ T(C, {
915
912
  className: "size-6",
916
913
  "aria-hidden": "true"
917
914
  }),
918
915
  title: "No risk insights",
919
916
  description: "No drift, concentration, cash-drag or fee-anomaly signals are open right now."
920
- }) : /* @__PURE__ */ T("div", {
917
+ }) : /* @__PURE__ */ E("div", {
921
918
  className: "space-y-3",
922
- children: [en.map((e, t) => /* @__PURE__ */ w(l, {
919
+ children: [en.map((e, t) => /* @__PURE__ */ T(l, {
923
920
  index: t,
924
- children: /* @__PURE__ */ w(mt, {
921
+ children: /* @__PURE__ */ T(mt, {
925
922
  insight: e,
926
923
  onAcknowledge: () => Wt.mutate(e.id),
927
924
  onResolve: () => Kt.mutate(e.id),
928
925
  onDismiss: () => Gt.mutate(e.id),
929
926
  actionPending: Wt.isPending || Kt.isPending || Gt.isPending
930
927
  })
931
- }, e.id)), /* @__PURE__ */ w(le, {
928
+ }, e.id)), /* @__PURE__ */ T(le, {
932
929
  hasMore: Lt,
933
930
  onClick: Rt,
934
931
  loading: Bt,
935
932
  label: "Load more insights"
936
933
  })]
937
934
  }) })] }),
938
- /* @__PURE__ */ w(Me, {
935
+ /* @__PURE__ */ T(Ne, {
939
936
  open: qt,
940
937
  onOpenChange: Jt,
941
- children: /* @__PURE__ */ T(Pe, { children: [
942
- /* @__PURE__ */ T(Le, { children: [/* @__PURE__ */ w(Re, { children: "New rebalance proposal" }), /* @__PURE__ */ w(Fe, { children: "Propose a rebalance for a portfolio that has drifted from its target allocation." })] }),
943
- cn ? /* @__PURE__ */ T("div", {
938
+ children: /* @__PURE__ */ E(Fe, { children: [
939
+ /* @__PURE__ */ E(Re, { children: [/* @__PURE__ */ T(ze, { children: "New rebalance proposal" }), /* @__PURE__ */ T(Ie, { children: "Propose a rebalance for a portfolio that has drifted from its target allocation." })] }),
940
+ cn ? /* @__PURE__ */ E("div", {
944
941
  className: "grid gap-4",
945
942
  children: [
946
- /* @__PURE__ */ T("div", {
943
+ /* @__PURE__ */ E("div", {
947
944
  className: "grid gap-4 sm:grid-cols-2",
948
- children: [/* @__PURE__ */ T("div", {
945
+ children: [/* @__PURE__ */ E("div", {
949
946
  className: "space-y-2",
950
- children: [/* @__PURE__ */ T(F, {
947
+ children: [/* @__PURE__ */ E(I, {
951
948
  htmlFor: "prop-portfolio",
952
- children: ["Portfolio ", /* @__PURE__ */ w("span", {
949
+ children: ["Portfolio ", /* @__PURE__ */ T("span", {
953
950
  className: "text-status-error-text",
954
951
  children: "*"
955
952
  })]
956
- }), /* @__PURE__ */ T(We, {
953
+ }), /* @__PURE__ */ E(Ge, {
957
954
  value: Y.portfolioId,
958
955
  onValueChange: (e) => X((t) => ({
959
956
  ...t,
960
957
  portfolioId: e
961
958
  })),
962
- children: [/* @__PURE__ */ w(qe, {
959
+ children: [/* @__PURE__ */ T(Je, {
963
960
  id: "prop-portfolio",
964
- children: /* @__PURE__ */ w(Je, { placeholder: "Select a portfolio" })
965
- }), /* @__PURE__ */ w(Ge, { children: B.map((e) => /* @__PURE__ */ w(Ke, {
961
+ children: /* @__PURE__ */ T(Ye, { placeholder: "Select a portfolio" })
962
+ }), /* @__PURE__ */ T(Ke, { children: v.map((e) => /* @__PURE__ */ T(qe, {
966
963
  value: e.id,
967
964
  children: e.name
968
965
  }, e.id)) })]
969
966
  })]
970
- }), /* @__PURE__ */ T("div", {
967
+ }), /* @__PURE__ */ E("div", {
971
968
  className: "space-y-2",
972
- children: [/* @__PURE__ */ w(F, {
969
+ children: [/* @__PURE__ */ T(I, {
973
970
  htmlFor: "prop-drift",
974
971
  children: "Drift %"
975
- }), /* @__PURE__ */ w(P, {
972
+ }), /* @__PURE__ */ T(F, {
976
973
  id: "prop-drift",
977
974
  type: "number",
978
975
  value: Y.driftPct,
@@ -984,12 +981,12 @@ function V() {
984
981
  })]
985
982
  })]
986
983
  }),
987
- /* @__PURE__ */ T("div", {
984
+ /* @__PURE__ */ E("div", {
988
985
  className: "space-y-2",
989
- children: [/* @__PURE__ */ w(F, {
986
+ children: [/* @__PURE__ */ T(I, {
990
987
  htmlFor: "prop-rationale",
991
988
  children: "Rationale"
992
- }), /* @__PURE__ */ w(Qe, {
989
+ }), /* @__PURE__ */ T($e, {
993
990
  id: "prop-rationale",
994
991
  value: Y.rationale,
995
992
  onChange: (e) => X((t) => ({
@@ -999,14 +996,14 @@ function V() {
999
996
  placeholder: "Why is this rebalance needed?"
1000
997
  })]
1001
998
  }),
1002
- /* @__PURE__ */ T("div", {
999
+ /* @__PURE__ */ E("div", {
1003
1000
  className: "space-y-2",
1004
1001
  children: [
1005
- /* @__PURE__ */ w(F, {
1002
+ /* @__PURE__ */ T(I, {
1006
1003
  htmlFor: "prop-trades",
1007
1004
  children: "Trades (JSON, optional)"
1008
1005
  }),
1009
- /* @__PURE__ */ w(Qe, {
1006
+ /* @__PURE__ */ T($e, {
1010
1007
  id: "prop-trades",
1011
1008
  className: "font-mono text-xs",
1012
1009
  value: Y.trades,
@@ -1018,28 +1015,28 @@ function V() {
1018
1015
  },
1019
1016
  placeholder: "e.g. [{\"symbol\":\"VOO\",\"action\":\"SELL\",\"quantity\":10}]"
1020
1017
  }),
1021
- Yt ? /* @__PURE__ */ w("p", {
1018
+ Yt ? /* @__PURE__ */ T("p", {
1022
1019
  className: "text-xs text-status-error-text",
1023
1020
  children: Yt
1024
1021
  }) : null
1025
1022
  ]
1026
1023
  })
1027
1024
  ]
1028
- }) : /* @__PURE__ */ w(d, {
1029
- icon: /* @__PURE__ */ w(Ee, {
1025
+ }) : /* @__PURE__ */ T(d, {
1026
+ icon: /* @__PURE__ */ T(De, {
1030
1027
  className: "size-6",
1031
1028
  "aria-hidden": "true"
1032
1029
  }),
1033
1030
  title: "Create a portfolio first",
1034
1031
  description: "A rebalance proposal targets a portfolio. Add a portfolio on the Portfolios page, then return here to propose a rebalance."
1035
1032
  }),
1036
- /* @__PURE__ */ T(Ie, { children: [/* @__PURE__ */ w(Ne, {
1033
+ /* @__PURE__ */ E(Le, { children: [/* @__PURE__ */ T(Pe, {
1037
1034
  asChild: !0,
1038
- children: /* @__PURE__ */ w(D, {
1035
+ children: /* @__PURE__ */ T(O, {
1039
1036
  variant: "outline",
1040
1037
  children: "Cancel"
1041
1038
  })
1042
- }), /* @__PURE__ */ w(D, {
1039
+ }), /* @__PURE__ */ T(O, {
1043
1040
  onClick: un,
1044
1041
  disabled: !Y.portfolioId || Ut.isPending,
1045
1042
  children: Ut.isPending ? "Creating…" : "Create proposal"
@@ -1048,11 +1045,11 @@ function V() {
1048
1045
  }),
1049
1046
  (() => {
1050
1047
  let e = Zt ? c.find((e) => e.id === Zt.id) ?? Zt : null, t = e ? It.filter((t) => t.subjectId === e.portfolioId) : [];
1051
- return /* @__PURE__ */ w(dt, {
1048
+ return /* @__PURE__ */ T(dt, {
1052
1049
  proposal: e,
1053
1050
  portfolio: e ? Q.get(e.portfolioId) ?? null : null,
1054
1051
  relatedInsights: t,
1055
- nextStatuses: e ? $e[e.status] : [],
1052
+ nextStatuses: e ? et[e.status] : [],
1056
1053
  transitionPending: J.isPending,
1057
1054
  onTransition: (t) => {
1058
1055
  e && dn(e, t);
@@ -1062,13 +1059,13 @@ function V() {
1062
1059
  }
1063
1060
  });
1064
1061
  })(),
1065
- /* @__PURE__ */ w(ue, {
1062
+ /* @__PURE__ */ T(ue, {
1066
1063
  open: Z !== null,
1067
1064
  onOpenChange: (e) => {
1068
1065
  e || $t(null);
1069
1066
  },
1070
1067
  title: Z?.status === "REJECTED" ? "Reject this proposal?" : "Cancel this proposal?",
1071
- description: Z ? `This moves the rebalance proposal for ${Q.get(Z.proposal.portfolioId)?.name ?? "this portfolio"} to ${z(Z.status)}. This cannot be undone.` : void 0,
1068
+ description: Z ? `This moves the rebalance proposal for ${Q.get(Z.proposal.portfolioId)?.name ?? "this portfolio"} to ${B(Z.status)}. This cannot be undone.` : void 0,
1072
1069
  confirmLabel: Z?.status === "REJECTED" ? "Reject" : "Cancel proposal",
1073
1070
  cancelLabel: "Keep",
1074
1071
  destructive: !0,
@@ -1084,194 +1081,194 @@ function V() {
1084
1081
  });
1085
1082
  }
1086
1083
  function dt({ proposal: e, portfolio: t, relatedInsights: n, nextStatuses: r, transitionPending: i, onTransition: a, onOpenChange: o }) {
1087
- let s = e ? B(e.trades) : null, ee = e != null && t?.driftThresholdPct != null && Number.isFinite(t.driftThresholdPct) && e.driftPct >= t.driftThresholdPct;
1088
- return /* @__PURE__ */ w(Me, {
1084
+ let s = e ? st(e.trades) : null, ee = e != null && t?.driftThresholdPct != null && Number.isFinite(t.driftThresholdPct) && e.driftPct >= t.driftThresholdPct;
1085
+ return /* @__PURE__ */ T(Ne, {
1089
1086
  open: e !== null,
1090
1087
  onOpenChange: o,
1091
- children: /* @__PURE__ */ w(Pe, {
1088
+ children: /* @__PURE__ */ T(Fe, {
1092
1089
  className: "max-h-[88vh] max-w-3xl overflow-y-auto",
1093
- children: e ? /* @__PURE__ */ T(je, { children: [
1094
- /* @__PURE__ */ T(Le, { children: [
1095
- /* @__PURE__ */ w("p", {
1090
+ children: e ? /* @__PURE__ */ E(Me, { children: [
1091
+ /* @__PURE__ */ E(Re, { children: [
1092
+ /* @__PURE__ */ T("p", {
1096
1093
  className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
1097
1094
  children: "Detail"
1098
1095
  }),
1099
- /* @__PURE__ */ T(Re, {
1096
+ /* @__PURE__ */ E(ze, {
1100
1097
  className: "flex flex-wrap items-center gap-2 text-xl",
1101
1098
  children: [
1102
1099
  t?.name ?? "Rebalance proposal",
1103
- /* @__PURE__ */ w("span", {
1100
+ /* @__PURE__ */ T("span", {
1104
1101
  className: "text-text-secondary",
1105
1102
  children: "— Rebalance proposal"
1106
1103
  }),
1107
- /* @__PURE__ */ w(E, {
1104
+ /* @__PURE__ */ T(D, {
1108
1105
  variant: _(e.status),
1109
- children: z(e.status)
1106
+ children: B(e.status)
1110
1107
  })
1111
1108
  ]
1112
1109
  }),
1113
- /* @__PURE__ */ T(Fe, { children: [
1110
+ /* @__PURE__ */ E(Ie, { children: [
1114
1111
  "Created ",
1115
1112
  m(e.createdAt),
1116
1113
  e.executedAt ? ` · executed ${m(e.executedAt)}` : ""
1117
1114
  ] })
1118
1115
  ] }),
1119
- /* @__PURE__ */ w("div", {
1116
+ /* @__PURE__ */ T("div", {
1120
1117
  className: "rounded-xl border border-border-subtle bg-bg-surface p-4",
1121
- children: /* @__PURE__ */ w(pe, {
1122
- steps: tt,
1123
- current: z(e.status)
1118
+ children: /* @__PURE__ */ T(pe, {
1119
+ steps: nt,
1120
+ current: B(e.status)
1124
1121
  })
1125
1122
  }),
1126
- /* @__PURE__ */ T("div", {
1123
+ /* @__PURE__ */ E("div", {
1127
1124
  className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4",
1128
1125
  children: [
1129
- /* @__PURE__ */ w(u, {
1126
+ /* @__PURE__ */ T(u, {
1130
1127
  label: "Drift",
1131
1128
  value: g(e.driftPct),
1132
1129
  deltaTone: ee ? "negative" : "neutral",
1133
1130
  glow: ee,
1134
- icon: /* @__PURE__ */ w(b, {
1131
+ icon: /* @__PURE__ */ T(x, {
1135
1132
  className: "size-4",
1136
1133
  "aria-hidden": "true"
1137
1134
  })
1138
1135
  }),
1139
- /* @__PURE__ */ w(u, {
1136
+ /* @__PURE__ */ T(u, {
1140
1137
  label: "Threshold",
1141
1138
  value: t?.driftThresholdPct == null ? "—" : g(t.driftThresholdPct)
1142
1139
  }),
1143
- /* @__PURE__ */ T("div", {
1140
+ /* @__PURE__ */ E("div", {
1144
1141
  className: "rounded-xl border border-border-subtle bg-bg-surface p-4",
1145
- children: [/* @__PURE__ */ w("p", {
1142
+ children: [/* @__PURE__ */ T("p", {
1146
1143
  className: "text-xs text-text-secondary",
1147
1144
  children: "Proposed by"
1148
- }), /* @__PURE__ */ w("p", {
1145
+ }), /* @__PURE__ */ T("p", {
1149
1146
  className: "mt-1 truncate text-sm font-medium text-text-primary",
1150
- children: e.proposedById ? /* @__PURE__ */ w(c, { id: e.proposedById }) : "—"
1147
+ children: e.proposedById ? /* @__PURE__ */ T(c, { id: e.proposedById }) : "—"
1151
1148
  })]
1152
1149
  }),
1153
- /* @__PURE__ */ T("div", {
1150
+ /* @__PURE__ */ E("div", {
1154
1151
  className: "rounded-xl border border-border-subtle bg-bg-surface p-4",
1155
- children: [/* @__PURE__ */ w("p", {
1152
+ children: [/* @__PURE__ */ T("p", {
1156
1153
  className: "text-xs text-text-secondary",
1157
1154
  children: "Approved by"
1158
- }), /* @__PURE__ */ w("p", {
1155
+ }), /* @__PURE__ */ T("p", {
1159
1156
  className: "mt-1 truncate text-sm font-medium text-text-primary",
1160
- children: e.approvedById ? /* @__PURE__ */ w(c, { id: e.approvedById }) : "—"
1157
+ children: e.approvedById ? /* @__PURE__ */ T(c, { id: e.approvedById }) : "—"
1161
1158
  })]
1162
1159
  })
1163
1160
  ]
1164
1161
  }),
1165
- /* @__PURE__ */ T("div", {
1162
+ /* @__PURE__ */ E("div", {
1166
1163
  className: "space-y-2",
1167
- children: [/* @__PURE__ */ w("h3", {
1164
+ children: [/* @__PURE__ */ T("h3", {
1168
1165
  className: "text-sm font-semibold text-text-primary",
1169
1166
  children: "Proposed trades"
1170
- }), s && s.length > 0 ? /* @__PURE__ */ w("div", {
1167
+ }), s && s.length > 0 ? /* @__PURE__ */ T("div", {
1171
1168
  className: "overflow-x-auto rounded-lg border border-border-subtle",
1172
- children: /* @__PURE__ */ T(Ye, { children: [/* @__PURE__ */ w(Ze, { children: /* @__PURE__ */ T(R, { children: [
1173
- /* @__PURE__ */ w(L, { children: "Action" }),
1174
- /* @__PURE__ */ w(L, { children: "Symbol" }),
1175
- /* @__PURE__ */ w(L, {
1169
+ children: /* @__PURE__ */ E(Xe, { children: [/* @__PURE__ */ T(Qe, { children: /* @__PURE__ */ E(z, { children: [
1170
+ /* @__PURE__ */ T(R, { children: "Action" }),
1171
+ /* @__PURE__ */ T(R, { children: "Symbol" }),
1172
+ /* @__PURE__ */ T(R, {
1176
1173
  className: "text-right",
1177
1174
  children: "Quantity"
1178
1175
  }),
1179
- /* @__PURE__ */ w(L, {
1176
+ /* @__PURE__ */ T(R, {
1180
1177
  className: "text-right",
1181
1178
  children: "Est. value"
1182
1179
  })
1183
- ] }) }), /* @__PURE__ */ w(Xe, { children: s.map((e, n) => /* @__PURE__ */ T(R, { children: [
1184
- /* @__PURE__ */ w(I, {
1185
- className: `font-semibold ${st(e.action)}`,
1180
+ ] }) }), /* @__PURE__ */ T(Ze, { children: s.map((e, n) => /* @__PURE__ */ E(z, { children: [
1181
+ /* @__PURE__ */ T(L, {
1182
+ className: `font-semibold ${V(e.action)}`,
1186
1183
  children: e.action ? e.action.toUpperCase() : "—"
1187
1184
  }),
1188
- /* @__PURE__ */ w(I, {
1185
+ /* @__PURE__ */ T(L, {
1189
1186
  className: "font-medium text-text-primary",
1190
1187
  children: e.symbol ?? "—"
1191
1188
  }),
1192
- /* @__PURE__ */ w(I, {
1189
+ /* @__PURE__ */ T(L, {
1193
1190
  className: "text-right tabular-nums text-text-secondary",
1194
1191
  children: e.quantity == null ? "—" : e.quantity.toLocaleString()
1195
1192
  }),
1196
- /* @__PURE__ */ w(I, {
1193
+ /* @__PURE__ */ T(L, {
1197
1194
  className: "text-right tabular-nums text-text-secondary",
1198
1195
  children: e.value == null ? "—" : h(e.value, t?.baseCurrency ?? "USD")
1199
1196
  })
1200
1197
  ] }, n)) })] })
1201
- }) : /* @__PURE__ */ T("p", {
1198
+ }) : /* @__PURE__ */ E("p", {
1202
1199
  className: "text-sm text-text-secondary",
1203
1200
  children: [ct(e.trades), " — no structured trade breakdown available."]
1204
1201
  })]
1205
1202
  }),
1206
- /* @__PURE__ */ T("div", {
1203
+ /* @__PURE__ */ E("div", {
1207
1204
  className: "space-y-1",
1208
- children: [/* @__PURE__ */ w("h3", {
1205
+ children: [/* @__PURE__ */ T("h3", {
1209
1206
  className: "text-sm font-semibold text-text-primary",
1210
1207
  children: "Rationale"
1211
- }), /* @__PURE__ */ w("p", {
1208
+ }), /* @__PURE__ */ T("p", {
1212
1209
  className: "text-sm text-text-secondary",
1213
1210
  children: e.rationale ?? "—"
1214
1211
  })]
1215
1212
  }),
1216
- r.length > 0 ? /* @__PURE__ */ w("div", {
1213
+ r.length > 0 ? /* @__PURE__ */ T("div", {
1217
1214
  className: "flex flex-wrap gap-2",
1218
1215
  children: r.map((e) => {
1219
1216
  let t = e === "REJECTED" || e === "CANCELLED";
1220
- return /* @__PURE__ */ T(D, {
1217
+ return /* @__PURE__ */ E(O, {
1221
1218
  variant: t ? "outline" : "default",
1222
1219
  size: "sm",
1223
1220
  disabled: i,
1224
1221
  className: t ? "text-status-error-text" : void 0,
1225
1222
  onClick: () => a(e),
1226
- children: [w(t ? C : ve, {
1223
+ children: [T(t ? w : ye, {
1227
1224
  className: "size-4",
1228
1225
  "aria-hidden": "true"
1229
- }), z(e)]
1226
+ }), B(e)]
1230
1227
  }, e);
1231
1228
  })
1232
1229
  }) : null,
1233
- n.length > 0 ? /* @__PURE__ */ T("div", {
1230
+ n.length > 0 ? /* @__PURE__ */ E("div", {
1234
1231
  className: "space-y-2 border-t border-border-subtle pt-4",
1235
- children: [/* @__PURE__ */ T("h3", {
1232
+ children: [/* @__PURE__ */ E("h3", {
1236
1233
  className: "flex items-center gap-2 text-sm font-semibold text-text-primary",
1237
- children: [/* @__PURE__ */ w(x, {
1234
+ children: [/* @__PURE__ */ T(S, {
1238
1235
  className: "size-4",
1239
1236
  "aria-hidden": "true"
1240
1237
  }), "Risk insights"]
1241
- }), /* @__PURE__ */ w("ul", {
1238
+ }), /* @__PURE__ */ T("ul", {
1242
1239
  className: "space-y-2",
1243
- children: n.map((e) => /* @__PURE__ */ T("li", {
1240
+ children: n.map((e) => /* @__PURE__ */ E("li", {
1244
1241
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
1245
- children: [/* @__PURE__ */ T("div", {
1242
+ children: [/* @__PURE__ */ E("div", {
1246
1243
  className: "flex flex-wrap items-center gap-2",
1247
1244
  children: [
1248
- /* @__PURE__ */ w("span", {
1245
+ /* @__PURE__ */ T("span", {
1249
1246
  className: "text-sm font-medium text-text-primary",
1250
1247
  children: e.title
1251
1248
  }),
1252
- /* @__PURE__ */ w(E, {
1249
+ /* @__PURE__ */ T(D, {
1253
1250
  variant: _(e.severity),
1254
- children: z(e.severity)
1251
+ children: B(e.severity)
1255
1252
  }),
1256
- /* @__PURE__ */ w(E, {
1253
+ /* @__PURE__ */ T(D, {
1257
1254
  variant: "outline",
1258
- children: z(e.type)
1255
+ children: B(e.type)
1259
1256
  }),
1260
- /* @__PURE__ */ w(E, {
1257
+ /* @__PURE__ */ T(D, {
1261
1258
  variant: _(e.status),
1262
- children: z(e.status)
1259
+ children: B(e.status)
1263
1260
  })
1264
1261
  ]
1265
- }), e.detail ? /* @__PURE__ */ w("p", {
1262
+ }), e.detail ? /* @__PURE__ */ T("p", {
1266
1263
  className: "mt-1 text-xs text-text-secondary",
1267
1264
  children: e.detail
1268
1265
  }) : null]
1269
1266
  }, e.id))
1270
1267
  })]
1271
1268
  }) : null,
1272
- /* @__PURE__ */ w("div", {
1269
+ /* @__PURE__ */ T("div", {
1273
1270
  className: "border-t border-border-subtle pt-4",
1274
- children: /* @__PURE__ */ w(he, {
1271
+ children: /* @__PURE__ */ T(v, {
1275
1272
  entityType: "brainyrich-rebalance",
1276
1273
  entityId: e.id,
1277
1274
  heading: "Discussion"
@@ -1282,56 +1279,50 @@ function dt({ proposal: e, portfolio: t, relatedInsights: n, nextStatuses: r, tr
1282
1279
  });
1283
1280
  }
1284
1281
  function ft({ signal: e }) {
1285
- let t = Object.entries(e.metrics ?? {});
1286
- return /* @__PURE__ */ T("li", {
1282
+ let t = ge(e.metrics);
1283
+ return /* @__PURE__ */ E("li", {
1287
1284
  className: "rounded-lg border border-border-subtle bg-bg-surface p-4",
1288
1285
  children: [
1289
- /* @__PURE__ */ T("div", {
1286
+ /* @__PURE__ */ E("div", {
1290
1287
  className: "flex flex-wrap items-center gap-2",
1291
1288
  children: [
1292
- /* @__PURE__ */ w("p", {
1289
+ /* @__PURE__ */ T("p", {
1293
1290
  className: "font-medium text-text-primary",
1294
1291
  children: e.title
1295
1292
  }),
1296
- /* @__PURE__ */ w(E, {
1293
+ /* @__PURE__ */ T(D, {
1297
1294
  variant: _(e.severity),
1298
- children: z(e.severity)
1295
+ children: B(e.severity)
1299
1296
  }),
1300
- /* @__PURE__ */ w(E, {
1297
+ /* @__PURE__ */ T(D, {
1301
1298
  variant: "outline",
1302
- children: z(e.kind)
1299
+ children: B(e.kind)
1303
1300
  })
1304
1301
  ]
1305
1302
  }),
1306
- e.detail ? /* @__PURE__ */ w("p", {
1303
+ e.detail ? /* @__PURE__ */ T("p", {
1307
1304
  className: "mt-1 text-sm text-text-secondary",
1308
1305
  children: e.detail
1309
1306
  }) : null,
1310
- t.length > 0 ? /* @__PURE__ */ w("dl", {
1311
- className: "mt-3 grid grid-cols-2 gap-x-4 gap-y-1 sm:grid-cols-3 lg:grid-cols-4",
1312
- children: t.map(([e, t]) => /* @__PURE__ */ T("div", {
1313
- className: "min-w-0",
1314
- children: [/* @__PURE__ */ w("dt", {
1315
- className: "truncate text-[11px] uppercase tracking-wide text-text-muted",
1316
- children: z(e)
1317
- }), /* @__PURE__ */ w("dd", {
1318
- className: "truncate text-sm font-medium tabular-nums text-text-primary",
1319
- children: ot(t)
1320
- })]
1321
- }, e))
1307
+ t ? /* @__PURE__ */ E("div", {
1308
+ className: "mt-3 space-y-2",
1309
+ children: [t.formula ? /* @__PURE__ */ T("p", {
1310
+ className: "break-words text-xs text-text-secondary",
1311
+ children: t.formula
1312
+ }) : null, /* @__PURE__ */ T(me, { entries: t.entries })]
1322
1313
  }) : null
1323
1314
  ]
1324
1315
  });
1325
1316
  }
1326
1317
  function pt({ opportunity: e }) {
1327
- let t = Object.entries(e.metrics ?? {});
1328
- return /* @__PURE__ */ T("li", {
1318
+ let t = ge(e.metrics);
1319
+ return /* @__PURE__ */ E("li", {
1329
1320
  className: "rounded-lg border border-border-subtle bg-bg-surface p-4",
1330
1321
  children: [
1331
- /* @__PURE__ */ T("div", {
1322
+ /* @__PURE__ */ E("div", {
1332
1323
  className: "flex flex-wrap items-center gap-2",
1333
1324
  children: [
1334
- /* @__PURE__ */ T("p", {
1325
+ /* @__PURE__ */ E("p", {
1335
1326
  className: "font-medium text-text-primary",
1336
1327
  children: [
1337
1328
  e.symbol,
@@ -1339,21 +1330,21 @@ function pt({ opportunity: e }) {
1339
1330
  h(e.unrealizedLoss)
1340
1331
  ]
1341
1332
  }),
1342
- /* @__PURE__ */ w(E, {
1333
+ /* @__PURE__ */ T(D, {
1343
1334
  variant: _(e.severity),
1344
- children: z(e.severity)
1335
+ children: B(e.severity)
1345
1336
  }),
1346
- e.washSaleRisk ? /* @__PURE__ */ T(E, {
1337
+ e.washSaleRisk ? /* @__PURE__ */ E(D, {
1347
1338
  variant: "outline",
1348
1339
  className: "text-status-error-text",
1349
- children: [/* @__PURE__ */ w(_e, {
1340
+ children: [/* @__PURE__ */ T(ve, {
1350
1341
  className: "mr-1 size-3",
1351
1342
  "aria-hidden": "true"
1352
1343
  }), "Wash-sale caution"]
1353
1344
  }) : null
1354
1345
  ]
1355
1346
  }),
1356
- /* @__PURE__ */ T("p", {
1347
+ /* @__PURE__ */ E("p", {
1357
1348
  className: "mt-1 text-sm text-text-secondary",
1358
1349
  children: [
1359
1350
  "Market value ",
@@ -1366,99 +1357,93 @@ function pt({ opportunity: e }) {
1366
1357
  " of portfolio value"
1367
1358
  ]
1368
1359
  }),
1369
- e.washSaleReason ? /* @__PURE__ */ w("p", {
1360
+ e.washSaleReason ? /* @__PURE__ */ T("p", {
1370
1361
  className: "mt-1 text-xs text-status-error-text",
1371
1362
  children: e.washSaleReason
1372
1363
  }) : null,
1373
- t.length > 0 ? /* @__PURE__ */ w("dl", {
1374
- className: "mt-3 grid grid-cols-2 gap-x-4 gap-y-1 sm:grid-cols-3 lg:grid-cols-4",
1375
- children: t.filter(([e]) => e !== "formula").map(([e, t]) => /* @__PURE__ */ T("div", {
1376
- className: "min-w-0",
1377
- children: [/* @__PURE__ */ w("dt", {
1378
- className: "truncate text-[11px] uppercase tracking-wide text-text-muted",
1379
- children: z(e)
1380
- }), /* @__PURE__ */ w("dd", {
1381
- className: "truncate text-sm font-medium tabular-nums text-text-primary",
1382
- children: ot(t)
1383
- })]
1384
- }, e))
1364
+ t ? /* @__PURE__ */ E("div", {
1365
+ className: "mt-3 space-y-2",
1366
+ children: [t.formula ? /* @__PURE__ */ T("p", {
1367
+ className: "break-words text-xs text-text-secondary",
1368
+ children: t.formula
1369
+ }) : null, /* @__PURE__ */ T(me, { entries: t.entries })]
1385
1370
  }) : null
1386
1371
  ]
1387
1372
  });
1388
1373
  }
1389
1374
  function mt({ insight: e, onAcknowledge: t, onResolve: n, onDismiss: r, actionPending: i }) {
1390
1375
  let a = e.status === "RESOLVED" || e.status === "DISMISSED";
1391
- return /* @__PURE__ */ T("div", {
1376
+ return /* @__PURE__ */ E("div", {
1392
1377
  className: "flex items-start justify-between gap-4 rounded-lg border border-border-subtle bg-bg-surface p-4 transition-shadow motion-safe:hover:shadow-[var(--shadow-pop-hover,var(--shadow-elevation-2))]",
1393
- children: [/* @__PURE__ */ T("div", {
1378
+ children: [/* @__PURE__ */ E("div", {
1394
1379
  className: "min-w-0 space-y-1",
1395
1380
  children: [
1396
- /* @__PURE__ */ T("div", {
1381
+ /* @__PURE__ */ E("div", {
1397
1382
  className: "flex flex-wrap items-center gap-2",
1398
1383
  children: [
1399
- /* @__PURE__ */ w("p", {
1384
+ /* @__PURE__ */ T("p", {
1400
1385
  className: "font-medium text-text-primary",
1401
1386
  children: e.title
1402
1387
  }),
1403
- /* @__PURE__ */ w(E, {
1388
+ /* @__PURE__ */ T(D, {
1404
1389
  variant: _(e.severity),
1405
- children: z(e.severity)
1390
+ children: B(e.severity)
1406
1391
  }),
1407
- /* @__PURE__ */ w(E, {
1392
+ /* @__PURE__ */ T(D, {
1408
1393
  variant: "outline",
1409
- children: z(e.type)
1394
+ children: B(e.type)
1410
1395
  }),
1411
- /* @__PURE__ */ w(E, {
1396
+ /* @__PURE__ */ T(D, {
1412
1397
  variant: _(e.status),
1413
- children: z(e.status)
1398
+ children: B(e.status)
1414
1399
  })
1415
1400
  ]
1416
1401
  }),
1417
- e.detail ? /* @__PURE__ */ w("p", {
1402
+ e.detail ? /* @__PURE__ */ T("p", {
1418
1403
  className: "text-sm text-text-secondary",
1419
1404
  children: e.detail
1420
1405
  }) : null,
1421
- /* @__PURE__ */ T("p", {
1406
+ /* @__PURE__ */ E("p", {
1422
1407
  className: "text-xs text-text-muted",
1423
1408
  children: ["Detected ", m(e.createdAt)]
1424
1409
  })
1425
1410
  ]
1426
- }), a ? /* @__PURE__ */ w("span", {
1411
+ }), a ? /* @__PURE__ */ T("span", {
1427
1412
  className: "mt-1 text-xs text-text-muted",
1428
1413
  children: "Closed"
1429
- }) : /* @__PURE__ */ T(ze, { children: [/* @__PURE__ */ w(Ue, {
1414
+ }) : /* @__PURE__ */ E(Be, { children: [/* @__PURE__ */ T(We, {
1430
1415
  asChild: !0,
1431
- children: /* @__PURE__ */ w(D, {
1416
+ children: /* @__PURE__ */ T(O, {
1432
1417
  variant: "ghost",
1433
1418
  size: "sm",
1434
1419
  "aria-label": `Actions for ${e.title}`,
1435
1420
  disabled: i,
1436
- children: /* @__PURE__ */ w(Ce, {
1421
+ children: /* @__PURE__ */ T(we, {
1437
1422
  className: "size-4",
1438
1423
  "aria-hidden": "true"
1439
1424
  })
1440
1425
  })
1441
- }), /* @__PURE__ */ T(Be, {
1426
+ }), /* @__PURE__ */ E(Ve, {
1442
1427
  align: "end",
1443
1428
  children: [
1444
- e.status === "OPEN" ? /* @__PURE__ */ T(N, {
1429
+ e.status === "OPEN" ? /* @__PURE__ */ E(P, {
1445
1430
  onClick: t,
1446
- children: [/* @__PURE__ */ w(ye, {
1431
+ children: [/* @__PURE__ */ T(be, {
1447
1432
  className: "size-4",
1448
1433
  "aria-hidden": "true"
1449
1434
  }), "Acknowledge"]
1450
1435
  }) : null,
1451
- /* @__PURE__ */ T(N, {
1436
+ /* @__PURE__ */ E(P, {
1452
1437
  onClick: n,
1453
- children: [/* @__PURE__ */ w(S, {
1438
+ children: [/* @__PURE__ */ T(C, {
1454
1439
  className: "size-4",
1455
1440
  "aria-hidden": "true"
1456
1441
  }), "Resolve"]
1457
1442
  }),
1458
- /* @__PURE__ */ T(N, {
1443
+ /* @__PURE__ */ E(P, {
1459
1444
  className: "text-status-error-text",
1460
1445
  onClick: r,
1461
- children: [/* @__PURE__ */ w(C, {
1446
+ children: [/* @__PURE__ */ T(w, {
1462
1447
  className: "size-4",
1463
1448
  "aria-hidden": "true"
1464
1449
  }), "Dismiss"]
@@ -1468,6 +1453,6 @@ function mt({ insight: e, onAcknowledge: t, onResolve: n, onDismiss: r, actionPe
1468
1453
  });
1469
1454
  }
1470
1455
  //#endregion
1471
- export { V as RiskPage };
1456
+ export { H as RiskPage };
1472
1457
 
1473
1458
  //# sourceMappingURL=RiskPage.js.map