@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
@@ -0,0 +1,76 @@
1
+ import type { MantineSize } from "@mantine/core";
2
+ import type { CSSProperties } from "react";
3
+
4
+ // =============================================================================
5
+ // TYPES
6
+ // =============================================================================
7
+
8
+ export interface JsonTreeNode {
9
+ value: string;
10
+ label: string;
11
+ children?: JsonTreeNode[];
12
+ nodeValue: any;
13
+ nodeKey: string | undefined;
14
+ path: string[];
15
+ isArrayItem: boolean;
16
+ isRoot?: boolean;
17
+ }
18
+
19
+ // =============================================================================
20
+ // CONSTANTS
21
+ // =============================================================================
22
+
23
+ export const SIZE_CONFIG: Record<
24
+ MantineSize,
25
+ { icon: number; levelOffset: number }
26
+ > = {
27
+ xs: { icon: 14, levelOffset: 16 },
28
+ sm: { icon: 16, levelOffset: 20 },
29
+ md: { icon: 18, levelOffset: 24 },
30
+ lg: { icon: 20, levelOffset: 28 },
31
+ xl: { icon: 22, levelOffset: 32 },
32
+ };
33
+
34
+ export const STYLES = {
35
+ root: {
36
+ fontFamily: "var(--mantine-font-family-monospace)",
37
+ } satisfies CSSProperties,
38
+ chevron: {
39
+ flexShrink: 0,
40
+ color: "var(--mantine-color-dimmed)",
41
+ } satisfies CSSProperties,
42
+ key: {
43
+ color: "var(--mantine-color-cyan-text)",
44
+ fontWeight: 500,
45
+ } satisfies CSSProperties,
46
+ colon: {
47
+ color: "var(--mantine-color-dimmed)",
48
+ } satisfies CSSProperties,
49
+ string: {
50
+ color: "var(--mantine-color-teal-text)",
51
+ } satisfies CSSProperties,
52
+ number: {
53
+ color: "var(--mantine-color-blue-text)",
54
+ } satisfies CSSProperties,
55
+ boolean: {
56
+ color: "var(--mantine-color-violet-text)",
57
+ } satisfies CSSProperties,
58
+ null: {
59
+ color: "var(--mantine-color-dimmed)",
60
+ fontStyle: "italic",
61
+ } satisfies CSSProperties,
62
+ preview: {
63
+ color: "var(--mantine-color-dimmed)",
64
+ } satisfies CSSProperties,
65
+ };
66
+
67
+ // =============================================================================
68
+ // HELPERS
69
+ // =============================================================================
70
+
71
+ export const getValueType = (val: any): string => {
72
+ if (val === null) return "null";
73
+ if (val === undefined) return "undefined";
74
+ if (Array.isArray(val)) return "array";
75
+ return typeof val;
76
+ };
@@ -1,8 +1,12 @@
1
1
  import { $inject, Alepha, AlephaError } from "alepha";
2
- import { $head } from "alepha/react/head";
2
+ import { $head, BrowserHeadProvider } from "alepha/react/head";
3
3
  import { $cookie } from "alepha/server/cookies";
4
4
  import { alephaThemeAtom } from "../atoms/alephaThemeAtom.ts";
5
5
  import { alephaThemeListAtom } from "../atoms/alephaThemeListAtom.ts";
6
+ import {
7
+ type AlephaThemeOverrides,
8
+ alephaThemeOverridesAtom,
9
+ } from "../atoms/alephaThemeOverridesAtom.ts";
6
10
  import { defaultTheme } from "../atoms/themes/default.ts";
7
11
  import type { AlephaTheme } from "../interfaces/AlephaTheme.ts";
8
12
 
@@ -14,6 +18,12 @@ export class ThemeProvider {
14
18
  ttl: [1, "year"],
15
19
  });
16
20
 
