@carlonicora/nextjs-jsonapi 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/{BlockNoteEditor-CUIQPN6C.mjs → BlockNoteEditor-TFL6ZXIJ.mjs} +4 -4
  2. package/dist/{BlockNoteEditor-NBASFIQP.js → BlockNoteEditor-YEVSJSOI.js} +14 -14
  3. package/dist/{BlockNoteEditor-NBASFIQP.js.map → BlockNoteEditor-YEVSJSOI.js.map} +1 -1
  4. package/dist/billing/index.js +335 -335
  5. package/dist/billing/index.mjs +3 -3
  6. package/dist/{chunk-ITBPDMUX.js → chunk-HIF7DYR3.js} +537 -482
  7. package/dist/chunk-HIF7DYR3.js.map +1 -0
  8. package/dist/{chunk-C62JXXUX.mjs → chunk-IXVNXOZT.mjs} +8 -1
  9. package/dist/{chunk-C62JXXUX.mjs.map → chunk-IXVNXOZT.mjs.map} +1 -1
  10. package/dist/{chunk-HBCIT6KE.js → chunk-KYG2PIRB.js} +5 -1
  11. package/dist/chunk-KYG2PIRB.js.map +1 -0
  12. package/dist/{chunk-OR5NPUWF.js → chunk-NPNKFWV2.js} +9 -2
  13. package/dist/chunk-NPNKFWV2.js.map +1 -0
  14. package/dist/{chunk-TM4RWVZE.mjs → chunk-SLANIL6B.mjs} +455 -400
  15. package/dist/chunk-SLANIL6B.mjs.map +1 -0
  16. package/dist/{chunk-RACFENTQ.mjs → chunk-YCP2OMFD.mjs} +5 -1
  17. package/dist/chunk-YCP2OMFD.mjs.map +1 -0
  18. package/dist/client/index.js +4 -4
  19. package/dist/client/index.mjs +3 -3
  20. package/dist/components/index.js +4 -4
  21. package/dist/components/index.mjs +3 -3
  22. package/dist/contexts/index.js +4 -4
  23. package/dist/contexts/index.mjs +3 -3
  24. package/dist/core/index.d.mts +2 -2
  25. package/dist/core/index.d.ts +2 -2
  26. package/dist/core/index.js +2 -2
  27. package/dist/core/index.mjs +1 -1
  28. package/dist/index.d.mts +2 -1
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.js +3 -3
  31. package/dist/index.mjs +2 -2
  32. package/dist/{s3.service-D7NyMnNY.d.ts → s3.service-CoC0k0iu.d.ts} +3 -0
  33. package/dist/{s3.service-D2vIfl9y.d.mts → s3.service-Duh9HW2n.d.mts} +3 -0
  34. package/dist/server/index.d.mts +1 -1
  35. package/dist/server/index.d.ts +1 -1
  36. package/dist/server/index.js +3 -3
  37. package/dist/server/index.mjs +1 -1
  38. package/package.json +1 -1
  39. package/src/features/auth/components/buttons/GoogleSignInButton.tsx +41 -0
  40. package/src/features/auth/components/details/LandingComponent.tsx +3 -1
  41. package/src/features/auth/components/forms/Login.tsx +3 -1
  42. package/src/features/auth/data/auth.interface.ts +3 -0
  43. package/src/features/auth/data/auth.service.ts +1 -0
  44. package/src/features/auth/data/auth.ts +3 -0
  45. package/src/login/config.ts +7 -0
  46. package/src/login/index.ts +7 -1
  47. package/dist/chunk-HBCIT6KE.js.map +0 -1
  48. package/dist/chunk-ITBPDMUX.js.map +0 -1
  49. package/dist/chunk-OR5NPUWF.js.map +0 -1
  50. package/dist/chunk-RACFENTQ.mjs.map +0 -1
  51. package/dist/chunk-TM4RWVZE.mjs.map +0 -1
  52. /package/dist/{BlockNoteEditor-CUIQPN6C.mjs.map → BlockNoteEditor-TFL6ZXIJ.mjs.map} +0 -0
@@ -5,6 +5,7 @@ import {
5
5
  getRoleId,
6
6
  getTrackablePages,
7
7
  isDiscordAuthEnabled,
8
+ isGoogleAuthEnabled,
8
9
  isInternalAuthEnabled,
9
10
  isRegistrationAllowed,
10
11
  isRolesConfigured,
@@ -12,7 +13,7 @@ import {
12
13
  useI18nLocale,
13
14
  useI18nRouter,
14
15
  useI18nTranslations
15
- } from "./chunk-C62JXXUX.mjs";
16
+ } from "./chunk-IXVNXOZT.mjs";
16
17
  import {
17
18
  AVAILABLE_OAUTH_SCOPES,
18
19
  AuthService,
@@ -39,7 +40,7 @@ import {
39
40
  showToast,
40
41
  useComposedRefs,
41
42
  useIsMobile
42
- } from "./chunk-RACFENTQ.mjs";
43
+ } from "./chunk-YCP2OMFD.mjs";
43
44
  import {
44
45
  JsonApiContext
45
46
  } from "./chunk-VOXD3ZLY.mjs";
@@ -11172,7 +11173,7 @@ __name(AllowedUsersDetails, "AllowedUsersDetails");
11172
11173
  import dynamic from "next/dynamic";
11173
11174
  import React15 from "react";
11174
11175
  import { jsx as jsx123 } from "react/jsx-runtime";
11175
- var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-CUIQPN6C.mjs"), {
11176
+ var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-TFL6ZXIJ.mjs"), {
11176
11177
  ssr: false
11177
11178
  });
11178
11179
  var BlockNoteEditorContainer = React15.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
@@ -12704,32 +12705,85 @@ __name(InnerAuthContainer, "InnerAuthContainer");
12704
12705
  // src/features/auth/components/details/LandingComponent.tsx
12705
12706
  import { useTranslations as useTranslations49 } from "next-intl";
12706
12707
  import Image9 from "next/image";
