@alepha/ui 0.14.2 → 0.14.4
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/AdminAudits-DIrCCPk3.js.map +1 -1
- package/dist/admin/AdminNotifications-cIbywWKi.js.map +1 -1
- package/dist/admin/AdminParameters-D-q3Qmhv.js.map +1 -1
- package/dist/admin/AdminSessions-vOgkrQ2U.js.map +1 -1
- package/dist/admin/AdminUserAudits-CSsN1fIC.js.map +1 -1
- package/dist/admin/AdminUserCreate-B72nu-3W.js.map +1 -1
- package/dist/admin/AdminUserDetails-CKM2IEMr.js +475 -0
- package/dist/admin/AdminUserDetails-CKM2IEMr.js.map +1 -0
- package/dist/admin/{AdminUserDetails-z1y8kJeB.js → AdminUserDetails-Zib_B6Al.js} +1 -1
- package/dist/admin/{AdminUserLayout-DyQYacQQ.js → AdminUserLayout-BNBOEiAO.js} +1 -1
- package/dist/admin/AdminUserLayout-D7En9UBq.js +334 -0
- package/dist/admin/AdminUserLayout-D7En9UBq.js.map +1 -0
- package/dist/admin/AdminUserSessions-DEaGu6n6.js.map +1 -1
- package/dist/admin/{AdminUserSettings-CR7MxX_R.js → AdminUserSettings-Di73D7g2.js} +6 -5
- package/dist/admin/AdminUserSettings-Di73D7g2.js.map +1 -0
- package/dist/admin/AdminUserSettings-yI-JECf5.js +3 -0
- package/dist/admin/AdminUsers-BnGIRvmV.js.map +1 -1
- package/dist/admin/index.d.ts +10 -10
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +18 -18
- package/dist/admin/index.js.map +1 -1
- package/dist/auth/index.js +4 -4
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -5
- package/dist/core/index.js.map +1 -1
- package/package.json +11 -11
- package/src/admin/AdminRouter.ts +23 -20
- package/src/admin/MainRouter.ts +1 -1
- package/src/admin/components/audits/AdminAudits.tsx +2 -2
- package/src/admin/components/jobs/AdminJobs.tsx +2 -2
- package/src/admin/components/notifications/AdminNotifications.tsx +2 -2
- package/src/admin/components/parameters/AdminParameters.tsx +2 -2
- package/src/admin/components/sessions/AdminSessions.tsx +2 -2
- package/src/admin/components/shared/AdminResourceHeader.tsx +281 -0
- package/src/admin/components/shared/AdminResourceTabs.tsx +94 -0
- package/src/admin/components/shared/index.ts +10 -0
- package/src/admin/components/users/AdminUserAudits.tsx +2 -2
- package/src/admin/components/users/AdminUserCreate.tsx +2 -2
- package/src/admin/components/users/AdminUserDetails.tsx +337 -85
- package/src/admin/components/users/AdminUserLayout.tsx +164 -108
- package/src/admin/components/users/AdminUserSessions.tsx +2 -2
- package/src/admin/components/users/AdminUserSettings.tsx +10 -5
- package/src/admin/components/users/AdminUsers.tsx +6 -2
- package/src/auth/AuthRouter.ts +4 -4
- package/src/core/components/form/TypeForm.tsx +3 -2
- package/src/core/components/layout/AlephaMantineProvider.tsx +5 -1
- package/src/core/components/layout/Sidebar.tsx +9 -6
- package/dist/admin/AdminUserDetails-BCt8Su-4.js +0 -222
- package/dist/admin/AdminUserDetails-BCt8Su-4.js.map +0 -1
- package/dist/admin/AdminUserLayout-Ck0GLRE5.js +0 -151
- package/dist/admin/AdminUserLayout-Ck0GLRE5.js.map +0 -1
- package/dist/admin/AdminUserSettings-CE66UTIP.js +0 -3
- package/dist/admin/AdminUserSettings-CR7MxX_R.js.map +0 -1
package/dist/admin/index.js
CHANGED
|
@@ -6,10 +6,10 @@ import { t as AdminParameters_default } from "./AdminParameters-D-q3Qmhv.js";
|
|
|
6
6
|
import { t as AdminSessions_default } from "./AdminSessions-vOgkrQ2U.js";
|
|
7
7
|
import { t as AdminUserAudits_default } from "./AdminUserAudits-CSsN1fIC.js";
|
|
8
8
|
import { t as AdminUserCreate_default } from "./AdminUserCreate-B72nu-3W.js";
|
|
9
|
-
import { t as AdminUserDetails_default } from "./AdminUserDetails-
|
|
10
|
-
import { t as AdminUserLayout_default } from "./AdminUserLayout-
|
|
9
|
+
import { t as AdminUserDetails_default } from "./AdminUserDetails-CKM2IEMr.js";
|
|
10
|
+
import { t as AdminUserLayout_default } from "./AdminUserLayout-D7En9UBq.js";
|
|
11
11
|
import { t as AdminUserSessions_default } from "./AdminUserSessions-DEaGu6n6.js";
|
|
12
|
-
import { t as AdminUserSettings_default } from "./AdminUserSettings-
|
|
12
|
+
import { t as AdminUserSettings_default } from "./AdminUserSettings-Di73D7g2.js";
|
|
13
13
|
import { t as AdminUsers_default } from "./AdminUsers-BnGIRvmV.js";
|
|
14
14
|
import { AlephaMantineProvider, AlephaUI, DataTable, Flex, Text } from "@alepha/ui";
|
|
15
15
|
import { AlephaUIAuth, AuthRouter } from "@alepha/ui/auth";
|
|
@@ -41,20 +41,20 @@ var AdminRouter = class {
|
|
|
41
41
|
onNotAuthorized(url) {
|
|
42
42
|
return new Redirection(this.router.path(this.authRouter.login.name, { query: { r: url.pathname } }));
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
name: "AdminLayout",
|
|
44
|
+
adminLayout = $page({
|
|
46
45
|
path: "/admin",
|
|
47
46
|
label: "Admin",
|
|
47
|
+
can: () => this.userCtrl.findUsers.can(),
|
|
48
48
|
lazy: () => import("./AdminLayout-BnSmtA4x.js"),
|
|
49
49
|
props: () => ({ adminShellProps: this.adminShellProps() }),
|
|
50
|
-
|
|
50
|
+
loader: ({ user, url }) => {
|
|
51
51
|
if (!user) throw this.onNotAuthorized(url);
|
|
52
52
|
return {};
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
adminUsers = $page({
|
|
56
56
|
icon: IconUsers,
|
|
57
|
-
parent: this.
|
|
57
|
+
parent: this.adminLayout,
|
|
58
58
|
path: "/users",
|
|
59
59
|
label: "Users",
|
|
60
60
|
description: "Manage application users and their roles.",
|
|
@@ -63,7 +63,7 @@ var AdminRouter = class {
|
|
|
63
63
|
});
|
|
64
64
|
adminUserCreate = $page({
|
|
65
65
|
icon: IconPlus,
|
|
66
|
-
parent: this.
|
|
66
|
+
parent: this.adminLayout,
|
|
67
67
|
path: "/users/create",
|
|
68
68
|
label: "Create User",
|
|
69
69
|
description: "Create a new user account.",
|
|
@@ -72,17 +72,17 @@ var AdminRouter = class {
|
|
|
72
72
|
});
|
|
73
73
|
adminUserLayout = $page({
|
|
74
74
|
icon: IconUser,
|
|
75
|
-
parent: this.
|
|
75
|
+
parent: this.adminLayout,
|
|
76
76
|
path: "/users/:userId",
|
|
77
77
|
label: "User",
|
|
78
|
-
lazy: () => import("./AdminUserLayout-
|
|
78
|
+
lazy: () => import("./AdminUserLayout-BNBOEiAO.js"),
|
|
79
79
|
can: () => this.userCtrl.getUser.can()
|
|
80
80
|
});
|
|
81
81
|
adminUserDetails = $page({
|
|
82
82
|
parent: this.adminUserLayout,
|
|
83
83
|
path: "/details",
|
|
84
84
|
label: "Details",
|
|
85
|
-
lazy: () => import("./AdminUserDetails-
|
|
85
|
+
lazy: () => import("./AdminUserDetails-Zib_B6Al.js")
|
|
86
86
|
});
|
|
87
87
|
adminUserSessions = $page({
|
|
88
88
|
parent: this.adminUserLayout,
|
|
@@ -94,7 +94,7 @@ var AdminRouter = class {
|
|
|
94
94
|
parent: this.adminUserLayout,
|
|
95
95
|
path: "/settings",
|
|
96
96
|
label: "Settings",
|
|
97
|
-
lazy: () => import("./AdminUserSettings-
|
|
97
|
+
lazy: () => import("./AdminUserSettings-yI-JECf5.js")
|
|
98
98
|
});
|
|
99
99
|
adminUserAudits = $page({
|
|
100
100
|
parent: this.adminUserLayout,
|
|
@@ -105,7 +105,7 @@ var AdminRouter = class {
|
|
|
105
105
|
});
|
|
106
106
|
adminAudits = $page({
|
|
107
107
|
icon: IconHistory,
|
|
108
|
-
parent: this.
|
|
108
|
+
parent: this.adminLayout,
|
|
109
109
|
path: "/audits",
|
|
110
110
|
label: "Audit Log",
|
|
111
111
|
description: "View system-wide audit trail and activity logs.",
|
|
@@ -114,7 +114,7 @@ var AdminRouter = class {
|
|
|
114
114
|
});
|
|
115
115
|
adminSessions = $page({
|
|
116
116
|
icon: IconDevices,
|
|
117
|
-
parent: this.
|
|
117
|
+
parent: this.adminLayout,
|
|
118
118
|
path: "/sessions",
|
|
119
119
|
label: "Sessions",
|
|
120
120
|
description: "View and manage all active sessions.",
|
|
@@ -123,7 +123,7 @@ var AdminRouter = class {
|
|
|
123
123
|
});
|
|
124
124
|
adminNotifications = $page({
|
|
125
125
|
icon: IconBell,
|
|
126
|
-
parent: this.
|
|
126
|
+
parent: this.adminLayout,
|
|
127
127
|
path: "/notifications",
|
|
128
128
|
label: "Notifications",
|
|
129
129
|
description: "View notification history and status.",
|
|
@@ -132,7 +132,7 @@ var AdminRouter = class {
|
|
|
132
132
|
});
|
|
133
133
|
adminFiles = $page({
|
|
134
134
|
icon: IconFile,
|
|
135
|
-
parent: this.
|
|
135
|
+
parent: this.adminLayout,
|
|
136
136
|
path: "/files",
|
|
137
137
|
label: "Files",
|
|
138
138
|
description: "Manage uploaded files and storage.",
|
|
@@ -141,7 +141,7 @@ var AdminRouter = class {
|
|
|
141
141
|
});
|
|
142
142
|
adminParameters = $page({
|
|
143
143
|
icon: IconSettings,
|
|
144
|
-
parent: this.
|
|
144
|
+
parent: this.adminLayout,
|
|
145
145
|
path: "/parameters",
|
|
146
146
|
label: "Parameters",
|
|
147
147
|
description: "View and manage application configuration parameters.",
|
|
@@ -165,7 +165,7 @@ var MainRouter = class {
|
|
|
165
165
|
admin = $inject(AdminRouter);
|
|
166
166
|
layout = $page({
|
|
167
167
|
component: AlephaMantineProvider,
|
|
168
|
-
children: () => [this.auth.layout, this.admin.
|
|
168
|
+
children: () => [this.auth.layout, this.admin.adminLayout]
|
|
169
169
|
});
|
|
170
170
|
};
|
|
171
171
|
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["filters"],"sources":["../../src/admin/AdminRouter.ts","../../src/admin/MainRouter.ts","../../src/admin/components/jobs/AdminJobs.tsx","../../src/admin/components/verifications/AdminVerifications.tsx","../../src/admin/index.ts"],"sourcesContent":["import { ReactAuth } from \"@alepha/react/auth\";\nimport { $page, ReactRouter, Redirection } from \"@alepha/react/router\";\nimport type { AdminShellProps } from \"@alepha/ui\";\nimport { AuthRouter } from \"@alepha/ui/auth\";\nimport {\n IconBell,\n IconDevices,\n IconFile,\n IconHistory,\n IconPlus,\n IconSettings,\n IconUser,\n IconUsers,\n} from \"@tabler/icons-react\";\nimport { $inject } from \"alepha\";\nimport type { AuditController } from \"alepha/api/audits\";\nimport type { FileController } from \"alepha/api/files\";\nimport type { NotificationController } from \"alepha/api/notifications\";\nimport type { ConfigController } from \"alepha/api/parameters\";\nimport type { SessionController, UserController } from \"alepha/api/users\";\nimport { $client } from \"alepha/server/links\";\n\nexport class AdminRouter {\n protected readonly router = $inject(ReactRouter);\n protected readonly authRouter = $inject(AuthRouter);\n protected readonly auth = $inject(ReactAuth);\n protected readonly userCtrl = $client<UserController>();\n protected readonly sessionCtrl = $client<SessionController>();\n protected readonly notificationCtrl = $client<NotificationController>();\n protected readonly fileCtrl = $client<FileController>();\n protected readonly configCtrl = $client<ConfigController>();\n protected readonly auditCtrl = $client<AuditController>();\n\n protected adminShellProps(): AdminShellProps {\n return {};\n }\n\n protected onNotAuthorized(url: URL) {\n return new Redirection(\n this.router.path(this.authRouter.login.name, {\n query: {\n r: url.pathname,\n },\n }),\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Layout\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly layout = $page({\n name: \"AdminLayout\",\n path: \"/admin\",\n label: \"Admin\",\n lazy: () => import(\"./components/AdminLayout.tsx\"),\n props: () => ({\n adminShellProps: this.adminShellProps(),\n }),\n resolve: ({ user, url }) => {\n if (!user) {\n throw this.onNotAuthorized(url);\n }\n return {};\n },\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminUsers = $page({\n icon: IconUsers,\n parent: this.layout,\n path: \"/users\",\n label: \"Users\",\n description: \"Manage application users and their roles.\",\n lazy: () => import(\"./components/users/AdminUsers.tsx\"),\n can: () => this.userCtrl.findUsers.can(),\n });\n\n public readonly adminUserCreate = $page({\n icon: IconPlus,\n parent: this.layout,\n path: \"/users/create\",\n label: \"Create User\",\n description: \"Create a new user account.\",\n lazy: () => import(\"./components/users/AdminUserCreate.tsx\"),\n can: () => this.userCtrl.createUser.can(),\n });\n\n public readonly adminUserLayout = $page({\n icon: IconUser,\n parent: this.layout,\n path: \"/users/:userId\",\n label: \"User\",\n lazy: () => import(\"./components/users/AdminUserLayout.tsx\"),\n can: () => this.userCtrl.getUser.can(),\n });\n\n public readonly adminUserDetails = $page({\n parent: this.adminUserLayout,\n path: \"/details\",\n label: \"Details\",\n lazy: () => import(\"./components/users/AdminUserDetails.tsx\"),\n });\n\n public readonly adminUserSessions = $page({\n parent: this.adminUserLayout,\n path: \"/sessions\",\n label: \"Sessions\",\n lazy: () => import(\"./components/users/AdminUserSessions.tsx\"),\n });\n\n public readonly adminUserSettings = $page({\n parent: this.adminUserLayout,\n path: \"/settings\",\n label: \"Settings\",\n lazy: () => import(\"./components/users/AdminUserSettings.tsx\"),\n });\n\n public readonly adminUserAudits = $page({\n parent: this.adminUserLayout,\n path: \"/audits\",\n label: \"Audit Log\",\n lazy: () => import(\"./components/users/AdminUserAudits.tsx\"),\n can: () => this.auditCtrl.findByUser.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Audits (Global)\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminAudits = $page({\n icon: IconHistory,\n parent: this.layout,\n path: \"/audits\",\n label: \"Audit Log\",\n description: \"View system-wide audit trail and activity logs.\",\n lazy: () => import(\"./components/audits/AdminAudits.tsx\"),\n can: () => this.auditCtrl.findAudits.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Sessions\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminSessions = $page({\n icon: IconDevices,\n parent: this.layout,\n path: \"/sessions\",\n label: \"Sessions\",\n description: \"View and manage all active sessions.\",\n lazy: () => import(\"./components/sessions/AdminSessions.tsx\"),\n can: () => this.sessionCtrl.findSessions.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notifications\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminNotifications = $page({\n icon: IconBell,\n parent: this.layout,\n path: \"/notifications\",\n label: \"Notifications\",\n description: \"View notification history and status.\",\n lazy: () => import(\"./components/notifications/AdminNotifications.tsx\"),\n can: () => this.notificationCtrl.findNotifications.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Files\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminFiles = $page({\n icon: IconFile,\n parent: this.layout,\n path: \"/files\",\n label: \"Files\",\n description: \"Manage uploaded files and storage.\",\n lazy: () => import(\"./components/files/AdminFiles.tsx\"),\n can: () => this.fileCtrl.findFiles.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Parameters\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminParameters = $page({\n icon: IconSettings,\n parent: this.layout,\n path: \"/parameters\",\n label: \"Parameters\",\n description: \"View and manage application configuration parameters.\",\n lazy: () => import(\"./components/parameters/AdminParameters.tsx\"),\n can: () => this.configCtrl.getConfigTree.can(),\n });\n}\n","import { $page } from \"@alepha/react/router\";\nimport { AlephaMantineProvider } from \"@alepha/ui\";\nimport { AuthRouter } from \"@alepha/ui/auth\";\nimport { $inject } from \"alepha\";\nimport { AdminRouter } from \"./AdminRouter.ts\";\n\n/**\n * Main application router that combines Auth and Admin routers.\n *\n * We assume that the main application router will always have Admin and Auth routers.\n *\n * This is basically a convenience class to avoid having to inject these routers everywhere.\n * Code is lightweight enough that we can just copy it if needed.\n */\nexport class MainRouter {\n auth = $inject(AuthRouter);\n admin = $inject(AdminRouter);\n\n layout = $page({\n component: AlephaMantineProvider,\n children: () => [this.auth.layout, this.admin.layout],\n });\n}\n","import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport {\n IconCheck,\n IconClock,\n IconPlayerPlay,\n IconX,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type JobController,\n type JobExecutionEntity,\n jobExecutions,\n} from \"alepha/api/jobs\";\n\nconst AdminJobs = () => {\n const client = useClient<JobController>();\n const { l } = useI18n();\n\n const filters = t.object({\n job: t.optional(\n t.string({\n $control: {\n query: t.pick(jobExecutions.schema, [\"job\"]),\n },\n }),\n ),\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n });\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return \"green\";\n case \"FAILED\":\n return \"red\";\n case \"STARTED\":\n return \"blue\";\n default:\n return \"gray\";\n }\n };\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return <IconCheck size={12} />;\n case \"FAILED\":\n return <IconX size={12} />;\n case \"STARTED\":\n return <IconPlayerPlay size={12} />;\n default:\n return <IconClock size={12} />;\n }\n };\n\n const formatDuration = (\n start: Date | string,\n end?: Date | string | null,\n ): string => {\n const startTime = new Date(start).getTime();\n const endTime = end ? new Date(end).getTime() : Date.now();\n const duration = endTime - startTime;\n\n if (duration < 1000) return `${duration}ms`;\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`;\n return `${Math.floor(duration / 60000)}m ${Math.floor((duration % 60000) / 1000)}s`;\n };\n\n return (\n <Flex flex={1} direction={\"column\"}>\n <DataTable<JobExecutionEntity, typeof filters>\n submitOnInit\n defaultSize={10}\n typeFormProps={{\n skipSubmitButton: true,\n columns: 3,\n }}\n tableProps={{\n horizontalSpacing: \"xs\",\n verticalSpacing: \"xs\",\n }}\n onFilterChange={(key, _value, form) => {\n if (key === \"job\" || key === \"status\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.getJobExecutions({\n query: filters,\n });\n\n return response as Page<JobExecutionEntity>;\n }}\n columns={{\n job: {\n label: \"Job\",\n value: (item) => (\n <Text size=\"sm\" fw={500}>\n {item.job}\n </Text>\n ),\n },\n status: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={getStatusColor(item.status)}\n leftSection={getStatusIcon(item.status)}\n >\n {item.status}\n </Badge>\n ),\n },\n duration: {\n label: \"Duration\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\" ff=\"monospace\">\n {formatDuration(item.createdAt, item.finishedAt)}\n </Text>\n ),\n },\n error: {\n label: \"Error\",\n value: (item) =>\n item.error ? (\n <Text size=\"xs\" c=\"red\" lineClamp={1}>\n {item.error}\n </Text>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n ),\n },\n createdAt: {\n label: \"Started\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {l(item.createdAt, { date: \"fromNow\" })}\n </Text>\n ),\n },\n }}\n />\n </Flex>\n );\n};\n\nexport default AdminJobs;\n","import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconShieldCheck } from \"@tabler/icons-react\";\n\nconst AdminVerifications = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconShieldCheck\n size={48}\n stroke={1.5}\n color=\"var(--mantine-color-dimmed)\"\n />\n <Text c=\"dimmed\">Verification Management</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Verifications are automatically managed by the system. Email and SMS\n verification codes are generated and validated through the\n verification API endpoints.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminVerifications;\n","import { AlephaUI } from \"@alepha/ui\";\nimport { AlephaUIAuth } from \"@alepha/ui/auth\";\nimport { $module } from \"alepha\";\nimport { AdminRouter } from \"./AdminRouter.ts\";\nimport { MainRouter } from \"./MainRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport { AdminRouter } from \"./AdminRouter.ts\";\n// Layout\nexport { default as AdminLayout } from \"./components/AdminLayout.tsx\";\n// Audits\nexport { default as AdminAudits } from \"./components/audits/AdminAudits.tsx\";\n// Files\nexport { default as AdminFiles } from \"./components/files/AdminFiles.tsx\";\n// Jobs\nexport { default as AdminJobs } from \"./components/jobs/AdminJobs.tsx\";\n// Notifications\nexport { default as AdminNotifications } from \"./components/notifications/AdminNotifications.tsx\";\n// Parameters\nexport { default as AdminParameters } from \"./components/parameters/AdminParameters.tsx\";\n// Sessions\nexport { default as AdminSessions } from \"./components/sessions/AdminSessions.tsx\";\n// Users\nexport { default as AdminUserAudits } from \"./components/users/AdminUserAudits.tsx\";\nexport { default as AdminUserCreate } from \"./components/users/AdminUserCreate.tsx\";\nexport { default as AdminUserDetails } from \"./components/users/AdminUserDetails.tsx\";\nexport { default as AdminUserLayout } from \"./components/users/AdminUserLayout.tsx\";\nexport { default as AdminUserSessions } from \"./components/users/AdminUserSessions.tsx\";\nexport { default as AdminUserSettings } from \"./components/users/AdminUserSettings.tsx\";\nexport { default as AdminUsers } from \"./components/users/AdminUsers.tsx\";\n// Verifications\nexport { default as AdminVerifications } from \"./components/verifications/AdminVerifications.tsx\";\nexport { MainRouter } from \"./MainRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Admin panel UI Module\n *\n * @module alepha.ui.admin\n */\nexport const AlephaUIAdmin = $module({\n name: \"alepha.ui.admin\",\n services: [AlephaUI, AlephaUIAuth, AdminRouter, MainRouter],\n register: (alepha) => {\n alepha.with(AdminRouter);\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["filters"],"sources":["../../src/admin/AdminRouter.ts","../../src/admin/MainRouter.ts","../../src/admin/components/jobs/AdminJobs.tsx","../../src/admin/components/verifications/AdminVerifications.tsx","../../src/admin/index.ts"],"sourcesContent":["import { ReactAuth } from \"@alepha/react/auth\";\nimport { $page, ReactRouter, Redirection } from \"@alepha/react/router\";\nimport type { AdminShellProps } from \"@alepha/ui\";\nimport { AuthRouter } from \"@alepha/ui/auth\";\nimport {\n IconBell,\n IconDevices,\n IconFile,\n IconHistory,\n IconPlus,\n IconSettings,\n IconUser,\n IconUsers,\n} from \"@tabler/icons-react\";\nimport { $inject } from \"alepha\";\nimport type { AdminAuditController } from \"alepha/api/audits\";\nimport type { FileController } from \"alepha/api/files\";\nimport type { AdminNotificationController } from \"alepha/api/notifications\";\nimport type { AdminConfigController } from \"alepha/api/parameters\";\nimport type {\n AdminSessionController,\n AdminUserController,\n} from \"alepha/api/users\";\nimport { $client } from \"alepha/server/links\";\n\nexport class AdminRouter {\n protected readonly router = $inject(ReactRouter);\n protected readonly authRouter = $inject(AuthRouter);\n protected readonly auth = $inject(ReactAuth);\n protected readonly userCtrl = $client<AdminUserController>();\n protected readonly sessionCtrl = $client<AdminSessionController>();\n protected readonly notificationCtrl = $client<AdminNotificationController>();\n protected readonly fileCtrl = $client<FileController>();\n protected readonly configCtrl = $client<AdminConfigController>();\n protected readonly auditCtrl = $client<AdminAuditController>();\n\n protected adminShellProps(): AdminShellProps {\n return {};\n }\n\n protected onNotAuthorized(url: URL) {\n return new Redirection(\n this.router.path(this.authRouter.login.name, {\n query: {\n r: url.pathname,\n },\n }),\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Layout\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminLayout = $page({\n path: \"/admin\",\n label: \"Admin\",\n can: () => this.userCtrl.findUsers.can(),\n lazy: () => import(\"./components/AdminLayout.tsx\"),\n props: () => ({\n adminShellProps: this.adminShellProps(),\n }),\n loader: ({ user, url }) => {\n if (!user) {\n throw this.onNotAuthorized(url);\n }\n return {};\n },\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminUsers = $page({\n icon: IconUsers,\n parent: this.adminLayout,\n path: \"/users\",\n label: \"Users\",\n description: \"Manage application users and their roles.\",\n lazy: () => import(\"./components/users/AdminUsers.tsx\"),\n can: () => this.userCtrl.findUsers.can(),\n });\n\n public readonly adminUserCreate = $page({\n icon: IconPlus,\n parent: this.adminLayout,\n path: \"/users/create\",\n label: \"Create User\",\n description: \"Create a new user account.\",\n lazy: () => import(\"./components/users/AdminUserCreate.tsx\"),\n can: () => this.userCtrl.createUser.can(),\n });\n\n public readonly adminUserLayout = $page({\n icon: IconUser,\n parent: this.adminLayout,\n path: \"/users/:userId\",\n label: \"User\",\n lazy: () => import(\"./components/users/AdminUserLayout.tsx\"),\n can: () => this.userCtrl.getUser.can(),\n });\n\n public readonly adminUserDetails = $page({\n parent: this.adminUserLayout,\n path: \"/details\",\n label: \"Details\",\n lazy: () => import(\"./components/users/AdminUserDetails.tsx\"),\n });\n\n public readonly adminUserSessions = $page({\n parent: this.adminUserLayout,\n path: \"/sessions\",\n label: \"Sessions\",\n lazy: () => import(\"./components/users/AdminUserSessions.tsx\"),\n });\n\n public readonly adminUserSettings = $page({\n parent: this.adminUserLayout,\n path: \"/settings\",\n label: \"Settings\",\n lazy: () => import(\"./components/users/AdminUserSettings.tsx\"),\n });\n\n public readonly adminUserAudits = $page({\n parent: this.adminUserLayout,\n path: \"/audits\",\n label: \"Audit Log\",\n lazy: () => import(\"./components/users/AdminUserAudits.tsx\"),\n can: () => this.auditCtrl.findByUser.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Audits (Global)\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminAudits = $page({\n icon: IconHistory,\n parent: this.adminLayout,\n path: \"/audits\",\n label: \"Audit Log\",\n description: \"View system-wide audit trail and activity logs.\",\n lazy: () => import(\"./components/audits/AdminAudits.tsx\"),\n can: () => this.auditCtrl.findAudits.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Sessions\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminSessions = $page({\n icon: IconDevices,\n parent: this.adminLayout,\n path: \"/sessions\",\n label: \"Sessions\",\n description: \"View and manage all active sessions.\",\n lazy: () => import(\"./components/sessions/AdminSessions.tsx\"),\n can: () => this.sessionCtrl.findSessions.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notifications\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminNotifications = $page({\n icon: IconBell,\n parent: this.adminLayout,\n path: \"/notifications\",\n label: \"Notifications\",\n description: \"View notification history and status.\",\n lazy: () => import(\"./components/notifications/AdminNotifications.tsx\"),\n can: () => this.notificationCtrl.findNotifications.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Files\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminFiles = $page({\n icon: IconFile,\n parent: this.adminLayout,\n path: \"/files\",\n label: \"Files\",\n description: \"Manage uploaded files and storage.\",\n lazy: () => import(\"./components/files/AdminFiles.tsx\"),\n can: () => this.fileCtrl.findFiles.can(),\n });\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Parameters\n // ─────────────────────────────────────────────────────────────────────────────\n\n public readonly adminParameters = $page({\n icon: IconSettings,\n parent: this.adminLayout,\n path: \"/parameters\",\n label: \"Parameters\",\n description: \"View and manage application configuration parameters.\",\n lazy: () => import(\"./components/parameters/AdminParameters.tsx\"),\n can: () => this.configCtrl.getConfigTree.can(),\n });\n}\n","import { $page } from \"@alepha/react/router\";\nimport { AlephaMantineProvider } from \"@alepha/ui\";\nimport { AuthRouter } from \"@alepha/ui/auth\";\nimport { $inject } from \"alepha\";\nimport { AdminRouter } from \"./AdminRouter.ts\";\n\n/**\n * Main application router that combines Auth and Admin routers.\n *\n * We assume that the main application router will always have Admin and Auth routers.\n *\n * This is basically a convenience class to avoid having to inject these routers everywhere.\n * Code is lightweight enough that we can just copy it if needed.\n */\nexport class MainRouter {\n auth = $inject(AuthRouter);\n admin = $inject(AdminRouter);\n\n layout = $page({\n component: AlephaMantineProvider,\n children: () => [this.auth.layout, this.admin.adminLayout],\n });\n}\n","import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport {\n IconCheck,\n IconClock,\n IconPlayerPlay,\n IconX,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type AdminJobController,\n type JobExecutionEntity,\n jobExecutions,\n} from \"alepha/api/jobs\";\n\nconst AdminJobs = () => {\n const client = useClient<AdminJobController>();\n const { l } = useI18n();\n\n const filters = t.object({\n job: t.optional(\n t.string({\n $control: {\n query: t.pick(jobExecutions.schema, [\"job\"]),\n },\n }),\n ),\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n });\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return \"green\";\n case \"FAILED\":\n return \"red\";\n case \"STARTED\":\n return \"blue\";\n default:\n return \"gray\";\n }\n };\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return <IconCheck size={12} />;\n case \"FAILED\":\n return <IconX size={12} />;\n case \"STARTED\":\n return <IconPlayerPlay size={12} />;\n default:\n return <IconClock size={12} />;\n }\n };\n\n const formatDuration = (\n start: Date | string,\n end?: Date | string | null,\n ): string => {\n const startTime = new Date(start).getTime();\n const endTime = end ? new Date(end).getTime() : Date.now();\n const duration = endTime - startTime;\n\n if (duration < 1000) return `${duration}ms`;\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`;\n return `${Math.floor(duration / 60000)}m ${Math.floor((duration % 60000) / 1000)}s`;\n };\n\n return (\n <Flex flex={1} direction={\"column\"}>\n <DataTable<JobExecutionEntity, typeof filters>\n submitOnInit\n defaultSize={10}\n typeFormProps={{\n skipSubmitButton: true,\n columns: 3,\n }}\n tableProps={{\n horizontalSpacing: \"xs\",\n verticalSpacing: \"xs\",\n }}\n onFilterChange={(key, _value, form) => {\n if (key === \"job\" || key === \"status\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.getJobExecutions({\n query: filters,\n });\n\n return response as Page<JobExecutionEntity>;\n }}\n columns={{\n job: {\n label: \"Job\",\n value: (item) => (\n <Text size=\"sm\" fw={500}>\n {item.job}\n </Text>\n ),\n },\n status: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={getStatusColor(item.status)}\n leftSection={getStatusIcon(item.status)}\n >\n {item.status}\n </Badge>\n ),\n },\n duration: {\n label: \"Duration\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\" ff=\"monospace\">\n {formatDuration(item.createdAt, item.finishedAt)}\n </Text>\n ),\n },\n error: {\n label: \"Error\",\n value: (item) =>\n item.error ? (\n <Text size=\"xs\" c=\"red\" lineClamp={1}>\n {item.error}\n </Text>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n ),\n },\n createdAt: {\n label: \"Started\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {l(item.createdAt, { date: \"fromNow\" })}\n </Text>\n ),\n },\n }}\n />\n </Flex>\n );\n};\n\nexport default AdminJobs;\n","import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconShieldCheck } from \"@tabler/icons-react\";\n\nconst AdminVerifications = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconShieldCheck\n size={48}\n stroke={1.5}\n color=\"var(--mantine-color-dimmed)\"\n />\n <Text c=\"dimmed\">Verification Management</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Verifications are automatically managed by the system. Email and SMS\n verification codes are generated and validated through the\n verification API endpoints.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminVerifications;\n","import { AlephaUI } from \"@alepha/ui\";\nimport { AlephaUIAuth } from \"@alepha/ui/auth\";\nimport { $module } from \"alepha\";\nimport { AdminRouter } from \"./AdminRouter.ts\";\nimport { MainRouter } from \"./MainRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport { AdminRouter } from \"./AdminRouter.ts\";\n// Layout\nexport { default as AdminLayout } from \"./components/AdminLayout.tsx\";\n// Audits\nexport { default as AdminAudits } from \"./components/audits/AdminAudits.tsx\";\n// Files\nexport { default as AdminFiles } from \"./components/files/AdminFiles.tsx\";\n// Jobs\nexport { default as AdminJobs } from \"./components/jobs/AdminJobs.tsx\";\n// Notifications\nexport { default as AdminNotifications } from \"./components/notifications/AdminNotifications.tsx\";\n// Parameters\nexport { default as AdminParameters } from \"./components/parameters/AdminParameters.tsx\";\n// Sessions\nexport { default as AdminSessions } from \"./components/sessions/AdminSessions.tsx\";\n// Users\nexport { default as AdminUserAudits } from \"./components/users/AdminUserAudits.tsx\";\nexport { default as AdminUserCreate } from \"./components/users/AdminUserCreate.tsx\";\nexport { default as AdminUserDetails } from \"./components/users/AdminUserDetails.tsx\";\nexport { default as AdminUserLayout } from \"./components/users/AdminUserLayout.tsx\";\nexport { default as AdminUserSessions } from \"./components/users/AdminUserSessions.tsx\";\nexport { default as AdminUserSettings } from \"./components/users/AdminUserSettings.tsx\";\nexport { default as AdminUsers } from \"./components/users/AdminUsers.tsx\";\n// Verifications\nexport { default as AdminVerifications } from \"./components/verifications/AdminVerifications.tsx\";\nexport { MainRouter } from \"./MainRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Admin panel UI Module\n *\n * @module alepha.ui.admin\n */\nexport const AlephaUIAdmin = $module({\n name: \"alepha.ui.admin\",\n services: [AlephaUI, AlephaUIAuth, AdminRouter, MainRouter],\n register: (alepha) => {\n alepha.with(AdminRouter);\n },\n});\n"],"mappings":"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"}
|
package/dist/auth/index.js
CHANGED
|
@@ -161,7 +161,7 @@ var AuthRouter = class {
|
|
|
161
161
|
schema: { query: realmQuerySchema },
|
|
162
162
|
can: () => !this.auth.user,
|
|
163
163
|
lazy: () => import("./Login-BWi-pPbO.js"),
|
|
164
|
-
|
|
164
|
+
loader: async ({ query }) => {
|
|
165
165
|
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
166
166
|
}
|
|
167
167
|
});
|
|
@@ -173,7 +173,7 @@ var AuthRouter = class {
|
|
|
173
173
|
schema: { query: realmQuerySchema },
|
|
174
174
|
can: () => !this.auth.user,
|
|
175
175
|
lazy: () => import("./Register-CtdvihIM.js"),
|
|
176
|
-
|
|
176
|
+
loader: async ({ query }) => {
|
|
177
177
|
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
178
178
|
}
|
|
179
179
|
});
|
|
@@ -185,7 +185,7 @@ var AuthRouter = class {
|
|
|
185
185
|
schema: { query: realmQuerySchema },
|
|
186
186
|
can: () => !this.auth.user,
|
|
187
187
|
lazy: () => import("./ResetPassword-BUdM7T_R.js"),
|
|
188
|
-
|
|
188
|
+
loader: async ({ query }) => {
|
|
189
189
|
return { realmConfig: await this.loadRealmConfig(query.realm) };
|
|
190
190
|
}
|
|
191
191
|
});
|
|
@@ -207,7 +207,7 @@ var AuthRouter = class {
|
|
|
207
207
|
can: () => !!this.auth.user,
|
|
208
208
|
path: "/logout",
|
|
209
209
|
component: () => null,
|
|
210
|
-
|
|
210
|
+
loader: () => {
|
|
211
211
|
this.auth.logout();
|
|
212
212
|
return {};
|
|
213
213
|
}
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/auth/AuthI18n.ts","../../src/auth/AuthRouter.ts","../../src/auth/components/buttons/UserButton.tsx","../../src/auth/index.ts"],"sourcesContent":["import { $dictionary } from \"@alepha/react/i18n\";\n\nexport class AuthI18n {\n en = $dictionary({\n name: \"alepha.ui.auth.en\",\n lazy: () => ({\n default: {\n loginSignIn: \"Sign in\",\n loginContinueWith: \"Continue with $1\",\n loginOr: \"OR\",\n loginCancel: \"Cancel\",\n loginForgotPassword: \"Forgot password?\",\n loginNoAccount: \"Don't have an account?\",\n loginSignUp: \"Sign up\",\n loginUsername: \"Username\",\n loginEmail: \"Email\",\n loginPhone: \"Phone number\",\n loginPassword: \"Password\",\n registerCreateAccount: \"Create account\",\n registerContinueWith: \"Continue with $1\",\n registerOr: \"OR\",\n registerCancel: \"Cancel\",\n registerHaveAccount: \"Already have an account?\",\n registerSignIn: \"Sign in\",\n registerUsername: \"Username\",\n registerEmail: \"Email\",\n registerPhone: \"Phone number\",\n registerPassword: \"Password\",\n registerConfirmPassword: \"Confirm password\",\n registerDisabled:\n \"Registration is not available. Please contact your administrator.\",\n registerBackToSignIn: \"Back to sign in\",\n registerVerifyTitle: \"Verify your account\",\n registerVerifyDescription:\n \"Please enter the verification code(s) sent to you.\",\n registerEmailCode: \"Email verification code\",\n registerPhoneCode: \"Phone verification code\",\n registerVerifySubmit: \"Complete Registration\",\n registerVerifyBack: \"Back to registration\",\n resetPasswordTitle: \"Reset password\",\n resetPasswordEmail: \"Email\",\n resetPasswordEnterEmail:\n \"Enter your email address to reset your password\",\n resetPasswordSendCode: \"Send verification code\",\n resetPasswordCodeSent: \"We've sent a verification code to your email.\",\n resetPasswordEnterCode: \"Enter the 6-digit code\",\n resetPasswordResendCode: \"Resend code\",\n resetPasswordEnterNewPassword: \"Create your new password\",\n resetPasswordNewPassword: \"New password\",\n resetPasswordConfirmPassword: \"Confirm password\",\n resetPasswordSetNewPassword: \"Set new password\",\n resetPasswordSuccess: \"Your password has been reset successfully.\",\n resetPasswordBackToSignIn: \"Back to sign in\",\n resetPasswordCancel: \"Cancel\",\n resetPasswordDisabled:\n \"Password reset is not available. Please contact your administrator.\",\n verifyEmailTitle: \"Email Verification\",\n verifyEmailVerifying: \"Verifying your email...\",\n verifyEmailPleaseWait:\n \"Please wait while we verify your email address.\",\n verifyEmailSuccess: \"Your email has been verified successfully.\",\n verifyEmailFailed:\n \"Failed to verify your email. The link may have expired or is invalid.\",\n verifyEmailMissingParams:\n \"Invalid verification link. Email and token are required.\",\n verifyEmailSignIn: \"Sign in to your account\",\n verifyEmailBackToSignIn: \"Back to sign in\",\n },\n }),\n });\n\n fr = $dictionary({\n lazy: () => ({\n default: {\n loginSignIn: \"Se connecter\",\n loginContinueWith: \"Continuer avec $1\",\n loginOr: \"OU\",\n loginCancel: \"Annuler\",\n loginForgotPassword: \"Mot de passe oublié ?\",\n loginNoAccount: \"Vous n'avez pas de compte ?\",\n loginSignUp: \"S'inscrire\",\n loginUsername: \"Nom d'utilisateur\",\n loginEmail: \"E-mail\",\n loginPhone: \"Numéro de téléphone\",\n loginPassword: \"Mot de passe\",\n registerCreateAccount: \"Créer un compte\",\n registerContinueWith: \"Continuer avec $1\",\n registerOr: \"OU\",\n registerCancel: \"Annuler\",\n registerHaveAccount: \"Vous avez déjà un compte ?\",\n registerSignIn: \"Se connecter\",\n registerUsername: \"Nom d'utilisateur\",\n registerEmail: \"E-mail\",\n registerPhone: \"Numéro de téléphone\",\n registerPassword: \"Mot de passe\",\n registerConfirmPassword: \"Confirmer le mot de passe\",\n registerDisabled:\n \"L'inscription n'est pas disponible. Veuillez contacter votre administrateur.\",\n registerBackToSignIn: \"Retour à la connexion\",\n registerVerifyTitle: \"Vérifiez votre compte\",\n registerVerifyDescription:\n \"Veuillez entrer le(s) code(s) de vérification qui vous ont été envoyés.\",\n registerEmailCode: \"Code de vérification par e-mail\",\n registerPhoneCode: \"Code de vérification par téléphone\",\n registerVerifySubmit: \"Terminer l'inscription\",\n registerVerifyBack: \"Retour à l'inscription\",\n resetPasswordTitle: \"Réinitialiser le mot de passe\",\n resetPasswordEmail: \"E-mail\",\n resetPasswordEnterEmail:\n \"Entrez votre adresse e-mail pour réinitialiser votre mot de passe\",\n resetPasswordSendCode: \"Envoyer le code de vérification\",\n resetPasswordCodeSent:\n \"Nous avons envoyé un code de vérification à votre e-mail.\",\n resetPasswordEnterCode: \"Entrez le code à 6 chiffres\",\n resetPasswordResendCode: \"Renvoyer le code\",\n resetPasswordEnterNewPassword: \"Créez votre nouveau mot de passe\",\n resetPasswordNewPassword: \"Nouveau mot de passe\",\n resetPasswordConfirmPassword: \"Confirmer le mot de passe\",\n resetPasswordSetNewPassword: \"Définir le nouveau mot de passe\",\n resetPasswordSuccess:\n \"Votre mot de passe a été réinitialisé avec succès.\",\n resetPasswordBackToSignIn: \"Retour à la connexion\",\n resetPasswordCancel: \"Annuler\",\n resetPasswordDisabled:\n \"La réinitialisation du mot de passe n'est pas disponible. Veuillez contacter votre administrateur.\",\n verifyEmailTitle: \"Vérification de l'e-mail\",\n verifyEmailVerifying: \"Vérification de votre e-mail...\",\n verifyEmailPleaseWait:\n \"Veuillez patienter pendant que nous vérifions votre adresse e-mail.\",\n verifyEmailSuccess: \"Votre e-mail a été vérifié avec succès.\",\n verifyEmailFailed:\n \"Échec de la vérification de votre e-mail. Le lien a peut-être expiré ou est invalide.\",\n verifyEmailMissingParams:\n \"Lien de vérification invalide. L'e-mail et le jeton sont requis.\",\n verifyEmailSignIn: \"Se connecter à votre compte\",\n verifyEmailBackToSignIn: \"Retour à la connexion\",\n },\n }),\n });\n}\n","import { ReactAuth } from \"@alepha/react/auth\";\nimport { $page } from \"@alepha/react/router\";\nimport {\n IconLogin2,\n IconLogout2,\n IconMailCheck,\n IconPasswordUser,\n IconUserPlus,\n} from \"@tabler/icons-react\";\nimport { $inject, AlephaError, t } from \"alepha\";\nimport type { UserRealmController } from \"alepha/api/users\";\nimport { $client } from \"alepha/server/links\";\n\n/**\n * Schema for realm query parameter used across auth pages.\n */\nconst realmQuerySchema = t.object({\n r: t.optional(t.string({ description: \"Redirect URL after authentication\" })),\n realm: t.optional(\n t.string({ description: \"User realm name for multi-tenant auth\" }),\n ),\n});\n\nexport class AuthRouter {\n protected readonly userRealmClient = $client<UserRealmController>();\n protected readonly auth = $inject(ReactAuth);\n\n layout = $page({\n name: \"AuthLayout\",\n path: \"/auth\",\n lazy: () => import(\"./components/AuthLayout.tsx\"),\n children: () => [\n this.login,\n this.register,\n this.resetPassword,\n this.verifyEmail,\n ],\n });\n\n login = $page({\n icon: IconLogin2,\n label: \"Sign In\",\n description: \"Sign in to your account\",\n path: \"/login\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Login.tsx\"),\n resolve: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n register = $page({\n icon: IconUserPlus,\n label: \"Register\",\n description: \"Create a new account\",\n path: \"/register\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Register.tsx\"),\n resolve: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n resetPassword = $page({\n icon: IconPasswordUser,\n label: \"Reset Password\",\n description: \"Reset your account password\",\n path: \"/reset-password\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/ResetPassword.tsx\"),\n resolve: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n verifyEmail = $page({\n icon: IconMailCheck,\n label: \"Verify Email\",\n description: \"Verify your email address\",\n path: \"/verify-email\",\n schema: {\n query: t.object({\n email: t.optional(t.string()),\n token: t.optional(t.string()),\n }),\n },\n lazy: () => import(\"./components/VerifyEmail.tsx\"),\n });\n\n logout = $page({\n icon: IconLogout2,\n label: \"Sign Out\",\n description: \"Sign out of your account\",\n can: () => !!this.auth.user,\n path: \"/logout\",\n component: () => null,\n resolve: () => {\n this.auth.logout();\n return {};\n },\n });\n\n protected async loadRealmConfig(userRealmName?: string) {\n try {\n return await this.userRealmClient.getRealmConfig({\n query: { userRealmName },\n });\n } catch (e) {\n if (e instanceof AlephaError) {\n throw new AlephaError(\n \"Missing User-Realm Configuration - Did you forget to add '$userRealm()' to your application?\",\n e,\n );\n }\n throw e;\n }\n }\n}\n","import { useAuth } from \"@alepha/react/auth\";\nimport { useRouter } from \"@alepha/react/router\";\nimport {\n ActionButton,\n type ActionMenuConfig,\n type ActionMenuItem,\n type ActionProps,\n ui,\n} from \"@alepha/ui\";\nimport { Avatar } from \"@mantine/core\";\nimport { IconLogin2, IconLogout, IconUser } from \"@tabler/icons-react\";\nimport type { ReactNode } from \"react\";\nimport type { AuthRouter } from \"../../AuthRouter.ts\";\n\nexport interface UserButtonProps\n extends Omit<ActionProps, \"menu\" | \"icon\" | \"onClick\"> {\n /**\n * Additional menu items to display before the logout option\n */\n menuItems?: ActionMenuItem[];\n\n /**\n * Custom logout label (default: \"Sign out\")\n */\n logoutLabel?: string;\n\n /**\n * Menu configuration overrides\n */\n menuConfig?: Partial<Omit<ActionMenuConfig, \"items\">>;\n\n /**\n * Whether to show a divider before logout (default: true when menuItems provided)\n */\n showLogoutDivider?: boolean;\n\n /**\n * Custom icon to use instead of user avatar (default: IconUser)\n */\n icon?: ReactNode;\n}\n\nconst UserButton = (props: UserButtonProps) => {\n const {\n menuItems = [],\n logoutLabel = \"Sign out\",\n menuConfig,\n showLogoutDivider = menuItems.length > 0,\n icon,\n children,\n ...buttonProps\n } = props;\n\n buttonProps.variant ??= \"subtle\";\n\n const auth = useAuth<{\n username?: string;\n email?: string;\n picture?: string;\n }>();\n\n const authRouter = useRouter<AuthRouter>();\n\n if (!auth.user) {\n return (\n <ActionButton\n {...buttonProps}\n icon={IconLogin2}\n href={authRouter.path(\"login\")}\n />\n );\n }\n\n const userLabel = auth.user.username || auth.user.email;\n\n const items: ActionMenuItem[] = [];\n\n // Add user info label if available\n if (auth.user.email && auth.user.username) {\n items.push({\n type: \"label\",\n label: auth.user.email,\n });\n }\n\n // Add custom menu items\n items.push(...menuItems);\n\n // Add divider before logout if needed\n if (showLogoutDivider && items.length > 0) {\n items.push({ type: \"divider\" });\n }\n\n // Add logout item\n items.push({\n label: logoutLabel,\n icon: <IconLogout size={ui.sizes.icon.md} />,\n color: \"red\",\n onClick: () => auth.logout(),\n });\n\n // Use leftSection for Avatar (JSX element), icon prop for component types\n const hasAvatar = !icon && auth.user.picture;\n\n return (\n <ActionButton\n {...buttonProps}\n icon={hasAvatar ? undefined : (icon ?? IconUser)}\n leftSection={\n hasAvatar ? (\n <Avatar\n src={`/api/files/${auth.user.picture}`}\n size={24}\n radius=\"xl\"\n />\n ) : undefined\n }\n menu={{\n position: \"bottom-end\",\n width: 200,\n ...menuConfig,\n items,\n }}\n >\n {children ?? userLabel}\n </ActionButton>\n );\n};\n\nexport default UserButton;\n","import { AlephaReactAuth } from \"@alepha/react/auth\";\nimport { AlephaReactI18n } from \"@alepha/react/i18n\";\nimport { AlephaUI } from \"@alepha/ui\";\nimport { $module } from \"alepha\";\nimport { AuthI18n } from \"./AuthI18n.ts\";\nimport { AuthRouter } from \"./AuthRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./AuthRouter.ts\";\nexport type { UserButtonProps } from \"./components/buttons/UserButton.tsx\";\nexport { default as UserButton } from \"./components/buttons/UserButton.tsx\";\nexport { default as Login } from \"./components/Login.tsx\";\nexport { default as Register } from \"./components/Register.tsx\";\nexport { default as ResetPassword } from \"./components/ResetPassword.tsx\";\nexport { default as VerifyEmail } from \"./components/VerifyEmail.tsx\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Login UI Module\n *\n * @module alepha.ui.auth\n */\nexport const AlephaUIAuth = $module({\n name: \"alepha.ui.auth\",\n services: [AlephaUI, AlephaReactAuth, AlephaReactI18n, AuthRouter, AuthI18n],\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/auth/AuthI18n.ts","../../src/auth/AuthRouter.ts","../../src/auth/components/buttons/UserButton.tsx","../../src/auth/index.ts"],"sourcesContent":["import { $dictionary } from \"@alepha/react/i18n\";\n\nexport class AuthI18n {\n en = $dictionary({\n name: \"alepha.ui.auth.en\",\n lazy: () => ({\n default: {\n loginSignIn: \"Sign in\",\n loginContinueWith: \"Continue with $1\",\n loginOr: \"OR\",\n loginCancel: \"Cancel\",\n loginForgotPassword: \"Forgot password?\",\n loginNoAccount: \"Don't have an account?\",\n loginSignUp: \"Sign up\",\n loginUsername: \"Username\",\n loginEmail: \"Email\",\n loginPhone: \"Phone number\",\n loginPassword: \"Password\",\n registerCreateAccount: \"Create account\",\n registerContinueWith: \"Continue with $1\",\n registerOr: \"OR\",\n registerCancel: \"Cancel\",\n registerHaveAccount: \"Already have an account?\",\n registerSignIn: \"Sign in\",\n registerUsername: \"Username\",\n registerEmail: \"Email\",\n registerPhone: \"Phone number\",\n registerPassword: \"Password\",\n registerConfirmPassword: \"Confirm password\",\n registerDisabled:\n \"Registration is not available. Please contact your administrator.\",\n registerBackToSignIn: \"Back to sign in\",\n registerVerifyTitle: \"Verify your account\",\n registerVerifyDescription:\n \"Please enter the verification code(s) sent to you.\",\n registerEmailCode: \"Email verification code\",\n registerPhoneCode: \"Phone verification code\",\n registerVerifySubmit: \"Complete Registration\",\n registerVerifyBack: \"Back to registration\",\n resetPasswordTitle: \"Reset password\",\n resetPasswordEmail: \"Email\",\n resetPasswordEnterEmail:\n \"Enter your email address to reset your password\",\n resetPasswordSendCode: \"Send verification code\",\n resetPasswordCodeSent: \"We've sent a verification code to your email.\",\n resetPasswordEnterCode: \"Enter the 6-digit code\",\n resetPasswordResendCode: \"Resend code\",\n resetPasswordEnterNewPassword: \"Create your new password\",\n resetPasswordNewPassword: \"New password\",\n resetPasswordConfirmPassword: \"Confirm password\",\n resetPasswordSetNewPassword: \"Set new password\",\n resetPasswordSuccess: \"Your password has been reset successfully.\",\n resetPasswordBackToSignIn: \"Back to sign in\",\n resetPasswordCancel: \"Cancel\",\n resetPasswordDisabled:\n \"Password reset is not available. Please contact your administrator.\",\n verifyEmailTitle: \"Email Verification\",\n verifyEmailVerifying: \"Verifying your email...\",\n verifyEmailPleaseWait:\n \"Please wait while we verify your email address.\",\n verifyEmailSuccess: \"Your email has been verified successfully.\",\n verifyEmailFailed:\n \"Failed to verify your email. The link may have expired or is invalid.\",\n verifyEmailMissingParams:\n \"Invalid verification link. Email and token are required.\",\n verifyEmailSignIn: \"Sign in to your account\",\n verifyEmailBackToSignIn: \"Back to sign in\",\n },\n }),\n });\n\n fr = $dictionary({\n lazy: () => ({\n default: {\n loginSignIn: \"Se connecter\",\n loginContinueWith: \"Continuer avec $1\",\n loginOr: \"OU\",\n loginCancel: \"Annuler\",\n loginForgotPassword: \"Mot de passe oublié ?\",\n loginNoAccount: \"Vous n'avez pas de compte ?\",\n loginSignUp: \"S'inscrire\",\n loginUsername: \"Nom d'utilisateur\",\n loginEmail: \"E-mail\",\n loginPhone: \"Numéro de téléphone\",\n loginPassword: \"Mot de passe\",\n registerCreateAccount: \"Créer un compte\",\n registerContinueWith: \"Continuer avec $1\",\n registerOr: \"OU\",\n registerCancel: \"Annuler\",\n registerHaveAccount: \"Vous avez déjà un compte ?\",\n registerSignIn: \"Se connecter\",\n registerUsername: \"Nom d'utilisateur\",\n registerEmail: \"E-mail\",\n registerPhone: \"Numéro de téléphone\",\n registerPassword: \"Mot de passe\",\n registerConfirmPassword: \"Confirmer le mot de passe\",\n registerDisabled:\n \"L'inscription n'est pas disponible. Veuillez contacter votre administrateur.\",\n registerBackToSignIn: \"Retour à la connexion\",\n registerVerifyTitle: \"Vérifiez votre compte\",\n registerVerifyDescription:\n \"Veuillez entrer le(s) code(s) de vérification qui vous ont été envoyés.\",\n registerEmailCode: \"Code de vérification par e-mail\",\n registerPhoneCode: \"Code de vérification par téléphone\",\n registerVerifySubmit: \"Terminer l'inscription\",\n registerVerifyBack: \"Retour à l'inscription\",\n resetPasswordTitle: \"Réinitialiser le mot de passe\",\n resetPasswordEmail: \"E-mail\",\n resetPasswordEnterEmail:\n \"Entrez votre adresse e-mail pour réinitialiser votre mot de passe\",\n resetPasswordSendCode: \"Envoyer le code de vérification\",\n resetPasswordCodeSent:\n \"Nous avons envoyé un code de vérification à votre e-mail.\",\n resetPasswordEnterCode: \"Entrez le code à 6 chiffres\",\n resetPasswordResendCode: \"Renvoyer le code\",\n resetPasswordEnterNewPassword: \"Créez votre nouveau mot de passe\",\n resetPasswordNewPassword: \"Nouveau mot de passe\",\n resetPasswordConfirmPassword: \"Confirmer le mot de passe\",\n resetPasswordSetNewPassword: \"Définir le nouveau mot de passe\",\n resetPasswordSuccess:\n \"Votre mot de passe a été réinitialisé avec succès.\",\n resetPasswordBackToSignIn: \"Retour à la connexion\",\n resetPasswordCancel: \"Annuler\",\n resetPasswordDisabled:\n \"La réinitialisation du mot de passe n'est pas disponible. Veuillez contacter votre administrateur.\",\n verifyEmailTitle: \"Vérification de l'e-mail\",\n verifyEmailVerifying: \"Vérification de votre e-mail...\",\n verifyEmailPleaseWait:\n \"Veuillez patienter pendant que nous vérifions votre adresse e-mail.\",\n verifyEmailSuccess: \"Votre e-mail a été vérifié avec succès.\",\n verifyEmailFailed:\n \"Échec de la vérification de votre e-mail. Le lien a peut-être expiré ou est invalide.\",\n verifyEmailMissingParams:\n \"Lien de vérification invalide. L'e-mail et le jeton sont requis.\",\n verifyEmailSignIn: \"Se connecter à votre compte\",\n verifyEmailBackToSignIn: \"Retour à la connexion\",\n },\n }),\n });\n}\n","import { ReactAuth } from \"@alepha/react/auth\";\nimport { $page } from \"@alepha/react/router\";\nimport {\n IconLogin2,\n IconLogout2,\n IconMailCheck,\n IconPasswordUser,\n IconUserPlus,\n} from \"@tabler/icons-react\";\nimport { $inject, AlephaError, t } from \"alepha\";\nimport type { UserRealmController } from \"alepha/api/users\";\nimport { $client } from \"alepha/server/links\";\n\n/**\n * Schema for realm query parameter used across auth pages.\n */\nconst realmQuerySchema = t.object({\n r: t.optional(t.string({ description: \"Redirect URL after authentication\" })),\n realm: t.optional(\n t.string({ description: \"User realm name for multi-tenant auth\" }),\n ),\n});\n\nexport class AuthRouter {\n protected readonly userRealmClient = $client<UserRealmController>();\n protected readonly auth = $inject(ReactAuth);\n\n layout = $page({\n name: \"AuthLayout\",\n path: \"/auth\",\n lazy: () => import(\"./components/AuthLayout.tsx\"),\n children: () => [\n this.login,\n this.register,\n this.resetPassword,\n this.verifyEmail,\n ],\n });\n\n login = $page({\n icon: IconLogin2,\n label: \"Sign In\",\n description: \"Sign in to your account\",\n path: \"/login\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Login.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n register = $page({\n icon: IconUserPlus,\n label: \"Register\",\n description: \"Create a new account\",\n path: \"/register\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Register.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n resetPassword = $page({\n icon: IconPasswordUser,\n label: \"Reset Password\",\n description: \"Reset your account password\",\n path: \"/reset-password\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/ResetPassword.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n verifyEmail = $page({\n icon: IconMailCheck,\n label: \"Verify Email\",\n description: \"Verify your email address\",\n path: \"/verify-email\",\n schema: {\n query: t.object({\n email: t.optional(t.string()),\n token: t.optional(t.string()),\n }),\n },\n lazy: () => import(\"./components/VerifyEmail.tsx\"),\n });\n\n logout = $page({\n icon: IconLogout2,\n label: \"Sign Out\",\n description: \"Sign out of your account\",\n can: () => !!this.auth.user,\n path: \"/logout\",\n component: () => null,\n loader: () => {\n this.auth.logout();\n return {};\n },\n });\n\n protected async loadRealmConfig(userRealmName?: string) {\n try {\n return await this.userRealmClient.getRealmConfig({\n query: { userRealmName },\n });\n } catch (e) {\n if (e instanceof AlephaError) {\n throw new AlephaError(\n \"Missing User-Realm Configuration - Did you forget to add '$userRealm()' to your application?\",\n e,\n );\n }\n throw e;\n }\n }\n}\n","import { useAuth } from \"@alepha/react/auth\";\nimport { useRouter } from \"@alepha/react/router\";\nimport {\n ActionButton,\n type ActionMenuConfig,\n type ActionMenuItem,\n type ActionProps,\n ui,\n} from \"@alepha/ui\";\nimport { Avatar } from \"@mantine/core\";\nimport { IconLogin2, IconLogout, IconUser } from \"@tabler/icons-react\";\nimport type { ReactNode } from \"react\";\nimport type { AuthRouter } from \"../../AuthRouter.ts\";\n\nexport interface UserButtonProps\n extends Omit<ActionProps, \"menu\" | \"icon\" | \"onClick\"> {\n /**\n * Additional menu items to display before the logout option\n */\n menuItems?: ActionMenuItem[];\n\n /**\n * Custom logout label (default: \"Sign out\")\n */\n logoutLabel?: string;\n\n /**\n * Menu configuration overrides\n */\n menuConfig?: Partial<Omit<ActionMenuConfig, \"items\">>;\n\n /**\n * Whether to show a divider before logout (default: true when menuItems provided)\n */\n showLogoutDivider?: boolean;\n\n /**\n * Custom icon to use instead of user avatar (default: IconUser)\n */\n icon?: ReactNode;\n}\n\nconst UserButton = (props: UserButtonProps) => {\n const {\n menuItems = [],\n logoutLabel = \"Sign out\",\n menuConfig,\n showLogoutDivider = menuItems.length > 0,\n icon,\n children,\n ...buttonProps\n } = props;\n\n buttonProps.variant ??= \"subtle\";\n\n const auth = useAuth<{\n username?: string;\n email?: string;\n picture?: string;\n }>();\n\n const authRouter = useRouter<AuthRouter>();\n\n if (!auth.user) {\n return (\n <ActionButton\n {...buttonProps}\n icon={IconLogin2}\n href={authRouter.path(\"login\")}\n />\n );\n }\n\n const userLabel = auth.user.username || auth.user.email;\n\n const items: ActionMenuItem[] = [];\n\n // Add user info label if available\n if (auth.user.email && auth.user.username) {\n items.push({\n type: \"label\",\n label: auth.user.email,\n });\n }\n\n // Add custom menu items\n items.push(...menuItems);\n\n // Add divider before logout if needed\n if (showLogoutDivider && items.length > 0) {\n items.push({ type: \"divider\" });\n }\n\n // Add logout item\n items.push({\n label: logoutLabel,\n icon: <IconLogout size={ui.sizes.icon.md} />,\n color: \"red\",\n onClick: () => auth.logout(),\n });\n\n // Use leftSection for Avatar (JSX element), icon prop for component types\n const hasAvatar = !icon && auth.user.picture;\n\n return (\n <ActionButton\n {...buttonProps}\n icon={hasAvatar ? undefined : (icon ?? IconUser)}\n leftSection={\n hasAvatar ? (\n <Avatar\n src={`/api/files/${auth.user.picture}`}\n size={24}\n radius=\"xl\"\n />\n ) : undefined\n }\n menu={{\n position: \"bottom-end\",\n width: 200,\n ...menuConfig,\n items,\n }}\n >\n {children ?? userLabel}\n </ActionButton>\n );\n};\n\nexport default UserButton;\n","import { AlephaReactAuth } from \"@alepha/react/auth\";\nimport { AlephaReactI18n } from \"@alepha/react/i18n\";\nimport { AlephaUI } from \"@alepha/ui\";\nimport { $module } from \"alepha\";\nimport { AuthI18n } from \"./AuthI18n.ts\";\nimport { AuthRouter } from \"./AuthRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./AuthRouter.ts\";\nexport type { UserButtonProps } from \"./components/buttons/UserButton.tsx\";\nexport { default as UserButton } from \"./components/buttons/UserButton.tsx\";\nexport { default as Login } from \"./components/Login.tsx\";\nexport { default as Register } from \"./components/Register.tsx\";\nexport { default as ResetPassword } from \"./components/ResetPassword.tsx\";\nexport { default as VerifyEmail } from \"./components/VerifyEmail.tsx\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Login UI Module\n *\n * @module alepha.ui.auth\n */\nexport const AlephaUIAuth = $module({\n name: \"alepha.ui.auth\",\n services: [AlephaUI, AlephaReactAuth, AlephaReactI18n, AuthRouter, AuthI18n],\n});\n"],"mappings":"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"}
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/atoms/alephaThemeAtom.ts","../../src/core/utils/parseInput.ts","../../src/core/components/form/ControlArray.tsx","../../src/core/components/form/ControlNumber.tsx","../../src/core/components/form/ControlObject.tsx","../../src/core/components/form/ControlSelect.tsx","../../src/core/components/form/Control.tsx","../../src/core/atoms/alephaThemeListAtom.ts","../../src/core/interfaces/AlephaTheme.ts","../../src/core/atoms/themes/default.ts","../../src/core/atoms/themes/midnight.ts","../../src/core/components/buttons/ActionButton.tsx","../../src/core/components/buttons/BurgerButton.tsx","../../src/core/components/buttons/ClipboardButton.tsx","../../src/core/components/buttons/DarkModeButton.tsx","../../src/core/components/buttons/LanguageButton.tsx","../../src/core/components/buttons/OmnibarButton.tsx","../../src/core/components/buttons/ThemeButton.tsx","../../src/core/services/DialogService.tsx","../../src/core/components/dialogs/AlertDialog.tsx","../../src/core/components/dialogs/ConfirmDialog.tsx","../../src/core/components/dialogs/PromptDialog.tsx","../../src/core/components/form/ControlDate.tsx","../../src/core/components/form/ControlQueryBuilder.tsx","../../src/core/components/form/TypeForm.tsx","../../src/core/components/layout/AppBar.tsx","../../src/core/components/layout/Sidebar.tsx","../../src/core/components/layout/AdminShell.tsx","../../src/core/components/layout/Omnibar.tsx","../../src/core/components/layout/AlephaMantineProvider.tsx","../../src/core/components/table/types.ts","../../src/core/components/table/DataTable.tsx","../../src/core/constants/ui.ts","../../src/core/hooks/useDialog.ts","../../src/core/services/ToastService.tsx","../../src/core/hooks/useToast.ts","../../src/core/providers/ThemeProvider.ts","../../src/core/RootRouter.ts","../../src/core/utils/extractSchemaFields.ts","../../src/core/utils/icons.tsx","../../src/core/utils/string.ts","../../src/core/index.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/atoms/alephaThemeAtom.ts","../../src/core/utils/parseInput.ts","../../src/core/components/form/ControlArray.tsx","../../src/core/components/form/ControlNumber.tsx","../../src/core/components/form/ControlObject.tsx","../../src/core/components/form/ControlSelect.tsx","../../src/core/components/form/Control.tsx","../../src/core/atoms/alephaThemeListAtom.ts","../../src/core/interfaces/AlephaTheme.ts","../../src/core/atoms/themes/default.ts","../../src/core/atoms/themes/midnight.ts","../../src/core/components/buttons/ActionButton.tsx","../../src/core/components/buttons/BurgerButton.tsx","../../src/core/components/buttons/ClipboardButton.tsx","../../src/core/components/buttons/DarkModeButton.tsx","../../src/core/components/buttons/LanguageButton.tsx","../../src/core/components/buttons/OmnibarButton.tsx","../../src/core/components/buttons/ThemeButton.tsx","../../src/core/services/DialogService.tsx","../../src/core/components/dialogs/AlertDialog.tsx","../../src/core/components/dialogs/ConfirmDialog.tsx","../../src/core/components/dialogs/PromptDialog.tsx","../../src/core/components/form/ControlDate.tsx","../../src/core/components/form/ControlQueryBuilder.tsx","../../src/core/components/form/TypeForm.tsx","../../src/core/components/layout/AppBar.tsx","../../src/core/components/layout/Sidebar.tsx","../../src/core/components/layout/AdminShell.tsx","../../src/core/components/layout/Omnibar.tsx","../../src/core/components/layout/AlephaMantineProvider.tsx","../../src/core/components/table/types.ts","../../src/core/components/table/DataTable.tsx","../../src/core/constants/ui.ts","../../src/core/hooks/useDialog.ts","../../src/core/services/ToastService.tsx","../../src/core/hooks/useToast.ts","../../src/core/providers/ThemeProvider.ts","../../src/core/RootRouter.ts","../../src/core/utils/extractSchemaFields.ts","../../src/core/utils/icons.tsx","../../src/core/utils/string.ts","../../src/core/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -370,7 +370,7 @@ const AlephaMantineProvider = (props) => {
|
|
|
370
370
|
nprogress.complete();
|
|
371
371
|
},
|
|
372
372
|
"react:action:error": ({ error }) => {
|
|
373
|
-
if (error instanceof FormValidationError) return;
|
|
373
|
+
if (error instanceof FormValidationError || error instanceof TypeBoxError) return;
|
|
374
374
|
toast.danger({
|
|
375
375
|
title: error.name || "Error",
|
|
376
376
|
message: error.message ?? "An error occurred while processing your action."
|
|
@@ -2477,7 +2477,7 @@ var Control_default = Control;
|
|
|
2477
2477
|
* ```
|
|
2478
2478
|
*/
|
|
2479
2479
|
const TypeForm = (props) => {
|
|
2480
|
-
const { form, columns = 3, children, controlProps, fieldControlProps, skipFormElement = false, skipSubmitButton = false, submitButtonProps } = props;
|
|
2480
|
+
const { form, columns = 3, children, controlProps, fieldControlProps, skipFormElement = false, skipSubmitButton = false, submitButtonProps, fill = true } = props;
|
|
2481
2481
|
const schema = props.schema || form.options.schema;
|
|
2482
2482
|
if (!schema?.properties) return null;
|
|
2483
2483
|
const supportedFields = Object.keys(schema.properties);
|
|
@@ -2518,7 +2518,7 @@ const TypeForm = (props) => {
|
|
|
2518
2518
|
const content = /* @__PURE__ */ jsxs(Flex$1, {
|
|
2519
2519
|
direction: "column",
|
|
2520
2520
|
gap: "sm",
|
|
2521
|
-
flex:
|
|
2521
|
+
flex: fill ? 1 : void 0,
|
|
2522
2522
|
...props.flexProps,
|
|
2523
2523
|
children: [/* @__PURE__ */ jsx(Flex$1, {
|
|
2524
2524
|
direction: "column",
|
|
@@ -2554,7 +2554,7 @@ const TypeForm = (props) => {
|
|
|
2554
2554
|
if (skipFormElement) return content;
|
|
2555
2555
|
return /* @__PURE__ */ jsx(Flex$1, {
|
|
2556
2556
|
component: "form",
|
|
2557
|
-
flex:
|
|
2557
|
+
flex: fill ? 1 : void 0,
|
|
2558
2558
|
...form.props,
|
|
2559
2559
|
...props.flexProps,
|
|
2560
2560
|
children: content
|
|
@@ -2684,7 +2684,7 @@ const Sidebar = (props) => {
|
|
|
2684
2684
|
const getSidebarNodes = () => {
|
|
2685
2685
|
if (props.items) return props.items;
|
|
2686
2686
|
if (props.autoPopulateMenu) {
|
|
2687
|
-
const items = router.concretePages.map((page) => ({
|
|
2687
|
+
const items = router.concretePages.filter((page) => !page.can || page.can()).map((page) => ({
|
|
2688
2688
|
label: page.label ?? page.name,
|
|
2689
2689
|
icon: renderIcon(page.icon),
|
|
2690
2690
|
href: router.path(page.name)
|
|
@@ -2693,6 +2693,7 @@ const Sidebar = (props) => {
|
|
|
2693
2693
|
const startsWith = props.autoPopulateMenu.startsWith;
|
|
2694
2694
|
return items.filter((item) => item.href?.startsWith(startsWith));
|
|
2695
2695
|
}
|
|
2696
|
+
return items;
|
|
2696
2697
|
}
|
|
2697
2698
|
return [];
|
|
2698
2699
|
};
|