@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.
- package/dist/admin/{AdminApiKeys-C-6_Q-lH.js → AdminApiKeys-Dy_k-4Vd.js} +17 -38
- package/dist/admin/AdminApiKeys-Dy_k-4Vd.js.map +1 -0
- package/dist/admin/{AdminAudits-Bgbf04hO.js → AdminAudits-CKiFMSSU.js} +23 -19
- package/dist/admin/AdminAudits-CKiFMSSU.js.map +1 -0
- package/dist/admin/AdminDashboard-PhC_dZqo.js +67 -0
- package/dist/admin/AdminDashboard-PhC_dZqo.js.map +1 -0
- package/dist/admin/{AdminFiles-B9a7G3cY.js → AdminFiles-DFTjijGp.js} +3 -7
- package/dist/admin/AdminFiles-DFTjijGp.js.map +1 -0
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js → AdminJobDashboard-BL8gGPDp.js} +2 -2
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js.map → AdminJobDashboard-BL8gGPDp.js.map} +1 -1
- package/dist/admin/{AdminJobExecutions-B9cek5dl.js → AdminJobExecutions-D9E-CS-U.js} +24 -36
- package/dist/admin/AdminJobExecutions-D9E-CS-U.js.map +1 -0
- package/dist/admin/{AdminJobRegistry-DFgV3oqx.js → AdminJobRegistry-Ci9ue1zC.js} +10 -18
- package/dist/admin/AdminJobRegistry-Ci9ue1zC.js.map +1 -0
- package/dist/admin/AdminLayout-I6TlUMPc.js +61 -0
- package/dist/admin/AdminLayout-I6TlUMPc.js.map +1 -0
- package/dist/admin/AdminNotifications-ZPHCYrv7.js +542 -0
- package/dist/admin/AdminNotifications-ZPHCYrv7.js.map +1 -0
- package/dist/admin/{AdminParameters-DHw9ATgl.js → AdminParameters-CqgvhRsb.js} +120 -105
- package/dist/admin/AdminParameters-CqgvhRsb.js.map +1 -0
- package/dist/admin/{AdminSessions-BhGJPI3z.js → AdminSessions-Bz5NRuoW.js} +48 -53
- package/dist/admin/AdminSessions-Bz5NRuoW.js.map +1 -0
- package/dist/admin/{AdminUserLayout-BdC4Te8m.js → AdminUserLayout-lXT6I0Qq.js} +14 -8
- package/dist/admin/AdminUserLayout-lXT6I0Qq.js.map +1 -0
- package/dist/admin/{AdminUserProfile-DAt23fqY.js → AdminUserProfile-vFBLoJ3h.js} +3 -3
- package/dist/admin/{AdminUserProfile-DAt23fqY.js.map → AdminUserProfile-vFBLoJ3h.js.map} +1 -1
- package/dist/admin/{AdminUserSessions-1uzcx02z.js → AdminUserSessions-CT_YDim0.js} +33 -35
- package/dist/admin/AdminUserSessions-CT_YDim0.js.map +1 -0
- package/dist/admin/AdminUsers-D1UfGya9.js +206 -0
- package/dist/admin/AdminUsers-D1UfGya9.js.map +1 -0
- package/dist/admin/{AuthLayout-DFJvCvzw.js → AuthLayout-_frhdgOO.js} +2 -2
- package/dist/admin/{AuthLayout-DFJvCvzw.js.map → AuthLayout-_frhdgOO.js.map} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js → IconGoogle-Ch1m3Uzl.js} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js.map → IconGoogle-Ch1m3Uzl.js.map} +1 -1
- package/dist/admin/Login-xtNmQtGh.js +275 -0
- package/dist/admin/Login-xtNmQtGh.js.map +1 -0
- package/dist/{auth/Profile-BMX_Ar_s.js → admin/Profile-_AtPUwAP.js} +31 -27
- package/dist/admin/Profile-_AtPUwAP.js.map +1 -0
- package/dist/admin/{Register-Cs10l8vX.js → Register-JcCjHUUn.js} +199 -143
- package/dist/admin/Register-JcCjHUUn.js.map +1 -0
- package/dist/admin/{ResetPassword-BwDdfkGH.js → ResetPassword-CwGBPLJO.js} +7 -7
- package/dist/admin/ResetPassword-CwGBPLJO.js.map +1 -0
- package/dist/admin/{VerifyEmail-DfXHAiQl.js → VerifyEmail-hNxWejWf.js} +23 -8
- package/dist/admin/VerifyEmail-hNxWejWf.js.map +1 -0
- package/dist/admin/{core-2xoLiT0o.js → core-CYaRQ8O-.js} +2082 -688
- package/dist/admin/core-CYaRQ8O-.js.map +1 -0
- package/dist/admin/index.d.ts +112 -48
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +467 -69
- package/dist/admin/index.js.map +1 -1
- package/dist/auth/{AuthLayout-CAE1pX9s.js → AuthLayout-AvLlcLjS.js} +2 -2
- package/dist/auth/{AuthLayout-CAE1pX9s.js.map → AuthLayout-AvLlcLjS.js.map} +1 -1
- package/dist/auth/Login-BA1E8IZl.js +275 -0
- package/dist/auth/Login-BA1E8IZl.js.map +1 -0
- package/dist/{admin/Profile-B-c9pCPf.js → auth/Profile-YcWdeuFz.js} +31 -27
- package/dist/auth/Profile-YcWdeuFz.js.map +1 -0
- package/dist/auth/{Register-6hi_cpfF.js → Register-CPhEO5MG.js} +198 -142
- package/dist/auth/Register-CPhEO5MG.js.map +1 -0
- package/dist/{demo/ResetPassword-DWN0lzr5.js → auth/ResetPassword-DCtGcneA.js} +7 -7
- package/dist/auth/ResetPassword-DCtGcneA.js.map +1 -0
- package/dist/{demo/VerifyEmail-DZWL72K4.js → auth/VerifyEmail-DkH7NBfn.js} +23 -8
- package/dist/auth/VerifyEmail-DkH7NBfn.js.map +1 -0
- package/dist/auth/{core-niW0sFLv.js → core-D5jIAVF2.js} +1385 -329
- package/dist/auth/core-D5jIAVF2.js.map +1 -0
- package/dist/auth/index.d.ts +105 -49
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +29 -26
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +210 -74
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2247 -834
- package/dist/core/index.js.map +1 -1
- package/dist/demo/{AuthLayout-jLa0aKsI.js → AuthLayout-Brri4A-L.js} +2 -2
- package/dist/demo/{AuthLayout-jLa0aKsI.js.map → AuthLayout-Brri4A-L.js.map} +1 -1
- package/dist/demo/DemoButton-wiCxZZ_L.js +182 -0
- package/dist/demo/DemoButton-wiCxZZ_L.js.map +1 -0
- package/dist/demo/DemoControlSelect-D7ILObVg.js +305 -0
- package/dist/demo/DemoControlSelect-D7ILObVg.js.map +1 -0
- package/dist/demo/DemoDataTable-DZ5Y8pFX.js +362 -0
- package/dist/demo/DemoDataTable-DZ5Y8pFX.js.map +1 -0
- package/dist/demo/{DemoDialog-4ItHLf9t.js → DemoDialog-CUWdLHim.js} +2 -2
- package/dist/demo/{DemoDialog-4ItHLf9t.js.map → DemoDialog-CUWdLHim.js.map} +1 -1
- package/dist/demo/{DemoFlex-EtVq8QfX.js → DemoFlex-a8OhMMvq.js} +3 -3
- package/dist/demo/{DemoFlex-EtVq8QfX.js.map → DemoFlex-a8OhMMvq.js.map} +1 -1
- package/dist/demo/{DemoHeading-BS-vGfkI.js → DemoHeading-C13OVDfS.js} +3 -3
- package/dist/demo/{DemoHeading-BS-vGfkI.js.map → DemoHeading-C13OVDfS.js.map} +1 -1
- package/dist/demo/{DemoHome-Clbn8AmS.js → DemoHome-D_De3UiT.js} +2 -2
- package/dist/demo/{DemoHome-Clbn8AmS.js.map → DemoHome-D_De3UiT.js.map} +1 -1
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js → DemoJsonViewer-B50s9aGM.js} +3 -3
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js.map → DemoJsonViewer-B50s9aGM.js.map} +1 -1
- package/dist/demo/{DemoLayout-C56xb5EE.js → DemoLayout-CHU8WTwO.js} +14 -5
- package/dist/demo/DemoLayout-CHU8WTwO.js.map +1 -0
- package/dist/demo/{DemoLogin-BZwpicOS.js → DemoLogin-BBlrWpml.js} +49 -32
- package/dist/demo/DemoLogin-BBlrWpml.js.map +1 -0
- package/dist/demo/{DemoRegister-C7_qc4MJ.js → DemoRegister-BuNE3_-f.js} +49 -50
- package/dist/demo/DemoRegister-BuNE3_-f.js.map +1 -0
- package/dist/demo/{DemoResetPassword-BI1Ct4Dw.js → DemoResetPassword-D_IjjjOJ.js} +12 -16
- package/dist/demo/DemoResetPassword-D_IjjjOJ.js.map +1 -0
- package/dist/demo/{DemoSidebar-CcBo4ltC.js → DemoSidebar-Giy2HRBD.js} +3 -3
- package/dist/demo/{DemoSidebar-CcBo4ltC.js.map → DemoSidebar-Giy2HRBD.js.map} +1 -1
- package/dist/demo/{DemoText-CzXuUn3g.js → DemoText-ubcw-vog.js} +3 -3
- package/dist/demo/{DemoText-CzXuUn3g.js.map → DemoText-ubcw-vog.js.map} +1 -1
- package/dist/demo/{DemoToast-BgHDhWrX.js → DemoToast-9die_dYT.js} +2 -2
- package/dist/demo/{DemoToast-BgHDhWrX.js.map → DemoToast-9die_dYT.js.map} +1 -1
- package/dist/demo/{DemoTypeForm-DDzWoMSV.js → DemoTypeForm-D_d6OVKL.js} +8 -4
- package/dist/demo/DemoTypeForm-D_d6OVKL.js.map +1 -0
- package/dist/demo/DemoVerifyEmail-B43KlF4F.js +34 -0
- package/dist/demo/DemoVerifyEmail-B43KlF4F.js.map +1 -0
- package/dist/demo/Login-C12N4oGs.js +275 -0
- package/dist/demo/Login-C12N4oGs.js.map +1 -0
- package/dist/demo/{Profile-CWqti7FB.js → Profile-DS5q4vOh.js} +31 -27
- package/dist/demo/Profile-DS5q4vOh.js.map +1 -0
- package/dist/demo/{Register-a70LPgs2.js → Register-B4hLBeEv.js} +198 -142
- package/dist/demo/Register-B4hLBeEv.js.map +1 -0
- package/dist/{auth/ResetPassword-CqfTk1FI.js → demo/ResetPassword-D8g9ha1N.js} +7 -7
- package/dist/demo/ResetPassword-D8g9ha1N.js.map +1 -0
- package/dist/demo/{Showcase-Dq3MISpd.js → Showcase-D6Fxt4X4.js} +64 -65
- package/dist/demo/Showcase-D6Fxt4X4.js.map +1 -0
- package/dist/{auth/VerifyEmail-nWiSTMjF.js → demo/VerifyEmail-BjDo0cZA.js} +23 -8
- package/dist/demo/VerifyEmail-BjDo0cZA.js.map +1 -0
- package/dist/demo/{auth-d6n3xbug.js → auth-ByVTreDl.js} +8 -8
- package/dist/demo/{auth-d6n3xbug.js.map → auth-ByVTreDl.js.map} +1 -1
- package/dist/demo/{core-RCUw1Q-a.js → core-DFgB3yU4.js} +2182 -756
- package/dist/demo/core-DFgB3yU4.js.map +1 -0
- package/dist/demo/index.d.ts +1 -0
- package/dist/demo/index.d.ts.map +1 -1
- package/dist/demo/index.js +24 -18
- package/dist/demo/index.js.map +1 -1
- package/package.json +7 -7
- package/src/admin/{AdminRouter.ts → AdminRouter.tsx} +150 -18
- package/src/admin/components/AdminDashboard.tsx +52 -0
- package/src/admin/components/AdminLayout.tsx +32 -40
- package/src/admin/components/audits/AdminAudits.tsx +22 -16
- package/src/admin/components/files/AdminFiles.tsx +1 -6
- package/src/admin/components/jobs/AdminJobExecutions.tsx +33 -39
- package/src/admin/components/jobs/AdminJobRegistry.tsx +9 -18
- package/src/admin/components/keys/AdminApiKeys.tsx +23 -41
- package/src/admin/components/notifications/AdminNotifications.tsx +519 -0
- package/src/admin/components/parameters/ParameterDetails.tsx +12 -270
- package/src/admin/components/parameters/ParameterDetailsConfigForm.tsx +238 -0
- package/src/admin/components/parameters/ParameterDetailsLoading.tsx +24 -0
- package/src/admin/components/parameters/ParameterHistory.tsx +10 -11
- package/src/admin/components/parameters/ParameterTree.tsx +28 -184
- package/src/admin/components/parameters/ParameterTreeNode.tsx +151 -0
- package/src/admin/components/sessions/AdminSessions.tsx +71 -71
- package/src/admin/components/shared/AdminResourceHeader.tsx +2 -25
- package/src/admin/components/shared/AdminResourceHeaderMenuItem.tsx +37 -0
- package/src/admin/components/shared/AdminResourceTabs.tsx +2 -26
- package/src/admin/components/shared/AdminResourceTabsItem.tsx +36 -0
- package/src/admin/components/users/AdminUserSessions.tsx +33 -31
- package/src/admin/components/users/AdminUsers.tsx +184 -72
- package/src/admin/index.ts +2 -2
- package/src/admin/primitives/$uiAdmin.ts +1 -1
- package/src/auth/components/Login.tsx +188 -121
- package/src/auth/components/Profile.tsx +1 -22
- package/src/auth/components/ProfileField.tsx +39 -0
- package/src/auth/components/Register.tsx +215 -158
- package/src/auth/components/ResetPassword.tsx +7 -11
- package/src/auth/components/VerifyEmail.tsx +35 -10
- package/src/auth/components/buttons/UserButton.tsx +20 -24
- package/src/auth/index.ts +1 -0
- package/src/core/atoms/alephaSidebarAtom.ts +1 -1
- package/src/core/atoms/alephaThemeListAtom.ts +14 -1
- package/src/core/atoms/alephaThemeOverridesAtom.ts +17 -0
- package/src/core/atoms/themes/editorial.ts +184 -0
- package/src/core/atoms/themes/monochrome.ts +197 -0
- package/src/core/atoms/themes/rosePine.ts +208 -0
- package/src/core/atoms/themes/softBrutalism.ts +221 -0
- package/src/core/atoms/themes/terminal.ts +186 -0
- package/src/core/components/Flex.tsx +101 -1
- package/src/core/components/Text.tsx +1 -1
- package/src/core/components/buttons/ActionButton.tsx +109 -87
- package/src/core/components/buttons/DarkModeButton.tsx +3 -3
- package/src/core/components/buttons/LanguageButton.tsx +1 -1
- package/src/core/components/buttons/OmnibarButton.tsx +1 -2
- package/src/core/components/buttons/ThemeButton.tsx +40 -11
- package/src/core/components/buttons/ThemeExpertModal.tsx +184 -0
- package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -2
- package/src/core/components/data/DetailDrawer.tsx +102 -96
- package/src/core/components/data/DetailList.tsx +2 -1
- package/src/core/components/layout/AppBar.tsx +10 -0
- package/src/core/components/layout/Breadcrumb.tsx +3 -6
- package/src/core/components/layout/DashboardShell.tsx +28 -11
- package/src/core/components/layout/Sidebar.tsx +18 -235
- package/src/core/components/layout/SidebarCollapsedItem.tsx +91 -0
- package/src/core/components/layout/SidebarItem.tsx +146 -0
- package/src/core/components/layout/index.ts +3 -1
- package/src/core/constants/ui.ts +5 -5
- package/src/core/form/components/Control.tsx +31 -29
- package/src/core/form/components/ControlArray.tsx +13 -39
- package/src/core/form/components/ControlDate.tsx +10 -21
- package/src/core/form/components/ControlNumber.tsx +4 -33
- package/src/core/form/components/ControlQueryBuilder.tsx +12 -175
- package/src/core/form/components/ControlQueryBuilderHelp.tsx +165 -0
- package/src/core/form/components/ControlSelect.browser.spec.tsx +343 -0
- package/src/core/form/components/ControlSelect.tsx +294 -92
- package/src/core/form/components/TypeForm.browser.spec.tsx +3 -3
- package/src/core/form/components/TypeForm.tsx +5 -2
- package/src/core/form/index.ts +8 -1
- package/src/core/form/utils/parseInput.ts +7 -3
- package/src/core/hooks/useTheme.ts +26 -3
- package/src/core/index.ts +9 -2
- package/src/core/interfaces/AlephaTheme.ts +2 -0
- package/src/core/json/components/JsonViewer.tsx +103 -319
- package/src/core/json/components/JsonViewerCopyButton.tsx +46 -0
- package/src/core/json/components/JsonViewerRowNode.tsx +120 -0
- package/src/core/json/components/JsonViewerShared.ts +76 -0
- package/src/core/providers/ThemeProvider.ts +108 -8
- package/src/core/services/DialogService.tsx +24 -3
- package/src/core/styles.css +33 -20
- package/src/core/table/components/ColumnPicker.tsx +3 -3
- package/src/core/table/components/DataTable.tsx +233 -143
- package/src/core/table/components/DataTableFilters.tsx +6 -16
- package/src/core/table/components/DataTablePagination.tsx +58 -29
- package/src/core/table/components/DataTableToolbar.tsx +16 -7
- package/src/core/table/components/FilterPicker.tsx +3 -3
- package/src/core/table/index.ts +1 -0
- package/src/core/table/interfaces/types.ts +42 -9
- package/src/core/utils/icons.tsx +2 -2
- package/src/demo/DemoRouter.ts +8 -1
- package/src/demo/components/DemoLayout.tsx +12 -2
- package/src/demo/components/auth/DemoLogin.tsx +35 -28
- package/src/demo/components/auth/DemoRegister.tsx +35 -49
- package/src/demo/components/auth/DemoResetPassword.tsx +5 -9
- package/src/demo/components/auth/DemoVerifyEmail.tsx +7 -6
- package/src/demo/components/core/DemoButton.tsx +123 -103
- package/src/demo/components/core/DemoControlSelect.tsx +325 -0
- package/src/demo/components/core/DemoDataTable.tsx +255 -241
- package/src/demo/components/core/DemoTypeForm.tsx +7 -2
- package/src/demo/components/shared/MacWindow.tsx +5 -11
- package/src/demo/components/shared/Showcase.tsx +28 -42
- package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +0 -1
- package/dist/admin/AdminAudits-Bgbf04hO.js.map +0 -1
- package/dist/admin/AdminFiles-B9a7G3cY.js.map +0 -1
- package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +0 -1
- package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +0 -1
- package/dist/admin/AdminLayout-DHsvWxVB.js +0 -70
- package/dist/admin/AdminLayout-DHsvWxVB.js.map +0 -1
- package/dist/admin/AdminParameters-DHw9ATgl.js.map +0 -1
- package/dist/admin/AdminSessions-BhGJPI3z.js.map +0 -1
- package/dist/admin/AdminUserLayout-BdC4Te8m.js.map +0 -1
- package/dist/admin/AdminUserSessions-1uzcx02z.js.map +0 -1
- package/dist/admin/AdminUsers-C85c3eiQ.js +0 -121
- package/dist/admin/AdminUsers-C85c3eiQ.js.map +0 -1
- package/dist/admin/Login-BGheURrg.js +0 -219
- package/dist/admin/Login-BGheURrg.js.map +0 -1
- package/dist/admin/Profile-B-c9pCPf.js.map +0 -1
- package/dist/admin/Register-Cs10l8vX.js.map +0 -1
- package/dist/admin/ResetPassword-BwDdfkGH.js.map +0 -1
- package/dist/admin/VerifyEmail-DfXHAiQl.js.map +0 -1
- package/dist/admin/auth-Dr0Cf8I7.js +0 -319
- package/dist/admin/auth-Dr0Cf8I7.js.map +0 -1
- package/dist/admin/core-2xoLiT0o.js.map +0 -1
- package/dist/auth/Login-Denw_UGy.js +0 -219
- package/dist/auth/Login-Denw_UGy.js.map +0 -1
- package/dist/auth/Profile-BMX_Ar_s.js.map +0 -1
- package/dist/auth/Register-6hi_cpfF.js.map +0 -1
- package/dist/auth/ResetPassword-CqfTk1FI.js.map +0 -1
- package/dist/auth/VerifyEmail-nWiSTMjF.js.map +0 -1
- package/dist/auth/core-niW0sFLv.js.map +0 -1
- package/dist/demo/DemoButton-BmaWZVwf.js +0 -178
- package/dist/demo/DemoButton-BmaWZVwf.js.map +0 -1
- package/dist/demo/DemoDataTable-Z9xyV221.js +0 -362
- package/dist/demo/DemoDataTable-Z9xyV221.js.map +0 -1
- package/dist/demo/DemoLayout-C56xb5EE.js.map +0 -1
- package/dist/demo/DemoLogin-BZwpicOS.js.map +0 -1
- package/dist/demo/DemoRegister-C7_qc4MJ.js.map +0 -1
- package/dist/demo/DemoResetPassword-BI1Ct4Dw.js.map +0 -1
- package/dist/demo/DemoTypeForm-DDzWoMSV.js.map +0 -1
- package/dist/demo/DemoVerifyEmail-C_Irdnov.js +0 -30
- package/dist/demo/DemoVerifyEmail-C_Irdnov.js.map +0 -1
- package/dist/demo/Login-hSOU3jZc.js +0 -219
- package/dist/demo/Login-hSOU3jZc.js.map +0 -1
- package/dist/demo/Profile-CWqti7FB.js.map +0 -1
- package/dist/demo/Register-a70LPgs2.js.map +0 -1
- package/dist/demo/ResetPassword-DWN0lzr5.js.map +0 -1
- package/dist/demo/Showcase-Dq3MISpd.js.map +0 -1
- package/dist/demo/VerifyEmail-DZWL72K4.js.map +0 -1
- package/dist/demo/core-RCUw1Q-a.js.map +0 -1
- package/src/demo/styles.css +0 -0
package/dist/admin/index.js
CHANGED
|
@@ -1,17 +1,330 @@
|
|
|
1
|
-
import { t as AlephaUI } from "./core-
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import "./
|
|
5
|
-
import "./
|
|
6
|
-
import "./
|
|
7
|
-
import "
|
|
8
|
-
import { $
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { _ as ActionButton, c as Breadcrumb, h as LanguageButton, p as ThemeButton, t as AlephaUI, v as ui, x as alephaSidebarAtom } from "./core-CYaRQ8O-.js";
|
|
2
|
+
import "./IconGoogle-Ch1m3Uzl.js";
|
|
3
|
+
import "./Login-xtNmQtGh.js";
|
|
4
|
+
import "./Register-JcCjHUUn.js";
|
|
5
|
+
import "./ResetPassword-CwGBPLJO.js";
|
|
6
|
+
import "./VerifyEmail-hNxWejWf.js";
|
|
7
|
+
import { $context, $inject, $module, AlephaError, t } from "alepha";
|
|
8
|
+
import { $dictionary, AlephaReactI18n } from "alepha/react/i18n";
|
|
9
|
+
import { $cookie } from "alepha/server/cookies";
|
|
10
|
+
import { Avatar } from "@mantine/core";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
import { IconBell, IconClock, IconDashboard, IconDevices, IconFile, IconHistory, IconKey, IconLayoutDashboard, IconListDetails, IconLockPassword, IconLogin2, IconLogout, IconLogout2, IconMailCheck, IconPasswordUser, IconSettings, IconTerminal2, IconUser, IconUserPlus, IconUsers } from "@tabler/icons-react";
|
|
13
|
+
import { $page, ReactPageProvider, ReactRouter, Redirection, useRouter } from "alepha/react/router";
|
|
14
|
+
import { useClient, useInject } from "alepha/react";
|
|
15
|
+
import { AlephaReactAuth, ReactAuth, useAuth } from "alepha/react/auth";
|
|
12
16
|
import { $client } from "alepha/server/links";
|
|
13
17
|
|
|
14
|
-
//#region ../../src/
|
|
18
|
+
//#region ../../src/auth/AuthI18n.ts
|
|
19
|
+
var AuthI18n = class {
|
|
20
|
+
en = $dictionary({
|
|
21
|
+
name: "alepha.ui.auth.en",
|
|
22
|
+
lazy: () => ({ default: {
|
|
23
|
+
loginSignIn: "Sign in",
|
|
24
|
+
loginContinueWith: "Continue with $1",
|
|
25
|
+
loginOr: "OR",
|
|
26
|
+
loginCancel: "Cancel",
|
|
27
|
+
loginForgotPassword: "Forgot password?",
|
|
28
|
+
loginNoAccount: "Don't have an account?",
|
|
29
|
+
loginSignUp: "Sign up",
|
|
30
|
+
loginUsername: "Username",
|
|
31
|
+
loginEmail: "Email",
|
|
32
|
+
loginPhone: "Phone number",
|
|
33
|
+
loginPassword: "Password",
|
|
34
|
+
registerCreateAccount: "Create account",
|
|
35
|
+
registerContinueWith: "Continue with $1",
|
|
36
|
+
registerOr: "OR",
|
|
37
|
+
registerCancel: "Cancel",
|
|
38
|
+
registerHaveAccount: "Already have an account?",
|
|
39
|
+
registerSignIn: "Sign in",
|
|
40
|
+
registerUsername: "Username",
|
|
41
|
+
registerEmail: "Email",
|
|
42
|
+
registerPhone: "Phone number",
|
|
43
|
+
registerPassword: "Password",
|
|
44
|
+
registerConfirmPassword: "Confirm password",
|
|
45
|
+
registerDisabled: "Registration is not available. Please contact your administrator.",
|
|
46
|
+
registerBackToSignIn: "Back to sign in",
|
|
47
|
+
registerVerifyTitle: "Verify your account",
|
|
48
|
+
registerVerifyDescription: "Please enter the verification code(s) sent to you.",
|
|
49
|
+
registerEmailCode: "Email verification code",
|
|
50
|
+
registerPhoneCode: "Phone verification code",
|
|
51
|
+
registerVerifySubmit: "Complete Registration",
|
|
52
|
+
registerVerifyBack: "Back to registration",
|
|
53
|
+
resetPasswordTitle: "Reset password",
|
|
54
|
+
resetPasswordEmail: "Email",
|
|
55
|
+
resetPasswordEnterEmail: "Enter your email address to reset your password",
|
|
56
|
+
resetPasswordSendCode: "Send verification code",
|
|
57
|
+
resetPasswordCodeSent: "We've sent a verification code to your email.",
|
|
58
|
+
resetPasswordEnterCode: "Enter the 6-digit code",
|
|
59
|
+
resetPasswordResendCode: "Resend code",
|
|
60
|
+
resetPasswordEnterNewPassword: "Create your new password",
|
|
61
|
+
resetPasswordNewPassword: "New password",
|
|
62
|
+
resetPasswordConfirmPassword: "Confirm password",
|
|
63
|
+
resetPasswordSetNewPassword: "Set new password",
|
|
64
|
+
resetPasswordSuccess: "Your password has been reset successfully.",
|
|
65
|
+
resetPasswordBackToSignIn: "Back to sign in",
|
|
66
|
+
resetPasswordCancel: "Cancel",
|
|
67
|
+
resetPasswordDisabled: "Password reset is not available. Please contact your administrator.",
|
|
68
|
+
verifyEmailTitle: "Email Verification",
|
|
69
|
+
verifyEmailVerifying: "Verifying your email...",
|
|
70
|
+
verifyEmailPleaseWait: "Please wait while we verify your email address.",
|
|
71
|
+
verifyEmailSuccess: "Your email has been verified successfully.",
|
|
72
|
+
verifyEmailFailed: "Failed to verify your email. The link may have expired or is invalid.",
|
|
73
|
+
verifyEmailMissingParams: "Invalid verification link. Email and token are required.",
|
|
74
|
+
verifyEmailSignIn: "Sign in to your account",
|
|
75
|
+
verifyEmailBackToSignIn: "Back to sign in"
|
|
76
|
+
} })
|
|
77
|
+
});
|
|
78
|
+
fr = $dictionary({ lazy: () => ({ default: {
|
|
79
|
+
loginSignIn: "Se connecter",
|
|
80
|
+
loginContinueWith: "Continuer avec $1",
|
|
81
|
+
loginOr: "OU",
|
|
82
|
+
loginCancel: "Annuler",
|
|
83
|
+
loginForgotPassword: "Mot de passe oublié ?",
|
|
84
|
+
loginNoAccount: "Vous n'avez pas de compte ?",
|
|
85
|
+
loginSignUp: "S'inscrire",
|
|
86
|
+
loginUsername: "Nom d'utilisateur",
|
|
87
|
+
loginEmail: "E-mail",
|
|
88
|
+
loginPhone: "Numéro de téléphone",
|
|
89
|
+
loginPassword: "Mot de passe",
|
|
90
|
+
registerCreateAccount: "Créer un compte",
|
|
91
|
+
registerContinueWith: "Continuer avec $1",
|
|
92
|
+
registerOr: "OU",
|
|
93
|
+
registerCancel: "Annuler",
|
|
94
|
+
registerHaveAccount: "Vous avez déjà un compte ?",
|
|
95
|
+
registerSignIn: "Se connecter",
|
|
96
|
+
registerUsername: "Nom d'utilisateur",
|
|
97
|
+
registerEmail: "E-mail",
|
|
98
|
+
registerPhone: "Numéro de téléphone",
|
|
99
|
+
registerPassword: "Mot de passe",
|
|
100
|
+
registerConfirmPassword: "Confirmer le mot de passe",
|
|
101
|
+
registerDisabled: "L'inscription n'est pas disponible. Veuillez contacter votre administrateur.",
|
|
102
|
+
registerBackToSignIn: "Retour à la connexion",
|
|
103
|
+
registerVerifyTitle: "Vérifiez votre compte",
|
|
104
|
+
registerVerifyDescription: "Veuillez entrer le(s) code(s) de vérification qui vous ont été envoyés.",
|
|
105
|
+
registerEmailCode: "Code de vérification par e-mail",
|
|
106
|
+
registerPhoneCode: "Code de vérification par téléphone",
|
|
107
|
+
registerVerifySubmit: "Terminer l'inscription",
|
|
108
|
+
registerVerifyBack: "Retour à l'inscription",
|
|
109
|
+
resetPasswordTitle: "Réinitialiser le mot de passe",
|
|
110
|
+
resetPasswordEmail: "E-mail",
|
|
111
|
+
resetPasswordEnterEmail: "Entrez votre adresse e-mail pour réinitialiser votre mot de passe",
|
|
112
|
+
resetPasswordSendCode: "Envoyer le code de vérification",
|
|
113
|
+
resetPasswordCodeSent: "Nous avons envoyé un code de vérification à votre e-mail.",
|
|
114
|
+
resetPasswordEnterCode: "Entrez le code à 6 chiffres",
|
|
115
|
+
resetPasswordResendCode: "Renvoyer le code",
|
|
116
|
+
resetPasswordEnterNewPassword: "Créez votre nouveau mot de passe",
|
|
117
|
+
resetPasswordNewPassword: "Nouveau mot de passe",
|
|
118
|
+
resetPasswordConfirmPassword: "Confirmer le mot de passe",
|
|
119
|
+
resetPasswordSetNewPassword: "Définir le nouveau mot de passe",
|
|
120
|
+
resetPasswordSuccess: "Votre mot de passe a été réinitialisé avec succès.",
|
|
121
|
+
resetPasswordBackToSignIn: "Retour à la connexion",
|
|
122
|
+
resetPasswordCancel: "Annuler",
|
|
123
|
+
resetPasswordDisabled: "La réinitialisation du mot de passe n'est pas disponible. Veuillez contacter votre administrateur.",
|
|
124
|
+
verifyEmailTitle: "Vérification de l'e-mail",
|
|
125
|
+
verifyEmailVerifying: "Vérification de votre e-mail...",
|
|
126
|
+
verifyEmailPleaseWait: "Veuillez patienter pendant que nous vérifions votre adresse e-mail.",
|
|
127
|
+
verifyEmailSuccess: "Votre e-mail a été vérifié avec succès.",
|
|
128
|
+
verifyEmailFailed: "Échec de la vérification de votre e-mail. Le lien a peut-être expiré ou est invalide.",
|
|
129
|
+
verifyEmailMissingParams: "Lien de vérification invalide. L'e-mail et le jeton sont requis.",
|
|
130
|
+
verifyEmailSignIn: "Se connecter à votre compte",
|
|
131
|
+
verifyEmailBackToSignIn: "Retour à la connexion"
|
|
132
|
+
} }) });
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region ../../src/auth/AuthRouter.ts
|
|
137
|
+
/**
|
|
138
|
+
* Schema for realm query parameter used across auth pages.
|
|
139
|
+
*/
|
|
140
|
+
const realmQuerySchema = t.object({
|
|
141
|
+
r: t.optional(t.string({ description: "Redirect URL after authentication" })),
|
|
142
|
+
realm: t.optional(t.string({ description: "User realm name for multi-tenant auth" }))
|
|
143
|
+
});
|
|
144
|
+
var AuthRouter = class {
|
|
145
|
+
realmClient = $client();
|
|
146
|
+
auth = $inject(ReactAuth);
|
|
147
|
+
authLayout = $page({
|
|
148
|
+
label: "Auth",
|
|
149
|
+
path: "/auth",
|
|
150
|
+
lazy: () => import("./AuthLayout-_frhdgOO.js"),
|
|
151
|
+
children: () => [
|
|
152
|
+
this.login,
|
|
153
|
+
this.register,
|
|
154
|
+
this.resetPassword,
|
|
155
|
+
this.verifyEmail,
|
|
156
|
+
this.profile
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
login = $page({
|
|
160
|
+
icon: IconLogin2,
|
|
161
|
+
label: "Sign In",
|
|
162
|
+
description: "Sign in to your account",
|
|
163
|
+
path: "/login",
|
|
164
|
+
schema: { query: realmQuerySchema },
|
|
165
|
+
lazy: () => import("./Login-xtNmQtGh.js").then((n) => n.t),
|
|
166
|
+
loader: async ({ query, user }) => {
|
|
167
|
+
if (user) throw new Redirection(query.r || "/");
|
|
168
|
+
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
register = $page({
|
|
172
|
+
icon: IconUserPlus,
|
|
173
|
+
label: "Register",
|
|
174
|
+
description: "Create a new account",
|
|
175
|
+
path: "/register",
|
|
176
|
+
schema: { query: realmQuerySchema },
|
|
177
|
+
lazy: () => import("./Register-JcCjHUUn.js").then((n) => n.t),
|
|
178
|
+
loader: async ({ query, user }) => {
|
|
179
|
+
if (user) throw new Redirection(query.r || "/");
|
|
180
|
+
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
resetPassword = $page({
|
|
184
|
+
icon: IconPasswordUser,
|
|
185
|
+
label: "Reset Password",
|
|
186
|
+
description: "Reset your account password",
|
|
187
|
+
path: "/reset-password",
|
|
188
|
+
schema: { query: realmQuerySchema },
|
|
189
|
+
lazy: () => import("./ResetPassword-CwGBPLJO.js").then((n) => n.t),
|
|
190
|
+
loader: async ({ query, user }) => {
|
|
191
|
+
if (user) throw new Redirection(query.r || "/");
|
|
192
|
+
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
verifyEmail = $page({
|
|
196
|
+
icon: IconMailCheck,
|
|
197
|
+
label: "Verify Email",
|
|
198
|
+
description: "Verify your email address",
|
|
199
|
+
path: "/verify-email",
|
|
200
|
+
schema: { query: t.object({
|
|
201
|
+
email: t.optional(t.string()),
|
|
202
|
+
token: t.optional(t.string())
|
|
203
|
+
}) },
|
|
204
|
+
lazy: () => import("./VerifyEmail-hNxWejWf.js").then((n) => n.t)
|
|
205
|
+
});
|
|
206
|
+
logout = $page({
|
|
207
|
+
icon: IconLogout2,
|
|
208
|
+
label: "Sign Out",
|
|
209
|
+
description: "Sign out of your account",
|
|
210
|
+
path: "/logout",
|
|
211
|
+
component: () => null,
|
|
212
|
+
loader: () => {
|
|
213
|
+
this.auth.logout();
|
|
214
|
+
return {};
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
profile = $page({
|
|
218
|
+
name: "userProfile",
|
|
219
|
+
icon: IconUser,
|
|
220
|
+
label: "Profile",
|
|
221
|
+
description: "View your profile",
|
|
222
|
+
path: "/profile",
|
|
223
|
+
can: () => !!this.auth.user,
|
|
224
|
+
lazy: () => import("./Profile-_AtPUwAP.js")
|
|
225
|
+
});
|
|
226
|
+
async loadRealmConfig(realmName) {
|
|
227
|
+
try {
|
|
228
|
+
return await this.realmClient.getRealmConfig({ query: { realmName } });
|
|
229
|
+
} catch (e) {
|
|
230
|
+
if (e instanceof AlephaError) throw new AlephaError("Missing Realm Configuration - Did you forget to add '$realm()' to your application?", e);
|
|
231
|
+
throw e;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
//#endregion
|
|
237
|
+
//#region ../../src/auth/components/buttons/UserButton.tsx
|
|
238
|
+
const UserButton = (props) => {
|
|
239
|
+
const { menuItems = [], logoutLabel = "Sign out", loginLabel, menuConfig, icon, skipProfile = false, children, ...buttonProps } = props;
|
|
240
|
+
buttonProps.variant ??= "default";
|
|
241
|
+
const adminUserCtrl = useClient();
|
|
242
|
+
const pages = useInject(ReactPageProvider);
|
|
243
|
+
const auth = useAuth();
|
|
244
|
+
const isConnected = !!auth.user;
|
|
245
|
+
const isAdmin = isConnected && adminUserCtrl.findUsers.can();
|
|
246
|
+
const userPage = pages.getPages().find((it) => it.name === "userProfile");
|
|
247
|
+
const adminPage = pages.getPages().find((it) => it.name === "adminLayout");
|
|
248
|
+
const authRouter = useRouter();
|
|
249
|
+
if (!auth.user) return /* @__PURE__ */ jsx(ActionButton, {
|
|
250
|
+
...buttonProps,
|
|
251
|
+
icon: icon === null ? void 0 : icon ?? IconLogin2,
|
|
252
|
+
href: authRouter.path("login"),
|
|
253
|
+
children: loginLabel ?? children
|
|
254
|
+
});
|
|
255
|
+
const items = [];
|
|
256
|
+
if (auth.user.email && auth.user.username) items.push({
|
|
257
|
+
type: "label",
|
|
258
|
+
label: auth.user.email
|
|
259
|
+
});
|
|
260
|
+
if (userPage && isConnected && !skipProfile) items.push({
|
|
261
|
+
label: "Profile",
|
|
262
|
+
icon: /* @__PURE__ */ jsx(IconUser, { size: ui.sizes.icon.sm }),
|
|
263
|
+
href: authRouter.path("userProfile")
|
|
264
|
+
});
|
|
265
|
+
if (adminPage && isAdmin) items.push({
|
|
266
|
+
label: "Admin",
|
|
267
|
+
icon: /* @__PURE__ */ jsx(IconSettings, { size: ui.sizes.icon.sm }),
|
|
268
|
+
href: authRouter.path("adminLayout")
|
|
269
|
+
});
|
|
270
|
+
items.push(...menuItems);
|
|
271
|
+
if (items.length > 0) items.push({ type: "divider" });
|
|
272
|
+
items.push({
|
|
273
|
+
label: logoutLabel,
|
|
274
|
+
icon: /* @__PURE__ */ jsx(IconLogout, { size: ui.sizes.icon.sm }),
|
|
275
|
+
color: "red",
|
|
276
|
+
onClick: () => auth.logout()
|
|
277
|
+
});
|
|
278
|
+
const hasAvatar = icon === void 0 && auth.user.picture;
|
|
279
|
+
return /* @__PURE__ */ jsx(ActionButton, {
|
|
280
|
+
...buttonProps,
|
|
281
|
+
icon: hasAvatar ? void 0 : icon === null ? void 0 : icon ?? IconUser,
|
|
282
|
+
px: 8,
|
|
283
|
+
menu: {
|
|
284
|
+
menuProps: {
|
|
285
|
+
withArrow: true,
|
|
286
|
+
arrowSize: 12
|
|
287
|
+
},
|
|
288
|
+
position: "bottom",
|
|
289
|
+
width: 200,
|
|
290
|
+
...menuConfig,
|
|
291
|
+
items
|
|
292
|
+
},
|
|
293
|
+
children: hasAvatar ? /* @__PURE__ */ jsx(Avatar, {
|
|
294
|
+
src: `/api/files/${auth.user.picture}`,
|
|
295
|
+
size: 24,
|
|
296
|
+
radius: "xl"
|
|
297
|
+
}) : void 0
|
|
298
|
+
});
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
//#endregion
|
|
302
|
+
//#region ../../src/auth/index.ts
|
|
303
|
+
/**
|
|
304
|
+
* Authentication UI components.
|
|
305
|
+
*
|
|
306
|
+
* **Features:**
|
|
307
|
+
* - Login page component
|
|
308
|
+
* - Register page component
|
|
309
|
+
* - Reset password page component
|
|
310
|
+
* - Email verification page component
|
|
311
|
+
* - UserButton for user menu
|
|
312
|
+
*
|
|
313
|
+
* @module alepha.ui.auth
|
|
314
|
+
*/
|
|
315
|
+
const AlephaUIAuth = $module({
|
|
316
|
+
name: "alepha.ui.auth",
|
|
317
|
+
services: [
|
|
318
|
+
AlephaUI,
|
|
319
|
+
AlephaReactAuth,
|
|
320
|
+
AlephaReactI18n,
|
|
321
|
+
AuthRouter,
|
|
322
|
+
AuthI18n
|
|
323
|
+
]
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
//#endregion
|
|
327
|
+
//#region ../../src/admin/AdminRouter.tsx
|
|
15
328
|
var AdminRouter = class {
|
|
16
329
|
router = $inject(ReactRouter);
|
|
17
330
|
authRouter = $inject(AuthRouter);
|
|
@@ -23,58 +336,113 @@ var AdminRouter = class {
|
|
|
23
336
|
auditCtrl = $client();
|
|
24
337
|
jobCtrl = $client();
|
|
25
338
|
apiKeyCtrl = $client();
|
|
339
|
+
notificationCtrl = $client();
|
|
340
|
+
adminCookie = $cookie(alephaSidebarAtom, { name: "admin.sidebar" });
|
|
26
341
|
configFn = () => {
|
|
27
|
-
return {
|
|
342
|
+
return {
|
|
343
|
+
sidebarProps: { items: this.getDefaultSidebarItems() },
|
|
344
|
+
appBarProps: { items: this.getDefaultAppBarItems() }
|
|
345
|
+
};
|
|
28
346
|
};
|
|
347
|
+
getDefaultAppBarItems() {
|
|
348
|
+
return [
|
|
349
|
+
{
|
|
350
|
+
type: "burger",
|
|
351
|
+
position: "left"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
element: /* @__PURE__ */ jsx(Breadcrumb, {}),
|
|
355
|
+
position: "left"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
element: /* @__PURE__ */ jsx(UserButton, {}),
|
|
359
|
+
position: "right"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
element: /* @__PURE__ */ jsx(ThemeButton, { expert: true }),
|
|
363
|
+
position: "right"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
element: /* @__PURE__ */ jsx(LanguageButton, {}),
|
|
367
|
+
position: "right"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
type: "dark",
|
|
371
|
+
position: "right"
|
|
372
|
+
}
|
|
373
|
+
];
|
|
374
|
+
}
|
|
29
375
|
getDefaultSidebarItems() {
|
|
30
|
-
return [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
children: [
|
|
51
|
-
{
|
|
52
|
-
...this.router.node(this.adminFiles.name),
|
|
53
|
-
can: () => this.fileCtrl.findFiles.can()
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
...this.router.node(this.adminJobDashboard.name),
|
|
57
|
-
href: void 0,
|
|
58
|
-
can: () => this.jobCtrl.getJobRegistry.can(),
|
|
376
|
+
return [
|
|
377
|
+
{
|
|
378
|
+
position: "top",
|
|
379
|
+
type: "search"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
position: "top",
|
|
383
|
+
type: "spacer"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
label: "Dashboard",
|
|
387
|
+
href: "/admin",
|
|
388
|
+
icon: IconLayoutDashboard
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
type: "section",
|
|
392
|
+
label: "Security",
|
|
393
|
+
children: [{
|
|
394
|
+
label: "Identity",
|
|
395
|
+
icon: IconLockPassword,
|
|
59
396
|
children: [
|
|
60
397
|
{
|
|
61
|
-
...this.router.node(this.
|
|
62
|
-
|
|
398
|
+
...this.router.node(this.adminUsers.name),
|
|
399
|
+
can: () => this.userCtrl.findUsers.can()
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
...this.router.node(this.adminSessions.name),
|
|
403
|
+
can: () => this.sessionCtrl.findSessions.can()
|
|
63
404
|
},
|
|
64
|
-
{
|
|
65
|
-
|
|
405
|
+
{
|
|
406
|
+
...this.router.node(this.adminApiKeys.name),
|
|
407
|
+
can: () => this.apiKeyCtrl.findApiKeys.can()
|
|
408
|
+
}
|
|
66
409
|
]
|
|
67
|
-
},
|
|
68
|
-
{
|
|
410
|
+
}, {
|
|
69
411
|
...this.router.node(this.adminAudits.name),
|
|
70
412
|
can: () => this.auditCtrl.findAudits.can()
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
413
|
+
}]
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
type: "section",
|
|
417
|
+
label: "System",
|
|
418
|
+
children: [
|
|
419
|
+
{
|
|
420
|
+
...this.router.node(this.adminFiles.name),
|
|
421
|
+
can: () => this.fileCtrl.findFiles.can()
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
label: "Jobs",
|
|
425
|
+
icon: IconTerminal2,
|
|
426
|
+
children: [
|
|
427
|
+
{
|
|
428
|
+
...this.router.node(this.adminJobDashboard.name),
|
|
429
|
+
label: "Dashboard"
|
|
430
|
+
},
|
|
431
|
+
{ ...this.router.node(this.adminJobRegistry.name) },
|
|
432
|
+
{ ...this.router.node(this.adminJobExecutions.name) }
|
|
433
|
+
]
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
...this.router.node(this.adminNotifications.name),
|
|
437
|
+
can: () => this.notificationCtrl.findNotifications.can()
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
...this.router.node(this.adminParameters.name),
|
|
441
|
+
can: () => this.paramCtrl.getParameterTree.can()
|
|
442
|
+
}
|
|
443
|
+
]
|
|
444
|
+
}
|
|
445
|
+
];
|
|
78
446
|
}
|
|
79
447
|
adminShellProps() {
|
|
80
448
|
if (this.configFn) return this.configFn(this);
|
|
@@ -86,48 +454,64 @@ var AdminRouter = class {
|
|
|
86
454
|
adminLayout = $page({
|
|
87
455
|
path: "/admin",
|
|
88
456
|
label: "Admin",
|
|
89
|
-
|
|
457
|
+
head: {
|
|
458
|
+
title: "Admin Panel",
|
|
459
|
+
titleSeparator: " | "
|
|
460
|
+
},
|
|
461
|
+
lazy: () => import("./AdminLayout-I6TlUMPc.js"),
|
|
90
462
|
props: () => ({ adminShellProps: this.adminShellProps() }),
|
|
91
463
|
loader: ({ user, url }) => {
|
|
92
464
|
if (!user) throw this.onNotAuthorized(url);
|
|
93
465
|
return {};
|
|
94
466
|
}
|
|
95
467
|
});
|
|
468
|
+
adminDashboard = $page({
|
|
469
|
+
icon: IconLayoutDashboard,
|
|
470
|
+
parent: this.adminLayout,
|
|
471
|
+
path: "/",
|
|
472
|
+
label: "Dashboard",
|
|
473
|
+
lazy: () => import("./AdminDashboard-PhC_dZqo.js")
|
|
474
|
+
});
|
|
96
475
|
adminUsers = $page({
|
|
97
476
|
icon: IconUsers,
|
|
98
477
|
parent: this.adminLayout,
|
|
99
478
|
path: "/users",
|
|
100
479
|
label: "Users",
|
|
480
|
+
head: { title: "Users" },
|
|
101
481
|
description: "Manage application users and their roles.",
|
|
102
|
-
lazy: () => import("./AdminUsers-
|
|
482
|
+
lazy: () => import("./AdminUsers-D1UfGya9.js"),
|
|
103
483
|
can: () => this.userCtrl.findUsers.can()
|
|
104
484
|
});
|
|
105
485
|
adminUserLayout = $page({
|
|
106
486
|
parent: this.adminLayout,
|
|
107
487
|
path: "/users/:userId",
|
|
108
|
-
|
|
488
|
+
head: { title: "Users" },
|
|
489
|
+
lazy: () => import("./AdminUserLayout-lXT6I0Qq.js")
|
|
109
490
|
});
|
|
110
491
|
adminUserProfile = $page({
|
|
111
492
|
icon: IconUser,
|
|
112
493
|
parent: this.adminUserLayout,
|
|
113
494
|
path: "/",
|
|
114
495
|
label: "Profile",
|
|
115
|
-
|
|
496
|
+
head: { title: "User Profile" },
|
|
497
|
+
lazy: () => import("./AdminUserProfile-vFBLoJ3h.js")
|
|
116
498
|
});
|
|
117
499
|
adminUserSessions = $page({
|
|
118
500
|
icon: IconDevices,
|
|
119
501
|
parent: this.adminUserLayout,
|
|
120
502
|
path: "/sessions",
|
|
121
503
|
label: "Sessions",
|
|
122
|
-
|
|
504
|
+
head: { title: "User Sessions" },
|
|
505
|
+
lazy: () => import("./AdminUserSessions-CT_YDim0.js")
|
|
123
506
|
});
|
|
124
507
|
adminAudits = $page({
|
|
125
508
|
icon: IconHistory,
|
|
126
509
|
parent: this.adminLayout,
|
|
127
510
|
path: "/audits",
|
|
128
511
|
label: "Audit Log",
|
|
512
|
+
head: { title: "Audit Logs" },
|
|
129
513
|
description: "View system-wide audit trail and activity logs.",
|
|
130
|
-
lazy: () => import("./AdminAudits-
|
|
514
|
+
lazy: () => import("./AdminAudits-CKiFMSSU.js"),
|
|
131
515
|
can: () => this.auditCtrl.findAudits.can()
|
|
132
516
|
});
|
|
133
517
|
adminSessions = $page({
|
|
@@ -136,7 +520,8 @@ var AdminRouter = class {
|
|
|
136
520
|
path: "/sessions",
|
|
137
521
|
label: "Sessions",
|
|
138
522
|
description: "View and manage all active sessions.",
|
|
139
|
-
|
|
523
|
+
head: { title: "Sessions" },
|
|
524
|
+
lazy: () => import("./AdminSessions-Bz5NRuoW.js"),
|
|
140
525
|
can: () => this.sessionCtrl.findSessions.can()
|
|
141
526
|
});
|
|
142
527
|
adminFiles = $page({
|
|
@@ -145,7 +530,8 @@ var AdminRouter = class {
|
|
|
145
530
|
path: "/files",
|
|
146
531
|
label: "Files",
|
|
147
532
|
description: "Manage uploaded files and storage.",
|
|
148
|
-
|
|
533
|
+
head: { title: "Files" },
|
|
534
|
+
lazy: () => import("./AdminFiles-DFTjijGp.js"),
|
|
149
535
|
can: () => this.fileCtrl.findFiles.can()
|
|
150
536
|
});
|
|
151
537
|
adminParameters = $page({
|
|
@@ -154,19 +540,20 @@ var AdminRouter = class {
|
|
|
154
540
|
path: "/parameters",
|
|
155
541
|
label: "Parameters",
|
|
156
542
|
description: "View and manage application parameters.",
|
|
157
|
-
lazy: () => import("./AdminParameters-
|
|
543
|
+
lazy: () => import("./AdminParameters-CqgvhRsb.js"),
|
|
158
544
|
can: () => this.paramCtrl.getParameterTree.can(),
|
|
545
|
+
head: { title: "Parameters" },
|
|
159
546
|
loader: async () => {
|
|
160
547
|
return { treeData: await this.paramCtrl.getParameterTree({}) };
|
|
161
548
|
}
|
|
162
549
|
});
|
|
163
550
|
adminJobDashboard = $page({
|
|
164
|
-
icon:
|
|
551
|
+
icon: IconDashboard,
|
|
165
552
|
parent: this.adminLayout,
|
|
166
553
|
path: "/jobs",
|
|
167
554
|
label: "Jobs",
|
|
168
555
|
description: "Monitor and manage background jobs and scheduled tasks.",
|
|
169
|
-
lazy: () => import("./AdminJobDashboard-
|
|
556
|
+
lazy: () => import("./AdminJobDashboard-BL8gGPDp.js"),
|
|
170
557
|
can: () => this.jobCtrl.getJobRegistry.can()
|
|
171
558
|
});
|
|
172
559
|
adminJobRegistry = $page({
|
|
@@ -175,7 +562,7 @@ var AdminRouter = class {
|
|
|
175
562
|
path: "/jobs/registry",
|
|
176
563
|
label: "Registry",
|
|
177
564
|
description: "View all registered job definitions.",
|
|
178
|
-
lazy: () => import("./AdminJobRegistry-
|
|
565
|
+
lazy: () => import("./AdminJobRegistry-Ci9ue1zC.js"),
|
|
179
566
|
can: () => this.jobCtrl.getJobRegistry.can()
|
|
180
567
|
});
|
|
181
568
|
adminJobExecutions = $page({
|
|
@@ -184,7 +571,7 @@ var AdminRouter = class {
|
|
|
184
571
|
path: "/jobs/executions",
|
|
185
572
|
label: "Executions",
|
|
186
573
|
description: "Browse and filter job execution history.",
|
|
187
|
-
lazy: () => import("./AdminJobExecutions-
|
|
574
|
+
lazy: () => import("./AdminJobExecutions-D9E-CS-U.js"),
|
|
188
575
|
can: () => this.jobCtrl.findJobExecutions.can()
|
|
189
576
|
});
|
|
190
577
|
adminApiKeys = $page({
|
|
@@ -192,10 +579,21 @@ var AdminRouter = class {
|
|
|
192
579
|
parent: this.adminLayout,
|
|
193
580
|
path: "/api-keys",
|
|
194
581
|
label: "API Keys",
|
|
582
|
+
head: { title: "API Keys" },
|
|
195
583
|
description: "View and manage API keys for programmatic access.",
|
|
196
|
-
lazy: () => import("./AdminApiKeys-
|
|
584
|
+
lazy: () => import("./AdminApiKeys-Dy_k-4Vd.js"),
|
|
197
585
|
can: () => this.apiKeyCtrl.findApiKeys.can()
|
|
198
586
|
});
|
|
587
|
+
adminNotifications = $page({
|
|
588
|
+
icon: IconBell,
|
|
589
|
+
parent: this.adminLayout,
|
|
590
|
+
path: "/notifications",
|
|
591
|
+
label: "Notifications",
|
|
592
|
+
description: "View sent notifications and their delivery status.",
|
|
593
|
+
head: { title: "Notifications" },
|
|
594
|
+
lazy: () => import("./AdminNotifications-ZPHCYrv7.js"),
|
|
595
|
+
can: () => this.notificationCtrl.findNotifications.can()
|
|
596
|
+
});
|
|
199
597
|
};
|
|
200
598
|
|
|
201
599
|
//#endregion
|