@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/src/index.css ADDED
@@ -0,0 +1,704 @@
1
+ @import "tailwindcss";
2
+ @import "./atoms/shared/styles/color-palettes.css";
3
+
4
+ @layer base {
5
+ :root {
6
+ /* Base colors - optimized for modern light mode */
7
+ --background: 0 0% 100%;
8
+ --foreground: 215 25% 27%;
9
+ --card: 0 0% 100%;
10
+ --card-foreground: 215 25% 27%;
11
+ --popover: 0 0% 100%;
12
+ --popover-foreground: 215 25% 27%;
13
+ --primary: 220 70% 50%;
14
+ --primary-foreground: 0 0% 100%;
15
+ --secondary: 214 15% 91%;
16
+ --secondary-foreground: 215 25% 27%;
17
+ --muted: 214 15% 91%;
18
+ --muted-foreground: 215 16% 47%;
19
+ --accent: 214 15% 91%;
20
+ --accent-foreground: 215 25% 27%;
21
+ --destructive: 0 84% 60%;
22
+ --destructive-foreground: 0 0% 100%;
23
+ --border: 213 27% 84%;
24
+ --input: 213 27% 84%;
25
+ --ring: 220 70% 50%;
26
+
27
+ /* Data categorization colors - distinct, accessible palette */
28
+ --category-1: 220 70% 50%; /* Blue */
29
+ --category-2: 160 60% 45%; /* Teal */
30
+ --category-3: 30 80% 55%; /* Orange */
31
+ --category-4: 280 65% 60%; /* Purple */
32
+ --category-5: 340 75% 55%; /* Pink */
33
+ --category-6: 120 50% 45%; /* Green */
34
+ --category-7: 45 85% 60%; /* Yellow */
35
+ --category-8: 15 75% 50%; /* Red */
36
+
37
+ /* Status colors */
38
+ --status-success: 142 76% 36%;
39
+ --status-warning: 45 93% 47%;
40
+ --status-error: 0 84% 60%;
41
+ --status-info: 217 91% 60%;
42
+ --status-neutral: 215 16% 47%;
43
+
44
+ /* Status colors as single properties for easier use */
45
+ --success: var(--status-success);
46
+ --warning: var(--status-warning);
47
+ --error: var(--status-error);
48
+ --info: var(--status-info);
49
+ --danger: var(--status-error); /* Alias for error */
50
+
51
+ /* Additional semantic colors */
52
+ --positive: 142 76% 36%; /* Same as success but semantic */
53
+ --negative: 0 84% 60%; /* Same as error but semantic */
54
+ --pending: 45 93% 47%; /* Same as warning for pending states */
55
+ --disabled: 215 16% 47%; /* Muted gray for disabled states */
56
+
57
+ /* Surface and overlay colors */
58
+ --surface: 0 0% 100%; /* Elevated backgrounds */
59
+ --overlay: 0 0% 0% / 0.5; /* Modal overlays */
60
+ --backdrop: 0 0% 0% / 0.3; /* Backdrop dimming */
61
+
62
+ /* Standard gray scale (Tailwind compatible) */
63
+ --gray-50: 210 20% 98%;
64
+ --gray-100: 214 15% 91%;
65
+ --gray-200: 213 27% 84%;
66
+ --gray-300: 215 25% 77%;
67
+ --gray-400: 215 20% 65%;
68
+ --gray-500: 215 16% 47%;
69
+ --gray-600: 215 19% 35%;
70
+ --gray-700: 215 25% 27%;
71
+ --gray-800: 217 33% 17%;
72
+ --gray-900: 222 47% 11%;
73
+ --gray-950: 224 71% 4%;
74
+
75
+ /* Extended grays for data interfaces (legacy/custom) */
76
+ --gray-25: 210 20% 98%;
77
+ --gray-75: 214 15% 91%;
78
+ --gray-150: 213 27% 84%;
79
+ --gray-250: 215 25% 77%;
80
+ --gray-350: 215 20% 65%;
81
+ --gray-450: 215 16% 47%;
82
+ --gray-550: 215 19% 35%;
83
+ --gray-650: 215 25% 27%;
84
+ --gray-750: 217 33% 17%;
85
+ --gray-850: 222 47% 11%;
86
+ --gray-925: 224 71% 4%;
87
+
88
+ /* Spacing system */
89
+ --card-padding: 1.5rem;
90
+ --card-gap: 1rem;
91
+ --nested-offset: 0.75rem;
92
+ --edge-xs: 0.5rem;
93
+ --edge-sm: 0.75rem;
94
+ --edge-md: 1rem;
95
+ --edge-lg: 1.5rem;
96
+ --edge-xl: 2rem;
97
+
98
+ /* Enhanced design system spacing */
99
+ --section-gap: 3rem;
100
+ --component-gap: 1.5rem;
101
+ --content-max-width: 80rem;
102
+
103
+ /* Border radius */
104
+ --radius: 0.5rem;
105
+
106
+ /* Interactive state colors */
107
+ --primary-hover: 222.2 47.4% 15%;
108
+ --primary-active: 222.2 47.4% 8%;
109
+ --primary-disabled: 215 16% 47%;
110
+ --secondary-hover: 210 40% 92%;
111
+ --secondary-active: 210 40% 88%;
112
+ --destructive-hover: 0 84.2% 65%;
113
+ --destructive-active: 0 84.2% 55%;
114
+
115
+ /* Chart colors (legacy compatibility) */
116
+ --chart-1: var(--category-1);
117
+ --chart-2: var(--category-2);
118
+ --chart-3: var(--category-3);
119
+ --chart-4: var(--category-4);
120
+ --chart-5: var(--category-5);
121
+ }
122
+
123
+ .dark {
124
+ /* Base colors - much better background/card contrast */
125
+ --background: 222 47% 2%;
126
+ --foreground: 210 40% 98%;
127
+ --card: 220 13% 15%;
128
+ --card-foreground: 210 40% 98%;
129
+ --popover: 220 13% 15%;
130
+ --popover-foreground: 210 40% 98%;
131
+ --primary: 220 91% 70%;
132
+ --primary-foreground: 222 47% 2%;
133
+ --secondary: 217 10% 18%;
134
+ --secondary-foreground: 210 40% 88%;
135
+ --muted: 217 10% 18%;
136
+ --muted-foreground: 215 20% 65%;
137
+ --accent: 217 10% 18%;
138
+ --accent-foreground: 210 40% 88%;
139
+ --destructive: 0 63% 65%;
140
+ --destructive-foreground: 222 47% 2%;
141
+ --border: 217 27% 20%;
142
+ --input: 217 27% 18%;
143
+ --ring: 220 91% 70%;
144
+
145
+ /* Data categorization colors - refined for dark mode elegance */
146
+ --category-1: 220 91% 70%; /* Vibrant blue */
147
+ --category-2: 168 76% 64%; /* Refined teal */
148
+ --category-3: 25 95% 68%; /* Balanced orange */
149
+ --category-4: 280 65% 75%; /* Elegant purple */
150
+ --category-5: 330 81% 72%; /* Sophisticated pink */
151
+ --category-6: 142 69% 58%; /* Natural green */
152
+ --category-7: 48 96% 68%; /* Warm yellow */
153
+ --category-8: 0 72% 67%; /* Refined red */
154
+
155
+ /* Status colors - better contrast and readability */
156
+ --status-success: 142 69% 58%;
157
+ --status-warning: 48 96% 68%;
158
+ --status-error: 0 72% 67%;
159
+ --status-info: 220 91% 70%;
160
+ --status-neutral: 215 20% 65%;
161
+
162
+ /* Additional semantic colors - dark mode */
163
+ --positive: 142 69% 58%;
164
+ --negative: 0 72% 67%;
165
+ --pending: 48 96% 68%;
166
+ --disabled: 215 15% 35%;
167
+ --danger: var(--status-error);
168
+
169
+ /* Surface and overlay colors - refined dark mode */
170
+ --surface: 220 13% 15%;
171
+ --overlay: 0 0% 0% / 0.75;
172
+ --backdrop: 0 0% 0% / 0.6;
173
+
174
+ /* Interactive state colors - dark mode */
175
+ --primary-hover: 210 40% 94%;
176
+ --primary-active: 210 40% 90%;
177
+ --primary-disabled: 215 16% 35%;
178
+ --secondary-hover: 217.2 32.6% 22%;
179
+ --secondary-active: 217.2 32.6% 15%;
180
+ --destructive-hover: 0 62.8% 35%;
181
+ --destructive-active: 0 62.8% 25%;
182
+
183
+ /* Standard gray scale - inverted for dark mode */
184
+ --gray-50: 224 71% 4%;
185
+ --gray-100: 222 47% 11%;
186
+ --gray-200: 217 33% 17%;
187
+ --gray-300: 215 25% 27%;
188
+ --gray-400: 215 19% 35%;
189
+ --gray-500: 215 16% 47%;
190
+ --gray-600: 215 20% 65%;
191
+ --gray-700: 215 25% 77%;
192
+ --gray-800: 213 27% 84%;
193
+ --gray-900: 214 15% 91%;
194
+ --gray-950: 210 20% 98%;
195
+
196
+ /* Extended grays - inverted for dark mode */
197
+ --gray-25: 224 71% 4%;
198
+ --gray-75: 222 47% 11%;
199
+ --gray-150: 217 33% 17%;
200
+ --gray-250: 215 25% 27%;
201
+ --gray-350: 215 19% 35%;
202
+ --gray-450: 215 16% 47%;
203
+ --gray-550: 215 20% 65%;
204
+ --gray-650: 215 25% 77%;
205
+ --gray-750: 213 27% 84%;
206
+ --gray-850: 214 15% 91%;
207
+ --gray-925: 210 20% 98%;
208
+
209
+ /* Chart colors - dark mode */
210
+ --chart-1: var(--category-1);
211
+ --chart-2: var(--category-2);
212
+ --chart-3: var(--category-3);
213
+ --chart-4: var(--category-4);
214
+ --chart-5: var(--category-5);
215
+ }
216
+ }
217
+
218
+ @layer base {
219
+ * {
220
+ border-color: hsl(var(--border));
221
+ }
222
+ body {
223
+ background-color: hsl(var(--background));
224
+ color: hsl(var(--foreground));
225
+ margin: 0;
226
+ font-feature-settings: "rlig" 1, "calt" 1;
227
+ -webkit-font-smoothing: antialiased;
228
+ -moz-osx-font-smoothing: grayscale;
229
+ }
230
+
231
+ /* Modern typography improvements */
232
+ h1, h2, h3, h4, h5, h6 {
233
+ letter-spacing: -0.025em;
234
+ font-weight: 600;
235
+ }
236
+
237
+ /* Clean button defaults */
238
+ button {
239
+ font-weight: 500;
240
+ }
241
+ }
242
+
243
+ @layer components {
244
+ /* Enhanced design system layout utilities */
245
+ .content-container {
246
+ max-width: var(--content-max-width);
247
+ margin-left: auto;
248
+ margin-right: auto;
249
+ padding-left: var(--edge-md);
250
+ padding-right: var(--edge-md);
251
+ }
252
+
253
+ .section-spacing {
254
+ margin-bottom: var(--section-gap);
255
+ }
256
+
257
+ .component-spacing {
258
+ margin-bottom: var(--component-gap);
259
+ }
260
+
261
+ /* Enhanced card system */
262
+ .card-container {
263
+ background-color: hsl(var(--card));
264
+ color: hsl(var(--card-foreground));
265
+ border: 1px solid hsl(var(--border));
266
+ border-radius: calc(var(--radius) * 1.5);
267
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px 0 rgb(0 0 0 / 0.06);
268
+ padding: var(--card-padding);
269
+ transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out;
270
+ }
271
+
272
+ .card-container:hover {
273
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -1px rgb(0 0 0 / 0.06);
274
+ }
275
+
276
+ .card-nested {
277
+ background-color: hsl(var(--gray-25));
278
+ border: 1px solid hsl(var(--gray-150));
279
+ border-radius: calc(var(--radius) * 1.25);
280
+ padding: calc(var(--card-padding) - var(--nested-offset));
281
+ margin: var(--nested-offset);
282
+ }
283
+
284
+ .card-flush {
285
+ margin: calc(-1 * var(--card-padding));
286
+ padding: var(--card-padding);
287
+ border-left: 0;
288
+ border-right: 0;
289
+ border-radius: 0;
290
+ }
291
+
292
+ .card-flush:first-child {
293
+ border-top: 0;
294
+ border-top-left-radius: calc(var(--radius) * 1.5);
295
+ border-top-right-radius: calc(var(--radius) * 1.5);
296
+ }
297
+
298
+ .card-flush:last-child {
299
+ border-bottom: 0;
300
+ border-bottom-left-radius: calc(var(--radius) * 1.5);
301
+ border-bottom-right-radius: calc(var(--radius) * 1.5);
302
+ }
303
+
304
+ /* Category badges */
305
+ .badge-category-1 {
306
+ background-color: hsl(var(--category-1) / 0.1);
307
+ color: hsl(var(--category-1));
308
+ border-color: hsl(var(--category-1) / 0.2);
309
+ }
310
+ .badge-category-2 {
311
+ background-color: hsl(var(--category-2) / 0.1);
312
+ color: hsl(var(--category-2));
313
+ border-color: hsl(var(--category-2) / 0.2);
314
+ }
315
+ .badge-category-3 {
316
+ background-color: hsl(var(--category-3) / 0.1);
317
+ color: hsl(var(--category-3));
318
+ border-color: hsl(var(--category-3) / 0.2);
319
+ }
320
+ .badge-category-4 {
321
+ background-color: hsl(var(--category-4) / 0.1);
322
+ color: hsl(var(--category-4));
323
+ border-color: hsl(var(--category-4) / 0.2);
324
+ }
325
+ .badge-category-5 {
326
+ background-color: hsl(var(--category-5) / 0.1);
327
+ color: hsl(var(--category-5));
328
+ border-color: hsl(var(--category-5) / 0.2);
329
+ }
330
+ .badge-category-6 {
331
+ background-color: hsl(var(--category-6) / 0.1);
332
+ color: hsl(var(--category-6));
333
+ border-color: hsl(var(--category-6) / 0.2);
334
+ }
335
+ .badge-category-7 {
336
+ background-color: hsl(var(--category-7) / 0.1);
337
+ color: hsl(var(--category-7));
338
+ border-color: hsl(var(--category-7) / 0.2);
339
+ }
340
+ .badge-category-8 {
341
+ background-color: hsl(var(--category-8) / 0.1);
342
+ color: hsl(var(--category-8));
343
+ border-color: hsl(var(--category-8) / 0.2);
344
+ }
345
+
346
+ /* Category cards */
347
+ .card-category-1 {
348
+ border-left-color: hsl(var(--category-1));
349
+ background-color: hsl(var(--category-1) / 0.02);
350
+ }
351
+ .card-category-1:hover {
352
+ background-color: hsl(var(--category-1) / 0.04);
353
+ border-left-color: hsl(var(--category-1) / 0.8);
354
+ }
355
+ .card-category-2 {
356
+ border-left-color: hsl(var(--category-2));
357
+ background-color: hsl(var(--category-2) / 0.02);
358
+ }
359
+ .card-category-2:hover {
360
+ background-color: hsl(var(--category-2) / 0.04);
361
+ border-left-color: hsl(var(--category-2) / 0.8);
362
+ }
363
+ .card-category-3 {
364
+ border-left-color: hsl(var(--category-3));
365
+ background-color: hsl(var(--category-3) / 0.02);
366
+ }
367
+ .card-category-3:hover {
368
+ background-color: hsl(var(--category-3) / 0.04);
369
+ border-left-color: hsl(var(--category-3) / 0.8);
370
+ }
371
+ .card-category-4 {
372
+ border-left-color: hsl(var(--category-4));
373
+ background-color: hsl(var(--category-4) / 0.02);
374
+ }
375
+ .card-category-4:hover {
376
+ background-color: hsl(var(--category-4) / 0.04);
377
+ border-left-color: hsl(var(--category-4) / 0.8);
378
+ }
379
+ .card-category-5 {
380
+ border-left-color: hsl(var(--category-5));
381
+ background-color: hsl(var(--category-5) / 0.02);
382
+ }
383
+ .card-category-5:hover {
384
+ background-color: hsl(var(--category-5) / 0.04);
385
+ border-left-color: hsl(var(--category-5) / 0.8);
386
+ }
387
+ .card-category-6 {
388
+ border-left-color: hsl(var(--category-6));
389
+ background-color: hsl(var(--category-6) / 0.02);
390
+ }
391
+ .card-category-6:hover {
392
+ background-color: hsl(var(--category-6) / 0.04);
393
+ border-left-color: hsl(var(--category-6) / 0.8);
394
+ }
395
+ .card-category-7 {
396
+ border-left-color: hsl(var(--category-7));
397
+ background-color: hsl(var(--category-7) / 0.02);
398
+ }
399
+ .card-category-7:hover {
400
+ background-color: hsl(var(--category-7) / 0.04);
401
+ border-left-color: hsl(var(--category-7) / 0.8);
402
+ }
403
+ .card-category-8 {
404
+ border-left-color: hsl(var(--category-8));
405
+ background-color: hsl(var(--category-8) / 0.02);
406
+ }
407
+ .card-category-8:hover {
408
+ background-color: hsl(var(--category-8) / 0.04);
409
+ border-left-color: hsl(var(--category-8) / 0.8);
410
+ }
411
+
412
+ /* Category background colors */
413
+ .bg-category-1 { background-color: hsl(var(--category-1)); }
414
+ .bg-category-2 { background-color: hsl(var(--category-2)); }
415
+ .bg-category-3 { background-color: hsl(var(--category-3)); }
416
+ .bg-category-4 { background-color: hsl(var(--category-4)); }
417
+ .bg-category-5 { background-color: hsl(var(--category-5)); }
418
+ .bg-category-6 { background-color: hsl(var(--category-6)); }
419
+ .bg-category-7 { background-color: hsl(var(--category-7)); }
420
+ .bg-category-8 { background-color: hsl(var(--category-8)); }
421
+
422
+ /* Category text colors */
423
+ .text-category-1 { color: hsl(var(--category-1)); }
424
+ .text-category-2 { color: hsl(var(--category-2)); }
425
+ .text-category-3 { color: hsl(var(--category-3)); }
426
+ .text-category-4 { color: hsl(var(--category-4)); }
427
+ .text-category-5 { color: hsl(var(--category-5)); }
428
+ .text-category-6 { color: hsl(var(--category-6)); }
429
+ .text-category-7 { color: hsl(var(--category-7)); }
430
+ .text-category-8 { color: hsl(var(--category-8)); }
431
+
432
+ /* Category shadow colors */
433
+ .shadow-category-1 { box-shadow: 0 4px 6px -1px hsl(var(--category-1) / 0.1), 0 2px 4px -1px hsl(var(--category-1) / 0.06); }
434
+ .shadow-category-2 { box-shadow: 0 4px 6px -1px hsl(var(--category-2) / 0.1), 0 2px 4px -1px hsl(var(--category-2) / 0.06); }
435
+ .shadow-category-3 { box-shadow: 0 4px 6px -1px hsl(var(--category-3) / 0.1), 0 2px 4px -1px hsl(var(--category-3) / 0.06); }
436
+ .shadow-category-4 { box-shadow: 0 4px 6px -1px hsl(var(--category-4) / 0.1), 0 2px 4px -1px hsl(var(--category-4) / 0.06); }
437
+ .shadow-category-5 { box-shadow: 0 4px 6px -1px hsl(var(--category-5) / 0.1), 0 2px 4px -1px hsl(var(--category-5) / 0.06); }
438
+ .shadow-category-6 { box-shadow: 0 4px 6px -1px hsl(var(--category-6) / 0.1), 0 2px 4px -1px hsl(var(--category-6) / 0.06); }
439
+ .shadow-category-7 { box-shadow: 0 4px 6px -1px hsl(var(--category-7) / 0.1), 0 2px 4px -1px hsl(var(--category-7) / 0.06); }
440
+ .shadow-category-8 { box-shadow: 0 4px 6px -1px hsl(var(--category-8) / 0.1), 0 2px 4px -1px hsl(var(--category-8) / 0.06); }
441
+
442
+ /* Status indicators */
443
+ .status-success {
444
+ background-color: hsl(var(--status-success) / 0.1);
445
+ color: hsl(var(--status-success));
446
+ border-color: hsl(var(--status-success) / 0.2);
447
+ }
448
+ .status-warning {
449
+ background-color: hsl(var(--status-warning) / 0.1);
450
+ color: hsl(var(--status-warning));
451
+ border-color: hsl(var(--status-warning) / 0.2);
452
+ }
453
+ .status-error {
454
+ background-color: hsl(var(--status-error) / 0.1);
455
+ color: hsl(var(--status-error));
456
+ border-color: hsl(var(--status-error) / 0.2);
457
+ }
458
+ .status-info {
459
+ background-color: hsl(var(--status-info) / 0.1);
460
+ color: hsl(var(--status-info));
461
+ border-color: hsl(var(--status-info) / 0.2);
462
+ }
463
+ .status-neutral {
464
+ background-color: hsl(var(--status-neutral) / 0.1);
465
+ color: hsl(var(--status-neutral));
466
+ border-color: hsl(var(--status-neutral) / 0.2);
467
+ }
468
+
469
+ /* Edge alignment helpers */
470
+ .edge-align-start { margin-left: calc(-1 * var(--edge-md)); }
471
+ .edge-align-end { margin-right: calc(-1 * var(--edge-md)); }
472
+ .edge-align-both {
473
+ margin-left: calc(-1 * var(--edge-md));
474
+ margin-right: calc(-1 * var(--edge-md));
475
+ }
476
+
477
+ /* Enhanced typography system */
478
+ .text-display-lg {
479
+ font-size: 4rem;
480
+ line-height: 4.5rem;
481
+ letter-spacing: -0.05em;
482
+ font-weight: 800;
483
+ }
484
+
485
+ .text-display-md {
486
+ font-size: 3rem;
487
+ line-height: 3.5rem;
488
+ letter-spacing: -0.025em;
489
+ font-weight: 700;
490
+ }
491
+
492
+ .text-display-sm {
493
+ font-size: 2.25rem;
494
+ line-height: 2.5rem;
495
+ letter-spacing: -0.025em;
496
+ font-weight: 700;
497
+ }
498
+
499
+ .text-heading-xl {
500
+ font-size: 1.875rem;
501
+ line-height: 2.25rem;
502
+ letter-spacing: -0.025em;
503
+ font-weight: 700;
504
+ }
505
+
506
+ .text-heading-lg {
507
+ font-size: 1.5rem;
508
+ line-height: 2rem;
509
+ letter-spacing: -0.025em;
510
+ font-weight: 600;
511
+ }
512
+
513
+ .text-heading-md {
514
+ font-size: 1.25rem;
515
+ line-height: 1.75rem;
516
+ letter-spacing: -0.025em;
517
+ font-weight: 600;
518
+ }
519
+
520
+ .text-heading-sm {
521
+ font-size: 1.125rem;
522
+ line-height: 1.75rem;
523
+ letter-spacing: -0.025em;
524
+ font-weight: 600;
525
+ }
526
+
527
+ .text-body-lg {
528
+ font-size: 1.125rem;
529
+ line-height: 1.75rem;
530
+ letter-spacing: -0.025em;
531
+ }
532
+
533
+ .text-body-md {
534
+ font-size: 1rem;
535
+ line-height: 1.5rem;
536
+ letter-spacing: 0;
537
+ }
538
+
539
+ .text-body-sm {
540
+ font-size: 0.875rem;
541
+ line-height: 1.25rem;
542
+ letter-spacing: 0;
543
+ }
544
+
545
+ .text-caption {
546
+ font-size: 0.75rem;
547
+ line-height: 1rem;
548
+ letter-spacing: 0.025em;
549
+ color: hsl(var(--muted-foreground));
550
+ }
551
+
552
+ .text-overline {
553
+ font-size: 0.75rem;
554
+ line-height: 1rem;
555
+ letter-spacing: 0.1em;
556
+ font-weight: 500;
557
+ text-transform: uppercase;
558
+ color: hsl(var(--muted-foreground));
559
+ }
560
+
561
+ /* Data typography (legacy compatibility) */
562
+ .text-data-label {
563
+ font-size: 0.875rem;
564
+ line-height: 1.25rem;
565
+ letter-spacing: 0.025em;
566
+ font-weight: 500;
567
+ color: hsl(var(--muted-foreground));
568
+ text-transform: uppercase;
569
+ letter-spacing: 0.05em;
570
+ }
571
+ .text-data-value {
572
+ font-size: 1rem;
573
+ line-height: 1.5rem;
574
+ font-weight: 600;
575
+ }
576
+ .text-data-meta {
577
+ font-size: 0.75rem;
578
+ line-height: 1rem;
579
+ letter-spacing: 0.025em;
580
+ color: hsl(var(--muted-foreground));
581
+ }
582
+
583
+ /* Enhanced UI component utilities */
584
+ .button-primary {
585
+ background-color: hsl(var(--primary));
586
+ color: hsl(var(--primary-foreground));
587
+ border: 1px solid hsl(var(--primary));
588
+ padding: 0.5rem 1rem;
589
+ border-radius: var(--radius);
590
+ font-weight: 500;
591
+ transition: all 0.2s ease-in-out;
592
+ cursor: pointer;
593
+ display: inline-flex;
594
+ align-items: center;
595
+ justify-content: center;
596
+ gap: 0.5rem;
597
+ }
598
+
599
+ .button-primary:hover {
600
+ background-color: hsl(var(--primary-hover));
601
+ border-color: hsl(var(--primary-hover));
602
+ transform: translateY(-1px);
603
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
604
+ }
605
+
606
+ .button-secondary {
607
+ background-color: hsl(var(--secondary));
608
+ color: hsl(var(--secondary-foreground));
609
+ border: 1px solid hsl(var(--border));
610
+ padding: 0.5rem 1rem;
611
+ border-radius: var(--radius);
612
+ font-weight: 500;
613
+ transition: all 0.2s ease-in-out;
614
+ cursor: pointer;
615
+ display: inline-flex;
616
+ align-items: center;
617
+ justify-content: center;
618
+ gap: 0.5rem;
619
+ }
620
+
621
+ .button-secondary:hover {
622
+ background-color: hsl(var(--secondary-hover));
623
+ transform: translateY(-1px);
624
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
625
+ }
626
+
627
+ .input-field {
628
+ border: 1px solid hsl(var(--border));
629
+ background-color: hsl(var(--background));
630
+ color: hsl(var(--foreground));
631
+ padding: 0.75rem;
632
+ border-radius: var(--radius);
633
+ transition: all 0.2s ease-in-out;
634
+ font-size: 0.875rem;
635
+ }
636
+
637
+ .input-field:focus {
638
+ outline: none;
639
+ border-color: hsl(var(--ring));
640
+ box-shadow: 0 0 0 2px hsl(var(--ring) / 0.2);
641
+ }
642
+
643
+ .badge-default {
644
+ display: inline-flex;
645
+ align-items: center;
646
+ padding: 0.25rem 0.75rem;
647
+ border-radius: calc(var(--radius) * 0.75);
648
+ font-size: 0.75rem;
649
+ font-weight: 500;
650
+ line-height: 1;
651
+ background-color: hsl(var(--primary));
652
+ color: hsl(var(--primary-foreground));
653
+ }
654
+
655
+ .badge-secondary {
656
+ background-color: hsl(var(--secondary));
657
+ color: hsl(var(--secondary-foreground));
658
+ }
659
+
660
+ .badge-outline {
661
+ background-color: transparent;
662
+ color: hsl(var(--foreground));
663
+ border: 1px solid hsl(var(--border));
664
+ }
665
+
666
+ /* Grid and layout utilities */
667
+ .grid-showcase {
668
+ display: grid;
669
+ gap: var(--component-gap);
670
+ }
671
+
672
+ .grid-2-cols {
673
+ grid-template-columns: repeat(2, 1fr);
674
+ }
675
+
676
+ .grid-3-cols {
677
+ grid-template-columns: repeat(3, 1fr);
678
+ }
679
+
680
+ .grid-4-cols {
681
+ grid-template-columns: repeat(4, 1fr);
682
+ }
683
+
684
+ .grid-6-cols {
685
+ grid-template-columns: repeat(6, 1fr);
686
+ }
687
+
688
+ @media (max-width: 768px) {
689
+ .grid-2-cols,
690
+ .grid-3-cols,
691
+ .grid-4-cols,
692
+ .grid-6-cols {
693
+ grid-template-columns: 1fr;
694
+ }
695
+ }
696
+
697
+ @media (min-width: 768px) and (max-width: 1024px) {
698
+ .grid-3-cols,
699
+ .grid-4-cols,
700
+ .grid-6-cols {
701
+ grid-template-columns: repeat(2, 1fr);
702
+ }
703
+ }
704
+ }
package/src/index.ts ADDED
@@ -0,0 +1,13 @@
1
+ // Frontend Template - Main entry point for library distribution
2
+ import './atoms/shared/styles/color-palettes.css';
3
+ import './index.css';
4
+
5
+ export * from './atoms';
6
+ export * from './molecules';
7
+ export * from './features';
8
+ export * from './templates';
9
+ export * from './organisms';
10
+
11
+ // Re-export commonly used utilities
12
+ export { cn } from './atoms/utils/utils';
13
+ export { apiClient } from './atoms/services/api/client';