12707
- import { Fragment as Fragment21, jsx as jsx141, jsxs as jsxs81 } from "react/jsx-runtime";
12708
+
12709
+ // src/features/auth/components/buttons/GoogleSignInButton.tsx
12710
+ import { jsx as jsx141, jsxs as jsxs81 } from "react/jsx-runtime";
12711
+ function GoogleSignInButton() {
12712
+ if (!isGoogleAuthEnabled()) {
12713
+ return null;
12714
+ }
12715
+ return /* @__PURE__ */ jsx141(Link, { href: `${getApiUrl()}auth/google`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsxs81(
12716
+ Button,
12717
+ {
12718
+ className: "w-full bg-white hover:bg-gray-50 text-gray-700 border border-gray-300",
12719
+ variant: "outline",
12720
+ "data-testid": "page-login-button-google",
12721
+ children: [
12722
+ /* @__PURE__ */ jsxs81("svg", { className: "mr-2 h-5 w-5", viewBox: "0 0 24 24", children: [
12723
+ /* @__PURE__ */ jsx141(
12724
+ "path",
12725
+ {
12726
+ fill: "#4285F4",
12727
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
12728
+ }
12729
+ ),
12730
+ /* @__PURE__ */ jsx141(
12731
+ "path",
12732
+ {
12733
+ fill: "#34A853",
12734
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
12735
+ }
12736
+ ),
12737
+ /* @__PURE__ */ jsx141(
12738
+ "path",
12739
+ {
12740
+ fill: "#FBBC05",
12741
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
12742
+ }
12743
+ ),
12744
+ /* @__PURE__ */ jsx141(
12745
+ "path",
12746
+ {
12747
+ fill: "#EA4335",
12748
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
12749
+ }
12750
+ )
12751
+ ] }),
12752
+ "Sign in with Google"
12753
+ ]
12754
+ }
12755
+ ) });
12756
+ }
12757
+ __name(GoogleSignInButton, "GoogleSignInButton");
12758
+
12759
+ // src/features/auth/components/details/LandingComponent.tsx
12760
+ import { Fragment as Fragment21, jsx as jsx142, jsxs as jsxs82 } from "react/jsx-runtime";
12708
12761
  function LandingComponent() {
12709
12762
  const t = useTranslations49();
12710
12763
  const { setComponentType } = useAuthContext();
12711
- return /* @__PURE__ */ jsxs81(Fragment21, { children: [
12712
- /* @__PURE__ */ jsxs81(CardHeader, { className: "mb-4", "data-testid": "page-pre-login-container", children: [
12713
- /* @__PURE__ */ jsxs81(CardTitle, { className: "text-primary flex flex-col items-center gap-y-8 pb-8 text-4xl", children: [
12714
- /* @__PURE__ */ jsx141(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12764
+ return /* @__PURE__ */ jsxs82(Fragment21, { children: [
12765
+ /* @__PURE__ */ jsxs82(CardHeader, { className: "mb-4", "data-testid": "page-pre-login-container", children: [
12766
+ /* @__PURE__ */ jsxs82(CardTitle, { className: "text-primary flex flex-col items-center gap-y-8 pb-8 text-4xl", children: [
12767
+ /* @__PURE__ */ jsx142(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12715
12768
  t(`common.title`)
12716
12769
  ] }),
12717
- /* @__PURE__ */ jsx141(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
12770
+ /* @__PURE__ */ jsx142(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
12718
12771
  ] }),
12719
- /* @__PURE__ */ jsxs81(CardFooter, { className: "mt-4 flex w-full flex-col justify-between gap-y-4", children: [
12720
- isInternalAuthEnabled() && /* @__PURE__ */ jsxs81(Fragment21, { children: [
12721
- isRegistrationAllowed() && /* @__PURE__ */ jsx141(
12772
+ /* @__PURE__ */ jsxs82(CardFooter, { className: "mt-4 flex w-full flex-col justify-between gap-y-4", children: [
12773
+ isInternalAuthEnabled() && /* @__PURE__ */ jsxs82(Fragment21, { children: [
12774
+ isRegistrationAllowed() && /* @__PURE__ */ jsx142(
12722
12775
  Link,
12723
12776
  {
12724
12777
  href: "#",
12725
12778
  className: "flex w-full justify-start",
12726
12779
  onClick: () => setComponentType(5 /* Register */),
12727
- children: /* @__PURE__ */ jsx141(Button, { className: "w-full", variant: `default`, children: t(`auth.buttons.register`) })
12780
+ children: /* @__PURE__ */ jsx142(Button, { className: "w-full", variant: `default`, children: t(`auth.buttons.register`) })
12728
12781
  }
12729
12782
  ),
12730
- /* @__PURE__ */ jsx141(Link, { href: "#", className: "flex w-full justify-end", onClick: () => setComponentType(0 /* Login */), children: /* @__PURE__ */ jsx141(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: t(`auth.buttons.login`) }) })
12783
+ /* @__PURE__ */ jsx142(Link, { href: "#", className: "flex w-full justify-end", onClick: () => setComponentType(0 /* Login */), children: /* @__PURE__ */ jsx142(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: t(`auth.buttons.login`) }) })
12731
12784
  ] }),
12732
- isDiscordAuthEnabled() && /* @__PURE__ */ jsx141(Link, { href: `${getApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx141(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) })
12785
+ isGoogleAuthEnabled() && /* @__PURE__ */ jsx142(GoogleSignInButton, {}),
12786
+ isDiscordAuthEnabled() && /* @__PURE__ */ jsx142(Link, { href: `${getApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx142(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) })
12733
12787
  ] })
12734
12788
  ] });
12735
12789
  }
@@ -12742,7 +12796,7 @@ import Image10 from "next/image";
12742
12796
  import { useEffect as useEffect39, useState as useState47 } from "react";
12743
12797
  import { useForm as useForm5 } from "react-hook-form";
12744
12798
  import { z as z5 } from "zod";
12745
- import { Fragment as Fragment22, jsx as jsx142, jsxs as jsxs82 } from "react/jsx-runtime";
12799
+ import { Fragment as Fragment22, jsx as jsx143, jsxs as jsxs83 } from "react/jsx-runtime";
12746
12800
  function AcceptInvitation() {
12747
12801
  const { setComponentType, params, setParams } = useAuthContext();
12748
12802
  const [showConfirmation, setShowConfirmation] = useState47(false);
@@ -12805,16 +12859,16 @@ function AcceptInvitation() {
12805
12859
  errorToast({ title: t(`common.errors.error`), error });
12806
12860
  }
12807
12861
  }, "onSubmit");
12808
- return /* @__PURE__ */ jsxs82(Fragment22, { children: [
12809
- /* @__PURE__ */ jsxs82(CardHeader, { children: [
12810
- /* @__PURE__ */ jsxs82(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
12811
- /* @__PURE__ */ jsx142(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12862
+ return /* @__PURE__ */ jsxs83(Fragment22, { children: [
12863
+ /* @__PURE__ */ jsxs83(CardHeader, { children: [
12864
+ /* @__PURE__ */ jsxs83(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
12865
+ /* @__PURE__ */ jsx143(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12812
12866
  t("auth.accept_invitation")
12813
12867
  ] }),
12814
- /* @__PURE__ */ jsx142(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx142(Fragment22, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx142(Fragment22, { children: t("auth.select_password") }) })
12868
+ /* @__PURE__ */ jsx143(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx143(Fragment22, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx143(Fragment22, { children: t("auth.select_password") }) })
12815
12869
  ] }),
12816
- /* @__PURE__ */ jsx142(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx142(CardDescription, { className: "text-center text-xl", children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx142(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx142(Form, { ...form, children: /* @__PURE__ */ jsxs82("form", { onSubmit: form.handleSubmit(onSubmit), children: [
12817
- /* @__PURE__ */ jsx142(
12870
+ /* @__PURE__ */ jsx143(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx143(CardDescription, { className: "text-center text-xl", children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx143(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx143(Form, { ...form, children: /* @__PURE__ */ jsxs83("form", { onSubmit: form.handleSubmit(onSubmit), children: [
12871
+ /* @__PURE__ */ jsx143(
12818
12872
  FormPassword,
12819
12873
  {
12820
12874
  form,
@@ -12823,7 +12877,7 @@ function AcceptInvitation() {
12823
12877
  placeholder: t(`user.fields.password.placeholder`)
12824
12878
  }
12825
12879
  ),
12826
- /* @__PURE__ */ jsx142(
12880
+ /* @__PURE__ */ jsx143(
12827
12881
  FormPassword,
12828
12882
  {
12829
12883
  form,
@@ -12832,7 +12886,7 @@ function AcceptInvitation() {
12832
12886
  placeholder: t(`auth.fields.retype_password.placeholder`)
12833
12887
  }
12834
12888
  ),
12835
- /* @__PURE__ */ jsx142(Button, { className: "mt-4 w-full", type: "submit", children: t("auth.accept_invitation") })
12889
+ /* @__PURE__ */ jsx143(Button, { className: "mt-4 w-full", type: "submit", children: t("auth.accept_invitation") })
12836
12890
  ] }) }) })
12837
12891
  ] });
12838
12892
  }
@@ -12842,7 +12896,7 @@ __name(AcceptInvitation, "AcceptInvitation");
12842
12896
  import { useTranslations as useTranslations51 } from "next-intl";
12843
12897
  import Image11 from "next/image";
12844
12898
  import { useEffect as useEffect40, useState as useState48 } from "react";
12845
- import { Fragment as Fragment23, jsx as jsx143, jsxs as jsxs83 } from "react/jsx-runtime";
12899
+ import { Fragment as Fragment23, jsx as jsx144, jsxs as jsxs84 } from "react/jsx-runtime";
12846
12900
  function ActivateAccount() {
12847
12901
  const { setComponentType, params, setParams } = useAuthContext();
12848
12902
  const [showConfirmation, setShowConfirmation] = useState48(false);
@@ -12875,15 +12929,15 @@ function ActivateAccount() {
12875
12929
  setError(t(`auth.errors.invalid_invitation_code`));
12876
12930
  }
12877
12931
  }, []);
12878
- return /* @__PURE__ */ jsxs83(Fragment23, { children: [
12879
- /* @__PURE__ */ jsxs83(CardHeader, { children: [
12880
- /* @__PURE__ */ jsxs83(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
12881
- /* @__PURE__ */ jsx143(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12932
+ return /* @__PURE__ */ jsxs84(Fragment23, { children: [
12933
+ /* @__PURE__ */ jsxs84(CardHeader, { children: [
12934
+ /* @__PURE__ */ jsxs84(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
12935
+ /* @__PURE__ */ jsx144(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12882
12936
  t("auth.accept_invitation")
12883
12937
  ] }),
12884
- /* @__PURE__ */ jsx143(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx143(Fragment23, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx143(Fragment23, { children: " " }) })
12938
+ /* @__PURE__ */ jsx144(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx144(Fragment23, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx144(Fragment23, { children: " " }) })
12885
12939
  ] }),
12886
- /* @__PURE__ */ jsx143(CardContent, { children: /* @__PURE__ */ jsx143(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx143(Fragment23, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx143(Fragment23, { children: error }) : /* @__PURE__ */ jsx143(Fragment23, { children: t("auth.activation_wait") }) }) })
12940
+ /* @__PURE__ */ jsx144(CardContent, { children: /* @__PURE__ */ jsx144(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx144(Fragment23, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx144(Fragment23, { children: error }) : /* @__PURE__ */ jsx144(Fragment23, { children: t("auth.activation_wait") }) }) })
12887
12941
  ] });
12888
12942
  }
12889
12943
  __name(ActivateAccount, "ActivateAccount");
@@ -12920,7 +12974,7 @@ import Image12 from "next/image";
12920
12974
  import { useState as useState50 } from "react";
12921
12975
  import { useForm as useForm6 } from "react-hook-form";
12922
12976
  import { z as z6 } from "zod";
12923
- import { Fragment as Fragment24, jsx as jsx144, jsxs as jsxs84 } from "react/jsx-runtime";
12977
+ import { Fragment as Fragment24, jsx as jsx145, jsxs as jsxs85 } from "react/jsx-runtime";
12924
12978
  function ForgotPassword() {
12925
12979
  const t = useTranslations52();
12926
12980
  const { setComponentType } = useAuthContext();
@@ -12947,17 +13001,17 @@ function ForgotPassword() {
12947
13001
  errorToast({ error: e });
12948
13002
  }
12949
13003
  }, "onSubmit");
12950
- return /* @__PURE__ */ jsxs84(Fragment24, { children: [
12951
- /* @__PURE__ */ jsxs84(CardHeader, { "data-testid": "page-forgot-password-container", children: [
12952
- /* @__PURE__ */ jsxs84(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
12953
- /* @__PURE__ */ jsx144(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
13004
+ return /* @__PURE__ */ jsxs85(Fragment24, { children: [
13005
+ /* @__PURE__ */ jsxs85(CardHeader, { "data-testid": "page-forgot-password-container", children: [
13006
+ /* @__PURE__ */ jsxs85(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
13007
+ /* @__PURE__ */ jsx145(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
12954
13008
  t("auth.buttons.forgot_password")
12955
13009
  ] }),
12956
- /* @__PURE__ */ jsx144(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx144(Fragment24, { children: " " }) : /* @__PURE__ */ jsx144(Fragment24, { children: t(`auth.add_email_to_reset`) }) })
13010
+ /* @__PURE__ */ jsx145(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx145(Fragment24, { children: " " }) : /* @__PURE__ */ jsx145(Fragment24, { children: t(`auth.add_email_to_reset`) }) })
12957
13011
  ] }),
12958
- showConfirmation ? /* @__PURE__ */ jsx144(CardContent, { children: /* @__PURE__ */ jsx144(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_confirmation`) }) }) : /* @__PURE__ */ jsx144(Form, { ...form, children: /* @__PURE__ */ jsxs84("form", { onSubmit: form.handleSubmit(onSubmit), children: [
12959
- /* @__PURE__ */ jsxs84(CardContent, { children: [
12960
- /* @__PURE__ */ jsx144(
13012
+ showConfirmation ? /* @__PURE__ */ jsx145(CardContent, { children: /* @__PURE__ */ jsx145(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_confirmation`) }) }) : /* @__PURE__ */ jsx145(Form, { ...form, children: /* @__PURE__ */ jsxs85("form", { onSubmit: form.handleSubmit(onSubmit), children: [
13013
+ /* @__PURE__ */ jsxs85(CardContent, { children: [
13014
+ /* @__PURE__ */ jsx145(
12961
13015
  FormInput,
12962
13016
  {
12963
13017
  form,
@@ -12967,9 +13021,9 @@ function ForgotPassword() {
12967
13021
  testId: "form-forgot-password-input-email"
12968
13022
  }
12969
13023
  ),
12970
- /* @__PURE__ */ jsx144(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-forgot-password-button-reset", children: t(`auth.buttons.reset_password`) })
13024
+ /* @__PURE__ */ jsx145(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-forgot-password-button-reset", children: t(`auth.buttons.reset_password`) })
12971
13025
  ] }),
12972
- /* @__PURE__ */ jsx144(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx144(
13026
+ /* @__PURE__ */ jsx145(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx145(
12973
13027
  Link,
12974
13028
  {
12975
13029
  href: "#",
@@ -12990,7 +13044,7 @@ import { useTranslations as useTranslations53 } from "next-intl";
12990
13044
  import Image13 from "next/image";
12991
13045
  import { useForm as useForm7 } from "react-hook-form";
12992
13046
  import { z as z7 } from "zod";
12993
- import { Fragment as Fragment25, jsx as jsx145, jsxs as jsxs85 } from "react/jsx-runtime";
13047
+ import { Fragment as Fragment25, jsx as jsx146, jsxs as jsxs86 } from "react/jsx-runtime";
12994
13048
  function Login() {
12995
13049
  const t = useTranslations53();
12996
13050
  const { setUser } = useCurrentUserContext();
@@ -13025,17 +13079,17 @@ function Login() {
13025
13079
  });
13026
13080
  }
13027
13081
  }, "onSubmit");
13028
- return /* @__PURE__ */ jsxs85(Fragment25, { children: [
13029
- /* @__PURE__ */ jsxs85(CardHeader, { "data-testid": "page-login-container", children: [
13030
- /* @__PURE__ */ jsxs85(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
13031
- /* @__PURE__ */ jsx145(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
13082
+ return /* @__PURE__ */ jsxs86(Fragment25, { children: [
13083
+ /* @__PURE__ */ jsxs86(CardHeader, { "data-testid": "page-login-container", children: [
13084
+ /* @__PURE__ */ jsxs86(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
13085
+ /* @__PURE__ */ jsx146(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
13032
13086
  t("auth.buttons.login")
13033
13087
  ] }),
13034
- /* @__PURE__ */ jsx145(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
13088
+ /* @__PURE__ */ jsx146(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
13035
13089
  ] }),
13036
- /* @__PURE__ */ jsx145(Form, { ...form, children: /* @__PURE__ */ jsxs85("form", { onSubmit: form.handleSubmit(onSubmit), children: [
13037
- /* @__PURE__ */ jsx145(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs85(Fragment25, { children: [
13038
- /* @__PURE__ */ jsx145(
13090
+ /* @__PURE__ */ jsx146(Form, { ...form, children: /* @__PURE__ */ jsxs86("form", { onSubmit: form.handleSubmit(onSubmit), children: [
13091
+ /* @__PURE__ */ jsx146(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs86(Fragment25, { children: [
13092
+ /* @__PURE__ */ jsx146(
13039
13093
  FormInput,
13040
13094
  {
13041
13095
  autoFocus: true,
@@ -13046,7 +13100,7 @@ function Login() {
13046
13100
  testId: "form-login-input-email"
13047
13101
  }
13048
13102
  ),
13049
- /* @__PURE__ */ jsx145(
13103
+ /* @__PURE__ */ jsx146(
13050
13104
  FormPassword,
13051
13105
  {
13052
13106
  form,
@@ -13056,12 +13110,13 @@ function Login() {
13056
13110
  testId: "form-login-input-password"
13057
13111
  }
13058
13112
  ),
13059
- /* @__PURE__ */ jsx145(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-login-button-submit", children: t(`auth.buttons.login`) })
13113
+ /* @__PURE__ */ jsx146(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-login-button-submit", children: t(`auth.buttons.login`) })
13060
13114
  ] }) }),
13061
- /* @__PURE__ */ jsxs85(CardFooter, { className: "flex w-full flex-col gap-y-4 mt-4", children: [
13062
- isDiscordAuthEnabled() && /* @__PURE__ */ jsx145(Link, { href: `${getApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx145(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) }),
13063
- /* @__PURE__ */ jsxs85("div", { className: "flex w-full flex-row justify-between", children: [
13064
- /* @__PURE__ */ jsx145(
13115
+ /* @__PURE__ */ jsxs86(CardFooter, { className: "flex w-full flex-col gap-y-4 mt-4", children: [
13116
+ isGoogleAuthEnabled() && /* @__PURE__ */ jsx146(GoogleSignInButton, {}),
13117
+ isDiscordAuthEnabled() && /* @__PURE__ */ jsx146(Link, { href: `${getApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx146(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) }),
13118
+ /* @__PURE__ */ jsxs86("div", { className: "flex w-full flex-row justify-between", children: [
13119
+ /* @__PURE__ */ jsx146(
13065
13120
  Link,
13066
13121
  {
13067
13122
  href: "#",
@@ -13070,7 +13125,7 @@ function Login() {
13070
13125
  children: t(`auth.buttons.register`)
13071
13126
  }
13072
13127
  ),
13073
- /* @__PURE__ */ jsx145(
13128
+ /* @__PURE__ */ jsx146(
13074
13129
  Link,
13075
13130
  {
13076
13131
  href: "#",
@@ -13089,7 +13144,7 @@ __name(Login, "Login");
13089
13144
 
13090
13145
  // src/features/auth/components/forms/Logout.tsx
13091
13146
  import { useEffect as useEffect42 } from "react";
13092
- import { Fragment as Fragment26, jsx as jsx146 } from "react/jsx-runtime";
13147
+ import { Fragment as Fragment26, jsx as jsx147 } from "react/jsx-runtime";
13093
13148
  function Logout() {
13094
13149
  const generateUrl = usePageUrlGenerator();
13095
13150
  useEffect42(() => {
@@ -13099,7 +13154,7 @@ function Logout() {
13099
13154
  }, "logOut");
13100
13155
  logOut();
13101
13156
  }, []);
13102
- return /* @__PURE__ */ jsx146(Fragment26, {});
13157
+ return /* @__PURE__ */ jsx147(Fragment26, {});
13103
13158
  }
13104
13159
  __name(Logout, "Logout");
13105
13160
 
@@ -13140,7 +13195,7 @@ import Image14 from "next/image";
13140
13195
  import { useEffect as useEffect44, useState as useState51 } from "react";
13141
13196
  import { useForm as useForm8 } from "react-hook-form";
13142
13197
  import { z as z8 } from "zod";
13143
- import { Fragment as Fragment27, jsx as jsx147, jsxs as jsxs86 } from "react/jsx-runtime";
13198
+ import { Fragment as Fragment27, jsx as jsx148, jsxs as jsxs87 } from "react/jsx-runtime";
13144
13199
  function ResetPassword() {
13145
13200
  const { setComponentType, params, setParams } = useAuthContext();
13146
13201
  const [showConfirmation, setShowConfirmation] = useState51(false);
@@ -13203,18 +13258,18 @@ function ResetPassword() {
13203
13258
  errorToast({ title: t(`common.errors.error`), error });
13204
13259
  }
13205
13260
  }, "onSubmit");
13206
- return /* @__PURE__ */ jsxs86(Fragment27, { children: [
13207
- /* @__PURE__ */ jsxs86(CardHeader, { children: [
13208
- /* @__PURE__ */ jsxs86(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
13209
- /* @__PURE__ */ jsx147(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
13261
+ return /* @__PURE__ */ jsxs87(Fragment27, { children: [
13262
+ /* @__PURE__ */ jsxs87(CardHeader, { children: [
13263
+ /* @__PURE__ */ jsxs87(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
13264
+ /* @__PURE__ */ jsx148(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
13210
13265
  t(`auth.password_reset`)
13211
13266
  ] }),
13212
- /* @__PURE__ */ jsx147(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx147(Fragment27, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx147(Fragment27, { children: t(`auth.reset_password`) }) })
13267
+ /* @__PURE__ */ jsx148(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx148(Fragment27, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx148(Fragment27, { children: t(`auth.reset_password`) }) })
13213
13268
  ] }),
13214
- /* @__PURE__ */ jsx147(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx147(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_success_description`) }) : error ? /* @__PURE__ */ jsx147(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx147(Form, { ...form, children: /* @__PURE__ */ jsxs86("form", { onSubmit: form.handleSubmit(onSubmit), children: [
13215
- /* @__PURE__ */ jsx147(FormPassword, { form, id: "password", name: "Password" }),
13216
- /* @__PURE__ */ jsx147(FormPassword, { form, id: "passwordRetype", name: "Retype Password" }),
13217
- /* @__PURE__ */ jsx147(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.reset_password`) })
13269
+ /* @__PURE__ */ jsx148(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx148(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_success_description`) }) : error ? /* @__PURE__ */ jsx148(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx148(Form, { ...form, children: /* @__PURE__ */ jsxs87("form", { onSubmit: form.handleSubmit(onSubmit), children: [
13270
+ /* @__PURE__ */ jsx148(FormPassword, { form, id: "password", name: "Password" }),
13271
+ /* @__PURE__ */ jsx148(FormPassword, { form, id: "passwordRetype", name: "Retype Password" }),
13272
+ /* @__PURE__ */ jsx148(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.reset_password`) })
13218
13273
  ] }) }) })
13219
13274
  ] });
13220
13275
  }
@@ -13222,12 +13277,12 @@ __name(ResetPassword, "ResetPassword");
13222
13277
 
13223
13278
  // src/features/content/components/lists/ContentsList.tsx
13224
13279
  import { useTranslations as useTranslations55 } from "next-intl";
13225
- import { jsx as jsx148, jsxs as jsxs87 } from "react/jsx-runtime";
13280
+ import { jsx as jsx149, jsxs as jsxs88 } from "react/jsx-runtime";
13226
13281
  function ContentsList({ contentList }) {
13227
13282
  const t = useTranslations55();
13228
- return /* @__PURE__ */ jsxs87("div", { className: "flex min-h-0 w-full flex-col overflow-y-auto", children: [
13229
- /* @__PURE__ */ jsx148("h2", { className: "text-xl font-semibold", children: t(`content.news`) }),
13230
- /* @__PURE__ */ jsx148("div", { className: "flex flex-col", children: contentList.map((content) => /* @__PURE__ */ jsx148(ContentsListElement, { content }, content.id)) })
13283
+ return /* @__PURE__ */ jsxs88("div", { className: "flex min-h-0 w-full flex-col overflow-y-auto", children: [
13284
+ /* @__PURE__ */ jsx149("h2", { className: "text-xl font-semibold", children: t(`content.news`) }),
13285
+ /* @__PURE__ */ jsx149("div", { className: "flex flex-col", children: contentList.map((content) => /* @__PURE__ */ jsx149(ContentsListElement, { content }, content.id)) })
13231
13286
  ] });
13232
13287
  }
13233
13288
  __name(ContentsList, "ContentsList");
@@ -13235,25 +13290,25 @@ function ContentsListElement({ content }) {
13235
13290
  const generateUrl = usePageUrlGenerator();
13236
13291
  const contentModule = content.contentType ? Modules.findByModelName(content.contentType) : void 0;
13237
13292
  const link = contentModule ? generateUrl({ page: contentModule, id: content.id }) : "#";
13238
- return /* @__PURE__ */ jsx148("div", { className: "hover:bg-muted flex w-full flex-col gap-y-2 border-b p-2 py-4", children: /* @__PURE__ */ jsxs87("div", { className: "flex w-full justify-between gap-x-2", children: [
13239
- /* @__PURE__ */ jsxs87(HoverCard, { children: [
13240
- /* @__PURE__ */ jsx148(HoverCardTrigger, { children: /* @__PURE__ */ jsxs87(Link, { href: link, className: "flex w-full items-center justify-start gap-2 font-semibold", children: [
13293
+ return /* @__PURE__ */ jsx149("div", { className: "hover:bg-muted flex w-full flex-col gap-y-2 border-b p-2 py-4", children: /* @__PURE__ */ jsxs88("div", { className: "flex w-full justify-between gap-x-2", children: [
13294
+ /* @__PURE__ */ jsxs88(HoverCard, { children: [
13295
+ /* @__PURE__ */ jsx149(HoverCardTrigger, { children: /* @__PURE__ */ jsxs88(Link, { href: link, className: "flex w-full items-center justify-start gap-2 font-semibold", children: [
13241
13296
  contentModule && getIconByModule({ module: contentModule, className: "h-4 w-4" }),
13242
13297
  content.name
13243
13298
  ] }) }),
13244
- /* @__PURE__ */ jsxs87(HoverCardContent, { className: "flex max-h-96 w-96 flex-col gap-y-4 overflow-y-auto", children: [
13245
- /* @__PURE__ */ jsx148(Link, { href: link, className: "font-semibold", children: content.name }),
13246
- /* @__PURE__ */ jsx148("div", { className: "text-xs", children: content.abstract })
13299
+ /* @__PURE__ */ jsxs88(HoverCardContent, { className: "flex max-h-96 w-96 flex-col gap-y-4 overflow-y-auto", children: [
13300
+ /* @__PURE__ */ jsx149(Link, { href: link, className: "font-semibold", children: content.name }),
13301
+ /* @__PURE__ */ jsx149("div", { className: "text-xs", children: content.abstract })
13247
13302
  ] })
13248
13303
  ] }),
13249
- /* @__PURE__ */ jsx148(ContributorsList, { content })
13304
+ /* @__PURE__ */ jsx149(ContributorsList, { content })
13250
13305
  ] }) });
13251
13306
  }
13252
13307
  __name(ContentsListElement, "ContentsListElement");
13253
13308
 
13254
13309
  // src/features/content/components/lists/ContentsListById.tsx
13255
13310
  import { useTranslations as useTranslations56 } from "next-intl";
13256
- import { jsx as jsx149 } from "react/jsx-runtime";
13311
+ import { jsx as jsx150 } from "react/jsx-runtime";
13257
13312
  function ContentsListById({ contentIds }) {
13258
13313
  const t = useTranslations56();
13259
13314
  const data = useDataListRetriever({
@@ -13261,7 +13316,7 @@ function ContentsListById({ contentIds }) {
13261
13316
  retriever: /* @__PURE__ */ __name((params) => ContentService.findMany(params), "retriever"),
13262
13317
  retrieverParams: { contentIds }
13263
13318
  });
13264
- return /* @__PURE__ */ jsx149(
13319
+ return /* @__PURE__ */ jsx150(
13265
13320
  ContentListTable,
13266
13321
  {
13267
13322
  data,
@@ -13275,7 +13330,7 @@ __name(ContentsListById, "ContentsListById");
13275
13330
 
13276
13331
  // src/features/content/components/lists/RelevantContentsList.tsx
13277
13332
  import { useTranslations as useTranslations57 } from "next-intl";
13278
- import { jsx as jsx150 } from "react/jsx-runtime";
13333
+ import { jsx as jsx151 } from "react/jsx-runtime";
13279
13334
  function RelevantContentsList({ id }) {
13280
13335
  const t = useTranslations57();
13281
13336
  const data = useDataListRetriever({
@@ -13283,7 +13338,7 @@ function RelevantContentsList({ id }) {
13283
13338
  retriever: /* @__PURE__ */ __name((params) => ContentService.findRelevant(params), "retriever"),
13284
13339
  retrieverParams: { id }
13285
13340
  });
13286
- return /* @__PURE__ */ jsx150(
13341
+ return /* @__PURE__ */ jsx151(
13287
13342
  ContentListTable,
13288
13343
  {
13289
13344
  data,
@@ -13297,7 +13352,7 @@ __name(RelevantContentsList, "RelevantContentsList");
13297
13352
 
13298
13353
  // src/features/notification/components/common/NotificationErrorBoundary.tsx
13299
13354
  import { Component } from "react";
13300
- import { jsx as jsx151, jsxs as jsxs88 } from "react/jsx-runtime";
13355
+ import { jsx as jsx152, jsxs as jsxs89 } from "react/jsx-runtime";
13301
13356
  var NotificationErrorBoundary = class extends Component {
13302
13357
  static {
13303
13358
  __name(this, "NotificationErrorBoundary");
@@ -13314,9 +13369,9 @@ var NotificationErrorBoundary = class extends Component {
13314
13369
  }
13315
13370
  render() {
13316
13371
  if (this.state.hasError) {
13317
- return this.props.fallback || /* @__PURE__ */ jsx151("div", { className: "flex items-center justify-center p-4 text-center", children: /* @__PURE__ */ jsxs88("div", { className: "text-muted-foreground text-sm", children: [
13318
- /* @__PURE__ */ jsx151("p", { children: "Something went wrong with notifications." }),
13319
- /* @__PURE__ */ jsx151(
13372
+ return this.props.fallback || /* @__PURE__ */ jsx152("div", { className: "flex items-center justify-center p-4 text-center", children: /* @__PURE__ */ jsxs89("div", { className: "text-muted-foreground text-sm", children: [
13373
+ /* @__PURE__ */ jsx152("p", { children: "Something went wrong with notifications." }),
13374
+ /* @__PURE__ */ jsx152(
13320
13375
  "button",
13321
13376
  {
13322
13377
  onClick: () => this.setState({ hasError: false }),
@@ -13336,7 +13391,7 @@ import { useTranslations as useTranslations59 } from "next-intl";
13336
13391
  // src/features/notification/components/lists/NotificationsList.tsx
13337
13392
  import { ArchiveIcon } from "lucide-react";
13338
13393
  import { useTranslations as useTranslations58 } from "next-intl";
13339
- import { Fragment as Fragment28, jsx as jsx152, jsxs as jsxs89 } from "react/jsx-runtime";
13394
+ import { Fragment as Fragment28, jsx as jsx153, jsxs as jsxs90 } from "react/jsx-runtime";
13340
13395
  function NotificationsList({ archived }) {
13341
13396
  const t = useTranslations58();
13342
13397
  const generateUrl = usePageUrlGenerator();
@@ -13349,30 +13404,30 @@ function NotificationsList({ archived }) {
13349
13404
  await NotificationService.archive({ id: notification.id });
13350
13405
  data.removeElement(notification);
13351
13406
  }, "archiveNotification");
13352
- const LoadingSkeleton = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx152("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx152(Card, { children: /* @__PURE__ */ jsx152(CardContent, { className: "p-2", children: /* @__PURE__ */ jsxs89("div", { className: "flex w-full flex-row items-center", children: [
13353
- /* @__PURE__ */ jsx152(Skeleton, { className: "mr-4 h-8 w-8 rounded-full" }),
13354
- /* @__PURE__ */ jsxs89("div", { className: "flex-1 space-y-2", children: [
13355
- /* @__PURE__ */ jsx152(Skeleton, { className: "h-4 w-3/4" }),
13356
- /* @__PURE__ */ jsx152(Skeleton, { className: "h-3 w-1/2" })
13407
+ const LoadingSkeleton = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx153("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx153(Card, { children: /* @__PURE__ */ jsx153(CardContent, { className: "p-2", children: /* @__PURE__ */ jsxs90("div", { className: "flex w-full flex-row items-center", children: [
13408
+ /* @__PURE__ */ jsx153(Skeleton, { className: "mr-4 h-8 w-8 rounded-full" }),
13409
+ /* @__PURE__ */ jsxs90("div", { className: "flex-1 space-y-2", children: [
13410
+ /* @__PURE__ */ jsx153(Skeleton, { className: "h-4 w-3/4" }),
13411
+ /* @__PURE__ */ jsx153(Skeleton, { className: "h-3 w-1/2" })
13357
13412
  ] }),
13358
- /* @__PURE__ */ jsx152(Skeleton, { className: "h-8 w-20" })
13413
+ /* @__PURE__ */ jsx153(Skeleton, { className: "h-8 w-20" })
13359
13414
  ] }) }) }, i)) }), "LoadingSkeleton");
13360
- return /* @__PURE__ */ jsx152("div", { className: "space-y-4", children: data.isLoaded ? data.data?.map((notification) => {
13415
+ return /* @__PURE__ */ jsx153("div", { className: "space-y-4", children: data.isLoaded ? data.data?.map((notification) => {
13361
13416
  const notificationData = generateNotificationData({ notification, generateUrl });
13362
- return /* @__PURE__ */ jsx152(Card, { children: /* @__PURE__ */ jsx152(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs89("div", { className: `flex w-full flex-row items-center p-2`, children: [
13363
- notificationData.actor ? /* @__PURE__ */ jsx152("div", { className: "flex w-12 max-w-12 px-2", children: /* @__PURE__ */ jsx152(Link, { href: generateUrl({ page: Modules.User, id: notificationData.actor.id }), children: /* @__PURE__ */ jsx152(UserAvatar, { user: notificationData.actor, className: "h-8 w-8" }) }) }) : /* @__PURE__ */ jsx152("div", { className: "flex w-14 max-w-14 px-2" }),
13364
- /* @__PURE__ */ jsxs89("div", { className: "flex w-full flex-col", children: [
13365
- /* @__PURE__ */ jsx152("p", { className: "text-sm", children: t.rich(`notification.${notification.notificationType}.description`, {
13366
- strong: /* @__PURE__ */ __name((chunks) => /* @__PURE__ */ jsx152("strong", { children: chunks }), "strong"),
13417
+ return /* @__PURE__ */ jsx153(Card, { children: /* @__PURE__ */ jsx153(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs90("div", { className: `flex w-full flex-row items-center p-2`, children: [
13418
+ notificationData.actor ? /* @__PURE__ */ jsx153("div", { className: "flex w-12 max-w-12 px-2", children: /* @__PURE__ */ jsx153(Link, { href: generateUrl({ page: Modules.User, id: notificationData.actor.id }), children: /* @__PURE__ */ jsx153(UserAvatar, { user: notificationData.actor, className: "h-8 w-8" }) }) }) : /* @__PURE__ */ jsx153("div", { className: "flex w-14 max-w-14 px-2" }),
13419
+ /* @__PURE__ */ jsxs90("div", { className: "flex w-full flex-col", children: [
13420
+ /* @__PURE__ */ jsx153("p", { className: "text-sm", children: t.rich(`notification.${notification.notificationType}.description`, {
13421
+ strong: /* @__PURE__ */ __name((chunks) => /* @__PURE__ */ jsx153("strong", { children: chunks }), "strong"),
13367
13422
  actor: notificationData.actor?.name ?? "",
13368
13423
  title: notificationData.title
13369
13424
  }) }),
13370
- /* @__PURE__ */ jsx152("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
13425
+ /* @__PURE__ */ jsx153("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
13371
13426
  ] }),
13372
- /* @__PURE__ */ jsxs89("div", { className: "flex flex-row items-center", children: [
13373
- notificationData.url ? /* @__PURE__ */ jsx152(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx152(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx152(Fragment28, {}),
13374
- !archived && /* @__PURE__ */ jsxs89(Tooltip2, { children: [
13375
- /* @__PURE__ */ jsx152(TooltipTrigger, { children: /* @__PURE__ */ jsx152(
13427
+ /* @__PURE__ */ jsxs90("div", { className: "flex flex-row items-center", children: [
13428
+ notificationData.url ? /* @__PURE__ */ jsx153(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx153(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx153(Fragment28, {}),
13429
+ !archived && /* @__PURE__ */ jsxs90(Tooltip2, { children: [
13430
+ /* @__PURE__ */ jsx153(TooltipTrigger, { children: /* @__PURE__ */ jsx153(
13376
13431
  Button,
13377
13432
  {
13378
13433
  variant: `link`,
@@ -13382,46 +13437,46 @@ function NotificationsList({ archived }) {
13382
13437
  archiveNotification(notification);
13383
13438
  },
13384
13439
  className: "text-muted-foreground hover:text-destructive ml-2",
13385
- children: /* @__PURE__ */ jsx152(ArchiveIcon, { className: "h-4 w-4 cursor-pointer" })
13440
+ children: /* @__PURE__ */ jsx153(ArchiveIcon, { className: "h-4 w-4 cursor-pointer" })
13386
13441
  }
13387
13442
  ) }),
13388
- /* @__PURE__ */ jsx152(TooltipContent, { children: t(`notification.buttons.archive`) })
13443
+ /* @__PURE__ */ jsx153(TooltipContent, { children: t(`notification.buttons.archive`) })
13389
13444
  ] })
13390
13445
  ] })
13391
13446
  ] }) }) }, notification.id);
13392
- }) : /* @__PURE__ */ jsx152(LoadingSkeleton, {}) });
13447
+ }) : /* @__PURE__ */ jsx153(LoadingSkeleton, {}) });
13393
13448
  }
13394
13449
  __name(NotificationsList, "NotificationsList");
13395
13450
 
13396
13451
  // src/features/notification/components/containers/NotificationsListContainer.tsx
13397
- import { jsx as jsx153, jsxs as jsxs90 } from "react/jsx-runtime";
13452
+ import { jsx as jsx154, jsxs as jsxs91 } from "react/jsx-runtime";
13398
13453
  function NotificationsListContainerContent() {
13399
13454
  const t = useTranslations59();
13400
13455
  const { notifications, isLoading, error } = useNotificationContext();
13401
13456
  if (error) {
13402
- return /* @__PURE__ */ jsx153("div", { className: "flex items-center justify-center p-8 text-center", children: /* @__PURE__ */ jsxs90("div", { className: "text-destructive text-sm", children: [
13403
- /* @__PURE__ */ jsxs90("p", { children: [
13457
+ return /* @__PURE__ */ jsx154("div", { className: "flex items-center justify-center p-8 text-center", children: /* @__PURE__ */ jsxs91("div", { className: "text-destructive text-sm", children: [
13458
+ /* @__PURE__ */ jsxs91("p", { children: [
13404
13459
  "Error loading notifications: ",
13405
13460
  error
13406
13461
  ] }),
13407
- /* @__PURE__ */ jsx153("p", { className: "text-muted-foreground mt-2", children: "Please try refreshing the page." })
13462
+ /* @__PURE__ */ jsx154("p", { className: "text-muted-foreground mt-2", children: "Please try refreshing the page." })
13408
13463
  ] }) });
13409
13464
  }
13410
13465
  const tabs = [
13411
13466
  {
13412
13467
  label: t(`notification.inbox`),
13413
- content: /* @__PURE__ */ jsx153(NotificationsList, { archived: false })
13468
+ content: /* @__PURE__ */ jsx154(NotificationsList, { archived: false })
13414
13469
  },
13415
13470
  {
13416
13471
  label: t(`notification.archived`),
13417
- content: /* @__PURE__ */ jsx153(NotificationsList, { archived: true })
13472
+ content: /* @__PURE__ */ jsx154(NotificationsList, { archived: true })
13418
13473
  }
13419
13474
  ];
13420
- return /* @__PURE__ */ jsx153(TabsContainer, { tabs });
13475
+ return /* @__PURE__ */ jsx154(TabsContainer, { tabs });
13421
13476
  }
13422
13477
  __name(NotificationsListContainerContent, "NotificationsListContainerContent");
13423
13478
  function NotificationsListContainer() {
13424
- return /* @__PURE__ */ jsx153(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx153(NotificationsListContainerContent, {}) });
13479
+ return /* @__PURE__ */ jsx154(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx154(NotificationsListContainerContent, {}) });
13425
13480
  }
13426
13481
  __name(NotificationsListContainer, "NotificationsListContainer");
13427
13482
 
@@ -13429,7 +13484,7 @@ __name(NotificationsListContainer, "NotificationsListContainer");
13429
13484
  import { BellIcon } from "lucide-react";
13430
13485
  import { useTranslations as useTranslations60 } from "next-intl";
13431
13486
  import { Fragment as Fragment29, useCallback as useCallback21, useEffect as useEffect45, useMemo as useMemo21, useRef as useRef18, useState as useState52 } from "react";
13432
- import { jsx as jsx154, jsxs as jsxs91 } from "react/jsx-runtime";
13487
+ import { jsx as jsx155, jsxs as jsxs92 } from "react/jsx-runtime";
13433
13488
  function NotificationModalContent({ isOpen, setIsOpen }) {
13434
13489
  const instanceId = useRef18(Math.random().toString(36).substr(2, 9));
13435
13490
  const {
@@ -13559,9 +13614,9 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
13559
13614
  }
13560
13615
  }, "handleOpenChange");
13561
13616
  const unreadNotifications = newNotifications && unreadCount > 0;
13562
- return /* @__PURE__ */ jsxs91(Popover, { open: isOpen, onOpenChange: handleOpenChange, "data-testid": `sidebar-notification button`, children: [
13563
- /* @__PURE__ */ jsx154(PopoverTrigger, { children: /* @__PURE__ */ jsxs91(SidebarMenuButton, { render: /* @__PURE__ */ jsx154("div", {}), className: "text-muted-foreground h-6", disabled: isLoading, children: [
13564
- /* @__PURE__ */ jsx154(
13617
+ return /* @__PURE__ */ jsxs92(Popover, { open: isOpen, onOpenChange: handleOpenChange, "data-testid": `sidebar-notification button`, children: [
13618
+ /* @__PURE__ */ jsx155(PopoverTrigger, { children: /* @__PURE__ */ jsxs92(SidebarMenuButton, { render: /* @__PURE__ */ jsx155("div", {}), className: "text-muted-foreground h-6", disabled: isLoading, children: [
13619
+ /* @__PURE__ */ jsx155(
13565
13620
  BellIcon,
13566
13621
  {
13567
13622
  className: `h-5 w-5 cursor-pointer ${unreadNotifications ? "text-destructive" : ""} ${isLoading ? "animate-pulse" : ""}`
@@ -13569,67 +13624,67 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
13569
13624
  ),
13570
13625
  t(`entities.notifications`, { count: 2 })
13571
13626
  ] }) }),
13572
- /* @__PURE__ */ jsx154(PopoverContent, { className: "relative left-10 w-80 border-0 p-0 shadow-none", children: /* @__PURE__ */ jsxs91(Card, { children: [
13573
- /* @__PURE__ */ jsxs91(CardHeader, { className: "p-4", children: [
13574
- /* @__PURE__ */ jsx154(CardTitle, { children: t(`entities.notifications`, { count: 2 }) }),
13575
- isLoading && /* @__PURE__ */ jsx154("div", { className: "text-muted-foreground text-xs", children: "Loading..." }),
13576
- error && /* @__PURE__ */ jsxs91("div", { className: "text-destructive text-xs", children: [
13627
+ /* @__PURE__ */ jsx155(PopoverContent, { className: "relative left-10 w-80 border-0 p-0 shadow-none", children: /* @__PURE__ */ jsxs92(Card, { children: [
13628
+ /* @__PURE__ */ jsxs92(CardHeader, { className: "p-4", children: [
13629
+ /* @__PURE__ */ jsx155(CardTitle, { children: t(`entities.notifications`, { count: 2 }) }),
13630
+ isLoading && /* @__PURE__ */ jsx155("div", { className: "text-muted-foreground text-xs", children: "Loading..." }),
13631
+ error && /* @__PURE__ */ jsxs92("div", { className: "text-destructive text-xs", children: [
13577
13632
  "Error: ",
13578
13633
  error
13579
13634
  ] })
13580
13635
  ] }),
13581
- /* @__PURE__ */ jsx154(Separator, {}),
13582
- /* @__PURE__ */ jsx154(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx154(Fragment29, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx154("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
13636
+ /* @__PURE__ */ jsx155(Separator, {}),
13637
+ /* @__PURE__ */ jsx155(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx155(Fragment29, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx155("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
13583
13638
  ] }) })
13584
13639
  ] });
13585
13640
  }
13586
13641
  __name(NotificationModalContent, "NotificationModalContent");
13587
13642
  function NotificationModal(props) {
13588
- return /* @__PURE__ */ jsx154(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx154(NotificationModalContent, { ...props }) });
13643
+ return /* @__PURE__ */ jsx155(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx155(NotificationModalContent, { ...props }) });
13589
13644
  }
13590
13645
  __name(NotificationModal, "NotificationModal");
13591
13646
 
13592
13647
  // src/features/notification/components/notifications/PushNotificationProvider.tsx
13593
- import { Fragment as Fragment30, jsx as jsx155 } from "react/jsx-runtime";
13648
+ import { Fragment as Fragment30, jsx as jsx156 } from "react/jsx-runtime";
13594
13649
  function PushNotificationProvider({ children }) {
13595
13650
  usePushNotifications();
13596
- return /* @__PURE__ */ jsx155(Fragment30, { children });
13651
+ return /* @__PURE__ */ jsx156(Fragment30, { children });
13597
13652
  }
13598
13653
  __name(PushNotificationProvider, "PushNotificationProvider");
13599
13654
 
13600
13655
  // src/features/role/components/details/RoleDetails.tsx
13601
13656
  import { useTranslations as useTranslations61 } from "next-intl";
13602
- import { jsx as jsx156 } from "react/jsx-runtime";
13657
+ import { jsx as jsx157 } from "react/jsx-runtime";
13603
13658
  function RoleDetails() {
13604
13659
  const { role } = useRoleContext();
13605
13660
  const t = useTranslations61();
13606
13661
  if (!role) return null;
13607
- return /* @__PURE__ */ jsx156(Card, { className: "w-full", children: /* @__PURE__ */ jsx156(CardContent, { className: "p-4", children: /* @__PURE__ */ jsx156(AttributeElement, { title: t(`role.fields.description.label`), value: role.description }) }) });
13662
+ return /* @__PURE__ */ jsx157(Card, { className: "w-full", children: /* @__PURE__ */ jsx157(CardContent, { className: "p-4", children: /* @__PURE__ */ jsx157(AttributeElement, { title: t(`role.fields.description.label`), value: role.description }) }) });
13608
13663
  }
13609
13664
  __name(RoleDetails, "RoleDetails");
13610
13665
 
13611
13666
  // src/features/role/components/containers/RoleContainer.tsx
13612
- import { Fragment as Fragment31, jsx as jsx157, jsxs as jsxs92 } from "react/jsx-runtime";
13667
+ import { Fragment as Fragment31, jsx as jsx158, jsxs as jsxs93 } from "react/jsx-runtime";
13613
13668
  function RoleContainer() {
13614
13669
  const { role } = useRoleContext();
13615
13670
  if (!role) return null;
13616
- return /* @__PURE__ */ jsxs92(Fragment31, { children: [
13617
- /* @__PURE__ */ jsx157(RoleDetails, {}),
13618
- /* @__PURE__ */ jsx157(RoleUsersList, { role })
13671
+ return /* @__PURE__ */ jsxs93(Fragment31, { children: [
13672
+ /* @__PURE__ */ jsx158(RoleDetails, {}),
13673
+ /* @__PURE__ */ jsx158(RoleUsersList, { role })
13619
13674
  ] });
13620
13675
  }
13621
13676
  __name(RoleContainer, "RoleContainer");
13622
13677
 
13623
13678
  // src/features/role/components/forms/FormRoles.tsx
13624
13679
  import { useTranslations as useTranslations62 } from "next-intl";
13625
- import { jsx as jsx158, jsxs as jsxs93 } from "react/jsx-runtime";
13680
+ import { jsx as jsx159, jsxs as jsxs94 } from "react/jsx-runtime";
13626
13681
  function FormRoles({ form, id, name, roles }) {
13627
13682
  const t = useTranslations62();
13628
13683
  const { hasAccesToFeature } = useCurrentUserContext();
13629
- return /* @__PURE__ */ jsx158("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx158(FormFieldWrapper, { form, name: id, label: name, children: (field) => /* @__PURE__ */ jsx158("div", { children: roles.filter((role) => role.isSelectable).sort((a, b) => a.name.localeCompare(b.name)).map((role) => {
13684
+ return /* @__PURE__ */ jsx159("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx159(FormFieldWrapper, { form, name: id, label: name, children: (field) => /* @__PURE__ */ jsx159("div", { children: roles.filter((role) => role.isSelectable).sort((a, b) => a.name.localeCompare(b.name)).map((role) => {
13630
13685
  if (role.requiredFeature && !hasAccesToFeature(role.requiredFeature.id)) return null;
13631
- return /* @__PURE__ */ jsxs93("div", { children: [
13632
- /* @__PURE__ */ jsx158(
13686
+ return /* @__PURE__ */ jsxs94("div", { children: [
13687
+ /* @__PURE__ */ jsx159(
13633
13688
  Checkbox,
13634
13689
  {
13635
13690
  defaultChecked: field.value.some((roleId) => roleId === role.id),
@@ -13645,9 +13700,9 @@ function FormRoles({ form, id, name, roles }) {
13645
13700
  }
13646
13701
  }
13647
13702
  ),
13648
- /* @__PURE__ */ jsxs93(Tooltip2, { children: [
13649
- /* @__PURE__ */ jsx158(TooltipTrigger, { children: /* @__PURE__ */ jsx158(FieldLabel, { className: "ml-3 font-normal", children: t(`role.roles`, { role: role.id.replaceAll(`-`, ``) }) }) }),
13650
- /* @__PURE__ */ jsx158(TooltipContent, { children: t(`role.roles_descriptions`, { role: role.id.replaceAll(`-`, ``) }) })
13703
+ /* @__PURE__ */ jsxs94(Tooltip2, { children: [
13704
+ /* @__PURE__ */ jsx159(TooltipTrigger, { children: /* @__PURE__ */ jsx159(FieldLabel, { className: "ml-3 font-normal", children: t(`role.roles`, { role: role.id.replaceAll(`-`, ``) }) }) }),
13705
+ /* @__PURE__ */ jsx159(TooltipContent, { children: t(`role.roles_descriptions`, { role: role.id.replaceAll(`-`, ``) }) })
13651
13706
  ] })
13652
13707
  ] }, role.id);
13653
13708
  }) }) }) });
@@ -13657,7 +13712,7 @@ __name(FormRoles, "FormRoles");
13657
13712
  // src/features/role/components/forms/RemoveUserFromRole.tsx
13658
13713
  import { useTranslations as useTranslations63 } from "next-intl";
13659
13714
  import { useEffect as useEffect46, useState as useState53 } from "react";
13660
- import { Fragment as Fragment32, jsx as jsx159, jsxs as jsxs94 } from "react/jsx-runtime";
13715
+ import { Fragment as Fragment32, jsx as jsx160, jsxs as jsxs95 } from "react/jsx-runtime";
13661
13716
  function RemoveUserFromRole({ role, user, refresh }) {
13662
13717
  const [open, setOpen] = useState53(false);
13663
13718
  const [canRemove, setCanRemove] = useState53(false);
@@ -13689,8 +13744,8 @@ function RemoveUserFromRole({ role, user, refresh }) {
13689
13744
  }
13690
13745
  }, "remove");
13691
13746
  const roleName = t(`role.roles`, { role: role.id.replaceAll(`-`, ``) });
13692
- return /* @__PURE__ */ jsxs94(Dialog, { open, onOpenChange: setOpen, children: [
13693
- /* @__PURE__ */ jsx159(
13747
+ return /* @__PURE__ */ jsxs95(Dialog, { open, onOpenChange: setOpen, children: [
13748
+ /* @__PURE__ */ jsx160(
13694
13749
  DialogTrigger,
13695
13750
  {
13696
13751
  onClick: (e) => {
@@ -13698,19 +13753,19 @@ function RemoveUserFromRole({ role, user, refresh }) {
13698
13753
  e.preventDefault();
13699
13754
  setOpen(true);
13700
13755
  },
13701
- children: /* @__PURE__ */ jsx159("span", { className: "hover:text-destructive cursor-pointer", children: t(`role.remove_user.title`) })
13756
+ children: /* @__PURE__ */ jsx160("span", { className: "hover:text-destructive cursor-pointer", children: t(`role.remove_user.title`) })
13702
13757
  }
13703
13758
  ),
13704
- /* @__PURE__ */ jsxs94(DialogContent, { className: `flex max-h-[70vh] max-w-3xl flex-col overflow-y-auto`, children: [
13705
- /* @__PURE__ */ jsxs94(DialogHeader, { children: [
13706
- /* @__PURE__ */ jsx159(DialogTitle, { children: t(`role.remove_user.title`) }),
13707
- /* @__PURE__ */ jsx159(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
13759
+ /* @__PURE__ */ jsxs95(DialogContent, { className: `flex max-h-[70vh] max-w-3xl flex-col overflow-y-auto`, children: [
13760
+ /* @__PURE__ */ jsxs95(DialogHeader, { children: [
13761
+ /* @__PURE__ */ jsx160(DialogTitle, { children: t(`role.remove_user.title`) }),
13762
+ /* @__PURE__ */ jsx160(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
13708
13763
  ] }),
13709
- canRemove ? /* @__PURE__ */ jsxs94(Fragment32, { children: [
13764
+ canRemove ? /* @__PURE__ */ jsxs95(Fragment32, { children: [
13710
13765
  t(`role.remove_user.description_allowed`, { role: roleName, user: user.name }),
13711
- /* @__PURE__ */ jsxs94("div", { className: "flex justify-end", children: [
13712
- /* @__PURE__ */ jsx159(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
13713
- /* @__PURE__ */ jsx159(
13766
+ /* @__PURE__ */ jsxs95("div", { className: "flex justify-end", children: [
13767
+ /* @__PURE__ */ jsx160(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
13768
+ /* @__PURE__ */ jsx160(
13714
13769
  Button,
13715
13770
  {
13716
13771
  type: "submit",
@@ -13723,7 +13778,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
13723
13778
  }
13724
13779
  )
13725
13780
  ] })
13726
- ] }) : /* @__PURE__ */ jsx159(Fragment32, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
13781
+ ] }) : /* @__PURE__ */ jsx160(Fragment32, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
13727
13782
  ] })
13728
13783
  ] });
13729
13784
  }
@@ -13733,7 +13788,7 @@ __name(RemoveUserFromRole, "RemoveUserFromRole");
13733
13788
  import { PlusCircle as PlusCircle2 } from "lucide-react";
13734
13789
  import { useTranslations as useTranslations64 } from "next-intl";
13735
13790
  import { useCallback as useCallback22, useEffect as useEffect47, useRef as useRef19, useState as useState54 } from "react";
13736
- import { Fragment as Fragment33, jsx as jsx160, jsxs as jsxs95 } from "react/jsx-runtime";
13791
+ import { Fragment as Fragment33, jsx as jsx161, jsxs as jsxs96 } from "react/jsx-runtime";
13737
13792
  function UserRoleAdd({ user, refresh }) {
13738
13793
  const [open, setOpen] = useState54(false);
13739
13794
  const inputRef = useRef19(null);
@@ -13780,26 +13835,26 @@ function UserRoleAdd({ user, refresh }) {
13780
13835
  useEffect47(() => {
13781
13836
  if (open) searchRoles("");
13782
13837
  }, [open]);
13783
- return /* @__PURE__ */ jsxs95(Fragment33, { children: [
13784
- /* @__PURE__ */ jsxs95(Button, { size: "sm", onClick: () => setOpen(true), children: [
13785
- /* @__PURE__ */ jsx160(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
13838
+ return /* @__PURE__ */ jsxs96(Fragment33, { children: [
13839
+ /* @__PURE__ */ jsxs96(Button, { size: "sm", onClick: () => setOpen(true), children: [
13840
+ /* @__PURE__ */ jsx161(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
13786
13841
  t(`common.association.label`, {
13787
13842
  source: t(`entities.roles`, { count: 1 }),
13788
13843
  destination: t(`entities.users`, { count: 1 })
13789
13844
  })
13790
13845
  ] }),
13791
- /* @__PURE__ */ jsxs95(CommandDialog, { open, onOpenChange: setOpen, children: [
13792
- /* @__PURE__ */ jsx160(DialogTitle, { children: t(`common.association.label`, {
13846
+ /* @__PURE__ */ jsxs96(CommandDialog, { open, onOpenChange: setOpen, children: [
13847
+ /* @__PURE__ */ jsx161(DialogTitle, { children: t(`common.association.label`, {
13793
13848
  source: t(`entities.roles`, { count: 1 }),
13794
13849
  destination: t(`entities.users`, { count: 1 })
13795
13850
  }) }),
13796
- /* @__PURE__ */ jsx160(DialogDescription, { children: t(`common.association.description`, {
13851
+ /* @__PURE__ */ jsx161(DialogDescription, { children: t(`common.association.description`, {
13797
13852
  source: t(`entities.roles`, { count: 1 }),
13798
13853
  destination: t(`entities.users`, { count: 1 }),
13799
13854
  destination_name: user.name
13800
13855
  }) }),
13801
- /* @__PURE__ */ jsxs95(Command, { shouldFilter: false, children: [
13802
- /* @__PURE__ */ jsx160(
13856
+ /* @__PURE__ */ jsxs96(Command, { shouldFilter: false, children: [
13857
+ /* @__PURE__ */ jsx161(
13803
13858
  CommandInput,
13804
13859
  {
13805
13860
  placeholder: t(`ui.search.placeholder`, { type: t(`entities.roles`, { count: 1 }) }),
@@ -13808,9 +13863,9 @@ function UserRoleAdd({ user, refresh }) {
13808
13863
  ref: inputRef
13809
13864
  }
13810
13865
  ),
13811
- /* @__PURE__ */ jsxs95(CommandList, { className: "mt-3 h-auto max-h-96 min-h-96 max-w-full overflow-x-hidden overflow-y-auto", children: [
13812
- /* @__PURE__ */ jsx160(CommandEmpty, { children: t(`ui.search.no_results`, { type: t(`entities.roles`, { count: 1 }) }) }),
13813
- roles.map((role) => /* @__PURE__ */ jsx160(
13866
+ /* @__PURE__ */ jsxs96(CommandList, { className: "mt-3 h-auto max-h-96 min-h-96 max-w-full overflow-x-hidden overflow-y-auto", children: [
13867
+ /* @__PURE__ */ jsx161(CommandEmpty, { children: t(`ui.search.no_results`, { type: t(`entities.roles`, { count: 1 }) }) }),
13868
+ roles.map((role) => /* @__PURE__ */ jsx161(
13814
13869
  CommandItem,
13815
13870
  {
13816
13871
  className: "cursor-pointer hover:bg-muted data-selected:hover:bg-muted bg-transparent data-selected:bg-transparent",
@@ -13829,7 +13884,7 @@ __name(UserRoleAdd, "UserRoleAdd");
13829
13884
 
13830
13885
  // src/features/role/components/lists/RolesList.tsx
13831
13886
  import { useTranslations as useTranslations65 } from "next-intl";
13832
- import { jsx as jsx161 } from "react/jsx-runtime";
13887
+ import { jsx as jsx162 } from "react/jsx-runtime";
13833
13888
  function RolesList() {
13834
13889
  const t = useTranslations65();
13835
13890
  const data = useDataListRetriever({
@@ -13837,7 +13892,7 @@ function RolesList() {
13837
13892
  retrieverParams: {},
13838
13893
  module: Modules.Role
13839
13894
  });
13840
- return /* @__PURE__ */ jsx161(
13895
+ return /* @__PURE__ */ jsx162(
13841
13896
  ContentListTable,
13842
13897
  {
13843
13898
  data,
@@ -13851,7 +13906,7 @@ __name(RolesList, "RolesList");
13851
13906
 
13852
13907
  // src/features/role/components/lists/UserRolesList.tsx
13853
13908
  import { useTranslations as useTranslations66 } from "next-intl";
13854
- import { jsx as jsx162 } from "react/jsx-runtime";
13909
+ import { jsx as jsx163 } from "react/jsx-runtime";
13855
13910
  function UserRolesList({ user }) {
13856
13911
  const t = useTranslations66();
13857
13912
  const data = useDataListRetriever({
@@ -13859,7 +13914,7 @@ function UserRolesList({ user }) {
13859
13914
  retrieverParams: { userId: user.id },
13860
13915
  module: Modules.Role
13861
13916
  });
13862
- return /* @__PURE__ */ jsx162(
13917
+ return /* @__PURE__ */ jsx163(
13863
13918
  ContentListTable,
13864
13919
  {
13865
13920
  data,
@@ -13874,7 +13929,7 @@ __name(UserRolesList, "UserRolesList");
13874
13929
  // src/features/oauth/components/OAuthRedirectUriInput.tsx
13875
13930
  import { useCallback as useCallback23 } from "react";
13876
13931
  import { Plus, Trash2 } from "lucide-react";
13877
- import { jsx as jsx163, jsxs as jsxs96 } from "react/jsx-runtime";
13932
+ import { jsx as jsx164, jsxs as jsxs97 } from "react/jsx-runtime";
13878
13933
  function isValidRedirectUri(uri) {
13879
13934
  if (!uri.trim()) return false;
13880
13935
  if (uri.startsWith("http://localhost") || uri.startsWith("http://127.0.0.1")) {
@@ -13920,17 +13975,17 @@ function OAuthRedirectUriInput({
13920
13975
  },
13921
13976
  [value, onChange]
13922
13977
  );
13923
- return /* @__PURE__ */ jsxs96("div", { className: "space-y-2", children: [
13924
- /* @__PURE__ */ jsxs96(Label, { children: [
13978
+ return /* @__PURE__ */ jsxs97("div", { className: "space-y-2", children: [
13979
+ /* @__PURE__ */ jsxs97(Label, { children: [
13925
13980
  label,
13926
13981
  " *"
13927
13982
  ] }),
13928
- /* @__PURE__ */ jsx163("p", { className: "text-sm text-muted-foreground", children: "Enter the URIs where users will be redirected after authorization. Use https:// for production, or custom schemes for mobile apps." }),
13929
- /* @__PURE__ */ jsx163("div", { className: "space-y-2", children: value.map((uri, index) => {
13983
+ /* @__PURE__ */ jsx164("p", { className: "text-sm text-muted-foreground", children: "Enter the URIs where users will be redirected after authorization. Use https:// for production, or custom schemes for mobile apps." }),
13984
+ /* @__PURE__ */ jsx164("div", { className: "space-y-2", children: value.map((uri, index) => {
13930
13985
  const isValid3 = !uri || isValidRedirectUri(uri);
13931
- return /* @__PURE__ */ jsxs96("div", { className: "flex gap-2", children: [
13932
- /* @__PURE__ */ jsxs96("div", { className: "flex-1", children: [
13933
- /* @__PURE__ */ jsx163(
13986
+ return /* @__PURE__ */ jsxs97("div", { className: "flex gap-2", children: [
13987
+ /* @__PURE__ */ jsxs97("div", { className: "flex-1", children: [
13988
+ /* @__PURE__ */ jsx164(
13934
13989
  Input,
13935
13990
  {
13936
13991
  value: uri,
@@ -13940,9 +13995,9 @@ function OAuthRedirectUriInput({
13940
13995
  className: !isValid3 ? "border-destructive" : ""
13941
13996
  }
13942
13997
  ),
13943
- !isValid3 && /* @__PURE__ */ jsx163("p", { className: "text-xs text-destructive mt-1", children: "Must be https://, http://localhost, or a custom scheme (app://)" })
13998
+ !isValid3 && /* @__PURE__ */ jsx164("p", { className: "text-xs text-destructive mt-1", children: "Must be https://, http://localhost, or a custom scheme (app://)" })
13944
13999
  ] }),
13945
- /* @__PURE__ */ jsx163(
14000
+ /* @__PURE__ */ jsx164(
13946
14001
  Button,
13947
14002
  {
13948
14003
  type: "button",
@@ -13951,12 +14006,12 @@ function OAuthRedirectUriInput({
13951
14006
  onClick: () => handleRemove(index),
13952
14007
  disabled: disabled || value.length === 1,
13953
14008
  title: "Remove URI",
13954
- children: /* @__PURE__ */ jsx163(Trash2, { className: "h-4 w-4" })
14009
+ children: /* @__PURE__ */ jsx164(Trash2, { className: "h-4 w-4" })
13955
14010
  }
13956
14011
  )
13957
14012
  ] }, index);
13958
14013
  }) }),
13959
- /* @__PURE__ */ jsxs96(
14014
+ /* @__PURE__ */ jsxs97(
13960
14015
  Button,
13961
14016
  {
13962
14017
  type: "button",
@@ -13966,19 +14021,19 @@ function OAuthRedirectUriInput({
13966
14021
  disabled,
13967
14022
  className: "mt-2",
13968
14023
  children: [
13969
- /* @__PURE__ */ jsx163(Plus, { className: "h-4 w-4 mr-2" }),
14024
+ /* @__PURE__ */ jsx164(Plus, { className: "h-4 w-4 mr-2" }),
13970
14025
  "Add Redirect URI"
13971
14026
  ]
13972
14027
  }
13973
14028
  ),
13974
- error && /* @__PURE__ */ jsx163("p", { className: "text-sm text-destructive", children: error })
14029
+ error && /* @__PURE__ */ jsx164("p", { className: "text-sm text-destructive", children: error })
13975
14030
  ] });
13976
14031
  }
13977
14032
  __name(OAuthRedirectUriInput, "OAuthRedirectUriInput");
13978
14033
 
13979
14034
  // src/features/oauth/components/OAuthScopeSelector.tsx
13980
14035
  import { useCallback as useCallback24 } from "react";
13981
- import { jsx as jsx164, jsxs as jsxs97 } from "react/jsx-runtime";
14036
+ import { jsx as jsx165, jsxs as jsxs98 } from "react/jsx-runtime";
13982
14037
  function OAuthScopeSelector({
13983
14038
  value,
13984
14039
  onChange,
@@ -14006,25 +14061,25 @@ function OAuthScopeSelector({
14006
14061
  acc[groupName].push(scope);
14007
14062
  return acc;
14008
14063
  }, {});
14009
- return /* @__PURE__ */ jsxs97("div", { className: "space-y-4", children: [
14010
- /* @__PURE__ */ jsxs97("div", { children: [
14011
- /* @__PURE__ */ jsxs97(Label, { children: [
14064
+ return /* @__PURE__ */ jsxs98("div", { className: "space-y-4", children: [
14065
+ /* @__PURE__ */ jsxs98("div", { children: [
14066
+ /* @__PURE__ */ jsxs98(Label, { children: [
14012
14067
  label,
14013
14068
  " *"
14014
14069
  ] }),
14015
- /* @__PURE__ */ jsx164("p", { className: "text-sm text-muted-foreground", children: "Select the permissions your application needs." })
14070
+ /* @__PURE__ */ jsx165("p", { className: "text-sm text-muted-foreground", children: "Select the permissions your application needs." })
14016
14071
  ] }),
14017
- /* @__PURE__ */ jsx164("div", { className: "space-y-4", children: Object.entries(groupedScopes).map(([groupName, scopes]) => /* @__PURE__ */ jsxs97("div", { className: "space-y-2", children: [
14018
- /* @__PURE__ */ jsx164("h4", { className: "text-sm font-medium capitalize", children: groupName }),
14019
- /* @__PURE__ */ jsx164("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-2 pl-2", children: scopes.map((scopeInfo) => {
14072
+ /* @__PURE__ */ jsx165("div", { className: "space-y-4", children: Object.entries(groupedScopes).map(([groupName, scopes]) => /* @__PURE__ */ jsxs98("div", { className: "space-y-2", children: [
14073
+ /* @__PURE__ */ jsx165("h4", { className: "text-sm font-medium capitalize", children: groupName }),
14074
+ /* @__PURE__ */ jsx165("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-2 pl-2", children: scopes.map((scopeInfo) => {
14020
14075
  const isChecked = value.includes(scopeInfo.scope);
14021
14076
  const isAdmin = scopeInfo.scope === "admin";
14022
- return /* @__PURE__ */ jsxs97(
14077
+ return /* @__PURE__ */ jsxs98(
14023
14078
  "div",
14024
14079
  {
14025
14080
  className: `flex items-start space-x-3 p-2 rounded-md border ${isChecked ? "bg-primary/5 border-primary/20" : "border-transparent"} ${isAdmin ? "bg-destructive/5" : ""}`,
14026
14081
  children: [
14027
- /* @__PURE__ */ jsx164(
14082
+ /* @__PURE__ */ jsx165(
14028
14083
  Checkbox,
14029
14084
  {
14030
14085
  id: `scope-${scopeInfo.scope}`,
@@ -14033,19 +14088,19 @@ function OAuthScopeSelector({
14033
14088
  disabled
14034
14089
  }
14035
14090
  ),
14036
- /* @__PURE__ */ jsxs97("div", { className: "flex-1", children: [
14037
- /* @__PURE__ */ jsxs97(
14091
+ /* @__PURE__ */ jsxs98("div", { className: "flex-1", children: [
14092
+ /* @__PURE__ */ jsxs98(
14038
14093
  Label,
14039
14094
  {
14040
14095
  htmlFor: `scope-${scopeInfo.scope}`,
14041
14096
  className: "text-sm font-medium cursor-pointer",
14042
14097
  children: [
14043
14098
  scopeInfo.name,
14044
- isAdmin && /* @__PURE__ */ jsx164("span", { className: "ml-2 text-xs text-destructive", children: "(Dangerous)" })
14099
+ isAdmin && /* @__PURE__ */ jsx165("span", { className: "ml-2 text-xs text-destructive", children: "(Dangerous)" })
14045
14100
  ]
14046
14101
  }
14047
14102
  ),
14048
- /* @__PURE__ */ jsx164("p", { className: "text-xs text-muted-foreground", children: scopeInfo.description })
14103
+ /* @__PURE__ */ jsx165("p", { className: "text-xs text-muted-foreground", children: scopeInfo.description })
14049
14104
  ] })
14050
14105
  ]
14051
14106
  },
@@ -14053,7 +14108,7 @@ function OAuthScopeSelector({
14053
14108
  );
14054
14109
  }) })
14055
14110
  ] }, groupName)) }),
14056
- error && /* @__PURE__ */ jsx164("p", { className: "text-sm text-destructive", children: error })
14111
+ error && /* @__PURE__ */ jsx165("p", { className: "text-sm text-destructive", children: error })
14057
14112
  ] });
14058
14113
  }
14059
14114
  __name(OAuthScopeSelector, "OAuthScopeSelector");
@@ -14061,7 +14116,7 @@ __name(OAuthScopeSelector, "OAuthScopeSelector");
14061
14116
  // src/features/oauth/components/OAuthClientSecretDisplay.tsx
14062
14117
  import { useState as useState55, useCallback as useCallback25 } from "react";
14063
14118
  import { Copy, Check, AlertTriangle } from "lucide-react";
14064
- import { jsx as jsx165, jsxs as jsxs98 } from "react/jsx-runtime";
14119
+ import { jsx as jsx166, jsxs as jsxs99 } from "react/jsx-runtime";
14065
14120
  function OAuthClientSecretDisplay({
14066
14121
  secret,
14067
14122
  onDismiss,
@@ -14082,24 +14137,24 @@ function OAuthClientSecretDisplay({
14082
14137
  setCopied(false);
14083
14138
  onDismiss();
14084
14139
  }, [onDismiss]);
14085
- return /* @__PURE__ */ jsx165(Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleDismiss(), children: /* @__PURE__ */ jsxs98(DialogContent, { className: "sm:max-w-md", children: [
14086
- /* @__PURE__ */ jsxs98(DialogHeader, { children: [
14087
- /* @__PURE__ */ jsxs98(DialogTitle, { className: "flex items-center gap-2", children: [
14088
- /* @__PURE__ */ jsx165(AlertTriangle, { className: "h-5 w-5 text-warning" }),
14140
+ return /* @__PURE__ */ jsx166(Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleDismiss(), children: /* @__PURE__ */ jsxs99(DialogContent, { className: "sm:max-w-md", children: [
14141
+ /* @__PURE__ */ jsxs99(DialogHeader, { children: [
14142
+ /* @__PURE__ */ jsxs99(DialogTitle, { className: "flex items-center gap-2", children: [
14143
+ /* @__PURE__ */ jsx166(AlertTriangle, { className: "h-5 w-5 text-warning" }),
14089
14144
  "Save Your Client Secret"
14090
14145
  ] }),
14091
- /* @__PURE__ */ jsx165(DialogDescription, { children: clientName ? `Your client secret for "${clientName}" is shown below.` : "Your client secret is shown below." })
14146
+ /* @__PURE__ */ jsx166(DialogDescription, { children: clientName ? `Your client secret for "${clientName}" is shown below.` : "Your client secret is shown below." })
14092
14147
  ] }),
14093
- /* @__PURE__ */ jsxs98(Alert, { variant: "destructive", className: "my-4", children: [
14094
- /* @__PURE__ */ jsx165(AlertTriangle, { className: "h-4 w-4" }),
14095
- /* @__PURE__ */ jsxs98(AlertDescription, { children: [
14096
- /* @__PURE__ */ jsx165("strong", { children: "This is the only time your client secret will be displayed." }),
14097
- /* @__PURE__ */ jsx165("br", {}),
14148
+ /* @__PURE__ */ jsxs99(Alert, { variant: "destructive", className: "my-4", children: [
14149
+ /* @__PURE__ */ jsx166(AlertTriangle, { className: "h-4 w-4" }),
14150
+ /* @__PURE__ */ jsxs99(AlertDescription, { children: [
14151
+ /* @__PURE__ */ jsx166("strong", { children: "This is the only time your client secret will be displayed." }),
14152
+ /* @__PURE__ */ jsx166("br", {}),
14098
14153
  "Copy it now and store it securely. You will not be able to retrieve it later."
14099
14154
  ] })
14100
14155
  ] }),
14101
- /* @__PURE__ */ jsxs98("div", { className: "flex items-center space-x-2", children: [
14102
- /* @__PURE__ */ jsx165("div", { className: "flex-1", children: /* @__PURE__ */ jsx165(
14156
+ /* @__PURE__ */ jsxs99("div", { className: "flex items-center space-x-2", children: [
14157
+ /* @__PURE__ */ jsx166("div", { className: "flex-1", children: /* @__PURE__ */ jsx166(
14103
14158
  Input,
14104
14159
  {
14105
14160
  value: secret,
@@ -14108,7 +14163,7 @@ function OAuthClientSecretDisplay({
14108
14163
  onClick: (e) => e.currentTarget.select()
14109
14164
  }
14110
14165
  ) }),
14111
- /* @__PURE__ */ jsx165(
14166
+ /* @__PURE__ */ jsx166(
14112
14167
  Button,
14113
14168
  {
14114
14169
  type: "button",
@@ -14116,12 +14171,12 @@ function OAuthClientSecretDisplay({
14116
14171
  size: "icon",
14117
14172
  onClick: handleCopy,
14118
14173
  title: copied ? "Copied!" : "Copy to clipboard",
14119
- children: copied ? /* @__PURE__ */ jsx165(Check, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx165(Copy, { className: "h-4 w-4" })
14174
+ children: copied ? /* @__PURE__ */ jsx166(Check, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx166(Copy, { className: "h-4 w-4" })
14120
14175
  }
14121
14176
  )
14122
14177
  ] }),
14123
- copied && /* @__PURE__ */ jsx165("p", { className: "text-sm text-green-600 text-center", children: "Copied to clipboard!" }),
14124
- /* @__PURE__ */ jsx165(DialogFooter, { className: "mt-4", children: /* @__PURE__ */ jsx165(Button, { onClick: handleDismiss, className: "w-full", children: "I've Saved My Secret" }) })
14178
+ copied && /* @__PURE__ */ jsx166("p", { className: "text-sm text-green-600 text-center", children: "Copied to clipboard!" }),
14179
+ /* @__PURE__ */ jsx166(DialogFooter, { className: "mt-4", children: /* @__PURE__ */ jsx166(Button, { onClick: handleDismiss, className: "w-full", children: "I've Saved My Secret" }) })
14125
14180
  ] }) });
14126
14181
  }
14127
14182
  __name(OAuthClientSecretDisplay, "OAuthClientSecretDisplay");
@@ -14129,7 +14184,7 @@ __name(OAuthClientSecretDisplay, "OAuthClientSecretDisplay");
14129
14184
  // src/features/oauth/components/OAuthClientCard.tsx
14130
14185
  import { formatDistanceToNow } from "date-fns";
14131
14186
  import { Key, MoreVertical, Pencil, Trash2 as Trash22 } from "lucide-react";
14132
- import { jsx as jsx166, jsxs as jsxs99 } from "react/jsx-runtime";
14187
+ import { jsx as jsx167, jsxs as jsxs100 } from "react/jsx-runtime";
14133
14188
  function OAuthClientCard({
14134
14189
  client,
14135
14190
  onClick,
@@ -14138,31 +14193,31 @@ function OAuthClientCard({
14138
14193
  }) {
14139
14194
  const truncatedId = client.clientId.length > 12 ? `${client.clientId.slice(0, 8)}...${client.clientId.slice(-4)}` : client.clientId;
14140
14195
  const createdAgo = client.createdAt ? formatDistanceToNow(new Date(client.createdAt), { addSuffix: true }) : "Unknown";
14141
- return /* @__PURE__ */ jsxs99(
14196
+ return /* @__PURE__ */ jsxs100(
14142
14197
  Card,
14143
14198
  {
14144
14199
  className: `cursor-pointer transition-colors hover:bg-accent/50 ${!client.isActive ? "opacity-60" : ""}`,
14145
14200
  onClick,
14146
14201
  children: [
14147
- /* @__PURE__ */ jsxs99(CardHeader, { className: "pb-2", children: [
14148
- /* @__PURE__ */ jsxs99("div", { className: "flex items-start justify-between", children: [
14149
- /* @__PURE__ */ jsxs99("div", { className: "flex items-center gap-2", children: [
14150
- /* @__PURE__ */ jsx166(Key, { className: "h-5 w-5 text-muted-foreground" }),
14151
- /* @__PURE__ */ jsx166(CardTitle, { className: "text-lg", children: client.name })
14202
+ /* @__PURE__ */ jsxs100(CardHeader, { className: "pb-2", children: [
14203
+ /* @__PURE__ */ jsxs100("div", { className: "flex items-start justify-between", children: [
14204
+ /* @__PURE__ */ jsxs100("div", { className: "flex items-center gap-2", children: [
14205
+ /* @__PURE__ */ jsx167(Key, { className: "h-5 w-5 text-muted-foreground" }),
14206
+ /* @__PURE__ */ jsx167(CardTitle, { className: "text-lg", children: client.name })
14152
14207
  ] }),
14153
- /* @__PURE__ */ jsxs99("div", { className: "flex items-center gap-2", children: [
14154
- /* @__PURE__ */ jsx166(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
14155
- (onEdit || onDelete) && /* @__PURE__ */ jsxs99(DropdownMenu, { children: [
14156
- /* @__PURE__ */ jsx166(DropdownMenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx166(Button, { render: /* @__PURE__ */ jsx166("div", {}), nativeButton: false, variant: "ghost", size: "icon", className: "h-8 w-8", children: /* @__PURE__ */ jsx166(MoreVertical, { className: "h-4 w-4" }) }) }),
14157
- /* @__PURE__ */ jsxs99(DropdownMenuContent, { align: "end", children: [
14158
- onEdit && /* @__PURE__ */ jsxs99(DropdownMenuItem, { onClick: (e) => {
14208
+ /* @__PURE__ */ jsxs100("div", { className: "flex items-center gap-2", children: [
14209
+ /* @__PURE__ */ jsx167(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
14210
+ (onEdit || onDelete) && /* @__PURE__ */ jsxs100(DropdownMenu, { children: [
14211
+ /* @__PURE__ */ jsx167(DropdownMenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx167(Button, { render: /* @__PURE__ */ jsx167("div", {}), nativeButton: false, variant: "ghost", size: "icon", className: "h-8 w-8", children: /* @__PURE__ */ jsx167(MoreVertical, { className: "h-4 w-4" }) }) }),
14212
+ /* @__PURE__ */ jsxs100(DropdownMenuContent, { align: "end", children: [
14213
+ onEdit && /* @__PURE__ */ jsxs100(DropdownMenuItem, { onClick: (e) => {
14159
14214
  e.stopPropagation();
14160
14215
  onEdit();
14161
14216
  }, children: [
14162
- /* @__PURE__ */ jsx166(Pencil, { className: "h-4 w-4 mr-2" }),
14217
+ /* @__PURE__ */ jsx167(Pencil, { className: "h-4 w-4 mr-2" }),
14163
14218
  "Edit"
14164
14219
  ] }),
14165
- onDelete && /* @__PURE__ */ jsxs99(
14220
+ onDelete && /* @__PURE__ */ jsxs100(
14166
14221
  DropdownMenuItem,
14167
14222
  {
14168
14223
  onClick: (e) => {
@@ -14171,7 +14226,7 @@ function OAuthClientCard({
14171
14226
  },
14172
14227
  className: "text-destructive",
14173
14228
  children: [
14174
- /* @__PURE__ */ jsx166(Trash22, { className: "h-4 w-4 mr-2" }),
14229
+ /* @__PURE__ */ jsx167(Trash22, { className: "h-4 w-4 mr-2" }),
14175
14230
  "Delete"
14176
14231
  ]
14177
14232
  }
@@ -14180,15 +14235,15 @@ function OAuthClientCard({
14180
14235
  ] })
14181
14236
  ] })
14182
14237
  ] }),
14183
- client.description && /* @__PURE__ */ jsx166(CardDescription, { className: "line-clamp-2", children: client.description })
14238
+ client.description && /* @__PURE__ */ jsx167(CardDescription, { className: "line-clamp-2", children: client.description })
14184
14239
  ] }),
14185
- /* @__PURE__ */ jsx166(CardContent, { children: /* @__PURE__ */ jsxs99("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground", children: [
14186
- /* @__PURE__ */ jsx166("span", { className: "font-mono", children: truncatedId }),
14187
- /* @__PURE__ */ jsxs99("span", { children: [
14240
+ /* @__PURE__ */ jsx167(CardContent, { children: /* @__PURE__ */ jsxs100("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground", children: [
14241
+ /* @__PURE__ */ jsx167("span", { className: "font-mono", children: truncatedId }),
14242
+ /* @__PURE__ */ jsxs100("span", { children: [
14188
14243
  "Created ",
14189
14244
  createdAgo
14190
14245
  ] }),
14191
- /* @__PURE__ */ jsx166("span", { children: client.isConfidential ? "Confidential" : "Public" })
14246
+ /* @__PURE__ */ jsx167("span", { children: client.isConfidential ? "Confidential" : "Public" })
14192
14247
  ] }) })
14193
14248
  ]
14194
14249
  }
@@ -14198,7 +14253,7 @@ __name(OAuthClientCard, "OAuthClientCard");
14198
14253
 
14199
14254
  // src/features/oauth/components/OAuthClientList.tsx
14200
14255
  import { Plus as Plus2, Key as Key2 } from "lucide-react";
14201
- import { jsx as jsx167, jsxs as jsxs100 } from "react/jsx-runtime";
14256
+ import { jsx as jsx168, jsxs as jsxs101 } from "react/jsx-runtime";
14202
14257
  function OAuthClientList({
14203
14258
  clients,
14204
14259
  isLoading = false,
@@ -14211,49 +14266,49 @@ function OAuthClientList({
14211
14266
  title = "OAuth Applications"
14212
14267
  }) {
14213
14268
  if (isLoading && clients.length === 0) {
14214
- return /* @__PURE__ */ jsxs100("div", { className: "space-y-4", children: [
14215
- /* @__PURE__ */ jsxs100("div", { className: "flex items-center justify-between", children: [
14216
- /* @__PURE__ */ jsx167("h2", { className: "text-2xl font-bold", children: title }),
14217
- /* @__PURE__ */ jsx167(Skeleton, { className: "h-10 w-32" })
14269
+ return /* @__PURE__ */ jsxs101("div", { className: "space-y-4", children: [
14270
+ /* @__PURE__ */ jsxs101("div", { className: "flex items-center justify-between", children: [
14271
+ /* @__PURE__ */ jsx168("h2", { className: "text-2xl font-bold", children: title }),
14272
+ /* @__PURE__ */ jsx168(Skeleton, { className: "h-10 w-32" })
14218
14273
  ] }),
14219
- /* @__PURE__ */ jsx167("div", { className: "space-y-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsx167(Skeleton, { className: "h-32 w-full" }, i)) })
14274
+ /* @__PURE__ */ jsx168("div", { className: "space-y-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsx168(Skeleton, { className: "h-32 w-full" }, i)) })
14220
14275
  ] });
14221
14276
  }
14222
14277
  if (error) {
14223
- return /* @__PURE__ */ jsxs100("div", { className: "space-y-4", children: [
14224
- /* @__PURE__ */ jsx167("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx167("h2", { className: "text-2xl font-bold", children: title }) }),
14225
- /* @__PURE__ */ jsx167("div", { className: "rounded-lg border border-destructive/50 bg-destructive/10 p-6 text-center", children: /* @__PURE__ */ jsx167("p", { className: "text-destructive", children: error.message }) })
14278
+ return /* @__PURE__ */ jsxs101("div", { className: "space-y-4", children: [
14279
+ /* @__PURE__ */ jsx168("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx168("h2", { className: "text-2xl font-bold", children: title }) }),
14280
+ /* @__PURE__ */ jsx168("div", { className: "rounded-lg border border-destructive/50 bg-destructive/10 p-6 text-center", children: /* @__PURE__ */ jsx168("p", { className: "text-destructive", children: error.message }) })
14226
14281
  ] });
14227
14282
  }
14228
14283
  if (clients.length === 0) {
14229
- return /* @__PURE__ */ jsxs100("div", { className: "space-y-4", children: [
14230
- /* @__PURE__ */ jsxs100("div", { className: "flex items-center justify-between", children: [
14231
- /* @__PURE__ */ jsx167("h2", { className: "text-2xl font-bold", children: title }),
14232
- onCreateClick && /* @__PURE__ */ jsxs100(Button, { onClick: onCreateClick, children: [
14233
- /* @__PURE__ */ jsx167(Plus2, { className: "h-4 w-4 mr-2" }),
14284
+ return /* @__PURE__ */ jsxs101("div", { className: "space-y-4", children: [
14285
+ /* @__PURE__ */ jsxs101("div", { className: "flex items-center justify-between", children: [
14286
+ /* @__PURE__ */ jsx168("h2", { className: "text-2xl font-bold", children: title }),
14287
+ onCreateClick && /* @__PURE__ */ jsxs101(Button, { onClick: onCreateClick, children: [
14288
+ /* @__PURE__ */ jsx168(Plus2, { className: "h-4 w-4 mr-2" }),
14234
14289
  "New App"
14235
14290
  ] })
14236
14291
  ] }),
14237
- /* @__PURE__ */ jsxs100("div", { className: "rounded-lg border border-dashed p-12 text-center", children: [
14238
- /* @__PURE__ */ jsx167(Key2, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
14239
- /* @__PURE__ */ jsx167("h3", { className: "text-lg font-medium mb-2", children: "No OAuth Applications" }),
14240
- /* @__PURE__ */ jsx167("p", { className: "text-muted-foreground mb-4", children: emptyStateMessage }),
14241
- onCreateClick && /* @__PURE__ */ jsxs100(Button, { onClick: onCreateClick, children: [
14242
- /* @__PURE__ */ jsx167(Plus2, { className: "h-4 w-4 mr-2" }),
14292
+ /* @__PURE__ */ jsxs101("div", { className: "rounded-lg border border-dashed p-12 text-center", children: [
14293
+ /* @__PURE__ */ jsx168(Key2, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
14294
+ /* @__PURE__ */ jsx168("h3", { className: "text-lg font-medium mb-2", children: "No OAuth Applications" }),
14295
+ /* @__PURE__ */ jsx168("p", { className: "text-muted-foreground mb-4", children: emptyStateMessage }),
14296
+ onCreateClick && /* @__PURE__ */ jsxs101(Button, { onClick: onCreateClick, children: [
14297
+ /* @__PURE__ */ jsx168(Plus2, { className: "h-4 w-4 mr-2" }),
14243
14298
  "Create Application"
14244
14299
  ] })
14245
14300
  ] })
14246
14301
  ] });
14247
14302
  }
14248
- return /* @__PURE__ */ jsxs100("div", { className: "space-y-4", children: [
14249
- /* @__PURE__ */ jsxs100("div", { className: "flex items-center justify-between", children: [
14250
- /* @__PURE__ */ jsx167("h2", { className: "text-2xl font-bold", children: title }),
14251
- onCreateClick && /* @__PURE__ */ jsxs100(Button, { onClick: onCreateClick, children: [
14252
- /* @__PURE__ */ jsx167(Plus2, { className: "h-4 w-4 mr-2" }),
14303
+ return /* @__PURE__ */ jsxs101("div", { className: "space-y-4", children: [
14304
+ /* @__PURE__ */ jsxs101("div", { className: "flex items-center justify-between", children: [
14305
+ /* @__PURE__ */ jsx168("h2", { className: "text-2xl font-bold", children: title }),
14306
+ onCreateClick && /* @__PURE__ */ jsxs101(Button, { onClick: onCreateClick, children: [
14307
+ /* @__PURE__ */ jsx168(Plus2, { className: "h-4 w-4 mr-2" }),
14253
14308
  "New App"
14254
14309
  ] })
14255
14310
  ] }),
14256
- /* @__PURE__ */ jsx167("div", { className: "space-y-3", children: clients.map((client) => /* @__PURE__ */ jsx167(
14311
+ /* @__PURE__ */ jsx168("div", { className: "space-y-3", children: clients.map((client) => /* @__PURE__ */ jsx168(
14257
14312
  OAuthClientCard,
14258
14313
  {
14259
14314
  client,
@@ -14269,7 +14324,7 @@ __name(OAuthClientList, "OAuthClientList");
14269
14324
 
14270
14325
  // src/features/oauth/components/OAuthClientForm.tsx
14271
14326
  import { useState as useState56, useCallback as useCallback26 } from "react";
14272
- import { jsx as jsx168, jsxs as jsxs101 } from "react/jsx-runtime";
14327
+ import { jsx as jsx169, jsxs as jsxs102 } from "react/jsx-runtime";
14273
14328
  function OAuthClientForm({
14274
14329
  client,
14275
14330
  onSubmit,
@@ -14316,15 +14371,15 @@ function OAuthClientForm({
14316
14371
  },
14317
14372
  [formState, validate, onSubmit]
14318
14373
  );
14319
- return /* @__PURE__ */ jsx168(Card, { children: /* @__PURE__ */ jsxs101("form", { onSubmit: handleSubmit, children: [
14320
- /* @__PURE__ */ jsxs101(CardHeader, { children: [
14321
- /* @__PURE__ */ jsx168(CardTitle, { children: isEditMode ? "Edit Application" : "Create OAuth Application" }),
14322
- /* @__PURE__ */ jsx168(CardDescription, { children: isEditMode ? "Update your OAuth application settings." : "Register a new application to access the API." })
14374
+ return /* @__PURE__ */ jsx169(Card, { children: /* @__PURE__ */ jsxs102("form", { onSubmit: handleSubmit, children: [
14375
+ /* @__PURE__ */ jsxs102(CardHeader, { children: [
14376
+ /* @__PURE__ */ jsx169(CardTitle, { children: isEditMode ? "Edit Application" : "Create OAuth Application" }),
14377
+ /* @__PURE__ */ jsx169(CardDescription, { children: isEditMode ? "Update your OAuth application settings." : "Register a new application to access the API." })
14323
14378
  ] }),
14324
- /* @__PURE__ */ jsxs101(CardContent, { className: "space-y-6", children: [
14325
- /* @__PURE__ */ jsxs101("div", { className: "space-y-2", children: [
14326
- /* @__PURE__ */ jsx168(Label, { htmlFor: "name", children: "Application Name *" }),
14327
- /* @__PURE__ */ jsx168(
14379
+ /* @__PURE__ */ jsxs102(CardContent, { className: "space-y-6", children: [
14380
+ /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14381
+ /* @__PURE__ */ jsx169(Label, { htmlFor: "name", children: "Application Name *" }),
14382
+ /* @__PURE__ */ jsx169(
14328
14383
  Input,
14329
14384
  {
14330
14385
  id: "name",
@@ -14335,11 +14390,11 @@ function OAuthClientForm({
14335
14390
  className: errors.name ? "border-destructive" : ""
14336
14391
  }
14337
14392
  ),
14338
- errors.name && /* @__PURE__ */ jsx168("p", { className: "text-sm text-destructive", children: errors.name })
14393
+ errors.name && /* @__PURE__ */ jsx169("p", { className: "text-sm text-destructive", children: errors.name })
14339
14394
  ] }),
14340
- /* @__PURE__ */ jsxs101("div", { className: "space-y-2", children: [
14341
- /* @__PURE__ */ jsx168(Label, { htmlFor: "description", children: "Description" }),
14342
- /* @__PURE__ */ jsx168(
14395
+ /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14396
+ /* @__PURE__ */ jsx169(Label, { htmlFor: "description", children: "Description" }),
14397
+ /* @__PURE__ */ jsx169(
14343
14398
  Textarea,
14344
14399
  {
14345
14400
  id: "description",
@@ -14351,7 +14406,7 @@ function OAuthClientForm({
14351
14406
  }
14352
14407
  )
14353
14408
  ] }),
14354
- /* @__PURE__ */ jsx168(
14409
+ /* @__PURE__ */ jsx169(
14355
14410
  OAuthRedirectUriInput,
14356
14411
  {
14357
14412
  value: formState.redirectUris,
@@ -14360,7 +14415,7 @@ function OAuthClientForm({
14360
14415
  disabled: isLoading
14361
14416
  }
14362
14417
  ),
14363
- /* @__PURE__ */ jsx168(
14418
+ /* @__PURE__ */ jsx169(
14364
14419
  OAuthScopeSelector,
14365
14420
  {
14366
14421
  value: formState.allowedScopes,
@@ -14369,38 +14424,38 @@ function OAuthClientForm({
14369
14424
  disabled: isLoading
14370
14425
  }
14371
14426
  ),
14372
- /* @__PURE__ */ jsxs101("div", { className: "space-y-3", children: [
14373
- /* @__PURE__ */ jsx168(Label, { children: "Client Type" }),
14374
- /* @__PURE__ */ jsxs101(
14427
+ /* @__PURE__ */ jsxs102("div", { className: "space-y-3", children: [
14428
+ /* @__PURE__ */ jsx169(Label, { children: "Client Type" }),
14429
+ /* @__PURE__ */ jsxs102(
14375
14430
  RadioGroup,
14376
14431
  {
14377
14432
  value: formState.isConfidential ? "confidential" : "public",
14378
14433
  onValueChange: (v) => setFormState((s) => ({ ...s, isConfidential: v === "confidential" })),
14379
14434
  disabled: isLoading || isEditMode,
14380
14435
  children: [
14381
- /* @__PURE__ */ jsxs101("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
14382
- /* @__PURE__ */ jsx168(RadioGroupItem, { value: "confidential", id: "confidential", className: "mt-1" }),
14383
- /* @__PURE__ */ jsxs101("div", { children: [
14384
- /* @__PURE__ */ jsx168(Label, { htmlFor: "confidential", className: "font-medium cursor-pointer", children: "Confidential" }),
14385
- /* @__PURE__ */ jsx168("p", { className: "text-sm text-muted-foreground", children: "Server-side application that can securely store the client secret." })
14436
+ /* @__PURE__ */ jsxs102("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
14437
+ /* @__PURE__ */ jsx169(RadioGroupItem, { value: "confidential", id: "confidential", className: "mt-1" }),
14438
+ /* @__PURE__ */ jsxs102("div", { children: [
14439
+ /* @__PURE__ */ jsx169(Label, { htmlFor: "confidential", className: "font-medium cursor-pointer", children: "Confidential" }),
14440
+ /* @__PURE__ */ jsx169("p", { className: "text-sm text-muted-foreground", children: "Server-side application that can securely store the client secret." })
14386
14441
  ] })
14387
14442
  ] }),
14388
- /* @__PURE__ */ jsxs101("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
14389
- /* @__PURE__ */ jsx168(RadioGroupItem, { value: "public", id: "public", className: "mt-1" }),
14390
- /* @__PURE__ */ jsxs101("div", { children: [
14391
- /* @__PURE__ */ jsx168(Label, { htmlFor: "public", className: "font-medium cursor-pointer", children: "Public" }),
14392
- /* @__PURE__ */ jsx168("p", { className: "text-sm text-muted-foreground", children: "Mobile or desktop application. Requires PKCE for authorization." })
14443
+ /* @__PURE__ */ jsxs102("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
14444
+ /* @__PURE__ */ jsx169(RadioGroupItem, { value: "public", id: "public", className: "mt-1" }),
14445
+ /* @__PURE__ */ jsxs102("div", { children: [
14446
+ /* @__PURE__ */ jsx169(Label, { htmlFor: "public", className: "font-medium cursor-pointer", children: "Public" }),
14447
+ /* @__PURE__ */ jsx169("p", { className: "text-sm text-muted-foreground", children: "Mobile or desktop application. Requires PKCE for authorization." })
14393
14448
  ] })
14394
14449
  ] })
14395
14450
  ]
14396
14451
  }
14397
14452
  ),
14398
- isEditMode && /* @__PURE__ */ jsx168("p", { className: "text-sm text-muted-foreground", children: "Client type cannot be changed after creation." })
14453
+ isEditMode && /* @__PURE__ */ jsx169("p", { className: "text-sm text-muted-foreground", children: "Client type cannot be changed after creation." })
14399
14454
  ] })
14400
14455
  ] }),
14401
- /* @__PURE__ */ jsxs101(CardFooter, { className: "flex justify-end gap-3", children: [
14402
- /* @__PURE__ */ jsx168(Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isLoading, children: "Cancel" }),
14403
- /* @__PURE__ */ jsx168(Button, { type: "submit", disabled: isLoading, children: isLoading ? "Saving..." : isEditMode ? "Save Changes" : "Create Application" })
14456
+ /* @__PURE__ */ jsxs102(CardFooter, { className: "flex justify-end gap-3", children: [
14457
+ /* @__PURE__ */ jsx169(Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isLoading, children: "Cancel" }),
14458
+ /* @__PURE__ */ jsx169(Button, { type: "submit", disabled: isLoading, children: isLoading ? "Saving..." : isEditMode ? "Save Changes" : "Create Application" })
14404
14459
  ] })
14405
14460
  ] }) });
14406
14461
  }
@@ -14410,7 +14465,7 @@ __name(OAuthClientForm, "OAuthClientForm");
14410
14465
  import { useState as useState57, useCallback as useCallback27 } from "react";
14411
14466
  import { format as format2 } from "date-fns";
14412
14467
  import { Copy as Copy2, Check as Check2, RefreshCw as RefreshCw2, Pencil as Pencil2, Trash2 as Trash23, ExternalLink } from "lucide-react";
14413
- import { Fragment as Fragment34, jsx as jsx169, jsxs as jsxs102 } from "react/jsx-runtime";
14468
+ import { Fragment as Fragment34, jsx as jsx170, jsxs as jsxs103 } from "react/jsx-runtime";
14414
14469
  function OAuthClientDetail({
14415
14470
  client,
14416
14471
  isLoading = false,
@@ -14453,40 +14508,40 @@ function OAuthClientDetail({
14453
14508
  }
14454
14509
  }, [onRegenerateSecret]);
14455
14510
  const createdDate = client.createdAt ? format2(new Date(client.createdAt), "MMMM d, yyyy") : "Unknown";
14456
- return /* @__PURE__ */ jsxs102(Fragment34, { children: [
14457
- /* @__PURE__ */ jsxs102(Card, { children: [
14458
- /* @__PURE__ */ jsx169(CardHeader, { children: /* @__PURE__ */ jsxs102("div", { className: "flex items-start justify-between", children: [
14459
- /* @__PURE__ */ jsxs102("div", { children: [
14460
- /* @__PURE__ */ jsx169(CardTitle, { className: "text-2xl", children: client.name }),
14461
- client.description && /* @__PURE__ */ jsx169(CardDescription, { className: "mt-1", children: client.description })
14511
+ return /* @__PURE__ */ jsxs103(Fragment34, { children: [
14512
+ /* @__PURE__ */ jsxs103(Card, { children: [
14513
+ /* @__PURE__ */ jsx170(CardHeader, { children: /* @__PURE__ */ jsxs103("div", { className: "flex items-start justify-between", children: [
14514
+ /* @__PURE__ */ jsxs103("div", { children: [
14515
+ /* @__PURE__ */ jsx170(CardTitle, { className: "text-2xl", children: client.name }),
14516
+ client.description && /* @__PURE__ */ jsx170(CardDescription, { className: "mt-1", children: client.description })
14462
14517
  ] }),
14463
- /* @__PURE__ */ jsxs102("div", { className: "flex items-center gap-2", children: [
14464
- /* @__PURE__ */ jsx169(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
14465
- /* @__PURE__ */ jsx169(Badge, { variant: "outline", children: client.isConfidential ? "Confidential" : "Public" })
14518
+ /* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-2", children: [
14519
+ /* @__PURE__ */ jsx170(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
14520
+ /* @__PURE__ */ jsx170(Badge, { variant: "outline", children: client.isConfidential ? "Confidential" : "Public" })
14466
14521
  ] })
14467
14522
  ] }) }),
14468
- /* @__PURE__ */ jsxs102(CardContent, { className: "space-y-6", children: [
14469
- /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14470
- /* @__PURE__ */ jsx169(Label, { children: "Client ID" }),
14471
- /* @__PURE__ */ jsxs102("div", { className: "flex gap-2", children: [
14472
- /* @__PURE__ */ jsx169(Input, { value: client.clientId, readOnly: true, className: "font-mono" }),
14473
- /* @__PURE__ */ jsx169(
14523
+ /* @__PURE__ */ jsxs103(CardContent, { className: "space-y-6", children: [
14524
+ /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14525
+ /* @__PURE__ */ jsx170(Label, { children: "Client ID" }),
14526
+ /* @__PURE__ */ jsxs103("div", { className: "flex gap-2", children: [
14527
+ /* @__PURE__ */ jsx170(Input, { value: client.clientId, readOnly: true, className: "font-mono" }),
14528
+ /* @__PURE__ */ jsx170(
14474
14529
  Button,
14475
14530
  {
14476
14531
  variant: "outline",
14477
14532
  size: "icon",
14478
14533
  onClick: () => copyToClipboard(client.clientId, "clientId"),
14479
14534
  title: "Copy Client ID",
14480
- children: copiedField === "clientId" ? /* @__PURE__ */ jsx169(Check2, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx169(Copy2, { className: "h-4 w-4" })
14535
+ children: copiedField === "clientId" ? /* @__PURE__ */ jsx170(Check2, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx170(Copy2, { className: "h-4 w-4" })
14481
14536
  }
14482
14537
  )
14483
14538
  ] })
14484
14539
  ] }),
14485
- /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14486
- /* @__PURE__ */ jsx169(Label, { children: "Client Secret" }),
14487
- /* @__PURE__ */ jsxs102("div", { className: "flex gap-2", children: [
14488
- /* @__PURE__ */ jsx169(Input, { value: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", readOnly: true, className: "font-mono" }),
14489
- onRegenerateSecret && /* @__PURE__ */ jsx169(
14540
+ /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14541
+ /* @__PURE__ */ jsx170(Label, { children: "Client Secret" }),
14542
+ /* @__PURE__ */ jsxs103("div", { className: "flex gap-2", children: [
14543
+ /* @__PURE__ */ jsx170(Input, { value: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", readOnly: true, className: "font-mono" }),
14544
+ onRegenerateSecret && /* @__PURE__ */ jsx170(
14490
14545
  Button,
14491
14546
  {
14492
14547
  variant: "outline",
@@ -14494,46 +14549,46 @@ function OAuthClientDetail({
14494
14549
  onClick: () => setShowRegenerateConfirm(true),
14495
14550
  title: "Regenerate Secret",
14496
14551
  disabled: isLoading,
14497
- children: /* @__PURE__ */ jsx169(RefreshCw2, { className: "h-4 w-4" })
14552
+ children: /* @__PURE__ */ jsx170(RefreshCw2, { className: "h-4 w-4" })
14498
14553
  }
14499
14554
  )
14500
14555
  ] }),
14501
- /* @__PURE__ */ jsx169("p", { className: "text-xs text-muted-foreground", children: "Regenerating will invalidate the current secret and all existing tokens." })
14556
+ /* @__PURE__ */ jsx170("p", { className: "text-xs text-muted-foreground", children: "Regenerating will invalidate the current secret and all existing tokens." })
14502
14557
  ] }),
14503
- /* @__PURE__ */ jsx169(Separator, {}),
14504
- /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14505
- /* @__PURE__ */ jsx169(Label, { children: "Redirect URIs" }),
14506
- /* @__PURE__ */ jsx169("ul", { className: "space-y-1", children: client.redirectUris.map((uri, index) => /* @__PURE__ */ jsxs102("li", { className: "flex items-center gap-2 text-sm font-mono", children: [
14507
- /* @__PURE__ */ jsx169(ExternalLink, { className: "h-3 w-3 text-muted-foreground" }),
14558
+ /* @__PURE__ */ jsx170(Separator, {}),
14559
+ /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14560
+ /* @__PURE__ */ jsx170(Label, { children: "Redirect URIs" }),
14561
+ /* @__PURE__ */ jsx170("ul", { className: "space-y-1", children: client.redirectUris.map((uri, index) => /* @__PURE__ */ jsxs103("li", { className: "flex items-center gap-2 text-sm font-mono", children: [
14562
+ /* @__PURE__ */ jsx170(ExternalLink, { className: "h-3 w-3 text-muted-foreground" }),
14508
14563
  uri
14509
14564
  ] }, index)) })
14510
14565
  ] }),
14511
- /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14512
- /* @__PURE__ */ jsx169(Label, { children: "Allowed Scopes" }),
14513
- /* @__PURE__ */ jsx169("div", { className: "flex flex-wrap gap-2", children: client.allowedScopes.map((scope) => /* @__PURE__ */ jsx169(Badge, { variant: "secondary", children: OAUTH_SCOPE_DISPLAY[scope]?.name || scope }, scope)) })
14566
+ /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14567
+ /* @__PURE__ */ jsx170(Label, { children: "Allowed Scopes" }),
14568
+ /* @__PURE__ */ jsx170("div", { className: "flex flex-wrap gap-2", children: client.allowedScopes.map((scope) => /* @__PURE__ */ jsx170(Badge, { variant: "secondary", children: OAUTH_SCOPE_DISPLAY[scope]?.name || scope }, scope)) })
14514
14569
  ] }),
14515
- /* @__PURE__ */ jsxs102("div", { className: "space-y-2", children: [
14516
- /* @__PURE__ */ jsx169(Label, { children: "Grant Types" }),
14517
- /* @__PURE__ */ jsx169("div", { className: "flex flex-wrap gap-2", children: client.allowedGrantTypes.map((grant) => /* @__PURE__ */ jsx169(Badge, { variant: "outline", children: grant.replace(/_/g, " ") }, grant)) })
14570
+ /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14571
+ /* @__PURE__ */ jsx170(Label, { children: "Grant Types" }),
14572
+ /* @__PURE__ */ jsx170("div", { className: "flex flex-wrap gap-2", children: client.allowedGrantTypes.map((grant) => /* @__PURE__ */ jsx170(Badge, { variant: "outline", children: grant.replace(/_/g, " ") }, grant)) })
14518
14573
  ] }),
14519
- /* @__PURE__ */ jsx169(Separator, {}),
14520
- /* @__PURE__ */ jsx169("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs102("span", { children: [
14574
+ /* @__PURE__ */ jsx170(Separator, {}),
14575
+ /* @__PURE__ */ jsx170("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs103("span", { children: [
14521
14576
  "Created: ",
14522
14577
  createdDate
14523
14578
  ] }) }),
14524
- /* @__PURE__ */ jsxs102("div", { className: "flex gap-3 pt-4", children: [
14525
- onEdit && /* @__PURE__ */ jsxs102(Button, { variant: "outline", onClick: onEdit, disabled: isLoading, children: [
14526
- /* @__PURE__ */ jsx169(Pencil2, { className: "h-4 w-4 mr-2" }),
14579
+ /* @__PURE__ */ jsxs103("div", { className: "flex gap-3 pt-4", children: [
14580
+ onEdit && /* @__PURE__ */ jsxs103(Button, { variant: "outline", onClick: onEdit, disabled: isLoading, children: [
14581
+ /* @__PURE__ */ jsx170(Pencil2, { className: "h-4 w-4 mr-2" }),
14527
14582
  "Edit"
14528
14583
  ] }),
14529
- onDelete && /* @__PURE__ */ jsxs102(
14584
+ onDelete && /* @__PURE__ */ jsxs103(
14530
14585
  Button,
14531
14586
  {
14532
14587
  variant: "destructive",
14533
14588
  onClick: () => setShowDeleteConfirm(true),
14534
14589
  disabled: isLoading,
14535
14590
  children: [
14536
- /* @__PURE__ */ jsx169(Trash23, { className: "h-4 w-4 mr-2" }),
14591
+ /* @__PURE__ */ jsx170(Trash23, { className: "h-4 w-4 mr-2" }),
14537
14592
  "Delete"
14538
14593
  ]
14539
14594
  }
@@ -14541,18 +14596,18 @@ function OAuthClientDetail({
14541
14596
  ] })
14542
14597
  ] })
14543
14598
  ] }),
14544
- /* @__PURE__ */ jsx169(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs102(AlertDialogContent, { children: [
14545
- /* @__PURE__ */ jsxs102(AlertDialogHeader, { children: [
14546
- /* @__PURE__ */ jsx169(AlertDialogTitle, { children: "Delete OAuth Application?" }),
14547
- /* @__PURE__ */ jsxs102(AlertDialogDescription, { children: [
14599
+ /* @__PURE__ */ jsx170(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs103(AlertDialogContent, { children: [
14600
+ /* @__PURE__ */ jsxs103(AlertDialogHeader, { children: [
14601
+ /* @__PURE__ */ jsx170(AlertDialogTitle, { children: "Delete OAuth Application?" }),
14602
+ /* @__PURE__ */ jsxs103(AlertDialogDescription, { children: [
14548
14603
  'This will permanently delete "',
14549
14604
  client.name,
14550
14605
  '" and revoke all access tokens. This action cannot be undone.'
14551
14606
  ] })
14552
14607
  ] }),
14553
- /* @__PURE__ */ jsxs102(AlertDialogFooter, { children: [
14554
- /* @__PURE__ */ jsx169(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }),
14555
- /* @__PURE__ */ jsx169(
14608
+ /* @__PURE__ */ jsxs103(AlertDialogFooter, { children: [
14609
+ /* @__PURE__ */ jsx170(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }),
14610
+ /* @__PURE__ */ jsx170(
14556
14611
  AlertDialogAction,
14557
14612
  {
14558
14613
  onClick: handleDelete,
@@ -14563,14 +14618,14 @@ function OAuthClientDetail({
14563
14618
  )
14564
14619
  ] })
14565
14620
  ] }) }),
14566
- /* @__PURE__ */ jsx169(AlertDialog, { open: showRegenerateConfirm, onOpenChange: setShowRegenerateConfirm, children: /* @__PURE__ */ jsxs102(AlertDialogContent, { children: [
14567
- /* @__PURE__ */ jsxs102(AlertDialogHeader, { children: [
14568
- /* @__PURE__ */ jsx169(AlertDialogTitle, { children: "Regenerate Client Secret?" }),
14569
- /* @__PURE__ */ jsx169(AlertDialogDescription, { children: "This will generate a new client secret and invalidate the old one. All existing tokens will be revoked. You will need to update your application with the new secret." })
14621
+ /* @__PURE__ */ jsx170(AlertDialog, { open: showRegenerateConfirm, onOpenChange: setShowRegenerateConfirm, children: /* @__PURE__ */ jsxs103(AlertDialogContent, { children: [
14622
+ /* @__PURE__ */ jsxs103(AlertDialogHeader, { children: [
14623
+ /* @__PURE__ */ jsx170(AlertDialogTitle, { children: "Regenerate Client Secret?" }),
14624
+ /* @__PURE__ */ jsx170(AlertDialogDescription, { children: "This will generate a new client secret and invalidate the old one. All existing tokens will be revoked. You will need to update your application with the new secret." })
14570
14625
  ] }),
14571
- /* @__PURE__ */ jsxs102(AlertDialogFooter, { children: [
14572
- /* @__PURE__ */ jsx169(AlertDialogCancel, { disabled: isRegenerating, children: "Cancel" }),
14573
- /* @__PURE__ */ jsx169(AlertDialogAction, { onClick: handleRegenerateSecret, disabled: isRegenerating, children: isRegenerating ? "Regenerating..." : "Regenerate" })
14626
+ /* @__PURE__ */ jsxs103(AlertDialogFooter, { children: [
14627
+ /* @__PURE__ */ jsx170(AlertDialogCancel, { disabled: isRegenerating, children: "Cancel" }),
14628
+ /* @__PURE__ */ jsx170(AlertDialogAction, { onClick: handleRegenerateSecret, disabled: isRegenerating, children: isRegenerating ? "Regenerating..." : "Regenerate" })
14574
14629
  ] })
14575
14630
  ] }) })
14576
14631
  ] });
@@ -14579,28 +14634,28 @@ __name(OAuthClientDetail, "OAuthClientDetail");
14579
14634
 
14580
14635
  // src/features/oauth/components/consent/OAuthConsentHeader.tsx
14581
14636
  import { Shield } from "lucide-react";
14582
- import { jsx as jsx170, jsxs as jsxs103 } from "react/jsx-runtime";
14637
+ import { jsx as jsx171, jsxs as jsxs104 } from "react/jsx-runtime";
14583
14638
  function OAuthConsentHeader({
14584
14639
  client,
14585
14640
  logoUrl,
14586
14641
  appName = "Only35"
14587
14642
  }) {
14588
- return /* @__PURE__ */ jsxs103("div", { className: "text-center space-y-4", children: [
14589
- /* @__PURE__ */ jsx170("div", { className: "flex justify-center", children: logoUrl ? /* @__PURE__ */ jsx170(
14643
+ return /* @__PURE__ */ jsxs104("div", { className: "text-center space-y-4", children: [
14644
+ /* @__PURE__ */ jsx171("div", { className: "flex justify-center", children: logoUrl ? /* @__PURE__ */ jsx171(
14590
14645
  "img",
14591
14646
  {
14592
14647
  src: logoUrl,
14593
14648
  alt: appName,
14594
14649
  className: "h-12 w-auto"
14595
14650
  }
14596
- ) : /* @__PURE__ */ jsx170("div", { className: "h-12 w-12 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx170(Shield, { className: "h-6 w-6 text-primary-foreground" }) }) }),
14597
- /* @__PURE__ */ jsxs103("div", { className: "space-y-2", children: [
14598
- /* @__PURE__ */ jsxs103("h1", { className: "text-2xl font-bold", children: [
14651
+ ) : /* @__PURE__ */ jsx171("div", { className: "h-12 w-12 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx171(Shield, { className: "h-6 w-6 text-primary-foreground" }) }) }),
14652
+ /* @__PURE__ */ jsxs104("div", { className: "space-y-2", children: [
14653
+ /* @__PURE__ */ jsxs104("h1", { className: "text-2xl font-bold", children: [
14599
14654
  "Authorize ",
14600
14655
  client.name
14601
14656
  ] }),
14602
- /* @__PURE__ */ jsxs103("p", { className: "text-muted-foreground", children: [
14603
- /* @__PURE__ */ jsx170("span", { className: "font-medium text-foreground", children: client.name }),
14657
+ /* @__PURE__ */ jsxs104("p", { className: "text-muted-foreground", children: [
14658
+ /* @__PURE__ */ jsx171("span", { className: "font-medium text-foreground", children: client.name }),
14604
14659
  " ",
14605
14660
  "wants to access your ",
14606
14661
  appName,
@@ -14622,7 +14677,7 @@ import {
14622
14677
  User,
14623
14678
  Shield as Shield2
14624
14679
  } from "lucide-react";
14625
- import { jsx as jsx171, jsxs as jsxs104 } from "react/jsx-runtime";
14680
+ import { jsx as jsx172, jsxs as jsxs105 } from "react/jsx-runtime";
14626
14681
  var SCOPE_ICONS = {
14627
14682
  eye: Eye,
14628
14683
  pencil: Pencil3,
@@ -14637,19 +14692,19 @@ function OAuthScopeList({ scopes }) {
14637
14692
  if (scopes.length === 0) {
14638
14693
  return null;
14639
14694
  }
14640
- return /* @__PURE__ */ jsxs104("div", { className: "space-y-3", children: [
14641
- /* @__PURE__ */ jsx171("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide", children: "This will allow the application to:" }),
14642
- /* @__PURE__ */ jsx171("ul", { className: "space-y-3", children: scopes.map((scope) => {
14695
+ return /* @__PURE__ */ jsxs105("div", { className: "space-y-3", children: [
14696
+ /* @__PURE__ */ jsx172("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide", children: "This will allow the application to:" }),
14697
+ /* @__PURE__ */ jsx172("ul", { className: "space-y-3", children: scopes.map((scope) => {
14643
14698
  const IconComponent = scope.icon ? SCOPE_ICONS[scope.icon] : Eye;
14644
- return /* @__PURE__ */ jsxs104(
14699
+ return /* @__PURE__ */ jsxs105(
14645
14700
  "li",
14646
14701
  {
14647
14702
  className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50",
14648
14703
  children: [
14649
- /* @__PURE__ */ jsx171("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx171("div", { className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center", children: IconComponent && /* @__PURE__ */ jsx171(IconComponent, { className: "h-4 w-4 text-primary" }) }) }),
14650
- /* @__PURE__ */ jsxs104("div", { className: "flex-1", children: [
14651
- /* @__PURE__ */ jsx171("p", { className: "font-medium", children: scope.name }),
14652
- /* @__PURE__ */ jsx171("p", { className: "text-sm text-muted-foreground", children: scope.description })
14704
+ /* @__PURE__ */ jsx172("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx172("div", { className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center", children: IconComponent && /* @__PURE__ */ jsx172(IconComponent, { className: "h-4 w-4 text-primary" }) }) }),
14705
+ /* @__PURE__ */ jsxs105("div", { className: "flex-1", children: [
14706
+ /* @__PURE__ */ jsx172("p", { className: "font-medium", children: scope.name }),
14707
+ /* @__PURE__ */ jsx172("p", { className: "text-sm text-muted-foreground", children: scope.description })
14653
14708
  ] })
14654
14709
  ]
14655
14710
  },
@@ -14661,14 +14716,14 @@ function OAuthScopeList({ scopes }) {
14661
14716
  __name(OAuthScopeList, "OAuthScopeList");
14662
14717
 
14663
14718
  // src/features/oauth/components/consent/OAuthConsentActions.tsx
14664
- import { jsx as jsx172, jsxs as jsxs105 } from "react/jsx-runtime";
14719
+ import { jsx as jsx173, jsxs as jsxs106 } from "react/jsx-runtime";
14665
14720
  function OAuthConsentActions({
14666
14721
  onApprove,
14667
14722
  onDeny,
14668
14723
  isLoading = false
14669
14724
  }) {
14670
- return /* @__PURE__ */ jsxs105("div", { className: "flex flex-col sm:flex-row gap-3", children: [
14671
- /* @__PURE__ */ jsx172(
14725
+ return /* @__PURE__ */ jsxs106("div", { className: "flex flex-col sm:flex-row gap-3", children: [
14726
+ /* @__PURE__ */ jsx173(
14672
14727
  Button,
14673
14728
  {
14674
14729
  variant: "outline",
@@ -14678,7 +14733,7 @@ function OAuthConsentActions({
14678
14733
  children: "Deny"
14679
14734
  }
14680
14735
  ),
14681
- /* @__PURE__ */ jsx172(
14736
+ /* @__PURE__ */ jsx173(
14682
14737
  Button,
14683
14738
  {
14684
14739
  onClick: onApprove,
@@ -14693,7 +14748,7 @@ __name(OAuthConsentActions, "OAuthConsentActions");
14693
14748
 
14694
14749
  // src/features/oauth/components/consent/OAuthConsentScreen.tsx
14695
14750
  import { ExternalLink as ExternalLink2, AlertTriangle as AlertTriangle2, Loader2 as Loader22 } from "lucide-react";
14696
- import { jsx as jsx173, jsxs as jsxs106 } from "react/jsx-runtime";
14751
+ import { jsx as jsx174, jsxs as jsxs107 } from "react/jsx-runtime";
14697
14752
  function OAuthConsentScreen({
14698
14753
  params,
14699
14754
  logoUrl,
@@ -14703,21 +14758,21 @@ function OAuthConsentScreen({
14703
14758
  }) {
14704
14759
  const { clientInfo, isLoading, error, approve, deny, isSubmitting } = useOAuthConsent(params);
14705
14760
  if (isLoading) {
14706
- return /* @__PURE__ */ jsx173("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx173(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsxs106(CardContent, { className: "flex flex-col items-center justify-center py-12", children: [
14707
- /* @__PURE__ */ jsx173(Loader22, { className: "h-8 w-8 animate-spin text-muted-foreground" }),
14708
- /* @__PURE__ */ jsx173("p", { className: "mt-4 text-muted-foreground", children: "Loading authorization request..." })
14761
+ return /* @__PURE__ */ jsx174("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx174(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsxs107(CardContent, { className: "flex flex-col items-center justify-center py-12", children: [
14762
+ /* @__PURE__ */ jsx174(Loader22, { className: "h-8 w-8 animate-spin text-muted-foreground" }),
14763
+ /* @__PURE__ */ jsx174("p", { className: "mt-4 text-muted-foreground", children: "Loading authorization request..." })
14709
14764
  ] }) }) });
14710
14765
  }
14711
14766
  if (error || !clientInfo) {
14712
- return /* @__PURE__ */ jsx173("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx173(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsx173(CardContent, { className: "py-8", children: /* @__PURE__ */ jsxs106(Alert, { variant: "destructive", children: [
14713
- /* @__PURE__ */ jsx173(AlertTriangle2, { className: "h-4 w-4" }),
14714
- /* @__PURE__ */ jsx173(AlertDescription, { children: error?.message || "Invalid authorization request. Please try again." })
14767
+ return /* @__PURE__ */ jsx174("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx174(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsx174(CardContent, { className: "py-8", children: /* @__PURE__ */ jsxs107(Alert, { variant: "destructive", children: [
14768
+ /* @__PURE__ */ jsx174(AlertTriangle2, { className: "h-4 w-4" }),
14769
+ /* @__PURE__ */ jsx174(AlertDescription, { children: error?.message || "Invalid authorization request. Please try again." })
14715
14770
  ] }) }) }) });
14716
14771
  }
14717
14772
  const { client, scopes } = clientInfo;
14718
- return /* @__PURE__ */ jsx173("div", { className: "min-h-screen flex items-center justify-center p-4 bg-muted/30", children: /* @__PURE__ */ jsxs106(Card, { className: "w-full max-w-md", children: [
14719
- /* @__PURE__ */ jsxs106(CardContent, { className: "pt-6 space-y-6", children: [
14720
- /* @__PURE__ */ jsx173(
14773
+ return /* @__PURE__ */ jsx174("div", { className: "min-h-screen flex items-center justify-center p-4 bg-muted/30", children: /* @__PURE__ */ jsxs107(Card, { className: "w-full max-w-md", children: [
14774
+ /* @__PURE__ */ jsxs107(CardContent, { className: "pt-6 space-y-6", children: [
14775
+ /* @__PURE__ */ jsx174(
14721
14776
  OAuthConsentHeader,
14722
14777
  {
14723
14778
  client,
@@ -14725,17 +14780,17 @@ function OAuthConsentScreen({
14725
14780
  appName
14726
14781
  }
14727
14782
  ),
14728
- /* @__PURE__ */ jsx173(Separator, {}),
14729
- /* @__PURE__ */ jsx173(OAuthScopeList, { scopes }),
14730
- /* @__PURE__ */ jsx173(Separator, {}),
14731
- /* @__PURE__ */ jsxs106("div", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
14732
- /* @__PURE__ */ jsx173(ExternalLink2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
14733
- /* @__PURE__ */ jsxs106("div", { children: [
14734
- /* @__PURE__ */ jsx173("span", { children: "Authorizing will redirect you to:" }),
14735
- /* @__PURE__ */ jsx173("p", { className: "font-mono text-xs mt-1 break-all", children: params.redirectUri })
14783
+ /* @__PURE__ */ jsx174(Separator, {}),
14784
+ /* @__PURE__ */ jsx174(OAuthScopeList, { scopes }),
14785
+ /* @__PURE__ */ jsx174(Separator, {}),
14786
+ /* @__PURE__ */ jsxs107("div", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
14787
+ /* @__PURE__ */ jsx174(ExternalLink2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
14788
+ /* @__PURE__ */ jsxs107("div", { children: [
14789
+ /* @__PURE__ */ jsx174("span", { children: "Authorizing will redirect you to:" }),
14790
+ /* @__PURE__ */ jsx174("p", { className: "font-mono text-xs mt-1 break-all", children: params.redirectUri })
14736
14791
  ] })
14737
14792
  ] }),
14738
- /* @__PURE__ */ jsx173(
14793
+ /* @__PURE__ */ jsx174(
14739
14794
  OAuthConsentActions,
14740
14795
  {
14741
14796
  onApprove: approve,
@@ -14744,14 +14799,14 @@ function OAuthConsentScreen({
14744
14799
  }
14745
14800
  )
14746
14801
  ] }),
14747
- /* @__PURE__ */ jsx173(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsxs106("p", { className: "text-xs text-center text-muted-foreground", children: [
14802
+ /* @__PURE__ */ jsx174(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsxs107("p", { className: "text-xs text-center text-muted-foreground", children: [
14748
14803
  "By authorizing, you agree to the app's",
14749
14804
  " ",
14750
- /* @__PURE__ */ jsx173("a", { href: termsUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Terms of Service" }),
14805
+ /* @__PURE__ */ jsx174("a", { href: termsUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Terms of Service" }),
14751
14806
  " ",
14752
14807
  "and",
14753
14808
  " ",
14754
- /* @__PURE__ */ jsx173("a", { href: privacyUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Privacy Policy" }),
14809
+ /* @__PURE__ */ jsx174("a", { href: privacyUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Privacy Policy" }),
14755
14810
  "."
14756
14811
  ] }) })
14757
14812
  ] }) });
@@ -15177,4 +15232,4 @@ export {
15177
15232
  useOAuthClients,
15178
15233
  useOAuthClient
15179
15234
  };
15180
- //# sourceMappingURL=chunk-TM4RWVZE.mjs.map
15235
+ //# sourceMappingURL=chunk-SLANIL6B.mjs.map