@burdenoff/microfe-brainyrich 2026.509.101

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 (114) hide show
  1. package/README.md +12 -0
  2. package/dist/brainyrich/BrainyRichRoot.d.ts +5 -0
  3. package/dist/brainyrich/BrainyRichRoot.d.ts.map +1 -0
  4. package/dist/brainyrich/BrainyRichRoot.js +161 -0
  5. package/dist/brainyrich/BrainyRichRoot.js.map +1 -0
  6. package/dist/brainyrich/BrainyRichRoutes.d.ts +2 -0
  7. package/dist/brainyrich/BrainyRichRoutes.d.ts.map +1 -0
  8. package/dist/brainyrich/BrainyRichRoutes.js +95 -0
  9. package/dist/brainyrich/BrainyRichRoutes.js.map +1 -0
  10. package/dist/brainyrich/index.d.ts +5 -0
  11. package/dist/brainyrich/index.d.ts.map +1 -0
  12. package/dist/brainyrich/index.js +3 -0
  13. package/dist/brainyrich/pages/AccountsPage.d.ts +2 -0
  14. package/dist/brainyrich/pages/AccountsPage.d.ts.map +1 -0
  15. package/dist/brainyrich/pages/AccountsPage.js +184 -0
  16. package/dist/brainyrich/pages/AccountsPage.js.map +1 -0
  17. package/dist/brainyrich/pages/AdvisorsPage.d.ts +2 -0
  18. package/dist/brainyrich/pages/AdvisorsPage.d.ts.map +1 -0
  19. package/dist/brainyrich/pages/AdvisorsPage.js +375 -0
  20. package/dist/brainyrich/pages/AdvisorsPage.js.map +1 -0
  21. package/dist/brainyrich/pages/AiAssistantPage.d.ts +2 -0
  22. package/dist/brainyrich/pages/AiAssistantPage.d.ts.map +1 -0
  23. package/dist/brainyrich/pages/AiAssistantPage.js +389 -0
  24. package/dist/brainyrich/pages/AiAssistantPage.js.map +1 -0
  25. package/dist/brainyrich/pages/AnalyticsPage.d.ts +2 -0
  26. package/dist/brainyrich/pages/AnalyticsPage.d.ts.map +1 -0
  27. package/dist/brainyrich/pages/AnalyticsPage.js +316 -0
  28. package/dist/brainyrich/pages/AnalyticsPage.js.map +1 -0
  29. package/dist/brainyrich/pages/AssistantPage.d.ts +2 -0
  30. package/dist/brainyrich/pages/AssistantPage.d.ts.map +1 -0
  31. package/dist/brainyrich/pages/AssistantPage.js +332 -0
  32. package/dist/brainyrich/pages/AssistantPage.js.map +1 -0
  33. package/dist/brainyrich/pages/DashboardPage.d.ts +2 -0
  34. package/dist/brainyrich/pages/DashboardPage.d.ts.map +1 -0
  35. package/dist/brainyrich/pages/DashboardPage.js +258 -0
  36. package/dist/brainyrich/pages/DashboardPage.js.map +1 -0
  37. package/dist/brainyrich/pages/EstatePage.d.ts +2 -0
  38. package/dist/brainyrich/pages/EstatePage.d.ts.map +1 -0
  39. package/dist/brainyrich/pages/EstatePage.js +269 -0
  40. package/dist/brainyrich/pages/EstatePage.js.map +1 -0
  41. package/dist/brainyrich/pages/FamilyPage.d.ts +2 -0
  42. package/dist/brainyrich/pages/FamilyPage.d.ts.map +1 -0
  43. package/dist/brainyrich/pages/FamilyPage.js +358 -0
  44. package/dist/brainyrich/pages/FamilyPage.js.map +1 -0
  45. package/dist/brainyrich/pages/GoalsPage.d.ts +2 -0
  46. package/dist/brainyrich/pages/GoalsPage.d.ts.map +1 -0
  47. package/dist/brainyrich/pages/GoalsPage.js +160 -0
  48. package/dist/brainyrich/pages/GoalsPage.js.map +1 -0
  49. package/dist/brainyrich/pages/InsurancePage.d.ts +2 -0
  50. package/dist/brainyrich/pages/InsurancePage.d.ts.map +1 -0
  51. package/dist/brainyrich/pages/InsurancePage.js +181 -0
  52. package/dist/brainyrich/pages/InsurancePage.js.map +1 -0
  53. package/dist/brainyrich/pages/InvestmentsPage.d.ts +2 -0
  54. package/dist/brainyrich/pages/InvestmentsPage.d.ts.map +1 -0
  55. package/dist/brainyrich/pages/InvestmentsPage.js +330 -0
  56. package/dist/brainyrich/pages/InvestmentsPage.js.map +1 -0
  57. package/dist/brainyrich/pages/MarketplacePage.d.ts +2 -0
  58. package/dist/brainyrich/pages/MarketplacePage.d.ts.map +1 -0
  59. package/dist/brainyrich/pages/MarketplacePage.js +450 -0
  60. package/dist/brainyrich/pages/MarketplacePage.js.map +1 -0
  61. package/dist/brainyrich/pages/PortfoliosPage.d.ts +2 -0
  62. package/dist/brainyrich/pages/PortfoliosPage.d.ts.map +1 -0
  63. package/dist/brainyrich/pages/PortfoliosPage.js +175 -0
  64. package/dist/brainyrich/pages/PortfoliosPage.js.map +1 -0
  65. package/dist/brainyrich/pages/ReportsPage.d.ts +2 -0
  66. package/dist/brainyrich/pages/ReportsPage.d.ts.map +1 -0
  67. package/dist/brainyrich/pages/ReportsPage.js +261 -0
  68. package/dist/brainyrich/pages/ReportsPage.js.map +1 -0
  69. package/dist/brainyrich/pages/RiskPage.d.ts +2 -0
  70. package/dist/brainyrich/pages/RiskPage.d.ts.map +1 -0
  71. package/dist/brainyrich/pages/RiskPage.js +222 -0
  72. package/dist/brainyrich/pages/RiskPage.js.map +1 -0
  73. package/dist/brainyrich/pages/TaxPage.d.ts +2 -0
  74. package/dist/brainyrich/pages/TaxPage.d.ts.map +1 -0
  75. package/dist/brainyrich/pages/TaxPage.js +246 -0
  76. package/dist/brainyrich/pages/TaxPage.js.map +1 -0
  77. package/dist/brainyrich/pages/_shared.d.ts +21 -0
  78. package/dist/brainyrich/pages/_shared.d.ts.map +1 -0
  79. package/dist/brainyrich/pages/_shared.js +63 -0
  80. package/dist/brainyrich/pages/_shared.js.map +1 -0
  81. package/dist/brainyrich/providers/BrainyRichProvider.d.ts +6 -0
  82. package/dist/brainyrich/providers/BrainyRichProvider.d.ts.map +1 -0
  83. package/dist/brainyrich/providers/BrainyRichProvider.js +27 -0
  84. package/dist/brainyrich/providers/BrainyRichProvider.js.map +1 -0
  85. package/dist/brainyrich/store/brainyrichStore.d.ts +19 -0
  86. package/dist/brainyrich/store/brainyrichStore.d.ts.map +1 -0
  87. package/dist/brainyrich/store/brainyrichStore.js +272 -0
  88. package/dist/brainyrich/store/brainyrichStore.js.map +1 -0
  89. package/dist/brainyrich/types/index.d.ts +116 -0
  90. package/dist/brainyrich/types/index.d.ts.map +1 -0
  91. package/dist/brainyrich/utils/cn.d.ts +4 -0
  92. package/dist/brainyrich/utils/cn.d.ts.map +1 -0
  93. package/dist/brainyrich/utils/i18n.d.ts +6 -0
  94. package/dist/brainyrich/utils/i18n.d.ts.map +1 -0
  95. package/dist/brainyrich/utils/i18n.js +15 -0
  96. package/dist/brainyrich/utils/i18n.js.map +1 -0
  97. package/dist/brainyrich/utils/navigation.d.ts +2 -0
  98. package/dist/brainyrich/utils/navigation.d.ts.map +1 -0
  99. package/dist/brainyrich/utils/navigation.js +8 -0
  100. package/dist/brainyrich/utils/navigation.js.map +1 -0
  101. package/dist/dev/main.d.ts +2 -0
  102. package/dist/dev/main.d.ts.map +1 -0
  103. package/dist/generated/global-operations.d.ts +2 -0
  104. package/dist/generated/global-operations.d.ts.map +1 -0
  105. package/dist/generated/global-types.d.ts +18199 -0
  106. package/dist/generated/global-types.d.ts.map +1 -0
  107. package/dist/generated/wspace-operations.d.ts +2 -0
  108. package/dist/generated/wspace-operations.d.ts.map +1 -0
  109. package/dist/generated/wspace-types.d.ts +43046 -0
  110. package/dist/generated/wspace-types.d.ts.map +1 -0
  111. package/dist/index.d.ts +2 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +5 -0
  114. package/package.json +107 -0
