@pattern-stack/frontend-patterns 0.0.4 → 0.0.5

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 (283) hide show
  1. package/dist/frontend-patterns.css +1 -1
  2. package/dist/index.es.js +1917 -2
  3. package/dist/index.es.js.map +1 -1
  4. package/dist/index.js +1916 -1
  5. package/dist/index.js.map +1 -1
  6. package/package.json +6 -3
  7. package/src/App.tsx +11 -1
  8. package/src/atoms/composed/SalesPanel/SalesPanel.tsx +116 -0
  9. package/src/atoms/composed/SalesPanel/index.ts +1 -0
  10. package/src/atoms/composed/SalesPanel/mockSalesData.ts +151 -0
  11. package/src/atoms/composed/index.ts +1 -0
  12. package/src/atoms/types/entity-config.ts +127 -0
  13. package/src/atoms/types/index.ts +2 -1
  14. package/src/atoms/utils/metric-engine.ts +236 -0
  15. package/src/atoms/utils/utils.ts +2 -1
  16. package/src/molecules/layout/DashboardWithSidePanel/DashboardWithSidePanel.tsx +42 -0
  17. package/src/molecules/layout/DashboardWithSidePanel/index.ts +1 -0
  18. package/src/molecules/layout/Sidebar.tsx +10 -2
  19. package/src/molecules/layout/index.ts +1 -0
  20. package/src/organisms/entity/CategoryBreakdownPanel.tsx +427 -0
  21. package/src/organisms/entity/EntityListPanel.tsx +339 -0
  22. package/src/organisms/entity/MetricsOverviewPanel.tsx +236 -0
  23. package/src/organisms/entity/TrendAnalysisPanel.tsx +337 -0
  24. package/src/organisms/entity/index.ts +4 -0
  25. package/src/organisms/index.ts +4 -1
  26. package/src/pages/AdminShowcase/AdminDashboardShowcase.tsx +77 -75
  27. package/src/pages/AdminShowcase/SalesPerformanceDashboard.tsx +158 -0
  28. package/src/pages/AdminShowcase/index.tsx +2 -1
  29. package/src/pages/EntityShowcase/EntityManagementShowcase.tsx +137 -0
  30. package/src/pages/EntityShowcase/EntityPerformanceShowcase.tsx +117 -0
  31. package/src/pages/EntityShowcase/index.ts +2 -0
  32. package/src/pages/EntityTemplateExample.tsx +229 -0
  33. package/src/pages/TestEntityTemplate.tsx +40 -0
  34. package/src/pages/index.ts +2 -1
  35. package/src/templates/entity/EntityManagementTemplate.tsx +430 -0
  36. package/src/templates/entity/EntityPerformanceDashboardTemplate.tsx +277 -0
  37. package/src/templates/entity/configs/financial-config.ts +141 -0
  38. package/src/templates/entity/configs/index.ts +1 -0
  39. package/src/templates/entity/index.ts +3 -0
  40. package/src/templates/financial/FinancialDashboardTemplate.tsx +326 -0
  41. package/src/templates/index.ts +3 -0
  42. package/dist/atoms/composed/Accordion/Accordion.d.ts +0 -20
  43. package/dist/atoms/composed/Accordion/Accordion.d.ts.map +0 -1
  44. package/dist/atoms/composed/Accordion/index.d.ts +0 -2
  45. package/dist/atoms/composed/Accordion/index.d.ts.map +0 -1
  46. package/dist/atoms/composed/Alert/Alert.d.ts +0 -25
  47. package/dist/atoms/composed/Alert/Alert.d.ts.map +0 -1
  48. package/dist/atoms/composed/Alert/index.d.ts +0 -2
  49. package/dist/atoms/composed/Alert/index.d.ts.map +0 -1
  50. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts +0 -17
  51. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  52. package/dist/atoms/composed/Breadcrumb/index.d.ts +0 -2
  53. package/dist/atoms/composed/Breadcrumb/index.d.ts.map +0 -1
  54. package/dist/atoms/composed/Chart/Chart.d.ts +0 -37
  55. package/dist/atoms/composed/Chart/Chart.d.ts.map +0 -1
  56. package/dist/atoms/composed/Chart/index.d.ts +0 -3
  57. package/dist/atoms/composed/Chart/index.d.ts.map +0 -1
  58. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts +0 -19
  59. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts.map +0 -1
  60. package/dist/atoms/composed/ColorSwatch/index.d.ts +0 -2
  61. package/dist/atoms/composed/ColorSwatch/index.d.ts.map +0 -1
  62. package/dist/atoms/composed/DarkModeToggle.d.ts +0 -4
  63. package/dist/atoms/composed/DarkModeToggle.d.ts.map +0 -1
  64. package/dist/atoms/composed/DataBadge/DataBadge.d.ts +0 -13
  65. package/dist/atoms/composed/DataBadge/DataBadge.d.ts.map +0 -1
  66. package/dist/atoms/composed/DataBadge/index.d.ts +0 -2
  67. package/dist/atoms/composed/DataBadge/index.d.ts.map +0 -1
  68. package/dist/atoms/composed/DataTable/DataTable.d.ts +0 -28
  69. package/dist/atoms/composed/DataTable/DataTable.d.ts.map +0 -1
  70. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts +0 -10
  71. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts.map +0 -1
  72. package/dist/atoms/composed/DataTable/index.d.ts +0 -3
  73. package/dist/atoms/composed/DataTable/index.d.ts.map +0 -1
  74. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts +0 -45
  75. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts.map +0 -1
  76. package/dist/atoms/composed/DateTimePicker/index.d.ts +0 -3
  77. package/dist/atoms/composed/DateTimePicker/index.d.ts.map +0 -1
  78. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts +0 -30
  79. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts.map +0 -1
  80. package/dist/atoms/composed/DetailedCard/index.d.ts +0 -3
  81. package/dist/atoms/composed/DetailedCard/index.d.ts.map +0 -1
  82. package/dist/atoms/composed/EmptyState/EmptyState.d.ts +0 -18
  83. package/dist/atoms/composed/EmptyState/EmptyState.d.ts.map +0 -1
  84. package/dist/atoms/composed/EmptyState/index.d.ts +0 -2
  85. package/dist/atoms/composed/EmptyState/index.d.ts.map +0 -1
  86. package/dist/atoms/composed/FileUpload/FileUpload.d.ts +0 -46
  87. package/dist/atoms/composed/FileUpload/FileUpload.d.ts.map +0 -1
  88. package/dist/atoms/composed/FileUpload/index.d.ts +0 -3
  89. package/dist/atoms/composed/FileUpload/index.d.ts.map +0 -1
  90. package/dist/atoms/composed/FormField/FormField.d.ts +0 -23
  91. package/dist/atoms/composed/FormField/FormField.d.ts.map +0 -1
  92. package/dist/atoms/composed/FormField/index.d.ts +0 -2
  93. package/dist/atoms/composed/FormField/index.d.ts.map +0 -1
  94. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts +0 -8
  95. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts.map +0 -1
  96. package/dist/atoms/composed/GlobalSearch/index.d.ts +0 -2
  97. package/dist/atoms/composed/GlobalSearch/index.d.ts.map +0 -1
  98. package/dist/atoms/composed/IconBadge/IconBadge.d.ts +0 -16
  99. package/dist/atoms/composed/IconBadge/IconBadge.d.ts.map +0 -1
  100. package/dist/atoms/composed/IconBadge/index.d.ts +0 -3
  101. package/dist/atoms/composed/IconBadge/index.d.ts.map +0 -1
  102. package/dist/atoms/composed/Modal/Modal.d.ts +0 -18
  103. package/dist/atoms/composed/Modal/Modal.d.ts.map +0 -1
  104. package/dist/atoms/composed/Modal/index.d.ts +0 -3
  105. package/dist/atoms/composed/Modal/index.d.ts.map +0 -1
  106. package/dist/atoms/composed/PaletteSwitcher.d.ts +0 -7
  107. package/dist/atoms/composed/PaletteSwitcher.d.ts.map +0 -1
  108. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts +0 -25
  109. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts.map +0 -1
  110. package/dist/atoms/composed/ProgressBar/index.d.ts +0 -2
  111. package/dist/atoms/composed/ProgressBar/index.d.ts.map +0 -1
  112. package/dist/atoms/composed/StatCard/StatCard.d.ts +0 -21
  113. package/dist/atoms/composed/StatCard/StatCard.d.ts.map +0 -1
  114. package/dist/atoms/composed/StatCard/index.d.ts +0 -2
  115. package/dist/atoms/composed/StatCard/index.d.ts.map +0 -1
  116. package/dist/atoms/composed/StyleGuide.d.ts +0 -3
  117. package/dist/atoms/composed/StyleGuide.d.ts.map +0 -1
  118. package/dist/atoms/composed/Toast/Toast.d.ts +0 -40
  119. package/dist/atoms/composed/Toast/Toast.d.ts.map +0 -1
  120. package/dist/atoms/composed/Toast/index.d.ts +0 -2
  121. package/dist/atoms/composed/Toast/index.d.ts.map +0 -1
  122. package/dist/atoms/composed/Tooltip/Tooltip.d.ts +0 -16
  123. package/dist/atoms/composed/Tooltip/Tooltip.d.ts.map +0 -1
  124. package/dist/atoms/composed/Tooltip/index.d.ts +0 -2
  125. package/dist/atoms/composed/Tooltip/index.d.ts.map +0 -1
  126. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts +0 -8
  127. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts.map +0 -1
  128. package/dist/atoms/composed/UserAvatar/index.d.ts +0 -2
  129. package/dist/atoms/composed/UserAvatar/index.d.ts.map +0 -1
  130. package/dist/atoms/composed/UserMenu/UserMenu.d.ts +0 -8
  131. package/dist/atoms/composed/UserMenu/UserMenu.d.ts.map +0 -1
  132. package/dist/atoms/composed/UserMenu/index.d.ts +0 -2
  133. package/dist/atoms/composed/UserMenu/index.d.ts.map +0 -1
  134. package/dist/atoms/composed/index.d.ts +0 -25
  135. package/dist/atoms/composed/index.d.ts.map +0 -1
  136. package/dist/atoms/hooks/useApi.d.ts +0 -25
  137. package/dist/atoms/hooks/useApi.d.ts.map +0 -1
  138. package/dist/atoms/hooks/useHealth.d.ts +0 -19
  139. package/dist/atoms/hooks/useHealth.d.ts.map +0 -1
  140. package/dist/atoms/index.d.ts +0 -9
  141. package/dist/atoms/index.d.ts.map +0 -1
  142. package/dist/atoms/services/api/client.d.ts +0 -20
  143. package/dist/atoms/services/api/client.d.ts.map +0 -1
  144. package/dist/atoms/services/auth-service.d.ts +0 -24
  145. package/dist/atoms/services/auth-service.d.ts.map +0 -1
  146. package/dist/atoms/services/health.d.ts +0 -7
  147. package/dist/atoms/services/health.d.ts.map +0 -1
  148. package/dist/atoms/services/index.d.ts +0 -4
  149. package/dist/atoms/services/index.d.ts.map +0 -1
  150. package/dist/atoms/shared/config/constants.d.ts +0 -15
  151. package/dist/atoms/shared/config/constants.d.ts.map +0 -1
  152. package/dist/atoms/shared/config/dashboard-sizes.d.ts +0 -83
  153. package/dist/atoms/shared/config/dashboard-sizes.d.ts.map +0 -1
  154. package/dist/atoms/shared/config/environment.d.ts +0 -10
  155. package/dist/atoms/shared/config/environment.d.ts.map +0 -1
  156. package/dist/atoms/shared/index.d.ts +0 -4
  157. package/dist/atoms/shared/index.d.ts.map +0 -1
  158. package/dist/atoms/types/auth.d.ts +0 -56
  159. package/dist/atoms/types/auth.d.ts.map +0 -1
  160. package/dist/atoms/types/generated.d.ts +0 -1469
  161. package/dist/atoms/types/generated.d.ts.map +0 -1
  162. package/dist/atoms/types/index.d.ts +0 -4
  163. package/dist/atoms/types/index.d.ts.map +0 -1
  164. package/dist/atoms/types/loading.d.ts +0 -26
  165. package/dist/atoms/types/loading.d.ts.map +0 -1
  166. package/dist/atoms/ui/Badge.d.ts +0 -10
  167. package/dist/atoms/ui/Badge.d.ts.map +0 -1
  168. package/dist/atoms/ui/ErrorBoundary.d.ts +0 -18
  169. package/dist/atoms/ui/ErrorBoundary.d.ts.map +0 -1
  170. package/dist/atoms/ui/Select.d.ts +0 -28
  171. package/dist/atoms/ui/Select.d.ts.map +0 -1
  172. package/dist/atoms/ui/Switch.d.ts +0 -9
  173. package/dist/atoms/ui/Switch.d.ts.map +0 -1
  174. package/dist/atoms/ui/Tabs.d.ts +0 -30
  175. package/dist/atoms/ui/Tabs.d.ts.map +0 -1
  176. package/dist/atoms/ui/avatar.d.ts +0 -7
  177. package/dist/atoms/ui/avatar.d.ts.map +0 -1
  178. package/dist/atoms/ui/button.d.ts +0 -14
  179. package/dist/atoms/ui/button.d.ts.map +0 -1
  180. package/dist/atoms/ui/card.d.ts +0 -12
  181. package/dist/atoms/ui/card.d.ts.map +0 -1
  182. package/dist/atoms/ui/dropdown-menu.d.ts +0 -28
  183. package/dist/atoms/ui/dropdown-menu.d.ts.map +0 -1
  184. package/dist/atoms/ui/index.d.ts +0 -15
  185. package/dist/atoms/ui/index.d.ts.map +0 -1
  186. package/dist/atoms/ui/input.d.ts +0 -5
  187. package/dist/atoms/ui/input.d.ts.map +0 -1
  188. package/dist/atoms/ui/label.d.ts +0 -6
  189. package/dist/atoms/ui/label.d.ts.map +0 -1
  190. package/dist/atoms/ui/skeleton.d.ts +0 -3
  191. package/dist/atoms/ui/skeleton.d.ts.map +0 -1
  192. package/dist/atoms/ui/spinner.d.ts +0 -14
  193. package/dist/atoms/ui/spinner.d.ts.map +0 -1
  194. package/dist/atoms/ui/table.d.ts +0 -11
  195. package/dist/atoms/ui/table.d.ts.map +0 -1
  196. package/dist/atoms/utils/animations.d.ts +0 -65
  197. package/dist/atoms/utils/animations.d.ts.map +0 -1
  198. package/dist/atoms/utils/tooltip-helpers.d.ts +0 -71
  199. package/dist/atoms/utils/tooltip-helpers.d.ts.map +0 -1
  200. package/dist/atoms/utils/utils.d.ts +0 -4
  201. package/dist/atoms/utils/utils.d.ts.map +0 -1
  202. package/dist/features/auth/components/LoginForm.d.ts +0 -2
  203. package/dist/features/auth/components/LoginForm.d.ts.map +0 -1
  204. package/dist/features/auth/components/LogoutButton.d.ts +0 -2
  205. package/dist/features/auth/components/LogoutButton.d.ts.map +0 -1
  206. package/dist/features/auth/components/ProtectedRoute.d.ts +0 -10
  207. package/dist/features/auth/components/ProtectedRoute.d.ts.map +0 -1
  208. package/dist/features/auth/components/index.d.ts +0 -4
  209. package/dist/features/auth/components/index.d.ts.map +0 -1
  210. package/dist/features/auth/hooks/index.d.ts +0 -3
  211. package/dist/features/auth/hooks/index.d.ts.map +0 -1
  212. package/dist/features/auth/hooks/useAuth.d.ts +0 -10
  213. package/dist/features/auth/hooks/useAuth.d.ts.map +0 -1
  214. package/dist/features/auth/hooks/usePermissions.d.ts +0 -13
  215. package/dist/features/auth/hooks/usePermissions.d.ts.map +0 -1
  216. package/dist/features/auth/index.d.ts +0 -3
  217. package/dist/features/auth/index.d.ts.map +0 -1
  218. package/dist/features/index.d.ts +0 -2
  219. package/dist/features/index.d.ts.map +0 -1
  220. package/dist/index.d.ts +0 -10
  221. package/dist/index.d.ts.map +0 -1
  222. package/dist/molecules/forms/FormGroup.d.ts +0 -17
  223. package/dist/molecules/forms/FormGroup.d.ts.map +0 -1
  224. package/dist/molecules/forms/SearchInput.d.ts +0 -36
  225. package/dist/molecules/forms/SearchInput.d.ts.map +0 -1
  226. package/dist/molecules/forms/index.d.ts +0 -3
  227. package/dist/molecules/forms/index.d.ts.map +0 -1
  228. package/dist/molecules/index.d.ts +0 -4
  229. package/dist/molecules/index.d.ts.map +0 -1
  230. package/dist/molecules/layout/AppHeader/AppHeader.d.ts +0 -7
  231. package/dist/molecules/layout/AppHeader/AppHeader.d.ts.map +0 -1
  232. package/dist/molecules/layout/AppHeader/index.d.ts +0 -2
  233. package/dist/molecules/layout/AppHeader/index.d.ts.map +0 -1
  234. package/dist/molecules/layout/AppLayout.d.ts +0 -2
  235. package/dist/molecules/layout/AppLayout.d.ts.map +0 -1
  236. package/dist/molecules/layout/PageTemplate.d.ts +0 -19
  237. package/dist/molecules/layout/PageTemplate.d.ts.map +0 -1
  238. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts +0 -24
  239. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts.map +0 -1
  240. package/dist/molecules/layout/SectionHeader/index.d.ts +0 -2
  241. package/dist/molecules/layout/SectionHeader/index.d.ts.map +0 -1
  242. package/dist/molecules/layout/ShowcaseSection.d.ts +0 -22
  243. package/dist/molecules/layout/ShowcaseSection.d.ts.map +0 -1
  244. package/dist/molecules/layout/Sidebar.d.ts +0 -6
  245. package/dist/molecules/layout/Sidebar.d.ts.map +0 -1
  246. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts +0 -13
  247. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts.map +0 -1
  248. package/dist/molecules/layout/SidebarButton/index.d.ts +0 -2
  249. package/dist/molecules/layout/SidebarButton/index.d.ts.map +0 -1
  250. package/dist/molecules/layout/SidebarContext.d.ts +0 -12
  251. package/dist/molecules/layout/SidebarContext.d.ts.map +0 -1
  252. package/dist/molecules/layout/index.d.ts +0 -8
  253. package/dist/molecules/layout/index.d.ts.map +0 -1
  254. package/dist/molecules/navigation/NavMenu.d.ts +0 -20
  255. package/dist/molecules/navigation/NavMenu.d.ts.map +0 -1
  256. package/dist/molecules/navigation/Pagination.d.ts +0 -14
  257. package/dist/molecules/navigation/Pagination.d.ts.map +0 -1
  258. package/dist/molecules/navigation/index.d.ts +0 -3
  259. package/dist/molecules/navigation/index.d.ts.map +0 -1
  260. package/dist/organisms/index.d.ts +0 -2
  261. package/dist/organisms/index.d.ts.map +0 -1
  262. package/dist/organisms/showcase/ComponentShowcasePage.d.ts +0 -3
  263. package/dist/organisms/showcase/ComponentShowcasePage.d.ts.map +0 -1
  264. package/dist/templates/AuthTemplate.d.ts +0 -68
  265. package/dist/templates/AuthTemplate.d.ts.map +0 -1
  266. package/dist/templates/ComponentShowcaseTemplate.d.ts +0 -53
  267. package/dist/templates/ComponentShowcaseTemplate.d.ts.map +0 -1
  268. package/dist/templates/DashboardTemplate.d.ts +0 -62
  269. package/dist/templates/DashboardTemplate.d.ts.map +0 -1
  270. package/dist/templates/DataTemplate.d.ts +0 -78
  271. package/dist/templates/DataTemplate.d.ts.map +0 -1
  272. package/dist/templates/admin/AdminCRUDTemplate.d.ts +0 -105
  273. package/dist/templates/admin/AdminCRUDTemplate.d.ts.map +0 -1
  274. package/dist/templates/admin/AdminDashboardTemplate.d.ts +0 -89
  275. package/dist/templates/admin/AdminDashboardTemplate.d.ts.map +0 -1
  276. package/dist/templates/admin/AdminDetailTemplate.d.ts +0 -132
  277. package/dist/templates/admin/AdminDetailTemplate.d.ts.map +0 -1
  278. package/dist/templates/admin/index.d.ts +0 -4
  279. package/dist/templates/admin/index.d.ts.map +0 -1
  280. package/dist/templates/factory.d.ts +0 -28
  281. package/dist/templates/factory.d.ts.map +0 -1
  282. package/dist/templates/index.d.ts +0 -7
  283. package/dist/templates/index.d.ts.map +0 -1
