@burdenoff/microfe-brainyrich 2026.828.2 → 2026.830.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,29 @@
1
1
  import { useAcknowledgeInsight as e, useAllAccounts as t, useAllTransactions as n, useCreateInsight as r, useDismissInsight as i, useHoldings as a, usePagedInsights as o, usePortfolios as ee, useResolveInsight as te } from "../hooks/useBrainyRichApi.js";
2
2
  import { LoadMore as ne } from "../components/LoadMore.js";
3
3
  import { ConfirmDialog as s } from "../components/ConfirmDialog.js";
4
- import { DonutChart as re, FadeIn as c, GlassCard as l, LifecycleStepper as ie, MiniAreaChart as u, StatTile as d } from "../components/viz.js";
4
+ import { useTr as c } from "../hooks/useTr.js";
5
+ import { DonutChart as re, FadeIn as ie, GlassCard as l, LifecycleStepper as u, MiniAreaChart as ae, StatTile as d } from "../components/viz.js";
5
6
  import "../components/index.js";
6
- import { AllocationBars as f, EmptyState as p, ErrorState as ae, LoadingState as m, SectionShell as oe, deltaToneClass as se, formatDate as h, formatMoney as g, statusBadgeVariant as ce } from "./_shared.js";
7
+ import { AllocationBars as f, EmptyState as p, ErrorState as oe, LoadingState as m, SectionShell as se, deltaToneClass as ce, formatDate as h, formatMoney as g, statusBadgeVariant as le } from "./_shared.js";
7
8
  import { useMemo as _, useState as v } from "react";
8
- import { ArrowDownRight as le, ArrowUpRight as ue, Check as de, Coins as fe, Landmark as pe, MoreHorizontal as y, Receipt as me, ReceiptText as he, Scissors as b, ShieldCheck as ge, Sparkles as _e, TrendingDown as ve, TrendingUp as x, X as ye } from "lucide-react";
9
+ import { ArrowDownRight as ue, ArrowUpRight as de, Check as fe, Coins as pe, Landmark as me, MoreHorizontal as he, Receipt as ge, ReceiptText as _e, Scissors as y, ShieldCheck as b, Sparkles as ve, TrendingDown as ye, TrendingUp as x, X as be } from "lucide-react";
9
10
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
10
- import { Badge as T, Button as E, Card as D, CardContent as O, CardDescription as be, CardHeader as xe, CardTitle as Se, DropdownMenu as Ce, DropdownMenuContent as k, DropdownMenuItem as A, DropdownMenuLabel as we, DropdownMenuSeparator as j, DropdownMenuTrigger as Te, Input as Ee, Label as M, ResponsiveDialog as De, ResponsiveDialogClose as Oe, ResponsiveDialogContent as ke, ResponsiveDialogDescription as Ae, ResponsiveDialogFooter as je, ResponsiveDialogHeader as Me, ResponsiveDialogTitle as Ne, Select as Pe, SelectContent as Fe, SelectItem as N, SelectTrigger as Ie, SelectValue as Le, Table as P, TableBody as F, TableCell as I, TableHead as L, TableHeader as R, TableRow as z, Tabs as Re, TabsContent as B, TabsList as ze, TabsTrigger as V, Textarea as Be } from "@burdenoff/fe-libs/ui";
11
+ import { Badge as T, Button as E, Card as D, CardContent as O, CardDescription as xe, CardHeader as Se, CardTitle as Ce, DropdownMenu as we, DropdownMenuContent as Te, DropdownMenuItem as k, DropdownMenuLabel as A, DropdownMenuSeparator as Ee, DropdownMenuTrigger as j, Input as De, Label as M, ResponsiveDialog as Oe, ResponsiveDialogClose as ke, ResponsiveDialogContent as Ae, ResponsiveDialogDescription as je, ResponsiveDialogFooter as Me, ResponsiveDialogHeader as Ne, ResponsiveDialogTitle as Pe, Select as Fe, SelectContent as Ie, SelectItem as N, SelectTrigger as Le, SelectValue as Re, Table as P, TableBody as F, TableCell as I, TableHead as L, TableHeader as R, TableRow as z, Tabs as ze, TabsContent as B, TabsList as Be, TabsTrigger as Ve, Textarea as He } from "@burdenoff/fe-libs/ui";
11
12
  //#region src/brainyrich/pages/TaxPage.tsx
