@alepha/ui 0.17.2 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/admin/{AdminApiKeys-CF_qOO3u.js → AdminApiKeys-C-6_Q-lH.js} +56 -192
  2. package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +1 -0
  3. package/dist/admin/{AdminAudits-BQno3hZG.js → AdminAudits-Bgbf04hO.js} +25 -61
  4. package/dist/admin/AdminAudits-Bgbf04hO.js.map +1 -0
  5. package/dist/admin/{AdminFiles-kvuUaASF.js → AdminFiles-B9a7G3cY.js} +6 -8
  6. package/dist/admin/AdminFiles-B9a7G3cY.js.map +1 -0
  7. package/dist/admin/{AdminJobDashboard-CrPxp0W1.js → AdminJobDashboard-DaTwf5OY.js} +55 -186
  8. package/dist/admin/AdminJobDashboard-DaTwf5OY.js.map +1 -0
  9. package/dist/admin/{AdminJobExecutions-D-b4Zt7W.js → AdminJobExecutions-B9cek5dl.js} +132 -168
  10. package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +1 -0
  11. package/dist/admin/{AdminJobRegistry-CNX5cpDx.js → AdminJobRegistry-DFgV3oqx.js} +60 -83
  12. package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +1 -0
  13. package/dist/admin/AdminLayout-DHsvWxVB.js +70 -0
  14. package/dist/admin/AdminLayout-DHsvWxVB.js.map +1 -0
  15. package/dist/admin/{AdminParameters-DCGbpt2c.js → AdminParameters-DHw9ATgl.js} +53 -53
  16. package/dist/admin/AdminParameters-DHw9ATgl.js.map +1 -0
  17. package/dist/admin/{AdminSessions-DyhW6RZv.js → AdminSessions-BhGJPI3z.js} +11 -18
  18. package/dist/admin/AdminSessions-BhGJPI3z.js.map +1 -0
  19. package/dist/admin/{AdminUserLayout-CrBj4UuI.js → AdminUserLayout-BdC4Te8m.js} +112 -151
  20. package/dist/admin/AdminUserLayout-BdC4Te8m.js.map +1 -0
  21. package/dist/admin/AdminUserProfile-DAt23fqY.js +69 -0
  22. package/dist/admin/AdminUserProfile-DAt23fqY.js.map +1 -0
  23. package/dist/admin/AdminUserSessions-1uzcx02z.js +109 -0
  24. package/dist/admin/AdminUserSessions-1uzcx02z.js.map +1 -0
  25. package/dist/admin/AdminUsers-C85c3eiQ.js +121 -0
  26. package/dist/admin/AdminUsers-C85c3eiQ.js.map +1 -0
  27. package/dist/{auth/AuthLayout-CdJcrPs4.js → admin/AuthLayout-DFJvCvzw.js} +3 -3
  28. package/dist/{auth/AuthLayout-CdJcrPs4.js.map → admin/AuthLayout-DFJvCvzw.js.map} +1 -1
  29. package/dist/{auth/IconGoogle-Bm18QD2q.js → admin/IconGoogle-CSQLPYwX.js} +1 -1
  30. package/dist/{auth/IconGoogle-Bm18QD2q.js.map → admin/IconGoogle-CSQLPYwX.js.map} +1 -1
  31. package/dist/{demo/DemoLogin-DjJ9314c.js → admin/Login-BGheURrg.js} +15 -129
  32. package/dist/{auth/Login-BS_FYTy0.js.map → admin/Login-BGheURrg.js.map} +1 -1
  33. package/dist/{auth/Profile-CjDsW378.js → admin/Profile-B-c9pCPf.js} +5 -5
  34. package/dist/{auth/Profile-CjDsW378.js.map → admin/Profile-B-c9pCPf.js.map} +1 -1
  35. package/dist/{demo/DemoRegister-DzkJ5M83.js → admin/Register-Cs10l8vX.js} +20 -146
  36. package/dist/{auth/Register-C5eqzAaD.js.map → admin/Register-Cs10l8vX.js.map} +1 -1
  37. package/dist/{demo/DemoResetPassword-DWh4_BpQ.js → admin/ResetPassword-BwDdfkGH.js} +20 -82
  38. package/dist/{auth/ResetPassword-XifinVao.js.map → admin/ResetPassword-BwDdfkGH.js.map} +1 -1
  39. package/dist/{demo/DemoVerifyEmail-DbU_tCj8.js → admin/VerifyEmail-DfXHAiQl.js} +15 -32
  40. package/dist/{auth/VerifyEmail-DTgbeJOO.js.map → admin/VerifyEmail-DfXHAiQl.js.map} +1 -1
  41. package/dist/admin/auth-Dr0Cf8I7.js +319 -0
  42. package/dist/admin/auth-Dr0Cf8I7.js.map +1 -0
  43. package/dist/admin/core-2xoLiT0o.js +4031 -0
  44. package/dist/admin/core-2xoLiT0o.js.map +1 -0
  45. package/dist/admin/index.d.ts +739 -13
  46. package/dist/admin/index.d.ts.map +1 -1
  47. package/dist/admin/index.js +79 -111
  48. package/dist/admin/index.js.map +1 -1
  49. package/dist/admin/rolldown-runtime-CjeV3_4I.js +18 -0
  50. package/dist/auth/AuthLayout-CAE1pX9s.js +22 -0
  51. package/dist/auth/AuthLayout-CAE1pX9s.js.map +1 -0
  52. package/dist/auth/{Login-BS_FYTy0.js → Login-Denw_UGy.js} +8 -8
  53. package/dist/auth/Login-Denw_UGy.js.map +1 -0
  54. package/dist/auth/Profile-BMX_Ar_s.js +155 -0
  55. package/dist/auth/Profile-BMX_Ar_s.js.map +1 -0
  56. package/dist/auth/{Register-C5eqzAaD.js → Register-6hi_cpfF.js} +8 -8
  57. package/dist/auth/Register-6hi_cpfF.js.map +1 -0
  58. package/dist/auth/{ResetPassword-XifinVao.js → ResetPassword-CqfTk1FI.js} +6 -6
  59. package/dist/auth/ResetPassword-CqfTk1FI.js.map +1 -0
  60. package/dist/auth/{VerifyEmail-DTgbeJOO.js → VerifyEmail-nWiSTMjF.js} +5 -5
  61. package/dist/auth/VerifyEmail-nWiSTMjF.js.map +1 -0
  62. package/dist/auth/core-niW0sFLv.js +2264 -0
  63. package/dist/auth/core-niW0sFLv.js.map +1 -0
  64. package/dist/auth/index.d.ts +336 -8
  65. package/dist/auth/index.d.ts.map +1 -1
  66. package/dist/auth/index.js +18 -22
  67. package/dist/auth/index.js.map +1 -1
  68. package/dist/core/index.d.ts +1033 -843
  69. package/dist/core/index.d.ts.map +1 -1
  70. package/dist/core/index.js +1626 -1354
  71. package/dist/core/index.js.map +1 -1
  72. package/dist/demo/AuthLayout-jLa0aKsI.js +22 -0
  73. package/dist/demo/AuthLayout-jLa0aKsI.js.map +1 -0
  74. package/dist/demo/DemoButton-BmaWZVwf.js +178 -0
  75. package/dist/demo/DemoButton-BmaWZVwf.js.map +1 -0
  76. package/dist/demo/{DemoDataTable-lnBKWBf8.js → DemoDataTable-Z9xyV221.js} +18 -18
  77. package/dist/demo/DemoDataTable-Z9xyV221.js.map +1 -0
  78. package/dist/demo/DemoDialog-4ItHLf9t.js +101 -0
  79. package/dist/demo/DemoDialog-4ItHLf9t.js.map +1 -0
  80. package/dist/demo/DemoFlex-EtVq8QfX.js +105 -0
  81. package/dist/demo/DemoFlex-EtVq8QfX.js.map +1 -0
  82. package/dist/demo/DemoHeading-BS-vGfkI.js +18 -0
  83. package/dist/demo/DemoHeading-BS-vGfkI.js.map +1 -0
  84. package/dist/demo/{DemoHome-CUMZsYaH.js → DemoHome-Clbn8AmS.js} +9 -12
  85. package/dist/demo/DemoHome-Clbn8AmS.js.map +1 -0
  86. package/dist/demo/DemoJsonViewer-DkIX_ky2.js +109 -0
  87. package/dist/demo/DemoJsonViewer-DkIX_ky2.js.map +1 -0
  88. package/dist/demo/DemoLayout-C56xb5EE.js +73 -0
  89. package/dist/demo/DemoLayout-C56xb5EE.js.map +1 -0
  90. package/dist/demo/DemoLogin-BZwpicOS.js +128 -0
  91. package/dist/demo/DemoLogin-BZwpicOS.js.map +1 -0
  92. package/dist/demo/DemoRegister-C7_qc4MJ.js +140 -0
  93. package/dist/demo/DemoRegister-C7_qc4MJ.js.map +1 -0
  94. package/dist/demo/DemoResetPassword-BI1Ct4Dw.js +76 -0
  95. package/dist/demo/DemoResetPassword-BI1Ct4Dw.js.map +1 -0
  96. package/dist/demo/{DemoSidebar-C1csnGhX.js → DemoSidebar-CcBo4ltC.js} +6 -9
  97. package/dist/demo/DemoSidebar-CcBo4ltC.js.map +1 -0
  98. package/dist/demo/DemoText-CzXuUn3g.js +124 -0
  99. package/dist/demo/DemoText-CzXuUn3g.js.map +1 -0
  100. package/dist/demo/DemoToast-BgHDhWrX.js +95 -0
  101. package/dist/demo/DemoToast-BgHDhWrX.js.map +1 -0
  102. package/dist/demo/{DemoTypeForm-CWz6fJrJ.js → DemoTypeForm-DDzWoMSV.js} +4 -4
  103. package/dist/demo/{DemoTypeForm-CWz6fJrJ.js.map → DemoTypeForm-DDzWoMSV.js.map} +1 -1
  104. package/dist/demo/DemoVerifyEmail-C_Irdnov.js +30 -0
  105. package/dist/demo/DemoVerifyEmail-C_Irdnov.js.map +1 -0
  106. package/dist/demo/IconGoogle-CSQLPYwX.js +56 -0
  107. package/dist/demo/IconGoogle-CSQLPYwX.js.map +1 -0
  108. package/dist/demo/Login-hSOU3jZc.js +219 -0
  109. package/dist/demo/Login-hSOU3jZc.js.map +1 -0
  110. package/dist/demo/Profile-CWqti7FB.js +155 -0
  111. package/dist/demo/Profile-CWqti7FB.js.map +1 -0
  112. package/dist/demo/Register-a70LPgs2.js +375 -0
  113. package/dist/demo/Register-a70LPgs2.js.map +1 -0
  114. package/dist/demo/ResetPassword-DWN0lzr5.js +286 -0
  115. package/dist/demo/ResetPassword-DWN0lzr5.js.map +1 -0
  116. package/dist/demo/Showcase-Dq3MISpd.js +232 -0
  117. package/dist/demo/Showcase-Dq3MISpd.js.map +1 -0
  118. package/dist/demo/VerifyEmail-DZWL72K4.js +135 -0
  119. package/dist/demo/VerifyEmail-DZWL72K4.js.map +1 -0
  120. package/dist/demo/auth-d6n3xbug.js +257 -0
  121. package/dist/demo/auth-d6n3xbug.js.map +1 -0
  122. package/dist/demo/core-RCUw1Q-a.js +4217 -0
  123. package/dist/demo/core-RCUw1Q-a.js.map +1 -0
  124. package/dist/demo/index.d.ts +17 -6
  125. package/dist/demo/index.d.ts.map +1 -1
  126. package/dist/demo/index.js +92 -24
  127. package/dist/demo/index.js.map +1 -1
  128. package/dist/demo/rolldown-runtime-CjeV3_4I.js +18 -0
  129. package/package.json +16 -20
  130. package/src/admin/AdminRouter.ts +10 -39
  131. package/src/admin/components/AdminLayout.tsx +42 -10
  132. package/src/admin/components/audits/AdminAudits.tsx +10 -64
  133. package/src/admin/components/files/AdminFiles.tsx +2 -3
  134. package/src/admin/components/jobs/AdminJobDashboard.tsx +36 -142
  135. package/src/admin/components/jobs/AdminJobExecutions.tsx +117 -175
  136. package/src/admin/components/jobs/AdminJobRegistry.tsx +58 -73
  137. package/src/admin/components/keys/AdminApiKeys.tsx +21 -169
  138. package/src/admin/components/parameters/AdminParameters.tsx +4 -4
  139. package/src/admin/components/parameters/ParameterEmptyState.tsx +1 -2
  140. package/src/admin/components/parameters/ParameterHistory.tsx +3 -3
  141. package/src/admin/components/parameters/ParameterTree.tsx +2 -8
  142. package/src/admin/components/parameters/types.ts +3 -3
  143. package/src/admin/components/sessions/AdminSessions.tsx +8 -16
  144. package/src/admin/components/users/AdminUserLayout.tsx +113 -150
  145. package/src/admin/components/users/AdminUserProfile.tsx +50 -0
  146. package/src/admin/components/users/AdminUserSessions.tsx +106 -126
  147. package/src/admin/components/users/AdminUsers.tsx +46 -62
  148. package/src/admin/index.ts +0 -4
  149. package/src/auth/components/buttons/UserButton.tsx +1 -1
  150. package/src/auth/index.ts +0 -4
  151. package/src/core/UiRouter.ts +1 -1
  152. package/src/core/atoms/alephaSidebarAtom.ts +7 -31
  153. package/src/core/components/{layout/AlephaMantineProvider.tsx → AlephaMantineProvider.tsx} +3 -4
  154. package/src/core/components/Flex.tsx +63 -0
  155. package/src/core/components/Heading.tsx +19 -0
  156. package/src/core/components/Text.tsx +140 -0
  157. package/src/core/components/buttons/ActionButton.tsx +12 -1
  158. package/src/core/components/buttons/BurgerButton.tsx +3 -3
  159. package/src/core/components/buttons/LanguageButton.tsx +1 -1
  160. package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -4
  161. package/src/core/components/data/DetailDrawer.tsx +144 -0
  162. package/src/core/components/data/DetailList.tsx +64 -0
  163. package/src/core/components/data/StatCards.tsx +50 -0
  164. package/src/core/components/layout/AppBar.tsx +11 -10
  165. package/src/core/components/layout/Breadcrumb.tsx +8 -8
  166. package/src/core/components/layout/Container.tsx +15 -0
  167. package/src/core/components/layout/DashboardShell.tsx +23 -238
  168. package/src/core/components/layout/Omnibar.tsx +1 -2
  169. package/src/core/components/layout/Sidebar.tsx +103 -71
  170. package/src/core/components/layout/index.ts +65 -0
  171. package/src/core/{components/form → form/components}/Control.tsx +32 -14
  172. package/src/core/{components/form → form/components}/ControlArray.tsx +2 -5
  173. package/src/core/{components/form → form/components}/ControlDate.tsx +1 -4
  174. package/src/core/{components/form → form/components}/ControlNumber.tsx +1 -4
  175. package/src/core/{components/form → form/components}/ControlObject.tsx +1 -4
  176. package/src/core/{components/form → form/components}/ControlQueryBuilder.tsx +7 -7
  177. package/src/core/{components/form → form/components}/ControlSelect.tsx +2 -4
  178. package/src/core/{components/form → form/components}/TypeForm.browser.spec.tsx +22 -64
  179. package/src/core/{components/form → form/components}/TypeForm.tsx +1 -3
  180. package/src/core/form/factories/dialogForm.tsx +31 -0
  181. package/src/core/form/index.ts +23 -0
  182. package/src/core/{utils → form/utils}/parseInput.ts +2 -4
  183. package/src/core/index.ts +43 -51
  184. package/src/core/interfaces/AlephaIntent.ts +6 -0
  185. package/src/core/interfaces/AlephaTheme.ts +0 -1
  186. package/src/core/json/factories/dialogJson.tsx +24 -0
  187. package/src/core/json/index.ts +2 -0
  188. package/src/core/primitives/$ui.ts +17 -0
  189. package/src/core/services/DialogService.tsx +1 -48
  190. package/src/core/styles.css +1 -8
  191. package/src/core/{components/table → table/components}/ColumnPicker.tsx +2 -3
  192. package/src/core/{components/table → table/components}/DataTable.tsx +8 -9
  193. package/src/core/{components/table → table/components}/DataTableFilters.tsx +6 -3
  194. package/src/core/{components/table → table/components}/DataTableToolbar.tsx +4 -5
  195. package/src/core/{components/table → table/components}/FilterPicker.tsx +2 -3
  196. package/src/core/table/index.ts +12 -0
  197. package/src/core/{components/table → table/interfaces}/types.ts +2 -2
  198. package/src/demo/DemoRouter.ts +87 -6
  199. package/src/demo/components/DemoHome.tsx +6 -10
  200. package/src/demo/components/DemoLayout.tsx +38 -8
  201. package/src/demo/components/auth/DemoLogin.tsx +1 -1
  202. package/src/demo/components/auth/DemoRegister.tsx +1 -1
  203. package/src/demo/components/auth/DemoResetPassword.tsx +1 -1
  204. package/src/demo/components/auth/DemoVerifyEmail.tsx +1 -1
  205. package/src/demo/components/core/DemoButton.tsx +160 -0
  206. package/src/demo/components/core/DemoFlex.tsx +101 -0
  207. package/src/demo/components/core/DemoHeading.tsx +13 -0
  208. package/src/demo/components/core/DemoText.tsx +110 -0
  209. package/src/demo/components/json/DemoJsonViewer.tsx +1 -1
  210. package/src/demo/components/layout/DemoDialog.tsx +103 -0
  211. package/src/demo/components/{core → layout}/DemoSidebar.tsx +0 -1
  212. package/src/demo/components/layout/DemoToast.tsx +96 -0
  213. package/src/demo/components/shared/MacWindow.tsx +149 -74
  214. package/src/demo/components/shared/Showcase.tsx +4 -8
  215. package/src/demo/index.ts +1 -4
  216. package/src/demo/primitives/$uiDemo.ts +10 -0
  217. package/dist/admin/AdminApiKeys-CF_qOO3u.js.map +0 -1
  218. package/dist/admin/AdminAudits-BQno3hZG.js.map +0 -1
  219. package/dist/admin/AdminFiles-kvuUaASF.js.map +0 -1
  220. package/dist/admin/AdminJobDashboard-CrPxp0W1.js.map +0 -1
  221. package/dist/admin/AdminJobExecutions-D-b4Zt7W.js.map +0 -1
  222. package/dist/admin/AdminJobRegistry-CNX5cpDx.js.map +0 -1
  223. package/dist/admin/AdminLayout-e-ZP5nWw.js +0 -37
  224. package/dist/admin/AdminLayout-e-ZP5nWw.js.map +0 -1
  225. package/dist/admin/AdminParameters-DCGbpt2c.js.map +0 -1
  226. package/dist/admin/AdminSessions-DyhW6RZv.js.map +0 -1
  227. package/dist/admin/AdminUserAudits-D1GcREEE.js +0 -177
  228. package/dist/admin/AdminUserAudits-D1GcREEE.js.map +0 -1
  229. package/dist/admin/AdminUserCreate-DR8LA0tv.js +0 -104
  230. package/dist/admin/AdminUserCreate-DR8LA0tv.js.map +0 -1
  231. package/dist/admin/AdminUserDetails-CDkZNHQD.js +0 -477
  232. package/dist/admin/AdminUserDetails-CDkZNHQD.js.map +0 -1
  233. package/dist/admin/AdminUserLayout-CrBj4UuI.js.map +0 -1
  234. package/dist/admin/AdminUserSessions-srgFHrqy.js +0 -129
  235. package/dist/admin/AdminUserSessions-srgFHrqy.js.map +0 -1
  236. package/dist/admin/AdminUserSettings-BFuxl-xT.js +0 -167
  237. package/dist/admin/AdminUserSettings-BFuxl-xT.js.map +0 -1
  238. package/dist/admin/AdminUsers-D1pDpiwK.js +0 -118
  239. package/dist/admin/AdminUsers-D1pDpiwK.js.map +0 -1
  240. package/dist/demo/DemoDataTable-lnBKWBf8.js.map +0 -1
  241. package/dist/demo/DemoHome-CUMZsYaH.js.map +0 -1
  242. package/dist/demo/DemoJsonViewer-_uokbGaW.js +0 -429
  243. package/dist/demo/DemoJsonViewer-_uokbGaW.js.map +0 -1
  244. package/dist/demo/DemoLayout-DHVoacE6.js +0 -46
  245. package/dist/demo/DemoLayout-DHVoacE6.js.map +0 -1
  246. package/dist/demo/DemoLogin-DjJ9314c.js.map +0 -1
  247. package/dist/demo/DemoRegister-DzkJ5M83.js.map +0 -1
  248. package/dist/demo/DemoResetPassword-DWh4_BpQ.js.map +0 -1
  249. package/dist/demo/DemoSidebar-C1csnGhX.js.map +0 -1
  250. package/dist/demo/DemoVerifyEmail-DbU_tCj8.js.map +0 -1
  251. package/dist/demo/Showcase-BzoXNlCn.js +0 -185
  252. package/dist/demo/Showcase-BzoXNlCn.js.map +0 -1
  253. package/dist/json/index.d.ts +0 -57
  254. package/dist/json/index.d.ts.map +0 -1
  255. package/dist/json/index.js +0 -325
  256. package/dist/json/index.js.map +0 -1
  257. package/src/admin/components/users/AdminUserAudits.tsx +0 -184
  258. package/src/admin/components/users/AdminUserCreate.tsx +0 -85
  259. package/src/admin/components/users/AdminUserDetails.tsx +0 -431
  260. package/src/admin/components/users/AdminUserSettings.tsx +0 -171
  261. package/src/core/components/data/ErrorViewer.tsx +0 -171
  262. package/src/json/extensions/DialogService.tsx +0 -31
  263. package/src/json/index.ts +0 -18
  264. package/src/json/styles.css +0 -1
  265. /package/dist/{demo → auth}/IconGoogle-Ch1m3Uzl.js +0 -0
  266. /package/dist/{demo → auth}/IconGoogle-Ch1m3Uzl.js.map +0 -0
  267. /package/src/{json → core/json}/components/JsonViewer.css +0 -0
  268. /package/src/{json → core/json}/components/JsonViewer.tsx +0 -0
  269. /package/src/core/{components/table → table/components}/DataTablePagination.tsx +0 -0
  270. /package/src/core/{components/table → table/components}/useTableSelection.ts +0 -0
