@arch-cadre/panel 0.0.1 → 1.0.2
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/actions/activity-log/index.cjs +19 -0
- package/dist/actions/activity-log/index.d.ts +1 -0
- package/dist/actions/activity-log/index.mjs +10 -0
- package/dist/actions/rbac/index.cjs +130 -0
- package/dist/actions/rbac/index.d.ts +35 -0
- package/dist/actions/rbac/index.mjs +92 -0
- package/dist/actions/session-manager/index.cjs +99 -0
- package/dist/actions/session-manager/index.d.ts +21 -0
- package/dist/actions/session-manager/index.mjs +73 -0
- package/dist/index.cjs +68 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +90 -0
- package/dist/navigation.cjs +15 -1
- package/dist/navigation.mjs +17 -1
- package/dist/routes.cjs +31 -6
- package/dist/routes.mjs +34 -6
- package/dist/schema/activity-log.cjs +23 -0
- package/dist/schema/activity-log.d.ts +103 -0
- package/dist/schema/activity-log.mjs +15 -0
- package/dist/schema.cjs +16 -0
- package/dist/schema.d.ts +1 -0
- package/dist/schema.mjs +1 -0
- package/dist/ui/activity-log/components/ActivityStatsWidget.cjs +35 -0
- package/dist/ui/activity-log/components/ActivityStatsWidget.d.ts +2 -0
- package/dist/ui/activity-log/components/ActivityStatsWidget.mjs +15 -0
- package/dist/ui/activity-log/components/RecentLogsWidget.cjs +50 -0
- package/dist/ui/activity-log/components/RecentLogsWidget.d.ts +2 -0
- package/dist/ui/activity-log/components/RecentLogsWidget.mjs +29 -0
- package/dist/ui/activity-log/pages/log-list.cjs +61 -0
- package/dist/ui/activity-log/pages/log-list.d.ts +2 -0
- package/dist/ui/activity-log/pages/log-list.mjs +36 -0
- package/dist/ui/components/app-user.cjs +4 -5
- package/dist/ui/components/app-user.mjs +5 -7
- package/dist/ui/components/profile/components.cjs +4 -1
- package/dist/ui/components/profile/components.d.ts +4 -3
- package/dist/ui/components/profile/components.mjs +1 -0
- package/dist/ui/components/profile/link.cjs +10 -1
- package/dist/ui/components/profile/link.d.ts +2 -1
- package/dist/ui/components/profile/link.mjs +2 -1
- package/dist/ui/components/profile/page.cjs +4 -1
- package/dist/ui/components/profile/page.d.ts +2 -1
- package/dist/ui/components/profile/page.mjs +9 -2
- package/dist/ui/dashboard/page.cjs +6 -16
- package/dist/ui/dashboard/page.d.ts +1 -1
- package/dist/ui/dashboard/page.mjs +14 -6
- package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.cjs +43 -0
- package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.d.ts +2 -0
- package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.mjs +18 -0
- package/dist/ui/rbac/pages/rbac-admin.cjs +328 -0
- package/dist/ui/rbac/pages/rbac-admin.d.ts +2 -0
- package/dist/ui/rbac/pages/rbac-admin.mjs +375 -0
- package/dist/ui/session-manager/components/sessions-list.cjs +160 -0
- package/dist/ui/session-manager/components/sessions-list.d.ts +13 -0
- package/dist/ui/session-manager/components/sessions-list.mjs +193 -0
- package/dist/ui/session-manager/pages/sessions-page.cjs +29 -0
- package/dist/ui/session-manager/pages/sessions-page.d.ts +2 -0
- package/dist/ui/session-manager/pages/sessions-page.mjs +9 -0
- package/locales/en/global.json +109 -1
- package/locales/pl/global.json +188 -0
- package/package.json +7 -6
- package/dist/ui/[...catchAll]/page.cjs +0 -127
- package/dist/ui/[...catchAll]/page.d.ts +0 -13
- package/dist/ui/[...catchAll]/page.mjs +0 -88
|
@@ -22,8 +22,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
22
22
|
function AppUser() {
|
|
23
23
|
const {
|
|
24
24
|
user,
|
|
25
|
-
isLoading
|
|
26
|
-
signOut
|
|
25
|
+
isLoading
|
|
27
26
|
} = (0, _useUser.useUser)();
|
|
28
27
|
const isMobile = (0, _useMobile.useIsMobile)();
|
|
29
28
|
const {
|
|
@@ -45,7 +44,7 @@ function AppUser() {
|
|
|
45
44
|
asChild: true
|
|
46
45
|
}, /* @__PURE__ */React.createElement(_sidebar.SidebarMenuButton, {
|
|
47
46
|
size: "lg",
|
|
48
|
-
className: (0, _utils.cn)(isLoading && "opacity-50", "cursor-pointer data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground")
|
|
47
|
+
className: (0, _utils.cn)(isLoading && "opacity-50", "cursor-pointer squircle data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground")
|
|
49
48
|
}, /* @__PURE__ */React.createElement(_avatar.Avatar, {
|
|
50
49
|
className: "h-8 w-8 rounded-full"
|
|
51
50
|
}, /* @__PURE__ */React.createElement(_avatar.AvatarImage, {
|
|
@@ -64,7 +63,7 @@ function AppUser() {
|
|
|
64
63
|
"aria-hidden": "true",
|
|
65
64
|
className: "mr-1 size-4 rotate-90"
|
|
66
65
|
}))), /* @__PURE__ */React.createElement(_dropdownMenu.DropdownMenuContent, {
|
|
67
|
-
className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
66
|
+
className: "squircle w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
68
67
|
side: isMobile ? "bottom" : "top",
|
|
69
68
|
align: "end",
|
|
70
69
|
sideOffset: 4
|
|
@@ -95,7 +94,7 @@ function AppUser() {
|
|
|
95
94
|
},
|
|
96
95
|
className: "w-full"
|
|
97
96
|
}, /* @__PURE__ */React.createElement(_dropdownMenu.DropdownMenuItem, {
|
|
98
|
-
className: "cursor-pointer
|
|
97
|
+
className: "cursor-pointer"
|
|
99
98
|
}, /* @__PURE__ */React.createElement(_react.Icon, {
|
|
100
99
|
icon: "solar:logout-broken"
|
|
101
100
|
}), t("Logout")))))));
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useTranslation } from "@arch-cadre/intl";
|
|
3
|
-
import {
|
|
4
|
-
ExtensionPointClient
|
|
5
|
-
} from "@arch-cadre/modules";
|
|
3
|
+
import { ExtensionPointClient } from "@arch-cadre/modules";
|
|
6
4
|
import {
|
|
7
5
|
Avatar,
|
|
8
6
|
AvatarFallback,
|
|
@@ -29,7 +27,7 @@ import * as React from "react";
|
|
|
29
27
|
import { toast } from "sonner";
|
|
30
28
|
import { logoutAction } from "../../actions/index.mjs";
|
|
31
29
|
export function AppUser() {
|
|
32
|
-
const { user, isLoading
|
|
30
|
+
const { user, isLoading } = useUser();
|
|
33
31
|
const isMobile = useIsMobile();
|
|
34
32
|
const { t } = useTranslation();
|
|
35
33
|
if (!user) {
|
|
@@ -53,7 +51,7 @@ export function AppUser() {
|
|
|
53
51
|
size: "lg",
|
|
54
52
|
className: cn(
|
|
55
53
|
isLoading && "opacity-50",
|
|
56
|
-
"cursor-pointer data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
54
|
+
"cursor-pointer squircle data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
57
55
|
)
|
|
58
56
|
},
|
|
59
57
|
/* @__PURE__ */ React.createElement(Avatar, { className: "h-8 w-8 rounded-full" }, /* @__PURE__ */ React.createElement(AvatarImage, { src: user.image ?? void 0, alt: user.name }), /* @__PURE__ */ React.createElement(AvatarFallback, { className: "rounded-full" }, user.name.charAt(0).toUpperCase())),
|
|
@@ -69,7 +67,7 @@ export function AppUser() {
|
|
|
69
67
|
)), /* @__PURE__ */ React.createElement(
|
|
70
68
|
DropdownMenuContent,
|
|
71
69
|
{
|
|
72
|
-
className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
70
|
+
className: "squircle w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
|
|
73
71
|
side: isMobile ? "bottom" : "top",
|
|
74
72
|
align: "end",
|
|
75
73
|
sideOffset: 4
|
|
@@ -86,7 +84,7 @@ export function AppUser() {
|
|
|
86
84
|
},
|
|
87
85
|
className: "w-full"
|
|
88
86
|
},
|
|
89
|
-
/* @__PURE__ */ React.createElement(DropdownMenuItem, { className: "cursor-pointer
|
|
87
|
+
/* @__PURE__ */ React.createElement(DropdownMenuItem, { className: "cursor-pointer" }, /* @__PURE__ */ React.createElement(Icon, { icon: "solar:logout-broken" }), t("Logout"))
|
|
90
88
|
)
|
|
91
89
|
))));
|
|
92
90
|
}
|
|
@@ -7,14 +7,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.UpdateEmailForm = UpdateEmailForm;
|
|
8
8
|
exports.UpdatePasswordForm = UpdatePasswordForm;
|
|
9
9
|
exports.UpdateProfileForm = UpdateProfileForm;
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var React = _react;
|
|
10
12
|
var _intl = require("@arch-cadre/intl");
|
|
11
13
|
var _ui = require("@arch-cadre/ui");
|
|
12
14
|
var _avatar = require("@arch-cadre/ui/components/avatar");
|
|
13
15
|
var _button = require("@arch-cadre/ui/components/button");
|
|
14
16
|
var _input = require("@arch-cadre/ui/components/input");
|
|
15
17
|
var _label = require("@arch-cadre/ui/components/label");
|
|
16
|
-
var _react = require("react");
|
|
17
18
|
var _profile = require("../../../actions/profile.cjs");
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
21
|
function UpdateProfileForm({
|
|
19
22
|
user
|
|
20
23
|
}) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import type { FullUser } from "@arch-cadre/core";
|
|
2
3
|
export declare function UpdateProfileForm({ user }: {
|
|
3
4
|
user: FullUser;
|
|
4
|
-
}):
|
|
5
|
-
export declare function UpdatePasswordForm():
|
|
5
|
+
}): React.JSX.Element;
|
|
6
|
+
export declare function UpdatePasswordForm(): React.JSX.Element;
|
|
6
7
|
export declare function UpdateEmailForm({ user }: {
|
|
7
8
|
user: FullUser;
|
|
8
|
-
}):
|
|
9
|
+
}): React.JSX.Element;
|
|
@@ -5,11 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.UserDropdownLink = UserDropdownLink;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _intl = require("@arch-cadre/intl");
|
|
9
10
|
var _ui = require("@arch-cadre/ui");
|
|
10
11
|
var _dropdownMenu = require("@arch-cadre/ui/components/dropdown-menu");
|
|
11
12
|
var _link = _interopRequireDefault(require("next/link"));
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
16
|
function UserDropdownLink() {
|
|
14
17
|
const root = "/kryo";
|
|
15
18
|
const {
|
|
@@ -21,5 +24,11 @@ function UserDropdownLink() {
|
|
|
21
24
|
className: "cursor-pointer "
|
|
22
25
|
}, /* @__PURE__ */React.createElement(_ui.Icon, {
|
|
23
26
|
icon: "solar:user-circle-broken"
|
|
24
|
-
}), t("Profile Settings")))
|
|
27
|
+
}), t("Profile Settings"))), /* @__PURE__ */React.createElement(_link.default, {
|
|
28
|
+
href: `${root}/sessions`
|
|
29
|
+
}, /* @__PURE__ */React.createElement(_dropdownMenu.DropdownMenuItem, {
|
|
30
|
+
className: "cursor-pointer "
|
|
31
|
+
}, /* @__PURE__ */React.createElement(_ui.Icon, {
|
|
32
|
+
icon: "solar:monitor-broken"
|
|
33
|
+
}), t("Manage Device Sessions")))));
|
|
25
34
|
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare function UserDropdownLink(): React.JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import * as React from "react";
|
|
2
3
|
import { useTranslation } from "@arch-cadre/intl";
|
|
3
4
|
import { Icon } from "@arch-cadre/ui";
|
|
4
5
|
import {
|
|
@@ -9,5 +10,5 @@ import Link from "next/link";
|
|
|
9
10
|
export function UserDropdownLink() {
|
|
10
11
|
const root = "/kryo";
|
|
11
12
|
const { t } = useTranslation();
|
|
12
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DropdownMenuGroup, null, /* @__PURE__ */ React.createElement(Link, { href: `${root}/profile` }, /* @__PURE__ */ React.createElement(DropdownMenuItem, { className: "cursor-pointer " }, /* @__PURE__ */ React.createElement(Icon, { icon: "solar:user-circle-broken" }), t("Profile Settings")))));
|
|
13
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DropdownMenuGroup, null, /* @__PURE__ */ React.createElement(Link, { href: `${root}/profile` }, /* @__PURE__ */ React.createElement(DropdownMenuItem, { className: "cursor-pointer " }, /* @__PURE__ */ React.createElement(Icon, { icon: "solar:user-circle-broken" }), t("Profile Settings"))), /* @__PURE__ */ React.createElement(Link, { href: `${root}/sessions` }, /* @__PURE__ */ React.createElement(DropdownMenuItem, { className: "cursor-pointer " }, /* @__PURE__ */ React.createElement(Icon, { icon: "solar:monitor-broken" }), t("Manage Device Sessions")))));
|
|
13
14
|
}
|
|
@@ -9,6 +9,9 @@ var _server2 = require("@arch-cadre/intl/server");
|
|
|
9
9
|
var _modules = require("@arch-cadre/modules");
|
|
10
10
|
var _navigation = require("next/navigation");
|
|
11
11
|
var _components = require("./components.cjs");
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
15
|
async function ProfileSettingsPage() {
|
|
13
16
|
const {
|
|
14
17
|
session,
|
|
@@ -34,7 +37,7 @@ async function ProfileSettingsPage() {
|
|
|
34
37
|
user
|
|
35
38
|
}), /* @__PURE__ */React.createElement(_components.UpdateEmailForm, {
|
|
36
39
|
user
|
|
37
|
-
}), /* @__PURE__ */React.createElement(_components.UpdatePasswordForm, null), /* @__PURE__ */React.createElement(_modules.
|
|
40
|
+
}), /* @__PURE__ */React.createElement(_components.UpdatePasswordForm, null), /* @__PURE__ */React.createElement(_modules.ExtensionPointClient, {
|
|
38
41
|
module: "user-profile",
|
|
39
42
|
point: "settings:extra-sections"
|
|
40
43
|
}));
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export default function ProfileSettingsPage(): Promise<React.JSX.Element>;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { checkSecurity, getCurrentSession } from "@arch-cadre/core/server";
|
|
2
2
|
import { getTranslation } from "@arch-cadre/intl/server";
|
|
3
|
-
import {
|
|
3
|
+
import { ExtensionPointClient } from "@arch-cadre/modules";
|
|
4
4
|
import { redirect } from "next/navigation";
|
|
5
5
|
import {
|
|
6
6
|
UpdateEmailForm,
|
|
7
7
|
UpdatePasswordForm,
|
|
8
8
|
UpdateProfileForm
|
|
9
9
|
} from "./components.mjs";
|
|
10
|
+
import * as React from "react";
|
|
10
11
|
export default async function ProfileSettingsPage() {
|
|
11
12
|
const { session, user } = await getCurrentSession();
|
|
12
13
|
const { t } = await getTranslation();
|
|
@@ -17,5 +18,11 @@ export default async function ProfileSettingsPage() {
|
|
|
17
18
|
if (!security.satisfied && security.redirect) {
|
|
18
19
|
return redirect(security.redirect);
|
|
19
20
|
}
|
|
20
|
-
return /* @__PURE__ */ React.createElement("div", { className: "space-y-6 max-w-2xl" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", { className: "text-2xl font-bold" }, t("Profile Settings")), /* @__PURE__ */ React.createElement("p", { className: "text-muted-foreground" }, t("Manage your account settings and profile information."))), /* @__PURE__ */ React.createElement(UpdateProfileForm, { user }), /* @__PURE__ */ React.createElement(UpdateEmailForm, { user }), /* @__PURE__ */ React.createElement(UpdatePasswordForm, null), /* @__PURE__ */ React.createElement(
|
|
21
|
+
return /* @__PURE__ */ React.createElement("div", { className: "space-y-6 max-w-2xl" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", { className: "text-2xl font-bold" }, t("Profile Settings")), /* @__PURE__ */ React.createElement("p", { className: "text-muted-foreground" }, t("Manage your account settings and profile information."))), /* @__PURE__ */ React.createElement(UpdateProfileForm, { user }), /* @__PURE__ */ React.createElement(UpdateEmailForm, { user }), /* @__PURE__ */ React.createElement(UpdatePasswordForm, null), /* @__PURE__ */ React.createElement(
|
|
22
|
+
ExtensionPointClient,
|
|
23
|
+
{
|
|
24
|
+
module: "user-profile",
|
|
25
|
+
point: "settings:extra-sections"
|
|
26
|
+
}
|
|
27
|
+
));
|
|
21
28
|
}
|
|
@@ -3,29 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
module.exports =
|
|
7
|
-
var _server = require("@arch-cadre/core/server");
|
|
8
|
-
var _server2 = require("@arch-cadre/intl/server");
|
|
6
|
+
module.exports = Page;
|
|
9
7
|
var _modules = require("@arch-cadre/modules");
|
|
10
8
|
var React = _interopRequireWildcard(require("react"));
|
|
11
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
10
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
async function
|
|
14
|
-
const {
|
|
15
|
-
user
|
|
16
|
-
} = await (0, _server.getCurrentSession)();
|
|
17
|
-
const {
|
|
18
|
-
t
|
|
19
|
-
} = await (0, _server2.getTranslation)();
|
|
11
|
+
async function Page() {
|
|
20
12
|
return /* @__PURE__ */React.createElement("div", {
|
|
21
|
-
className: "
|
|
22
|
-
}, /* @__PURE__ */React.createElement(
|
|
23
|
-
name: user?.name
|
|
24
|
-
})), /* @__PURE__ */React.createElement(_modules.WidgetArea, {
|
|
13
|
+
className: "flex flex-col gap-6"
|
|
14
|
+
}, /* @__PURE__ */React.createElement(_modules.WidgetArea, {
|
|
25
15
|
area: "dashboard-stats",
|
|
26
|
-
className: "
|
|
16
|
+
className: "grid grid-cols-1 md:grid-cols-3 gap-6"
|
|
27
17
|
}), /* @__PURE__ */React.createElement(_modules.WidgetArea, {
|
|
28
18
|
area: "dashboard-main",
|
|
29
|
-
className: "
|
|
19
|
+
className: "grid grid-cols-1 md:grid-cols-2 gap-6"
|
|
30
20
|
}));
|
|
31
21
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
export default function
|
|
2
|
+
export default function Page(): Promise<React.JSX.Element>;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import { getCurrentSession } from "@arch-cadre/core/server";
|
|
2
|
-
import { getTranslation } from "@arch-cadre/intl/server";
|
|
3
1
|
import { WidgetArea } from "@arch-cadre/modules";
|
|
4
2
|
import * as React from "react";
|
|
5
|
-
export default async function
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
export default async function Page() {
|
|
4
|
+
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React.createElement(
|
|
5
|
+
WidgetArea,
|
|
6
|
+
{
|
|
7
|
+
area: "dashboard-stats",
|
|
8
|
+
className: "grid grid-cols-1 md:grid-cols-3 gap-6"
|
|
9
|
+
}
|
|
10
|
+
), /* @__PURE__ */ React.createElement(
|
|
11
|
+
WidgetArea,
|
|
12
|
+
{
|
|
13
|
+
area: "dashboard-main",
|
|
14
|
+
className: "grid grid-cols-1 md:grid-cols-2 gap-6"
|
|
15
|
+
}
|
|
16
|
+
));
|
|
9
17
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
module.exports = WelcomeBackUserWidget;
|
|
7
|
+
var _server = require("@arch-cadre/core/server");
|
|
8
|
+
var _server2 = require("@arch-cadre/intl/server");
|
|
9
|
+
var _ui = require("@arch-cadre/ui");
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
async function WelcomeBackUserWidget() {
|
|
14
|
+
const {
|
|
15
|
+
user
|
|
16
|
+
} = await (0, _server.getCurrentSession)();
|
|
17
|
+
const {
|
|
18
|
+
t
|
|
19
|
+
} = await (0, _server2.getTranslation)();
|
|
20
|
+
if (!user) return null;
|
|
21
|
+
return /* @__PURE__ */React.createElement(_ui.Card, {
|
|
22
|
+
className: "col-span-1 md:col-span-2 lg:col-span-1"
|
|
23
|
+
}, /* @__PURE__ */React.createElement(_ui.CardHeader, {
|
|
24
|
+
className: "flex flex-row items-center gap-4 pb-2"
|
|
25
|
+
}, /* @__PURE__ */React.createElement(_ui.Avatar, {
|
|
26
|
+
className: "h-12 w-12"
|
|
27
|
+
}, /* @__PURE__ */React.createElement(_ui.AvatarImage, {
|
|
28
|
+
src: user.image || "",
|
|
29
|
+
alt: user.name || "User"
|
|
30
|
+
}), /* @__PURE__ */React.createElement(_ui.AvatarFallback, null, user.name?.substring(0, 2).toUpperCase() || "U")), /* @__PURE__ */React.createElement("div", {
|
|
31
|
+
className: "flex flex-col"
|
|
32
|
+
}, /* @__PURE__ */React.createElement(_ui.CardTitle, {
|
|
33
|
+
className: "text-lg font-bold"
|
|
34
|
+
}, t("Welcome back, {name}!", {
|
|
35
|
+
name: user.name
|
|
36
|
+
})), /* @__PURE__ */React.createElement("p", {
|
|
37
|
+
className: "text-sm text-muted-foreground"
|
|
38
|
+
}, t("It's good to see you again.")))), /* @__PURE__ */React.createElement(_ui.CardContent, null, /* @__PURE__ */React.createElement("div", {
|
|
39
|
+
className: "text-sm text-muted-foreground"
|
|
40
|
+
}, t("You are logged in as {email}", {
|
|
41
|
+
email: user.email
|
|
42
|
+
}))));
|
|
43
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getCurrentSession } from "@arch-cadre/core/server";
|
|
2
|
+
import { getTranslation } from "@arch-cadre/intl/server";
|
|
3
|
+
import {
|
|
4
|
+
Card,
|
|
5
|
+
CardContent,
|
|
6
|
+
CardHeader,
|
|
7
|
+
CardTitle,
|
|
8
|
+
Avatar,
|
|
9
|
+
AvatarImage,
|
|
10
|
+
AvatarFallback
|
|
11
|
+
} from "@arch-cadre/ui";
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
export default async function WelcomeBackUserWidget() {
|
|
14
|
+
const { user } = await getCurrentSession();
|
|
15
|
+
const { t } = await getTranslation();
|
|
16
|
+
if (!user) return null;
|
|
17
|
+
return /* @__PURE__ */ React.createElement(Card, { className: "col-span-1 md:col-span-2 lg:col-span-1" }, /* @__PURE__ */ React.createElement(CardHeader, { className: "flex flex-row items-center gap-4 pb-2" }, /* @__PURE__ */ React.createElement(Avatar, { className: "h-12 w-12" }, /* @__PURE__ */ React.createElement(AvatarImage, { src: user.image || "", alt: user.name || "User" }), /* @__PURE__ */ React.createElement(AvatarFallback, null, user.name?.substring(0, 2).toUpperCase() || "U")), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React.createElement(CardTitle, { className: "text-lg font-bold" }, t("Welcome back, {name}!", { name: user.name })), /* @__PURE__ */ React.createElement("p", { className: "text-sm text-muted-foreground" }, t("It's good to see you again.")))), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement("div", { className: "text-sm text-muted-foreground" }, t("You are logged in as {email}", { email: user.email }))));
|
|
18
|
+
}
|