@clerk/react 6.0.0-snapshot.v20251215212157 → 6.0.0-snapshot.v20251216175437
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-EMTY23UX.mjs → chunk-4F7CSI4T.mjs} +2 -2
- package/dist/{chunk-FDDR7URL.mjs → chunk-J32KHXBI.mjs} +1 -4
- package/dist/{chunk-FDDR7URL.mjs.map → chunk-J32KHXBI.mjs.map} +1 -1
- package/dist/{chunk-JPHCBAWH.mjs → chunk-YKGYOPLG.mjs} +2 -2
- package/dist/experimental.js +62 -65
- package/dist/experimental.js.map +1 -1
- package/dist/experimental.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +99 -107
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -8
- package/dist/index.mjs.map +1 -1
- package/dist/internal.js +11 -14
- package/dist/internal.js.map +1 -1
- package/dist/internal.mjs +2 -2
- package/package.json +4 -4
- /package/dist/{chunk-EMTY23UX.mjs.map → chunk-4F7CSI4T.mjs.map} +0 -0
- /package/dist/{chunk-JPHCBAWH.mjs.map → chunk-YKGYOPLG.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -68,27 +68,26 @@ __export(src_exports, {
|
|
|
68
68
|
SignedOut: () => SignedOut,
|
|
69
69
|
TaskChooseOrganization: () => TaskChooseOrganization,
|
|
70
70
|
TaskResetPassword: () => TaskResetPassword,
|
|
71
|
-
UNSAFE_PortalProvider: () => import_react29.UNSAFE_PortalProvider,
|
|
72
71
|
UserAvatar: () => UserAvatar,
|
|
73
72
|
UserButton: () => UserButton,
|
|
74
73
|
UserProfile: () => UserProfile,
|
|
75
74
|
Waitlist: () => Waitlist,
|
|
76
|
-
__experimental_CheckoutProvider: () =>
|
|
77
|
-
__experimental_PaymentElement: () =>
|
|
78
|
-
__experimental_PaymentElementProvider: () =>
|
|
79
|
-
__experimental_useCheckout: () =>
|
|
80
|
-
__experimental_usePaymentElement: () =>
|
|
75
|
+
__experimental_CheckoutProvider: () => import_react19.__experimental_CheckoutProvider,
|
|
76
|
+
__experimental_PaymentElement: () => import_react19.__experimental_PaymentElement,
|
|
77
|
+
__experimental_PaymentElementProvider: () => import_react19.__experimental_PaymentElementProvider,
|
|
78
|
+
__experimental_useCheckout: () => import_react19.__experimental_useCheckout,
|
|
79
|
+
__experimental_usePaymentElement: () => import_react19.__experimental_usePaymentElement,
|
|
81
80
|
useAuth: () => useAuth,
|
|
82
|
-
useClerk: () =>
|
|
81
|
+
useClerk: () => import_react19.useClerk,
|
|
83
82
|
useEmailLink: () => useEmailLink,
|
|
84
|
-
useOrganization: () =>
|
|
85
|
-
useOrganizationList: () =>
|
|
86
|
-
useReverification: () =>
|
|
87
|
-
useSession: () =>
|
|
88
|
-
useSessionList: () =>
|
|
83
|
+
useOrganization: () => import_react19.useOrganization,
|
|
84
|
+
useOrganizationList: () => import_react19.useOrganizationList,
|
|
85
|
+
useReverification: () => import_react19.useReverification,
|
|
86
|
+
useSession: () => import_react19.useSession,
|
|
87
|
+
useSessionList: () => import_react19.useSessionList,
|
|
89
88
|
useSignIn: () => useSignIn,
|
|
90
89
|
useSignUp: () => useSignUp,
|
|
91
|
-
useUser: () =>
|
|
90
|
+
useUser: () => import_react19.useUser
|
|
92
91
|
});
|
|
93
92
|
module.exports = __toCommonJS(src_exports);
|
|
94
93
|
|
|
@@ -109,7 +108,7 @@ function setErrorThrowerOptions(options) {
|
|
|
109
108
|
|
|
110
109
|
// src/components/uiComponents.tsx
|
|
111
110
|
var import_utils3 = require("@clerk/shared/utils");
|
|
112
|
-
var
|
|
111
|
+
var import_react13 = __toESM(require("react"));
|
|
113
112
|
|
|
114
113
|
// src/errors/messages.ts
|
|
115
114
|
var multipleClerkProvidersError = "You've added multiple <ClerkProvider> components in your React component tree. Wrap your components in a single <ClerkProvider>.";
|
|
@@ -651,8 +650,7 @@ var ClerkHostRenderer = class extends import_react9.default.PureComponent {
|
|
|
651
650
|
};
|
|
652
651
|
|
|
653
652
|
// src/components/withClerk.tsx
|
|
654
|
-
var import_react12 = require("
|
|
655
|
-
var import_react13 = __toESM(require("react"));
|
|
653
|
+
var import_react12 = __toESM(require("react"));
|
|
656
654
|
|
|
657
655
|
// src/contexts/IsomorphicClerkContext.tsx
|
|
658
656
|
var import_react10 = require("@clerk/shared/react");
|
|
@@ -676,14 +674,12 @@ var withClerk = (Component, displayNameOrOptions) => {
|
|
|
676
674
|
const HOC = (props) => {
|
|
677
675
|
useAssertWrappedByClerkProvider(displayName || "withClerk");
|
|
678
676
|
const clerk = useIsomorphicClerkContext();
|
|
679
|
-
const getContainer = (0, import_react12.usePortalRoot)();
|
|
680
677
|
if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) {
|
|
681
678
|
return null;
|
|
682
679
|
}
|
|
683
|
-
return /* @__PURE__ */
|
|
680
|
+
return /* @__PURE__ */ import_react12.default.createElement(
|
|
684
681
|
Component,
|
|
685
682
|
{
|
|
686
|
-
getContainer,
|
|
687
683
|
...props,
|
|
688
684
|
component: displayName,
|
|
689
685
|
clerk
|
|
@@ -697,7 +693,7 @@ var withClerk = (Component, displayNameOrOptions) => {
|
|
|
697
693
|
// src/components/uiComponents.tsx
|
|
698
694
|
var CustomPortalsRenderer = (props) => {
|
|
699
695
|
var _a, _b;
|
|
700
|
-
return /* @__PURE__ */
|
|
696
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, (_a = props == null ? void 0 : props.customPagesPortals) == null ? void 0 : _a.map((portal, index) => (0, import_react13.createElement)(portal, { key: index })), (_b = props == null ? void 0 : props.customMenuItemsPortals) == null ? void 0 : _b.map((portal, index) => (0, import_react13.createElement)(portal, { key: index })));
|
|
701
697
|
};
|
|
702
698
|
var SignIn = withClerk(
|
|
703
699
|
({ clerk, component, fallback, ...props }) => {
|
|
@@ -706,7 +702,7 @@ var SignIn = withClerk(
|
|
|
706
702
|
const rendererRootProps = {
|
|
707
703
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
708
704
|
};
|
|
709
|
-
return /* @__PURE__ */
|
|
705
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
710
706
|
ClerkHostRenderer,
|
|
711
707
|
{
|
|
712
708
|
component,
|
|
@@ -727,7 +723,7 @@ var SignUp = withClerk(
|
|
|
727
723
|
const rendererRootProps = {
|
|
728
724
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
729
725
|
};
|
|
730
|
-
return /* @__PURE__ */
|
|
726
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
731
727
|
ClerkHostRenderer,
|
|
732
728
|
{
|
|
733
729
|
component,
|
|
@@ -743,11 +739,11 @@ var SignUp = withClerk(
|
|
|
743
739
|
);
|
|
744
740
|
function UserProfilePage({ children }) {
|
|
745
741
|
(0, import_utils3.logErrorInDevMode)(userProfilePageRenderedError);
|
|
746
|
-
return /* @__PURE__ */
|
|
742
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
747
743
|
}
|
|
748
744
|
function UserProfileLink({ children }) {
|
|
749
745
|
(0, import_utils3.logErrorInDevMode)(userProfileLinkRenderedError);
|
|
750
|
-
return /* @__PURE__ */
|
|
746
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
751
747
|
}
|
|
752
748
|
var _UserProfile = withClerk(
|
|
753
749
|
({
|
|
@@ -762,7 +758,7 @@ var _UserProfile = withClerk(
|
|
|
762
758
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
763
759
|
};
|
|
764
760
|
const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children);
|
|
765
|
-
return /* @__PURE__ */
|
|
761
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, /* @__PURE__ */ import_react13.default.createElement(
|
|
766
762
|
ClerkHostRenderer,
|
|
767
763
|
{
|
|
768
764
|
component,
|
|
@@ -772,7 +768,7 @@ var _UserProfile = withClerk(
|
|
|
772
768
|
props: { ...props, customPages },
|
|
773
769
|
rootProps: rendererRootProps
|
|
774
770
|
},
|
|
775
|
-
/* @__PURE__ */
|
|
771
|
+
/* @__PURE__ */ import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals })
|
|
776
772
|
));
|
|
777
773
|
},
|
|
778
774
|
{ component: "UserProfile", renderWhileLoading: true }
|
|
@@ -781,7 +777,7 @@ var UserProfile = Object.assign(_UserProfile, {
|
|
|
781
777
|
Page: UserProfilePage,
|
|
782
778
|
Link: UserProfileLink
|
|
783
779
|
});
|
|
784
|
-
var UserButtonContext = (0,
|
|
780
|
+
var UserButtonContext = (0, import_react13.createContext)({
|
|
785
781
|
mount: () => {
|
|
786
782
|
},
|
|
787
783
|
unmount: () => {
|
|
@@ -819,7 +815,7 @@ var _UserButton = withClerk(
|
|
|
819
815
|
customPagesPortals,
|
|
820
816
|
customMenuItemsPortals
|
|
821
817
|
};
|
|
822
|
-
return /* @__PURE__ */
|
|
818
|
+
return /* @__PURE__ */ import_react13.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
823
819
|
ClerkHostRenderer,
|
|
824
820
|
{
|
|
825
821
|
component,
|
|
@@ -828,25 +824,25 @@ var _UserButton = withClerk(
|
|
|
828
824
|
rootProps: rendererRootProps
|
|
829
825
|
},
|
|
830
826
|
props.__experimental_asProvider ? sanitizedChildren : null,
|
|
831
|
-
/* @__PURE__ */
|
|
827
|
+
/* @__PURE__ */ import_react13.default.createElement(CustomPortalsRenderer, { ...portalProps })
|
|
832
828
|
));
|
|
833
829
|
},
|
|
834
830
|
{ component: "UserButton", renderWhileLoading: true }
|
|
835
831
|
);
|
|
836
832
|
function MenuItems({ children }) {
|
|
837
833
|
(0, import_utils3.logErrorInDevMode)(userButtonMenuItemsRenderedError);
|
|
838
|
-
return /* @__PURE__ */
|
|
834
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
839
835
|
}
|
|
840
836
|
function MenuAction({ children }) {
|
|
841
837
|
(0, import_utils3.logErrorInDevMode)(userButtonMenuActionRenderedError);
|
|
842
|
-
return /* @__PURE__ */
|
|
838
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
843
839
|
}
|
|
844
840
|
function MenuLink({ children }) {
|
|
845
841
|
(0, import_utils3.logErrorInDevMode)(userButtonMenuLinkRenderedError);
|
|
846
|
-
return /* @__PURE__ */
|
|
842
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
847
843
|
}
|
|
848
844
|
function UserButtonOutlet(outletProps) {
|
|
849
|
-
const providerProps = (0,
|
|
845
|
+
const providerProps = (0, import_react13.useContext)(UserButtonContext);
|
|
850
846
|
const portalProps = {
|
|
851
847
|
...providerProps,
|
|
852
848
|
props: {
|
|
@@ -854,7 +850,7 @@ function UserButtonOutlet(outletProps) {
|
|
|
854
850
|
...outletProps
|
|
855
851
|
}
|
|
856
852
|
};
|
|
857
|
-
return /* @__PURE__ */
|
|
853
|
+
return /* @__PURE__ */ import_react13.default.createElement(ClerkHostRenderer, { ...portalProps });
|
|
858
854
|
}
|
|
859
855
|
var UserButton = Object.assign(_UserButton, {
|
|
860
856
|
UserProfilePage,
|
|
@@ -866,11 +862,11 @@ var UserButton = Object.assign(_UserButton, {
|
|
|
866
862
|
});
|
|
867
863
|
function OrganizationProfilePage({ children }) {
|
|
868
864
|
(0, import_utils3.logErrorInDevMode)(organizationProfilePageRenderedError);
|
|
869
|
-
return /* @__PURE__ */
|
|
865
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
870
866
|
}
|
|
871
867
|
function OrganizationProfileLink({ children }) {
|
|
872
868
|
(0, import_utils3.logErrorInDevMode)(organizationProfileLinkRenderedError);
|
|
873
|
-
return /* @__PURE__ */
|
|
869
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, children);
|
|
874
870
|
}
|
|
875
871
|
var _OrganizationProfile = withClerk(
|
|
876
872
|
({
|
|
@@ -885,7 +881,7 @@ var _OrganizationProfile = withClerk(
|
|
|
885
881
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
886
882
|
};
|
|
887
883
|
const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children);
|
|
888
|
-
return /* @__PURE__ */
|
|
884
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
889
885
|
ClerkHostRenderer,
|
|
890
886
|
{
|
|
891
887
|
component,
|
|
@@ -895,7 +891,7 @@ var _OrganizationProfile = withClerk(
|
|
|
895
891
|
props: { ...props, customPages },
|
|
896
892
|
rootProps: rendererRootProps
|
|
897
893
|
},
|
|
898
|
-
/* @__PURE__ */
|
|
894
|
+
/* @__PURE__ */ import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals })
|
|
899
895
|
));
|
|
900
896
|
},
|
|
901
897
|
{ component: "OrganizationProfile", renderWhileLoading: true }
|
|
@@ -911,7 +907,7 @@ var CreateOrganization = withClerk(
|
|
|
911
907
|
const rendererRootProps = {
|
|
912
908
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
913
909
|
};
|
|
914
|
-
return /* @__PURE__ */
|
|
910
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
915
911
|
ClerkHostRenderer,
|
|
916
912
|
{
|
|
917
913
|
component,
|
|
@@ -925,7 +921,7 @@ var CreateOrganization = withClerk(
|
|
|
925
921
|
},
|
|
926
922
|
{ component: "CreateOrganization", renderWhileLoading: true }
|
|
927
923
|
);
|
|
928
|
-
var OrganizationSwitcherContext = (0,
|
|
924
|
+
var OrganizationSwitcherContext = (0, import_react13.createContext)({
|
|
929
925
|
mount: () => {
|
|
930
926
|
},
|
|
931
927
|
unmount: () => {
|
|
@@ -959,20 +955,20 @@ var _OrganizationSwitcher = withClerk(
|
|
|
959
955
|
component
|
|
960
956
|
};
|
|
961
957
|
clerk.__experimental_prefetchOrganizationSwitcher();
|
|
962
|
-
return /* @__PURE__ */
|
|
958
|
+
return /* @__PURE__ */ import_react13.default.createElement(OrganizationSwitcherContext.Provider, { value: passableProps }, /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
963
959
|
ClerkHostRenderer,
|
|
964
960
|
{
|
|
965
961
|
...passableProps,
|
|
966
962
|
hideRootHtmlElement: !!props.__experimental_asProvider
|
|
967
963
|
},
|
|
968
964
|
props.__experimental_asProvider ? sanitizedChildren : null,
|
|
969
|
-
/* @__PURE__ */
|
|
965
|
+
/* @__PURE__ */ import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals })
|
|
970
966
|
)));
|
|
971
967
|
},
|
|
972
968
|
{ component: "OrganizationSwitcher", renderWhileLoading: true }
|
|
973
969
|
);
|
|
974
970
|
function OrganizationSwitcherOutlet(outletProps) {
|
|
975
|
-
const providerProps = (0,
|
|
971
|
+
const providerProps = (0, import_react13.useContext)(OrganizationSwitcherContext);
|
|
976
972
|
const portalProps = {
|
|
977
973
|
...providerProps,
|
|
978
974
|
props: {
|
|
@@ -980,7 +976,7 @@ function OrganizationSwitcherOutlet(outletProps) {
|
|
|
980
976
|
...outletProps
|
|
981
977
|
}
|
|
982
978
|
};
|
|
983
|
-
return /* @__PURE__ */
|
|
979
|
+
return /* @__PURE__ */ import_react13.default.createElement(ClerkHostRenderer, { ...portalProps });
|
|
984
980
|
}
|
|
985
981
|
var OrganizationSwitcher = Object.assign(_OrganizationSwitcher, {
|
|
986
982
|
OrganizationProfilePage,
|
|
@@ -994,7 +990,7 @@ var OrganizationList = withClerk(
|
|
|
994
990
|
const rendererRootProps = {
|
|
995
991
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
996
992
|
};
|
|
997
|
-
return /* @__PURE__ */
|
|
993
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
998
994
|
ClerkHostRenderer,
|
|
999
995
|
{
|
|
1000
996
|
component,
|
|
@@ -1015,7 +1011,7 @@ var GoogleOneTap = withClerk(
|
|
|
1015
1011
|
const rendererRootProps = {
|
|
1016
1012
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1017
1013
|
};
|
|
1018
|
-
return /* @__PURE__ */
|
|
1014
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1019
1015
|
ClerkHostRenderer,
|
|
1020
1016
|
{
|
|
1021
1017
|
component,
|
|
@@ -1036,7 +1032,7 @@ var Waitlist = withClerk(
|
|
|
1036
1032
|
const rendererRootProps = {
|
|
1037
1033
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1038
1034
|
};
|
|
1039
|
-
return /* @__PURE__ */
|
|
1035
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1040
1036
|
ClerkHostRenderer,
|
|
1041
1037
|
{
|
|
1042
1038
|
component,
|
|
@@ -1060,7 +1056,7 @@ var PricingTable = withClerk(
|
|
|
1060
1056
|
const rendererRootProps = {
|
|
1061
1057
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1062
1058
|
};
|
|
1063
|
-
return /* @__PURE__ */
|
|
1059
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1064
1060
|
ClerkHostRenderer,
|
|
1065
1061
|
{
|
|
1066
1062
|
component,
|
|
@@ -1081,7 +1077,7 @@ var APIKeys = withClerk(
|
|
|
1081
1077
|
const rendererRootProps = {
|
|
1082
1078
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1083
1079
|
};
|
|
1084
|
-
return /* @__PURE__ */
|
|
1080
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1085
1081
|
ClerkHostRenderer,
|
|
1086
1082
|
{
|
|
1087
1083
|
component,
|
|
@@ -1102,7 +1098,7 @@ var UserAvatar = withClerk(
|
|
|
1102
1098
|
const rendererRootProps = {
|
|
1103
1099
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1104
1100
|
};
|
|
1105
|
-
return /* @__PURE__ */
|
|
1101
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1106
1102
|
ClerkHostRenderer,
|
|
1107
1103
|
{
|
|
1108
1104
|
component,
|
|
@@ -1123,7 +1119,7 @@ var TaskChooseOrganization = withClerk(
|
|
|
1123
1119
|
const rendererRootProps = {
|
|
1124
1120
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1125
1121
|
};
|
|
1126
|
-
return /* @__PURE__ */
|
|
1122
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1127
1123
|
ClerkHostRenderer,
|
|
1128
1124
|
{
|
|
1129
1125
|
component,
|
|
@@ -1144,7 +1140,7 @@ var TaskResetPassword = withClerk(
|
|
|
1144
1140
|
const rendererRootProps = {
|
|
1145
1141
|
...shouldShowFallback && fallback && { style: { display: "none" } }
|
|
1146
1142
|
};
|
|
1147
|
-
return /* @__PURE__ */
|
|
1143
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react13.default.createElement(
|
|
1148
1144
|
ClerkHostRenderer,
|
|
1149
1145
|
{
|
|
1150
1146
|
component,
|
|
@@ -1161,19 +1157,19 @@ var TaskResetPassword = withClerk(
|
|
|
1161
1157
|
|
|
1162
1158
|
// src/components/controlComponents.tsx
|
|
1163
1159
|
var import_deprecated = require("@clerk/shared/deprecated");
|
|
1164
|
-
var
|
|
1160
|
+
var import_react20 = __toESM(require("react"));
|
|
1165
1161
|
|
|
1166
1162
|
// src/contexts/SessionContext.tsx
|
|
1167
|
-
var
|
|
1163
|
+
var import_react14 = require("@clerk/shared/react");
|
|
1168
1164
|
|
|
1169
1165
|
// src/hooks/useAuth.ts
|
|
1170
1166
|
var import_authorization = require("@clerk/shared/authorization");
|
|
1171
1167
|
var import_telemetry = require("@clerk/shared/telemetry");
|
|
1172
|
-
var
|
|
1168
|
+
var import_react16 = require("react");
|
|
1173
1169
|
|
|
1174
1170
|
// src/contexts/AuthContext.ts
|
|
1175
|
-
var
|
|
1176
|
-
var [AuthContext, useAuthContext] = (0,
|
|
1171
|
+
var import_react15 = require("@clerk/shared/react");
|
|
1172
|
+
var [AuthContext, useAuthContext] = (0, import_react15.createContextAndHook)("AuthContext");
|
|
1177
1173
|
|
|
1178
1174
|
// src/hooks/utils.ts
|
|
1179
1175
|
var clerkLoaded = (isomorphicClerk) => {
|
|
@@ -1215,8 +1211,8 @@ var useAuth = (initialAuthStateOrOptions = {}) => {
|
|
|
1215
1211
|
authContext = initialAuthState != null ? initialAuthState : {};
|
|
1216
1212
|
}
|
|
1217
1213
|
const isomorphicClerk = useIsomorphicClerkContext();
|
|
1218
|
-
const getToken = (0,
|
|
1219
|
-
const signOut = (0,
|
|
1214
|
+
const getToken = (0, import_react16.useCallback)(createGetToken(isomorphicClerk), [isomorphicClerk]);
|
|
1215
|
+
const signOut = (0, import_react16.useCallback)(createSignOut(isomorphicClerk), [isomorphicClerk]);
|
|
1220
1216
|
(_a = isomorphicClerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry.eventMethodCalled)("useAuth", { treatPendingAsSignedOut }));
|
|
1221
1217
|
return useDerivedAuth(
|
|
1222
1218
|
{
|
|
@@ -1231,7 +1227,7 @@ var useAuth = (initialAuthStateOrOptions = {}) => {
|
|
|
1231
1227
|
};
|
|
1232
1228
|
function useDerivedAuth(authObject, { treatPendingAsSignedOut = true } = {}) {
|
|
1233
1229
|
const { userId, orgId, orgRole, has, signOut, getToken, orgPermissions, factorVerificationAge, sessionClaims } = authObject != null ? authObject : {};
|
|
1234
|
-
const derivedHas = (0,
|
|
1230
|
+
const derivedHas = (0, import_react16.useCallback)(
|
|
1235
1231
|
(params) => {
|
|
1236
1232
|
if (has) {
|
|
1237
1233
|
return has(params);
|
|
@@ -1266,10 +1262,10 @@ function useDerivedAuth(authObject, { treatPendingAsSignedOut = true } = {}) {
|
|
|
1266
1262
|
}
|
|
1267
1263
|
|
|
1268
1264
|
// src/hooks/useEmailLink.ts
|
|
1269
|
-
var
|
|
1265
|
+
var import_react17 = __toESM(require("react"));
|
|
1270
1266
|
function useEmailLink(resource) {
|
|
1271
|
-
const { startEmailLinkFlow, cancelEmailLinkFlow } =
|
|
1272
|
-
|
|
1267
|
+
const { startEmailLinkFlow, cancelEmailLinkFlow } = import_react17.default.useMemo(() => resource.createEmailLinkFlow(), [resource]);
|
|
1268
|
+
import_react17.default.useEffect(() => {
|
|
1273
1269
|
return cancelEmailLinkFlow;
|
|
1274
1270
|
}, []);
|
|
1275
1271
|
return {
|
|
@@ -1280,7 +1276,7 @@ function useEmailLink(resource) {
|
|
|
1280
1276
|
|
|
1281
1277
|
// src/hooks/useClerkSignal.ts
|
|
1282
1278
|
var import_telemetry2 = require("@clerk/shared/telemetry");
|
|
1283
|
-
var
|
|
1279
|
+
var import_react18 = require("react");
|
|
1284
1280
|
function useClerkSignal(signal) {
|
|
1285
1281
|
var _a, _b;
|
|
1286
1282
|
useAssertWrappedByClerkProvider("useClerkSignal");
|
|
@@ -1295,7 +1291,7 @@ function useClerkSignal(signal) {
|
|
|
1295
1291
|
default:
|
|
1296
1292
|
break;
|
|
1297
1293
|
}
|
|
1298
|
-
const subscribe = (0,
|
|
1294
|
+
const subscribe = (0, import_react18.useCallback)(
|
|
1299
1295
|
(callback) => {
|
|
1300
1296
|
if (!clerk.loaded) {
|
|
1301
1297
|
return () => {
|
|
@@ -1317,7 +1313,7 @@ function useClerkSignal(signal) {
|
|
|
1317
1313
|
},
|
|
1318
1314
|
[clerk, clerk.loaded, clerk.__internal_state]
|
|
1319
1315
|
);
|
|
1320
|
-
const getSnapshot = (0,
|
|
1316
|
+
const getSnapshot = (0, import_react18.useCallback)(() => {
|
|
1321
1317
|
switch (signal) {
|
|
1322
1318
|
case "signIn":
|
|
1323
1319
|
return clerk.__internal_state.signInSignal();
|
|
@@ -1327,7 +1323,7 @@ function useClerkSignal(signal) {
|
|
|
1327
1323
|
throw new Error(`Unknown signal: ${signal}`);
|
|
1328
1324
|
}
|
|
1329
1325
|
}, [clerk.__internal_state]);
|
|
1330
|
-
const value = (0,
|
|
1326
|
+
const value = (0, import_react18.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
1331
1327
|
return value;
|
|
1332
1328
|
}
|
|
1333
1329
|
function useSignIn() {
|
|
@@ -1338,7 +1334,7 @@ function useSignUp() {
|
|
|
1338
1334
|
}
|
|
1339
1335
|
|
|
1340
1336
|
// src/hooks/index.ts
|
|
1341
|
-
var
|
|
1337
|
+
var import_react19 = require("@clerk/shared/react");
|
|
1342
1338
|
|
|
1343
1339
|
// src/components/controlComponents.tsx
|
|
1344
1340
|
var SignedIn = ({ children, treatPendingAsSignedOut }) => {
|
|
@@ -1418,7 +1414,7 @@ var RedirectToSignIn = withClerk(({ clerk, ...props }) => {
|
|
|
1418
1414
|
var _a, _b;
|
|
1419
1415
|
const { client, session } = clerk;
|
|
1420
1416
|
const hasSignedInSessions = ((_b = (_a = client.signedInSessions) == null ? void 0 : _a.length) != null ? _b : 0) > 0;
|
|
1421
|
-
|
|
1417
|
+
import_react20.default.useEffect(() => {
|
|
1422
1418
|
if (session === null && hasSignedInSessions) {
|
|
1423
1419
|
void clerk.redirectToAfterSignOut();
|
|
1424
1420
|
} else {
|
|
@@ -1428,33 +1424,33 @@ var RedirectToSignIn = withClerk(({ clerk, ...props }) => {
|
|
|
1428
1424
|
return null;
|
|
1429
1425
|
}, "RedirectToSignIn");
|
|
1430
1426
|
var RedirectToSignUp = withClerk(({ clerk, ...props }) => {
|
|
1431
|
-
|
|
1427
|
+
import_react20.default.useEffect(() => {
|
|
1432
1428
|
void clerk.redirectToSignUp(props);
|
|
1433
1429
|
}, []);
|
|
1434
1430
|
return null;
|
|
1435
1431
|
}, "RedirectToSignUp");
|
|
1436
1432
|
var RedirectToTasks = withClerk(({ clerk, ...props }) => {
|
|
1437
|
-
|
|
1433
|
+
import_react20.default.useEffect(() => {
|
|
1438
1434
|
void clerk.redirectToTasks(props);
|
|
1439
1435
|
}, []);
|
|
1440
1436
|
return null;
|
|
1441
1437
|
}, "RedirectToTasks");
|
|
1442
1438
|
var RedirectToUserProfile = withClerk(({ clerk }) => {
|
|
1443
|
-
|
|
1439
|
+
import_react20.default.useEffect(() => {
|
|
1444
1440
|
(0, import_deprecated.deprecated)("RedirectToUserProfile", "Use the `redirectToUserProfile()` method instead.");
|
|
1445
1441
|
void clerk.redirectToUserProfile();
|
|
1446
1442
|
}, []);
|
|
1447
1443
|
return null;
|
|
1448
1444
|
}, "RedirectToUserProfile");
|
|
1449
1445
|
var RedirectToOrganizationProfile = withClerk(({ clerk }) => {
|
|
1450
|
-
|
|
1446
|
+
import_react20.default.useEffect(() => {
|
|
1451
1447
|
(0, import_deprecated.deprecated)("RedirectToOrganizationProfile", "Use the `redirectToOrganizationProfile()` method instead.");
|
|
1452
1448
|
void clerk.redirectToOrganizationProfile();
|
|
1453
1449
|
}, []);
|
|
1454
1450
|
return null;
|
|
1455
1451
|
}, "RedirectToOrganizationProfile");
|
|
1456
1452
|
var RedirectToCreateOrganization = withClerk(({ clerk }) => {
|
|
1457
|
-
|
|
1453
|
+
import_react20.default.useEffect(() => {
|
|
1458
1454
|
(0, import_deprecated.deprecated)("RedirectToCreateOrganization", "Use the `redirectToCreateOrganization()` method instead.");
|
|
1459
1455
|
void clerk.redirectToCreateOrganization();
|
|
1460
1456
|
}, []);
|
|
@@ -1462,7 +1458,7 @@ var RedirectToCreateOrganization = withClerk(({ clerk }) => {
|
|
|
1462
1458
|
}, "RedirectToCreateOrganization");
|
|
1463
1459
|
var AuthenticateWithRedirectCallback = withClerk(
|
|
1464
1460
|
({ clerk, ...handleRedirectCallbackParams }) => {
|
|
1465
|
-
|
|
1461
|
+
import_react20.default.useEffect(() => {
|
|
1466
1462
|
void clerk.handleRedirectCallback(handleRedirectCallbackParams);
|
|
1467
1463
|
}, []);
|
|
1468
1464
|
return null;
|
|
@@ -1471,7 +1467,7 @@ var AuthenticateWithRedirectCallback = withClerk(
|
|
|
1471
1467
|
);
|
|
1472
1468
|
|
|
1473
1469
|
// src/components/SignInButton.tsx
|
|
1474
|
-
var
|
|
1470
|
+
var import_react21 = __toESM(require("react"));
|
|
1475
1471
|
var SignInButton = withClerk(
|
|
1476
1472
|
({ clerk, children, ...props }) => {
|
|
1477
1473
|
const {
|
|
@@ -1513,13 +1509,13 @@ var SignInButton = withClerk(
|
|
|
1513
1509
|
return clickHandler();
|
|
1514
1510
|
};
|
|
1515
1511
|
const childProps = { ...rest, onClick: wrappedChildClickHandler };
|
|
1516
|
-
return
|
|
1512
|
+
return import_react21.default.cloneElement(child, childProps);
|
|
1517
1513
|
},
|
|
1518
1514
|
{ component: "SignInButton", renderWhileLoading: true }
|
|
1519
1515
|
);
|
|
1520
1516
|
|
|
1521
1517
|
// src/components/SignInWithMetamaskButton.tsx
|
|
1522
|
-
var
|
|
1518
|
+
var import_react22 = __toESM(require("react"));
|
|
1523
1519
|
var SignInWithMetamaskButton = withClerk(
|
|
1524
1520
|
({ clerk, children, ...props }) => {
|
|
1525
1521
|
const { redirectUrl, ...rest } = props;
|
|
@@ -1536,13 +1532,13 @@ var SignInWithMetamaskButton = withClerk(
|
|
|
1536
1532
|
return clickHandler();
|
|
1537
1533
|
};
|
|
1538
1534
|
const childProps = { ...rest, onClick: wrappedChildClickHandler };
|
|
1539
|
-
return
|
|
1535
|
+
return import_react22.default.cloneElement(child, childProps);
|
|
1540
1536
|
},
|
|
1541
1537
|
{ component: "SignInWithMetamask", renderWhileLoading: true }
|
|
1542
1538
|
);
|
|
1543
1539
|
|
|
1544
1540
|
// src/components/SignOutButton.tsx
|
|
1545
|
-
var
|
|
1541
|
+
var import_react23 = __toESM(require("react"));
|
|
1546
1542
|
var SignOutButton = withClerk(
|
|
1547
1543
|
({ clerk, children, ...props }) => {
|
|
1548
1544
|
const { redirectUrl = "/", signOutOptions, ...rest } = props;
|
|
@@ -1554,13 +1550,13 @@ var SignOutButton = withClerk(
|
|
|
1554
1550
|
return clickHandler();
|
|
1555
1551
|
};
|
|
1556
1552
|
const childProps = { ...rest, onClick: wrappedChildClickHandler };
|
|
1557
|
-
return
|
|
1553
|
+
return import_react23.default.cloneElement(child, childProps);
|
|
1558
1554
|
},
|
|
1559
1555
|
{ component: "SignOutButton", renderWhileLoading: true }
|
|
1560
1556
|
);
|
|
1561
1557
|
|
|
1562
1558
|
// src/components/SignUpButton.tsx
|
|
1563
|
-
var
|
|
1559
|
+
var import_react24 = __toESM(require("react"));
|
|
1564
1560
|
var SignUpButton = withClerk(
|
|
1565
1561
|
({ clerk, children, ...props }) => {
|
|
1566
1562
|
const {
|
|
@@ -1604,18 +1600,18 @@ var SignUpButton = withClerk(
|
|
|
1604
1600
|
return clickHandler();
|
|
1605
1601
|
};
|
|
1606
1602
|
const childProps = { ...rest, onClick: wrappedChildClickHandler };
|
|
1607
|
-
return
|
|
1603
|
+
return import_react24.default.cloneElement(child, childProps);
|
|
1608
1604
|
},
|
|
1609
1605
|
{ component: "SignUpButton", renderWhileLoading: true }
|
|
1610
1606
|
);
|
|
1611
1607
|
|
|
1612
1608
|
// src/contexts/ClerkProvider.tsx
|
|
1613
|
-
var
|
|
1609
|
+
var import_react27 = __toESM(require("react"));
|
|
1614
1610
|
|
|
1615
1611
|
// src/contexts/ClerkContextProvider.tsx
|
|
1616
1612
|
var import_deriveState = require("@clerk/shared/deriveState");
|
|
1617
|
-
var
|
|
1618
|
-
var
|
|
1613
|
+
var import_react25 = require("@clerk/shared/react");
|
|
1614
|
+
var import_react26 = __toESM(require("react"));
|
|
1619
1615
|
|
|
1620
1616
|
// src/isomorphicClerk.ts
|
|
1621
1617
|
var import_browser2 = require("@clerk/shared/browser");
|
|
@@ -1972,7 +1968,7 @@ if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") {
|
|
|
1972
1968
|
}
|
|
1973
1969
|
var SDK_METADATA = {
|
|
1974
1970
|
name: "@clerk/react",
|
|
1975
|
-
version: "6.0.0-snapshot.
|
|
1971
|
+
version: "6.0.0-snapshot.v20251216175437",
|
|
1976
1972
|
environment: process.env.NODE_ENV
|
|
1977
1973
|
};
|
|
1978
1974
|
var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn;
|
|
@@ -3279,24 +3275,24 @@ var IsomorphicClerk = _IsomorphicClerk;
|
|
|
3279
3275
|
function ClerkContextProvider(props) {
|
|
3280
3276
|
const { isomorphicClerkOptions, initialState, children } = props;
|
|
3281
3277
|
const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions);
|
|
3282
|
-
const [state, setState] =
|
|
3278
|
+
const [state, setState] = import_react26.default.useState({
|
|
3283
3279
|
client: clerk.client,
|
|
3284
3280
|
session: clerk.session,
|
|
3285
3281
|
user: clerk.user,
|
|
3286
3282
|
organization: clerk.organization
|
|
3287
3283
|
});
|
|
3288
|
-
|
|
3284
|
+
import_react26.default.useEffect(() => {
|
|
3289
3285
|
return clerk.addListener((e) => setState({ ...e }));
|
|
3290
3286
|
}, []);
|
|
3291
3287
|
const derivedState = (0, import_deriveState.deriveState)(clerk.loaded, state, initialState);
|
|
3292
|
-
const clerkCtx =
|
|
3288
|
+
const clerkCtx = import_react26.default.useMemo(
|
|
3293
3289
|
() => ({ value: clerk }),
|
|
3294
3290
|
[
|
|
3295
3291
|
// Only update the clerk reference on status change
|
|
3296
3292
|
clerkStatus
|
|
3297
3293
|
]
|
|
3298
3294
|
);
|
|
3299
|
-
const clientCtx =
|
|
3295
|
+
const clientCtx = import_react26.default.useMemo(() => ({ value: state.client }), [state.client]);
|
|
3300
3296
|
const {
|
|
3301
3297
|
sessionId,
|
|
3302
3298
|
sessionStatus,
|
|
@@ -3312,7 +3308,7 @@ function ClerkContextProvider(props) {
|
|
|
3312
3308
|
orgPermissions,
|
|
3313
3309
|
factorVerificationAge
|
|
3314
3310
|
} = derivedState;
|
|
3315
|
-
const authCtx =
|
|
3311
|
+
const authCtx = import_react26.default.useMemo(() => {
|
|
3316
3312
|
const value = {
|
|
3317
3313
|
sessionId,
|
|
3318
3314
|
sessionStatus,
|
|
@@ -3327,9 +3323,9 @@ function ClerkContextProvider(props) {
|
|
|
3327
3323
|
};
|
|
3328
3324
|
return { value };
|
|
3329
3325
|
}, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims == null ? void 0 : sessionClaims.__raw]);
|
|
3330
|
-
const sessionCtx =
|
|
3331
|
-
const userCtx =
|
|
3332
|
-
const organizationCtx =
|
|
3326
|
+
const sessionCtx = import_react26.default.useMemo(() => ({ value: session }), [sessionId, session]);
|
|
3327
|
+
const userCtx = import_react26.default.useMemo(() => ({ value: user }), [userId, user]);
|
|
3328
|
+
const organizationCtx = import_react26.default.useMemo(() => {
|
|
3333
3329
|
const value = {
|
|
3334
3330
|
organization
|
|
3335
3331
|
};
|
|
@@ -3337,8 +3333,8 @@ function ClerkContextProvider(props) {
|
|
|
3337
3333
|
}, [orgId, organization]);
|
|
3338
3334
|
return (
|
|
3339
3335
|
// @ts-expect-error value passed is of type IsomorphicClerk where the context expects LoadedClerk
|
|
3340
|
-
/* @__PURE__ */
|
|
3341
|
-
|
|
3336
|
+
/* @__PURE__ */ import_react26.default.createElement(IsomorphicClerkContext.Provider, { value: clerkCtx }, /* @__PURE__ */ import_react26.default.createElement(import_react25.ClientContext.Provider, { value: clientCtx }, /* @__PURE__ */ import_react26.default.createElement(import_react25.SessionContext.Provider, { value: sessionCtx }, /* @__PURE__ */ import_react26.default.createElement(import_react25.OrganizationProvider, { ...organizationCtx.value }, /* @__PURE__ */ import_react26.default.createElement(AuthContext.Provider, { value: authCtx }, /* @__PURE__ */ import_react26.default.createElement(import_react25.UserContext.Provider, { value: userCtx }, /* @__PURE__ */ import_react26.default.createElement(
|
|
3337
|
+
import_react25.__experimental_CheckoutProvider,
|
|
3342
3338
|
{
|
|
3343
3339
|
value: void 0
|
|
3344
3340
|
},
|
|
@@ -3347,15 +3343,15 @@ function ClerkContextProvider(props) {
|
|
|
3347
3343
|
);
|
|
3348
3344
|
}
|
|
3349
3345
|
var useLoadedIsomorphicClerk = (options) => {
|
|
3350
|
-
const isomorphicClerkRef =
|
|
3351
|
-
const [clerkStatus, setClerkStatus] =
|
|
3352
|
-
|
|
3346
|
+
const isomorphicClerkRef = import_react26.default.useRef(IsomorphicClerk.getOrCreateInstance(options));
|
|
3347
|
+
const [clerkStatus, setClerkStatus] = import_react26.default.useState(isomorphicClerkRef.current.status);
|
|
3348
|
+
import_react26.default.useEffect(() => {
|
|
3353
3349
|
void isomorphicClerkRef.current.__internal_updateProps({ appearance: options.appearance });
|
|
3354
3350
|
}, [options.appearance]);
|
|
3355
|
-
|
|
3351
|
+
import_react26.default.useEffect(() => {
|
|
3356
3352
|
void isomorphicClerkRef.current.__internal_updateProps({ options });
|
|
3357
3353
|
}, [options.localization]);
|
|
3358
|
-
|
|
3354
|
+
import_react26.default.useEffect(() => {
|
|
3359
3355
|
isomorphicClerkRef.current.on("status", setClerkStatus);
|
|
3360
3356
|
return () => {
|
|
3361
3357
|
if (isomorphicClerkRef.current) {
|
|
@@ -3371,7 +3367,7 @@ var useLoadedIsomorphicClerk = (options) => {
|
|
|
3371
3367
|
function ClerkProviderBase(props) {
|
|
3372
3368
|
const { initialState, children, ...restIsomorphicClerkOptions } = props;
|
|
3373
3369
|
const isomorphicClerkOptions = restIsomorphicClerkOptions;
|
|
3374
|
-
return /* @__PURE__ */
|
|
3370
|
+
return /* @__PURE__ */ import_react27.default.createElement(
|
|
3375
3371
|
ClerkContextProvider,
|
|
3376
3372
|
{
|
|
3377
3373
|
initialState,
|
|
@@ -3383,9 +3379,6 @@ function ClerkProviderBase(props) {
|
|
|
3383
3379
|
var ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, "ClerkProvider", multipleClerkProvidersError);
|
|
3384
3380
|
ClerkProvider.displayName = "ClerkProvider";
|
|
3385
3381
|
|
|
3386
|
-
// src/contexts/index.ts
|
|
3387
|
-
var import_react29 = require("@clerk/shared/react");
|
|
3388
|
-
|
|
3389
3382
|
// src/index.ts
|
|
3390
3383
|
setErrorThrowerOptions({ packageName: "@clerk/react" });
|
|
3391
3384
|
(0, import_loadClerkJsScript2.setClerkJsLoadingErrorPackageName)("@clerk/react");
|
|
@@ -3421,7 +3414,6 @@ setErrorThrowerOptions({ packageName: "@clerk/react" });
|
|
|
3421
3414
|
SignedOut,
|
|
3422
3415
|
TaskChooseOrganization,
|
|
3423
3416
|
TaskResetPassword,
|
|
3424
|
-
UNSAFE_PortalProvider,
|
|
3425
3417
|
UserAvatar,
|
|
3426
3418
|
UserButton,
|
|
3427
3419
|
UserProfile,
|