@@ -1,3 +1,4 @@
1
+ import { ActionButton, type ActionProps, isComponentType } from "@alepha/ui";
1
2
  import { Badge, Divider, Flex } from "@mantine/core";
2
3
  import {
3
4
  IconClipboard,
@@ -7,17 +8,15 @@ import {
7
8
  } from "@tabler/icons-react";
8
9
  import type { TObject } from "alepha";
9
10
  import { isValidElement, type ReactNode, useCallback } from "react";
10
- import { isComponentType } from "../../helpers/isComponentType.ts";
11
- import ActionButton, { type ActionProps } from "../buttons/ActionButton.tsx";
12
- import ColumnPicker from "./ColumnPicker.tsx";
13
- import FilterPicker from "./FilterPicker.tsx";
14
11
  import type {
15
12
  CheckboxAction,
16
13
  CheckboxActionContext,
17
14
  ColumnVisibility,
18
15
  DataTableColumn,
19
16
  FilterVisibility,
20
- } from "./types.ts";
17
+ } from "../interfaces/types.ts";
18
+ import ColumnPicker from "./ColumnPicker.tsx";
19
+ import FilterPicker from "./FilterPicker.tsx";
21
20
 
22
21
  // ─────────────────────────────────────────────────────────────────────────────
23
22
 
