@pattern-stack/frontend-patterns 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +310 -0
  2. package/dist/atoms/composed/Accordion/Accordion.d.ts +20 -0
  3. package/dist/atoms/composed/Accordion/Accordion.d.ts.map +1 -0
  4. package/dist/atoms/composed/Accordion/index.d.ts +2 -0
  5. package/dist/atoms/composed/Accordion/index.d.ts.map +1 -0
  6. package/dist/atoms/composed/Alert/Alert.d.ts +25 -0
  7. package/dist/atoms/composed/Alert/Alert.d.ts.map +1 -0
  8. package/dist/atoms/composed/Alert/index.d.ts +2 -0
  9. package/dist/atoms/composed/Alert/index.d.ts.map +1 -0
  10. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts +17 -0
  11. package/dist/atoms/composed/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  12. package/dist/atoms/composed/Breadcrumb/index.d.ts +2 -0
  13. package/dist/atoms/composed/Breadcrumb/index.d.ts.map +1 -0
  14. package/dist/atoms/composed/Chart/Chart.d.ts +37 -0
  15. package/dist/atoms/composed/Chart/Chart.d.ts.map +1 -0
  16. package/dist/atoms/composed/Chart/index.d.ts +3 -0
  17. package/dist/atoms/composed/Chart/index.d.ts.map +1 -0
  18. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts +19 -0
  19. package/dist/atoms/composed/ColorSwatch/ColorSwatch.d.ts.map +1 -0
  20. package/dist/atoms/composed/ColorSwatch/index.d.ts +2 -0
  21. package/dist/atoms/composed/ColorSwatch/index.d.ts.map +1 -0
  22. package/dist/atoms/composed/DarkModeToggle.d.ts +4 -0
  23. package/dist/atoms/composed/DarkModeToggle.d.ts.map +1 -0
  24. package/dist/atoms/composed/DataBadge/DataBadge.d.ts +13 -0
  25. package/dist/atoms/composed/DataBadge/DataBadge.d.ts.map +1 -0
  26. package/dist/atoms/composed/DataBadge/index.d.ts +2 -0
  27. package/dist/atoms/composed/DataBadge/index.d.ts.map +1 -0
  28. package/dist/atoms/composed/DataTable/DataTable.d.ts +28 -0
  29. package/dist/atoms/composed/DataTable/DataTable.d.ts.map +1 -0
  30. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts +10 -0
  31. package/dist/atoms/composed/DataTable/TableCellWithTooltip.d.ts.map +1 -0
  32. package/dist/atoms/composed/DataTable/index.d.ts +3 -0
  33. package/dist/atoms/composed/DataTable/index.d.ts.map +1 -0
  34. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts +45 -0
  35. package/dist/atoms/composed/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  36. package/dist/atoms/composed/DateTimePicker/index.d.ts +3 -0
  37. package/dist/atoms/composed/DateTimePicker/index.d.ts.map +1 -0
  38. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts +30 -0
  39. package/dist/atoms/composed/DetailedCard/DetailedCard.d.ts.map +1 -0
  40. package/dist/atoms/composed/DetailedCard/index.d.ts +3 -0
  41. package/dist/atoms/composed/DetailedCard/index.d.ts.map +1 -0
  42. package/dist/atoms/composed/EmptyState/EmptyState.d.ts +18 -0
  43. package/dist/atoms/composed/EmptyState/EmptyState.d.ts.map +1 -0
  44. package/dist/atoms/composed/EmptyState/index.d.ts +2 -0
  45. package/dist/atoms/composed/EmptyState/index.d.ts.map +1 -0
  46. package/dist/atoms/composed/FileUpload/FileUpload.d.ts +46 -0
  47. package/dist/atoms/composed/FileUpload/FileUpload.d.ts.map +1 -0
  48. package/dist/atoms/composed/FileUpload/index.d.ts +3 -0
  49. package/dist/atoms/composed/FileUpload/index.d.ts.map +1 -0
  50. package/dist/atoms/composed/FormField/FormField.d.ts +23 -0
  51. package/dist/atoms/composed/FormField/FormField.d.ts.map +1 -0
  52. package/dist/atoms/composed/FormField/index.d.ts +2 -0
  53. package/dist/atoms/composed/FormField/index.d.ts.map +1 -0
  54. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts +8 -0
  55. package/dist/atoms/composed/GlobalSearch/GlobalSearch.d.ts.map +1 -0
  56. package/dist/atoms/composed/GlobalSearch/index.d.ts +2 -0
  57. package/dist/atoms/composed/GlobalSearch/index.d.ts.map +1 -0
  58. package/dist/atoms/composed/IconBadge/IconBadge.d.ts +16 -0
  59. package/dist/atoms/composed/IconBadge/IconBadge.d.ts.map +1 -0
  60. package/dist/atoms/composed/IconBadge/index.d.ts +3 -0
  61. package/dist/atoms/composed/IconBadge/index.d.ts.map +1 -0
  62. package/dist/atoms/composed/Modal/Modal.d.ts +18 -0
  63. package/dist/atoms/composed/Modal/Modal.d.ts.map +1 -0
  64. package/dist/atoms/composed/Modal/index.d.ts +3 -0
  65. package/dist/atoms/composed/Modal/index.d.ts.map +1 -0
  66. package/dist/atoms/composed/PaletteSwitcher.d.ts +7 -0
  67. package/dist/atoms/composed/PaletteSwitcher.d.ts.map +1 -0
  68. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts +25 -0
  69. package/dist/atoms/composed/ProgressBar/ProgressBar.d.ts.map +1 -0
  70. package/dist/atoms/composed/ProgressBar/index.d.ts +2 -0
  71. package/dist/atoms/composed/ProgressBar/index.d.ts.map +1 -0
  72. package/dist/atoms/composed/StatCard/StatCard.d.ts +21 -0
  73. package/dist/atoms/composed/StatCard/StatCard.d.ts.map +1 -0
  74. package/dist/atoms/composed/StatCard/index.d.ts +2 -0
  75. package/dist/atoms/composed/StatCard/index.d.ts.map +1 -0
  76. package/dist/atoms/composed/StyleGuide.d.ts +3 -0
  77. package/dist/atoms/composed/StyleGuide.d.ts.map +1 -0
  78. package/dist/atoms/composed/Toast/Toast.d.ts +40 -0
  79. package/dist/atoms/composed/Toast/Toast.d.ts.map +1 -0
  80. package/dist/atoms/composed/Toast/index.d.ts +2 -0
  81. package/dist/atoms/composed/Toast/index.d.ts.map +1 -0
  82. package/dist/atoms/composed/Tooltip/Tooltip.d.ts +16 -0
  83. package/dist/atoms/composed/Tooltip/Tooltip.d.ts.map +1 -0
  84. package/dist/atoms/composed/Tooltip/index.d.ts +2 -0
  85. package/dist/atoms/composed/Tooltip/index.d.ts.map +1 -0
  86. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts +8 -0
  87. package/dist/atoms/composed/UserAvatar/UserAvatar.d.ts.map +1 -0
  88. package/dist/atoms/composed/UserAvatar/index.d.ts +2 -0
  89. package/dist/atoms/composed/UserAvatar/index.d.ts.map +1 -0
  90. package/dist/atoms/composed/UserMenu/UserMenu.d.ts +8 -0
  91. package/dist/atoms/composed/UserMenu/UserMenu.d.ts.map +1 -0
  92. package/dist/atoms/composed/UserMenu/index.d.ts +2 -0
  93. package/dist/atoms/composed/UserMenu/index.d.ts.map +1 -0
  94. package/dist/atoms/composed/index.d.ts +25 -0
  95. package/dist/atoms/composed/index.d.ts.map +1 -0
  96. package/dist/atoms/hooks/useApi.d.ts +25 -0
  97. package/dist/atoms/hooks/useApi.d.ts.map +1 -0
  98. package/dist/atoms/hooks/useHealth.d.ts +19 -0
  99. package/dist/atoms/hooks/useHealth.d.ts.map +1 -0
  100. package/dist/atoms/index.d.ts +9 -0
  101. package/dist/atoms/index.d.ts.map +1 -0
  102. package/dist/atoms/services/api/client.d.ts +20 -0
  103. package/dist/atoms/services/api/client.d.ts.map +1 -0
  104. package/dist/atoms/services/auth-service.d.ts +24 -0
  105. package/dist/atoms/services/auth-service.d.ts.map +1 -0
  106. package/dist/atoms/services/health.d.ts +7 -0
  107. package/dist/atoms/services/health.d.ts.map +1 -0
  108. package/dist/atoms/services/index.d.ts +4 -0
  109. package/dist/atoms/services/index.d.ts.map +1 -0
  110. package/dist/atoms/shared/config/constants.d.ts +15 -0
  111. package/dist/atoms/shared/config/constants.d.ts.map +1 -0
  112. package/dist/atoms/shared/config/dashboard-sizes.d.ts +83 -0
  113. package/dist/atoms/shared/config/dashboard-sizes.d.ts.map +1 -0
  114. package/dist/atoms/shared/config/environment.d.ts +10 -0
  115. package/dist/atoms/shared/config/environment.d.ts.map +1 -0
  116. package/dist/atoms/shared/index.d.ts +4 -0
  117. package/dist/atoms/shared/index.d.ts.map +1 -0
  118. package/dist/atoms/types/auth.d.ts +56 -0
  119. package/dist/atoms/types/auth.d.ts.map +1 -0
  120. package/dist/atoms/types/generated.d.ts +1469 -0
  121. package/dist/atoms/types/generated.d.ts.map +1 -0
  122. package/dist/atoms/types/index.d.ts +4 -0
  123. package/dist/atoms/types/index.d.ts.map +1 -0
  124. package/dist/atoms/types/loading.d.ts +26 -0
  125. package/dist/atoms/types/loading.d.ts.map +1 -0
  126. package/dist/atoms/ui/Badge.d.ts +10 -0
  127. package/dist/atoms/ui/Badge.d.ts.map +1 -0
  128. package/dist/atoms/ui/ErrorBoundary.d.ts +18 -0
  129. package/dist/atoms/ui/ErrorBoundary.d.ts.map +1 -0
  130. package/dist/atoms/ui/Select.d.ts +28 -0
  131. package/dist/atoms/ui/Select.d.ts.map +1 -0
  132. package/dist/atoms/ui/Switch.d.ts +9 -0
  133. package/dist/atoms/ui/Switch.d.ts.map +1 -0
  134. package/dist/atoms/ui/Tabs.d.ts +30 -0
  135. package/dist/atoms/ui/Tabs.d.ts.map +1 -0
  136. package/dist/atoms/ui/avatar.d.ts +7 -0
  137. package/dist/atoms/ui/avatar.d.ts.map +1 -0
  138. package/dist/atoms/ui/button.d.ts +14 -0
  139. package/dist/atoms/ui/button.d.ts.map +1 -0
  140. package/dist/atoms/ui/card.d.ts +12 -0
  141. package/dist/atoms/ui/card.d.ts.map +1 -0
  142. package/dist/atoms/ui/dropdown-menu.d.ts +28 -0
  143. package/dist/atoms/ui/dropdown-menu.d.ts.map +1 -0
  144. package/dist/atoms/ui/index.d.ts +15 -0
  145. package/dist/atoms/ui/index.d.ts.map +1 -0
  146. package/dist/atoms/ui/input.d.ts +5 -0
  147. package/dist/atoms/ui/input.d.ts.map +1 -0
  148. package/dist/atoms/ui/label.d.ts +6 -0
  149. package/dist/atoms/ui/label.d.ts.map +1 -0
  150. package/dist/atoms/ui/skeleton.d.ts +3 -0
  151. package/dist/atoms/ui/skeleton.d.ts.map +1 -0
  152. package/dist/atoms/ui/spinner.d.ts +14 -0
  153. package/dist/atoms/ui/spinner.d.ts.map +1 -0
  154. package/dist/atoms/ui/table.d.ts +11 -0
  155. package/dist/atoms/ui/table.d.ts.map +1 -0
  156. package/dist/atoms/utils/animations.d.ts +65 -0
  157. package/dist/atoms/utils/animations.d.ts.map +1 -0
  158. package/dist/atoms/utils/tooltip-helpers.d.ts +71 -0
  159. package/dist/atoms/utils/tooltip-helpers.d.ts.map +1 -0
  160. package/dist/atoms/utils/utils.d.ts +4 -0
  161. package/dist/atoms/utils/utils.d.ts.map +1 -0
  162. package/dist/features/auth/components/LoginForm.d.ts +2 -0
  163. package/dist/features/auth/components/LoginForm.d.ts.map +1 -0
  164. package/dist/features/auth/components/LogoutButton.d.ts +2 -0
  165. package/dist/features/auth/components/LogoutButton.d.ts.map +1 -0
  166. package/dist/features/auth/components/ProtectedRoute.d.ts +10 -0
  167. package/dist/features/auth/components/ProtectedRoute.d.ts.map +1 -0
  168. package/dist/features/auth/components/index.d.ts +4 -0
  169. package/dist/features/auth/components/index.d.ts.map +1 -0
  170. package/dist/features/auth/hooks/index.d.ts +3 -0
  171. package/dist/features/auth/hooks/index.d.ts.map +1 -0
  172. package/dist/features/auth/hooks/useAuth.d.ts +10 -0
  173. package/dist/features/auth/hooks/useAuth.d.ts.map +1 -0
  174. package/dist/features/auth/hooks/usePermissions.d.ts +13 -0
  175. package/dist/features/auth/hooks/usePermissions.d.ts.map +1 -0
  176. package/dist/features/auth/index.d.ts +3 -0
  177. package/dist/features/auth/index.d.ts.map +1 -0
  178. package/dist/features/index.d.ts +2 -0
  179. package/dist/features/index.d.ts.map +1 -0
  180. package/dist/frontend-patterns.css +567 -0
  181. package/dist/index.d.ts +10 -0
  182. package/dist/index.d.ts.map +1 -0
  183. package/dist/index.es.js +10152 -0
  184. package/dist/index.es.js.map +1 -0
  185. package/dist/index.js +10170 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/molecules/forms/FormGroup.d.ts +17 -0
  188. package/dist/molecules/forms/FormGroup.d.ts.map +1 -0
  189. package/dist/molecules/forms/SearchInput.d.ts +36 -0
  190. package/dist/molecules/forms/SearchInput.d.ts.map +1 -0
  191. package/dist/molecules/forms/index.d.ts +3 -0
  192. package/dist/molecules/forms/index.d.ts.map +1 -0
  193. package/dist/molecules/index.d.ts +4 -0
  194. package/dist/molecules/index.d.ts.map +1 -0
  195. package/dist/molecules/layout/AppHeader/AppHeader.d.ts +7 -0
  196. package/dist/molecules/layout/AppHeader/AppHeader.d.ts.map +1 -0
  197. package/dist/molecules/layout/AppHeader/index.d.ts +2 -0
  198. package/dist/molecules/layout/AppHeader/index.d.ts.map +1 -0
  199. package/dist/molecules/layout/AppLayout.d.ts +2 -0
  200. package/dist/molecules/layout/AppLayout.d.ts.map +1 -0
  201. package/dist/molecules/layout/PageTemplate.d.ts +19 -0
  202. package/dist/molecules/layout/PageTemplate.d.ts.map +1 -0
  203. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts +24 -0
  204. package/dist/molecules/layout/SectionHeader/SectionHeader.d.ts.map +1 -0
  205. package/dist/molecules/layout/SectionHeader/index.d.ts +2 -0
  206. package/dist/molecules/layout/SectionHeader/index.d.ts.map +1 -0
  207. package/dist/molecules/layout/ShowcaseSection.d.ts +22 -0
  208. package/dist/molecules/layout/ShowcaseSection.d.ts.map +1 -0
  209. package/dist/molecules/layout/Sidebar.d.ts +6 -0
  210. package/dist/molecules/layout/Sidebar.d.ts.map +1 -0
  211. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts +13 -0
  212. package/dist/molecules/layout/SidebarButton/SidebarButton.d.ts.map +1 -0
  213. package/dist/molecules/layout/SidebarButton/index.d.ts +2 -0
  214. package/dist/molecules/layout/SidebarButton/index.d.ts.map +1 -0
  215. package/dist/molecules/layout/SidebarContext.d.ts +12 -0
  216. package/dist/molecules/layout/SidebarContext.d.ts.map +1 -0
  217. package/dist/molecules/layout/index.d.ts +8 -0
  218. package/dist/molecules/layout/index.d.ts.map +1 -0
  219. package/dist/molecules/navigation/NavMenu.d.ts +20 -0
  220. package/dist/molecules/navigation/NavMenu.d.ts.map +1 -0
  221. package/dist/molecules/navigation/Pagination.d.ts +14 -0
  222. package/dist/molecules/navigation/Pagination.d.ts.map +1 -0
  223. package/dist/molecules/navigation/index.d.ts +3 -0
  224. package/dist/molecules/navigation/index.d.ts.map +1 -0
  225. package/dist/organisms/index.d.ts +2 -0
  226. package/dist/organisms/index.d.ts.map +1 -0
  227. package/dist/organisms/showcase/ComponentShowcasePage.d.ts +3 -0
  228. package/dist/organisms/showcase/ComponentShowcasePage.d.ts.map +1 -0
  229. package/dist/templates/AuthTemplate.d.ts +68 -0
  230. package/dist/templates/AuthTemplate.d.ts.map +1 -0
  231. package/dist/templates/ComponentShowcaseTemplate.d.ts +53 -0
  232. package/dist/templates/ComponentShowcaseTemplate.d.ts.map +1 -0
  233. package/dist/templates/DashboardTemplate.d.ts +62 -0
  234. package/dist/templates/DashboardTemplate.d.ts.map +1 -0
  235. package/dist/templates/DataTemplate.d.ts +78 -0
  236. package/dist/templates/DataTemplate.d.ts.map +1 -0
  237. package/dist/templates/admin/AdminCRUDTemplate.d.ts +105 -0
  238. package/dist/templates/admin/AdminCRUDTemplate.d.ts.map +1 -0
  239. package/dist/templates/admin/AdminDashboardTemplate.d.ts +89 -0
  240. package/dist/templates/admin/AdminDashboardTemplate.d.ts.map +1 -0
  241. package/dist/templates/admin/AdminDetailTemplate.d.ts +132 -0
  242. package/dist/templates/admin/AdminDetailTemplate.d.ts.map +1 -0
  243. package/dist/templates/admin/index.d.ts +4 -0
  244. package/dist/templates/admin/index.d.ts.map +1 -0
  245. package/dist/templates/factory.d.ts +28 -0
  246. package/dist/templates/factory.d.ts.map +1 -0
  247. package/dist/templates/index.d.ts +7 -0
  248. package/dist/templates/index.d.ts.map +1 -0
  249. package/package.json +118 -0
  250. package/src/App.css +42 -0
  251. package/src/App.tsx +54 -0
  252. package/src/__tests__/README.md +221 -0
  253. package/src/__tests__/atoms/hooks/simple-hooks.test.ts +44 -0
  254. package/src/__tests__/atoms/ui/button.test.tsx +68 -0
  255. package/src/__tests__/atoms/utils/simple.test.ts +18 -0
  256. package/src/__tests__/atoms/utils/utils.test.ts +77 -0
  257. package/src/__tests__/features/auth/simple-auth.test.tsx +40 -0
  258. package/src/__tests__/molecules/layout/simple-layout.test.tsx +81 -0
  259. package/src/__tests__/organisms/showcase/simple-showcase.test.tsx +167 -0
  260. package/src/__tests__/setup.ts +51 -0
  261. package/src/__tests__/utils.tsx +123 -0
  262. package/src/atoms/composed/Accordion/Accordion.tsx +271 -0
  263. package/src/atoms/composed/Accordion/index.ts +1 -0
  264. package/src/atoms/composed/Alert/Alert.tsx +132 -0
  265. package/src/atoms/composed/Alert/index.ts +1 -0
  266. package/src/atoms/composed/Breadcrumb/Breadcrumb.tsx +83 -0
  267. package/src/atoms/composed/Breadcrumb/index.ts +1 -0
  268. package/src/atoms/composed/Chart/Chart.tsx +425 -0
  269. package/src/atoms/composed/Chart/index.ts +2 -0
  270. package/src/atoms/composed/ColorSwatch/ColorSwatch.tsx +72 -0
  271. package/src/atoms/composed/ColorSwatch/index.ts +1 -0
  272. package/src/atoms/composed/DarkModeToggle.tsx +66 -0
  273. package/src/atoms/composed/DataBadge/DataBadge.tsx +81 -0
  274. package/src/atoms/composed/DataBadge/index.ts +1 -0
  275. package/src/atoms/composed/DataTable/DataTable.tsx +394 -0
  276. package/src/atoms/composed/DataTable/TableCellWithTooltip.tsx +41 -0
  277. package/src/atoms/composed/DataTable/index.ts +2 -0
  278. package/src/atoms/composed/DateTimePicker/DateTimePicker.tsx +611 -0
  279. package/src/atoms/composed/DateTimePicker/index.ts +2 -0
  280. package/src/atoms/composed/DetailedCard/DetailedCard.tsx +181 -0
  281. package/src/atoms/composed/DetailedCard/index.ts +2 -0
  282. package/src/atoms/composed/EmptyState/EmptyState.tsx +90 -0
  283. package/src/atoms/composed/EmptyState/index.ts +1 -0
  284. package/src/atoms/composed/FileUpload/FileUpload.tsx +477 -0
  285. package/src/atoms/composed/FileUpload/index.ts +2 -0
  286. package/src/atoms/composed/FormField/FormField.tsx +92 -0
  287. package/src/atoms/composed/FormField/index.ts +1 -0
  288. package/src/atoms/composed/GlobalSearch/GlobalSearch.tsx +37 -0
  289. package/src/atoms/composed/GlobalSearch/index.ts +1 -0
  290. package/src/atoms/composed/IconBadge/IconBadge.tsx +95 -0
  291. package/src/atoms/composed/IconBadge/index.ts +2 -0
  292. package/src/atoms/composed/Modal/Modal.tsx +223 -0
  293. package/src/atoms/composed/Modal/index.ts +2 -0
  294. package/src/atoms/composed/PaletteSwitcher.tsx +386 -0
  295. package/src/atoms/composed/ProgressBar/ProgressBar.tsx +116 -0
  296. package/src/atoms/composed/ProgressBar/index.ts +1 -0
  297. package/src/atoms/composed/StatCard/StatCard.tsx +219 -0
  298. package/src/atoms/composed/StatCard/index.ts +1 -0
  299. package/src/atoms/composed/StyleGuide.tsx +717 -0
  300. package/src/atoms/composed/Toast/Toast.tsx +219 -0
  301. package/src/atoms/composed/Toast/index.ts +1 -0
  302. package/src/atoms/composed/Tooltip/Tooltip.tsx +213 -0
  303. package/src/atoms/composed/Tooltip/index.ts +1 -0
  304. package/src/atoms/composed/UserAvatar/UserAvatar.tsx +139 -0
  305. package/src/atoms/composed/UserAvatar/index.ts +1 -0
  306. package/src/atoms/composed/UserMenu/UserMenu.tsx +16 -0
  307. package/src/atoms/composed/UserMenu/index.ts +1 -0
  308. package/src/atoms/composed/index.ts +29 -0
  309. package/src/atoms/hooks/useApi.ts +80 -0
  310. package/src/atoms/hooks/useHealth.ts +17 -0
  311. package/src/atoms/index.ts +13 -0
  312. package/src/atoms/services/api/client.ts +134 -0
  313. package/src/atoms/services/auth-service.ts +248 -0
  314. package/src/atoms/services/health.ts +15 -0
  315. package/src/atoms/services/index.ts +3 -0
  316. package/src/atoms/shared/config/constants.ts +17 -0
  317. package/src/atoms/shared/config/dashboard-sizes.ts +111 -0
  318. package/src/atoms/shared/config/environment.ts +10 -0
  319. package/src/atoms/shared/index.ts +4 -0
  320. package/src/atoms/shared/styles/color-palettes.css +566 -0
  321. package/src/atoms/types/auth.ts +62 -0
  322. package/src/atoms/types/generated.ts +1469 -0
  323. package/src/atoms/types/index.ts +4 -0
  324. package/src/atoms/types/loading.ts +28 -0
  325. package/src/atoms/ui/Badge.tsx +30 -0
  326. package/src/atoms/ui/ErrorBoundary.tsx +59 -0
  327. package/src/atoms/ui/Select.tsx +53 -0
  328. package/src/atoms/ui/Switch.tsx +42 -0
  329. package/src/atoms/ui/Tabs.tsx +118 -0
  330. package/src/atoms/ui/avatar.tsx +48 -0
  331. package/src/atoms/ui/button.tsx +70 -0
  332. package/src/atoms/ui/card.tsx +76 -0
  333. package/src/atoms/ui/dropdown-menu.tsx +199 -0
  334. package/src/atoms/ui/index.ts +39 -0
  335. package/src/atoms/ui/input.tsx +23 -0
  336. package/src/atoms/ui/label.tsx +23 -0
  337. package/src/atoms/ui/skeleton.tsx +13 -0
  338. package/src/atoms/ui/spinner.tsx +49 -0
  339. package/src/atoms/ui/table.tsx +116 -0
  340. package/src/atoms/utils/animations.ts +135 -0
  341. package/src/atoms/utils/tooltip-helpers.ts +140 -0
  342. package/src/atoms/utils/utils.ts +9 -0
  343. package/src/features/auth/components/LoginForm.tsx +168 -0
  344. package/src/features/auth/components/LogoutButton.tsx +19 -0
  345. package/src/features/auth/components/ProtectedRoute.tsx +60 -0
  346. package/src/features/auth/components/index.ts +4 -0
  347. package/src/features/auth/hooks/index.ts +2 -0
  348. package/src/features/auth/hooks/useAuth.tsx +205 -0
  349. package/src/features/auth/hooks/usePermissions.ts +35 -0
  350. package/src/features/auth/index.ts +2 -0
  351. package/src/features/index.ts +2 -0
  352. package/src/index.css +704 -0
  353. package/src/index.ts +13 -0
  354. package/src/main.tsx +48 -0
  355. package/src/molecules/.gitkeep +0 -0
  356. package/src/molecules/forms/FormGroup.tsx +75 -0
  357. package/src/molecules/forms/SearchInput.tsx +259 -0
  358. package/src/molecules/forms/index.ts +4 -0
  359. package/src/molecules/index.ts +4 -0
  360. package/src/molecules/layout/AppHeader/AppHeader.tsx +42 -0
  361. package/src/molecules/layout/AppHeader/index.ts +1 -0
  362. package/src/molecules/layout/AppLayout.tsx +29 -0
  363. package/src/molecules/layout/PageTemplate.tsx +87 -0
  364. package/src/molecules/layout/SectionHeader/SectionHeader.tsx +87 -0
  365. package/src/molecules/layout/SectionHeader/index.ts +1 -0
  366. package/src/molecules/layout/ShowcaseSection.tsx +57 -0
  367. package/src/molecules/layout/Sidebar.tsx +144 -0
  368. package/src/molecules/layout/SidebarButton/SidebarButton.tsx +99 -0
  369. package/src/molecules/layout/SidebarButton/index.ts +1 -0
  370. package/src/molecules/layout/SidebarContext.tsx +31 -0
  371. package/src/molecules/layout/index.ts +7 -0
  372. package/src/molecules/navigation/NavMenu.tsx +188 -0
  373. package/src/molecules/navigation/Pagination.tsx +172 -0
  374. package/src/molecules/navigation/index.ts +4 -0
  375. package/src/organisms/index.ts +5 -0
  376. package/src/organisms/showcase/ComponentShowcasePage.tsx +2496 -0
  377. package/src/organisms/showcase/index.ts +1 -0
  378. package/src/pages/AdminShowcase/AdminCRUDShowcase.tsx +242 -0
  379. package/src/pages/AdminShowcase/AdminDashboardShowcase.tsx +171 -0
  380. package/src/pages/AdminShowcase/AdminDetailShowcase.tsx +385 -0
  381. package/src/pages/AdminShowcase/index.tsx +3 -0
  382. package/src/pages/ComponentShowcase/BadgesShowcase.tsx +188 -0
  383. package/src/pages/ComponentShowcase/CardsShowcase.tsx +392 -0
  384. package/src/pages/ComponentShowcase/PalettesShowcase.tsx +207 -0
  385. package/src/pages/ComponentShowcase/StatesShowcase.tsx +485 -0
  386. package/src/pages/ComponentShowcase/TablesShowcase.tsx +134 -0
  387. package/src/pages/ComponentShowcase/TypographyShowcase.tsx +255 -0
  388. package/src/pages/ComponentShowcase/index.tsx +188 -0
  389. package/src/pages/index.ts +2 -0
  390. package/src/templates/AuthTemplate.tsx +216 -0
  391. package/src/templates/ComponentShowcaseTemplate.tsx +173 -0
  392. package/src/templates/DashboardTemplate.tsx +232 -0
  393. package/src/templates/DataTemplate.tsx +319 -0
  394. package/src/templates/admin/AdminCRUDTemplate.tsx +630 -0
  395. package/src/templates/admin/AdminDashboardTemplate.tsx +351 -0
  396. package/src/templates/admin/AdminDetailTemplate.tsx +563 -0
  397. package/src/templates/admin/index.ts +29 -0
  398. package/src/templates/factory.tsx +169 -0
  399. package/src/templates/index.ts +37 -0
  400. package/src/vite-env.d.ts +1 -0
