@alepha/ui 0.18.3 → 0.19.0

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 (163) hide show
  1. package/dist/admin/{AdminApiKeys-Dy_k-4Vd.js → AdminApiKeys-Bt1PjO6o.js} +3 -4
  2. package/dist/admin/{AdminApiKeys-Dy_k-4Vd.js.map → AdminApiKeys-Bt1PjO6o.js.map} +1 -1
  3. package/dist/admin/{AdminAudits-CKiFMSSU.js → AdminAudits-C7c1CN4c.js} +3 -4
  4. package/dist/admin/{AdminAudits-CKiFMSSU.js.map → AdminAudits-C7c1CN4c.js.map} +1 -1
  5. package/dist/admin/{AdminDashboard-PhC_dZqo.js → AdminDashboard-C3RXpTp6.js} +3 -4
  6. package/dist/admin/{AdminDashboard-PhC_dZqo.js.map → AdminDashboard-C3RXpTp6.js.map} +1 -1
  7. package/dist/admin/{AdminFiles-DFTjijGp.js → AdminFiles-31ivR6Wq.js} +3 -4
  8. package/dist/admin/{AdminFiles-DFTjijGp.js.map → AdminFiles-31ivR6Wq.js.map} +1 -1
  9. package/dist/admin/{AdminJobDashboard-BL8gGPDp.js → AdminJobDashboard-BABLe7hL.js} +73 -25
  10. package/dist/admin/AdminJobDashboard-BABLe7hL.js.map +1 -0
  11. package/dist/admin/{AdminJobExecutions-D9E-CS-U.js → AdminJobExecutions-D-G8RIlr.js} +3 -4
  12. package/dist/admin/{AdminJobExecutions-D9E-CS-U.js.map → AdminJobExecutions-D-G8RIlr.js.map} +1 -1
  13. package/dist/admin/{AdminJobRegistry-Ci9ue1zC.js → AdminJobRegistry-oIS3K9NX.js} +3 -4
  14. package/dist/admin/{AdminJobRegistry-Ci9ue1zC.js.map → AdminJobRegistry-oIS3K9NX.js.map} +1 -1
  15. package/dist/admin/{AdminLayout-I6TlUMPc.js → AdminLayout-BmZ9mtXh.js} +8 -25
  16. package/dist/admin/AdminLayout-BmZ9mtXh.js.map +1 -0
  17. package/dist/admin/{AdminNotifications-ZPHCYrv7.js → AdminNotifications-DHdzksww.js} +3 -4
  18. package/dist/admin/{AdminNotifications-ZPHCYrv7.js.map → AdminNotifications-DHdzksww.js.map} +1 -1
  19. package/dist/admin/{AdminParameters-CqgvhRsb.js → AdminParameters-CyZQSXnN.js} +3 -12
  20. package/dist/admin/{AdminParameters-CqgvhRsb.js.map → AdminParameters-CyZQSXnN.js.map} +1 -1
  21. package/dist/admin/{AdminSessions-Bz5NRuoW.js → AdminSessions--xwELDSO.js} +3 -4
  22. package/dist/admin/{AdminSessions-Bz5NRuoW.js.map → AdminSessions--xwELDSO.js.map} +1 -1
  23. package/dist/admin/{AdminUserLayout-lXT6I0Qq.js → AdminUserLayout-DvBTG5gd.js} +72 -111
  24. package/dist/admin/AdminUserLayout-DvBTG5gd.js.map +1 -0
  25. package/dist/admin/{AdminUserProfile-vFBLoJ3h.js → AdminUserProfile-CzsPBl6Z.js} +7 -6
  26. package/dist/admin/AdminUserProfile-CzsPBl6Z.js.map +1 -0
  27. package/dist/admin/{AdminUserSessions-CT_YDim0.js → AdminUserSessions-C-aUnhVN.js} +3 -4
  28. package/dist/admin/{AdminUserSessions-CT_YDim0.js.map → AdminUserSessions-C-aUnhVN.js.map} +1 -1
  29. package/dist/admin/{AdminUsers-D1UfGya9.js → AdminUsers-BYwei5sj.js} +4 -4
  30. package/dist/admin/AdminUsers-BYwei5sj.js.map +1 -0
  31. package/dist/admin/{AuthLayout-_frhdgOO.js → AuthLayout-CkPGLJku.js} +3 -4
  32. package/dist/admin/{AuthLayout-_frhdgOO.js.map → AuthLayout-CkPGLJku.js.map} +1 -1
  33. package/dist/{demo/IconGoogle-CSQLPYwX.js → admin/IconGoogle-8Nkx6yax.js} +2 -4
  34. package/dist/admin/{IconGoogle-Ch1m3Uzl.js.map → IconGoogle-8Nkx6yax.js.map} +1 -1
  35. package/dist/admin/{Login-xtNmQtGh.js → Login-DSBqNsZc.js} +5 -6
  36. package/dist/{auth/Login-BA1E8IZl.js.map → admin/Login-DSBqNsZc.js.map} +1 -1
  37. package/dist/admin/{Profile-_AtPUwAP.js → Profile-CDRjJo0P.js} +3 -5
  38. package/dist/{demo/Profile-DS5q4vOh.js.map → admin/Profile-CDRjJo0P.js.map} +1 -1
  39. package/dist/admin/{Register-JcCjHUUn.js → Register-4QGFOnfh.js} +5 -6
  40. package/dist/{demo/Register-B4hLBeEv.js.map → admin/Register-4QGFOnfh.js.map} +1 -1
  41. package/dist/admin/{ResetPassword-CwGBPLJO.js → ResetPassword-Gxc9L_mY.js} +4 -5
  42. package/dist/{auth/ResetPassword-DCtGcneA.js.map → admin/ResetPassword-Gxc9L_mY.js.map} +1 -1
  43. package/dist/admin/{VerifyEmail-hNxWejWf.js → VerifyEmail-D7G5NnaN.js} +4 -5
  44. package/dist/{auth/VerifyEmail-DkH7NBfn.js.map → admin/VerifyEmail-D7G5NnaN.js.map} +1 -1
  45. package/dist/admin/adminUserAtom-DCi4wf-v.js +11 -0
  46. package/dist/admin/adminUserAtom-DCi4wf-v.js.map +1 -0
  47. package/dist/admin/{core-CYaRQ8O-.js → core-D1AbU50V.js} +24 -85
  48. package/dist/admin/core-D1AbU50V.js.map +1 -0
  49. package/dist/admin/index.d.ts +59 -10
  50. package/dist/admin/index.d.ts.map +1 -1
  51. package/dist/admin/index.js +35 -36
  52. package/dist/admin/index.js.map +1 -1
  53. package/dist/admin/rolldown-runtime-CiIaOW0V.js +13 -0
  54. package/dist/{demo/AuthLayout-Brri4A-L.js → auth/AuthLayout-CfRKcTqP.js} +3 -4
  55. package/dist/auth/{AuthLayout-AvLlcLjS.js.map → AuthLayout-CfRKcTqP.js.map} +1 -1
  56. package/dist/{admin/IconGoogle-Ch1m3Uzl.js → auth/IconGoogle-8Nkx6yax.js} +2 -4
  57. package/dist/auth/{IconGoogle-Ch1m3Uzl.js.map → IconGoogle-8Nkx6yax.js.map} +1 -1
  58. package/dist/auth/{Login-BA1E8IZl.js → Login-DJyweoPS.js} +5 -6
  59. package/dist/{demo/Login-C12N4oGs.js.map → auth/Login-DJyweoPS.js.map} +1 -1
  60. package/dist/{demo/Profile-DS5q4vOh.js → auth/Profile-Cy93pNTw.js} +3 -5
  61. package/dist/auth/{Profile-YcWdeuFz.js.map → Profile-Cy93pNTw.js.map} +1 -1
  62. package/dist/auth/{Register-CPhEO5MG.js → Register-CSqzzitW.js} +5 -6
  63. package/dist/{admin/Register-JcCjHUUn.js.map → auth/Register-CSqzzitW.js.map} +1 -1
  64. package/dist/{demo/ResetPassword-D8g9ha1N.js → auth/ResetPassword-B61QPlQi.js} +4 -5
  65. package/dist/{admin/ResetPassword-CwGBPLJO.js.map → auth/ResetPassword-B61QPlQi.js.map} +1 -1
  66. package/dist/auth/{VerifyEmail-DkH7NBfn.js → VerifyEmail-CqBJ11id.js} +4 -5
  67. package/dist/{admin/VerifyEmail-hNxWejWf.js.map → auth/VerifyEmail-CqBJ11id.js.map} +1 -1
  68. package/dist/auth/{core-D5jIAVF2.js → core-C6D3pazL.js} +22 -54
  69. package/dist/auth/core-C6D3pazL.js.map +1 -0
  70. package/dist/auth/index.d.ts +0 -6
  71. package/dist/auth/index.d.ts.map +1 -1
  72. package/dist/auth/index.js +13 -18
  73. package/dist/auth/index.js.map +1 -1
  74. package/dist/auth/rolldown-runtime-CiIaOW0V.js +13 -0
  75. package/dist/core/index.d.ts +10 -4
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +21 -91
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/{auth/AuthLayout-AvLlcLjS.js → demo/AuthLayout-Dq5tSLSc.js} +3 -4
  80. package/dist/demo/{AuthLayout-Brri4A-L.js.map → AuthLayout-Dq5tSLSc.js.map} +1 -1
  81. package/dist/demo/{DemoButton-wiCxZZ_L.js → DemoButton-_Ws2w-J0.js} +4 -5
  82. package/dist/demo/{DemoButton-wiCxZZ_L.js.map → DemoButton-_Ws2w-J0.js.map} +1 -1
  83. package/dist/demo/{DemoControlSelect-D7ILObVg.js → DemoControlSelect-ChP4ZOpQ.js} +4 -5
  84. package/dist/demo/{DemoControlSelect-D7ILObVg.js.map → DemoControlSelect-ChP4ZOpQ.js.map} +1 -1
  85. package/dist/demo/{DemoDataTable-DZ5Y8pFX.js → DemoDataTable-Hwf_UUni.js} +4 -5
  86. package/dist/demo/{DemoDataTable-DZ5Y8pFX.js.map → DemoDataTable-Hwf_UUni.js.map} +1 -1
  87. package/dist/demo/{DemoDialog-CUWdLHim.js → DemoDialog-B01OMVRd.js} +3 -4
  88. package/dist/demo/{DemoDialog-CUWdLHim.js.map → DemoDialog-B01OMVRd.js.map} +1 -1
  89. package/dist/demo/{DemoFlex-a8OhMMvq.js → DemoFlex-870PEl0V.js} +4 -5
  90. package/dist/demo/{DemoFlex-a8OhMMvq.js.map → DemoFlex-870PEl0V.js.map} +1 -1
  91. package/dist/demo/{DemoHeading-C13OVDfS.js → DemoHeading-C1YR27fz.js} +4 -5
  92. package/dist/demo/{DemoHeading-C13OVDfS.js.map → DemoHeading-C1YR27fz.js.map} +1 -1
  93. package/dist/demo/{DemoHome-D_De3UiT.js → DemoHome-DRbL2eGf.js} +4 -5
  94. package/dist/demo/{DemoHome-D_De3UiT.js.map → DemoHome-DRbL2eGf.js.map} +1 -1
  95. package/dist/demo/{DemoJsonViewer-B50s9aGM.js → DemoJsonViewer-DoABiqBW.js} +4 -5
  96. package/dist/demo/{DemoJsonViewer-B50s9aGM.js.map → DemoJsonViewer-DoABiqBW.js.map} +1 -1
  97. package/dist/demo/{DemoLayout-CHU8WTwO.js → DemoLayout-CN_PDCX2.js} +4 -5
  98. package/dist/demo/DemoLayout-CN_PDCX2.js.map +1 -0
  99. package/dist/demo/{DemoLogin-BBlrWpml.js → DemoLogin-B5x-ug3Q.js} +10 -11
  100. package/dist/demo/{DemoLogin-BBlrWpml.js.map → DemoLogin-B5x-ug3Q.js.map} +1 -1
  101. package/dist/demo/{DemoRegister-BuNE3_-f.js → DemoRegister-Q6sg2xuV.js} +10 -11
  102. package/dist/demo/{DemoRegister-BuNE3_-f.js.map → DemoRegister-Q6sg2xuV.js.map} +1 -1
  103. package/dist/demo/{DemoResetPassword-D_IjjjOJ.js → DemoResetPassword-DrqZfmEw.js} +10 -11
  104. package/dist/demo/{DemoResetPassword-D_IjjjOJ.js.map → DemoResetPassword-DrqZfmEw.js.map} +1 -1
  105. package/dist/demo/{DemoSidebar-Giy2HRBD.js → DemoSidebar-CfKS6w1o.js} +4 -5
  106. package/dist/demo/{DemoSidebar-Giy2HRBD.js.map → DemoSidebar-CfKS6w1o.js.map} +1 -1
  107. package/dist/demo/{DemoText-ubcw-vog.js → DemoText-pT6Gi5b5.js} +4 -5
  108. package/dist/demo/{DemoText-ubcw-vog.js.map → DemoText-pT6Gi5b5.js.map} +1 -1
  109. package/dist/demo/{DemoToast-9die_dYT.js → DemoToast-I13NBzQQ.js} +3 -4
  110. package/dist/demo/{DemoToast-9die_dYT.js.map → DemoToast-I13NBzQQ.js.map} +1 -1
  111. package/dist/demo/{DemoTypeForm-D_d6OVKL.js → DemoTypeForm-BqzcrtvN.js} +4 -5
  112. package/dist/demo/{DemoTypeForm-D_d6OVKL.js.map → DemoTypeForm-BqzcrtvN.js.map} +1 -1
  113. package/dist/demo/{DemoVerifyEmail-B43KlF4F.js → DemoVerifyEmail-HwD8xfQw.js} +10 -11
  114. package/dist/demo/{DemoVerifyEmail-B43KlF4F.js.map → DemoVerifyEmail-HwD8xfQw.js.map} +1 -1
  115. package/dist/{auth/IconGoogle-Ch1m3Uzl.js → demo/IconGoogle-CwQy4G9y.js} +2 -4
  116. package/dist/demo/{IconGoogle-CSQLPYwX.js.map → IconGoogle-CwQy4G9y.js.map} +1 -1
  117. package/dist/demo/{Login-C12N4oGs.js → Login-CqG1iJbn.js} +5 -6
  118. package/dist/{admin/Login-xtNmQtGh.js.map → demo/Login-CqG1iJbn.js.map} +1 -1
  119. package/dist/{auth/Profile-YcWdeuFz.js → demo/Profile-C0ojJCaG.js} +3 -5
  120. package/dist/{admin/Profile-_AtPUwAP.js.map → demo/Profile-C0ojJCaG.js.map} +1 -1
  121. package/dist/demo/{Register-B4hLBeEv.js → Register-KKZwr_lL.js} +5 -6
  122. package/dist/{auth/Register-CPhEO5MG.js.map → demo/Register-KKZwr_lL.js.map} +1 -1
  123. package/dist/{auth/ResetPassword-DCtGcneA.js → demo/ResetPassword-DMrLFEtr.js} +4 -5
  124. package/dist/demo/{ResetPassword-D8g9ha1N.js.map → ResetPassword-DMrLFEtr.js.map} +1 -1
  125. package/dist/demo/{Showcase-D6Fxt4X4.js → Showcase-D49Wud2v.js} +3 -5
  126. package/dist/demo/{Showcase-D6Fxt4X4.js.map → Showcase-D49Wud2v.js.map} +1 -1
  127. package/dist/demo/{VerifyEmail-BjDo0cZA.js → VerifyEmail-BFCAFz6T.js} +4 -5
  128. package/dist/demo/{VerifyEmail-BjDo0cZA.js.map → VerifyEmail-BFCAFz6T.js.map} +1 -1
  129. package/dist/demo/{auth-ByVTreDl.js → auth-D9qTZzCa.js} +18 -35
  130. package/dist/demo/{auth-ByVTreDl.js.map → auth-D9qTZzCa.js.map} +1 -1
  131. package/dist/demo/{core-DFgB3yU4.js → core-DRtQklr3.js} +23 -86
  132. package/dist/demo/core-DRtQklr3.js.map +1 -0
  133. package/dist/demo/index.js +19 -22
  134. package/dist/demo/index.js.map +1 -1
  135. package/dist/demo/rolldown-runtime-CiIaOW0V.js +13 -0
  136. package/package.json +17 -17
  137. package/src/admin/AdminRouter.tsx +18 -1
  138. package/src/admin/atoms/adminUserAtom.ts +7 -0
  139. package/src/admin/components/AdminLayout.tsx +2 -14
  140. package/src/admin/components/jobs/AdminJobDashboard.tsx +51 -20
  141. package/src/admin/components/users/AdminUserLayout.tsx +84 -127
  142. package/src/admin/components/users/AdminUserProfile.tsx +5 -2
  143. package/src/admin/components/users/AdminUsers.tsx +1 -1
  144. package/src/core/components/Flex.tsx +24 -0
  145. package/src/core/components/buttons/ActionButton.tsx +1 -0
  146. package/src/core/components/dialogs/PromptDialog.tsx +1 -1
  147. package/src/core/components/layout/Breadcrumb.tsx +2 -2
  148. package/src/core/components/layout/DashboardShell.tsx +1 -1
  149. package/src/core/services/DialogService.tsx +2 -2
  150. package/src/core/styles.css +2 -1
  151. package/src/core/table/components/DataTable.tsx +0 -1
  152. package/dist/admin/AdminJobDashboard-BL8gGPDp.js.map +0 -1
  153. package/dist/admin/AdminLayout-I6TlUMPc.js.map +0 -1
  154. package/dist/admin/AdminUserLayout-lXT6I0Qq.js.map +0 -1
  155. package/dist/admin/AdminUserProfile-vFBLoJ3h.js.map +0 -1
  156. package/dist/admin/AdminUsers-D1UfGya9.js.map +0 -1
  157. package/dist/admin/core-CYaRQ8O-.js.map +0 -1
  158. package/dist/admin/rolldown-runtime-CjeV3_4I.js +0 -18
  159. package/dist/auth/core-D5jIAVF2.js.map +0 -1
  160. package/dist/auth/rolldown-runtime-CjeV3_4I.js +0 -18
  161. package/dist/demo/DemoLayout-CHU8WTwO.js.map +0 -1
  162. package/dist/demo/core-DFgB3yU4.js.map +0 -1
  163. package/dist/demo/rolldown-runtime-CjeV3_4I.js +0 -18
