@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.
Files changed (63) hide show
  1. package/dist/actions/activity-log/index.cjs +19 -0
  2. package/dist/actions/activity-log/index.d.ts +1 -0
  3. package/dist/actions/activity-log/index.mjs +10 -0
  4. package/dist/actions/rbac/index.cjs +130 -0
  5. package/dist/actions/rbac/index.d.ts +35 -0
  6. package/dist/actions/rbac/index.mjs +92 -0
  7. package/dist/actions/session-manager/index.cjs +99 -0
  8. package/dist/actions/session-manager/index.d.ts +21 -0
  9. package/dist/actions/session-manager/index.mjs +73 -0
  10. package/dist/index.cjs +68 -1
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.mjs +90 -0
  13. package/dist/navigation.cjs +15 -1
  14. package/dist/navigation.mjs +17 -1
  15. package/dist/routes.cjs +31 -6
  16. package/dist/routes.mjs +34 -6
  17. package/dist/schema/activity-log.cjs +23 -0
  18. package/dist/schema/activity-log.d.ts +103 -0
  19. package/dist/schema/activity-log.mjs +15 -0
  20. package/dist/schema.cjs +16 -0
  21. package/dist/schema.d.ts +1 -0
  22. package/dist/schema.mjs +1 -0
  23. package/dist/ui/activity-log/components/ActivityStatsWidget.cjs +35 -0
  24. package/dist/ui/activity-log/components/ActivityStatsWidget.d.ts +2 -0
  25. package/dist/ui/activity-log/components/ActivityStatsWidget.mjs +15 -0
  26. package/dist/ui/activity-log/components/RecentLogsWidget.cjs +50 -0
  27. package/dist/ui/activity-log/components/RecentLogsWidget.d.ts +2 -0
  28. package/dist/ui/activity-log/components/RecentLogsWidget.mjs +29 -0
  29. package/dist/ui/activity-log/pages/log-list.cjs +61 -0
  30. package/dist/ui/activity-log/pages/log-list.d.ts +2 -0
  31. package/dist/ui/activity-log/pages/log-list.mjs +36 -0
  32. package/dist/ui/components/app-user.cjs +4 -5
  33. package/dist/ui/components/app-user.mjs +5 -7
  34. package/dist/ui/components/profile/components.cjs +4 -1
  35. package/dist/ui/components/profile/components.d.ts +4 -3
  36. package/dist/ui/components/profile/components.mjs +1 -0
  37. package/dist/ui/components/profile/link.cjs +10 -1
  38. package/dist/ui/components/profile/link.d.ts +2 -1
  39. package/dist/ui/components/profile/link.mjs +2 -1
  40. package/dist/ui/components/profile/page.cjs +4 -1
  41. package/dist/ui/components/profile/page.d.ts +2 -1
  42. package/dist/ui/components/profile/page.mjs +9 -2
  43. package/dist/ui/dashboard/page.cjs +6 -16
  44. package/dist/ui/dashboard/page.d.ts +1 -1
  45. package/dist/ui/dashboard/page.mjs +14 -6
  46. package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.cjs +43 -0
  47. package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.d.ts +2 -0
  48. package/dist/ui/dashboard/widgets/WelcomeBackUserWidget.mjs +18 -0
  49. package/dist/ui/rbac/pages/rbac-admin.cjs +328 -0
  50. package/dist/ui/rbac/pages/rbac-admin.d.ts +2 -0
  51. package/dist/ui/rbac/pages/rbac-admin.mjs +375 -0
  52. package/dist/ui/session-manager/components/sessions-list.cjs +160 -0
  53. package/dist/ui/session-manager/components/sessions-list.d.ts +13 -0
  54. package/dist/ui/session-manager/components/sessions-list.mjs +193 -0
  55. package/dist/ui/session-manager/pages/sessions-page.cjs +29 -0
  56. package/dist/ui/session-manager/pages/sessions-page.d.ts +2 -0
  57. package/dist/ui/session-manager/pages/sessions-page.mjs +9 -0
  58. package/locales/en/global.json +109 -1
  59. package/locales/pl/global.json +188 -0
  60. package/package.json +7 -6
  61. package/dist/ui/[...catchAll]/page.cjs +0 -127
  62. package/dist/ui/[...catchAll]/page.d.ts +0 -13
  63. 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, signOut } = useUser();
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 " }, /* @__PURE__ */ React.createElement(Icon, { icon: "solar:logout-broken" }), t("Logout"))
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
- }): import("react").JSX.Element;
5
- export declare function UpdatePasswordForm(): import("react").JSX.Element;
5
+ }): React.JSX.Element;
6
+ export declare function UpdatePasswordForm(): React.JSX.Element;
6
7
  export declare function UpdateEmailForm({ user }: {
7
8
  user: FullUser;
8
- }): import("react").JSX.Element;
9
+ }): 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 { cn, Icon, toast } from "@arch-cadre/ui";
4
5
  import {
@@ -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
- export declare function UserDropdownLink(): import("react").JSX.Element;
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.ExtensionPoint, {
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
- export default function ProfileSettingsPage(): Promise<import("react").JSX.Element>;
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 { ExtensionPoint } from "@arch-cadre/modules";
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(ExtensionPoint, { module: "user-profile", point: "settings:extra-sections" }));
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 = Stats01;
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 Stats01() {
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: "grid gap-6"
22
- }, /* @__PURE__ */React.createElement("h1", null, t("Welcome {name}", {
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: "space-y-6"
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: "space-y-6"
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 Stats01(): Promise<React.JSX.Element>;
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 Stats01() {
6
- const { user } = await getCurrentSession();
7
- const { t } = await getTranslation();
8
- return /* @__PURE__ */ React.createElement("div", { className: "grid gap-6" }, /* @__PURE__ */ React.createElement("h1", null, t("Welcome {name}", { name: user?.name })), /* @__PURE__ */ React.createElement(WidgetArea, { area: "dashboard-stats", className: "space-y-6" }), /* @__PURE__ */ React.createElement(WidgetArea, { area: "dashboard-main", className: "space-y-6" }));
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,2 @@
1
+ import * as React from "react";
2
+ export default function WelcomeBackUserWidget(): Promise<React.JSX.Element | null>;
@@ -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
+ }