@alepha/ui 0.18.1 → 0.18.3

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 (280) hide show
  1. package/dist/admin/{AdminApiKeys-C-6_Q-lH.js → AdminApiKeys-Dy_k-4Vd.js} +17 -38
  2. package/dist/admin/AdminApiKeys-Dy_k-4Vd.js.map +1 -0
  3. package/dist/admin/{AdminAudits-Bgbf04hO.js → AdminAudits-CKiFMSSU.js} +23 -19
  4. package/dist/admin/AdminAudits-CKiFMSSU.js.map +1 -0
  5. package/dist/admin/AdminDashboard-PhC_dZqo.js +67 -0
  6. package/dist/admin/AdminDashboard-PhC_dZqo.js.map +1 -0
  7. package/dist/admin/{AdminFiles-B9a7G3cY.js → AdminFiles-DFTjijGp.js} +3 -7
  8. package/dist/admin/AdminFiles-DFTjijGp.js.map +1 -0
  9. package/dist/admin/{AdminJobDashboard-DaTwf5OY.js → AdminJobDashboard-BL8gGPDp.js} +2 -2
  10. package/dist/admin/{AdminJobDashboard-DaTwf5OY.js.map → AdminJobDashboard-BL8gGPDp.js.map} +1 -1
  11. package/dist/admin/{AdminJobExecutions-B9cek5dl.js → AdminJobExecutions-D9E-CS-U.js} +24 -36
  12. package/dist/admin/AdminJobExecutions-D9E-CS-U.js.map +1 -0
  13. package/dist/admin/{AdminJobRegistry-DFgV3oqx.js → AdminJobRegistry-Ci9ue1zC.js} +10 -18
  14. package/dist/admin/AdminJobRegistry-Ci9ue1zC.js.map +1 -0
  15. package/dist/admin/AdminLayout-I6TlUMPc.js +61 -0
  16. package/dist/admin/AdminLayout-I6TlUMPc.js.map +1 -0
  17. package/dist/admin/AdminNotifications-ZPHCYrv7.js +542 -0
  18. package/dist/admin/AdminNotifications-ZPHCYrv7.js.map +1 -0
  19. package/dist/admin/{AdminParameters-DHw9ATgl.js → AdminParameters-CqgvhRsb.js} +120 -105
  20. package/dist/admin/AdminParameters-CqgvhRsb.js.map +1 -0
  21. package/dist/admin/{AdminSessions-BhGJPI3z.js → AdminSessions-Bz5NRuoW.js} +48 -53
  22. package/dist/admin/AdminSessions-Bz5NRuoW.js.map +1 -0
  23. package/dist/admin/{AdminUserLayout-BdC4Te8m.js → AdminUserLayout-lXT6I0Qq.js} +14 -8
  24. package/dist/admin/AdminUserLayout-lXT6I0Qq.js.map +1 -0
  25. package/dist/admin/{AdminUserProfile-DAt23fqY.js → AdminUserProfile-vFBLoJ3h.js} +3 -3
  26. package/dist/admin/{AdminUserProfile-DAt23fqY.js.map → AdminUserProfile-vFBLoJ3h.js.map} +1 -1
  27. package/dist/admin/{AdminUserSessions-1uzcx02z.js → AdminUserSessions-CT_YDim0.js} +33 -35
  28. package/dist/admin/AdminUserSessions-CT_YDim0.js.map +1 -0
  29. package/dist/admin/AdminUsers-D1UfGya9.js +206 -0
  30. package/dist/admin/AdminUsers-D1UfGya9.js.map +1 -0
  31. package/dist/admin/{AuthLayout-DFJvCvzw.js → AuthLayout-_frhdgOO.js} +2 -2
  32. package/dist/admin/{AuthLayout-DFJvCvzw.js.map → AuthLayout-_frhdgOO.js.map} +1 -1
  33. package/dist/admin/{IconGoogle-CSQLPYwX.js → IconGoogle-Ch1m3Uzl.js} +1 -1
  34. package/dist/admin/{IconGoogle-CSQLPYwX.js.map → IconGoogle-Ch1m3Uzl.js.map} +1 -1
  35. package/dist/admin/Login-xtNmQtGh.js +275 -0
  36. package/dist/admin/Login-xtNmQtGh.js.map +1 -0
  37. package/dist/{auth/Profile-BMX_Ar_s.js → admin/Profile-_AtPUwAP.js} +31 -27
  38. package/dist/admin/Profile-_AtPUwAP.js.map +1 -0
  39. package/dist/admin/{Register-Cs10l8vX.js → Register-JcCjHUUn.js} +199 -143
  40. package/dist/admin/Register-JcCjHUUn.js.map +1 -0
  41. package/dist/admin/{ResetPassword-BwDdfkGH.js → ResetPassword-CwGBPLJO.js} +7 -7
  42. package/dist/admin/ResetPassword-CwGBPLJO.js.map +1 -0
  43. package/dist/admin/{VerifyEmail-DfXHAiQl.js → VerifyEmail-hNxWejWf.js} +23 -8
  44. package/dist/admin/VerifyEmail-hNxWejWf.js.map +1 -0
  45. package/dist/admin/{core-2xoLiT0o.js → core-CYaRQ8O-.js} +2082 -688
  46. package/dist/admin/core-CYaRQ8O-.js.map +1 -0
  47. package/dist/admin/index.d.ts +112 -48
  48. package/dist/admin/index.d.ts.map +1 -1
  49. package/dist/admin/index.js +467 -69
  50. package/dist/admin/index.js.map +1 -1
  51. package/dist/auth/{AuthLayout-CAE1pX9s.js → AuthLayout-AvLlcLjS.js} +2 -2
  52. package/dist/auth/{AuthLayout-CAE1pX9s.js.map → AuthLayout-AvLlcLjS.js.map} +1 -1
  53. package/dist/auth/Login-BA1E8IZl.js +275 -0
  54. package/dist/auth/Login-BA1E8IZl.js.map +1 -0
  55. package/dist/{admin/Profile-B-c9pCPf.js → auth/Profile-YcWdeuFz.js} +31 -27
  56. package/dist/auth/Profile-YcWdeuFz.js.map +1 -0
  57. package/dist/auth/{Register-6hi_cpfF.js → Register-CPhEO5MG.js} +198 -142
  58. package/dist/auth/Register-CPhEO5MG.js.map +1 -0
  59. package/dist/{demo/ResetPassword-DWN0lzr5.js → auth/ResetPassword-DCtGcneA.js} +7 -7
  60. package/dist/auth/ResetPassword-DCtGcneA.js.map +1 -0
  61. package/dist/{demo/VerifyEmail-DZWL72K4.js → auth/VerifyEmail-DkH7NBfn.js} +23 -8
  62. package/dist/auth/VerifyEmail-DkH7NBfn.js.map +1 -0
  63. package/dist/auth/{core-niW0sFLv.js → core-D5jIAVF2.js} +1385 -329
  64. package/dist/auth/core-D5jIAVF2.js.map +1 -0
  65. package/dist/auth/index.d.ts +105 -49
  66. package/dist/auth/index.d.ts.map +1 -1
  67. package/dist/auth/index.js +29 -26
  68. package/dist/auth/index.js.map +1 -1
  69. package/dist/core/index.d.ts +210 -74
  70. package/dist/core/index.d.ts.map +1 -1
  71. package/dist/core/index.js +2247 -834
  72. package/dist/core/index.js.map +1 -1
  73. package/dist/demo/{AuthLayout-jLa0aKsI.js → AuthLayout-Brri4A-L.js} +2 -2
  74. package/dist/demo/{AuthLayout-jLa0aKsI.js.map → AuthLayout-Brri4A-L.js.map} +1 -1
  75. package/dist/demo/DemoButton-wiCxZZ_L.js +182 -0
  76. package/dist/demo/DemoButton-wiCxZZ_L.js.map +1 -0
  77. package/dist/demo/DemoControlSelect-D7ILObVg.js +305 -0
  78. package/dist/demo/DemoControlSelect-D7ILObVg.js.map +1 -0
  79. package/dist/demo/DemoDataTable-DZ5Y8pFX.js +362 -0
  80. package/dist/demo/DemoDataTable-DZ5Y8pFX.js.map +1 -0
  81. package/dist/demo/{DemoDialog-4ItHLf9t.js → DemoDialog-CUWdLHim.js} +2 -2
  82. package/dist/demo/{DemoDialog-4ItHLf9t.js.map → DemoDialog-CUWdLHim.js.map} +1 -1
  83. package/dist/demo/{DemoFlex-EtVq8QfX.js → DemoFlex-a8OhMMvq.js} +3 -3
  84. package/dist/demo/{DemoFlex-EtVq8QfX.js.map → DemoFlex-a8OhMMvq.js.map} +1 -1
  85. package/dist/demo/{DemoHeading-BS-vGfkI.js → DemoHeading-C13OVDfS.js} +3 -3
  86. package/dist/demo/{DemoHeading-BS-vGfkI.js.map → DemoHeading-C13OVDfS.js.map} +1 -1
  87. package/dist/demo/{DemoHome-Clbn8AmS.js → DemoHome-D_De3UiT.js} +2 -2
  88. package/dist/demo/{DemoHome-Clbn8AmS.js.map → DemoHome-D_De3UiT.js.map} +1 -1
  89. package/dist/demo/{DemoJsonViewer-DkIX_ky2.js → DemoJsonViewer-B50s9aGM.js} +3 -3
  90. package/dist/demo/{DemoJsonViewer-DkIX_ky2.js.map → DemoJsonViewer-B50s9aGM.js.map} +1 -1
  91. package/dist/demo/{DemoLayout-C56xb5EE.js → DemoLayout-CHU8WTwO.js} +14 -5
  92. package/dist/demo/DemoLayout-CHU8WTwO.js.map +1 -0
  93. package/dist/demo/{DemoLogin-BZwpicOS.js → DemoLogin-BBlrWpml.js} +49 -32
  94. package/dist/demo/DemoLogin-BBlrWpml.js.map +1 -0
  95. package/dist/demo/{DemoRegister-C7_qc4MJ.js → DemoRegister-BuNE3_-f.js} +49 -50
  96. package/dist/demo/DemoRegister-BuNE3_-f.js.map +1 -0
  97. package/dist/demo/{DemoResetPassword-BI1Ct4Dw.js → DemoResetPassword-D_IjjjOJ.js} +12 -16
  98. package/dist/demo/DemoResetPassword-D_IjjjOJ.js.map +1 -0
  99. package/dist/demo/{DemoSidebar-CcBo4ltC.js → DemoSidebar-Giy2HRBD.js} +3 -3
  100. package/dist/demo/{DemoSidebar-CcBo4ltC.js.map → DemoSidebar-Giy2HRBD.js.map} +1 -1
  101. package/dist/demo/{DemoText-CzXuUn3g.js → DemoText-ubcw-vog.js} +3 -3
  102. package/dist/demo/{DemoText-CzXuUn3g.js.map → DemoText-ubcw-vog.js.map} +1 -1
  103. package/dist/demo/{DemoToast-BgHDhWrX.js → DemoToast-9die_dYT.js} +2 -2
  104. package/dist/demo/{DemoToast-BgHDhWrX.js.map → DemoToast-9die_dYT.js.map} +1 -1
  105. package/dist/demo/{DemoTypeForm-DDzWoMSV.js → DemoTypeForm-D_d6OVKL.js} +8 -4
  106. package/dist/demo/DemoTypeForm-D_d6OVKL.js.map +1 -0
  107. package/dist/demo/DemoVerifyEmail-B43KlF4F.js +34 -0
  108. package/dist/demo/DemoVerifyEmail-B43KlF4F.js.map +1 -0
  109. package/dist/demo/Login-C12N4oGs.js +275 -0
  110. package/dist/demo/Login-C12N4oGs.js.map +1 -0
  111. package/dist/demo/{Profile-CWqti7FB.js → Profile-DS5q4vOh.js} +31 -27
  112. package/dist/demo/Profile-DS5q4vOh.js.map +1 -0
  113. package/dist/demo/{Register-a70LPgs2.js → Register-B4hLBeEv.js} +198 -142
  114. package/dist/demo/Register-B4hLBeEv.js.map +1 -0
  115. package/dist/{auth/ResetPassword-CqfTk1FI.js → demo/ResetPassword-D8g9ha1N.js} +7 -7
  116. package/dist/demo/ResetPassword-D8g9ha1N.js.map +1 -0
  117. package/dist/demo/{Showcase-Dq3MISpd.js → Showcase-D6Fxt4X4.js} +64 -65
  118. package/dist/demo/Showcase-D6Fxt4X4.js.map +1 -0
  119. package/dist/{auth/VerifyEmail-nWiSTMjF.js → demo/VerifyEmail-BjDo0cZA.js} +23 -8
  120. package/dist/demo/VerifyEmail-BjDo0cZA.js.map +1 -0
  121. package/dist/demo/{auth-d6n3xbug.js → auth-ByVTreDl.js} +8 -8
  122. package/dist/demo/{auth-d6n3xbug.js.map → auth-ByVTreDl.js.map} +1 -1
  123. package/dist/demo/{core-RCUw1Q-a.js → core-DFgB3yU4.js} +2182 -756
  124. package/dist/demo/core-DFgB3yU4.js.map +1 -0
  125. package/dist/demo/index.d.ts +1 -0
  126. package/dist/demo/index.d.ts.map +1 -1
  127. package/dist/demo/index.js +24 -18
  128. package/dist/demo/index.js.map +1 -1
  129. package/package.json +7 -7
  130. package/src/admin/{AdminRouter.ts → AdminRouter.tsx} +150 -18
  131. package/src/admin/components/AdminDashboard.tsx +52 -0
  132. package/src/admin/components/AdminLayout.tsx +32 -40
  133. package/src/admin/components/audits/AdminAudits.tsx +22 -16
  134. package/src/admin/components/files/AdminFiles.tsx +1 -6
  135. package/src/admin/components/jobs/AdminJobExecutions.tsx +33 -39
  136. package/src/admin/components/jobs/AdminJobRegistry.tsx +9 -18
  137. package/src/admin/components/keys/AdminApiKeys.tsx +23 -41
  138. package/src/admin/components/notifications/AdminNotifications.tsx +519 -0
  139. package/src/admin/components/parameters/ParameterDetails.tsx +12 -270
  140. package/src/admin/components/parameters/ParameterDetailsConfigForm.tsx +238 -0
  141. package/src/admin/components/parameters/ParameterDetailsLoading.tsx +24 -0
  142. package/src/admin/components/parameters/ParameterHistory.tsx +10 -11
  143. package/src/admin/components/parameters/ParameterTree.tsx +28 -184
  144. package/src/admin/components/parameters/ParameterTreeNode.tsx +151 -0
  145. package/src/admin/components/sessions/AdminSessions.tsx +71 -71
  146. package/src/admin/components/shared/AdminResourceHeader.tsx +2 -25
  147. package/src/admin/components/shared/AdminResourceHeaderMenuItem.tsx +37 -0
  148. package/src/admin/components/shared/AdminResourceTabs.tsx +2 -26
  149. package/src/admin/components/shared/AdminResourceTabsItem.tsx +36 -0
  150. package/src/admin/components/users/AdminUserSessions.tsx +33 -31
  151. package/src/admin/components/users/AdminUsers.tsx +184 -72
  152. package/src/admin/index.ts +2 -2
  153. package/src/admin/primitives/$uiAdmin.ts +1 -1
  154. package/src/auth/components/Login.tsx +188 -121
  155. package/src/auth/components/Profile.tsx +1 -22
  156. package/src/auth/components/ProfileField.tsx +39 -0
  157. package/src/auth/components/Register.tsx +215 -158
  158. package/src/auth/components/ResetPassword.tsx +7 -11
  159. package/src/auth/components/VerifyEmail.tsx +35 -10
  160. package/src/auth/components/buttons/UserButton.tsx +20 -24
  161. package/src/auth/index.ts +1 -0
  162. package/src/core/atoms/alephaSidebarAtom.ts +1 -1
  163. package/src/core/atoms/alephaThemeListAtom.ts +14 -1
  164. package/src/core/atoms/alephaThemeOverridesAtom.ts +17 -0
  165. package/src/core/atoms/themes/editorial.ts +184 -0
  166. package/src/core/atoms/themes/monochrome.ts +197 -0
  167. package/src/core/atoms/themes/rosePine.ts +208 -0
  168. package/src/core/atoms/themes/softBrutalism.ts +221 -0
  169. package/src/core/atoms/themes/terminal.ts +186 -0
  170. package/src/core/components/Flex.tsx +101 -1
  171. package/src/core/components/Text.tsx +1 -1
  172. package/src/core/components/buttons/ActionButton.tsx +109 -87
  173. package/src/core/components/buttons/DarkModeButton.tsx +3 -3
  174. package/src/core/components/buttons/LanguageButton.tsx +1 -1
  175. package/src/core/components/buttons/OmnibarButton.tsx +1 -2
  176. package/src/core/components/buttons/ThemeButton.tsx +40 -11
  177. package/src/core/components/buttons/ThemeExpertModal.tsx +184 -0
  178. package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -2
  179. package/src/core/components/data/DetailDrawer.tsx +102 -96
  180. package/src/core/components/data/DetailList.tsx +2 -1
  181. package/src/core/components/layout/AppBar.tsx +10 -0
  182. package/src/core/components/layout/Breadcrumb.tsx +3 -6
  183. package/src/core/components/layout/DashboardShell.tsx +28 -11
  184. package/src/core/components/layout/Sidebar.tsx +18 -235
  185. package/src/core/components/layout/SidebarCollapsedItem.tsx +91 -0
  186. package/src/core/components/layout/SidebarItem.tsx +146 -0
  187. package/src/core/components/layout/index.ts +3 -1
  188. package/src/core/constants/ui.ts +5 -5
  189. package/src/core/form/components/Control.tsx +31 -29
  190. package/src/core/form/components/ControlArray.tsx +13 -39
  191. package/src/core/form/components/ControlDate.tsx +10 -21
  192. package/src/core/form/components/ControlNumber.tsx +4 -33
  193. package/src/core/form/components/ControlQueryBuilder.tsx +12 -175
  194. package/src/core/form/components/ControlQueryBuilderHelp.tsx +165 -0
  195. package/src/core/form/components/ControlSelect.browser.spec.tsx +343 -0
  196. package/src/core/form/components/ControlSelect.tsx +294 -92
  197. package/src/core/form/components/TypeForm.browser.spec.tsx +3 -3
  198. package/src/core/form/components/TypeForm.tsx +5 -2
  199. package/src/core/form/index.ts +8 -1
  200. package/src/core/form/utils/parseInput.ts +7 -3
  201. package/src/core/hooks/useTheme.ts +26 -3
  202. package/src/core/index.ts +9 -2
  203. package/src/core/interfaces/AlephaTheme.ts +2 -0
  204. package/src/core/json/components/JsonViewer.tsx +103 -319
  205. package/src/core/json/components/JsonViewerCopyButton.tsx +46 -0
  206. package/src/core/json/components/JsonViewerRowNode.tsx +120 -0
  207. package/src/core/json/components/JsonViewerShared.ts +76 -0
  208. package/src/core/providers/ThemeProvider.ts +108 -8
  209. package/src/core/services/DialogService.tsx +24 -3
  210. package/src/core/styles.css +33 -20
  211. package/src/core/table/components/ColumnPicker.tsx +3 -3
  212. package/src/core/table/components/DataTable.tsx +233 -143
  213. package/src/core/table/components/DataTableFilters.tsx +6 -16
  214. package/src/core/table/components/DataTablePagination.tsx +58 -29
  215. package/src/core/table/components/DataTableToolbar.tsx +16 -7
  216. package/src/core/table/components/FilterPicker.tsx +3 -3
  217. package/src/core/table/index.ts +1 -0
  218. package/src/core/table/interfaces/types.ts +42 -9
  219. package/src/core/utils/icons.tsx +2 -2
  220. package/src/demo/DemoRouter.ts +8 -1
  221. package/src/demo/components/DemoLayout.tsx +12 -2
  222. package/src/demo/components/auth/DemoLogin.tsx +35 -28
  223. package/src/demo/components/auth/DemoRegister.tsx +35 -49
  224. package/src/demo/components/auth/DemoResetPassword.tsx +5 -9
  225. package/src/demo/components/auth/DemoVerifyEmail.tsx +7 -6
  226. package/src/demo/components/core/DemoButton.tsx +123 -103
  227. package/src/demo/components/core/DemoControlSelect.tsx +325 -0
  228. package/src/demo/components/core/DemoDataTable.tsx +255 -241
  229. package/src/demo/components/core/DemoTypeForm.tsx +7 -2
  230. package/src/demo/components/shared/MacWindow.tsx +5 -11
  231. package/src/demo/components/shared/Showcase.tsx +28 -42
  232. package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +0 -1
  233. package/dist/admin/AdminAudits-Bgbf04hO.js.map +0 -1
  234. package/dist/admin/AdminFiles-B9a7G3cY.js.map +0 -1
  235. package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +0 -1
  236. package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +0 -1
  237. package/dist/admin/AdminLayout-DHsvWxVB.js +0 -70
  238. package/dist/admin/AdminLayout-DHsvWxVB.js.map +0 -1
  239. package/dist/admin/AdminParameters-DHw9ATgl.js.map +0 -1
  240. package/dist/admin/AdminSessions-BhGJPI3z.js.map +0 -1
  241. package/dist/admin/AdminUserLayout-BdC4Te8m.js.map +0 -1
  242. package/dist/admin/AdminUserSessions-1uzcx02z.js.map +0 -1
  243. package/dist/admin/AdminUsers-C85c3eiQ.js +0 -121
  244. package/dist/admin/AdminUsers-C85c3eiQ.js.map +0 -1
  245. package/dist/admin/Login-BGheURrg.js +0 -219
  246. package/dist/admin/Login-BGheURrg.js.map +0 -1
  247. package/dist/admin/Profile-B-c9pCPf.js.map +0 -1
  248. package/dist/admin/Register-Cs10l8vX.js.map +0 -1
  249. package/dist/admin/ResetPassword-BwDdfkGH.js.map +0 -1
  250. package/dist/admin/VerifyEmail-DfXHAiQl.js.map +0 -1
  251. package/dist/admin/auth-Dr0Cf8I7.js +0 -319
  252. package/dist/admin/auth-Dr0Cf8I7.js.map +0 -1
  253. package/dist/admin/core-2xoLiT0o.js.map +0 -1
  254. package/dist/auth/Login-Denw_UGy.js +0 -219
  255. package/dist/auth/Login-Denw_UGy.js.map +0 -1
  256. package/dist/auth/Profile-BMX_Ar_s.js.map +0 -1
  257. package/dist/auth/Register-6hi_cpfF.js.map +0 -1
  258. package/dist/auth/ResetPassword-CqfTk1FI.js.map +0 -1
  259. package/dist/auth/VerifyEmail-nWiSTMjF.js.map +0 -1
  260. package/dist/auth/core-niW0sFLv.js.map +0 -1
  261. package/dist/demo/DemoButton-BmaWZVwf.js +0 -178
  262. package/dist/demo/DemoButton-BmaWZVwf.js.map +0 -1
  263. package/dist/demo/DemoDataTable-Z9xyV221.js +0 -362
  264. package/dist/demo/DemoDataTable-Z9xyV221.js.map +0 -1
  265. package/dist/demo/DemoLayout-C56xb5EE.js.map +0 -1
  266. package/dist/demo/DemoLogin-BZwpicOS.js.map +0 -1
  267. package/dist/demo/DemoRegister-C7_qc4MJ.js.map +0 -1
  268. package/dist/demo/DemoResetPassword-BI1Ct4Dw.js.map +0 -1
  269. package/dist/demo/DemoTypeForm-DDzWoMSV.js.map +0 -1
  270. package/dist/demo/DemoVerifyEmail-C_Irdnov.js +0 -30
  271. package/dist/demo/DemoVerifyEmail-C_Irdnov.js.map +0 -1
  272. package/dist/demo/Login-hSOU3jZc.js +0 -219
  273. package/dist/demo/Login-hSOU3jZc.js.map +0 -1
  274. package/dist/demo/Profile-CWqti7FB.js.map +0 -1
  275. package/dist/demo/Register-a70LPgs2.js.map +0 -1
  276. package/dist/demo/ResetPassword-DWN0lzr5.js.map +0 -1
  277. package/dist/demo/Showcase-Dq3MISpd.js.map +0 -1
  278. package/dist/demo/VerifyEmail-DZWL72K4.js.map +0 -1
  279. package/dist/demo/core-RCUw1Q-a.js.map +0 -1
  280. package/src/demo/styles.css +0 -0