12
- var Ve = [
13
+ var Ue = [
13
14
  "INFO",
14
15
  "LOW",
15
16
  "MEDIUM",
16
17
  "HIGH",
17
18
  "CRITICAL"
18
19
  ];
19
- function H(e) {
20
+ function V(e) {
20
21
  return e.toLowerCase().split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
21
22
  }
22
- function U(e) {
23
+ function H(e) {
23
24
  return e.marketValue - e.costBasis;
24
25
  }
25
- function He(e) {
26
+ function We(e) {
26
27
  switch (e) {
27
28
  case "CRITICAL": return "error";
28
29
  case "HIGH": return "warning";
@@ -31,92 +32,92 @@ function He(e) {
31
32
  default: return "neutral";
32
33
  }
33
34
  }
34
- var Ue = {
35
+ var Ge = {
35
36
  title: "",
36
37
  detail: "",
37
38
  severity: "MEDIUM",
38
39
  subject: ""
39
40
  };
40
- function W() {
41
- let { items: a, hasMore: f, loadMore: se, isLoading: ce, isFetchingNextPage: le, isError: ue, refetch: de } = o(), { data: y, isLoading: ge, isError: ye, refetch: Ce } = n(), { data: k, isLoading: A } = t(), { data: we } = ee(), j = r(), Te = e(), W = i(), G = te(), [qe, K] = v(!1), [q, J] = v(Ue), [Je, Y] = v(null), [X, Ye] = v(null), Xe = _(() => a.filter((e) => e.type === "TAX_OPPORTUNITY"), [a]), Z = _(() => Xe.filter((e) => e.status === "OPEN"), [Xe]), Ze = _(() => [
41
+ function Ke() {
42
+ let a = c(), { items: f, hasMore: ce, loadMore: le, isLoading: ue, isFetchingNextPage: de, isError: fe, refetch: he } = o(), { data: b, isLoading: be, isError: we, refetch: Te } = n(), { data: k, isLoading: A } = t(), { data: Ee } = ee(), j = r(), Ke = e(), U = i(), Xe = te(), [Ze, W] = v(!1), [G, K] = v(Ge), [Qe, q] = v(null), [J, $e] = v(null), Y = _(() => f.filter((e) => e.type === "TAX_OPPORTUNITY"), [f]), X = _(() => Y.filter((e) => e.status === "OPEN"), [Y]), et = _(() => [
42
43
  "CRITICAL",
43
44
  "HIGH",
44
45
  "MEDIUM",
45
46
  "LOW",
46
47
  "INFO"
47
48
  ].map((e) => ({
48
- label: H(e),
49
- value: Z.filter((t) => t.severity === e).length,
50
- tone: He(e)
51
- })).filter((e) => e.value > 0), [Z]), Q = _(() => y.filter((e) => e.type === "SELL"), [y]), $ = _(() => y.filter((e) => e.type === "DIVIDEND" || e.type === "INTEREST"), [y]), Qe = Q.reduce((e, t) => e + t.amount, 0), $e = $.reduce((e, t) => e + t.amount, 0), et = Q[0]?.currency ?? $[0]?.currency ?? "USD", tt = _(() => [...Q].sort((e, t) => new Date(e.tradeDate).getTime() - new Date(t.tradeDate).getTime()).reduce((e, t) => {
49
+ label: V(e),
50
+ value: X.filter((t) => t.severity === e).length,
51
+ tone: We(e)
52
+ })).filter((e) => e.value > 0), [X]), Z = _(() => b.filter((e) => e.type === "SELL"), [b]), Q = _(() => b.filter((e) => e.type === "DIVIDEND" || e.type === "INTEREST"), [b]), tt = Z.reduce((e, t) => e + t.amount, 0), nt = Q.reduce((e, t) => e + t.amount, 0), rt = Z[0]?.currency ?? Q[0]?.currency ?? "USD", it = _(() => [...Z].sort((e, t) => new Date(e.tradeDate).getTime() - new Date(t.tradeDate).getTime()).reduce((e, t) => {
52
53
  let n = e.length > 0 ? e[e.length - 1].y : 0;
53
54
  return e.push({
54
55
  x: h(t.tradeDate),
55
56
  y: n + t.amount
56
57
  }), e;
57
- }, []), [Q]), nt = tt.map((e) => e.y), rt = _(() => k.reduce((e, t) => e + t.holdings.reduce((e, t) => e + U(t), 0), 0), [k]), it = k[0]?.currency ?? et, at = _(() => k.flatMap((e) => e.holdings.filter((e) => U(e) < 0).map((t) => ({
58
+ }, []), [Z]), at = it.map((e) => e.y), ot = _(() => k.reduce((e, t) => e + t.holdings.reduce((e, t) => e + H(t), 0), 0), [k]), st = k[0]?.currency ?? rt, ct = _(() => k.flatMap((e) => e.holdings.filter((e) => H(e) < 0).map((t) => ({
58
59
  holding: t,
59
60
  accountId: e.id,
60
61
  accountName: e.name,
61
- loss: U(t)
62
- }))).sort((e, t) => e.loss - t.loss), [k]), ot = at.reduce((e, t) => e + t.loss, 0), st = at[0]?.holding.currency ?? it, ct = k.length > 0 || we.length > 0;
63
- function lt() {
64
- J(Ue), Y(null), K(!0);
62
+ loss: H(t)
63
+ }))).sort((e, t) => e.loss - t.loss), [k]), lt = ct.reduce((e, t) => e + t.loss, 0), ut = ct[0]?.holding.currency ?? st, $ = k.length > 0 || Ee.length > 0;
64
+ function dt() {
65
+ K(Ge), q(null), W(!0);
65
66
  }
66
- function ut(e) {
67
- J({
67
+ function ft(e) {
68
+ K({
68
69
  title: `Harvest ${e.holding.symbol} loss`,
69
70
  detail: `Tax-loss-harvest candidate: ${e.holding.symbol} is sitting at an unrealized loss of ${g(e.loss, e.holding.currency)}. Create a rebalance proposal to realize the loss while holding the target allocation.`,
70
71
  severity: "MEDIUM",
71
72
  subject: `account:${e.accountId}`
72
- }), Y(null), K(!0);
73
+ }), q(null), W(!0);
73
74
  }
74
- function dt() {
75
- let e = q.title.trim();
75
+ function pt() {
76
+ let e = G.title.trim();
76
77
  if (!e) {
77
- Y("A title is required.");
78
+ q("A title is required.");
78
79
  return;
79
80
  }
80
- if (!q.subject) {
81
- Y("Select the account or portfolio this opportunity applies to.");
81
+ if (!G.subject) {
82
+ q("Select the account or portfolio this opportunity applies to.");
82
83
  return;
83
84
  }
84
- let [t, n] = q.subject.split(":");
85
+ let [t, n] = G.subject.split(":");
85
86
  if (!t || !n) {
86
- Y("Select a valid subject.");
87
+ q("Select a valid subject.");
87
88
  return;
88
89
  }
89
90
  j.mutate({
90
91
  type: "TAX_OPPORTUNITY",
91
- severity: q.severity,
92
+ severity: G.severity,
92
93
  title: e,
93
- detail: q.detail.trim() || null,
94
+ detail: G.detail.trim() || null,
94
95
  subjectId: n,
95
96
  subjectType: t
96
97
  }, {
97
98
  onSuccess: () => {
98
- K(!1), J(Ue);
99
+ W(!1), K(Ge);
99
100
  },
100
101
  onError: (e) => {
101
- Y(e instanceof Error ? e.message : "Could not create the tax insight.");
102
+ q(e instanceof Error ? e.message : "Could not create the tax insight.");
102
103
  }
103
104
  });
104
105
  }
105
- let ft = Te.isPending || W.isPending || G.isPending;
106
- return /* @__PURE__ */ w(oe, {
106
+ let mt = Ke.isPending || U.isPending || Xe.isPending;
107
+ return /* @__PURE__ */ w(se, {
107
108
  title: "Tax Center",
108
109
  description: "Act on tax-opportunity insights and review unrealized and realized gains — all from your live portfolio data.",
109
- badges: [`${Z.length} open opportunit${Z.length === 1 ? "y" : "ies"}`],
110
+ badges: [`${X.length} open opportunit${X.length === 1 ? "y" : "ies"}`],
110
111
  actionLabel: "New tax insight",
111
- onAction: lt,
112
+ onAction: dt,
112
113
  children: [
113
- /* @__PURE__ */ C(c, { children: /* @__PURE__ */ w("div", {
114
+ /* @__PURE__ */ C(ie, { children: /* @__PURE__ */ w("div", {
114
115
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
115
116
  children: [
116
117
  /* @__PURE__ */ C(d, {
117
118
  label: "Open opportunities",
118
- value: String(Z.length),
119
- icon: /* @__PURE__ */ C(_e, {
119
+ value: String(X.length),
120
+ icon: /* @__PURE__ */ C(ve, {
120
121
  className: "size-4",
121
122
  "aria-hidden": "true"
122
123
  }),
@@ -124,63 +125,63 @@ function W() {
124
125
  }),
125
126
  /* @__PURE__ */ C(d, {
126
127
  label: "Realized proceeds",
127
- value: g(Qe, et),
128
- icon: /* @__PURE__ */ C(pe, {
128
+ value: g(tt, rt),
129
+ icon: /* @__PURE__ */ C(me, {
129
130
  className: "size-4",
130
131
  "aria-hidden": "true"
131
132
  }),
132
- spark: nt.length > 1 ? nt : void 0,
133
+ spark: at.length > 1 ? at : void 0,
133
134
  sparkTone: "brand"
134
135
  }),
135
136
  /* @__PURE__ */ C(d, {
136
137
  label: "Investment income",
137
- value: g($e, et),
138
- icon: /* @__PURE__ */ C(fe, {
138
+ value: g(nt, rt),
139
+ icon: /* @__PURE__ */ C(pe, {
139
140
  className: "size-4",
140
141
  "aria-hidden": "true"
141
142
  })
142
143
  }),
143
144
  /* @__PURE__ */ C(d, {
144
145
  label: "Harvestable loss",
145
- value: A ? "—" : g(ot, st),
146
- icon: /* @__PURE__ */ C(b, {
146
+ value: A ? "—" : g(lt, ut),
147
+ icon: /* @__PURE__ */ C(y, {
147
148
  className: "size-4",
148
149
  "aria-hidden": "true"
149
150
  })
150
151
  }),
151
152
  /* @__PURE__ */ C(d, {
152
153
  label: "Unrealized P/L",
153
- value: A ? "—" : g(rt, it),
154
- deltaTone: rt >= 0 ? "positive" : "negative",
155
- icon: C(rt >= 0 ? x : ve, {
154
+ value: A ? "—" : g(ot, st),
155
+ deltaTone: ot >= 0 ? "positive" : "negative",
156
+ icon: C(ot >= 0 ? x : ye, {
156
157
  className: "size-4",
157
158
  "aria-hidden": "true"
158
159
  })
159
160
  })
160
161
  ]
161
162
  }) }),
162
- /* @__PURE__ */ w(Re, {
163
+ /* @__PURE__ */ w(ze, {
163
164
  defaultValue: "opportunities",
164
165
  className: "space-y-4",
165
166
  children: [
166
- /* @__PURE__ */ w(ze, {
167
+ /* @__PURE__ */ w(Be, {
167
168
  className: "grid w-full grid-cols-2 sm:grid-cols-4",
168
169
  children: [
169
- /* @__PURE__ */ C(V, {
170
+ /* @__PURE__ */ C(Ve, {
170
171
  value: "opportunities",
171
- children: "Opportunities"
172
+ children: a("brainyrich.tax.tabs.opportunities", "Opportunities")
172
173
  }),
173
- /* @__PURE__ */ C(V, {
174
+ /* @__PURE__ */ C(Ve, {
174
175
  value: "harvest",
175
- children: "Harvest"
176
+ children: a("brainyrich.tax.tabs.harvest", "Harvest")
176
177
  }),
177
- /* @__PURE__ */ C(V, {
178
+ /* @__PURE__ */ C(Ve, {
178
179
  value: "unrealized",
179
- children: "Unrealized"
180
+ children: a("brainyrich.tax.tabs.unrealized", "Unrealized")
180
181
  }),
181
- /* @__PURE__ */ C(V, {
182
+ /* @__PURE__ */ C(Ve, {
182
183
  value: "realized",
183
- children: "Realized"
184
+ children: a("brainyrich.tax.tabs.realized", "Realized")
184
185
  })
185
186
  ]
186
187
  }),
@@ -190,42 +191,42 @@ function W() {
190
191
  className: "grid gap-4 lg:grid-cols-3",
191
192
  children: [/* @__PURE__ */ w(D, {
192
193
  className: "lg:col-span-2",
193
- children: [/* @__PURE__ */ w(xe, { children: [/* @__PURE__ */ w(Se, {
194
+ children: [/* @__PURE__ */ w(Se, { children: [/* @__PURE__ */ w(Ce, {
194
195
  className: "flex items-center gap-2",
195
- children: [/* @__PURE__ */ C(_e, {
196
+ children: [/* @__PURE__ */ C(ve, {
196
197
  className: "h-5 w-5",
197
198
  "aria-hidden": "true"
198
- }), "Tax-opportunity insights"]
199
- }), /* @__PURE__ */ C(be, { children: "Tax-loss harvesting and other tax signals detected across your accounts and portfolios." })] }), /* @__PURE__ */ C(O, { children: ce ? /* @__PURE__ */ C(m, {}) : ue ? /* @__PURE__ */ C(ae, { onRetry: () => de() }) : Xe.length === 0 ? /* @__PURE__ */ C(p, {
200
- icon: /* @__PURE__ */ C(me, {
199
+ }), a("brainyrich.tax.opportunities.title", "Tax-opportunity insights")]
200
+ }), /* @__PURE__ */ C(xe, { children: a("brainyrich.tax.opportunities.description", "Tax-loss harvesting and other tax signals detected across your accounts and portfolios.") })] }), /* @__PURE__ */ C(O, { children: ue ? /* @__PURE__ */ C(m, {}) : fe ? /* @__PURE__ */ C(oe, { onRetry: () => he() }) : Y.length === 0 ? /* @__PURE__ */ C(p, {
201
+ icon: /* @__PURE__ */ C(ge, {
201
202
  className: "size-6",
202
203
  "aria-hidden": "true"
203
204
  }),
204
205
  title: "No tax opportunities yet",
205
206
  description: "Tax-opportunity insights appear here as the backend generates them from your holdings. You can also flag one manually.",
206
- action: ct ? /* @__PURE__ */ w(E, {
207
+ action: $ ? /* @__PURE__ */ w(E, {
207
208
  size: "sm",
208
- onClick: lt,
209
- children: [/* @__PURE__ */ C(_e, {
209
+ onClick: dt,
210
+ children: [/* @__PURE__ */ C(ve, {
210
211
  className: "size-4",
211
212
  "aria-hidden": "true"
212
213
  }), "New tax insight"]
213
214
  }) : void 0
214
215
  }) : /* @__PURE__ */ w("div", {
215
216
  className: "space-y-3",
216
- children: [Xe.map((e, t) => /* @__PURE__ */ C(c, {
217
+ children: [Y.map((e, t) => /* @__PURE__ */ C(ie, {
217
218
  index: t,
218
- children: /* @__PURE__ */ C(Ke, {
219
+ children: /* @__PURE__ */ C(Ye, {
219
220
  insight: e,
220
- actionPending: ft,
221
- onAcknowledge: () => Te.mutate(e.id),
222
- onResolve: () => G.mutate(e.id),
223
- onDismiss: () => Ye(e)
221
+ actionPending: mt,
222
+ onAcknowledge: () => Ke.mutate(e.id),
223
+ onResolve: () => Xe.mutate(e.id),
224
+ onDismiss: () => $e(e)
224
225
  })
225
226
  }, e.id)), /* @__PURE__ */ C(ne, {
226
- hasMore: f,
227
- onClick: se,
228
- loading: le,
227
+ hasMore: ce,
228
+ onClick: le,
229
+ loading: de,
229
230
  label: "Load more insights"
230
231
  })]
231
232
  }) })]
@@ -244,12 +245,12 @@ function W() {
244
245
  })]
245
246
  }), /* @__PURE__ */ C("div", {
246
247
  className: "mt-4",
247
- children: Ze.length === 0 ? /* @__PURE__ */ C("p", {
248
+ children: et.length === 0 ? /* @__PURE__ */ C("p", {
248
249
  className: "py-6 text-center text-sm text-text-secondary",
249
250
  children: "No open opportunities."
250
251
  }) : /* @__PURE__ */ C(re, {
251
- data: Ze,
252
- centerValue: String(Z.length),
252
+ data: et,
253
+ centerValue: String(X.length),
253
254
  centerLabel: "open",
254
255
  valueFormatter: (e) => `${e} signal${e === 1 ? "" : "s"}`
255
256
  })
@@ -263,7 +264,7 @@ function W() {
263
264
  className: "mb-4 mt-1 text-xs text-text-secondary",
264
265
  children: "How a loss becomes a realized tax benefit."
265
266
  }),
266
- /* @__PURE__ */ C(ie, {
267
+ /* @__PURE__ */ C(u, {
267
268
  steps: [
268
269
  "Detect",
269
270
  "Review",
@@ -278,38 +279,38 @@ function W() {
278
279
  }),
279
280
  /* @__PURE__ */ C(B, {
280
281
  value: "harvest",
281
- children: /* @__PURE__ */ C(We, {
282
- candidates: at,
283
- harvestableLoss: ot,
284
- currency: st,
282
+ children: /* @__PURE__ */ C(qe, {
283
+ candidates: ct,
284
+ harvestableLoss: lt,
285
+ currency: ut,
285
286
  loading: A,
286
- canCreate: ct,
287
- onCreateProposal: ut
287
+ canCreate: $,
288
+ onCreateProposal: ft
288
289
  })
289
290
  }),
290
291
  /* @__PURE__ */ C(B, {
291
292
  value: "unrealized",
292
- children: /* @__PURE__ */ C(Ge, { accounts: k })
293
+ children: /* @__PURE__ */ C(Je, { accounts: k })
293
294
  }),
294
295
  /* @__PURE__ */ C(B, {
295
296
  value: "realized",
296
- children: /* @__PURE__ */ w(D, { children: [/* @__PURE__ */ w(xe, { children: [/* @__PURE__ */ w(Se, {
297
+ children: /* @__PURE__ */ w(D, { children: [/* @__PURE__ */ w(Se, { children: [/* @__PURE__ */ w(Ce, {
297
298
  className: "flex items-center gap-2",
298
- children: [/* @__PURE__ */ C(he, {
299
+ children: [/* @__PURE__ */ C(_e, {
299
300
  className: "h-5 w-5",
300
301
  "aria-hidden": "true"
301
302
  }), "Realized activity"]
302
- }), /* @__PURE__ */ C(be, { children: "Realized sales, dividends and interest — the taxable events recorded on your accounts." })] }), /* @__PURE__ */ C(O, {
303
+ }), /* @__PURE__ */ C(xe, { children: "Realized sales, dividends and interest — the taxable events recorded on your accounts." })] }), /* @__PURE__ */ C(O, {
303
304
  className: "space-y-6",
304
- children: ge ? /* @__PURE__ */ C(m, {}) : ye ? /* @__PURE__ */ C(ae, { onRetry: () => Ce() }) : Q.length === 0 && $.length === 0 ? /* @__PURE__ */ C(p, {
305
- icon: /* @__PURE__ */ C(he, {
305
+ children: be ? /* @__PURE__ */ C(m, {}) : we ? /* @__PURE__ */ C(oe, { onRetry: () => Te() }) : Z.length === 0 && Q.length === 0 ? /* @__PURE__ */ C(p, {
306
+ icon: /* @__PURE__ */ C(_e, {
306
307
  className: "size-6",
307
308
  "aria-hidden": "true"
308
309
  }),
309
310
  title: "No taxable activity recorded",
310
311
  description: "Sales, dividends and interest show up here once transactions are recorded against your accounts."
311
312
  }) : /* @__PURE__ */ w(S, { children: [
312
- tt.length > 1 ? /* @__PURE__ */ w("div", {
313
+ it.length > 1 ? /* @__PURE__ */ w("div", {
313
314
  className: "rounded-xl border border-border-subtle bg-bg-surface p-4",
314
315
  children: [
315
316
  /* @__PURE__ */ C("p", {
@@ -320,10 +321,10 @@ function W() {
320
321
  className: "mb-3 text-xs text-text-secondary",
321
322
  children: "Running total of sale proceeds over trade dates."
322
323
  }),
323
- /* @__PURE__ */ C(u, {
324
- data: tt,
324
+ /* @__PURE__ */ C(ae, {
325
+ data: it,
325
326
  tone: "brand",
326
- valueFormatter: (e) => g(e, et)
327
+ valueFormatter: (e) => g(e, rt)
327
328
  })
328
329
  ]
329
330
  }) : null,
@@ -332,7 +333,7 @@ function W() {
332
333
  children: [/* @__PURE__ */ w("div", {
333
334
  className: "flex items-center gap-2",
334
335
  children: [
335
- /* @__PURE__ */ C(pe, {
336
+ /* @__PURE__ */ C(me, {
336
337
  className: "size-4 text-text-secondary",
337
338
  "aria-hidden": "true"
338
339
  }),
@@ -342,10 +343,10 @@ function W() {
342
343
  }),
343
344
  /* @__PURE__ */ C(T, {
344
345
  variant: "secondary",
345
- children: Q.length
346
+ children: Z.length
346
347
  })
347
348
  ]
348
- }), Q.length === 0 ? /* @__PURE__ */ C("p", {
349
+ }), Z.length === 0 ? /* @__PURE__ */ C("p", {
349
350
  className: "text-sm text-text-secondary",
350
351
  children: "No sales recorded."
351
352
  }) : /* @__PURE__ */ C("div", {
@@ -365,7 +366,7 @@ function W() {
365
366
  children: "Proceeds"
366
367
  }),
367
368
  /* @__PURE__ */ C(L, { children: "Trade date" })
368
- ] }) }), /* @__PURE__ */ C(F, { children: Q.map((e) => /* @__PURE__ */ w(z, { children: [
369
+ ] }) }), /* @__PURE__ */ C(F, { children: Z.map((e) => /* @__PURE__ */ w(z, { children: [
369
370
  /* @__PURE__ */ C(I, {
370
371
  className: "font-medium text-text-primary",
371
372
  children: e.symbol ?? "—"
@@ -394,7 +395,7 @@ function W() {
394
395
  children: [/* @__PURE__ */ w("div", {
395
396
  className: "flex items-center gap-2",
396
397
  children: [
397
- /* @__PURE__ */ C(fe, {
398
+ /* @__PURE__ */ C(pe, {
398
399
  className: "size-4 text-text-secondary",
399
400
  "aria-hidden": "true"
400
401
  }),
@@ -404,10 +405,10 @@ function W() {
404
405
  }),
405
406
  /* @__PURE__ */ C(T, {
406
407
  variant: "secondary",
407
- children: $.length
408
+ children: Q.length
408
409
  })
409
410
  ]
410
- }), $.length === 0 ? /* @__PURE__ */ C("p", {
411
+ }), Q.length === 0 ? /* @__PURE__ */ C("p", {
411
412
  className: "text-sm text-text-secondary",
412
413
  children: "No income recorded."
413
414
  }) : /* @__PURE__ */ C("div", {
@@ -420,10 +421,10 @@ function W() {
420
421
  children: "Amount"
421
422
  }),
422
423
  /* @__PURE__ */ C(L, { children: "Trade date" })
423
- ] }) }), /* @__PURE__ */ C(F, { children: $.map((e) => /* @__PURE__ */ w(z, { children: [
424
+ ] }) }), /* @__PURE__ */ C(F, { children: Q.map((e) => /* @__PURE__ */ w(z, { children: [
424
425
  /* @__PURE__ */ C(I, { children: /* @__PURE__ */ C(T, {
425
426
  variant: "outline",
426
- children: H(e.type)
427
+ children: V(e.type)
427
428
  }) }),
428
429
  /* @__PURE__ */ C(I, {
429
430
  className: "text-text-secondary",
@@ -445,16 +446,16 @@ function W() {
445
446
  })
446
447
  ]
447
448
  }),
448
- /* @__PURE__ */ C(De, {
449
- open: qe,
449
+ /* @__PURE__ */ C(Oe, {
450
+ open: Ze,
450
451
  onOpenChange: (e) => {
451
- K(e), e || Y(null);
452
+ W(e), e || q(null);
452
453
  },
453
- children: /* @__PURE__ */ w(ke, {
454
+ children: /* @__PURE__ */ w(Ae, {
454
455
  className: "max-h-[90vh] overflow-y-auto sm:max-w-lg",
455
456
  children: [
456
- /* @__PURE__ */ w(Me, { children: [/* @__PURE__ */ C(Ne, { children: "New tax insight" }), /* @__PURE__ */ C(Ae, { children: "Flag a tax opportunity against one of your accounts or portfolios." })] }),
457
- ct ? /* @__PURE__ */ w("div", {
457
+ /* @__PURE__ */ w(Ne, { children: [/* @__PURE__ */ C(Pe, { children: "New tax insight" }), /* @__PURE__ */ C(je, { children: "Flag a tax opportunity against one of your accounts or portfolios." })] }),
458
+ $ ? /* @__PURE__ */ w("div", {
458
459
  className: "space-y-4 py-2",
459
460
  children: [
460
461
  /* @__PURE__ */ w("div", {
@@ -462,10 +463,10 @@ function W() {
462
463
  children: [/* @__PURE__ */ C(M, {
463
464
  htmlFor: "tax-title",
464
465
  children: "Title"
465
- }), /* @__PURE__ */ C(Ee, {
466
+ }), /* @__PURE__ */ C(De, {
466
467
  id: "tax-title",
467
- value: q.title,
468
- onChange: (e) => J((t) => ({
468
+ value: G.title,
469
+ onChange: (e) => K((t) => ({
469
470
  ...t,
470
471
  title: e.target.value
471
472
  })),
@@ -479,18 +480,18 @@ function W() {
479
480
  children: [/* @__PURE__ */ C(M, {
480
481
  htmlFor: "tax-severity",
481
482
  children: "Severity"
482
- }), /* @__PURE__ */ w(Pe, {
483
- value: q.severity,
484
- onValueChange: (e) => J((t) => ({
483
+ }), /* @__PURE__ */ w(Fe, {
484
+ value: G.severity,
485
+ onValueChange: (e) => K((t) => ({
485
486
  ...t,
486
487
  severity: e
487
488
  })),
488
- children: [/* @__PURE__ */ C(Ie, {
489
+ children: [/* @__PURE__ */ C(Le, {
489
490
  id: "tax-severity",
490
- children: /* @__PURE__ */ C(Le, {})
491
- }), /* @__PURE__ */ C(Fe, { children: Ve.map((e) => /* @__PURE__ */ C(N, {
491
+ children: /* @__PURE__ */ C(Re, {})
492
+ }), /* @__PURE__ */ C(Ie, { children: Ue.map((e) => /* @__PURE__ */ C(N, {
492
493
  value: e,
493
- children: H(e)
494
+ children: V(e)
494
495
  }, e)) })]
495
496
  })]
496
497
  }), /* @__PURE__ */ w("div", {
@@ -498,16 +499,16 @@ function W() {
498
499
  children: [/* @__PURE__ */ C(M, {
499
500
  htmlFor: "tax-subject",
500
501
  children: "Applies to"
501
- }), /* @__PURE__ */ w(Pe, {
502
- value: q.subject,
503
- onValueChange: (e) => J((t) => ({
502
+ }), /* @__PURE__ */ w(Fe, {
503
+ value: G.subject,
504
+ onValueChange: (e) => K((t) => ({
504
505
  ...t,
505
506
  subject: e
506
507
  })),
507
- children: [/* @__PURE__ */ C(Ie, {
508
+ children: [/* @__PURE__ */ C(Le, {
508
509
  id: "tax-subject",
509
- children: /* @__PURE__ */ C(Le, { placeholder: "Select subject" })
510
- }), /* @__PURE__ */ w(Fe, { children: [we.map((e) => /* @__PURE__ */ w(N, {
510
+ children: /* @__PURE__ */ C(Re, { placeholder: "Select subject" })
511
+ }), /* @__PURE__ */ w(Ie, { children: [Ee.map((e) => /* @__PURE__ */ w(N, {
511
512
  value: `portfolio:${e.id}`,
512
513
  children: ["Portfolio · ", e.name]
513
514
  }, `portfolio:${e.id}`)), k.map((e) => /* @__PURE__ */ w(N, {
@@ -522,10 +523,10 @@ function W() {
522
523
  children: [/* @__PURE__ */ C(M, {
523
524
  htmlFor: "tax-detail",
524
525
  children: "Detail"
525
- }), /* @__PURE__ */ C(Be, {
526
+ }), /* @__PURE__ */ C(He, {
526
527
  id: "tax-detail",
527
- value: q.detail,
528
- onChange: (e) => J((t) => ({
528
+ value: G.detail,
529
+ onChange: (e) => K((t) => ({
529
530
  ...t,
530
531
  detail: e.target.value
531
532
  })),
@@ -533,17 +534,17 @@ function W() {
533
534
  placeholder: "What is the opportunity and how should it be actioned?"
534
535
  })]
535
536
  }),
536
- Je ? /* @__PURE__ */ C("p", {
537
+ Qe ? /* @__PURE__ */ C("p", {
537
538
  className: "text-sm text-status-error-text",
538
539
  role: "alert",
539
- children: Je
540
+ children: Qe
540
541
  }) : null
541
542
  ]
542
543
  }) : /* @__PURE__ */ C(p, {
543
544
  title: "No subject available",
544
545
  description: "Create an account or portfolio first, then flag a tax opportunity against it."
545
546
  }),
546
- /* @__PURE__ */ w(je, { children: [/* @__PURE__ */ C(Oe, {
547
+ /* @__PURE__ */ w(Me, { children: [/* @__PURE__ */ C(ke, {
547
548
  asChild: !0,
548
549
  children: /* @__PURE__ */ C(E, {
549
550
  variant: "outline",
@@ -551,36 +552,36 @@ function W() {
551
552
  children: "Cancel"
552
553
  })
553
554
  }), /* @__PURE__ */ C(E, {
554
- onClick: dt,
555
- disabled: !ct || !q.title.trim() || !q.subject || j.isPending,
555
+ onClick: pt,
556
+ disabled: !$ || !G.title.trim() || !G.subject || j.isPending,
556
557
  children: j.isPending ? "Creating…" : "Create insight"
557
558
  })] })
558
559
  ]
559
560
  })
560
561
  }),
561
562
  /* @__PURE__ */ C(s, {
562
- open: !!X,
563
+ open: !!J,
563
564
  onOpenChange: (e) => {
564
- e || Ye(null);
565
+ e || $e(null);
565
566
  },
566
567
  title: "Dismiss tax insight?",
567
- description: X ? /* @__PURE__ */ w(S, { children: [
568
+ description: J ? /* @__PURE__ */ w(S, { children: [
568
569
  "“",
569
- X.title,
570
+ J.title,
570
571
  "” will be marked as dismissed and removed from your open opportunities. This does not delete the underlying holdings or transactions."
571
572
  ] }) : void 0,
572
573
  confirmLabel: "Dismiss insight",
573
574
  pendingLabel: "Dismissing…",
574
575
  destructive: !0,
575
- pending: W.isPending,
576
+ pending: U.isPending,
576
577
  onConfirm: () => {
577
- X && W.mutate(X.id, { onSuccess: () => Ye(null) });
578
+ J && U.mutate(J.id, { onSuccess: () => $e(null) });
578
579
  }
579
580
  })
580
581
  ]
581
582
  });
582
583
  }
583
- function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCreate: i, onCreateProposal: a }) {
584
+ function qe({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCreate: i, onCreateProposal: a }) {
584
585
  let o = _(() => e.slice(0, 6).map((e) => ({
585
586
  label: e.holding.symbol,
586
587
  value: t === 0 ? 0 : e.loss / t * 100,
@@ -594,16 +595,16 @@ function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCre
594
595
  className: "grid gap-4 lg:grid-cols-3",
595
596
  children: [/* @__PURE__ */ w(D, {
596
597
  className: "lg:col-span-2",
597
- children: [/* @__PURE__ */ w(xe, { children: [/* @__PURE__ */ w(Se, {
598
+ children: [/* @__PURE__ */ w(Se, { children: [/* @__PURE__ */ w(Ce, {
598
599
  className: "flex items-center gap-2",
599
- children: [/* @__PURE__ */ C(b, {
600
+ children: [/* @__PURE__ */ C(y, {
600
601
  className: "h-5 w-5",
601
602
  "aria-hidden": "true"
602
603
  }), "Harvest candidates"]
603
- }), /* @__PURE__ */ C(be, { children: "Holdings sitting at an unrealized loss — sell to realize the loss and offset gains." })] }), /* @__PURE__ */ C(O, {
604
+ }), /* @__PURE__ */ C(xe, { children: "Holdings sitting at an unrealized loss — sell to realize the loss and offset gains." })] }), /* @__PURE__ */ C(O, {
604
605
  className: "space-y-4",
605
606
  children: e.length === 0 ? /* @__PURE__ */ C(p, {
606
- icon: /* @__PURE__ */ C(b, {
607
+ icon: /* @__PURE__ */ C(y, {
607
608
  className: "size-6",
608
609
  "aria-hidden": "true"
609
610
  }),
@@ -658,7 +659,7 @@ function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCre
658
659
  }),
659
660
  /* @__PURE__ */ C(I, {
660
661
  className: "text-right",
661
- children: /* @__PURE__ */ C(G, {
662
+ children: /* @__PURE__ */ C(U, {
662
663
  value: e.loss,
663
664
  currency: e.holding.currency
664
665
  })
@@ -707,7 +708,7 @@ function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCre
707
708
  onClick: () => {
708
709
  e[0] && a(e[0]);
709
710
  },
710
- children: [/* @__PURE__ */ C(b, {
711
+ children: [/* @__PURE__ */ C(y, {
711
712
  className: "size-4",
712
713
  "aria-hidden": "true"
713
714
  }), "Create rebalance proposal"]
@@ -723,7 +724,7 @@ function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCre
723
724
  className: "mb-4 mt-1 text-xs text-text-secondary",
724
725
  children: "Realize losses while holding your target allocation. Confirm wash-sale windows before executing."
725
726
  }),
726
- /* @__PURE__ */ C(ie, {
727
+ /* @__PURE__ */ C(u, {
727
728
  steps: [
728
729
  "Detect",
729
730
  "Review",
@@ -736,18 +737,18 @@ function We({ candidates: e, harvestableLoss: t, currency: n, loading: r, canCre
736
737
  })]
737
738
  });
738
739
  }
739
- function Ge({ accounts: e }) {
740
- let [t, n] = v(""), r = t || e[0]?.id, i = e.find((e) => e.id === r), { data: o, isLoading: ee, isError: te, refetch: ne } = a({ accountId: r }), s = i?.currency ?? o[0]?.currency ?? "USD", c = o.reduce((e, t) => e + U(t), 0), l = o.filter((e) => U(e) > 0).length, ie = o.filter((e) => U(e) < 0).length, u = _(() => {
740
+ function Je({ accounts: e }) {
741
+ let [t, n] = v(""), r = t || e[0]?.id, i = e.find((e) => e.id === r), { data: o, isLoading: ee, isError: te, refetch: ne } = a({ accountId: r }), s = i?.currency ?? o[0]?.currency ?? "USD", c = o.reduce((e, t) => e + H(t), 0), ie = o.filter((e) => H(e) > 0).length, l = o.filter((e) => H(e) < 0).length, u = _(() => {
741
742
  let e = /* @__PURE__ */ new Map();
742
743
  for (let t of o) {
743
744
  let n = e.get(t.assetClass) ?? [];
744
745
  n.push(t), e.set(t.assetClass, n);
745
746
  }
746
747
  return Array.from(e.entries());
747
- }, [o]), f = _(() => u.map(([e, t]) => ({
748
- label: H(e),
748
+ }, [o]), ae = _(() => u.map(([e, t]) => ({
749
+ label: V(e),
749
750
  value: t.reduce((e, t) => e + t.marketValue, 0)
750
- })).filter((e) => e.value > 0), [u]), oe = f.reduce((e, t) => e + t.value, 0);
751
+ })).filter((e) => e.value > 0), [u]), f = ae.reduce((e, t) => e + t.value, 0);
751
752
  return e.length === 0 ? /* @__PURE__ */ C(D, { children: /* @__PURE__ */ C(O, {
752
753
  className: "pt-6",
753
754
  children: /* @__PURE__ */ C(p, {
@@ -758,27 +759,27 @@ function Ge({ accounts: e }) {
758
759
  title: "No accounts yet",
759
760
  description: "Add an account with holdings to see unrealized gains and losses."
760
761
  })
761
- }) }) : /* @__PURE__ */ w(D, { children: [/* @__PURE__ */ w(xe, {
762
+ }) }) : /* @__PURE__ */ w(D, { children: [/* @__PURE__ */ w(Se, {
762
763
  className: "flex flex-col gap-4 md:flex-row md:items-start md:justify-between",
763
- children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w(Se, {
764
+ children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w(Ce, {
764
765
  className: "flex items-center gap-2",
765
766
  children: [/* @__PURE__ */ C(x, {
766
767
  className: "h-5 w-5",
767
768
  "aria-hidden": "true"
768
769
  }), "Unrealized gains & losses"]
769
- }), /* @__PURE__ */ C(be, { children: "Market value minus cost basis for each holding in the selected account." })] }), /* @__PURE__ */ w("div", {
770
+ }), /* @__PURE__ */ C(xe, { children: "Market value minus cost basis for each holding in the selected account." })] }), /* @__PURE__ */ w("div", {
770
771
  className: "w-full md:w-64",
771
772
  children: [/* @__PURE__ */ C(M, {
772
773
  htmlFor: "unrealized-account",
773
774
  className: "sr-only",
774
775
  children: "Account"
775
- }), /* @__PURE__ */ w(Pe, {
776
+ }), /* @__PURE__ */ w(Fe, {
776
777
  value: r ?? "",
777
778
  onValueChange: n,
778
- children: [/* @__PURE__ */ C(Ie, {
779
+ children: [/* @__PURE__ */ C(Le, {
779
780
  id: "unrealized-account",
780
- children: /* @__PURE__ */ C(Le, { placeholder: "Select account" })
781
- }), /* @__PURE__ */ C(Fe, { children: e.map((e) => /* @__PURE__ */ C(N, {
781
+ children: /* @__PURE__ */ C(Re, { placeholder: "Select account" })
782
+ }), /* @__PURE__ */ C(Ie, { children: e.map((e) => /* @__PURE__ */ C(N, {
782
783
  value: e.id,
783
784
  children: e.name
784
785
  }, e.id)) })]
@@ -786,7 +787,7 @@ function Ge({ accounts: e }) {
786
787
  })]
787
788
  }), /* @__PURE__ */ C(O, {
788
789
  className: "space-y-4",
789
- children: ee ? /* @__PURE__ */ C(m, {}) : te ? /* @__PURE__ */ C(ae, { onRetry: () => ne() }) : o.length === 0 ? /* @__PURE__ */ C(p, {
790
+ children: ee ? /* @__PURE__ */ C(m, {}) : te ? /* @__PURE__ */ C(oe, { onRetry: () => ne() }) : o.length === 0 ? /* @__PURE__ */ C(p, {
790
791
  icon: /* @__PURE__ */ C(x, {
791
792
  className: "size-6",
792
793
  "aria-hidden": "true"
@@ -802,7 +803,7 @@ function Ge({ accounts: e }) {
802
803
  label: "Unrealized P/L",
803
804
  value: g(c, s),
804
805
  deltaTone: c >= 0 ? "positive" : "negative",
805
- icon: C(c >= 0 ? x : ve, {
806
+ icon: C(c >= 0 ? x : ye, {
806
807
  className: "size-4",
807
808
  "aria-hidden": "true"
808
809
  })
@@ -813,16 +814,16 @@ function Ge({ accounts: e }) {
813
814
  }),
814
815
  /* @__PURE__ */ C(d, {
815
816
  label: "Gainers",
816
- value: String(l),
817
- icon: /* @__PURE__ */ C(ue, {
817
+ value: String(ie),
818
+ icon: /* @__PURE__ */ C(de, {
818
819
  className: "size-4",
819
820
  "aria-hidden": "true"
820
821
  })
821
822
  }),
822
823
  /* @__PURE__ */ C(d, {
823
824
  label: "Losers",
824
- value: String(ie),
825
- icon: /* @__PURE__ */ C(le, {
825
+ value: String(l),
826
+ icon: /* @__PURE__ */ C(ue, {
826
827
  className: "size-4",
827
828
  "aria-hidden": "true"
828
829
  })
@@ -834,10 +835,10 @@ function Ge({ accounts: e }) {
834
835
  className: "mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary",
835
836
  children: "Allocation by asset class"
836
837
  }), /* @__PURE__ */ C(re, {
837
- data: f,
838
+ data: ae,
838
839
  legend: !1,
839
840
  height: 180,
840
- centerValue: g(oe, s),
841
+ centerValue: g(f, s),
841
842
  centerLabel: "market value",
842
843
  valueFormatter: (e) => g(e, s)
843
844
  })]
@@ -845,7 +846,7 @@ function Ge({ accounts: e }) {
845
846
  }), /* @__PURE__ */ C("div", {
846
847
  className: "space-y-6",
847
848
  children: u.map(([e, t]) => {
848
- let n = t.reduce((e, t) => e + U(t), 0);
849
+ let n = t.reduce((e, t) => e + H(t), 0);
849
850
  return /* @__PURE__ */ w("div", {
850
851
  className: "space-y-2",
851
852
  children: [/* @__PURE__ */ w("div", {
@@ -854,12 +855,12 @@ function Ge({ accounts: e }) {
854
855
  className: "flex items-center gap-2",
855
856
  children: [/* @__PURE__ */ C("h3", {
856
857
  className: "text-sm font-semibold text-text-primary",
857
- children: H(e)
858
+ children: V(e)
858
859
  }), /* @__PURE__ */ C(T, {
859
860
  variant: "secondary",
860
861
  children: t.length
861
862
  })]
862
- }), /* @__PURE__ */ C(G, {
863
+ }), /* @__PURE__ */ C(U, {
863
864
  value: n,
864
865
  currency: s
865
866
  })]
@@ -905,8 +906,8 @@ function Ge({ accounts: e }) {
905
906
  }),
906
907
  /* @__PURE__ */ C(I, {
907
908
  className: "text-right",
908
- children: /* @__PURE__ */ C(G, {
909
- value: U(e),
909
+ children: /* @__PURE__ */ C(U, {
910
+ value: H(e),
910
911
  currency: e.currency
911
912
  })
912
913
  })
@@ -917,10 +918,10 @@ function Ge({ accounts: e }) {
917
918
  })] })
918
919
  })] });
919
920
  }
920
- function G({ value: e, currency: t }) {
921
- let n = e > 0, r = n ? ue : e < 0 ? le : ve, i = n ? "+" : "";
921
+ function U({ value: e, currency: t }) {
922
+ let n = e > 0, r = n ? de : e < 0 ? ue : ye, i = n ? "+" : "";
922
923
  return /* @__PURE__ */ w("span", {
923
- className: `inline-flex items-center justify-end gap-1 font-semibold ${se(e)}`,
924
+ className: `inline-flex items-center justify-end gap-1 font-semibold ${ce(e)}`,
924
925
  children: [
925
926
  e === 0 ? null : /* @__PURE__ */ C(r, {
926
927
  className: "size-4",
@@ -931,7 +932,7 @@ function G({ value: e, currency: t }) {
931
932
  ]
932
933
  });
933
934
  }
934
- function Ke({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDismiss: i }) {
935
+ function Ye({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDismiss: i }) {
935
936
  let a = e.status === "RESOLVED" || e.status === "DISMISSED";
936
937
  return /* @__PURE__ */ w("div", {
937
938
  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))]",
@@ -946,12 +947,12 @@ function Ke({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDi
946
947
  children: e.title
947
948
  }),
948
949
  /* @__PURE__ */ C(T, {
949
- variant: ce(e.severity),
950
- children: H(e.severity)
950
+ variant: le(e.severity),
951
+ children: V(e.severity)
951
952
  }),
952
953
  /* @__PURE__ */ C(T, {
953
- variant: ce(e.status),
954
- children: H(e.status)
954
+ variant: le(e.status),
955
+ children: V(e.status)
955
956
  })
956
957
  ]
957
958
  }),
@@ -962,7 +963,7 @@ function Ke({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDi
962
963
  /* @__PURE__ */ w("p", {
963
964
  className: "text-xs text-text-muted",
964
965
  children: [
965
- H(e.subjectType),
966
+ V(e.subjectType),
966
967
  " · Detected ",
967
968
  h(e.createdAt)
968
969
  ]
@@ -971,41 +972,41 @@ function Ke({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDi
971
972
  }), a ? /* @__PURE__ */ C("span", {
972
973
  className: "mt-1 text-xs text-text-muted",
973
974
  children: "Closed"
974
- }) : /* @__PURE__ */ w(Ce, { children: [/* @__PURE__ */ C(Te, {
975
+ }) : /* @__PURE__ */ w(we, { children: [/* @__PURE__ */ C(j, {
975
976
  asChild: !0,
976
977
  children: /* @__PURE__ */ C(E, {
977
978
  variant: "ghost",
978
979
  size: "sm",
979
980
  "aria-label": `Actions for ${e.title}`,
980
981
  disabled: t,
981
- children: /* @__PURE__ */ C(y, {
982
+ children: /* @__PURE__ */ C(he, {
982
983
  className: "size-4",
983
984
  "aria-hidden": "true"
984
985
  })
985
986
  })
986
- }), /* @__PURE__ */ w(k, {
987
+ }), /* @__PURE__ */ w(Te, {
987
988
  align: "end",
988
989
  children: [
989
- /* @__PURE__ */ C(we, { children: "Actions" }),
990
- /* @__PURE__ */ C(j, {}),
991
- e.status === "OPEN" ? /* @__PURE__ */ w(A, {
990
+ /* @__PURE__ */ C(A, { children: "Actions" }),
991
+ /* @__PURE__ */ C(Ee, {}),
992
+ e.status === "OPEN" ? /* @__PURE__ */ w(k, {
992
993
  onClick: n,
993
- children: [/* @__PURE__ */ C(de, {
994
+ children: [/* @__PURE__ */ C(fe, {
994
995
  className: "size-4",
995
996
  "aria-hidden": "true"
996
997
  }), "Acknowledge"]
997
998
  }) : null,
998
- /* @__PURE__ */ w(A, {
999
+ /* @__PURE__ */ w(k, {
999
1000
  onClick: r,
1000
- children: [/* @__PURE__ */ C(ge, {
1001
+ children: [/* @__PURE__ */ C(b, {
1001
1002
  className: "size-4",
1002
1003
  "aria-hidden": "true"
1003
1004
  }), "Resolve"]
1004
1005
  }),
1005
- /* @__PURE__ */ w(A, {
1006
+ /* @__PURE__ */ w(k, {
1006
1007
  className: "text-status-error-text",
1007
1008
  onClick: i,
1008
- children: [/* @__PURE__ */ C(ye, {
1009
+ children: [/* @__PURE__ */ C(be, {
1009
1010
  className: "size-4",
1010
1011
  "aria-hidden": "true"
1011
1012
  }), "Dismiss"]
@@ -1015,6 +1016,6 @@ function Ke({ insight: e, actionPending: t, onAcknowledge: n, onResolve: r, onDi
1015
1016
  });
1016
1017
  }
1017
1018
  //#endregion
1018
- export { W as TaxPage };
1019
+ export { Ke as TaxPage };
1019
1020
 
1020
1021
  //# sourceMappingURL=TaxPage.js.map