21
+ protected readonly overridesCookie = $cookie({
22
+ name: "themeOverrides",
23
+ schema: alephaThemeOverridesAtom.schema,
24
+ ttl: [1, "year"],
25
+ });
26
+
17
27
  protected readonly head = $head(() => {
18
28
  const theme = this.getTheme();
19
29
  if (!theme || !theme.name) {
@@ -21,8 +31,9 @@ export class ThemeProvider {
21
31
  }
22
32
  return {
23
33
  htmlAttributes: {
24
- "data-theme": theme.name,
34
+ "data-theme": this.slugify(theme.name),
25
35
  },
36
+ ...theme.head,
26
37
  };
27
38
  });
28
39
 
@@ -38,23 +49,112 @@ export class ThemeProvider {
38
49
  this.cookie.set({ index });
39
50
  this.alepha.store.set(alephaThemeAtom, { index });
40
51
 
41
- if (typeof document === "undefined") {
52
+ if (!this.alepha.isBrowser()) {
42
53
  return;
43
54
  }
44
55
 
45
- document.documentElement.removeAttribute("data-theme");
56
+ this.alepha.inject(BrowserHeadProvider).refreshGlobalHead();
57
+ }
46
58
 
47
- if (newTheme.name) {
48
- document.documentElement.setAttribute("data-theme", newTheme.name);
49
- }
59
+ protected slugify(name: string): string {
60
+ return name.toLowerCase().replace(/\s+/g, "-");
50
61
  }
51
62
 
63
+ protected static readonly FONT_SIZE_MULTIPLIERS: Record<string, number> = {
64
+ xs: 0.85,
65
+ sm: 0.925,
66
+ md: 1,
67
+ lg: 1.1,
68
+ xl: 1.25,
69
+ };
70
+
71
+ protected static readonly SCALE_VALUES: Record<string, number> = {
72
+ xs: 0.85,
73
+ sm: 0.925,
74
+ md: 1,
75
+ lg: 1.1,
76
+ xl: 1.25,
77
+ };
78
+
79
+ protected static readonly DEFAULT_FONT_SIZES: Record<string, string> = {
80
+ xs: "0.75rem",
81
+ sm: "0.875rem",
82
+ md: "1rem",
83
+ lg: "1.125rem",
84
+ xl: "1.25rem",
85
+ };
86
+
52
87
  public getTheme() {
53
88
  const index = this.getThemeIndex();
54
89
  const list = this.alepha.store.get(
55
90
  alephaThemeListAtom,
56
91
  ) as Array<AlephaTheme>;
57
- return list[index] || list[0] || defaultTheme;
92
+ const base = list[index] || list[0] || defaultTheme;
93
+ const overrides = this.getThemeOverrides();
94
+
95
+ if (
96
+ !overrides.primaryColor &&
97
+ !overrides.radius &&
98
+ !overrides.fontFamily &&
99
+ !overrides.fontSize &&
100
+ !overrides.scale
101
+ ) {
102
+ return base;
103
+ }
104
+
105
+ const merged = {
106
+ ...base,
107
+ ...(overrides.primaryColor && { primaryColor: overrides.primaryColor }),
108
+ ...(overrides.radius && { defaultRadius: overrides.radius }),
109
+ ...(overrides.fontFamily && { fontFamily: overrides.fontFamily }),
110
+ ...(overrides.scale &&
111
+ overrides.scale !== "md" && {
112
+ scale: ThemeProvider.SCALE_VALUES[overrides.scale] ?? 1,
113
+ }),
114
+ };
115
+
116
+ if (overrides.fontSize && overrides.fontSize !== "md") {
117
+ const multiplier =
118
+ ThemeProvider.FONT_SIZE_MULTIPLIERS[overrides.fontSize] ?? 1;
119
+ const baseSizes =
120
+ (base.fontSizes as Record<string, string> | undefined) ??
121
+ ThemeProvider.DEFAULT_FONT_SIZES;
122
+ merged.fontSizes = Object.fromEntries(
123
+ Object.entries(baseSizes).map(([key, val]) => [
124
+ key,
125
+ `${(Number.parseFloat(String(val)) * multiplier).toFixed(4)}rem`,
126
+ ]),
127
+ ) as typeof merged.fontSizes;
128
+ }
129
+
130
+ return merged;
131
+ }
132
+
133
+ public setThemeOverrides(overrides: AlephaThemeOverrides) {
134
+ this.overridesCookie.set(overrides);
135
+ this.alepha.store.set(alephaThemeOverridesAtom, overrides);
136
+
137
+ if (!this.alepha.isBrowser()) {
138
+ return;
139
+ }
140
+
141
+ this.alepha.inject(BrowserHeadProvider).refreshGlobalHead();
142
+ }
143
+
144
+ public getThemeOverrides(): AlephaThemeOverrides {
145
+ try {
146
+ return (
147
+ this.overridesCookie.get() ??
148
+ this.alepha.store.get(alephaThemeOverridesAtom) ??
149
+ {}
150
+ );
151
+ } catch {
152
+ return this.alepha.store.get(alephaThemeOverridesAtom) ?? {};
153
+ }
154
+ }
155
+
156
+ public resetThemeOverrides() {
157
+ this.setThemeOverrides({});
58
158
  }
59
159
 
60
160
  protected getThemeIndex() {
@@ -73,15 +73,22 @@ export class DialogService {
73
73
  */
74
74
  public alert(options?: AlertDialogOptions): Promise<void> {
75
75
  return new Promise((resolve) => {
76
+ let resolved = false;
77
+ const done = () => {
78
+ if (resolved) return;
79
+ resolved = true;
80
+ resolve();
81
+ };
76
82
  const modalId = this.open({
77
83
  ...options,
78
84
  title: options?.title || "Alert",
85
+ onClose: done,
79
86
  content: (
80
87
  <AlertDialog
81
88
  options={options}
82
89
  onClose={() => {
83
90
  this.close(modalId);
84
- resolve();
91
+ done();
85
92
  }}
86
93
  />
87
94
  ),
@@ -94,17 +101,24 @@ export class DialogService {
94
101
  */
95
102
  public confirm(options?: ConfirmDialogOptions): Promise<boolean> {
96
103
  return new Promise((resolve) => {
104
+ let resolved = false;
105
+ const done = (confirmed: boolean) => {
106
+ if (resolved) return;
107
+ resolved = true;
108
+ resolve(confirmed);
109
+ };
97
110
  const modalId = this.open({
98
111
  ...options,
99
112
  title: options?.title || "Confirm",
100
113
  closeOnClickOutside: false,
101
114
  closeOnEscape: false,
115
+ onClose: () => done(false),
102
116
  content: (
103
117
  <ConfirmDialog
104
118
  options={options}
105
119
  onConfirm={(confirmed) => {
106
120
  this.close(modalId);
107
- resolve(confirmed);
121
+ done(confirmed);
108
122
  }}
109
123
  />
110
124
  ),
@@ -117,17 +131,24 @@ export class DialogService {
117
131
  */
118
132
  public prompt(options?: PromptDialogOptions): Promise<string | null> {
119
133
  return new Promise((resolve) => {
134
+ let resolved = false;
135
+ const done = (value: string | null) => {
136
+ if (resolved) return;
137
+ resolved = true;
138
+ resolve(value);
139
+ };
120
140
  const modalId = this.open({
121
141
  ...options,
122
142
  title: options?.title || "Input",
123
143
  closeOnClickOutside: false,
124
144
  closeOnEscape: false,
145
+ onClose: () => done(null),
125
146
  content: (
126
147
  <PromptDialog
127
148
  options={options}
128
149
  onSubmit={(value) => {
129
150
  this.close(modalId);
130
- resolve(value);
151
+ done(value);
131
152
  }}
132
153
  />
133
154
  ),
@@ -8,9 +8,9 @@
8
8
  @import "./json/components/JsonViewer.css";
9
9
 
10
10
  :root {
11
- --alepha-background-light: var(--mantine-color-gray-1);
12
- --alepha-background-dark: var(--mantine-color-dark-9);
13
- --alepha-background: var(--alepha-background-light);
11
+ --alepha-ground-light: var(--mantine-color-gray-1);
12
+ --alepha-ground-dark: var(--mantine-color-dark-9);
13
+ --alepha-ground: var(--alepha-ground-light);
14
14
 
15
15
  --alepha-surface-light: var(--mantine-color-gray-0);
16
16
  --alepha-surface-dark: var(--mantine-color-dark-8);
@@ -31,32 +31,46 @@
31
31
  --alepha-text: var(--alepha-text-light);
32
32
  }
33
33
 
34
- /*#root {*/
35
- /* display: flex;*/
36
- /* background-color: var(--alepha-background);*/
37
- /* color: var(--alepha-text);*/
38
- /* min-height: 100dvh;*/
39
- /* flex-direction: column;*/
40
- /*}*/
41
-
42
34
  /* ------------------------------------------------------------------------------------------------------------------ */
43
35
 
44
36
  [data-mantine-color-scheme="dark"] {
45
37
  --alepha-surface: var(--alepha-surface-dark);
46
38
  --alepha-elevated: var(--alepha-elevated-dark);
47
39
  --alepha-elevated-hover: var(--alepha-elevated-hover-dark);
48
- --alepha-background: var(--alepha-background-dark);
40
+ --alepha-ground: var(--alepha-ground-dark);
49
41
  --alepha-text: var(--alepha-text-dark);
50
42
  }
51
43
 
52
44
  /* ------------------------------------------------------------------------------------------------------------------ */
53
45
 
46
+ .shadow-xs {
47
+ box-shadow: var(--mantine-shadow-xs);
48
+ }
49
+
50
+ .shadow-sm {
51
+ box-shadow: var(--mantine-shadow-sm);
52
+ }
53
+
54
+ .shadow-md {
55
+ box-shadow: var(--mantine-shadow-md);
56
+ }
57
+
58
+ .shadow-lg {
59
+ box-shadow: var(--mantine-shadow-lg);
60
+ }
61
+
62
+ .shadow-xl {
63
+ box-shadow: var(--mantine-shadow-xl);
64
+ }
65
+
54
66
  .overflow-auto {
55
67
  overflow: auto;
56
68
  scrollbar-color: var(--alepha-text-muted) transparent;
57
69
  scrollbar-width: thin;
58
70
  }
59
71
 
72
+ /* ------------------------------------------------------------------------------------------------------------------ */
73
+
60
74
  /* Sidebar scroll area - subtle scrollbar that appears on hover */
61
75
  .alepha-sidebar-scroll {
62
76
  overflow-y: auto;
@@ -97,20 +111,19 @@
97
111
  }
98
112
 
99
113
  /* ------------------------------------------------------------------------------------------------------------------ */
100
- /* Sidebar Transitions */
101
-
102
- .alepha-sidebar-navbar {
103
- transition: width 0.2s ease-in-out;
114
+ /* our custom "minimal" variant for <Button/> - from Blueprint */
115
+ .mantine-Button-root[data-variant="minimal"] {
116
+ background-color: transparent;
117
+ color: var(--mantine-color-text);
104
118
  }
105
119
 
106
- .alepha-sidebar-main {
107
- transition: padding-left 0.2s ease-in-out;
120
+ .mantine-Button-root[data-variant="minimal"]:hover {
121
+ /* imitate the hover effect of <Table/> rows */
122
+ background-color: light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.1));
108
123
  }
109
124
 
110
125
  /* ------------------------------------------------------------------------------------------------------------------ */
111
- /* Modal Customizations */
112
126
 
113
- /* Custom modal scale animation */
114
127
  @keyframes modalScaleIn {
115
128
  from {
116
129
  opacity: 0;
@@ -76,7 +76,7 @@ const ColumnPicker = <T extends object, Filters extends TObject>({
76
76
  <Popover.Target>
77
77
  <div>
78
78
  <ActionButton
79
- variant="subtle"
79
+ variant={"minimal"}
80
80
  icon={IconColumns}
81
81
  onClick={() => setOpened((o) => !o)}
82
82
  />
@@ -104,14 +104,14 @@ const ColumnPicker = <T extends object, Filters extends TObject>({
104
104
  <Flex gap={4}>
105
105
  <ActionButton
106
106
  size="compact-xs"
107
- variant="subtle"
107
+ variant={"minimal"}
108
108
  onClick={handleShowAll}
109
109
  >
110
110
  All
111
111
  </ActionButton>
112
112
  <ActionButton
113
113
  size="compact-xs"
114
- variant="subtle"
114
+ variant={"minimal"}
115
115
  onClick={handleDefault}
116
116
  >
117
117
  Default