@@ -42,14 +42,14 @@ export interface UserButtonProps
42
42
  menuConfig?: Partial<Omit<ActionMenuConfig, "items">>;
43
43
 
44
44
  /**
45
- * Whether to show a divider before logout (default: true when menuItems provided)
45
+ * Custom icon to use instead of user avatar (default: IconUser)
46
46
  */
47
- showLogoutDivider?: boolean;
47
+ icon?: ReactNode;
48
48
 
49
49
  /**
50
- * Custom icon to use instead of user avatar (default: IconUser)
50
+ * If true, the profile link will not be shown in the menu even if a userProfile page exists and the user is authenticated.
51
51
  */
52
- icon?: ReactNode;
52
+ skipProfile?: boolean;
53
53
  }
54
54
 
55
55
  const UserButton = (props: UserButtonProps) => {
@@ -58,13 +58,13 @@ const UserButton = (props: UserButtonProps) => {
58
58
  logoutLabel = "Sign out",
59
59
  loginLabel,
60
60
  menuConfig,
61
- showLogoutDivider = menuItems.length > 0,
62
61
  icon,
62
+ skipProfile = false,
63
63
  children,
64
64
  ...buttonProps
65
65
  } = props;
66
66
 
67
- buttonProps.variant ??= "subtle";
67
+ buttonProps.variant ??= "default";
68
68
 
69
69
  const adminUserCtrl = useClient<AdminUserController>();
70
70
  const pages = useInject(ReactPageProvider);
@@ -93,8 +93,6 @@ const UserButton = (props: UserButtonProps) => {
93
93
  );
94
94
  }
