@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
@@ -1,4 +1,4 @@
1
- import { DataTable, Text } from "@alepha/ui";
1
+ import { DataTable, Text, useDialog } from "@alepha/ui";
2
2
  import { Badge, Code, Flex, Paper } from "@mantine/core";
3
3
  import {
4
4
  IconDownload,
@@ -117,6 +117,259 @@ const showcaseSchema = t.object({
117
117
  }),
118
118
  });
119
119
 
120
+ interface DataTablePreviewProps {
121
+ withCheckbox: boolean;
122
+ withExport: boolean;
123
+ withPanel: boolean;
124
+ withDrawer: boolean;
125
+ defaultSize: number;
126
+ }
127
+
128
+ const DataTablePreview = (props: DataTablePreviewProps) => {
129
+ const dialog = useDialog();
130
+
131
+ return (
132
+ <DataTable<User, typeof filters>
133
+ key={JSON.stringify(props)}
134
+ filters={filters}
135
+ defaultFilters={["search", "role"]}
136
+ submitOnInit
137
+ defaultSize={props.defaultSize}
138
+ withCheckbox={props.withCheckbox}
139
+ withExport={props.withExport}
140
+ getItemKey={(u) => String(u.id)}
141
+ onFilterChange={(key, _value, form) => {
142
+ if (key === "role" || key === "status") {
143
+ return form.submit();
144
+ }
145
+ }}
146
+ typeFormProps={{
147
+ skipSubmitButton: true,
148
+ columns: 3,
149
+ }}
150
+ items={async (params) => {
151
+ let filtered = [...sampleUsers];
152
+ if (params.search) {
153
+ const s = params.search.toLowerCase();
154
+ filtered = filtered.filter(
155
+ (u) =>
156
+ u.name.toLowerCase().includes(s) ||
157
+ u.email.toLowerCase().includes(s),
158
+ );
159
+ }
160
+ if (params.role) {
161
+ filtered = filtered.filter((u) => u.role === params.role);
162
+ }
163
+ if (params.status) {
164
+ filtered = filtered.filter((u) => u.status === params.status);
165
+ }
166
+ const start = params.page * params.size;
167
+ const content = filtered.slice(start, start + params.size);
168
+ return {
169
+ content,
170
+ page: {
171
+ totalElements: filtered.length,
172
+ totalPages: Math.ceil(filtered.length / params.size),
173
+ },
174
+ };
175
+ }}
176
+ actions={[
177
+ {
178
+ tooltip: "Add User",
179
+ icon: IconPlus,
180
+ variant: "light",
181
+ size: "xs",
182
+ onClick: () => dialog.alert({ message: "Add user clicked" }),
183
+ },
184
+ ]}
185
+ checkboxActions={[
186
+ {
187
+ label: "Export Selected",
188
+ icon: <IconDownload size={14} />,
189
+ intent: "primary",
190
+ onClick: ({ selectedItems, clearSelection }) => {
191
+ dialog.alert({
192
+ message: `Exporting ${selectedItems.length} users`,
193
+ });
194
+ clearSelection();
195
+ },
196
+ },
197
+ {
198
+ label: "Delete Selected",
199
+ icon: <IconTrash size={14} />,
200
+ intent: "danger",
201
+ onClick: ({ selectedItems, clearSelection }) => {
202
+ dialog.alert({
203
+ message: `Deleting ${selectedItems.length} users`,
204
+ });
205
+ clearSelection();
206
+ },
207
+ },
208
+ ]}
209
+ columns={{
210
+ id: {
211
+ label: "ID",
212
+ value: (u) => <Text size="sm">{u.id}</Text>,
213
+ sortable: true,
214
+ fit: true,
215
+ },
216
+ name: {
217
+ label: "Name",
218
+ value: (u) => (
219
+ <Text size="sm" fw={500}>
220
+ {u.name}
221
+ </Text>
222
+ ),
223
+ sortable: true,
224
+ },
225
+ email: {
226
+ label: "Email",
227
+ value: (u) => (
228
+ <Text size="sm" c="dimmed">
229
+ {u.email}
230
+ </Text>
231
+ ),
232
+ },
233
+ role: {
234
+ label: "Role",
235
+ value: (u) => (
236
+ <Badge
237
+ size="sm"
238
+ color={
239
+ u.role === "admin"
240
+ ? "blue"
241
+ : u.role === "user"
242
+ ? "green"
243
+ : "gray"
244
+ }
245
+ >
246
+ {u.role}
247
+ </Badge>
248
+ ),
249
+ },
250
+ status: {
251
+ label: "Status",
252
+ value: (u) => (
253
+ <Badge
254
+ size="sm"
255
+ color={u.status === "active" ? "green" : "red"}
256
+ variant="light"
257
+ >
258
+ {u.status}
259
+ </Badge>
260
+ ),
261
+ },
262
+ notes: {
263
+ label: "Notes",
264
+ defaultHidden: true,
265
+ value: (u) => (
266
+ <Text size="xs" c="dimmed" lineClamp={1}>
267
+ {u.notes ?? "—"}
268
+ </Text>
269
+ ),
270
+ },
271
+ }}
272
+ rowActions={(u) => [
273
+ {
274
+ label: "Edit",
275
+ icon: IconEdit,
276
+ color: "blue",
277
+ onClick: () => dialog.alert({ message: `Edit ${u.name}` }),
278
+ },
279
+ {
280
+ label: "Delete",
281
+ icon: IconTrash,
282
+ color: "red",
283
+ onClick: () => dialog.alert({ message: `Delete ${u.name}` }),
284
+ visible: u.role !== "admin",
285
+ },
286
+ ]}
287
+ panel={
288
+ props.withPanel
289
+ ? {
290
+ can: (u) => Boolean(u.notes),
291
+ render: (u) => (
292
+ <Flex direction="column" gap="xs" p="sm">
293
+ <Text size="xs" c="dimmed" tt="uppercase" fw={600}>
294
+ Notes
295
+ </Text>
296
+ <Text size="sm">{u.notes}</Text>
297
+ </Flex>
298
+ ),
299
+ }
300
+ : undefined
301
+ }
302
+ drawer={
303
+ props.withDrawer
304
+ ? (u) => (
305
+ <Flex direction="column" gap="md">
306
+ <Text size="lg" fw={600}>
307
+ {u.name}
308
+ </Text>
309
+ <Paper p="sm" radius="md" withBorder>
310
+ <Flex direction="column" gap="xs">
311
+ <Flex gap="xs">
312
+ <Text size="sm" c="dimmed" w={60}>
313
+ Email
314
+ </Text>
315
+ <Text size="sm">{u.email}</Text>
316
+ </Flex>
317
+ <Flex gap="xs">
318
+ <Text size="sm" c="dimmed" w={60}>
319
+ Role
320
+ </Text>
321
+ <Badge
322
+ size="sm"
323
+ color={
324
+ u.role === "admin"
325
+ ? "blue"
326
+ : u.role === "user"
327
+ ? "green"
328
+ : "gray"
329
+ }
330
+ >
331
+ {u.role}
332
+ </Badge>
333
+ </Flex>
334
+ <Flex gap="xs">
335
+ <Text size="sm" c="dimmed" w={60}>
336
+ Status
337
+ </Text>
338
+ <Badge
339
+ size="sm"
340
+ color={u.status === "active" ? "green" : "red"}
341
+ variant="light"
342
+ >
343
+ {u.status}
344
+ </Badge>
345
+ </Flex>
346
+ </Flex>
347
+ </Paper>
348
+ {u.notes && (
349
+ <Paper p="sm" radius="md" withBorder>
350
+ <Text size="sm" fw={600} mb="xs">
351
+ Notes
352
+ </Text>
353
+ <Text size="sm">{u.notes}</Text>
354
+ </Paper>
355
+ )}
356
+ <Paper p="sm" radius="md" withBorder>
357
+ <Text size="sm" fw={600} mb="xs">
358
+ Raw Data
359
+ </Text>
360
+ <Code block>{JSON.stringify(u, null, 2)}</Code>
361
+ </Paper>
362
+ </Flex>
363
+ )
364
+ : undefined
365
+ }
366
+ tableProps={{
367
+ highlightOnHover: true,
368
+ }}
369
+ />
370
+ );
371
+ };
372
+
120
373
  const DemoDataTable = () => {
121
374
  return (
122
375
  <Showcase
@@ -131,246 +384,7 @@ const DemoDataTable = () => {
131
384
  }}
132
385
  columns={1}
133
386
  >
134
- {(props) => (
135
- <DataTable<User, typeof filters>
136
- key={JSON.stringify(props)}
137
- filters={filters}
138
- defaultFilters={["search", "role"]}
139
- submitOnInit
140
- defaultSize={props.defaultSize}
141
- withCheckbox={props.withCheckbox}
142
- withExport={props.withExport}
143
- getItemKey={(u) => String(u.id)}
144
- onFilterChange={(key, _value, form) => {
145
- if (key === "role" || key === "status") {
146
- return form.submit();
147
- }
148
- }}
149
- typeFormProps={{
150
- skipSubmitButton: true,
151
- columns: 3,
152
- }}
153
- items={async (params) => {
154
- let filtered = [...sampleUsers];
155
- if (params.search) {
156
- const s = params.search.toLowerCase();
157
- filtered = filtered.filter(
158
- (u) =>
159
- u.name.toLowerCase().includes(s) ||
160
- u.email.toLowerCase().includes(s),
161
- );
162
- }
163
- if (params.role) {
164
- filtered = filtered.filter((u) => u.role === params.role);
165
- }
166
- if (params.status) {
167
- filtered = filtered.filter((u) => u.status === params.status);
168
- }
169
- const start = params.page * params.size;
170
- const content = filtered.slice(start, start + params.size);
171
- return {
172
- content,
173
- page: {
174
- totalElements: filtered.length,
175
- totalPages: Math.ceil(filtered.length / params.size),
176
- },
177
- };
178
- }}
179
- actions={[
180
- {
181
- tooltip: "Add User",
182
- icon: IconPlus,
183
- variant: "light",
184
- size: "xs",
185
- onClick: () => alert("Add user clicked"),
186
- },
187
- ]}
188
- checkboxActions={[
189
- {
190
- label: "Export Selected",
191
- icon: <IconDownload size={14} />,
192
- intent: "primary",
193
- onClick: ({ selectedItems, clearSelection }) => {
194
- alert(`Exporting ${selectedItems.length} users`);
195
- clearSelection();
196
- },
197
- },
198
- {
199
- label: "Delete Selected",
200
- icon: <IconTrash size={14} />,
201
- intent: "danger",
202
- onClick: ({ selectedItems, clearSelection }) => {
203
- alert(`Deleting ${selectedItems.length} users`);
204
- clearSelection();
205
- },
206
- },
207
- ]}
208
- columns={{
209
- id: {
210
- label: "ID",
211
- value: (u) => <Text size="sm">{u.id}</Text>,
212
- sortable: true,
213
- fit: true,
214
- },
215
- name: {
216
- label: "Name",
217
- value: (u) => (
218
- <Text size="sm" fw={500}>
219
- {u.name}
220
- </Text>
221
- ),
222
- sortable: true,
223
- },
224
- email: {
225
- label: "Email",
226
- value: (u) => (
227
- <Text size="sm" c="dimmed">
228
- {u.email}
229
- </Text>
230
- ),
231
- },
232
- role: {
233
- label: "Role",
234
- value: (u) => (
235
- <Badge
236
- size="sm"
237
- color={
238
- u.role === "admin"
239
- ? "blue"
240
- : u.role === "user"
241
- ? "green"
242
- : "gray"
243
- }
244
- >
245
- {u.role}
246
- </Badge>
247
- ),
248
- },
249
- status: {
250
- label: "Status",
251
- value: (u) => (
252
- <Badge
253
- size="sm"
254
- color={u.status === "active" ? "green" : "red"}
255
- variant="light"
256
- >
257
- {u.status}
258
- </Badge>
259
- ),
260
- },
261
- notes: {
262
- label: "Notes",
263
- defaultHidden: true,
264
- value: (u) => (
265
- <Text size="xs" c="dimmed" lineClamp={1}>
266
- {u.notes ?? "—"}
267
- </Text>
268
- ),
269
- },
270
- actions: {
271
- label: "",
272
- fit: true,
273
- actions: (u) => [
274
- {
275
- tooltip: "Edit",
276
- icon: IconEdit,
277
- color: "blue",
278
- onClick: () => alert(`Edit ${u.name}`),
279
- },
280
- {
281
- tooltip: "Delete",
282
- icon: IconTrash,
283
- color: "red",
284
- onClick: () => alert(`Delete ${u.name}`),
285
- visible: u.role !== "admin",
286
- },
287
- ],
288
- },
289
- }}
290
- panel={
291
- props.withPanel
292
- ? {
293
- can: (u) => Boolean(u.notes),
294
- render: (u) => (
295
- <Flex direction="column" gap="xs" p="sm">
296
- <Text size="xs" c="dimmed" tt="uppercase" fw={600}>
297
- Notes
298
- </Text>
299
- <Text size="sm">{u.notes}</Text>
300
- </Flex>
301
- ),
302
- }
303
- : undefined
304
- }
305
- drawer={
306
- props.withDrawer
307
- ? (u) => (
308
- <Flex direction="column" gap="md">
309
- <Text size="lg" fw={600}>
310
- {u.name}
311
- </Text>
312
- <Paper p="sm" radius="md" withBorder>
313
- <Flex direction="column" gap="xs">
314
- <Flex gap="xs">
315
- <Text size="sm" c="dimmed" w={60}>
316
- Email
317
- </Text>
318
- <Text size="sm">{u.email}</Text>
319
- </Flex>
320
- <Flex gap="xs">
321
- <Text size="sm" c="dimmed" w={60}>
322
- Role
323
- </Text>
324
- <Badge
325
- size="sm"
326
- color={
327
- u.role === "admin"
328
- ? "blue"
329
- : u.role === "user"
330
- ? "green"
331
- : "gray"
332
- }
333
- >
334
- {u.role}
335
- </Badge>
336
- </Flex>
337
- <Flex gap="xs">
338
- <Text size="sm" c="dimmed" w={60}>
339
- Status
340
- </Text>
341
- <Badge
342
- size="sm"
343
- color={u.status === "active" ? "green" : "red"}
344
- variant="light"
345
- >
346
- {u.status}
347
- </Badge>
348
- </Flex>
349
- </Flex>
350
- </Paper>
351
- {u.notes && (
352
- <Paper p="sm" radius="md" withBorder>
353
- <Text size="sm" fw={600} mb="xs">
354
- Notes
355
- </Text>
356
- <Text size="sm">{u.notes}</Text>
357
- </Paper>
358
- )}
359
- <Paper p="sm" radius="md" withBorder>
360
- <Text size="sm" fw={600} mb="xs">
361
- Raw Data
362
- </Text>
363
- <Code block>{JSON.stringify(u, null, 2)}</Code>
364
- </Paper>
365
- </Flex>
366
- )
367
- : undefined
368
- }
369
- tableProps={{
370
- highlightOnHover: true,
371
- }}
372
- />
373
- )}
387
+ {(props) => <DataTablePreview {...(props as DataTablePreviewProps)} />}
374
388
  </Showcase>
375
389
  );
