@pattern-stack/frontend-patterns 0.0.3 → 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 (406) hide show
  1. package/dist/frontend-patterns.css +1 -1
  2. package/dist/index.es.js +1918 -3
  3. package/dist/index.es.js.map +1 -1
  4. package/dist/index.js +1917 -1
  5. package/dist/index.js.map +1 -1
  6. package/package.json +10 -5
  7. package/src/App.css +42 -0
  8. package/src/App.tsx +64 -0
  9. package/src/__tests__/README.md +221 -0
  10. package/src/__tests__/atoms/hooks/simple-hooks.test.ts +44 -0
  11. package/src/__tests__/atoms/ui/button.test.tsx +68 -0
  12. package/src/__tests__/atoms/utils/simple.test.ts +18 -0
  13. package/src/__tests__/atoms/utils/utils.test.ts +77 -0
  14. package/src/__tests__/features/auth/simple-auth.test.tsx +40 -0
  15. package/src/__tests__/molecules/layout/simple-layout.test.tsx +81 -0
  16. package/src/__tests__/organisms/showcase/simple-showcase.test.tsx +167 -0
  17. package/src/__tests__/setup.ts +51 -0
  18. package/src/__tests__/utils.tsx +123 -0
  19. package/src/atoms/composed/Accordion/Accordion.tsx +271 -0
  20. package/{dist/atoms/composed/Accordion/index.d.ts → src/atoms/composed/Accordion/index.ts} +1 -2
  21. package/src/atoms/composed/Alert/Alert.tsx +132 -0
  22. package/src/atoms/composed/Alert/index.ts +1 -0
  23. package/src/atoms/composed/Breadcrumb/Breadcrumb.tsx +83 -0
  24. package/src/atoms/composed/Breadcrumb/index.ts +1 -0
  25. package/src/atoms/composed/Chart/Chart.tsx +425 -0
  26. package/{dist/atoms/composed/Chart/index.d.ts → src/atoms/composed/Chart/index.ts} +1 -2
  27. package/src/atoms/composed/ColorSwatch/ColorSwatch.tsx +72 -0
  28. package/{dist/atoms/composed/ColorSwatch/index.d.ts → src/atoms/composed/ColorSwatch/index.ts} +1 -2
  29. package/src/atoms/composed/DarkModeToggle.tsx +66 -0
  30. package/src/atoms/composed/DataBadge/DataBadge.tsx +81 -0
  31. package/src/atoms/composed/DataBadge/index.ts +1 -0
  32. package/src/atoms/composed/DataTable/DataTable.tsx +394 -0
  33. package/src/atoms/composed/DataTable/TableCellWithTooltip.tsx +41 -0
  34. package/src/atoms/composed/DataTable/index.ts +2 -0
  35. package/src/atoms/composed/DateTimePicker/DateTimePicker.tsx +611 -0
  36. package/src/atoms/composed/DateTimePicker/index.ts +2 -0
  37. package/src/atoms/composed/DetailedCard/DetailedCard.tsx +181 -0
  38. package/src/atoms/composed/DetailedCard/index.ts +2 -0
  39. package/src/atoms/composed/EmptyState/EmptyState.tsx +90 -0
  40. package/src/atoms/composed/EmptyState/index.ts +1 -0
  41. package/src/atoms/composed/FileUpload/FileUpload.tsx +477 -0
  42. package/{dist/atoms/composed/FileUpload/index.d.ts → src/atoms/composed/FileUpload/index.ts} +1 -2
  43. package/src/atoms/composed/FormField/FormField.tsx +92 -0
  44. package/src/atoms/composed/FormField/index.ts +1 -0
  45. package/src/atoms/composed/GlobalSearch/GlobalSearch.tsx +37 -0
  46. package/src/atoms/composed/GlobalSearch/index.ts +1 -0
  47. package/src/atoms/composed/IconBadge/IconBadge.tsx +95 -0
  48. package/src/atoms/composed/IconBadge/index.ts +2 -0
  49. package/src/atoms/composed/Modal/Modal.tsx +223 -0
  50. package/src/atoms/composed/Modal/index.ts +2 -0
  51. package/src/atoms/composed/PaletteSwitcher.tsx +386 -0
  52. package/src/atoms/composed/ProgressBar/ProgressBar.tsx +116 -0
  53. package/{dist/atoms/composed/ProgressBar/index.d.ts → src/atoms/composed/ProgressBar/index.ts} +1 -2
  54. package/src/atoms/composed/SalesPanel/SalesPanel.tsx +116 -0
  55. package/src/atoms/composed/SalesPanel/index.ts +1 -0
  56. package/src/atoms/composed/SalesPanel/mockSalesData.ts +151 -0
  57. package/src/atoms/composed/StatCard/StatCard.tsx +219 -0
  58. package/src/atoms/composed/StatCard/index.ts +1 -0
  59. package/src/atoms/composed/StyleGuide.tsx +717 -0
  60. package/src/atoms/composed/Toast/Toast.tsx +219 -0
  61. package/{dist/atoms/composed/Toast/index.d.ts → src/atoms/composed/Toast/index.ts} +1 -2
  62. package/src/atoms/composed/Tooltip/Tooltip.tsx +213 -0
  63. package/src/atoms/composed/Tooltip/index.ts +1 -0
  64. package/src/atoms/composed/UserAvatar/UserAvatar.tsx +139 -0
  65. package/src/atoms/composed/UserAvatar/index.ts +1 -0
  66. package/src/atoms/composed/UserMenu/UserMenu.tsx +16 -0
  67. package/src/atoms/composed/UserMenu/index.ts +1 -0
  68. package/{dist/atoms/composed/index.d.ts → src/atoms/composed/index.ts} +7 -2
  69. package/src/atoms/hooks/useApi.ts +80 -0
  70. package/src/atoms/hooks/useHealth.ts +17 -0
  71. package/{dist/atoms/index.d.ts → src/atoms/index.ts} +6 -2
  72. package/src/atoms/services/api/client.ts +134 -0
  73. package/src/atoms/services/auth-service.ts +248 -0
  74. package/src/atoms/services/health.ts +15 -0
  75. package/{dist/atoms/services/index.d.ts → src/atoms/services/index.ts} +1 -2
  76. package/src/atoms/shared/config/constants.ts +17 -0
  77. package/src/atoms/shared/config/dashboard-sizes.ts +111 -0
  78. package/src/atoms/shared/config/environment.ts +10 -0
  79. package/src/atoms/shared/index.ts +4 -0
  80. package/src/atoms/shared/styles/color-palettes.css +566 -0
  81. package/src/atoms/types/auth.ts +62 -0
  82. package/src/atoms/types/entity-config.ts +127 -0
  83. package/{dist/atoms/types/generated.d.ts → src/atoms/types/generated.ts} +1 -1
  84. package/{dist/atoms/types/index.d.ts → src/atoms/types/index.ts} +2 -1
  85. package/{dist/atoms/types/loading.d.ts → src/atoms/types/loading.ts} +10 -8
  86. package/src/atoms/ui/Badge.tsx +30 -0
  87. package/src/atoms/ui/ErrorBoundary.tsx +59 -0
  88. package/src/atoms/ui/Select.tsx +53 -0
  89. package/src/atoms/ui/Switch.tsx +42 -0
  90. package/src/atoms/ui/Tabs.tsx +118 -0
  91. package/src/atoms/ui/avatar.tsx +48 -0
  92. package/src/atoms/ui/button.tsx +70 -0
  93. package/src/atoms/ui/card.tsx +76 -0
  94. package/src/atoms/ui/dropdown-menu.tsx +199 -0
  95. package/{dist/atoms/ui/index.d.ts → src/atoms/ui/index.ts} +27 -3
  96. package/src/atoms/ui/input.tsx +23 -0
  97. package/src/atoms/ui/label.tsx +23 -0
  98. package/src/atoms/ui/skeleton.tsx +13 -0
  99. package/src/atoms/ui/spinner.tsx +49 -0
  100. package/src/atoms/ui/table.tsx +116 -0
  101. package/src/atoms/utils/animations.ts +135 -0
  102. package/src/atoms/utils/metric-engine.ts +236 -0
  103. package/src/atoms/utils/tooltip-helpers.ts +140 -0
  104. package/src/atoms/utils/utils.ts +10 -0
  105. package/src/features/auth/components/LoginForm.tsx +168 -0
  106. package/src/features/auth/components/LogoutButton.tsx +19 -0
  107. package/src/features/auth/components/ProtectedRoute.tsx +60 -0
  108. package/{dist/features/auth/components/index.d.ts → src/features/auth/components/index.ts} +1 -1
  109. package/src/features/auth/hooks/index.ts +2 -0
  110. package/src/features/auth/hooks/useAuth.tsx +205 -0
  111. package/src/features/auth/hooks/usePermissions.ts +35 -0
  112. package/src/features/auth/index.ts +2 -0
  113. package/src/features/index.ts +2 -0
  114. package/src/index.css +704 -0
  115. package/{dist/index.d.ts → src/index.ts} +5 -2
  116. package/src/main.tsx +48 -0
  117. package/src/molecules/.gitkeep +0 -0
  118. package/src/molecules/forms/FormGroup.tsx +75 -0
  119. package/src/molecules/forms/SearchInput.tsx +259 -0
  120. package/src/molecules/forms/index.ts +4 -0
  121. package/src/molecules/index.ts +4 -0
  122. package/src/molecules/layout/AppHeader/AppHeader.tsx +42 -0
  123. package/src/molecules/layout/AppHeader/index.ts +1 -0
  124. package/src/molecules/layout/AppLayout.tsx +29 -0
  125. package/src/molecules/layout/DashboardWithSidePanel/DashboardWithSidePanel.tsx +42 -0
  126. package/src/molecules/layout/DashboardWithSidePanel/index.ts +1 -0
  127. package/src/molecules/layout/PageTemplate.tsx +87 -0
  128. package/src/molecules/layout/SectionHeader/SectionHeader.tsx +87 -0
  129. package/{dist/molecules/layout/SectionHeader/index.d.ts → src/molecules/layout/SectionHeader/index.ts} +1 -2
  130. package/src/molecules/layout/ShowcaseSection.tsx +57 -0
  131. package/src/molecules/layout/Sidebar.tsx +152 -0
  132. package/src/molecules/layout/SidebarButton/SidebarButton.tsx +99 -0
  133. package/src/molecules/layout/SidebarButton/index.ts +1 -0
  134. package/src/molecules/layout/SidebarContext.tsx +31 -0
  135. package/{dist/molecules/layout/index.d.ts → src/molecules/layout/index.ts} +2 -2
  136. package/src/molecules/navigation/NavMenu.tsx +188 -0
  137. package/src/molecules/navigation/Pagination.tsx +172 -0
  138. package/src/molecules/navigation/index.ts +4 -0
  139. package/src/organisms/entity/CategoryBreakdownPanel.tsx +427 -0
  140. package/src/organisms/entity/EntityListPanel.tsx +339 -0
  141. package/src/organisms/entity/MetricsOverviewPanel.tsx +236 -0
  142. package/src/organisms/entity/TrendAnalysisPanel.tsx +337 -0
  143. package/src/organisms/entity/index.ts +4 -0
  144. package/src/organisms/index.ts +8 -0
  145. package/src/organisms/showcase/ComponentShowcasePage.tsx +2496 -0
  146. package/src/organisms/showcase/index.ts +1 -0
  147. package/src/pages/AdminShowcase/AdminCRUDShowcase.tsx +242 -0
  148. package/src/pages/AdminShowcase/AdminDashboardShowcase.tsx +173 -0
  149. package/src/pages/AdminShowcase/AdminDetailShowcase.tsx +385 -0
  150. package/src/pages/AdminShowcase/SalesPerformanceDashboard.tsx +158 -0
  151. package/src/pages/AdminShowcase/index.tsx +4 -0
  152. package/src/pages/ComponentShowcase/BadgesShowcase.tsx +188 -0
  153. package/src/pages/ComponentShowcase/CardsShowcase.tsx +392 -0
  154. package/src/pages/ComponentShowcase/PalettesShowcase.tsx +207 -0
  155. package/src/pages/ComponentShowcase/StatesShowcase.tsx +485 -0
  156. package/src/pages/ComponentShowcase/TablesShowcase.tsx +134 -0
  157. package/src/pages/ComponentShowcase/TypographyShowcase.tsx +255 -0
  158. package/src/pages/ComponentShowcase/index.tsx +188 -0
  159. package/src/pages/EntityShowcase/EntityManagementShowcase.tsx +137 -0
  160. package/src/pages/EntityShowcase/EntityPerformanceShowcase.tsx +117 -0
  161. package/src/pages/EntityShowcase/index.ts +2 -0
  162. package/src/pages/EntityTemplateExample.tsx +229 -0
  163. package/src/pages/TestEntityTemplate.tsx +40 -0
  164. package/src/pages/index.ts +3 -0
  165. package/src/templates/AuthTemplate.tsx +216 -0
  166. package/src/templates/ComponentShowcaseTemplate.tsx +173 -0
  167. package/src/templates/DashboardTemplate.tsx +232 -0
  168. package/src/templates/DataTemplate.tsx +319 -0
  169. package/src/templates/admin/AdminCRUDTemplate.tsx +630 -0
  170. package/src/templates/admin/AdminDashboardTemplate.tsx +351 -0
  171. package/src/templates/admin/AdminDetailTemplate.tsx +563 -0
  172. package/src/templates/admin/index.ts +29 -0
  173. package/src/templates/entity/EntityManagementTemplate.tsx +430 -0
  174. package/src/templates/entity/EntityPerformanceDashboardTemplate.tsx +277 -0
  175. package/src/templates/entity/configs/financial-config.ts +141 -0
  176. package/src/templates/entity/configs/index.ts +1 -0
  177. package/src/templates/entity/index.ts +3 -0
  178. package/src/templates/factory.tsx +169 -0
  179. package/src/templates/financial/FinancialDashboardTemplate.tsx +326 -0
  180. package/src/templates/index.ts +40 -0
  181. package/src/vite-env.d.ts +1 -0
  182. package/dist/atoms/composed/Accordion/Accordion.d.ts +0 -20
  183. package/dist/atoms/composed/Accordion/Accordion.d.ts.map +0 -1
  184. package/dist/atoms/composed/Accordion/index.d.ts.map +0 -1
  185. package/dist/atoms/composed/Alert/Alert.d.ts +0 -25
  186. package/dist/atoms/composed/Alert/Alert.d.ts.map +0 -1
  187. package/dist/atoms/composed/Alert/index.d.ts +0 -2
  188. package/dist/atoms/composed/Alert/index.d.ts.map +0 -1
  189. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts +0 -17
  190. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  191. package/dist/atoms/composed/Breadcrumb/index.d.ts +0 -2
  192. package/dist/atoms/composed/Breadcrumb/index.d.ts.map +0 -1
  193. package/dist/atoms/composed/Chart/Chart.d.ts +0 -37
  194. package/dist/atoms/composed/Chart/Chart.d.ts.map +0 -1
  195. package/dist/atoms/composed/Chart/index.d.ts.map +0 -1
  196. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts +0 -19
  197. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts.map +0 -1
  198. package/dist/atoms/composed/ColorSwatch/index.d.ts.map +0 -1
  199. package/dist/atoms/composed/DarkModeToggle.d.ts +0 -4
  200. package/dist/atoms/composed/DarkModeToggle.d.ts.map +0 -1
  201. package/dist/atoms/composed/DataBadge/DataBadge.d.ts +0 -13
  202. package/dist/atoms/composed/DataBadge/DataBadge.d.ts.map +0 -1
  203. package/dist/atoms/composed/DataBadge/index.d.ts +0 -2
  204. package/dist/atoms/composed/DataBadge/index.d.ts.map +0 -1
  205. package/dist/atoms/composed/DataTable/DataTable.d.ts +0 -28
  206. package/dist/atoms/composed/DataTable/DataTable.d.ts.map +0 -1
  207. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts +0 -10
  208. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts.map +0 -1
  209. package/dist/atoms/composed/DataTable/index.d.ts +0 -3
  210. package/dist/atoms/composed/DataTable/index.d.ts.map +0 -1
  211. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts +0 -45
  212. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts.map +0 -1
  213. package/dist/atoms/composed/DateTimePicker/index.d.ts +0 -3
  214. package/dist/atoms/composed/DateTimePicker/index.d.ts.map +0 -1
  215. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts +0 -30
  216. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts.map +0 -1
  217. package/dist/atoms/composed/DetailedCard/index.d.ts +0 -3
  218. package/dist/atoms/composed/DetailedCard/index.d.ts.map +0 -1
  219. package/dist/atoms/composed/EmptyState/EmptyState.d.ts +0 -18
  220. package/dist/atoms/composed/EmptyState/EmptyState.d.ts.map +0 -1
  221. package/dist/atoms/composed/EmptyState/index.d.ts +0 -2
  222. package/dist/atoms/composed/EmptyState/index.d.ts.map +0 -1
  223. package/dist/atoms/composed/FileUpload/FileUpload.d.ts +0 -46
  224. package/dist/atoms/composed/FileUpload/FileUpload.d.ts.map +0 -1
  225. package/dist/atoms/composed/FileUpload/index.d.ts.map +0 -1
  226. package/dist/atoms/composed/FormField/FormField.d.ts +0 -23
  227. package/dist/atoms/composed/FormField/FormField.d.ts.map +0 -1
  228. package/dist/atoms/composed/FormField/index.d.ts +0 -2
  229. package/dist/atoms/composed/FormField/index.d.ts.map +0 -1
  230. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts +0 -8
  231. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts.map +0 -1
  232. package/dist/atoms/composed/GlobalSearch/index.d.ts +0 -2
  233. package/dist/atoms/composed/GlobalSearch/index.d.ts.map +0 -1
  234. package/dist/atoms/composed/IconBadge/IconBadge.d.ts +0 -16
  235. package/dist/atoms/composed/IconBadge/IconBadge.d.ts.map +0 -1
  236. package/dist/atoms/composed/IconBadge/index.d.ts +0 -3
  237. package/dist/atoms/composed/IconBadge/index.d.ts.map +0 -1
  238. package/dist/atoms/composed/Modal/Modal.d.ts +0 -18
  239. package/dist/atoms/composed/Modal/Modal.d.ts.map +0 -1
  240. package/dist/atoms/composed/Modal/index.d.ts +0 -3
  241. package/dist/atoms/composed/Modal/index.d.ts.map +0 -1
  242. package/dist/atoms/composed/PaletteSwitcher.d.ts +0 -7
  243. package/dist/atoms/composed/PaletteSwitcher.d.ts.map +0 -1
  244. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts +0 -25
  245. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts.map +0 -1
  246. package/dist/atoms/composed/ProgressBar/index.d.ts.map +0 -1
  247. package/dist/atoms/composed/StatCard/StatCard.d.ts +0 -21
  248. package/dist/atoms/composed/StatCard/StatCard.d.ts.map +0 -1
  249. package/dist/atoms/composed/StatCard/index.d.ts +0 -2
  250. package/dist/atoms/composed/StatCard/index.d.ts.map +0 -1
  251. package/dist/atoms/composed/StyleGuide.d.ts +0 -3
  252. package/dist/atoms/composed/StyleGuide.d.ts.map +0 -1
  253. package/dist/atoms/composed/Toast/Toast.d.ts +0 -40
  254. package/dist/atoms/composed/Toast/Toast.d.ts.map +0 -1
  255. package/dist/atoms/composed/Toast/index.d.ts.map +0 -1
  256. package/dist/atoms/composed/Tooltip/Tooltip.d.ts +0 -16
  257. package/dist/atoms/composed/Tooltip/Tooltip.d.ts.map +0 -1
  258. package/dist/atoms/composed/Tooltip/index.d.ts +0 -2
  259. package/dist/atoms/composed/Tooltip/index.d.ts.map +0 -1
  260. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts +0 -8
  261. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts.map +0 -1
  262. package/dist/atoms/composed/UserAvatar/index.d.ts +0 -2
  263. package/dist/atoms/composed/UserAvatar/index.d.ts.map +0 -1
  264. package/dist/atoms/composed/UserMenu/UserMenu.d.ts +0 -8
  265. package/dist/atoms/composed/UserMenu/UserMenu.d.ts.map +0 -1
  266. package/dist/atoms/composed/UserMenu/index.d.ts +0 -2
  267. package/dist/atoms/composed/UserMenu/index.d.ts.map +0 -1
  268. package/dist/atoms/composed/index.d.ts.map +0 -1
  269. package/dist/atoms/hooks/useApi.d.ts +0 -25
  270. package/dist/atoms/hooks/useApi.d.ts.map +0 -1
  271. package/dist/atoms/hooks/useHealth.d.ts +0 -19
  272. package/dist/atoms/hooks/useHealth.d.ts.map +0 -1
  273. package/dist/atoms/index.d.ts.map +0 -1
  274. package/dist/atoms/services/api/client.d.ts +0 -20
  275. package/dist/atoms/services/api/client.d.ts.map +0 -1
  276. package/dist/atoms/services/auth-service.d.ts +0 -24
  277. package/dist/atoms/services/auth-service.d.ts.map +0 -1
  278. package/dist/atoms/services/health.d.ts +0 -7
  279. package/dist/atoms/services/health.d.ts.map +0 -1
  280. package/dist/atoms/services/index.d.ts.map +0 -1
  281. package/dist/atoms/shared/config/constants.d.ts +0 -15
  282. package/dist/atoms/shared/config/constants.d.ts.map +0 -1
  283. package/dist/atoms/shared/config/dashboard-sizes.d.ts +0 -83
  284. package/dist/atoms/shared/config/dashboard-sizes.d.ts.map +0 -1
  285. package/dist/atoms/shared/config/environment.d.ts +0 -10
  286. package/dist/atoms/shared/config/environment.d.ts.map +0 -1
  287. package/dist/atoms/shared/index.d.ts +0 -4
  288. package/dist/atoms/shared/index.d.ts.map +0 -1
  289. package/dist/atoms/types/auth.d.ts +0 -56
  290. package/dist/atoms/types/auth.d.ts.map +0 -1
  291. package/dist/atoms/types/generated.d.ts.map +0 -1
  292. package/dist/atoms/types/index.d.ts.map +0 -1
  293. package/dist/atoms/types/loading.d.ts.map +0 -1
  294. package/dist/atoms/ui/Badge.d.ts +0 -10
  295. package/dist/atoms/ui/Badge.d.ts.map +0 -1
  296. package/dist/atoms/ui/ErrorBoundary.d.ts +0 -18
  297. package/dist/atoms/ui/ErrorBoundary.d.ts.map +0 -1
  298. package/dist/atoms/ui/Select.d.ts +0 -28
  299. package/dist/atoms/ui/Select.d.ts.map +0 -1
  300. package/dist/atoms/ui/Switch.d.ts +0 -9
  301. package/dist/atoms/ui/Switch.d.ts.map +0 -1
  302. package/dist/atoms/ui/Tabs.d.ts +0 -30
  303. package/dist/atoms/ui/Tabs.d.ts.map +0 -1
  304. package/dist/atoms/ui/avatar.d.ts +0 -7
  305. package/dist/atoms/ui/avatar.d.ts.map +0 -1
  306. package/dist/atoms/ui/button.d.ts +0 -14
  307. package/dist/atoms/ui/button.d.ts.map +0 -1
  308. package/dist/atoms/ui/card.d.ts +0 -12
  309. package/dist/atoms/ui/card.d.ts.map +0 -1
  310. package/dist/atoms/ui/dropdown-menu.d.ts +0 -28
  311. package/dist/atoms/ui/dropdown-menu.d.ts.map +0 -1
  312. package/dist/atoms/ui/index.d.ts.map +0 -1
  313. package/dist/atoms/ui/input.d.ts +0 -5
  314. package/dist/atoms/ui/input.d.ts.map +0 -1
  315. package/dist/atoms/ui/label.d.ts +0 -6
  316. package/dist/atoms/ui/label.d.ts.map +0 -1
  317. package/dist/atoms/ui/skeleton.d.ts +0 -3
  318. package/dist/atoms/ui/skeleton.d.ts.map +0 -1
  319. package/dist/atoms/ui/spinner.d.ts +0 -14
  320. package/dist/atoms/ui/spinner.d.ts.map +0 -1
  321. package/dist/atoms/ui/table.d.ts +0 -11
  322. package/dist/atoms/ui/table.d.ts.map +0 -1
  323. package/dist/atoms/utils/animations.d.ts +0 -65
  324. package/dist/atoms/utils/animations.d.ts.map +0 -1
  325. package/dist/atoms/utils/tooltip-helpers.d.ts +0 -71
  326. package/dist/atoms/utils/tooltip-helpers.d.ts.map +0 -1
  327. package/dist/atoms/utils/utils.d.ts +0 -4
  328. package/dist/atoms/utils/utils.d.ts.map +0 -1
  329. package/dist/features/auth/components/LoginForm.d.ts +0 -2
  330. package/dist/features/auth/components/LoginForm.d.ts.map +0 -1
  331. package/dist/features/auth/components/LogoutButton.d.ts +0 -2
  332. package/dist/features/auth/components/LogoutButton.d.ts.map +0 -1
  333. package/dist/features/auth/components/ProtectedRoute.d.ts +0 -10
  334. package/dist/features/auth/components/ProtectedRoute.d.ts.map +0 -1
  335. package/dist/features/auth/components/index.d.ts.map +0 -1
  336. package/dist/features/auth/hooks/index.d.ts +0 -3
  337. package/dist/features/auth/hooks/index.d.ts.map +0 -1
  338. package/dist/features/auth/hooks/useAuth.d.ts +0 -10
  339. package/dist/features/auth/hooks/useAuth.d.ts.map +0 -1
  340. package/dist/features/auth/hooks/usePermissions.d.ts +0 -13
  341. package/dist/features/auth/hooks/usePermissions.d.ts.map +0 -1
  342. package/dist/features/auth/index.d.ts +0 -3
  343. package/dist/features/auth/index.d.ts.map +0 -1
  344. package/dist/features/index.d.ts +0 -2
  345. package/dist/features/index.d.ts.map +0 -1
  346. package/dist/index.d.ts.map +0 -1
  347. package/dist/molecules/forms/FormGroup.d.ts +0 -17
  348. package/dist/molecules/forms/FormGroup.d.ts.map +0 -1
  349. package/dist/molecules/forms/SearchInput.d.ts +0 -36
  350. package/dist/molecules/forms/SearchInput.d.ts.map +0 -1
  351. package/dist/molecules/forms/index.d.ts +0 -3
  352. package/dist/molecules/forms/index.d.ts.map +0 -1
  353. package/dist/molecules/index.d.ts +0 -4
  354. package/dist/molecules/index.d.ts.map +0 -1
  355. package/dist/molecules/layout/AppHeader/AppHeader.d.ts +0 -7
  356. package/dist/molecules/layout/AppHeader/AppHeader.d.ts.map +0 -1
  357. package/dist/molecules/layout/AppHeader/index.d.ts +0 -2
  358. package/dist/molecules/layout/AppHeader/index.d.ts.map +0 -1
  359. package/dist/molecules/layout/AppLayout.d.ts +0 -2
  360. package/dist/molecules/layout/AppLayout.d.ts.map +0 -1
  361. package/dist/molecules/layout/PageTemplate.d.ts +0 -19
  362. package/dist/molecules/layout/PageTemplate.d.ts.map +0 -1
  363. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts +0 -24
  364. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts.map +0 -1
  365. package/dist/molecules/layout/SectionHeader/index.d.ts.map +0 -1
  366. package/dist/molecules/layout/ShowcaseSection.d.ts +0 -22
  367. package/dist/molecules/layout/ShowcaseSection.d.ts.map +0 -1
  368. package/dist/molecules/layout/Sidebar.d.ts +0 -6
  369. package/dist/molecules/layout/Sidebar.d.ts.map +0 -1
  370. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts +0 -13
  371. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts.map +0 -1
  372. package/dist/molecules/layout/SidebarButton/index.d.ts +0 -2
  373. package/dist/molecules/layout/SidebarButton/index.d.ts.map +0 -1
  374. package/dist/molecules/layout/SidebarContext.d.ts +0 -12
  375. package/dist/molecules/layout/SidebarContext.d.ts.map +0 -1
  376. package/dist/molecules/layout/index.d.ts.map +0 -1
  377. package/dist/molecules/navigation/NavMenu.d.ts +0 -20
  378. package/dist/molecules/navigation/NavMenu.d.ts.map +0 -1
  379. package/dist/molecules/navigation/Pagination.d.ts +0 -14
  380. package/dist/molecules/navigation/Pagination.d.ts.map +0 -1
  381. package/dist/molecules/navigation/index.d.ts +0 -3
  382. package/dist/molecules/navigation/index.d.ts.map +0 -1
  383. package/dist/organisms/index.d.ts +0 -2
  384. package/dist/organisms/index.d.ts.map +0 -1
  385. package/dist/organisms/showcase/ComponentShowcasePage.d.ts +0 -3
  386. package/dist/organisms/showcase/ComponentShowcasePage.d.ts.map +0 -1
  387. package/dist/templates/AuthTemplate.d.ts +0 -68
  388. package/dist/templates/AuthTemplate.d.ts.map +0 -1
  389. package/dist/templates/ComponentShowcaseTemplate.d.ts +0 -53
  390. package/dist/templates/ComponentShowcaseTemplate.d.ts.map +0 -1
  391. package/dist/templates/DashboardTemplate.d.ts +0 -62
  392. package/dist/templates/DashboardTemplate.d.ts.map +0 -1
  393. package/dist/templates/DataTemplate.d.ts +0 -78
  394. package/dist/templates/DataTemplate.d.ts.map +0 -1
  395. package/dist/templates/admin/AdminCRUDTemplate.d.ts +0 -105
  396. package/dist/templates/admin/AdminCRUDTemplate.d.ts.map +0 -1
  397. package/dist/templates/admin/AdminDashboardTemplate.d.ts +0 -89
  398. package/dist/templates/admin/AdminDashboardTemplate.d.ts.map +0 -1
  399. package/dist/templates/admin/AdminDetailTemplate.d.ts +0 -132
  400. package/dist/templates/admin/AdminDetailTemplate.d.ts.map +0 -1
  401. package/dist/templates/admin/index.d.ts +0 -4
  402. package/dist/templates/admin/index.d.ts.map +0 -1
  403. package/dist/templates/factory.d.ts +0 -28
  404. package/dist/templates/factory.d.ts.map +0 -1
  405. package/dist/templates/index.d.ts +0 -7
  406. package/dist/templates/index.d.ts.map +0 -1