@@ -1,10 +1,9 @@
1
+ import { ActionButton, ui } from "@alepha/ui";
1
2
  import { Checkbox, Flex, Popover, ScrollArea, Text } from "@mantine/core";
2
3
  import { IconFilter } from "@tabler/icons-react";
3
4
  import type { TObject } from "alepha";
4
5
  import { useState } from "react";
5
- import { ui } from "../../constants/ui.ts";
6
- import ActionButton from "../buttons/ActionButton.tsx";
7
- import type { FilterVisibility } from "./types.ts";
6
+ import type { FilterVisibility } from "../interfaces/types.ts";
8
7
 
9
8
  export interface FilterPickerProps {
10
9
  schema: TObject;
@@ -0,0 +1,12 @@
1
+ export { default as DataTable } from "./components/DataTable.tsx";
2
+ export type {
3
+ CheckboxAction,
4
+ CheckboxActionContext,
5
+ ColumnVisibility,
6
+ DataTableColumn,
7
+ DataTableColumnContext,
8
+ DataTableProps,
9
+ DataTableSubmitContext,
10
+ FilterVisibility,
11
+ MaybePage,
12
+ } from "./interfaces/types.ts";
@@ -1,3 +1,4 @@
1
+ import type { ActionProps } from "@alepha/ui";
1
2
  import type { DrawerProps, TableProps, TableTrProps } from "@mantine/core";
2
3
  import type {
3
4
  Alepha,
@@ -10,8 +11,7 @@ import type {
10
11
  import type { DurationLike } from "alepha/datetime";
11
12
  import type { FormModel } from "alepha/react/form";
12
13
  import type { ReactNode } from "react";
13
- import type { ActionProps } from "../buttons/ActionButton.tsx";
14
- import type { TypeFormProps } from "../form/TypeForm.tsx";
14
+ import type { TypeFormProps } from "../../form/components/TypeForm.tsx";
15
15
 
16
16
  // -----------------------------------------------------------------------------
17
17
  // Constants
@@ -1,14 +1,21 @@
1
1
  import {
2
+ IconBell,
2
3
  IconBinaryTree,
3
4
  IconBraces,
5
+ IconClick,
4
6
  IconForms,
7
+ IconHeading,
5
8
  IconHome,
6
9
  IconKey,
10
+ IconLayout,
7
11
  IconLayoutSidebar,
12
+ IconLetterT,
8
13
  IconLockQuestion,
9
14
  IconLogin,
10
15
  IconMailCheck,
16
+ IconMessage,
11
17
  IconPackages,
18
+ IconRowInsertBottom,
12
19
  IconTable,
13
20
  IconUserPlus,
14
21
  IconWall,
@@ -24,6 +31,9 @@ export class DemoRouter {
24
31
  children: () => [
25
32
  this.demoHome,
26
33
  this.demoCore,
34
+ this.demoLayoutSection,
35
+ this.demoForm,
36
+ this.demoTable,
27
37
  this.demoJson,
28
38
  this.demoAuth,
29
39
  ],
@@ -41,7 +51,77 @@ export class DemoRouter {
41
51
  icon: IconWall,
42
52
  path: "/core",
43
53
  label: "Core",
44
- children: () => [this.demoTypeForm, this.demoSidebar, this.demoDataTable],
54
+ children: () => [
55
+ this.demoFlex,
56
+ this.demoText,
57
+ this.demoButton,
58
+ this.demoHeading,
59
+ ],
60
+ });
61
+
62
+ demoFlex = $page({
63
+ icon: IconRowInsertBottom,
64
+ path: "/flex",
65
+ label: "Flex",
66
+ lazy: () => import("./components/core/DemoFlex.tsx"),
67
+ });
68
+
69
+ demoText = $page({
70
+ icon: IconLetterT,
71
+ path: "/text",
72
+ label: "Text",
73
+ lazy: () => import("./components/core/DemoText.tsx"),
74
+ });
75
+
76
+ demoHeading = $page({
77
+ icon: IconHeading,
78
+ path: "/heading",
79
+ label: "Heading",
80
+ lazy: () => import("./components/core/DemoHeading.tsx"),
81
+ });
82
+
83
+ demoButton = $page({
84
+ icon: IconClick,
85
+ path: "/button",
86
+ label: "Button",
87
+ lazy: () => import("./components/core/DemoButton.tsx"),
88
+ });
89
+
90
+ // Layout Components
91
+ demoLayoutSection = $page({
92
+ icon: IconLayout,
93
+ path: "/layout",
94
+ label: "Layout",
95
+ children: () => [this.demoSidebar, this.demoDialog, this.demoToast],
96
+ });
97
+
98
+ demoSidebar = $page({
99
+ icon: IconLayoutSidebar,
100
+ path: "/sidebar",
101
+ label: "Sidebar",
102
+ lazy: () => import("./components/layout/DemoSidebar.tsx"),
103
+ });
104
+
105
+ demoDialog = $page({
106
+ icon: IconMessage,
107
+ path: "/dialog",
108
+ label: "Dialog",
109
+ lazy: () => import("./components/layout/DemoDialog.tsx"),
110
+ });
111
+
112
+ demoToast = $page({
113
+ icon: IconBell,
114
+ path: "/toast",
115
+ label: "Toast",
116
+ lazy: () => import("./components/layout/DemoToast.tsx"),
117
+ });
118
+
119
+ // Form Components
120
+ demoForm = $page({
121
+ icon: IconForms,
122
+ path: "/form",
123
+ label: "Form",
124
+ children: () => [this.demoTypeForm],
45
125
  });
46
126
 
47
127
  demoTypeForm = $page({
@@ -51,11 +131,12 @@ export class DemoRouter {
51
131
  lazy: () => import("./components/core/DemoTypeForm.tsx"),
52
132
  });
53
133
 
54
- demoSidebar = $page({
55
- icon: IconLayoutSidebar,
56
- path: "/sidebar",
57
- label: "Sidebar",
58
- lazy: () => import("./components/core/DemoSidebar.tsx"),
134
+ // Table Components
135
+ demoTable = $page({
136
+ icon: IconTable,
137
+ path: "/table",
138
+ label: "Table",
139
+ children: () => [this.demoDataTable],
59
140
  });
60
141
 
61
142
  demoDataTable = $page({
@@ -1,4 +1,4 @@
1
- import { Flex, Text, Title } from "@mantine/core";
1
+ import { Flex, Text } from "@alepha/ui";
2
2
  import { IconBraces } from "@tabler/icons-react";
3
3
 
4
4
  const components = [
@@ -13,15 +13,11 @@ const components = [
13
13
 
14
14
  const DemoHome = () => {
15
15
  return (
16
- <Flex direction="column" gap="xl" p="xl">
17
- <Flex>
18
- <Title order={1} mb="xs">
19
- Component Showcase
20
- </Title>
21
- <Text c="dimmed" size="lg">
22
- Interactive demos and documentation for @alepha/ui components.
23
- </Text>
24
- </Flex>
16
+ <Flex p={"lg"} col>
17
+ <Text title>Component Showcase</Text>
18
+ <Text c="dimmed">
19
+ Interactive demos and documentation for @alepha/ui components.
20
+ </Text>
25
21
  </Flex>
26
22
  );
27
23
  };
@@ -1,9 +1,10 @@
1
1
  import {
2
- ActionButton,
3
2
  AlephaMantineProvider,
3
+ Breadcrumbs,
4
4
  DashboardShell,
5
+ SidebarCollapseButton,
6
+ ui,
5
7
  } from "@alepha/ui";
6
- import { IconArrowLeft } from "@tabler/icons-react";
7
8
  import { useRouter } from "alepha/react/router";
8
9
  import type { DemoRouter } from "../DemoRouter.ts";
9
10
 
@@ -12,13 +13,21 @@ const DemoLayout = () => {
12
13
  return (
13
14
  <AlephaMantineProvider>
14
15
  <DashboardShell
15
- appShellMainProps={{ h: "100%" }}
16
+ appShellProps={{
17
+ withBorder: false,
18
+ bg: ui.colors.background,
19
+ }}
20
+ appShellHeaderProps={{
21
+ bg: "transparent",
22
+ }}
16
23
  appBarProps={{
17
24
  items: [
18
25
  {
19
- element: (
20
- <ActionButton variant="subtle" icon={IconArrowLeft} href="/" />
21
- ),
26
+ type: "burger",
27
+ position: "left",
28
+ },
29
+ {
30
+ element: <Breadcrumbs />,
22
31
  position: "left",
23
32
  },
24
33
  {
@@ -33,11 +42,28 @@ const DemoLayout = () => {
33
42
  {
34
43
  ...router.node("demoCore"),
35
44
  children: [
36
- router.node("demoTypeForm"),
45
+ router.node("demoFlex"),
46
+ router.node("demoText"),
47
+ router.node("demoHeading"),
48
+ router.node("demoButton"),
49
+ ],
50
+ },
51
+ {
52
+ ...router.node("demoLayoutSection"),
53
+ children: [
37
54
  router.node("demoSidebar"),
38
- router.node("demoDataTable"),
55
+ router.node("demoDialog"),
56
+ router.node("demoToast"),
39
57
  ],
40
58
  },
59
+ {
60
+ ...router.node("demoForm"),
61
+ children: [router.node("demoTypeForm")],
62
+ },
63
+ {
64
+ ...router.node("demoTable"),
65
+ children: [router.node("demoDataTable")],
66
+ },
41
67
  {
42
68
  ...router.node("demoJson"),
43
69
  children: [router.node("demoJsonViewer")],
@@ -46,6 +72,10 @@ const DemoLayout = () => {
46
72
  ...router.node("demoAuth"),
47
73
  children: [router.node("demoLogin"), router.node("demoRegister")],
48
74
  },
75
+ {
76
+ position: "bottom",
77
+ element: <SidebarCollapseButton />,
78
+ },
49
79
  ],
50
80
  }}
51
81
  />
@@ -1,6 +1,6 @@
1
+ import { Login } from "@alepha/ui/auth";
1
2
  import { t } from "alepha";
2
3
  import type { RealmConfig } from "alepha/api/users";
3
- import Login from "../../../auth/components/Login.tsx";
4
4
  import Showcase from "../shared/Showcase.tsx";
5
5
 
6
6
  const showcaseSchema = t.object({
@@ -1,6 +1,6 @@
1
+ import { Register } from "@alepha/ui/auth";
1
2
  import { t } from "alepha";
2
3
  import type { RealmConfig } from "alepha/api/users";
3
- import Register from "../../../auth/components/Register.tsx";
4
4
  import Showcase from "../shared/Showcase.tsx";
5
5
 
6
6
  const showcaseSchema = t.object({
@@ -1,6 +1,6 @@
1
+ import { ResetPassword } from "@alepha/ui/auth";
1
2
  import { t } from "alepha";
2
3
  import type { RealmConfig } from "alepha/api/users";
3
- import ResetPassword from "../../../auth/components/ResetPassword.tsx";
4
4
  import Showcase from "../shared/Showcase.tsx";
5
5
 
6
6
  const showcaseSchema = t.object({
@@ -1,5 +1,5 @@
1
+ import { VerifyEmail } from "@alepha/ui/auth";
1
2
  import { t } from "alepha";
2
- import VerifyEmail from "../../../auth/components/VerifyEmail.tsx";
3
3
  import Showcase from "../shared/Showcase.tsx";
4
4
 
5
5
  const showcaseSchema = t.object({
@@ -0,0 +1,160 @@
1
+ import { ActionButton, Flex } from "@alepha/ui";
2
+ import {
3
+ IconCheck,
4
+ IconDownload,
5
+ IconPlus,
6
+ IconSettings,
7
+ IconTrash,
8
+ } from "@tabler/icons-react";
9
+ import { t } from "alepha";
10
+ import Showcase from "../shared/Showcase.tsx";
11
+
12
+ const showcaseSchema = t.object({
13
+ variant: t.enum(
14
+ ["filled", "light", "outline", "subtle", "default", "transparent"],
15
+ {
16
+ title: "variant",
17
+ default: "filled",
18
+ },
19
+ ),
20
+ size: t.enum(["xs", "sm", "md", "lg", "xl"], {
21
+ title: "size",
22
+ default: "md",
23
+ }),
24
+ intent: t.enum(["none", "primary", "success", "danger", "warning", "info"], {
25
+ title: "intent",
26
+ default: "none",
27
+ }),
28
+ disabled: t.boolean({
29
+ title: "disabled",
30
+ default: false,
31
+ $control: { switch: true },
32
+ }),
33
+ loading: t.boolean({
34
+ title: "loading",
35
+ default: false,
36
+ $control: { switch: true },
37
+ }),
38
+ });
39
+
40
+ const DemoActionButton = () => {
41
+ return (
42
+ <Showcase
43
+ title="ActionButton"
44
+ schema={showcaseSchema}
45
+ initialValues={{
46
+ variant: "filled",
47
+ size: "md",
48
+ intent: "none",
49
+ disabled: false,
50
+ loading: false,
51
+ }}
52
+ columns={1}
53
+ >
54
+ {(props) => (
55
+ <Flex col gap="xl" p="md">
56
+ <Flex gap="md" wrap="wrap" centerY>
57
+ <ActionButton
58
+ variant={props.variant}
59
+ size={props.size}
60
+ intent={props.intent}
61
+ disabled={props.disabled}
62
+ loading={props.loading}
63
+ onClick={() => alert("Clicked")}
64
+ >
65
+ Default
66
+ </ActionButton>
67
+ <ActionButton
68
+ variant={props.variant}
69
+ size={props.size}
70
+ intent={props.intent}
71
+ disabled={props.disabled}
72
+ loading={props.loading}
73
+ icon={IconPlus}
74
+ onClick={() => alert("Create")}
75
+ >
76
+ Create
77
+ </ActionButton>
78
+ <ActionButton
79
+ variant={props.variant}
80
+ size={props.size}
81
+ intent={props.intent}
82
+ disabled={props.disabled}
83
+ loading={props.loading}
84
+ icon={IconTrash}
85
+ onClick={() => alert("Delete")}
86
+ />
87
+ </Flex>
88
+
89
+ <Flex gap="md" wrap="wrap" centerY>
90
+ <ActionButton
91
+ variant="filled"
92
+ size={props.size}
93
+ intent="primary"
94
+ icon={IconCheck}
95
+ onClick={() => {}}
96
+ >
97
+ Save
98
+ </ActionButton>
99
+ <ActionButton
100
+ variant="filled"
101
+ size={props.size}
102
+ intent="danger"
103
+ icon={IconTrash}
104
+ confirm="Are you sure?"
105
+ onClick={() => alert("Deleted")}
106
+ >
107
+ Delete
108
+ </ActionButton>
109
+ <ActionButton
110
+ variant="light"
111
+ size={props.size}
112
+ icon={IconDownload}
113
+ onClick={() => {}}
114
+ >
115
+ Export
116
+ </ActionButton>
117
+ <ActionButton
118
+ variant="subtle"
119
+ size={props.size}
120
+ icon={IconSettings}
121
+ onClick={() => {}}
122
+ />
123
+ </Flex>
124
+
125
+ <Flex gap="md" wrap="wrap" centerY>
126
+ <ActionButton
127
+ variant={props.variant}
128
+ size={props.size}
129
+ menu={{
130
+ items: [
131
+ { label: "Edit", icon: <IconSettings size={14} /> },
132
+ { type: "divider" },
133
+ {
134
+ label: "Delete",
135
+ icon: <IconTrash size={14} />,
136
+ color: "red",
137
+ },
138
+ ],
139
+ }}
140
+ onClick={() => {}}
141
+ >
142
+ With Menu
143
+ </ActionButton>
144
+ <ActionButton
145
+ variant={props.variant}
146
+ size={props.size}
147
+ tooltip="This button has a tooltip"
148
+ icon={IconSettings}
149
+ onClick={() => {}}
150
+ >
151
+ With Tooltip
152
+ </ActionButton>
153
+ </Flex>
154
+ </Flex>
155
+ )}
156
+ </Showcase>
157
+ );
158
+ };
159
+
160
+ export default DemoActionButton;
@@ -0,0 +1,101 @@
1
+ import { Flex, Text } from "@alepha/ui";
2
+ import { t } from "alepha";
3
+ import Showcase from "../shared/Showcase.tsx";
4
+
5
+ const showcaseSchema = t.object({
6
+ fill: t.boolean({
7
+ title: "fill",
8
+ default: false,
9
+ $control: { switch: true },
10
+ }),
11
+ col: t.boolean({
12
+ title: "col",
13
+ default: false,
14
+ $control: { switch: true },
15
+ }),
16
+ center: t.boolean({
17
+ title: "center",
18
+ default: false,
19
+ $control: { switch: true },
20
+ }),
21
+ centerX: t.boolean({
22
+ title: "centerX",
23
+ default: false,
24
+ $control: { switch: true },
25
+ }),
26
+ centerY: t.boolean({
27
+ title: "centerY",
28
+ default: false,
29
+ $control: { switch: true },
30
+ }),
31
+ gap: t.enum(["0", "xs", "sm", "md", "lg", "xl"], {
32
+ title: "gap",
33
+ default: "md",
34
+ }),
35
+ wrap: t.enum(["nowrap", "wrap"], {
36
+ title: "wrap",
37
+ default: "nowrap",
38
+ }),
39
+ });
40
+
41
+ const Item = ({ label }: { label: string }) => (
42
+ <Flex
43
+ center
44
+ style={{
45
+ background: "var(--mantine-primary-color-light)",
46
+ border: "1px solid var(--mantine-primary-color-light-hover)",
47
+ borderRadius: 6,
48
+ padding: "8px 16px",
49
+ minWidth: 60,
50
+ minHeight: 40,
51
+ }}
52
+ >
53
+ <Text size="sm" fw={500}>
54
+ {label}
55
+ </Text>
56
+ </Flex>
57
+ );
58
+
59
+ const DemoFlex = () => {
60
+ return (
61
+ <Showcase
62
+ title="Flex"
63
+ schema={showcaseSchema}
64
+ initialValues={{
65
+ fill: false,
66
+ col: false,
67
+ center: false,
68
+ centerX: false,
69
+ centerY: false,
70
+ gap: "md",
71
+ wrap: "nowrap",
72
+ }}
73
+ columns={1}
74
+ windowProps={{}}
75
+ >
76
+ {(props) => (
77
+ <Flex
78
+ fill={props.fill}
79
+ col={props.col}
80
+ center={props.center}
81
+ centerX={props.centerX}
82
+ centerY={props.centerY}
83
+ gap={props.gap === "0" ? 0 : props.gap}
84
+ wrap={props.wrap}
85
+ style={{
86
+ minHeight: 200,
87
+ border: "1px dashed var(--mantine-color-default-border)",
88
+ borderRadius: 8,
89
+ padding: 16,
90
+ }}
91
+ >
92
+ <Item label="A" />
93
+ <Item label="B" />
94
+ <Item label="C" />
95
+ </Flex>
96
+ )}
97
+ </Showcase>
98
+ );
99
+ };
100
+
101
+ export default DemoFlex;
@@ -0,0 +1,13 @@
1
+ import { Heading } from "@alepha/ui";
2
+ import { t } from "alepha";
3
+ import Showcase from "../shared/Showcase.tsx";
4
+
5
+ const DemoHeading = () => {
6
+ return (
7
+ <Showcase title="Flex" schema={t.object({})} initialValues={{}}>
8
+ {(props) => <Heading title={"Hello!"} />}
9
+ </Showcase>
10
+ );
11
+ };
12
+
13
+ export default DemoHeading;