@@ -1,15 +1,14 @@
1
- import { t as AlephaUI } from "./core-DFgB3yU4.js";
1
+ import { t as AlephaUI } from "./core-DRtQklr3.js";
2
2
  import { $context, $module } from "alepha";
3
3
  import { IconBell, IconBinaryTree, IconBraces, IconClick, IconForms, IconHeading, IconHome, IconKey, IconLayout, IconLayoutSidebar, IconLetterT, IconLockQuestion, IconLogin, IconMailCheck, IconMessage, IconPackages, IconRowInsertBottom, IconTable, IconUserPlus, IconWall } from "@tabler/icons-react";
4
4
  import { $page } from "alepha/react/router";
5
-
6
5
  //#region ../../src/demo/DemoRouter.ts
7
6
  var DemoRouter = class {
8
7
  demoLayout = $page({
9
8
  icon: IconPackages,
10
9
  path: "/demo",
11
10
  label: "Demo",
12
- lazy: () => import("./DemoLayout-CHU8WTwO.js"),
11
+ lazy: () => import("./DemoLayout-CN_PDCX2.js"),
13
12
  children: () => [
14
13
  this.demoHome,
15
14
  this.demoCore,
@@ -24,7 +23,7 @@ var DemoRouter = class {
24
23
  icon: IconHome,
25
24
  path: "/",
26
25
  label: "Home",
27
- lazy: () => import("./DemoHome-D_De3UiT.js")
26
+ lazy: () => import("./DemoHome-DRbL2eGf.js")
28
27
  });
29
28
  demoCore = $page({
30
29
  icon: IconWall,
@@ -41,25 +40,25 @@ var DemoRouter = class {
41
40
  icon: IconRowInsertBottom,
42
41
  path: "/flex",
43
42
  label: "Flex",
44
- lazy: () => import("./DemoFlex-a8OhMMvq.js")
43
+ lazy: () => import("./DemoFlex-870PEl0V.js")
45
44
  });
46
45
  demoText = $page({
47
46
  icon: IconLetterT,
48
47
  path: "/text",
49
48
  label: "Text",
50
- lazy: () => import("./DemoText-ubcw-vog.js")
49
+ lazy: () => import("./DemoText-pT6Gi5b5.js")
51
50
  });
52
51
  demoHeading = $page({
53
52
  icon: IconHeading,
54
53
  path: "/heading",
55
54
  label: "Heading",
56
- lazy: () => import("./DemoHeading-C13OVDfS.js")
55
+ lazy: () => import("./DemoHeading-C1YR27fz.js")
57
56
  });
58
57
  demoButton = $page({
59
58
  icon: IconClick,
60
59
  path: "/button",
61
60
  label: "Button",
62
- lazy: () => import("./DemoButton-wiCxZZ_L.js")
61
+ lazy: () => import("./DemoButton-_Ws2w-J0.js")
63
62
  });
64
63
  demoLayoutSection = $page({
65
64
  icon: IconLayout,
@@ -75,19 +74,19 @@ var DemoRouter = class {
75
74
  icon: IconLayoutSidebar,
76
75
  path: "/sidebar",
77
76
  label: "Sidebar",
78
- lazy: () => import("./DemoSidebar-Giy2HRBD.js")
77
+ lazy: () => import("./DemoSidebar-CfKS6w1o.js")
79
78
  });
80
79
  demoDialog = $page({
81
80
  icon: IconMessage,
82
81
  path: "/dialog",
83
82
  label: "Dialog",
84
- lazy: () => import("./DemoDialog-CUWdLHim.js")
83
+ lazy: () => import("./DemoDialog-B01OMVRd.js")
85
84
  });
86
85
  demoToast = $page({
87
86
  icon: IconBell,
88
87
  path: "/toast",
89
88
  label: "Toast",
90
- lazy: () => import("./DemoToast-9die_dYT.js")
89
+ lazy: () => import("./DemoToast-I13NBzQQ.js")
91
90
  });
92
91
  demoForm = $page({
93
92
  icon: IconForms,
@@ -99,13 +98,13 @@ var DemoRouter = class {
99
98
  icon: IconForms,
100
99
  path: "/type-form",
101
100
  label: "TypeForm",
102
- lazy: () => import("./DemoTypeForm-D_d6OVKL.js")
101
+ lazy: () => import("./DemoTypeForm-BqzcrtvN.js")
103
102
  });
104
103
  demoControlSelect = $page({
105
104
  icon: IconForms,
106
105
  path: "/control-select",
107
106
  label: "ControlSelect",
108
- lazy: () => import("./DemoControlSelect-D7ILObVg.js")
107
+ lazy: () => import("./DemoControlSelect-ChP4ZOpQ.js")
109
108
  });
110
109
  demoTable = $page({
111
110
  icon: IconTable,
@@ -117,7 +116,7 @@ var DemoRouter = class {
117
116
  icon: IconTable,
118
117
  path: "/data-table",
119
118
  label: "DataTable",
120
- lazy: () => import("./DemoDataTable-DZ5Y8pFX.js")
119
+ lazy: () => import("./DemoDataTable-Hwf_UUni.js")
121
120
  });
122
121
  demoJson = $page({
123
122
  icon: IconBraces,
@@ -129,7 +128,7 @@ var DemoRouter = class {
129
128
  icon: IconBinaryTree,
130
129
  path: "/viewer",
131
130
  label: "JsonViewer",
132
- lazy: () => import("./DemoJsonViewer-B50s9aGM.js")
131
+ lazy: () => import("./DemoJsonViewer-DoABiqBW.js")
133
132
  });
134
133
  demoAuth = $page({
135
134
  icon: IconKey,
@@ -146,28 +145,27 @@ var DemoRouter = class {
146
145
  icon: IconLogin,
147
146
  path: "/login",
148
147
  label: "Login",
149
- lazy: () => import("./DemoLogin-BBlrWpml.js")
148
+ lazy: () => import("./DemoLogin-B5x-ug3Q.js")
150
149
  });
151
150
  demoRegister = $page({
152
151
  icon: IconUserPlus,
153
152
  path: "/register",
154
153
  label: "Register",
155
- lazy: () => import("./DemoRegister-BuNE3_-f.js")
154
+ lazy: () => import("./DemoRegister-Q6sg2xuV.js")
156
155
  });
157
156
  demoResetPassword = $page({
158
157
  icon: IconLockQuestion,
159
158
  path: "/reset-password",
160
159
  label: "ResetPassword",
161
- lazy: () => import("./DemoResetPassword-D_IjjjOJ.js")
160
+ lazy: () => import("./DemoResetPassword-DrqZfmEw.js")
162
161
  });
163
162
  demoVerifyEmail = $page({
164
163
  icon: IconMailCheck,
165
164
  path: "/verify-email",
166
165
  label: "VerifyEmail",
167
- lazy: () => import("./DemoVerifyEmail-B43KlF4F.js")
166
+ lazy: () => import("./DemoVerifyEmail-HwD8xfQw.js")
168
167
  });
169
168
  };
170
-
171
169
  //#endregion
172
170
  //#region ../../src/demo/primitives/$uiDemo.ts
173
171
  /**
@@ -177,7 +175,6 @@ const $uiDemo = () => {
177
175
  const { alepha } = $context();
178
176
  return alepha.inject(DemoRouter);
179
177
  };
180
-
181
178
  //#endregion
182
179
  //#region ../../src/demo/index.ts
183
180
  /**
@@ -195,7 +192,7 @@ const AlephaUIDemo = $module({
195
192
  name: "alepha.ui.demo",
196
193
  services: [AlephaUI, DemoRouter]
197
194
  });
198
-
199
195
  //#endregion
200
196
  export { $uiDemo, AlephaUIDemo, DemoRouter };
197
+
201
198
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/demo/DemoRouter.ts","../../src/demo/primitives/$uiDemo.ts","../../src/demo/index.ts"],"sourcesContent":["import {\n IconBell,\n IconBinaryTree,\n IconBraces,\n IconClick,\n IconForms,\n IconHeading,\n IconHome,\n IconKey,\n IconLayout,\n IconLayoutSidebar,\n IconLetterT,\n IconLockQuestion,\n IconLogin,\n IconMailCheck,\n IconMessage,\n IconPackages,\n IconRowInsertBottom,\n IconTable,\n IconUserPlus,\n IconWall,\n} from \"@tabler/icons-react\";\nimport { $page } from \"alepha/react/router\";\n\nexport class DemoRouter {\n demoLayout = $page({\n icon: IconPackages,\n path: \"/demo\",\n label: \"Demo\",\n lazy: () => import(\"./components/DemoLayout.tsx\"),\n children: () => [\n this.demoHome,\n this.demoCore,\n this.demoLayoutSection,\n this.demoForm,\n this.demoTable,\n this.demoJson,\n this.demoAuth,\n ],\n });\n\n demoHome = $page({\n icon: IconHome,\n path: \"/\",\n label: \"Home\",\n lazy: () => import(\"./components/DemoHome.tsx\"),\n });\n\n // Core Components\n demoCore = $page({\n icon: IconWall,\n path: \"/core\",\n label: \"Core\",\n children: () => [\n this.demoFlex,\n this.demoText,\n this.demoButton,\n this.demoHeading,\n ],\n });\n\n demoFlex = $page({\n icon: IconRowInsertBottom,\n path: \"/flex\",\n label: \"Flex\",\n lazy: () => import(\"./components/core/DemoFlex.tsx\"),\n });\n\n demoText = $page({\n icon: IconLetterT,\n path: \"/text\",\n label: \"Text\",\n lazy: () => import(\"./components/core/DemoText.tsx\"),\n });\n\n demoHeading = $page({\n icon: IconHeading,\n path: \"/heading\",\n label: \"Heading\",\n lazy: () => import(\"./components/core/DemoHeading.tsx\"),\n });\n\n demoButton = $page({\n icon: IconClick,\n path: \"/button\",\n label: \"Button\",\n lazy: () => import(\"./components/core/DemoButton.tsx\"),\n });\n\n // Layout Components\n demoLayoutSection = $page({\n icon: IconLayout,\n path: \"/layout\",\n label: \"Layout\",\n children: () => [this.demoSidebar, this.demoDialog, this.demoToast],\n });\n\n demoSidebar = $page({\n icon: IconLayoutSidebar,\n path: \"/sidebar\",\n label: \"Sidebar\",\n lazy: () => import(\"./components/layout/DemoSidebar.tsx\"),\n });\n\n demoDialog = $page({\n icon: IconMessage,\n path: \"/dialog\",\n label: \"Dialog\",\n lazy: () => import(\"./components/layout/DemoDialog.tsx\"),\n });\n\n demoToast = $page({\n icon: IconBell,\n path: \"/toast\",\n label: \"Toast\",\n lazy: () => import(\"./components/layout/DemoToast.tsx\"),\n });\n\n // Form Components\n demoForm = $page({\n icon: IconForms,\n path: \"/form\",\n label: \"Form\",\n children: () => [this.demoTypeForm, this.demoControlSelect],\n });\n\n demoTypeForm = $page({\n icon: IconForms,\n path: \"/type-form\",\n label: \"TypeForm\",\n lazy: () => import(\"./components/core/DemoTypeForm.tsx\"),\n });\n\n demoControlSelect = $page({\n icon: IconForms,\n path: \"/control-select\",\n label: \"ControlSelect\",\n lazy: () => import(\"./components/core/DemoControlSelect.tsx\"),\n });\n\n // Table Components\n demoTable = $page({\n icon: IconTable,\n path: \"/table\",\n label: \"Table\",\n children: () => [this.demoDataTable],\n });\n\n demoDataTable = $page({\n icon: IconTable,\n path: \"/data-table\",\n label: \"DataTable\",\n lazy: () => import(\"./components/core/DemoDataTable.tsx\"),\n });\n\n // JSON Components\n demoJson = $page({\n icon: IconBraces,\n path: \"/json\",\n label: \"Json\",\n children: () => [this.demoJsonViewer],\n });\n\n demoJsonViewer = $page({\n icon: IconBinaryTree,\n path: \"/viewer\",\n label: \"JsonViewer\",\n lazy: () => import(\"./components/json/DemoJsonViewer.tsx\"),\n });\n\n // Auth Components\n demoAuth = $page({\n icon: IconKey,\n path: \"/auth\",\n label: \"Auth\",\n children: () => [\n this.demoLogin,\n this.demoRegister,\n this.demoResetPassword,\n this.demoVerifyEmail,\n ],\n });\n\n demoLogin = $page({\n icon: IconLogin,\n path: \"/login\",\n label: \"Login\",\n lazy: () => import(\"./components/auth/DemoLogin.tsx\"),\n });\n\n demoRegister = $page({\n icon: IconUserPlus,\n path: \"/register\",\n label: \"Register\",\n lazy: () => import(\"./components/auth/DemoRegister.tsx\"),\n });\n\n demoResetPassword = $page({\n icon: IconLockQuestion,\n path: \"/reset-password\",\n label: \"ResetPassword\",\n lazy: () => import(\"./components/auth/DemoResetPassword.tsx\"),\n });\n\n demoVerifyEmail = $page({\n icon: IconMailCheck,\n path: \"/verify-email\",\n label: \"VerifyEmail\",\n lazy: () => import(\"./components/auth/DemoVerifyEmail.tsx\"),\n });\n}\n","import { $context } from \"alepha\";\nimport { DemoRouter } from \"../DemoRouter.ts\";\n\n/**\n * Register Demo UI components and get the DemoRouter instance.\n */\nexport const $uiDemo = () => {\n const { alepha } = $context();\n return alepha.inject(DemoRouter);\n};\n","import { AlephaUI } from \"@alepha/ui\";\nimport { $module } from \"alepha\";\nimport { DemoRouter } from \"./DemoRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport { DemoRouter } from \"./DemoRouter.ts\";\nexport * from \"./primitives/$uiDemo.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Component showcase and documentation.\n *\n * **Features:**\n * - DemoLayout for demo pages\n * - DemoHome landing page\n * - MacWindow component for showcases\n * - Showcase component for component demos\n *\n * @module alepha.ui.demo\n */\nexport const AlephaUIDemo = $module({\n name: \"alepha.ui.demo\",\n services: [AlephaUI, DemoRouter],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/demo/DemoRouter.ts","../../src/demo/primitives/$uiDemo.ts","../../src/demo/index.ts"],"sourcesContent":["import {\n IconBell,\n IconBinaryTree,\n IconBraces,\n IconClick,\n IconForms,\n IconHeading,\n IconHome,\n IconKey,\n IconLayout,\n IconLayoutSidebar,\n IconLetterT,\n IconLockQuestion,\n IconLogin,\n IconMailCheck,\n IconMessage,\n IconPackages,\n IconRowInsertBottom,\n IconTable,\n IconUserPlus,\n IconWall,\n} from \"@tabler/icons-react\";\nimport { $page } from \"alepha/react/router\";\n\nexport class DemoRouter {\n demoLayout = $page({\n icon: IconPackages,\n path: \"/demo\",\n label: \"Demo\",\n lazy: () => import(\"./components/DemoLayout.tsx\"),\n children: () => [\n this.demoHome,\n this.demoCore,\n this.demoLayoutSection,\n this.demoForm,\n this.demoTable,\n this.demoJson,\n this.demoAuth,\n ],\n });\n\n demoHome = $page({\n icon: IconHome,\n path: \"/\",\n label: \"Home\",\n lazy: () => import(\"./components/DemoHome.tsx\"),\n });\n\n // Core Components\n demoCore = $page({\n icon: IconWall,\n path: \"/core\",\n label: \"Core\",\n children: () => [\n this.demoFlex,\n this.demoText,\n this.demoButton,\n this.demoHeading,\n ],\n });\n\n demoFlex = $page({\n icon: IconRowInsertBottom,\n path: \"/flex\",\n label: \"Flex\",\n lazy: () => import(\"./components/core/DemoFlex.tsx\"),\n });\n\n demoText = $page({\n icon: IconLetterT,\n path: \"/text\",\n label: \"Text\",\n lazy: () => import(\"./components/core/DemoText.tsx\"),\n });\n\n demoHeading = $page({\n icon: IconHeading,\n path: \"/heading\",\n label: \"Heading\",\n lazy: () => import(\"./components/core/DemoHeading.tsx\"),\n });\n\n demoButton = $page({\n icon: IconClick,\n path: \"/button\",\n label: \"Button\",\n lazy: () => import(\"./components/core/DemoButton.tsx\"),\n });\n\n // Layout Components\n demoLayoutSection = $page({\n icon: IconLayout,\n path: \"/layout\",\n label: \"Layout\",\n children: () => [this.demoSidebar, this.demoDialog, this.demoToast],\n });\n\n demoSidebar = $page({\n icon: IconLayoutSidebar,\n path: \"/sidebar\",\n label: \"Sidebar\",\n lazy: () => import(\"./components/layout/DemoSidebar.tsx\"),\n });\n\n demoDialog = $page({\n icon: IconMessage,\n path: \"/dialog\",\n label: \"Dialog\",\n lazy: () => import(\"./components/layout/DemoDialog.tsx\"),\n });\n\n demoToast = $page({\n icon: IconBell,\n path: \"/toast\",\n label: \"Toast\",\n lazy: () => import(\"./components/layout/DemoToast.tsx\"),\n });\n\n // Form Components\n demoForm = $page({\n icon: IconForms,\n path: \"/form\",\n label: \"Form\",\n children: () => [this.demoTypeForm, this.demoControlSelect],\n });\n\n demoTypeForm = $page({\n icon: IconForms,\n path: \"/type-form\",\n label: \"TypeForm\",\n lazy: () => import(\"./components/core/DemoTypeForm.tsx\"),\n });\n\n demoControlSelect = $page({\n icon: IconForms,\n path: \"/control-select\",\n label: \"ControlSelect\",\n lazy: () => import(\"./components/core/DemoControlSelect.tsx\"),\n });\n\n // Table Components\n demoTable = $page({\n icon: IconTable,\n path: \"/table\",\n label: \"Table\",\n children: () => [this.demoDataTable],\n });\n\n demoDataTable = $page({\n icon: IconTable,\n path: \"/data-table\",\n label: \"DataTable\",\n lazy: () => import(\"./components/core/DemoDataTable.tsx\"),\n });\n\n // JSON Components\n demoJson = $page({\n icon: IconBraces,\n path: \"/json\",\n label: \"Json\",\n children: () => [this.demoJsonViewer],\n });\n\n demoJsonViewer = $page({\n icon: IconBinaryTree,\n path: \"/viewer\",\n label: \"JsonViewer\",\n lazy: () => import(\"./components/json/DemoJsonViewer.tsx\"),\n });\n\n // Auth Components\n demoAuth = $page({\n icon: IconKey,\n path: \"/auth\",\n label: \"Auth\",\n children: () => [\n this.demoLogin,\n this.demoRegister,\n this.demoResetPassword,\n this.demoVerifyEmail,\n ],\n });\n\n demoLogin = $page({\n icon: IconLogin,\n path: \"/login\",\n label: \"Login\",\n lazy: () => import(\"./components/auth/DemoLogin.tsx\"),\n });\n\n demoRegister = $page({\n icon: IconUserPlus,\n path: \"/register\",\n label: \"Register\",\n lazy: () => import(\"./components/auth/DemoRegister.tsx\"),\n });\n\n demoResetPassword = $page({\n icon: IconLockQuestion,\n path: \"/reset-password\",\n label: \"ResetPassword\",\n lazy: () => import(\"./components/auth/DemoResetPassword.tsx\"),\n });\n\n demoVerifyEmail = $page({\n icon: IconMailCheck,\n path: \"/verify-email\",\n label: \"VerifyEmail\",\n lazy: () => import(\"./components/auth/DemoVerifyEmail.tsx\"),\n });\n}\n","import { $context } from \"alepha\";\nimport { DemoRouter } from \"../DemoRouter.ts\";\n\n/**\n * Register Demo UI components and get the DemoRouter instance.\n */\nexport const $uiDemo = () => {\n const { alepha } = $context();\n return alepha.inject(DemoRouter);\n};\n","import { AlephaUI } from \"@alepha/ui\";\nimport { $module } from \"alepha\";\nimport { DemoRouter } from \"./DemoRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport { DemoRouter } from \"./DemoRouter.ts\";\nexport * from \"./primitives/$uiDemo.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Component showcase and documentation.\n *\n * **Features:**\n * - DemoLayout for demo pages\n * - DemoHome landing page\n * - MacWindow component for showcases\n * - Showcase component for component demos\n *\n * @module alepha.ui.demo\n */\nexport const AlephaUIDemo = $module({\n name: \"alepha.ui.demo\",\n services: [AlephaUI, DemoRouter],\n});\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "mantine"
8
8
  ],
9
9
  "author": "Nicolas Foures",
10
- "version": "0.18.3",
10
+ "version": "0.19.0",
11
11
  "type": "module",
12
12
  "engines": {
13
13
  "node": ">=22.0.0"
@@ -22,33 +22,33 @@
22
22
  "styles.css"
23
23
  ],
24
24
  "dependencies": {
25
- "@mantine/charts": "^8.3.15",
26
- "@mantine/core": "^8.3.15",
27
- "@mantine/dates": "^8.3.15",
28
- "@mantine/hooks": "^8.3.15",
29
- "@mantine/modals": "^8.3.15",
30
- "@mantine/notifications": "^8.3.15",
31
- "@mantine/nprogress": "^8.3.15",
32
- "@mantine/spotlight": "^8.3.15",
33
- "@tabler/icons-react": "^3.38.0",
34
- "dayjs": "^1.11.19",
25
+ "@mantine/charts": "^8.3.18",
26
+ "@mantine/core": "^8.3.18",
27
+ "@mantine/dates": "^8.3.18",
28
+ "@mantine/hooks": "^8.3.18",
29
+ "@mantine/modals": "^8.3.18",
30
+ "@mantine/notifications": "^8.3.18",
31
+ "@mantine/nprogress": "^8.3.18",
32
+ "@mantine/spotlight": "^8.3.18",
33
+ "@tabler/icons-react": "^3.40.0",
34
+ "dayjs": "^1.11.20",
35
35
  "react-is": "^19.2.4",
36
- "recharts": "^3.7.0"
36
+ "recharts": "^3.8.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@biomejs/biome": "^2.4.5",
39
+ "@biomejs/biome": "^2.4.8",
40
40
  "@testing-library/dom": "^10.4.1",
41
41
  "@testing-library/react": "^16.3.2",
42
42
  "@types/react-is": "^19.2.0",
43
- "alepha": "0.18.3",
43
+ "alepha": "0.19.0",
44
44
  "react": "^19.2.4",
45
45
  "react-dom": "^19.2.4",
46
46
  "typescript": "^5.9.3",
47
- "vite": "^7.3.1",
48
- "vitest": "^4.0.18"
47
+ "vite": "^8.0.0",
48
+ "vitest": "^4.1.0"
49
49
  },
50
50
  "peerDependencies": {
51
- "alepha": "0.18.3",
51
+ "alepha": "0.19.0",
52
52
  "react": "*",
53
53
  "react-dom": "*"
54
54
  },
@@ -24,7 +24,7 @@ import {
24
24
  IconUser,
25
25
  IconUsers,
26
26
  } from "@tabler/icons-react";
27
- import { $inject } from "alepha";
27
+ import { $inject, t } from "alepha";
28
28
  import type { AdminAuditController } from "alepha/api/audits";
29
29
  import type { FileController } from "alepha/api/files";
30
30
  import type { AdminJobController } from "alepha/api/jobs";
@@ -37,6 +37,7 @@ import type {
37
37
  } from "alepha/api/users";
38
38
  import { ReactAuth } from "alepha/react/auth";
39
39
  import { $page, ReactRouter, Redirection } from "alepha/react/router";
40
+ import { $secure } from "alepha/security";
40
41
  import { $cookie } from "alepha/server/cookies";
41
42
  import { $client } from "alepha/server/links";
42
43
 
@@ -202,6 +203,11 @@ export class AdminRouter {
202
203
  title: "Admin Panel",
203
204
  titleSeparator: " | ",
204
205
  },
206
+ use: [
207
+ $secure({
208
+ permissions: ["admin:access"],
209
+ }),
210
+ ],
205
211
  lazy: () => import("./components/AdminLayout.tsx"),
206
212
  props: () => ({
207
213
  adminShellProps: this.adminShellProps(),
@@ -249,7 +255,18 @@ export class AdminRouter {
249
255
  head: {
250
256
  title: "Users",
251
257
  },
258
+ schema: {
259
+ params: t.object({
260
+ userId: t.text(),
261
+ }),
262
+ },
252
263
  lazy: () => import("./components/users/AdminUserLayout.tsx"),
264
+ loader: async ({ params }) => {
265
+ const user = await this.userCtrl.getUser({
266
+ params: { id: params.userId },
267
+ });
268
+ return { user };
269
+ },
253
270
  });
254
271
 
255
272
  public readonly adminUserProfile = $page({
@@ -0,0 +1,7 @@
1
+ import { $atom, t } from "alepha";
2
+ import { users } from "alepha/api/users";
3
+
4
+ export const adminUserAtom = $atom({
5
+ name: "alepha.admin.user",
6
+ schema: t.optional(users.schema),
7
+ });
@@ -4,10 +4,9 @@ import {
4
4
  DashboardShell,
5
5
  type DashboardShellProps,
6
6
  SidebarCollapseButton,
7
- Text,
8
7
  ui,
9
8
  } from "@alepha/ui";
10
- import { Flex, Image } from "@mantine/core";
9
+ import { Flex } from "@mantine/core";
11
10
  import { IconArrowLeft } from "@tabler/icons-react";
12
11
 
13
12
  export interface AdminLayoutProps {
@@ -31,7 +30,7 @@ const AdminLayout = (props: AdminLayoutProps) => {
31
30
  >
32
31
  <DashboardShell
33
32
  layout={"alt"}
34
- navbarHeader={(props) => (
33
+ navbarHeader={() => (
35
34
  <Flex gap={"md"} flex={1} px={"lg"} align={"center"}>
36
35
  <ActionButton
37
36
  href={"/"}
@@ -39,17 +38,6 @@ const AdminLayout = (props: AdminLayoutProps) => {
39
38
  bd={0}
40
39
  icon={IconArrowLeft}
41
40
  />
42
- {!props.collapsed && (
43
- <>
44
- <Image pt={4} src={"/favicon.svg"} h={36} w={36} />
45
- <Flex direction={"column"}>
46
- <Text bold>Blog</Text>
47
- <Text small muted mt={-4}>
48
- Admin Panel
49
- </Text>
50
- </Flex>
51
- </>
52
- )}
53
41
  </Flex>
54
42
  )}
55
43
  footerHeight={48}
@@ -1,6 +1,6 @@
1
1
  import { ActionButton, Flex, StatCards, Text, useToast } from "@alepha/ui";
2
2
  import { AreaChart, BarChart, DonutChart } from "@mantine/charts";
3
- import { Paper, SimpleGrid, Table } from "@mantine/core";
3
+ import { Paper, SegmentedControl, SimpleGrid, Table } from "@mantine/core";
4
4
  import {
5
5
  IconAlertTriangle,
6
6
  IconCircleCheck,
@@ -21,6 +21,13 @@ import { useCallback, useEffect, useState } from "react";
21
21
 
22
22
  // ─────────────────────────────────────────────────────────────────────────────
23
23
 
24
+ const TIME_RANGES = [
25
+ { label: "24h", value: "1" },
26
+ { label: "7d", value: "7" },
27
+ { label: "14d", value: "14" },
28
+ { label: "30d", value: "30" },
29
+ ];
30
+
24
31
  const formatDuration = (
25
32
  start: Date | string,
26
33
  end?: Date | string | null,
@@ -53,20 +60,23 @@ const AdminJobDashboard = () => {
53
60
  const { l } = useI18n();
54
61
  const toast = useToast();
55
62
 
63
+ const [days, setDays] = useState("7");
56
64
  const [stats, setStats] = useState<JobStats | null>(null);
57
65
  const [recent, setRecent] = useState<RecentExecution[]>([]);
58
66
  const [failures, setFailures] = useState<JobFailure[]>([]);
59
67
  const [activity, setActivity] = useState<JobActivityPoint[]>([]);
60
68
  const [queueDepth, setQueueDepth] = useState<JobQueueDepth[]>([]);
61
69
 
70
+ const daysNum = Number(days);
71
+
62
72
  const loadData = useCallback(async () => {
63
73
  try {
64
74
  const [statsData, recentData, failureData, activityData, queueData] =
65
75
  await Promise.all([
66
- client.getJobStats(),
76
+ client.getJobStats({ query: { days: daysNum } }),
67
77
  client.findJobExecutions({ query: { sort: "-createdAt", size: 10 } }),
68
- client.getJobTopFailures(),
69
- client.getJobActivity({ query: { days: 14 } }),
78
+ client.getJobTopFailures({ query: { days: daysNum } }),
79
+ client.getJobActivity({ query: { days: daysNum } }),
70
80
  client.getJobQueueDepth(),
71
81
  ]);
72
82
  setStats(statsData);
@@ -77,7 +87,7 @@ const AdminJobDashboard = () => {
77
87
  } catch {
78
88
  toast.danger("Failed to load dashboard data");
79
89
  }
80
- }, [client, toast]);
90
+ }, [client, toast, daysNum]);
81
91
 
82
92
  useEffect(() => {
83
93
  loadData();
@@ -119,19 +129,40 @@ const AdminJobDashboard = () => {
119
129
  ].filter((d) => d.value > 0)
120
130
  : [];
121
131
 
132
+ const rangeLabel =
133
+ TIME_RANGES.find((r) => r.value === days)?.label ?? `${days}d`;
134
+
122
135
  return (
123
136
  <Flex flex={1} direction="column" gap="md" p="md">
124
137
  <Flex justify="space-between" align="center">
125
138
  <Text size="lg" fw={600}>
126
139
  Jobs Dashboard
127
140
  </Text>
128
- <ActionButton
129
- tooltip="Refresh"
130
- variant="light"
131
- size="sm"
132
- icon={IconRefresh}
133
- onClick={loadData}
134
- />
141
+ <Flex
142
+ gap="sm"
143
+ align="center"
144
+ py="xs"
145
+ px="sm"
146
+ style={{
147
+ backgroundColor: "var(--mantine-color-body)",
148
+ borderRadius: "var(--mantine-radius-md)",
149
+ border: "1px solid var(--mantine-color-default-border)",
150
+ }}
151
+ >
152
+ <SegmentedControl
153
+ size="xs"
154
+ data={TIME_RANGES}
155
+ value={days}
156
+ onChange={setDays}
157
+ />
158
+ <ActionButton
159
+ tooltip="Refresh"
160
+ variant="minimal"
161
+ size="sm"
162
+ icon={IconRefresh}
163
+ onClick={loadData}
164
+ />
165
+ </Flex>
135
166
  </Flex>
136
167
 
137
168
  {/* Stats Cards */}
@@ -149,13 +180,13 @@ const AdminJobDashboard = () => {
149
180
  icon: IconPlayerPlay,
150
181
  },
151
182
  {
152
- label: "Completed 24h",
153
- value: stats.completed24h,
183
+ label: `Completed (${rangeLabel})`,
184
+ value: stats.completed,
154
185
  icon: IconCircleCheck,
155
186
  },
156
187
  {
157
- label: "Failed 24h",
158
- value: stats.failed24h,
188
+ label: `Failed (${rangeLabel})`,
189
+ value: stats.failed,
159
190
  icon: IconAlertTriangle,
160
191
  },
161
192
  ]}
@@ -167,7 +198,7 @@ const AdminJobDashboard = () => {
167
198
  {/* Activity Timeline */}
168
199
  <Paper p="md" radius="md" withBorder>
169
200
  <Text size="sm" fw={600} mb="sm">
170
- Activity (14d)
201
+ Activity ({rangeLabel})
171
202
  </Text>
172
203
  {activityChartData.length > 0 ? (
173
204
  <AreaChart
@@ -292,10 +323,10 @@ const AdminJobDashboard = () => {
292
323
  </Table>
293
324
  </Paper>
294
325
 
295
- {/* Top Failures (7d) */}
326
+ {/* Top Failures */}
296
327
  <Paper p="md" radius="md" withBorder>
297
328
  <Text size="sm" fw={600} mb="sm">
298
- Top Failures (7d)
329
+ Top Failures ({rangeLabel})
299
330
  </Text>
300
331
  {failures.length > 0 ? (
301
332
  <Table>
@@ -336,7 +367,7 @@ const AdminJobDashboard = () => {
336
367
  ) : (
337
368
  <Flex h={100} align="center" justify="center">
338
369
  <Text size="sm" c="dimmed">
339
- No failures in the last 7 days
370
+ No failures in the last {rangeLabel}
340
371
  </Text>
341
372
  </Flex>
342
373
  )}