@@ -0,0 +1,222 @@
1
+ import { useBrainyRichStore as e } from "../store/brainyrichStore.js";
2
+ import { KpiGrid as t, SectionShell as n, statusBadgeVariant as r } from "./_shared.js";
3
+ import { Activity as i, AlertTriangle as a, BarChart3 as o, ShieldAlert as s } from "lucide-react";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { Badge as u, Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h, Table as g, TableBody as _, TableCell as v, TableHead as y, TableHeader as b, TableRow as x } from "@burdenoff/fe-libs/ui";
6
+ //#region src/brainyrich/pages/RiskPage.tsx
7
+ var S = [
8
+ {
9
+ metric: "Portfolio Beta",
10
+ value: "1.15",
11
+ benchmark: "1.0",
12
+ status: "Above Market"
13
+ },
14
+ {
15
+ metric: "Value at Risk (95%)",
16
+ value: "-8.5%",
17
+ benchmark: "-10.0%",
18
+ status: "Acceptable"
19
+ },
20
+ {
21
+ metric: "Sharpe Ratio",
22
+ value: "1.42",
23
+ benchmark: "1.2",
24
+ status: "Good"
25
+ },
26
+ {
27
+ metric: "Max Drawdown",
28
+ value: "-12.3%",
29
+ benchmark: "-15.0%",
30
+ status: "Within Limits"
31
+ }
32
+ ], C = [
33
+ {
34
+ scenario: "2008 Financial Crisis",
35
+ portfolio: -35.2,
36
+ market: -37.8,
37
+ outperformance: "+2.6%"
38
+ },
39
+ {
40
+ scenario: "COVID-19 Pandemic",
41
+ portfolio: -28.1,
42
+ market: -33.9,
43
+ outperformance: "+5.8%"
44
+ },
45
+ {
46
+ scenario: "Interest Rate Shock",
47
+ portfolio: -15.4,
48
+ market: -18.2,
49
+ outperformance: "+2.8%"
50
+ },
51
+ {
52
+ scenario: "Stagflation Scenario",
53
+ portfolio: -12.7,
54
+ market: -16.3,
55
+ outperformance: "+3.6%"
56
+ }
57
+ ], w = [
58
+ {
59
+ strategy: "Diversification",
60
+ status: "Implemented",
61
+ effectiveness: "High"
62
+ },
63
+ {
64
+ strategy: "Hedging (Options)",
65
+ status: "Partial",
66
+ effectiveness: "Medium"
67
+ },
68
+ {
69
+ strategy: "Stop-Loss Orders",
70
+ status: "Active",
71
+ effectiveness: "Medium"
72
+ },
73
+ {
74
+ strategy: "Quarterly Rebalancing",
75
+ status: "Scheduled",
76
+ effectiveness: "High"
77
+ }
78
+ ];
79
+ function T() {
80
+ let { risks: T } = e();
81
+ return /* @__PURE__ */ l(n, {
82
+ title: "Risk Management",
83
+ description: "Monitor portfolio risk exposure, run stress tests, and manage mitigation strategies",
84
+ actionLabel: "Run Stress Test",
85
+ badges: [`${T.length} Active Alerts`],
86
+ children: [
87
+ /* @__PURE__ */ c(t, { items: [
88
+ {
89
+ label: "Risk Score",
90
+ value: "7/10",
91
+ trend: "Moderate Risk"
92
+ },
93
+ {
94
+ label: "Portfolio VaR",
95
+ value: "-8.5%",
96
+ trend: "95% confidence, 1-day"
97
+ },
98
+ {
99
+ label: "Sharpe Ratio",
100
+ value: "1.42",
101
+ trend: "Risk-adjusted return"
102
+ },
103
+ {
104
+ label: "Risk Rating",
105
+ value: "B+",
106
+ trend: "Overall grade"
107
+ }
108
+ ] }),
109
+ /* @__PURE__ */ l("div", {
110
+ className: "grid gap-4 lg:grid-cols-2",
111
+ children: [/* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(m, { children: /* @__PURE__ */ l(h, {
112
+ className: "flex items-center gap-2",
113
+ children: [/* @__PURE__ */ c(i, { className: "h-5 w-5" }), "Risk Metrics"]
114
+ }) }), /* @__PURE__ */ c(f, {
115
+ className: "space-y-3",
116
+ children: S.map((e) => /* @__PURE__ */ l("div", {
117
+ className: "flex items-center justify-between rounded-lg border p-3",
118
+ children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
119
+ className: "font-medium text-sm",
120
+ children: e.metric
121
+ }), /* @__PURE__ */ l("p", {
122
+ className: "text-xs text-muted-foreground",
123
+ children: ["Benchmark: ", e.benchmark]
124
+ })] }), /* @__PURE__ */ l("div", {
125
+ className: "text-right",
126
+ children: [/* @__PURE__ */ c("p", {
127
+ className: "font-semibold text-sm",
128
+ children: e.value
129
+ }), /* @__PURE__ */ c(u, {
130
+ variant: e.status === "Good" || e.status === "Acceptable" || e.status === "Within Limits" ? "default" : "secondary",
131
+ className: "text-[10px]",
132
+ children: e.status
133
+ })]
134
+ })]
135
+ }, e.metric))
136
+ })] }), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(m, { children: /* @__PURE__ */ l(h, {
137
+ className: "flex items-center gap-2",
138
+ children: [/* @__PURE__ */ c(a, { className: "h-5 w-5" }), "Active Risk Alerts"]
139
+ }) }), /* @__PURE__ */ c(f, {
140
+ className: "space-y-3",
141
+ children: T.map((e) => /* @__PURE__ */ l("div", {
142
+ className: `rounded-lg border p-3 ${e.severity === "High" ? "border-red-200 bg-red-50" : e.severity === "Medium" ? "border-yellow-200 bg-yellow-50" : "border-blue-200 bg-blue-50"}`,
143
+ children: [/* @__PURE__ */ l("div", {
144
+ className: "flex items-center justify-between mb-1",
145
+ children: [/* @__PURE__ */ c("p", {
146
+ className: "font-medium text-sm",
147
+ children: e.title
148
+ }), /* @__PURE__ */ c(u, {
149
+ variant: r(e.severity),
150
+ children: e.severity
151
+ })]
152
+ }), /* @__PURE__ */ c("p", {
153
+ className: "text-xs text-muted-foreground",
154
+ children: e.description
155
+ })]
156
+ }, e.id))
157
+ })] })]
158
+ }),
159
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ l(h, {
160
+ className: "flex items-center gap-2",
161
+ children: [/* @__PURE__ */ c(o, { className: "h-5 w-5" }), "Stress Test Results"]
162
+ }), /* @__PURE__ */ c(p, { children: "How your portfolio would perform under historical crisis scenarios" })] }), /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(g, { children: [/* @__PURE__ */ c(b, { children: /* @__PURE__ */ l(x, { children: [
163
+ /* @__PURE__ */ c(y, { children: "Scenario" }),
164
+ /* @__PURE__ */ c(y, {
165
+ className: "text-right",
166
+ children: "Your Portfolio"
167
+ }),
168
+ /* @__PURE__ */ c(y, {
169
+ className: "text-right",
170
+ children: "Market Benchmark"
171
+ }),
172
+ /* @__PURE__ */ c(y, {
173
+ className: "text-right",
174
+ children: "Outperformance"
175
+ })
176
+ ] }) }), /* @__PURE__ */ c(_, { children: C.map((e) => /* @__PURE__ */ l(x, { children: [
177
+ /* @__PURE__ */ c(v, {
178
+ className: "font-medium",
179
+ children: e.scenario
180
+ }),
181
+ /* @__PURE__ */ l(v, {
182
+ className: "text-right text-red-600",
183
+ children: [e.portfolio, "%"]
184
+ }),
185
+ /* @__PURE__ */ l(v, {
186
+ className: "text-right text-red-600",
187
+ children: [e.market, "%"]
188
+ }),
189
+ /* @__PURE__ */ c(v, {
190
+ className: "text-right text-emerald-600 font-medium",
191
+ children: e.outperformance
192
+ })
193
+ ] }, e.scenario)) })] }) })] }),
194
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ l(h, {
195
+ className: "flex items-center gap-2",
196
+ children: [/* @__PURE__ */ c(s, { className: "h-5 w-5" }), "Mitigation Strategies"]
197
+ }), /* @__PURE__ */ c(p, { children: "Current risk management measures and their effectiveness" })] }), /* @__PURE__ */ c(f, { children: /* @__PURE__ */ c("div", {
198
+ className: "grid gap-3 md:grid-cols-2",
199
+ children: w.map((e) => /* @__PURE__ */ l("div", {
200
+ className: "rounded-lg border p-3",
201
+ children: [/* @__PURE__ */ l("div", {
202
+ className: "flex items-center justify-between mb-1",
203
+ children: [/* @__PURE__ */ c("p", {
204
+ className: "font-medium text-sm",
205
+ children: e.strategy
206
+ }), /* @__PURE__ */ c(u, {
207
+ variant: e.status === "Implemented" || e.status === "Active" || e.status === "Scheduled" ? "default" : "secondary",
208
+ children: e.status
209
+ })]
210
+ }), /* @__PURE__ */ l("p", {
211
+ className: "text-xs text-muted-foreground",
212
+ children: ["Effectiveness: ", e.effectiveness]
213
+ })]
214
+ }, e.strategy))
215
+ }) })] })
216
+ ]
217
+ });
218
+ }
219
+ //#endregion
220
+ export { T as RiskPage };
221
+
222
+ //# sourceMappingURL=RiskPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiskPage.js","names":[],"sources":["../../../src/brainyrich/pages/RiskPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n CardDescription,\n Badge,\n Button,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@burdenoff/fe-libs/ui';\nimport { ShieldAlert, AlertTriangle, Activity, BarChart3 } from 'lucide-react';\nimport { useBrainyRichStore } from '../store/brainyrichStore';\nimport { SectionShell, KpiGrid, statusBadgeVariant } from './_shared';\n\nconst riskMetrics = [\n { metric: 'Portfolio Beta', value: '1.15', benchmark: '1.0', status: 'Above Market' },\n { metric: 'Value at Risk (95%)', value: '-8.5%', benchmark: '-10.0%', status: 'Acceptable' },\n { metric: 'Sharpe Ratio', value: '1.42', benchmark: '1.2', status: 'Good' },\n { metric: 'Max Drawdown', value: '-12.3%', benchmark: '-15.0%', status: 'Within Limits' },\n];\n\nconst stressTests = [\n { scenario: '2008 Financial Crisis', portfolio: -35.2, market: -37.8, outperformance: '+2.6%' },\n { scenario: 'COVID-19 Pandemic', portfolio: -28.1, market: -33.9, outperformance: '+5.8%' },\n { scenario: 'Interest Rate Shock', portfolio: -15.4, market: -18.2, outperformance: '+2.8%' },\n { scenario: 'Stagflation Scenario', portfolio: -12.7, market: -16.3, outperformance: '+3.6%' },\n];\n\nconst mitigationStrategies = [\n { strategy: 'Diversification', status: 'Implemented', effectiveness: 'High' },\n { strategy: 'Hedging (Options)', status: 'Partial', effectiveness: 'Medium' },\n { strategy: 'Stop-Loss Orders', status: 'Active', effectiveness: 'Medium' },\n { strategy: 'Quarterly Rebalancing', status: 'Scheduled', effectiveness: 'High' },\n];\n\nexport function RiskPage() {\n const { risks } = useBrainyRichStore();\n\n return (\n <SectionShell\n title=\"Risk Management\"\n description=\"Monitor portfolio risk exposure, run stress tests, and manage mitigation strategies\"\n actionLabel=\"Run Stress Test\"\n badges={[`${risks.length} Active Alerts`]}\n >\n <KpiGrid\n items={[\n { label: 'Risk Score', value: '7/10', trend: 'Moderate Risk' },\n { label: 'Portfolio VaR', value: '-8.5%', trend: '95% confidence, 1-day' },\n { label: 'Sharpe Ratio', value: '1.42', trend: 'Risk-adjusted return' },\n { label: 'Risk Rating', value: 'B+', trend: 'Overall grade' },\n ]}\n />\n\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Activity className=\"h-5 w-5\" />\n Risk Metrics\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {riskMetrics.map((r) => (\n <div\n key={r.metric}\n className=\"flex items-center justify-between rounded-lg border p-3\"\n >\n <div>\n <p className=\"font-medium text-sm\">{r.metric}</p>\n <p className=\"text-xs text-muted-foreground\">Benchmark: {r.benchmark}</p>\n </div>\n <div className=\"text-right\">\n <p className=\"font-semibold text-sm\">{r.value}</p>\n <Badge\n variant={\n r.status === 'Good' ||\n r.status === 'Acceptable' ||\n r.status === 'Within Limits'\n ? 'default'\n : 'secondary'\n }\n className=\"text-[10px]\"\n >\n {r.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <AlertTriangle className=\"h-5 w-5\" />\n Active Risk Alerts\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {risks.map((r) => (\n <div\n key={r.id}\n className={`rounded-lg border p-3 ${r.severity === 'High' ? 'border-red-200 bg-red-50' : r.severity === 'Medium' ? 'border-yellow-200 bg-yellow-50' : 'border-blue-200 bg-blue-50'}`}\n >\n <div className=\"flex items-center justify-between mb-1\">\n <p className=\"font-medium text-sm\">{r.title}</p>\n <Badge variant={statusBadgeVariant(r.severity)}>{r.severity}</Badge>\n </div>\n <p className=\"text-xs text-muted-foreground\">{r.description}</p>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <BarChart3 className=\"h-5 w-5\" />\n Stress Test Results\n </CardTitle>\n <CardDescription>\n How your portfolio would perform under historical crisis scenarios\n </CardDescription>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Scenario</TableHead>\n <TableHead className=\"text-right\">Your Portfolio</TableHead>\n <TableHead className=\"text-right\">Market Benchmark</TableHead>\n <TableHead className=\"text-right\">Outperformance</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {stressTests.map((t) => (\n <TableRow key={t.scenario}>\n <TableCell className=\"font-medium\">{t.scenario}</TableCell>\n <TableCell className=\"text-right text-red-600\">{t.portfolio}%</TableCell>\n <TableCell className=\"text-right text-red-600\">{t.market}%</TableCell>\n <TableCell className=\"text-right text-emerald-600 font-medium\">\n {t.outperformance}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <ShieldAlert className=\"h-5 w-5\" />\n Mitigation Strategies\n </CardTitle>\n <CardDescription>\n Current risk management measures and their effectiveness\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 md:grid-cols-2\">\n {mitigationStrategies.map((m) => (\n <div key={m.strategy} className=\"rounded-lg border p-3\">\n <div className=\"flex items-center justify-between mb-1\">\n <p className=\"font-medium text-sm\">{m.strategy}</p>\n <Badge\n variant={\n m.status === 'Implemented' ||\n m.status === 'Active' ||\n m.status === 'Scheduled'\n ? 'default'\n : 'secondary'\n }\n >\n {m.status}\n </Badge>\n </div>\n <p className=\"text-xs text-muted-foreground\">Effectiveness: {m.effectiveness}</p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </SectionShell>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function TaxPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TaxPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPage.d.ts","sourceRoot":"","sources":["../../../src/brainyrich/pages/TaxPage.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,OAAO,4CA6LtB"}
@@ -0,0 +1,246 @@
1
+ import { useBrainyRichStore as e } from "../store/brainyrichStore.js";
2
+ import { KpiGrid as t, SectionShell as n, statusBadgeVariant as r } from "./_shared.js";
3
+ import { AlertTriangle as i, Calculator as a, CheckCircle as o, Clock as s, FileText as c, Upload as l } from "lucide-react";
4
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
5
+ import { Badge as p, Button as m, Card as h, CardContent as g, CardDescription as _, CardHeader as v, CardTitle as y, Table as b, TableBody as x, TableCell as S, TableHead as C, TableHeader as w, TableRow as T, Tabs as E, TabsContent as D, TabsList as O, TabsTrigger as k } from "@burdenoff/fe-libs/ui";
6
+ //#region src/brainyrich/pages/TaxPage.tsx
7
+ var A = [
8
+ {
9
+ id: "ts1",
10
+ strategy: "Section 80C Investments",
11
+ limit: 15e4,
12
+ utilized: 142e3,
13
+ status: "Almost Full"
14
+ },
15
+ {
16
+ id: "ts2",
17
+ strategy: "NPS Contribution (80CCD)",
18
+ limit: 5e4,
19
+ utilized: 5e4,
20
+ status: "Fully Utilized"
21
+ },
22
+ {
23
+ id: "ts3",
24
+ strategy: "Health Insurance (80D)",
25
+ limit: 75e3,
26
+ utilized: 52600,
27
+ status: "Available"
28
+ },
29
+ {
30
+ id: "ts4",
31
+ strategy: "HRA Exemption",
32
+ limit: 24e4,
33
+ utilized: 24e4,
34
+ status: "Fully Utilized"
35
+ }
36
+ ];
37
+ function j() {
38
+ let { taxDocs: j } = e(), M = j.filter((e) => e.status === "Uploaded").length, N = j.filter((e) => e.status === "Pending").length;
39
+ return /* @__PURE__ */ f(n, {
40
+ title: "Tax Planning & Compliance",
41
+ description: "Optimize your tax strategy, track documents, and ensure regulatory compliance",
42
+ actionLabel: "Upload Document",
43
+ badges: ["FY 2024-25"],
44
+ children: [/* @__PURE__ */ d(t, { items: [
45
+ {
46
+ label: "Estimated Tax Liability",
47
+ value: "$18,400",
48
+ trend: "After deductions"
49
+ },
50
+ {
51
+ label: "Total Deductions",
52
+ value: "$28,500",
53
+ trend: "Across all sections"
54
+ },
55
+ {
56
+ label: "Effective Tax Rate",
57
+ value: "18.5%",
58
+ trend: "Below bracket avg"
59
+ },
60
+ {
61
+ label: "Tax-Loss Harvesting",
62
+ value: "$7,200",
63
+ trend: "Potential savings"
64
+ }
65
+ ] }), /* @__PURE__ */ f(E, {
66
+ defaultValue: "documents",
67
+ className: "space-y-4",
68
+ children: [
69
+ /* @__PURE__ */ f(O, {
70
+ className: "grid w-full grid-cols-3",
71
+ children: [
72
+ /* @__PURE__ */ d(k, {
73
+ value: "documents",
74
+ children: "Documents"
75
+ }),
76
+ /* @__PURE__ */ d(k, {
77
+ value: "deductions",
78
+ children: "Deduction Planner"
79
+ }),
80
+ /* @__PURE__ */ d(k, {
81
+ value: "actions",
82
+ children: "Tax Actions"
83
+ })
84
+ ]
85
+ }),
86
+ /* @__PURE__ */ d(D, {
87
+ value: "documents",
88
+ children: /* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, {
89
+ className: "flex flex-row items-center justify-between",
90
+ children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f(y, {
91
+ className: "flex items-center gap-2",
92
+ children: [/* @__PURE__ */ d(c, { className: "h-5 w-5" }), "Tax Documents"]
93
+ }), /* @__PURE__ */ f(_, { children: [
94
+ M,
95
+ " uploaded, ",
96
+ N,
97
+ " pending"
98
+ ] })] }), /* @__PURE__ */ f(m, {
99
+ size: "sm",
100
+ children: [/* @__PURE__ */ d(l, { className: "mr-1 h-4 w-4" }), "Upload"]
101
+ })]
102
+ }), /* @__PURE__ */ d(g, { children: /* @__PURE__ */ f(b, { children: [/* @__PURE__ */ d(w, { children: /* @__PURE__ */ f(T, { children: [
103
+ /* @__PURE__ */ d(C, { children: "Document" }),
104
+ /* @__PURE__ */ d(C, { children: "Tax Year" }),
105
+ /* @__PURE__ */ d(C, { children: "Status" }),
106
+ /* @__PURE__ */ d(C, {
107
+ className: "text-right",
108
+ children: "Action"
109
+ })
110
+ ] }) }), /* @__PURE__ */ d(x, { children: j.map((e) => /* @__PURE__ */ f(T, { children: [
111
+ /* @__PURE__ */ d(S, {
112
+ className: "font-medium",
113
+ children: e.name
114
+ }),
115
+ /* @__PURE__ */ d(S, { children: e.taxYear }),
116
+ /* @__PURE__ */ d(S, { children: /* @__PURE__ */ d(p, {
117
+ variant: r(e.status),
118
+ children: e.status === "Uploaded" ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(o, { className: "mr-1 h-3 w-3" }), e.status] }) : /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(s, { className: "mr-1 h-3 w-3" }), e.status] })
119
+ }) }),
120
+ /* @__PURE__ */ d(S, {
121
+ className: "text-right",
122
+ children: /* @__PURE__ */ d(m, {
123
+ variant: "outline",
124
+ size: "sm",
125
+ children: e.status === "Uploaded" ? "View" : "Upload"
126
+ })
127
+ })
128
+ ] }, e.id)) })] }) })] })
129
+ }),
130
+ /* @__PURE__ */ d(D, {
131
+ value: "deductions",
132
+ className: "space-y-4",
133
+ children: /* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, { children: [/* @__PURE__ */ f(y, {
134
+ className: "flex items-center gap-2",
135
+ children: [/* @__PURE__ */ d(a, { className: "h-5 w-5" }), "Deduction Utilization"]
136
+ }), /* @__PURE__ */ d(_, { children: "Track your progress across all tax-saving sections" })] }), /* @__PURE__ */ d(g, {
137
+ className: "space-y-4",
138
+ children: A.map((e) => {
139
+ let t = Math.round(e.utilized / e.limit * 100), n = e.limit - e.utilized;
140
+ return /* @__PURE__ */ f("div", {
141
+ className: "space-y-2",
142
+ children: [
143
+ /* @__PURE__ */ f("div", {
144
+ className: "flex items-center justify-between",
145
+ children: [/* @__PURE__ */ d("span", {
146
+ className: "font-medium text-sm",
147
+ children: e.strategy
148
+ }), /* @__PURE__ */ d(p, {
149
+ variant: t >= 100 ? "default" : t >= 80 ? "secondary" : "destructive",
150
+ children: e.status
151
+ })]
152
+ }),
153
+ /* @__PURE__ */ d("div", {
154
+ className: "h-3 rounded bg-muted overflow-hidden",
155
+ children: /* @__PURE__ */ d("div", {
156
+ className: `h-3 rounded ${t >= 100 ? "bg-emerald-500" : "bg-blue-500"}`,
157
+ style: { width: `${Math.min(t, 100)}%` }
158
+ })
159
+ }),
160
+ /* @__PURE__ */ f("div", {
161
+ className: "flex justify-between text-xs text-muted-foreground",
162
+ children: [/* @__PURE__ */ f("span", { children: [
163
+ "$",
164
+ e.utilized.toLocaleString(),
165
+ " / $",
166
+ e.limit.toLocaleString()
167
+ ] }), /* @__PURE__ */ d("span", { children: n > 0 ? `$${n.toLocaleString()} available` : "Fully utilized" })]
168
+ })
169
+ ]
170
+ }, e.id);
171
+ })
172
+ })] })
173
+ }),
174
+ /* @__PURE__ */ d(D, {
175
+ value: "actions",
176
+ className: "space-y-4",
177
+ children: /* @__PURE__ */ d("div", {
178
+ className: "grid gap-4 md:grid-cols-2",
179
+ children: [
180
+ {
181
+ icon: o,
182
+ title: "Maximize 80C Investments",
183
+ desc: "You can invest $8,000 more in ELSS funds this year",
184
+ color: "bg-emerald-50 border-emerald-200",
185
+ iconColor: "text-emerald-600",
186
+ action: "Invest Now"
187
+ },
188
+ {
189
+ icon: a,
190
+ title: "Tax-Loss Harvesting",
191
+ desc: "Potential $7,200 savings from unrealized losses in portfolio",
192
+ color: "bg-purple-50 border-purple-200",
193
+ iconColor: "text-purple-600",
194
+ action: "Analyze Portfolio"
195
+ },
196
+ {
197
+ icon: i,
198
+ title: "Advance Tax Deadline",
199
+ desc: "Next quarterly advance tax installment of $4,600 due June 15",
200
+ color: "bg-yellow-50 border-yellow-200",
201
+ iconColor: "text-yellow-600",
202
+ action: "Schedule Payment"
203
+ },
204
+ {
205
+ icon: c,
206
+ title: "Review Health Insurance",
207
+ desc: "Optimize Section 80D benefits - $22,400 still available",
208
+ color: "bg-blue-50 border-blue-200",
209
+ iconColor: "text-blue-600",
210
+ action: "Review Benefits"
211
+ }
212
+ ].map((e) => /* @__PURE__ */ d(h, {
213
+ className: `${e.color} border`,
214
+ children: /* @__PURE__ */ f(g, {
215
+ className: "flex items-start gap-3 p-4",
216
+ children: [/* @__PURE__ */ d(e.icon, { className: `h-5 w-5 mt-0.5 ${e.iconColor}` }), /* @__PURE__ */ f("div", {
217
+ className: "flex-1",
218
+ children: [
219
+ /* @__PURE__ */ d("p", {
220
+ className: "font-medium text-sm",
221
+ children: e.title
222
+ }),
223
+ /* @__PURE__ */ d("p", {
224
+ className: "text-xs text-muted-foreground mt-1",
225
+ children: e.desc
226
+ }),
227
+ /* @__PURE__ */ d(m, {
228
+ variant: "outline",
229
+ size: "sm",
230
+ className: "mt-2",
231
+ children: e.action
232
+ })
233
+ ]
234
+ })]
235
+ })
236
+ }, e.title))
237
+ })
238
+ })
239
+ ]
240
+ })]
241
+ });
242
+ }
243
+ //#endregion
244
+ export { j as TaxPage };
245
+
246
+ //# sourceMappingURL=TaxPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxPage.js","names":[],"sources":["../../../src/brainyrich/pages/TaxPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n CardDescription,\n Badge,\n Button,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { Calculator, FileText, Upload, Clock, CheckCircle, AlertTriangle } from 'lucide-react';\nimport { useBrainyRichStore } from '../store/brainyrichStore';\nimport { SectionShell, KpiGrid, statusBadgeVariant } from './_shared';\n\nconst taxStrategies = [\n {\n id: 'ts1',\n strategy: 'Section 80C Investments',\n limit: 150000,\n utilized: 142000,\n status: 'Almost Full',\n },\n {\n id: 'ts2',\n strategy: 'NPS Contribution (80CCD)',\n limit: 50000,\n utilized: 50000,\n status: 'Fully Utilized',\n },\n {\n id: 'ts3',\n strategy: 'Health Insurance (80D)',\n limit: 75000,\n utilized: 52600,\n status: 'Available',\n },\n {\n id: 'ts4',\n strategy: 'HRA Exemption',\n limit: 240000,\n utilized: 240000,\n status: 'Fully Utilized',\n },\n];\n\nexport function TaxPage() {\n const { taxDocs } = useBrainyRichStore();\n\n const uploadedCount = taxDocs.filter((d) => d.status === 'Uploaded').length;\n const pendingCount = taxDocs.filter((d) => d.status === 'Pending').length;\n\n return (\n <SectionShell\n title=\"Tax Planning & Compliance\"\n description=\"Optimize your tax strategy, track documents, and ensure regulatory compliance\"\n actionLabel=\"Upload Document\"\n badges={['FY 2024-25']}\n >\n <KpiGrid\n items={[\n { label: 'Estimated Tax Liability', value: '$18,400', trend: 'After deductions' },\n { label: 'Total Deductions', value: '$28,500', trend: 'Across all sections' },\n { label: 'Effective Tax Rate', value: '18.5%', trend: 'Below bracket avg' },\n { label: 'Tax-Loss Harvesting', value: '$7,200', trend: 'Potential savings' },\n ]}\n />\n\n <Tabs defaultValue=\"documents\" className=\"space-y-4\">\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"documents\">Documents</TabsTrigger>\n <TabsTrigger value=\"deductions\">Deduction Planner</TabsTrigger>\n <TabsTrigger value=\"actions\">Tax Actions</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"documents\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n <FileText className=\"h-5 w-5\" />\n Tax Documents\n </CardTitle>\n <CardDescription>\n {uploadedCount} uploaded, {pendingCount} pending\n </CardDescription>\n </div>\n <Button size=\"sm\">\n <Upload className=\"mr-1 h-4 w-4\" />\n Upload\n </Button>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Document</TableHead>\n <TableHead>Tax Year</TableHead>\n <TableHead>Status</TableHead>\n <TableHead className=\"text-right\">Action</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {taxDocs.map((d) => (\n <TableRow key={d.id}>\n <TableCell className=\"font-medium\">{d.name}</TableCell>\n <TableCell>{d.taxYear}</TableCell>\n <TableCell>\n <Badge variant={statusBadgeVariant(d.status)}>\n {d.status === 'Uploaded' ? (\n <>\n <CheckCircle className=\"mr-1 h-3 w-3\" />\n {d.status}\n </>\n ) : (\n <>\n <Clock className=\"mr-1 h-3 w-3\" />\n {d.status}\n </>\n )}\n </Badge>\n </TableCell>\n <TableCell className=\"text-right\">\n <Button variant=\"outline\" size=\"sm\">\n {d.status === 'Uploaded' ? 'View' : 'Upload'}\n </Button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"deductions\" className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Calculator className=\"h-5 w-5\" />\n Deduction Utilization\n </CardTitle>\n <CardDescription>Track your progress across all tax-saving sections</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {taxStrategies.map((s) => {\n const pct = Math.round((s.utilized / s.limit) * 100);\n const remaining = s.limit - s.utilized;\n return (\n <div key={s.id} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium text-sm\">{s.strategy}</span>\n <Badge\n variant={pct >= 100 ? 'default' : pct >= 80 ? 'secondary' : 'destructive'}\n >\n {s.status}\n </Badge>\n </div>\n <div className=\"h-3 rounded bg-muted overflow-hidden\">\n <div\n className={`h-3 rounded ${pct >= 100 ? 'bg-emerald-500' : 'bg-blue-500'}`}\n style={{ width: `${Math.min(pct, 100)}%` }}\n />\n </div>\n <div className=\"flex justify-between text-xs text-muted-foreground\">\n <span>\n ${s.utilized.toLocaleString()} / ${s.limit.toLocaleString()}\n </span>\n <span>\n {remaining > 0\n ? `$${remaining.toLocaleString()} available`\n : 'Fully utilized'}\n </span>\n </div>\n </div>\n );\n })}\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"actions\" className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n {[\n {\n icon: CheckCircle,\n title: 'Maximize 80C Investments',\n desc: 'You can invest $8,000 more in ELSS funds this year',\n color: 'bg-emerald-50 border-emerald-200',\n iconColor: 'text-emerald-600',\n action: 'Invest Now',\n },\n {\n icon: Calculator,\n title: 'Tax-Loss Harvesting',\n desc: 'Potential $7,200 savings from unrealized losses in portfolio',\n color: 'bg-purple-50 border-purple-200',\n iconColor: 'text-purple-600',\n action: 'Analyze Portfolio',\n },\n {\n icon: AlertTriangle,\n title: 'Advance Tax Deadline',\n desc: 'Next quarterly advance tax installment of $4,600 due June 15',\n color: 'bg-yellow-50 border-yellow-200',\n iconColor: 'text-yellow-600',\n action: 'Schedule Payment',\n },\n {\n icon: FileText,\n title: 'Review Health Insurance',\n desc: 'Optimize Section 80D benefits - $22,400 still available',\n color: 'bg-blue-50 border-blue-200',\n iconColor: 'text-blue-600',\n action: 'Review Benefits',\n },\n ].map((item) => (\n <Card key={item.title} className={`${item.color} border`}>\n <CardContent className=\"flex items-start gap-3 p-4\">\n <item.icon className={`h-5 w-5 mt-0.5 ${item.iconColor}`} />\n <div className=\"flex-1\">\n <p className=\"font-medium text-sm\">{item.title}</p>\n <p className=\"text-xs text-muted-foreground mt-1\">{item.desc}</p>\n <Button variant=\"outline\" size=\"sm\" className=\"mt-2\">\n {item.action}\n </Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </TabsContent>\n </Tabs>\n </SectionShell>\n );\n}\n"],"mappings":";;;;;;AAuBA,IAAM,IAAgB;CACpB;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,UAAU;EACV,QAAQ;EACT;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,UAAU;EACV,QAAQ;EACT;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,UAAU;EACV,QAAQ;EACT;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,UAAU;EACV,QAAQ;EACT;CACF;AAED,SAAgB,IAAU;CACxB,IAAM,EAAE,eAAY,GAAoB,EAElC,IAAgB,EAAQ,QAAQ,MAAM,EAAE,WAAW,WAAW,CAAC,QAC/D,IAAe,EAAQ,QAAQ,MAAM,EAAE,WAAW,UAAU,CAAC;AAEnE,QACE,kBAAC,GAAD;EACE,OAAM;EACN,aAAY;EACZ,aAAY;EACZ,QAAQ,CAAC,aAAa;YAJxB,CAME,kBAAC,GAAD,EACE,OAAO;GACL;IAAE,OAAO;IAA2B,OAAO;IAAW,OAAO;IAAoB;GACjF;IAAE,OAAO;IAAoB,OAAO;IAAW,OAAO;IAAuB;GAC7E;IAAE,OAAO;IAAsB,OAAO;IAAS,OAAO;IAAqB;GAC3E;IAAE,OAAO;IAAuB,OAAO;IAAU,OAAO;IAAqB;GAC9E,EACD,CAAA,EAEF,kBAAC,GAAD;GAAM,cAAa;GAAY,WAAU;aAAzC;IACE,kBAAC,GAAD;KAAU,WAAU;eAApB;MACE,kBAAC,GAAD;OAAa,OAAM;iBAAY;OAAuB,CAAA;MACtD,kBAAC,GAAD;OAAa,OAAM;iBAAa;OAA+B,CAAA;MAC/D,kBAAC,GAAD;OAAa,OAAM;iBAAU;OAAyB,CAAA;MAC7C;;IAEX,kBAAC,GAAD;KAAa,OAAM;eACjB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAW,WAAU;iBAArB,CACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA,EAAA,gBAEtB;UACZ,kBAAC,GAAD,EAAA,UAAA;OACG;OAAc;OAAY;OAAa;OACxB,EAAA,CAAA,CACd,EAAA,CAAA,EACN,kBAAC,GAAD;OAAQ,MAAK;iBAAb,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,SAE5B;SACE;SACb,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;MACE,kBAAC,GAAD,EAAA,UAAW,YAAoB,CAAA;MAC/B,kBAAC,GAAD,EAAA,UAAW,YAAoB,CAAA;MAC/B,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;MAC7B,kBAAC,GAAD;OAAW,WAAU;iBAAa;OAAkB,CAAA;MAC3C,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,GAAD,EAAA,UACG,EAAQ,KAAK,MACZ,kBAAC,GAAD,EAAA,UAAA;MACE,kBAAC,GAAD;OAAW,WAAU;iBAAe,EAAE;OAAiB,CAAA;MACvD,kBAAC,GAAD,EAAA,UAAY,EAAE,SAAoB,CAAA;MAClC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;OAAO,SAAS,EAAmB,EAAE,OAAO;iBACzC,EAAE,WAAW,aACZ,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAa,WAAU,gBAAiB,CAAA,EACvC,EAAE,OACF,EAAA,CAAA,GAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAO,WAAU,gBAAiB,CAAA,EACjC,EAAE,OACF,EAAA,CAAA;OAEC,CAAA,EACE,CAAA;MACZ,kBAAC,GAAD;OAAW,WAAU;iBACnB,kBAAC,GAAD;QAAQ,SAAQ;QAAU,MAAK;kBAC5B,EAAE,WAAW,aAAa,SAAS;QAC7B,CAAA;OACC,CAAA;MACH,EAAA,EAvBI,EAAE,GAuBN,CACX,EACQ,CAAA,CACN,EAAA,CAAA,EACI,CAAA,CACT,EAAA,CAAA;KACK,CAAA;IAEd,kBAAC,GAAD;KAAa,OAAM;KAAa,WAAU;eACxC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAW,WAAU;gBAArB,CACE,kBAAC,GAAD,EAAY,WAAU,WAAY,CAAA,EAAA,wBAExB;SACZ,kBAAC,GAAD,EAAA,UAAiB,sDAAoE,CAAA,CAC1E,EAAA,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBACpB,EAAc,KAAK,MAAM;OACxB,IAAM,IAAM,KAAK,MAAO,EAAE,WAAW,EAAE,QAAS,IAAI,EAC9C,IAAY,EAAE,QAAQ,EAAE;AAC9B,cACE,kBAAC,OAAD;QAAgB,WAAU;kBAA1B;SACE,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,QAAD;WAAM,WAAU;qBAAuB,EAAE;WAAgB,CAAA,EACzD,kBAAC,GAAD;WACE,SAAS,KAAO,MAAM,YAAY,KAAO,KAAK,cAAc;qBAE3D,EAAE;WACG,CAAA,CACJ;;SACN,kBAAC,OAAD;UAAK,WAAU;oBACb,kBAAC,OAAD;WACE,WAAW,eAAe,KAAO,MAAM,mBAAmB;WAC1D,OAAO,EAAE,OAAO,GAAG,KAAK,IAAI,GAAK,IAAI,CAAC,IAAI;WAC1C,CAAA;UACE,CAAA;SACN,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,QAAD,EAAA,UAAA;WAAM;WACF,EAAE,SAAS,gBAAgB;WAAC;WAAK,EAAE,MAAM,gBAAgB;WACtD,EAAA,CAAA,EACP,kBAAC,QAAD,EAAA,UACG,IAAY,IACT,IAAI,EAAU,gBAAgB,CAAC,cAC/B,kBACC,CAAA,CACH;;SACF;UAzBI,EAAE,GAyBN;QAER;MACU,CAAA,CACT,EAAA,CAAA;KACK,CAAA;IAEd,kBAAC,GAAD;KAAa,OAAM;KAAU,WAAU;eACrC,kBAAC,OAAD;MAAK,WAAU;gBACZ;OACC;QACE,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACT;OACD;QACE,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACT;OACD;QACE,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACT;OACD;QACE,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACT;OACF,CAAC,KAAK,MACL,kBAAC,GAAD;OAAuB,WAAW,GAAG,EAAK,MAAM;iBAC9C,kBAAC,GAAD;QAAa,WAAU;kBAAvB,CACE,kBAAC,EAAK,MAAN,EAAW,WAAW,kBAAkB,EAAK,aAAe,CAAA,EAC5D,kBAAC,OAAD;SAAK,WAAU;mBAAf;UACE,kBAAC,KAAD;WAAG,WAAU;qBAAuB,EAAK;WAAU,CAAA;UACnD,kBAAC,KAAD;WAAG,WAAU;qBAAsC,EAAK;WAAS,CAAA;UACjE,kBAAC,GAAD;WAAQ,SAAQ;WAAU,MAAK;WAAK,WAAU;qBAC3C,EAAK;WACC,CAAA;UACL;WACM;;OACT,EAXI,EAAK,MAWT,CACP;MACE,CAAA;KACM,CAAA;IACT;KACM"}
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export declare function formatMoney(value: number): string;
4
+ export declare function statusBadgeVariant(status: string): 'default' | 'secondary' | 'destructive' | 'outline';
5
+ interface SectionShellProps {
6
+ title: string;
7
+ description: string;
8
+ actionLabel?: string;
9
+ badges?: string[];
10
+ children: ReactNode;
11
+ }
12
+ export declare function SectionShell({ title, description, actionLabel, badges, children, }: SectionShellProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function KpiGrid({ items, }: {
14
+ items: Array<{
15
+ label: string;
16
+ value: string;
17
+ trend?: string;
18
+ }>;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=_shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../src/brainyrich/pages/_shared.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GACb,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAKrD;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,WAAW,EACX,WAAW,EACX,MAAW,EACX,QAAQ,GACT,EAAE,iBAAiB,2CAoBnB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,GACN,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,2CAcA"}
@@ -0,0 +1,63 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { Badge as n, Button as r, Card as i, CardContent as a } from "@burdenoff/fe-libs/ui";
3
+ //#region src/brainyrich/pages/_shared.tsx
4
+ function o(e) {
5
+ return new Intl.NumberFormat("en-US", {
6
+ style: "currency",
7
+ currency: "USD",
8
+ maximumFractionDigits: 0
9
+ }).format(e);
10
+ }
11
+ function s(e) {
12
+ return e === "active" || e === "Connected" || e === "Uploaded" ? "default" : e === "at_risk" || e === "High" || e === "Pending" ? "destructive" : e === "planned" || e === "Medium" || e === "Sync Needed" ? "secondary" : "outline";
13
+ }
14
+ function c({ title: i, description: a, actionLabel: o, badges: s = [], children: c }) {
15
+ return /* @__PURE__ */ t("div", {
16
+ className: "space-y-6 p-6",
17
+ children: [/* @__PURE__ */ t("div", {
18
+ className: "flex flex-col gap-4 md:flex-row md:items-start md:justify-between",
19
+ children: [/* @__PURE__ */ t("div", { children: [/* @__PURE__ */ e("h1", {
20
+ className: "text-2xl font-semibold",
21
+ children: i
22
+ }), /* @__PURE__ */ e("p", {
23
+ className: "text-sm text-muted-foreground",
24
+ children: a
25
+ })] }), /* @__PURE__ */ t("div", {
26
+ className: "flex items-center gap-2",
27
+ children: [s.map((t) => /* @__PURE__ */ e(n, {
28
+ variant: "secondary",
29
+ children: t
30
+ }, t)), o ? /* @__PURE__ */ e(r, {
31
+ size: "sm",
32
+ children: o
33
+ }) : null]
34
+ })]
35
+ }), c]
36
+ });
37
+ }
38
+ function l({ items: n }) {
39
+ return /* @__PURE__ */ e("div", {
40
+ className: "grid gap-4 md:grid-cols-2 xl:grid-cols-4",
41
+ children: n.map((n) => /* @__PURE__ */ e(i, { children: /* @__PURE__ */ t(a, {
42
+ className: "space-y-1 p-4",
43
+ children: [
44
+ /* @__PURE__ */ e("p", {
45
+ className: "text-xs text-muted-foreground",
46
+ children: n.label
47
+ }),
48
+ /* @__PURE__ */ e("p", {
49
+ className: "text-2xl font-semibold",
50
+ children: n.value
51
+ }),
52
+ n.trend ? /* @__PURE__ */ e("p", {
53
+ className: "text-xs text-emerald-600",
54
+ children: n.trend
55
+ }) : null
56
+ ]
57
+ }) }, n.label))
58
+ });
59
+ }
60
+ //#endregion
61
+ export { l as KpiGrid, c as SectionShell, o as formatMoney, s as statusBadgeVariant };
62
+
63
+ //# sourceMappingURL=_shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.js","names":[],"sources":["../../../src/brainyrich/pages/_shared.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Badge, Button, Card, CardContent } from '@burdenoff/fe-libs/ui';\n\nexport function formatMoney(value: number): string {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 0,\n }).format(value);\n}\n\nexport function statusBadgeVariant(\n status: string\n): 'default' | 'secondary' | 'destructive' | 'outline' {\n if (status === 'active' || status === 'Connected' || status === 'Uploaded') return 'default';\n if (status === 'at_risk' || status === 'High' || status === 'Pending') return 'destructive';\n if (status === 'planned' || status === 'Medium' || status === 'Sync Needed') return 'secondary';\n return 'outline';\n}\n\ninterface SectionShellProps {\n title: string;\n description: string;\n actionLabel?: string;\n badges?: string[];\n children: ReactNode;\n}\n\nexport function SectionShell({\n title,\n description,\n actionLabel,\n badges = [],\n children,\n}: SectionShellProps) {\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">{title}</h1>\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n </div>\n <div className=\"flex items-center gap-2\">\n {badges.map((badge) => (\n <Badge key={badge} variant=\"secondary\">\n {badge}\n </Badge>\n ))}\n {actionLabel ? <Button size=\"sm\">{actionLabel}</Button> : null}\n </div>\n </div>\n {children}\n </div>\n );\n}\n\nexport function KpiGrid({\n items,\n}: {\n items: Array<{ label: string; value: string; trend?: string }>;\n}) {\n return (\n <div className=\"grid gap-4 md:grid-cols-2 xl:grid-cols-4\">\n {items.map((item) => (\n <Card key={item.label}>\n <CardContent className=\"space-y-1 p-4\">\n <p className=\"text-xs text-muted-foreground\">{item.label}</p>\n <p className=\"text-2xl font-semibold\">{item.value}</p>\n {item.trend ? <p className=\"text-xs text-emerald-600\">{item.trend}</p> : null}\n </CardContent>\n </Card>\n ))}\n </div>\n );\n}\n"],"mappings":";;;AAGA,SAAgB,EAAY,GAAuB;AACjD,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,OAAO;EACP,UAAU;EACV,uBAAuB;EACxB,CAAC,CAAC,OAAO,EAAM;;AAGlB,SAAgB,EACd,GACqD;AAIrD,QAHI,MAAW,YAAY,MAAW,eAAe,MAAW,aAAmB,YAC/E,MAAW,aAAa,MAAW,UAAU,MAAW,YAAkB,gBAC1E,MAAW,aAAa,MAAW,YAAY,MAAW,gBAAsB,cAC7E;;AAWT,SAAgB,EAAa,EAC3B,UACA,gBACA,gBACA,YAAS,EAAE,EACX,eACoB;AACpB,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAA0B;IAAW,CAAA,EACnD,kBAAC,KAAD;IAAG,WAAU;cAAiC;IAAgB,CAAA,CAC1D,EAAA,CAAA,EACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,EAAO,KAAK,MACX,kBAAC,GAAD;KAAmB,SAAQ;eACxB;KACK,EAFI,EAEJ,CACR,EACD,IAAc,kBAAC,GAAD;KAAQ,MAAK;eAAM;KAAqB,CAAA,GAAG,KACtD;MACF;MACL,EACG;;;AAIV,SAAgB,EAAQ,EACtB,YAGC;AACD,QACE,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAM,KAAK,MACV,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACE,kBAAC,KAAD;KAAG,WAAU;eAAiC,EAAK;KAAU,CAAA;IAC7D,kBAAC,KAAD;KAAG,WAAU;eAA0B,EAAK;KAAU,CAAA;IACrD,EAAK,QAAQ,kBAAC,KAAD;KAAG,WAAU;eAA4B,EAAK;KAAU,CAAA,GAAG;IAC7D;MACT,EANI,EAAK,MAMT,CACP;EACE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ import { BrainyRichRootProps } from '../types';
3
+
4
+ export declare const useBrainyRich: () => BrainyRichRootProps;
5
+ export declare const BrainyRichProvider: FC<PropsWithChildren<BrainyRichRootProps>>;
6
+ //# sourceMappingURL=BrainyRichProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrainyRichProvider.d.ts","sourceRoot":"","sources":["../../../src/brainyrich/providers/BrainyRichProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMpD,eAAO,MAAM,aAAa,2BAIzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAsBzE,CAAC"}