@@ -0,0 +1,255 @@
1
+ import React from 'react';
2
+ import { ComponentShowcaseTemplate } from '../../templates';
3
+ import { DataBadge } from '../../atoms/composed';
4
+ import { SectionHeader } from '../../molecules/layout';
5
+ import { Card } from '../../atoms/ui';
6
+ import { Database, Users, TrendingUp } from 'lucide-react';
7
+
8
+ export const TypographyShowcase: React.FC = () => {
9
+ return (
10
+ <ComponentShowcaseTemplate
11
+ category={1}
12
+ title="Typography"
13
+ description="Data-focused typography system optimized for readability and hierarchy."
14
+ primaryComponent={{
15
+ title: "Typography Utilities",
16
+ description: "Foundation typography classes and utilities for consistent text styling across all applications.",
17
+ badge: {
18
+ text: "UI Foundation",
19
+ variant: "category",
20
+ category: 1
21
+ },
22
+ children: (
23
+ <div className="space-y-6">
24
+ {/* Display Typography */}
25
+ <div className="space-y-4">
26
+ <h4 className="text-base font-medium">Display Typography</h4>
27
+ <Card category={1} className="p-6">
28
+ <div className="space-y-4">
29
+ <div>
30
+ <div className="text-display-lg font-bold">Display Large</div>
31
+ <code className="text-xs text-muted-foreground">.text-display-lg</code>
32
+ </div>
33
+ <div>
34
+ <div className="text-display-md font-bold">Display Medium</div>
35
+ <code className="text-xs text-muted-foreground">.text-display-md</code>
36
+ </div>
37
+ <div>
38
+ <div className="text-display-sm font-bold">Display Small</div>
39
+ <code className="text-xs text-muted-foreground">.text-display-sm</code>
40
+ </div>
41
+ </div>
42
+ </Card>
43
+ </div>
44
+
45
+ {/* Heading Typography */}
46
+ <div className="space-y-4">
47
+ <h4 className="text-base font-medium">Heading Typography</h4>
48
+ <Card category={1} className="p-6">
49
+ <div className="space-y-3">
50
+ <div>
51
+ <h1 className="text-heading-xl">Heading XL</h1>
52
+ <code className="text-xs text-muted-foreground">.text-heading-xl</code>
53
+ </div>
54
+ <div>
55
+ <h2 className="text-heading-lg">Heading Large</h2>
56
+ <code className="text-xs text-muted-foreground">.text-heading-lg</code>
57
+ </div>
58
+ <div>
59
+ <h3 className="text-heading-md">Heading Medium</h3>
60
+ <code className="text-xs text-muted-foreground">.text-heading-md</code>
61
+ </div>
62
+ <div>
63
+ <h4 className="text-heading-sm">Heading Small</h4>
64
+ <code className="text-xs text-muted-foreground">.text-heading-sm</code>
65
+ </div>
66
+ </div>
67
+ </Card>
68
+ </div>
69
+
70
+ {/* Body Typography */}
71
+ <div className="space-y-4">
72
+ <h4 className="text-base font-medium">Body Typography</h4>
73
+ <Card category={1} className="p-6">
74
+ <div className="space-y-3">
75
+ <div>
76
+ <p className="text-body-lg">Large body text for emphasis and important content.</p>
77
+ <code className="text-xs text-muted-foreground">.text-body-lg</code>
78
+ </div>
79
+ <div>
80
+ <p className="text-body-md">Medium body text for standard content and descriptions.</p>
81
+ <code className="text-xs text-muted-foreground">.text-body-md</code>
82
+ </div>
83
+ <div>
84
+ <p className="text-body-sm">Small body text for secondary information and metadata.</p>
85
+ <code className="text-xs text-muted-foreground">.text-body-sm</code>
86
+ </div>
87
+ </div>
88
+ </Card>
89
+ </div>
90
+
91
+ {/* Supporting Typography */}
92
+ <div className="space-y-4">
93
+ <h4 className="text-base font-medium">Supporting Typography</h4>
94
+ <Card category={1} className="p-6">
95
+ <div className="space-y-3">
96
+ <div>
97
+ <p className="text-caption">Caption text for labels and annotations</p>
98
+ <code className="text-xs text-muted-foreground">.text-caption</code>
99
+ </div>
100
+ <div>
101
+ <p className="text-overline uppercase tracking-wider">Overline Text</p>
102
+ <code className="text-xs text-muted-foreground">.text-overline</code>
103
+ </div>
104
+ </div>
105
+ </Card>
106
+ </div>
107
+ </div>
108
+ )
109
+ }}
110
+ composedExamples={{
111
+ title: "Composed Typography Patterns",
112
+ description: "Business-specific typography components and patterns that combine foundation utilities for data interfaces.",
113
+ sections: [
114
+ {
115
+ title: "Data Typography",
116
+ description: "Specialized typography patterns optimized for displaying data values, labels, and metadata in analytics interfaces.",
117
+ badge: {
118
+ text: "Business Component",
119
+ variant: "category",
120
+ category: 2
121
+ },
122
+ category: 2,
123
+ children: (
124
+ <div className="grid gap-6">
125
+ <Card className="p-6" category={2}>
126
+ <h3 className="text-lg font-medium mb-4">Data Typography Patterns</h3>
127
+ <div className="space-y-4">
128
+ <div className="border rounded p-4">
129
+ <div className="text-data-label">TOTAL REVENUE</div>
130
+ <div className="text-data-value">$2,847,392</div>
131
+ <div className="text-data-meta">+12.5% from last month</div>
132
+ </div>
133
+ <div className="border rounded p-4">
134
+ <div className="text-data-label">MODEL ACCURACY</div>
135
+ <div className="text-data-value">94.7%</div>
136
+ <div className="text-data-meta">Based on 10,000 predictions</div>
137
+ </div>
138
+ <div className="border rounded p-4">
139
+ <div className="text-data-label">PROCESSING TIME</div>
140
+ <div className="text-data-value">1.24s</div>
141
+ <div className="text-data-meta">Average query duration</div>
142
+ </div>
143
+ </div>
144
+ </Card>
145
+ </div>
146
+ )
147
+ },
148
+ {
149
+ title: "SectionHeader Component",
150
+ description: "Composed typography component combining headings, icons, and badges for consistent section headers.",
151
+ badge: {
152
+ text: "Business Component",
153
+ variant: "category",
154
+ category: 2
155
+ },
156
+ category: 2,
157
+ children: (
158
+ <div className="grid gap-6">
159
+ <Card className="p-6" category={2}>
160
+ <div className="space-y-6">
161
+ <SectionHeader
162
+ title="Data Models"
163
+ subtitle="Analytics and machine learning models"
164
+ icon={<Database className="w-5 h-5" />}
165
+ badge={{ text: "24 Active", variant: "category", category: 1 }}
166
+ size="lg"
167
+ />
168
+ <SectionHeader
169
+ title="User Analytics"
170
+ subtitle="User behavior and engagement metrics"
171
+ icon={<Users className="w-5 h-5" />}
172
+ badge={{ text: "Live", variant: "status", status: "success" }}
173
+ size="md"
174
+ />
175
+ <SectionHeader
176
+ title="Performance Metrics"
177
+ subtitle="System and query performance data"
178
+ icon={<TrendingUp className="w-5 h-5" />}
179
+ badge={{ text: "Updated", variant: "status", status: "info" }}
180
+ size="sm"
181
+ />
182
+ </div>
183
+ </Card>
184
+ </div>
185
+ )
186
+ },
187
+ {
188
+ title: "Complex Layout Typography",
189
+ description: "Advanced typography patterns for complex layouts combining multiple elements and hierarchies.",
190
+ badge: {
191
+ text: "App-Specific/Ephemeral",
192
+ variant: "category",
193
+ category: 3
194
+ },
195
+ category: 3,
196
+ children: (
197
+ <div className="grid gap-6">
198
+ <Card className="p-6" category={3}>
199
+ <div className="space-y-6">
200
+ {/* Complex Header Pattern */}
201
+ <div className="border-b pb-4">
202
+ <div className="flex items-start justify-between">
203
+ <div>
204
+ <h2 className="text-2xl font-bold flex items-center gap-2">
205
+ Revenue Dashboard
206
+ <DataBadge variant="status" status="success" size="sm">Live</DataBadge>
207
+ </h2>
208
+ <p className="text-muted-foreground mt-1">
209
+ Real-time revenue analytics and forecasting
210
+ </p>
211
+ </div>
212
+ <div className="text-right">
213
+ <div className="text-2xl font-bold text-category-2">$2.4M</div>
214
+ <div className="text-sm text-muted-foreground">This month</div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+ {/* Metric Cards Layout */}
220
+ <div className="grid md:grid-cols-3 gap-4">
221
+ <div className="border rounded p-4">
222
+ <div className="flex items-center justify-between mb-2">
223
+ <h3 className="font-medium">Daily Revenue</h3>
224
+ <DataBadge variant="category" category={1} size="sm">Analytics</DataBadge>
225
+ </div>
226
+ <div className="text-xl font-bold">$82,394</div>
227
+ <div className="text-sm text-category-2">+5.2% vs yesterday</div>
228
+ </div>
229
+ <div className="border rounded p-4">
230
+ <div className="flex items-center justify-between mb-2">
231
+ <h3 className="font-medium">Conversion Rate</h3>
232
+ <DataBadge variant="category" category={2} size="sm">Metrics</DataBadge>
233
+ </div>
234
+ <div className="text-xl font-bold">3.24%</div>
235
+ <div className="text-sm text-category-6">-0.1% vs yesterday</div>
236
+ </div>
237
+ <div className="border rounded p-4">
238
+ <div className="flex items-center justify-between mb-2">
239
+ <h3 className="font-medium">Customer LTV</h3>
240
+ <DataBadge variant="category" category={3} size="sm">Business</DataBadge>
241
+ </div>
242
+ <div className="text-xl font-bold">$1,247</div>
243
+ <div className="text-sm text-category-2">+12.4% vs last month</div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </Card>
248
+ </div>
249
+ )
250
+ }
251
+ ]
252
+ }}
253
+ />
254
+ );
255
+ };
@@ -0,0 +1,188 @@
1
+ import React, { useState } from 'react';
2
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '../../atoms/ui';
3
+ import { IconBadge, StatCard, DataBadge } from '../../atoms/composed';
4
+ import { Database, Activity, CheckCircle, Palette, Grid3X3 } from 'lucide-react';
5
+
6
+ // Import showcase components
7
+ import { BadgesShowcase } from './BadgesShowcase';
8
+ import { CardsShowcase } from './CardsShowcase';
9
+ import { TablesShowcase } from './TablesShowcase';
10
+ import { StatesShowcase } from './StatesShowcase';
11
+ import { PalettesShowcase } from './PalettesShowcase';
12
+ import { TypographyShowcase } from './TypographyShowcase';
13
+
14
+ export const ComponentShowcase: React.FC = () => {
15
+ const [activeSection, setActiveSection] = useState('badges');
16
+
17
+ return (
18
+ <div className="min-h-screen bg-background">
19
+ {/* Hero Section */}
20
+ <div className="bg-gradient-to-br from-category-1/5 via-category-2/5 to-category-3/5 border-b border-border/50">
21
+ <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-12">
22
+ <div className="flex items-center justify-between">
23
+ <div className="flex items-center space-x-4">
24
+ <IconBadge
25
+ variant="category"
26
+ category={1}
27
+ size="lg"
28
+ icon={<Grid3X3 className="w-6 h-6" />}
29
+ />
30
+ <div>
31
+ <h1 className="text-4xl font-bold text-foreground">Component Showcase</h1>
32
+ <p className="text-lg text-muted-foreground mt-2">
33
+ Explore our comprehensive design system and component library built for data analytics interfaces
34
+ </p>
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ {/* Quick Stats */}
40
+ <div className="mt-8 grid grid-cols-1 md:grid-cols-4 gap-4">
41
+ <StatCard
42
+ title="Components"
43
+ value="20+"
44
+ subtitle="Design system components"
45
+ category={1}
46
+ icon={<Database className="w-4 h-4" />}
47
+ />
48
+ <StatCard
49
+ title="Colors"
50
+ value="20+"
51
+ subtitle="System colors & variants"
52
+ category={2}
53
+ icon={<Palette className="w-4 h-4" />}
54
+ />
55
+ <StatCard
56
+ title="Variants"
57
+ value="50+"
58
+ subtitle="Component variations"
59
+ category={3}
60
+ icon={<CheckCircle className="w-4 h-4" />}
61
+ />
62
+ <StatCard
63
+ title="Interactive"
64
+ value="100%"
65
+ subtitle="Fully interactive components"
66
+ category={4}
67
+ icon={<Activity className="w-4 h-4" />}
68
+ />
69
+ </div>
70
+ </div>
71
+ </div>
72
+
73
+ {/* Main Content */}
74
+ <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-8">
75
+ <div className="space-y-8">
76
+
77
+ {/* Component Level Legend */}
78
+ <div className="bg-card border border-border rounded p-6">
79
+ <h2 className="text-lg font-semibold mb-4 flex items-center gap-2">
80
+ Component Architecture Legend
81
+ <DataBadge variant="status" status="info" size="sm">Reference</DataBadge>
82
+ </h2>
83
+ <p className="text-sm text-muted-foreground mb-6">
84
+ This design system supports multiple applications (Data Modeling, Restaurant POS, Analytics Tools).
85
+ Understanding component levels helps determine reusability and promotion to shared libraries.
86
+ </p>
87
+
88
+ <div className="grid md:grid-cols-3 gap-4">
89
+ {/* UI Level */}
90
+ <div className="border border-border rounded p-4 bg-category-1/5">
91
+ <div className="flex items-center gap-2 mb-3">
92
+ <DataBadge variant="category" category={1} size="sm">UI Foundation</DataBadge>
93
+ </div>
94
+ <h3 className="font-medium text-sm mb-2">@/atoms/ui/ Components</h3>
95
+ <p className="text-xs text-muted-foreground mb-3">
96
+ Base building blocks. Highly reusable across all applications.
97
+ </p>
98
+ <div className="text-xs font-mono bg-background/50 rounded px-2 py-1">
99
+ Card, Button, Table, Badge
100
+ </div>
101
+ </div>
102
+
103
+ {/* Business Level */}
104
+ <div className="border border-border rounded p-4 bg-category-2/5">
105
+ <div className="flex items-center gap-2 mb-3">
106
+ <DataBadge variant="category" category={2} size="sm">Business Components</DataBadge>
107
+ </div>
108
+ <h3 className="font-medium text-sm mb-2">@/atoms/composed/ Components</h3>
109
+ <p className="text-xs text-muted-foreground mb-3">
110
+ Domain-specific components. Reusable across data-focused apps.
111
+ </p>
112
+ <div className="text-xs font-mono bg-background/50 rounded px-2 py-1">
113
+ StatCard, DataTable, DataBadge
114
+ </div>
115
+ </div>
116
+
117
+ {/* Application Level */}
118
+ <div className="border border-border rounded p-4 bg-category-3/5">
119
+ <div className="flex items-center gap-2 mb-3">
120
+ <DataBadge variant="category" category={3} size="sm">App-Specific</DataBadge>
121
+ </div>
122
+ <h3 className="font-medium text-sm mb-2">Ephemeral Components</h3>
123
+ <p className="text-xs text-muted-foreground mb-3">
124
+ Inline customizations. Consider promoting if reused across apps.
125
+ </p>
126
+ <div className="text-xs font-mono bg-background/50 rounded px-2 py-1">
127
+ BankAccountCard, OrderSummary
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ {/* Promotion Guidelines */}
133
+ <div className="mt-6 pt-4 border-t border-border">
134
+ <h4 className="text-sm font-medium mb-2">Promotion Guidelines</h4>
135
+ <div className="grid md:grid-cols-2 gap-4 text-xs">
136
+ <div>
137
+ <span className="font-medium text-category-2">Promote to Business Layer:</span>
138
+ <p className="text-muted-foreground">When pattern appears in 2+ applications</p>
139
+ </div>
140
+ <div>
141
+ <span className="font-medium text-category-1">Promote to UI Foundation:</span>
142
+ <p className="text-muted-foreground">When behavior is purely presentational</p>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </div>
147
+
148
+ {/* Navigation */}
149
+ <Tabs value={activeSection} onValueChange={setActiveSection} className="w-full">
150
+ <TabsList className="grid w-full grid-cols-6 lg:w-fit lg:mx-auto mb-8">
151
+ <TabsTrigger value="badges" category={1}>Badges</TabsTrigger>
152
+ <TabsTrigger value="cards" category={2}>Cards</TabsTrigger>
153
+ <TabsTrigger value="tables" category={3}>Tables</TabsTrigger>
154
+ <TabsTrigger value="states" category={4}>States</TabsTrigger>
155
+ <TabsTrigger value="palettes" category={5}>Palettes</TabsTrigger>
156
+ <TabsTrigger value="typography" category={6}>Typography</TabsTrigger>
157
+ </TabsList>
158
+
159
+ {/* Component Showcases */}
160
+ <TabsContent value="badges" className="space-y-6">
161
+ <BadgesShowcase />
162
+ </TabsContent>
163
+
164
+ <TabsContent value="cards" className="space-y-6">
165
+ <CardsShowcase />
166
+ </TabsContent>
167
+
168
+ <TabsContent value="tables" className="space-y-6">
169
+ <TablesShowcase />
170
+ </TabsContent>
171
+
172
+ <TabsContent value="states" className="space-y-6">
173
+ <StatesShowcase />
174
+ </TabsContent>
175
+
176
+ <TabsContent value="palettes" className="space-y-6">
177
+ <PalettesShowcase />
178
+ </TabsContent>
179
+
180
+ <TabsContent value="typography" className="space-y-6">
181
+ <TypographyShowcase />
182
+ </TabsContent>
183
+ </Tabs>
184
+ </div>
185
+ </div>
186
+ </div>
187
+ );
188
+ };
@@ -0,0 +1,137 @@
1
+ import React, { useState } from 'react';
2
+ import { EntityListPanel } from '../../organisms/entity';
3
+ import { financialConfig, sampleFinancialData, type FinancialTransaction } from '../../templates/entity/configs/financial-config';
4
+ import { ShowcaseSection } from '../../molecules/layout/ShowcaseSection';
5
+ import { IconBadge } from '../../atoms/composed/IconBadge';
6
+ import { Switch } from '../../atoms/ui/Switch';
7
+ import { Button } from '../../atoms/ui/button';
8
+ import { Database, Filter, Search, Download, Plus, Layers } from 'lucide-react';
9
+
10
+ export const EntityManagementShowcase: React.FC = () => {
11
+ const [enableSearch, setEnableSearch] = useState(true);
12
+ const [enableFiltering, setEnableFiltering] = useState(true);
13
+ const [enableBulkActions, setEnableBulkActions] = useState(true);
14
+ const [enableExport, setEnableExport] = useState(true);
15
+
16
+ return (
17
+ <div className="min-h-screen bg-background">
18
+ <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-12">
19
+ <div className="flex items-center justify-between mb-12">
20
+ <div className="flex items-center space-x-4">
21
+ <IconBadge
22
+ variant="category"
23
+ category={7}
24
+ size="lg"
25
+ icon={<Database className="w-6 h-6" />}
26
+ />
27
+ <div>
28
+ <h1 className="text-4xl font-bold text-foreground">Entity Management</h1>
29
+ <p className="text-lg text-muted-foreground mt-2">
30
+ Cross-domain template for CRUD operations with intelligent search, filtering, and bulk actions
31
+ </p>
32
+ </div>
33
+ </div>
34
+
35
+ <div className="flex items-center space-x-3">
36
+ <Button variant="outline" size="sm">
37
+ <Plus className="w-4 h-4 mr-2" />
38
+ Add Transaction
39
+ </Button>
40
+ <div className="flex items-center gap-3 bg-card/80 backdrop-blur-sm border border-border/50 rounded px-3 py-2">
41
+ <Layers className="w-4 h-4 text-muted-foreground" />
42
+ <span className="text-sm font-medium text-foreground">Demo Mode</span>
43
+ <Switch checked={true} disabled />
44
+ </div>
45
+ </div>
46
+ </div>
47
+
48
+ {/* Feature Toggles */}
49
+ <div className="mb-8">
50
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
51
+ <div className="flex items-center gap-3 bg-card/50 backdrop-blur-sm border border-border/30 rounded px-3 py-2">
52
+ <Search className="w-4 h-4 text-muted-foreground" />
53
+ <span className="text-sm font-medium text-foreground">Search</span>
54
+ <Switch
55
+ checked={enableSearch}
56
+ onCheckedChange={setEnableSearch}
57
+ />
58
+ </div>
59
+ <div className="flex items-center gap-3 bg-card/50 backdrop-blur-sm border border-border/30 rounded px-3 py-2">
60
+ <Filter className="w-4 h-4 text-muted-foreground" />
61
+ <span className="text-sm font-medium text-foreground">Filters</span>
62
+ <Switch
63
+ checked={enableFiltering}
64
+ onCheckedChange={setEnableFiltering}
65
+ />
66
+ </div>
67
+ <div className="flex items-center gap-3 bg-card/50 backdrop-blur-sm border border-border/30 rounded px-3 py-2">
68
+ <Database className="w-4 h-4 text-muted-foreground" />
69
+ <span className="text-sm font-medium text-foreground">Bulk Actions</span>
70
+ <Switch
71
+ checked={enableBulkActions}
72
+ onCheckedChange={setEnableBulkActions}
73
+ />
74
+ </div>
75
+ <div className="flex items-center gap-3 bg-card/50 backdrop-blur-sm border border-border/30 rounded px-3 py-2">
76
+ <Download className="w-4 h-4 text-muted-foreground" />
77
+ <span className="text-sm font-medium text-foreground">Export</span>
78
+ <Switch
79
+ checked={enableExport}
80
+ onCheckedChange={setEnableExport}
81
+ />
82
+ </div>
83
+ </div>
84
+ </div>
85
+
86
+ <div className="space-y-12">
87
+ <ShowcaseSection
88
+ title="Entity List with Advanced Features"
89
+ description="Smart data table with domain-aware column rendering, search, filtering, and bulk operations"
90
+ badge={{
91
+ text: "Full Featured",
92
+ variant: "category",
93
+ category: 3
94
+ }}
95
+ >
96
+ <EntityListPanel
97
+ config={financialConfig}
98
+ data={sampleFinancialData}
99
+ isLoading={false}
100
+ enableSearch={enableSearch}
101
+ enableFiltering={enableFiltering}
102
+ enableBulkActions={enableBulkActions}
103
+ enableExport={enableExport}
104
+ onItemClick={(item: FinancialTransaction) => {
105
+ console.log('Item clicked:', item);
106
+ }}
107
+ onItemEdit={(item: FinancialTransaction) => {
108
+ console.log('Item edit:', item);
109
+ }}
110
+ onItemDelete={(item: FinancialTransaction) => {
111
+ console.log('Item delete:', item);
112
+ }}
113
+ onBulkAction={(action: string, items: FinancialTransaction[]) => {
114
+ console.log('Bulk action:', action, items);
115
+ }}
116
+ onSearch={(query: string) => {
117
+ console.log('Search:', query);
118
+ }}
119
+ onFilter={(filters: Record<string, any>) => {
120
+ console.log('Filter:', filters);
121
+ }}
122
+ onSort={(field: string, direction: 'asc' | 'desc') => {
123
+ console.log('Sort:', field, direction);
124
+ }}
125
+ onExport={(format: 'csv' | 'json' | 'xlsx') => {
126
+ console.log('Export:', format);
127
+ return Promise.resolve();
128
+ }}
129
+ />
130
+ </ShowcaseSection>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ );
135
+ };
136
+
137
+ export default EntityManagementShowcase;