95
95
 
96
- const userLabel = auth.user.username || auth.user.email;
97
-
98
96
  const items: ActionMenuItem[] = [];
99
97
 
100
98
  // Add user info label if available
@@ -106,10 +104,10 @@ const UserButton = (props: UserButtonProps) => {
106
104
  }
107
105
 
108
106
  // Add profile page link if available
109
- if (userPage && isConnected) {
107
+ if (userPage && isConnected && !skipProfile) {
110
108
  items.push({
111
109
  label: "Profile",
112
- icon: <IconUser size={ui.sizes.icon.md} />,
110
+ icon: <IconUser size={ui.sizes.icon.sm} />,
113
111
  href: authRouter.path("userProfile"),
114
112
  });
115
113
  }
@@ -118,7 +116,7 @@ const UserButton = (props: UserButtonProps) => {
118
116
  if (adminPage && isAdmin) {
119
117
  items.push({
120
118
  label: "Admin",
121
- icon: <IconSettings size={ui.sizes.icon.md} />,
119
+ icon: <IconSettings size={ui.sizes.icon.sm} />,
122
120
  href: authRouter.path("adminLayout"),
123
121
  });
124
122
  }
@@ -127,14 +125,14 @@ const UserButton = (props: UserButtonProps) => {
127
125
  items.push(...menuItems);
128
126
 
129
127
  // Add divider before logout if needed
130
- if (showLogoutDivider && items.length > 0) {
128
+ if (items.length > 0) {
131
129
  items.push({ type: "divider" });
132
130
  }
133
131
 
134
132
  // Add logout item
135
133
  items.push({
136
134
  label: logoutLabel,
137
- icon: <IconLogout size={ui.sizes.icon.md} />,
135
+ icon: <IconLogout size={ui.sizes.icon.sm} />,
138
136
  color: "red",
139
137
  onClick: () => auth.logout(),
140
138
  });
@@ -148,23 +146,21 @@ const UserButton = (props: UserButtonProps) => {
148
146
  icon={
149
147
  hasAvatar ? undefined : icon === null ? undefined : (icon ?? IconUser)
150
148
  }
151
- leftSection={
152
- hasAvatar ? (
153
- <Avatar
154
- src={`/api/files/${auth.user.picture}`}
155
- size={24}
156
- radius="xl"
157
- />
158
- ) : undefined
159
- }
149
+ px={8}
160
150
  menu={{
161
- position: "bottom-end",
151
+ menuProps: {
152
+ withArrow: true,
153
+ arrowSize: 12,
154
+ },
155
+ position: "bottom",
162
156
  width: 200,
163
157
  ...menuConfig,
164
158
  items,
165
159
  }}
166
160
  >
167
- {children}
161
+ {hasAvatar ? (
162
+ <Avatar src={`/api/files/${auth.user.picture}`} size={24} radius="xl" />
163
+ ) : undefined}
168
164
  </ActionButton>
169
165
  );
170
166
  };
package/src/auth/index.ts CHANGED
@@ -13,6 +13,7 @@ export { default as UserButton } from "./components/buttons/UserButton.tsx";
13
13
  export { default as Login } from "./components/Login.tsx";
14
14
  export { default as Register } from "./components/Register.tsx";
15
15
  export { default as ResetPassword } from "./components/ResetPassword.tsx";
16
+ export type { VerifyEmailStep } from "./components/VerifyEmail.tsx";
16
17
  export { default as VerifyEmail } from "./components/VerifyEmail.tsx";
17
18
  export * from "./primitives/$uiAuth.ts";
18
19
 
@@ -26,7 +26,7 @@ export const alephaSidebarAtom = $atom({
26
26
  closed: true,
27
27
  collapsed: false,
28
28
  expandedWidth: 300,
29
- collapsedWidth: 78,
29
+ collapsedWidth: 72,
30
30
  },
31
31
  });
32
32
 
@@ -1,12 +1,25 @@
1
1
  import { $atom, type Static, t } from "alepha";
2
2
  import type { AlephaTheme } from "../interfaces/AlephaTheme.ts";
3
3
  import { defaultTheme } from "./themes/default.ts";
4
+ import { editorialTheme } from "./themes/editorial.ts";
4
5
  import { midnightTheme } from "./themes/midnight.ts";
6
+ import { monochromeTheme } from "./themes/monochrome.ts";
7
+ import { rosePineTheme } from "./themes/rosePine.ts";
8
+ import { softBrutalismTheme } from "./themes/softBrutalism.ts";
9
+ import { terminalTheme } from "./themes/terminal.ts";
5
10
 
6
11
  export const alephaThemeListAtom = $atom({
7
12
  name: "alepha.ui.themeList",
8
13
  schema: t.array(t.json<AlephaTheme>()), // TODO: translate to proper schema
9
- default: [defaultTheme, midnightTheme],
14
+ default: [
15
+ defaultTheme,
16
+ midnightTheme,
17
+ softBrutalismTheme,
18
+ terminalTheme,
19
+ editorialTheme,
20
+ rosePineTheme,
21
+ monochromeTheme,
22
+ ],
10
23
  });
11
24
 
12
25
  export type AlephaThemeListAtom = Static<typeof alephaThemeListAtom.schema>;
@@ -0,0 +1,17 @@
1
+ import { $atom, type Static, t } from "alepha";
2
+
3
+ export const alephaThemeOverridesAtom = $atom({
4
+ name: "alepha.ui.themeOverrides",
5
+ schema: t.object({
6
+ primaryColor: t.optional(t.text()),
7
+ radius: t.optional(t.text()),
8
+ fontFamily: t.optional(t.text()),
9
+ fontSize: t.optional(t.text()),
10
+ scale: t.optional(t.text()),
11
+ }),
12
+ default: {},
13
+ });
14
+
15
+ export type AlephaThemeOverrides = Static<
16
+ typeof alephaThemeOverridesAtom.schema
17
+ >;
@@ -0,0 +1,184 @@
1
+ import {
2
+ ActionIcon,
3
+ Badge,
4
+ Button,
5
+ Card,
6
+ Paper,
7
+ TextInput,
8
+ } from "@mantine/core";
9
+ import type { AlephaTheme } from "../../interfaces/AlephaTheme.ts";
10
+
11
+ /**
12
+ * Editorial theme.
13
+ *
14
+ * Serif typography, high contrast black and white, thin borders, generous whitespace.
15
+ * Newspaper/magazine aesthetic — elegant restraint.
16
+ */
17
+ export const editorialTheme: AlephaTheme = {
18
+ name: "Editorial",
19
+ description: "Serif typography with newspaper elegance",
20
+ defaultColorScheme: "light",
21
+ head: {
22
+ link: [
23
+ { rel: "preconnect", href: "https://fonts.googleapis.com" },
24
+ {
25
+ rel: "preconnect",
26
+ href: "https://fonts.gstatic.com",
27
+ crossorigin: "",
28
+ },
29
+ {
30
+ rel: "stylesheet",
31
+ href: "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,300;1,400&display=swap",
32
+ },
33
+ ],
34
+ },
35
+ primaryColor: "ink",
36
+ primaryShade: { light: 7, dark: 3 },
37
+ autoContrast: true,
38
+ fontFamily: '"Source Serif 4", "Georgia", "Times New Roman", serif',
39
+ fontFamilyMonospace:
40
+ 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace',
41
+ headings: {
42
+ fontFamily: '"Playfair Display", "Georgia", "Times New Roman", serif',
43
+ fontWeight: "700",
44
+ textWrap: "wrap",
45
+ sizes: {
46
+ h1: { fontSize: "2.5rem", lineHeight: "1.15" },
47
+ h2: { fontSize: "1.75rem", lineHeight: "1.2" },
48
+ h3: { fontSize: "1.375rem", lineHeight: "1.3" },
49
+ h4: { fontSize: "1.125rem", lineHeight: "1.4" },
50
+ h5: { fontSize: "1rem", lineHeight: "1.5" },
51
+ h6: { fontSize: "0.875rem", lineHeight: "1.5" },
52
+ },
53
+ },
54
+ defaultRadius: "sm",
55
+ radius: {
56
+ xs: "2px",
57
+ sm: "3px",
58
+ md: "4px",
59
+ lg: "6px",
60
+ xl: "8px",
61
+ },
62
+ shadows: {
63
+ xs: "0 1px 2px rgba(0, 0, 0, 0.06)",
64
+ sm: "0 1px 3px rgba(0, 0, 0, 0.08)",
65
+ md: "0 2px 6px rgba(0, 0, 0, 0.08)",
66
+ lg: "0 4px 12px rgba(0, 0, 0, 0.1)",
67
+ xl: "0 8px 24px rgba(0, 0, 0, 0.1)",
68
+ },
69
+ colors: {
70
+ // Primary — ink black with warm tint
71
+ ink: [
72
+ "#f5f3f0",
73
+ "#e8e4de",
74
+ "#d4cec5",
75
+ "#b5ad9f",
76
+ "#8c8272",
77
+ "#6b6050",
78
+ "#4a4035",
79
+ "#332b22",
80
+ "#1f1812",
81
+ "#0d0a07",
82
+ ],
83
+ // Accent — muted burgundy
84
+ burgundy: [
85
+ "#faf0f0",
86
+ "#f0d4d4",
87
+ "#e0adad",
88
+ "#cc8585",
89
+ "#b35e5e",
90
+ "#944545",
91
+ "#763636",
92
+ "#5a2828",
93
+ "#3d1b1b",
94
+ "#220f0f",
95
+ ],
96
+ // Warm grays — paper-tinted
97
+ gray: [
98
+ "#faf9f7",
99
+ "#f0eee9",
100
+ "#e0dcd5",
101
+ "#c8c2b8",
102
+ "#a8a194",
103
+ "#8a8273",
104
+ "#6b6456",
105
+ "#504a3f",
106
+ "#36322b",
107
+ "#1e1b17",
108
+ ],
109
+ // Dark palette — warm charcoal
110
+ dark: [
111
+ "#d5d2cd",
112
+ "#aba59c",
113
+ "#817a6e",
114
+ "#5e584e",
115
+ "#46413a",
116
+ "#36322c",
117
+ "#2a2721",
118
+ "#201d19",
119
+ "#171411",
120
+ "#0d0b09",
121
+ ],
122
+ },
123
+
124
+ components: {
125
+ Button: Button.extend({
126
+ defaultProps: {
127
+ fw: 600,
128
+ },
129
+ styles: {
130
+ root: {
131
+ letterSpacing: "0.02em",
132
+ },
133
+ },
134
+ }),
135
+
136
+ ActionIcon: ActionIcon.extend({
137
+ styles: {
138
+ root: {
139
+ border: "1px solid var(--mantine-color-default-border)",
140
+ },
141
+ },
142
+ }),
143
+
144
+ Paper: Paper.extend({
145
+ styles: {
146
+ root: {
147
+ border: "1px solid var(--mantine-color-default-border)",
148
+ },
149
+ },
150
+ }),
151
+
152
+ Card: Card.extend({
153
+ styles: {
154
+ root: {
155
+ border: "1px solid var(--mantine-color-default-border)",
156
+ },
157
+ },
158
+ }),
159
+
160
+ TextInput: TextInput.extend({
161
+ styles: {
162
+ input: {
163
+ border: "1px solid var(--mantine-color-default-border)",
164
+ },
165
+ },
166
+ }),
167
+
168
+ Badge: Badge.extend({
169
+ defaultProps: {
170
+ fw: 600,
171
+ variant: "outline",
172
+ },
173
+ styles: {
174
+ root: {
175
+ fontFamily:
176
+ '-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
177
+ letterSpacing: "0.04em",
178
+ textTransform: "uppercase" as const,
179
+ fontSize: "0.65rem",
180
+ },
181
+ },
182
+ }),
183
+ },
184
+ };
@@ -0,0 +1,197 @@
1
+ import {
2
+ ActionIcon,
3
+ Badge,
4
+ Button,
5
+ Card,
6
+ Paper,
7
+ TextInput,
8
+ } from "@mantine/core";
9
+ import type { AlephaTheme } from "../../interfaces/AlephaTheme.ts";
10
+
11
+ /**
12
+ * Monochrome theme.
13
+ *
14
+ * Pure black and white. No color. Bold typography does all the heavy lifting.
15
+ * A design-school statement piece — minimalist color, maximalist type.
16
+ */
17
+ export const monochromeTheme: AlephaTheme = {
18
+ name: "Monochrome",
19
+ description: "Pure black and white — zero color, maximum typography",
20
+ primaryColor: "mono",
21
+ primaryShade: { light: 8, dark: 1 },
22
+ autoContrast: true,
23
+ fontFamily:
24
+ '-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif',
25
+ fontFamilyMonospace:
26
+ 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace',
27
+ headings: {
28
+ fontFamily:
29
+ '-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif',
30
+ fontWeight: "800",
31
+ textWrap: "wrap",
32
+ sizes: {
33
+ h1: { fontSize: "2.25rem", lineHeight: "1.15" },
34
+ h2: { fontSize: "1.625rem", lineHeight: "1.25" },
35
+ h3: { fontSize: "1.25rem", lineHeight: "1.35" },
36
+ h4: { fontSize: "1.0625rem", lineHeight: "1.45" },
37
+ h5: { fontSize: "0.9375rem", lineHeight: "1.5" },
38
+ h6: { fontSize: "0.8125rem", lineHeight: "1.5" },
39
+ },
40
+ },
41
+ defaultRadius: "0",
42
+ radius: {
43
+ xs: "0",
44
+ sm: "0",
45
+ md: "0",
46
+ lg: "0",
47
+ xl: "2px",
48
+ },
49
+ shadows: {
50
+ xs: "0 1px 2px rgba(0, 0, 0, 0.08)",
51
+ sm: "0 1px 4px rgba(0, 0, 0, 0.1)",
52
+ md: "0 2px 8px rgba(0, 0, 0, 0.12)",
53
+ lg: "0 4px 16px rgba(0, 0, 0, 0.14)",
54
+ xl: "0 8px 32px rgba(0, 0, 0, 0.16)",
55
+ },
56
+ colors: {
57
+ // Primary — pure grayscale
58
+ mono: [
59
+ "#f5f5f5",
60
+ "#e0e0e0",
61
+ "#c0c0c0",
62
+ "#a0a0a0",
63
+ "#808080",
64
+ "#606060",
65
+ "#404040",
66
+ "#282828",
67
+ "#141414",
68
+ "#000000",
69
+ ],
70
+ // Gray — identical to mono for consistency
71
+ gray: [
72
+ "#f5f5f5",
73
+ "#e5e5e5",
74
+ "#cccccc",
75
+ "#b0b0b0",
76
+ "#909090",
77
+ "#707070",
78
+ "#555555",
79
+ "#3a3a3a",
80
+ "#252525",
81
+ "#121212",
82
+ ],
83
+ // "Colors" are all grayscale — no hue anywhere
84
+ blue: [
85
+ "#f5f5f5",
86
+ "#e0e0e0",
87
+ "#c0c0c0",
88
+ "#a0a0a0",
89
+ "#808080",
90
+ "#606060",
91
+ "#404040",
92
+ "#282828",
93
+ "#141414",
94
+ "#000000",
95
+ ],
96
+ green: [
97
+ "#f5f5f5",
98
+ "#e0e0e0",
99
+ "#c0c0c0",
100
+ "#a0a0a0",
101
+ "#808080",
102
+ "#606060",
103
+ "#404040",
104
+ "#282828",
105
+ "#141414",
106
+ "#000000",
107
+ ],
108
+ red: [
109
+ "#f5f5f5",
110
+ "#e0e0e0",
111
+ "#c0c0c0",
112
+ "#a0a0a0",
113
+ "#808080",
114
+ "#606060",
115
+ "#404040",
116
+ "#282828",
117
+ "#141414",
118
+ "#000000",
119
+ ],
120
+ // Dark palette — true blacks
121
+ dark: [
122
+ "#d0d0d0",
123
+ "#a0a0a0",
124
+ "#707070",
125
+ "#505050",
126
+ "#383838",
127
+ "#282828",
128
+ "#1c1c1c",
129
+ "#141414",
130
+ "#0a0a0a",
131
+ "#000000",
132
+ ],
133
+ },
134
+
135
+ components: {
136
+ Button: Button.extend({
137
+ defaultProps: {
138
+ fw: 700,
139
+ },
140
+ styles: {
141
+ root: {
142
+ border: "2px solid currentColor",
143
+ letterSpacing: "0.03em",
144
+ textTransform: "uppercase" as const,
145
+ fontSize: "0.8125rem",
146
+ },
147
+ },
148
+ }),
149
+
150
+ ActionIcon: ActionIcon.extend({
151
+ styles: {
152
+ root: {
153
+ border: "2px solid currentColor",
154
+ },
155
+ },
156
+ }),
157
+
158
+ Paper: Paper.extend({
159
+ styles: {
160
+ root: {
161
+ border: "2px solid var(--mantine-color-default-border)",
162
+ },
163
+ },
164
+ }),
165
+
166
+ Card: Card.extend({
167
+ styles: {
168
+ root: {
169
+ border: "2px solid var(--mantine-color-default-border)",
170
+ },
171
+ },
172
+ }),
173
+
174
+ TextInput: TextInput.extend({
175
+ styles: {
176
+ input: {
177
+ border: "2px solid var(--mantine-color-default-border)",
178
+ },
179
+ },
180
+ }),
181
+
182
+ Badge: Badge.extend({
183
+ defaultProps: {
184
+ fw: 700,
185
+ variant: "outline",
186
+ },
187
+ styles: {
188
+ root: {
189
+ textTransform: "uppercase" as const,
190
+ letterSpacing: "0.06em",
191
+ fontSize: "0.65rem",
192
+ border: "2px solid currentColor",
193
+ },
194
+ },
195
+ }),
196
+ },
197
+ };