package/README.md ADDED
@@ -0,0 +1,310 @@
1
+ # 🚀 React Frontend Template
2
+
3
+ [![React 18.3+](https://img.shields.io/badge/React-18.3+-blue.svg)](https://reactjs.org/)
4
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-green.svg)](https://www.typescriptlang.org/)
5
+ [![Code style: Prettier](https://img.shields.io/badge/code%20style-prettier-000000.svg)](https://github.com/prettier/prettier)
6
+
7
+ A production-ready React frontend template with atomic architecture patterns. Build ultra-lean applications by importing shared UI foundation patterns instead of copying boilerplate code.
8
+
9
+ ## 🎯 Philosophy
10
+
11
+ **Importable Frontend Foundation** - Just like your backend template, create a shared React foundation that your applications import as a dependency, keeping individual apps ultra-lean and architecturally consistent.
12
+
13
+ ## ⚡ Quick Start
14
+
15
+ ### Create a New Application
16
+
17
+ ```typescript
18
+ // main.tsx
19
+ import { createReactApp } from '@pattern-stack/frontend-patterns'
20
+
21
+ const app = createReactApp({
22
+ title: "Analytics Dashboard",
23
+ description: "Business analytics application",
24
+ version: "1.0.0",
25
+ enableAuth: true,
26
+ apiUrl: "http://localhost:8080/api/v1"
27
+ })
28
+
29
+ // Add your business logic
30
+ import { DashboardRoutes, ReportsRoutes } from './routes'
31
+ app.addRoutes("/dashboard", DashboardRoutes)
32
+ app.addRoutes("/reports", ReportsRoutes)
33
+ ```
34
+
35
+ ### Installation
36
+
37
+ ```bash
38
+ # Install from GitHub (requires built dist/ folder)
39
+ npm install git+https://github.com/pattern-stack/frontend-patterns.git
40
+
41
+ # Or for local development/testing
42
+ npm install file:../path/to/frontend-patterns
43
+
44
+ # Or link for active development
45
+ npm link ../path/to/frontend-patterns
46
+ ```
47
+
48
+ ## 🏗️ Template Architecture
49
+
50
+ ```
51
+ frontend-patterns/
52
+ ├── atoms/ # Foundation primitives
53
+ │ ├── shared/ # Common dependencies (settings, events, infrastructure)
54
+ │ ├── ui/ # UI base components (Button, Card, Input)
55
+ │ ├── types/ # Shared enums and types
56
+ │ └── security/ # JWT, auth utilities
57
+ ├── molecules/ # Composed functionality
58
+ │ ├── auth/ # Authentication workflows
59
+ │ ├── forms/ # Form composition patterns
60
+ │ └── layout/ # Layout composition patterns
61
+ ├── organisms/ # Complete interface modules
62
+ │ ├── providers/ # React context providers
63
+ │ ├── routing/ # Route management patterns
64
+ │ └── theming/ # Design system enforcement
65
+ ├── template/ # Template-specific utilities
66
+ │ └── factory.tsx # Configurable React app factory
67
+ └── examples/ # Example implementations
68
+ ```
69
+
70
+ ## 🎨 What You Get
71
+
72
+ ### ✅ Production-Ready Infrastructure
73
+ - **Authentication**: JWT tokens, user workflows, protected routes
74
+ - **Design System**: 8 semantic color palettes with enforcement via ESLint
75
+ - **Type Safety**: Generated types from OpenAPI specifications
76
+ - **State Management**: TanStack Query for server state, Zustand patterns
77
+ - **Theming**: CSS custom properties with dark mode support
78
+ - **Routing**: File-based routing with authentication guards
79
+
80
+ ### ❌ What You DON'T Need to Build
81
+ - Auth system (JWT, middleware, user models) - from template
82
+ - UI components (Button, Card, Form primitives) - from template
83
+ - Layout components (AppHeader, Sidebar, navigation) - from template
84
+ - Design system (colors, spacing, theming) - from template
85
+ - API client setup (axios, interceptors, types) - from template
86
+ - State management (global state, async patterns) - from template
87
+
88
+ ## 🚀 Service Examples
89
+
90
+ ### Minimal Application
91
+ ```typescript
92
+ import { createReactApp } from '@pattern-stack/frontend-patterns'
93
+
94
+ const app = createReactApp("Simple Dashboard")
95
+
96
+ export default app.render()
97
+ ```
98
+
99
+ ### Full-Featured Application
100
+ ```typescript
101
+ import {
102
+ createReactApp,
103
+ AuthProvider,
104
+ QueryProvider
105
+ } from '@pattern-stack/frontend-patterns'
106
+
107
+ const app = createReactApp({
108
+ title: "User Management Dashboard",
109
+ description: "Complete user management with analytics",
110
+ enableAuth: true,
111
+ enableQuery: true,
112
+ apiUrl: "http://localhost:8080/api/v1",
113
+ theme: "corporate"
114
+ })
115
+
116
+ // Your business logic only
117
+ import { UserRoutes, AnalyticsRoutes } from './routes'
118
+ app.addRoutes("/users", UserRoutes)
119
+ app.addRoutes("/analytics", AnalyticsRoutes)
120
+ ```
121
+
122
+ ## 🔧 Template Features
123
+
124
+ ### Configurable App Factory
125
+ ```typescript
126
+ createReactApp({
127
+ title: "My Service",
128
+ description: "Service description",
129
+ version: "1.0.0",
130
+
131
+ // Core features
132
+ enableAuth: true,
133
+ enableQuery: true,
134
+ enableTheming: true,
135
+ enableRouting: true,
136
+
137
+ // API configuration
138
+ apiUrl: "http://localhost:8080/api/v1",
139
+ apiTimeout: 10000,
140
+
141
+ // Theme configuration
142
+ theme: "corporate",
143
+ darkMode: true,
144
+
145
+ // Custom providers
146
+ customProviders: [MyCustomProvider]
147
+ })
148
+ ```
149
+
150
+ ### Authentication Patterns
151
+ ```typescript
152
+ import { useAuth, ProtectedRoute } from '@pattern-stack/frontend-patterns'
153
+
154
+ function MyAuthComponent() {
155
+ const { user, login, logout, isAuthenticated } = useAuth()
156
+
157
+ return (
158
+ <ProtectedRoute>
159
+ <Dashboard user={user} />
160
+ </ProtectedRoute>
161
+ )
162
+ }
163
+ ```
164
+
165
+ ### Type-Safe API Patterns
166
+ ```typescript
167
+ import { useApiQuery, ApiClient } from '@pattern-stack/frontend-patterns'
168
+ import type { User, CreateUserRequest } from '@pattern-stack/frontend-patterns/types'
169
+
170
+ function UserManagement() {
171
+ const { data: users } = useApiQuery<User[]>('/api/users')
172
+ const createUser = useApiMutation<User, CreateUserRequest>('/api/users')
173
+
174
+ return <UserList users={users} onCreate={createUser.mutate} />
175
+ }
176
+ ```
177
+
178
+ ## 🔥 Template Benefits
179
+
180
+ ### 🔐 Centralized Security
181
+ - Update JWT logic once, all apps get it
182
+ - Consistent authentication patterns
183
+ - Security best practices enforced
184
+
185
+ ### 🚀 Rapid Development
186
+ - New app = business logic only
187
+ - No authentication or UI component boilerplate
188
+ - Production-ready from day one
189
+
190
+ ### 📊 Unified Design System
191
+ - Same component library across apps
192
+ - Consistent user experience
193
+ - Design system compliance enforced
194
+
195
+ ### 🛡️ Consistent Quality
196
+ - Template enforces code patterns
197
+ - Shared linting and formatting rules
198
+ - Centralized dependency management
199
+
200
+ ### ⚡ Easy Updates
201
+ - Update template version, all apps benefit
202
+ - Breaking changes managed centrally
203
+ - Feature rollouts across entire platform
204
+
205
+ ## 🎯 Use Cases
206
+
207
+ Perfect for:
208
+ - **Micro-frontend architectures** with shared patterns
209
+ - **Platform teams** providing infrastructure to product teams
210
+ - **Startups** needing rapid, consistent development
211
+ - **Enterprise** standardizing frontend patterns
212
+
213
+ ## 📚 Examples
214
+
215
+ Check out the `examples/` directory for complete app implementations:
216
+
217
+ - **Simple App**: Minimal template usage
218
+ - **Auth App**: Complete authentication with user management
219
+ - **Dashboard App**: Full business dashboard with charts and data
220
+ - **Multi-tenant App**: Tenant isolation patterns
221
+
222
+ ## 🔄 Template Versioning
223
+
224
+ ```bash
225
+ # Pin to specific version for stability
226
+ @pattern-stack/frontend-patterns @ git+https://github.com/pattern-stack/frontend-patterns.git@v1.2.0
227
+
228
+ # Use latest for new development
229
+ @pattern-stack/frontend-patterns @ git+https://github.com/pattern-stack/frontend-patterns.git@main
230
+ ```
231
+
232
+ ### Version History
233
+ - **v1.0.0** - Initial release with auth + design system patterns
234
+ - **v1.1.0** - Added advanced routing + state management
235
+ - **v1.2.0** - Enhanced theming + performance optimizations
236
+ - **v2.0.0** - Breaking: Redesigned component API patterns
237
+
238
+ ## 🛠️ Development & Testing
239
+
240
+ ### Building the Library
241
+
242
+ ```bash
243
+ # Clean and build distribution files
244
+ npm run build:lib
245
+
246
+ # Clean dist folder only
247
+ npm run clean
248
+
249
+ # Development server (for template development)
250
+ npm run dev
251
+ ```
252
+
253
+ ### Testing Locally Before Publishing
254
+
255
+ ```bash
256
+ # 1. Build the library
257
+ npm run build:lib
258
+
259
+ # 2. Create a test application
260
+ mkdir test-app && cd test-app
261
+ npm init -y
262
+ npm install react react-dom @types/react @types/react-dom
263
+
264
+ # 3. Install the local template
265
+ npm install file:../path/to/frontend-patterns
266
+
267
+ # 4. Create test app
268
+ cat > main.tsx << 'EOF'
269
+ import { createReactApp } from '@pattern-stack/frontend-patterns'
270
+
271
+ const app = createReactApp({
272
+ title: "Test App",
273
+ enableAuth: true
274
+ })
275
+
276
+ export default app
277
+ EOF
278
+
279
+ # 5. Test imports work
280
+ npx tsc --noEmit main.tsx
281
+ ```
282
+
283
+ ### Package Contents Verification
284
+
285
+ ```bash
286
+ # Check what will be published
287
+ npm pack --dry-run
288
+
289
+ # Verify dist folder contents
290
+ ls -la dist/
291
+ ```
292
+
293
+ ## 🤝 Contributing
294
+
295
+ 1. Fork the template repository
296
+ 2. Create a feature branch
297
+ 3. Add your enhancement to the appropriate layer (atoms/molecules/organisms)
298
+ 4. **Build and test locally** with `npm run build:lib`
299
+ 5. Add tests and documentation
300
+ 6. Submit a pull request
301
+
302
+ ## 📄 License
303
+
304
+ MIT License - see LICENSE file for details.
305
+
306
+ ---
307
+
308
+ **Built with ❤️ for the micro-frontend era**
309
+
310
+ This template enables the Netflix/Airbnb model for frontend development - shared foundation, app-specific innovation, zero architectural drift! 🎯
@@ -0,0 +1,20 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export { Accordion, type AccordionProps, type AccordionItem } from './Accordion';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export { Alert, type AlertProps } from './Alert';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,17 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export { Breadcrumb, type BreadcrumbItem } from './Breadcrumb';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,37 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export { Chart } from './Chart';
2
+ export type { ChartProps, ChartDataPoint, ChartType, ChartVariant } from './Chart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export { ColorSwatch, type ColorSwatchProps } from './ColorSwatch';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ export declare const DarkModeToggle: ({ className }: {
2
+ className?: string;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=DarkModeToggle.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export * from './DataBadge';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DataBadge/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,28 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export * from './DataTable';
2
+ export * from './TableCellWithTooltip';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ export interface DateTimePickerProps {
3
+ /** Current selected date/time value */
4
+ value?: Date;
5
+ /** Callback when date/time changes */
6
+ onChange?: (date: Date | null) => void;
7
+ /** Picker mode */
8
+ mode?: 'date' | 'time' | 'datetime';
9
+ /** Visual variant */
10
+ variant?: 'default' | 'compact' | 'inline';
11
+ /** Date format for display */
12
+ dateFormat?: 'MM/dd/yyyy' | 'dd/MM/yyyy' | 'yyyy-MM-dd';
13
+ /** Time format */
14
+ timeFormat?: '12h' | '24h';
15
+ /** Minimum selectable date */
16
+ minDate?: Date;
17
+ /** Maximum selectable date */
18
+ maxDate?: Date;
19
+ /** Enable date range selection */
20
+ isRange?: boolean;
21
+ /** Range values for range mode */
22
+ rangeValue?: {
23
+ start: Date | null;
24
+ end: Date | null;
25
+ };
26
+ /** Callback for range changes */
27
+ onRangeChange?: (range: {
28
+ start: Date | null;
29
+ end: Date | null;
30
+ }) => void;
31
+ /** Placeholder text */
32
+ placeholder?: string;
33
+ /** Disabled state */
34
+ disabled?: boolean;
35
+ /** Error state */
36
+ error?: boolean;
37
+ /** Clear button */
38
+ clearable?: boolean;
39
+ /** Additional CSS classes */
40
+ className?: string;
41
+ /** ARIA label */
42
+ 'aria-label'?: string;
43
+ }
44
+ export declare const DateTimePicker: React.FC<DateTimePickerProps>;
45
+ //# sourceMappingURL=DateTimePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DateTimePicker/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,8BAA8B;IAC9B,UAAU,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;IACxD,kBAAkB;IAClB,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC3B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACtD,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgjBxD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DateTimePicker } from './DateTimePicker';
2
+ export type { DateTimePickerProps } from './DateTimePicker';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/DateTimePicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}