@@ -0,0 +1,326 @@
1
+ import React from 'react';
2
+ import { cn } from '../../atoms/utils/utils';
3
+ import { SectionHeader } from '../../molecules/layout/SectionHeader';
4
+ import { Card } from '../../atoms/ui/card';
5
+ import { StatCard } from '../../atoms/composed/StatCard';
6
+ import { DashboardGrid } from '../DashboardTemplate';
7
+ import { DataBadge } from '../../atoms/composed/DataBadge';
8
+ import { TrendingUp, TrendingDown, DollarSign, PiggyBank, Target, AlertTriangle } from 'lucide-react';
9
+
10
+ export interface FinancialOverviewProps {
11
+ /** Total account balance */
12
+ totalBalance: number;
13
+ /** Monthly income */
14
+ monthlyIncome?: number;
15
+ /** Monthly expenses */
16
+ monthlyExpenses?: number;
17
+ /** Net worth change */
18
+ netWorthChange?: {
19
+ amount: number;
20
+ percentage: number;
21
+ period: string;
22
+ };
23
+ /** Savings rate */
24
+ savingsRate?: number;
25
+ /** Budget utilization */
26
+ budgetUtilization?: number;
27
+ }
28
+
29
+ export interface AccountSummary {
30
+ id: string;
31
+ name: string;
32
+ type: 'checking' | 'savings' | 'credit' | 'investment' | 'loan';
33
+ balance: number;
34
+ change?: {
35
+ amount: number;
36
+ percentage: number;
37
+ };
38
+ status?: 'healthy' | 'warning' | 'critical';
39
+ }
40
+
41
+ export interface BudgetAlert {
42
+ id: string;
43
+ category: string;
44
+ spent: number;
45
+ budget: number;
46
+ severity: 'warning' | 'critical';
47
+ }
48
+
49
+ export interface FinancialGoal {
50
+ id: string;
51
+ name: string;
52
+ target: number;
53
+ current: number;
54
+ deadline?: string;
55
+ status: 'on-track' | 'behind' | 'achieved';
56
+ }
57
+
58
+ export interface FinancialDashboardTemplateProps {
59
+ /** Page title */
60
+ title?: string;
61
+ /** Page description */
62
+ description?: string;
63
+ /** Financial overview metrics */
64
+ overview: FinancialOverviewProps;
65
+ /** Account summaries */
66
+ accounts?: AccountSummary[];
67
+ /** Budget alerts */
68
+ budgetAlerts?: BudgetAlert[];
69
+ /** Financial goals */
70
+ goals?: FinancialGoal[];
71
+ /** Recent transactions preview */
72
+ recentTransactions?: Array<{
73
+ id: string;
74
+ description: string;
75
+ amount: number;
76
+ category: string;
77
+ date: string;
78
+ }>;
79
+ /** Header actions */
80
+ actions?: React.ReactNode;
81
+ /** Additional content */
82
+ children?: React.ReactNode;
83
+ /** Additional CSS classes */
84
+ className?: string;
85
+ /** Category-based styling */
86
+ category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
87
+ /** Loading state */
88
+ isLoading?: boolean;
89
+ }
90
+
91
+ export const FinancialDashboardTemplate: React.FC<FinancialDashboardTemplateProps> = ({
92
+ title = "Financial Dashboard",
93
+ description = "Your complete financial overview",
94
+ overview,
95
+ accounts = [],
96
+ budgetAlerts = [],
97
+ goals = [],
98
+ recentTransactions = [],
99
+ actions,
100
+ children,
101
+ className,
102
+ category = 2, // Green theme for financial
103
+ isLoading = false
104
+ }) => {
105
+ const formatCurrency = (amount: number) => {
106
+ return new Intl.NumberFormat('en-US', {
107
+ style: 'currency',
108
+ currency: 'USD'
109
+ }).format(amount);
110
+ };
111
+
112
+ const getAccountIcon = (type: AccountSummary['type']) => {
113
+ switch (type) {
114
+ case 'savings': return <PiggyBank className="w-4 h-4" />;
115
+ case 'investment': return <TrendingUp className="w-4 h-4" />;
116
+ case 'credit': return <AlertTriangle className="w-4 h-4" />;
117
+ default: return <DollarSign className="w-4 h-4" />;
118
+ }
119
+ };
120
+
121
+ const getAccountStatus = (account: AccountSummary) => {
122
+ if (account.type === 'credit' && account.balance > 0) return 'warning';
123
+ if (account.type === 'loan' && account.balance > 0) return 'error';
124
+ return account.status || 'success';
125
+ };
126
+
127
+ return (
128
+ <div className={cn('flex flex-col min-h-0 flex-1', className)}>
129
+ {/* Header Section */}
130
+ <div className="flex-shrink-0 border-b border-border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
131
+ <div className="container mx-auto px-6 py-6">
132
+ <div className="flex items-start justify-between">
133
+ <div className="flex-1 min-w-0">
134
+ <SectionHeader
135
+ title={title}
136
+ description={description}
137
+ size="lg"
138
+ className="text-left"
139
+ />
140
+ </div>
141
+
142
+ {actions && (
143
+ <div className="ml-6 flex-shrink-0">
144
+ {actions}
145
+ </div>
146
+ )}
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+ {/* Main Content */}
152
+ <div className="flex-1 min-h-0 overflow-auto">
153
+ <div className="container mx-auto px-6 py-6 space-y-6">
154
+ {/* Financial Overview */}
155
+ <div>
156
+ <h2 className="text-lg font-semibold mb-4">Financial Overview</h2>
157
+ <DashboardGrid columns={4} gap="md">
158
+ <StatCard
159
+ title="Total Balance"
160
+ value={formatCurrency(overview.totalBalance)}
161
+ icon={<DollarSign className="w-5 h-5" />}
162
+ category={category}
163
+ isLoading={isLoading}
164
+ />
165
+
166
+ {overview.monthlyIncome && (
167
+ <StatCard
168
+ title="Monthly Income"
169
+ value={formatCurrency(overview.monthlyIncome)}
170
+ icon={<TrendingUp className="w-5 h-5" />}
171
+ category={category}
172
+ isLoading={isLoading}
173
+ />
174
+ )}
175
+
176
+ {overview.monthlyExpenses && (
177
+ <StatCard
178
+ title="Monthly Expenses"
179
+ value={formatCurrency(overview.monthlyExpenses)}
180
+ icon={<TrendingDown className="w-5 h-5" />}
181
+ category={category}
182
+ isLoading={isLoading}
183
+ />
184
+ )}
185
+
186
+ {overview.savingsRate && (
187
+ <StatCard
188
+ title="Savings Rate"
189
+ value={`${overview.savingsRate}%`}
190
+ icon={<Target className="w-5 h-5" />}
191
+ category={category}
192
+ isLoading={isLoading}
193
+ />
194
+ )}
195
+ </DashboardGrid>
196
+ </div>
197
+
198
+ {/* Accounts Overview */}
199
+ {accounts.length > 0 && (
200
+ <div>
201
+ <h2 className="text-lg font-semibold mb-4">Accounts</h2>
202
+ <DashboardGrid columns={2} gap="md">
203
+ {accounts.map((account) => (
204
+ <Card key={account.id} category={category} className="p-4">
205
+ <div className="flex items-start justify-between">
206
+ <div className="flex items-center gap-3">
207
+ {getAccountIcon(account.type)}
208
+ <div>
209
+ <h3 className="font-medium">{account.name}</h3>
210
+ <p className="text-sm text-muted-foreground capitalize">{account.type}</p>
211
+ </div>
212
+ </div>
213
+ <div className="text-right">
214
+ <p className="font-semibold">{formatCurrency(account.balance)}</p>
215
+ {account.change && (
216
+ <div className="flex items-center gap-1 text-sm">
217
+ {account.change.amount > 0 ? (
218
+ <TrendingUp className="w-3 h-3 text-green-500" />
219
+ ) : (
220
+ <TrendingDown className="w-3 h-3 text-red-500" />
221
+ )}
222
+ <span className={account.change.amount > 0 ? 'text-green-500' : 'text-red-500'}>
223
+ {Math.abs(account.change.percentage)}%
224
+ </span>
225
+ </div>
226
+ )}
227
+ </div>
228
+ </div>
229
+ <div className="mt-3">
230
+ <DataBadge
231
+ variant="status"
232
+ status={getAccountStatus(account)}
233
+ >
234
+ {account.status || 'healthy'}
235
+ </DataBadge>
236
+ </div>
237
+ </Card>
238
+ ))}
239
+ </DashboardGrid>
240
+ </div>
241
+ )}
242
+
243
+ {/* Budget Alerts */}
244
+ {budgetAlerts.length > 0 && (
245
+ <div>
246
+ <h2 className="text-lg font-semibold mb-4">Budget Alerts</h2>
247
+ <div className="space-y-3">
248
+ {budgetAlerts.map((alert) => (
249
+ <Card key={alert.id} className="p-4">
250
+ <div className="flex items-center justify-between">
251
+ <div className="flex items-center gap-3">
252
+ <AlertTriangle className={cn(
253
+ "w-5 h-5",
254
+ alert.severity === 'critical' ? 'text-red-500' : 'text-yellow-500'
255
+ )} />
256
+ <div>
257
+ <h3 className="font-medium">{alert.category}</h3>
258
+ <p className="text-sm text-muted-foreground">
259
+ {formatCurrency(alert.spent)} of {formatCurrency(alert.budget)} spent
260
+ </p>
261
+ </div>
262
+ </div>
263
+ <div className="text-right">
264
+ <DataBadge
265
+ variant="status"
266
+ status={alert.severity === 'critical' ? 'error' : 'warning'}
267
+ >
268
+ {Math.round((alert.spent / alert.budget) * 100)}% used
269
+ </DataBadge>
270
+ </div>
271
+ </div>
272
+ </Card>
273
+ ))}
274
+ </div>
275
+ </div>
276
+ )}
277
+
278
+ {/* Financial Goals */}
279
+ {goals.length > 0 && (
280
+ <div>
281
+ <h2 className="text-lg font-semibold mb-4">Financial Goals</h2>
282
+ <DashboardGrid columns={1} gap="md">
283
+ {goals.map((goal) => {
284
+ const progress = (goal.current / goal.target) * 100;
285
+ return (
286
+ <Card key={goal.id} category={category} className="p-4">
287
+ <div className="flex items-start justify-between mb-3">
288
+ <div>
289
+ <h3 className="font-medium">{goal.name}</h3>
290
+ <p className="text-sm text-muted-foreground">
291
+ {formatCurrency(goal.current)} of {formatCurrency(goal.target)}
292
+ </p>
293
+ </div>
294
+ <DataBadge
295
+ variant="status"
296
+ status={goal.status === 'achieved' ? 'success' : goal.status === 'behind' ? 'warning' : 'info'}
297
+ >
298
+ {goal.status}
299
+ </DataBadge>
300
+ </div>
301
+ <div className="w-full bg-muted rounded-full h-2">
302
+ <div
303
+ className={cn(
304
+ 'h-2 rounded-full transition-all',
305
+ `bg-category-${category}`
306
+ )}
307
+ style={{ width: `${Math.min(progress, 100)}%` }}
308
+ />
309
+ </div>
310
+ <p className="text-sm text-muted-foreground mt-2">
311
+ {Math.round(progress)}% complete
312
+ </p>
313
+ </Card>
314
+ );
315
+ })}
316
+ </DashboardGrid>
317
+ </div>
318
+ )}
319
+
320
+ {/* Additional Content */}
321
+ {children}
322
+ </div>
323
+ </div>
324
+ </div>
325
+ );
326
+ };
@@ -28,6 +28,9 @@ export {
28
28
  // Admin templates for administrative interfaces
29
29
  export * from './admin';
30
30
 
31
+ // Entity templates for cross-domain configurable layouts
32
+ export * from './entity';
33
+
31
34
  // React App Factory
32
35
  export {
33
36
  createReactApp,
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- export interface AccordionItem {
3
- id: string;
4
- title: string;
5
- content: React.ReactNode;
6
- disabled?: boolean;
7
- icon?: React.ReactNode;
8
- }
9
- export interface AccordionProps {
10
- items: AccordionItem[];
11
- variant?: 'default' | 'bordered' | 'filled';
12
- allowMultiple?: boolean;
13
- defaultOpen?: string | string[];
14
- collapsible?: boolean;
15
- category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
16
- className?: string;
17
- onItemToggle?: (itemId: string, isOpen: boolean) => void;
18
- }
19
- export declare const Accordion: ({ items, variant, allowMultiple, defaultOpen, collapsible, category, className, onItemToggle }: AccordionProps) => import("react/jsx-runtime").JSX.Element;
20
- //# sourceMappingURL=Accordion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,SAAS,GAAI,gGASvB,cAAc,4CA8HhB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Accordion, type AccordionProps, type AccordionItem } from './Accordion';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -1,25 +0,0 @@
1
- import React from 'react';
2
- export interface AlertProps {
3
- /** Alert content */
4
- children: React.ReactNode;
5
- /** Alert status type */
6
- status?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
7
- /** Alert title */
8
- title?: string;
9
- /** Whether alert can be dismissed */
10
- dismissible?: boolean;
11
- /** Dismiss handler */
12
- onDismiss?: () => void;
13
- /** Visual variant */
14
- variant?: 'filled' | 'outlined' | 'soft';
15
- /** Size variant */
16
- size?: 'sm' | 'md' | 'lg';
17
- /** Additional CSS classes */
18
- className?: string;
19
- /** Custom icon */
20
- icon?: React.ReactNode;
21
- /** Hide default icon */
22
- hideIcon?: boolean;
23
- }
24
- export declare const Alert: React.FC<AlertProps>;
25
- //# sourceMappingURL=Alert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wBAAwB;IACxB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9D,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qBAAqB;IACrB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA8FtC,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Alert, type AlertProps } from './Alert';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- export interface BreadcrumbItem {
3
- label: string;
4
- href?: string;
5
- active?: boolean;
6
- }
7
- interface BreadcrumbProps {
8
- items: BreadcrumbItem[];
9
- showHome?: boolean;
10
- homeHref?: string;
11
- className?: string;
12
- separator?: React.ReactNode;
13
- category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
14
- }
15
- export declare const Breadcrumb: React.FC<BreadcrumbProps>;
16
- export {};
17
- //# sourceMappingURL=Breadcrumb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+DhD,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Breadcrumb, type BreadcrumbItem } from './Breadcrumb';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Breadcrumb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -1,37 +0,0 @@
1
- import type { ILoadable } from '../../types';
2
- import { DASHBOARD_CHART_HEIGHTS } from '../../shared/config/dashboard-sizes';
3
- export type ChartType = 'line' | 'bar' | 'area' | 'pie';
4
- export type ChartVariant = 'default' | 'minimal' | 'detailed';
5
- export interface ChartDataPoint {
6
- label: string;
7
- value: number;
8
- category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
9
- color?: string;
10
- }
11
- export interface ChartProps extends ILoadable {
12
- title: string;
13
- subtitle?: string;
14
- data: ChartDataPoint[];
15
- type: ChartType;
16
- variant?: ChartVariant;
17
- category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
18
- showLegend?: boolean;
19
- showValues?: boolean;
20
- showTrend?: boolean;
21
- trend?: {
22
- value: number;
23
- label?: string;
24
- };
25
- /** Chart height - use standardized sizes from dashboard-sizes.ts */
26
- height?: number | keyof typeof DASHBOARD_CHART_HEIGHTS;
27
- onClick?: () => void;
28
- className?: string;
29
- /** Enable accessibility features like data table fallback */
30
- includeDataTable?: boolean;
31
- /** Custom color overrides for data points */
32
- colorOverrides?: string[];
33
- /** Don't render the outer Card wrapper (for embedded use) */
34
- noWrapper?: boolean;
35
- }
36
- export declare const Chart: ({ title, subtitle, data, type, variant, category, showLegend, showValues, showTrend, trend, height, onClick, className, includeDataTable, colorOverrides, isLoading, noWrapper }: ChartProps) => import("react/jsx-runtime").JSX.Element;
37
- //# sourceMappingURL=Chart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Chart/Chart.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,OAAO,uBAAuB,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,KAAK,GAAI,kLAkBnB,UAAU,4CAsWZ,CAAC"}
@@ -1,3 +0,0 @@
1
- export { Chart } from './Chart';
2
- export type { ChartProps, ChartDataPoint, ChartType, ChartVariant } from './Chart';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/Chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- export interface ColorSwatchProps {
3
- /** CSS color value (hex, hsl, rgb, or CSS variable) */
4
- color: string;
5
- /** Display name for the color */
6
- name: string;
7
- /** Optional size variant */
8
- size?: 'sm' | 'md' | 'lg';
9
- /** Optional label to show below the swatch */
10
- label?: string;
11
- /** Additional CSS classes */
12
- className?: string;
13
- /** Whether the swatch is interactive */
14
- interactive?: boolean;
15
- /** Click handler for interactive swatches */
16
- onClick?: () => void;
17
- }
18
- export declare const ColorSwatch: React.FC<ColorSwatchProps>;
19
- //# sourceMappingURL=ColorSwatch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorSwatch.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/ColorSwatch/ColorSwatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmDlD,CAAC"}
@@ -1,2 +0,0 @@
1
- export { ColorSwatch, type ColorSwatchProps } from './ColorSwatch';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/ColorSwatch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const DarkModeToggle: ({ className }: {
2
- className?: string;
3
- }) => import("react/jsx-runtime").JSX.Element;
4
- //# sourceMappingURL=DarkModeToggle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DarkModeToggle.d.ts","sourceRoot":"","sources":["../../../src/atoms/composed/DarkModeToggle.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,GAAI,eAAe;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4CA6DnE,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- export interface DataBadgeProps {
3
- children: React.ReactNode;
4
- variant?: 'category' | 'status';
5
- category?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
6
- status?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
7
- size?: 'sm' | 'md' | 'lg';
8
- interactive?: boolean;
9
- onClick?: () => void;
10
- className?: string;
11
- }
12
- export declare const DataBadge: ({ children, variant, category, status, size, interactive, onClick, className }: DataBadgeProps) => import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=DataBadge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataBadge.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataBadge/DataBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,GAAI,gFASvB,cAAc,4CAuDhB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './DataBadge';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataBadge/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import type { IListLoadable } from '../../types';
3
- export interface Column<T> {
4
- key: string;
5
- header: string | React.ReactNode;
6
- cell?: (item: T) => React.ReactNode;
7
- sortable?: boolean;
8
- filterable?: boolean;
9
- width?: string;
10
- /** Auto-render badges for status/category columns */
11
- type?: 'status' | 'category' | 'default';
12
- }
13
- interface DataTableProps<T> extends IListLoadable {
14
- data: T[];
15
- columns: Column<T>[];
16
- searchPlaceholder?: string;
17
- pageSize?: number;
18
- showPagination?: boolean;
19
- showSearch?: boolean;
20
- onRowClick?: (item: T) => void;
21
- emptyMessage?: string;
22
- className?: string;
23
- /** Enable hover effects on table rows */
24
- hover?: boolean;
25
- }
26
- export declare function DataTable<T extends Record<string, unknown>>({ data, columns, searchPlaceholder, pageSize, showPagination, showSearch, onRowClick, emptyMessage, className, hover, isLoading, loadingItemCount }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
27
- export {};
28
- //# sourceMappingURL=DataTable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataTable/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAcjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,aAAa;IAC/C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3D,IAAI,EACJ,OAAO,EACP,iBAA+B,EAC/B,QAAa,EACb,cAAqB,EACrB,UAAiB,EACjB,UAAU,EACV,YAAkC,EAClC,SAAc,EACd,KAAa,EACb,SAAiB,EACjB,gBAAoB,EACrB,EAAE,cAAc,CAAC,CAAC,CAAC,2CA0UnB"}
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- interface TableCellWithTooltipProps {
3
- children: React.ReactNode;
4
- className?: string;
5
- /** Maximum width before truncating */
6
- maxWidth?: string;
7
- }
8
- export declare const TableCellWithTooltip: React.FC<TableCellWithTooltipProps>;
9
- export {};
10
- //# sourceMappingURL=TableCellWithTooltip.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableCellWithTooltip.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataTable/TableCellWithTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,yBAAyB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4BpE,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './DataTable';
2
- export * from './TableCellWithTooltip';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataTable/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}