376
390
  };
@@ -1,4 +1,4 @@
1
- import { TypeForm } from "@alepha/ui";
1
+ import { TypeForm, useDialog } from "@alepha/ui";
2
2
  import { t } from "alepha";
3
3
  import { useForm } from "alepha/react/form";
4
4
  import Showcase from "../shared/Showcase.tsx";
@@ -32,11 +32,16 @@ const showcaseSchema = t.object({
32
32
  });
33
33
 
34
34
  const DemoTypeForm = () => {
35
+ const dialog = useDialog();
36
+
35
37
  const form = useForm(
36
38
  {
37
39
  schema: formSchema,
38
40
  handler: (values) => {
39
- alert(JSON.stringify(values, null, 2));
41
+ dialog.alert({
42
+ title: "Submitted",
43
+ message: JSON.stringify(values, null, 2),
44
+ });
40
45
  },
41
46
  },
42
47
  [],
@@ -1,5 +1,5 @@
1
+ import { Flex } from "@alepha/ui";
1
2
  import {
2
- Flex,
3
3
  type FlexProps,
4
4
  Portal,
5
5
  SegmentedControl,
@@ -12,7 +12,6 @@ import {
12
12
  IconDeviceTablet,
13
13
  } from "@tabler/icons-react";
14
14
  import { type ReactNode, useState } from "react";
15
-
16
15
  export interface MacWindowProps {
17
16
  children: ReactNode;
18
17
  title?: string;
@@ -127,13 +126,7 @@ const MacWindow = ({ children, title, containerProps }: MacWindowProps) => {
127
126
  );
128
127
 
129
128
  const body = (
130
- <Flex
131
- direction={"column"}
132
- flex={1}
133
- p="md"
134
- style={{ overflow: "auto" }}
135
- {...containerProps}
136
- >
129
+ <Flex overflow direction={"column"} flex={1} p="md" {...containerProps}>
137
130
  {children}
138
131
  </Flex>
139
132
  );
@@ -159,14 +152,15 @@ const MacWindow = ({ children, title, containerProps }: MacWindowProps) => {
159
152
 
160
153
  return (
161
154
  <Flex
162
- direction="column"
155
+ col
156
+ overflow
157
+ h={"100%"}
163
158
  bdrs={"md"}
164
159
  style={{
165
160
  width: DEVICE_WIDTHS[device],
166
161
  maxWidth: "100%",
167
162
  border: "1px solid var(--mantine-color-default-border)",
168
163
  overflow: "hidden",
169
- background: "var(--mantine-color-body)",
170
164
  boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
171
165
  transition: "width 0.3s ease",
172
166
  }}
@@ -1,5 +1,4 @@
1
- import { TypeForm, ui } from "@alepha/ui";
2
- import { Card, Flex, Text } from "@mantine/core";
1
+ import { Flex, Text, TypeForm } from "@alepha/ui";
3
2
  import type { Static, TObject } from "alepha";
4
3
  import { useForm } from "alepha/react/form";
5
4
  import { type ReactNode, useState } from "react";
@@ -36,14 +35,16 @@ export interface ShowcaseProps<T extends TObject> {
36
35
  * Showcase component for demonstrating UI components with interactive props configuration.
37
36
  * Uses TypeForm to render a form based on the props schema and displays the component preview.
38
37
  */
39
- const Showcase = <T extends TObject>({
40
- title,
41
- schema,
42
- initialValues,
43
- columns = 3,
44
- children,
45
- windowProps,
46
- }: ShowcaseProps<T>) => {
38
+ const Showcase = <T extends TObject>(props: ShowcaseProps<T>) => {
39
+ const {
40
+ title,
41
+ schema,
42
+ initialValues,
43
+ columns = 3,
44
+ children,
45
+ windowProps,
46
+ } = props;
47
+
47
48
  const [values, setValues] = useState<Record<string, any>>(
48
49
  initialValues ?? {},
49
50
  );
@@ -63,43 +64,28 @@ const Showcase = <T extends TObject>({
63
64
  );
64
65
 
65
66
  return (
66
- <Flex flex={1} px={"md"} gap={"md"}>
67
- <Flex
68
- flex={1}
69
- bg={ui.colors.background}
70
- h={"100%"}
71
- justify="center"
72
- align="flex-start"
73
- style={{ flex: 1, minWidth: 0, overflow: "auto" }}
74
- >
67
+ <Flex fill p={"md"} pt={0} gap={"md"} overflow>
68
+ <Flex fill overflow ground h={"100%"} justify="center" align="flex-start">
75
69
  <MacWindow title={title} {...windowProps}>
76
70
  {children(values as Static<T>)}
77
71
  </MacWindow>
78
72
  </Flex>
79
73
 
80
- <Flex
81
- h={"100%"}
82
- style={{
83
- flex: "0 0 300px",
84
- overflow: "auto",
85
- }}
86
- >
87
- <Card shadow="sm" radius="md">
88
- <Card.Section withBorder py={"xs"} inheritPadding>
89
- <Text size={"xs"} fw={500}>
90
- {title} Props
91
- </Text>
92
- </Card.Section>
93
-
94
- <Card.Section p={"sm"}>
95
- <TypeForm
96
- form={form}
97
- columns={{ base: 1, xs: 1, sm: 1, md: 1, lg: 1, xl: 1 }}
98
- skipSubmitButton
99
- skipFormElement
100
- />
101
- </Card.Section>
102
- </Card>
74
+ <Flex h={"100%"} col surface bordered rounded shadowed w={300}>
75
+ <Flex p={"xs"} borderedBottom>
76
+ <Text size={"xs"} fw={500}>
77
+ {title} Props
78
+ </Text>
79
+ </Flex>
80
+ <Flex px={"md"} py={"xs"}>
81
+ <TypeForm
82
+ fill
83
+ form={form}
84
+ columns={{ base: 1, xs: 1, sm: 1, md: 1, lg: 1, xl: 1 }}
85
+ skipSubmitButton
86
+ skipFormElement
87
+ />
88
+ </Flex>
103
89
  </Flex>
104
90
  </Flex>
105
91
  );