@clerk/vue 2.0.0-snapshot.v20251218183643 → 2.0.0-snapshot.v20260105214115
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/components/controlComponents.d.ts +28 -5
- package/dist/components/index.d.ts +1 -1
- package/dist/errors/errorThrower.d.ts +1 -1
- package/dist/experimental.js +4 -2
- package/dist/experimental.js.map +1 -1
- package/dist/index.js +22 -33
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { HandleOAuthCallbackParams, PendingSessionOptions,
|
|
2
|
-
export declare const SignedIn: import("vue").DefineSetupFnComponent<PendingSessionOptions, {}, {}, PendingSessionOptions & {}, import("vue").PublicProps>;
|
|
3
|
-
export declare const SignedOut: import("vue").DefineSetupFnComponent<PendingSessionOptions, {}, {}, PendingSessionOptions & {}, import("vue").PublicProps>;
|
|
1
|
+
import type { HandleOAuthCallbackParams, PendingSessionOptions, RedirectOptions, ShowWhenCondition } from '@clerk/shared/types';
|
|
4
2
|
export declare const ClerkLoaded: import("vue").DefineSetupFnComponent<Record<string, any>, {}, {}, Record<string, any> & {}, import("vue").PublicProps>;
|
|
5
3
|
export declare const ClerkLoading: import("vue").DefineSetupFnComponent<Record<string, any>, {}, {}, Record<string, any> & {}, import("vue").PublicProps>;
|
|
6
4
|
export declare const RedirectToSignIn: import("vue").DefineSetupFnComponent<RedirectOptions, {}, {}, import("@clerk/shared/types").SignInForceRedirectUrl & import("@clerk/shared/types").SignInFallbackRedirectUrl & import("@clerk/shared/types").SignUpForceRedirectUrl & import("@clerk/shared/types").SignUpFallbackRedirectUrl & import("@clerk/shared/types").RedirectUrlProp & {}, import("vue").PublicProps>;
|
|
@@ -29,5 +27,30 @@ export declare const AuthenticateWithRedirectCallback: import("vue").DefineSetup
|
|
|
29
27
|
verifyPhoneNumberUrl?: string | null;
|
|
30
28
|
reloadResource?: "signIn" | "signUp";
|
|
31
29
|
} & {}, import("vue").PublicProps>;
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Props for `<Show>` that control when content renders based on sign-in or authorization state.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
* @property fallback Optional content shown when the condition fails; can be provided via prop or `fallback` slot.
|
|
35
|
+
* @property when Condition controlling visibility; supports `"signed-in"`, `"signed-out"`, authorization descriptors, or a predicate that receives the `has` helper.
|
|
36
|
+
* @property treatPendingAsSignedOut Inherited from `PendingSessionOptions`; treat pending sessions as signed out while loading.
|
|
37
|
+
* @example
|
|
38
|
+
* ```vue
|
|
39
|
+
* <Show :when="{ role: 'admin' }" fallback="Access denied">
|
|
40
|
+
* <AdminPanel />
|
|
41
|
+
* </Show>
|
|
42
|
+
*
|
|
43
|
+
* <Show :when="(has) => has({ permission: 'org:read' })">
|
|
44
|
+
* <template #fallback>Not authorized</template>
|
|
45
|
+
* <ProtectedFeature />
|
|
46
|
+
* </Show>
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export type ShowProps = PendingSessionOptions & {
|
|
50
|
+
fallback?: unknown;
|
|
51
|
+
when: ShowWhenCondition;
|
|
52
|
+
};
|
|
53
|
+
export declare const Show: import("vue").DefineSetupFnComponent<ShowProps, {}, {}, PendingSessionOptions & {
|
|
54
|
+
fallback?: unknown;
|
|
55
|
+
when: ShowWhenCondition;
|
|
56
|
+
} & {}, import("vue").PublicProps>;
|
|
@@ -11,7 +11,7 @@ export { OrganizationProfile } from './ui-components/OrganizationProfile';
|
|
|
11
11
|
export { OrganizationSwitcher } from './ui-components/OrganizationSwitcher';
|
|
12
12
|
export { default as UserAvatar } from './ui-components/UserAvatar.vue';
|
|
13
13
|
export { UserButton } from './ui-components/UserButton';
|
|
14
|
-
export { ClerkLoaded, ClerkLoading,
|
|
14
|
+
export { ClerkLoaded, ClerkLoading, Show, RedirectToSignIn, RedirectToSignUp, RedirectToUserProfile, RedirectToTasks, AuthenticateWithRedirectCallback, RedirectToCreateOrganization, RedirectToOrganizationProfile, } from './controlComponents';
|
|
15
15
|
export { default as SignInButton } from './SignInButton.vue';
|
|
16
16
|
export { default as SignUpButton } from './SignUpButton.vue';
|
|
17
17
|
export { default as SignOutButton } from './SignOutButton.vue';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ErrorThrowerOptions } from '@clerk/shared/error';
|
|
2
|
-
declare const errorThrower: import("@clerk/shared/error-
|
|
2
|
+
declare const errorThrower: import("@clerk/shared/error-CK2o3GxF")._;
|
|
3
3
|
export { errorThrower };
|
|
4
4
|
/**
|
|
5
5
|
* Overrides options of the internal errorThrower (eg setting packageName prefix).
|
package/dist/experimental.js
CHANGED
|
@@ -26,7 +26,9 @@ var _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
|
26
26
|
const slots = useSlots();
|
|
27
27
|
const attrs = useAttrs();
|
|
28
28
|
if (userId.value === null) {
|
|
29
|
-
throw new Error(
|
|
29
|
+
throw new Error(
|
|
30
|
+
'Ensure that `<SubscriptionDetailsButton />` is rendered inside a `<Show when="signed-in" />` component.'
|
|
31
|
+
);
|
|
30
32
|
}
|
|
31
33
|
if (orgId.value === null && props.for === "organization") {
|
|
32
34
|
throw new Error('Wrap `<SubscriptionDetailsButton for="organization" />` with a check for an active organization.');
|
|
@@ -90,7 +92,7 @@ var _sfc_main2 = /* @__PURE__ */ _defineComponent2({
|
|
|
90
92
|
const slots = useSlots2();
|
|
91
93
|
const attrs = useAttrs2();
|
|
92
94
|
if (userId.value === null) {
|
|
93
|
-
throw new Error(
|
|
95
|
+
throw new Error('Ensure that `<CheckoutButton />` is rendered inside a `<Show when="signed-in" />` component.');
|
|
94
96
|
}
|
|
95
97
|
if (orgId.value === null && props.for === "organization") {
|
|
96
98
|
throw new Error('Wrap `<CheckoutButton for="organization" />` with a check for an active organization.');
|
package/dist/experimental.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SubscriptionDetailsButton.vue","../src/components/CheckoutButton.vue","../src/components/PlanDetailsButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { __experimental_SubscriptionDetailsButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { useAuth } from '../composables/useAuth';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ntype SubscriptionDetailsButtonProps = Omit<__experimental_SubscriptionDetailsButtonProps, 'onSubscriptionCancel'>;\nconst props = defineProps<SubscriptionDetailsButtonProps>();\n\nconst clerk = useClerk();\nconst { userId, orgId } = useAuth();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\n// Authentication checks - similar to React implementation\nif (userId.value === null) {\n throw new Error('Ensure that `<SubscriptionDetailsButton />` is rendered inside a `<
|
|
1
|
+
{"version":3,"sources":["../src/components/SubscriptionDetailsButton.vue","../src/components/CheckoutButton.vue","../src/components/PlanDetailsButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { __experimental_SubscriptionDetailsButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { useAuth } from '../composables/useAuth';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ntype SubscriptionDetailsButtonProps = Omit<__experimental_SubscriptionDetailsButtonProps, 'onSubscriptionCancel'>;\nconst props = defineProps<SubscriptionDetailsButtonProps>();\n\nconst clerk = useClerk();\nconst { userId, orgId } = useAuth();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\n// Authentication checks - similar to React implementation\nif (userId.value === null) {\n throw new Error(\n 'Ensure that `<SubscriptionDetailsButton />` is rendered inside a `<Show when=\"signed-in\" />` component.',\n );\n}\n\nif (orgId.value === null && props.for === 'organization') {\n throw new Error('Wrap `<SubscriptionDetailsButton for=\"organization\" />` with a check for an active organization.');\n}\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Subscription details');\n return assertSingleChild(children, 'SubscriptionDetailsButton');\n}\n\nconst emit = defineEmits<{ (e: 'subscription-cancel'): void }>();\n\nfunction clickHandler() {\n if (!clerk.value) {\n return;\n }\n\n return clerk.value.__internal_openSubscriptionDetails({\n for: props.for,\n ...props.subscriptionDetailsProps,\n onSubscriptionCancel: () => emit('subscription-cancel'),\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { __experimental_CheckoutButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { useAuth } from '../composables/useAuth';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ntype CheckoutButtonProps = Omit<__experimental_CheckoutButtonProps, 'onSubscriptionComplete'>;\nconst props = defineProps<CheckoutButtonProps>();\n\nconst clerk = useClerk();\nconst { userId, orgId } = useAuth();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\n// Authentication checks - similar to React implementation\nif (userId.value === null) {\n throw new Error('Ensure that `<CheckoutButton />` is rendered inside a `<Show when=\"signed-in\" />` component.');\n}\n\nif (orgId.value === null && props.for === 'organization') {\n throw new Error('Wrap `<CheckoutButton for=\"organization\" />` with a check for an active organization.');\n}\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Checkout');\n return assertSingleChild(children, 'CheckoutButton');\n}\n\nconst emit = defineEmits<{ (e: 'subscription-complete'): void }>();\n\nfunction clickHandler() {\n if (!clerk.value) {\n return;\n }\n\n return clerk.value.__internal_openCheckout({\n planId: props.planId,\n planPeriod: props.planPeriod,\n for: props.for,\n newSubscriptionRedirectUrl: props.newSubscriptionRedirectUrl,\n ...props.checkoutProps,\n onSubscriptionComplete: () => emit('subscription-complete'),\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { __experimental_PlanDetailsButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\nconst props = defineProps<__experimental_PlanDetailsButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Plan details');\n return assertSingleChild(children, 'PlanDetailsButton');\n}\n\nfunction clickHandler() {\n if (!clerk.value) {\n return;\n }\n\n return clerk.value.__internal_openPlanDetails({\n plan: props.plan,\n planId: props.planId,\n initialPlanPeriod: props.initialPlanPeriod,\n ...props.planDetailsProps,\n } as __experimental_PlanDetailsButtonProps);\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":"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","names":["useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot"]}
|
package/dist/index.js
CHANGED
|
@@ -219,20 +219,6 @@ function updateClerkOptions(options) {
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
// src/components/controlComponents.ts
|
|
222
|
-
var SignedIn = defineComponent(({ treatPendingAsSignedOut }, { slots }) => {
|
|
223
|
-
const { userId } = useAuth({ treatPendingAsSignedOut });
|
|
224
|
-
return () => userId.value ? slots.default?.() : null;
|
|
225
|
-
});
|
|
226
|
-
Object.defineProperty(SignedIn, "props", {
|
|
227
|
-
value: ["treatPendingAsSignedOut"]
|
|
228
|
-
});
|
|
229
|
-
var SignedOut = defineComponent(({ treatPendingAsSignedOut }, { slots }) => {
|
|
230
|
-
const { userId } = useAuth({ treatPendingAsSignedOut });
|
|
231
|
-
return () => userId.value === null ? slots.default?.() : null;
|
|
232
|
-
});
|
|
233
|
-
Object.defineProperty(SignedOut, "props", {
|
|
234
|
-
value: ["treatPendingAsSignedOut"]
|
|
235
|
-
});
|
|
236
222
|
var ClerkLoaded = defineComponent((_, { slots }) => {
|
|
237
223
|
const clerk = useClerk();
|
|
238
224
|
return () => clerk.value?.loaded ? slots.default?.() : null;
|
|
@@ -304,32 +290,37 @@ var AuthenticateWithRedirectCallback = defineComponent((props) => {
|
|
|
304
290
|
Object.defineProperty(AuthenticateWithRedirectCallback, "props", {
|
|
305
291
|
value: ["transferable", "signInForceRedirectUrl", "signInFallbackRedirectUrl", "signUpForceRedirectUrl", "signUpFallbackRedirectUrl", "signInUrl", "signUpUrl", "firstFactorUrl", "secondFactorUrl", "resetPasswordUrl", "continueSignUpUrl", "verifyEmailAddressUrl", "verifyPhoneNumberUrl", "reloadResource"]
|
|
306
292
|
});
|
|
307
|
-
var
|
|
293
|
+
var Show = defineComponent((props, { slots }) => {
|
|
308
294
|
const { isLoaded, has, userId } = useAuth({ treatPendingAsSignedOut: props.treatPendingAsSignedOut });
|
|
309
295
|
return () => {
|
|
310
296
|
if (!isLoaded.value) {
|
|
311
297
|
return null;
|
|
312
298
|
}
|
|
299
|
+
const authorized = slots.default?.() ?? null;
|
|
300
|
+
const fallbackFromSlot = slots.fallback?.() ?? null;
|
|
301
|
+
const fallbackFromProp = props.fallback ?? null;
|
|
302
|
+
const unauthorized = fallbackFromSlot ?? fallbackFromProp ?? null;
|
|
303
|
+
if (props.when === "signed-out") {
|
|
304
|
+
return userId.value ? unauthorized : authorized;
|
|
305
|
+
}
|
|
313
306
|
if (!userId.value) {
|
|
314
|
-
return
|
|
307
|
+
return unauthorized;
|
|
315
308
|
}
|
|
316
|
-
if (
|
|
317
|
-
|
|
318
|
-
return slots.default?.();
|
|
319
|
-
}
|
|
320
|
-
return slots.fallback?.();
|
|
309
|
+
if (props.when === "signed-in") {
|
|
310
|
+
return authorized;
|
|
321
311
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
312
|
+
const hasValue = has.value;
|
|
313
|
+
if (!hasValue) {
|
|
314
|
+
return unauthorized;
|
|
315
|
+
}
|
|
316
|
+
if (typeof props.when === "function") {
|
|
317
|
+
return props.when(hasValue) ? authorized : unauthorized;
|
|
327
318
|
}
|
|
328
|
-
return
|
|
319
|
+
return hasValue(props.when) ? authorized : unauthorized;
|
|
329
320
|
};
|
|
330
321
|
});
|
|
331
|
-
Object.defineProperty(
|
|
332
|
-
value: ["
|
|
322
|
+
Object.defineProperty(Show, "props", {
|
|
323
|
+
value: ["treatPendingAsSignedOut", "fallback", "when"]
|
|
333
324
|
});
|
|
334
325
|
|
|
335
326
|
// src/components/ClerkHostRenderer.ts
|
|
@@ -1576,7 +1567,7 @@ import { loadClerkJsScript, loadClerkUiScript } from "@clerk/shared/loadClerkJsS
|
|
|
1576
1567
|
import { computed as computed12, ref as ref5, shallowRef, triggerRef } from "vue";
|
|
1577
1568
|
var SDK_METADATA = {
|
|
1578
1569
|
name: "@clerk/vue",
|
|
1579
|
-
version: "2.0.0-snapshot.
|
|
1570
|
+
version: "2.0.0-snapshot.v20260105214115",
|
|
1580
1571
|
environment: process.env.NODE_ENV
|
|
1581
1572
|
};
|
|
1582
1573
|
var clerkPlugin = {
|
|
@@ -1681,21 +1672,19 @@ export {
|
|
|
1681
1672
|
OrganizationProfile,
|
|
1682
1673
|
OrganizationSwitcher,
|
|
1683
1674
|
PricingTable_default as PricingTable,
|
|
1684
|
-
Protect,
|
|
1685
1675
|
RedirectToCreateOrganization,
|
|
1686
1676
|
RedirectToOrganizationProfile,
|
|
1687
1677
|
RedirectToSignIn,
|
|
1688
1678
|
RedirectToSignUp,
|
|
1689
1679
|
RedirectToTasks,
|
|
1690
1680
|
RedirectToUserProfile,
|
|
1681
|
+
Show,
|
|
1691
1682
|
SignIn_default as SignIn,
|
|
1692
1683
|
SignInButton_default as SignInButton,
|
|
1693
1684
|
SignInWithMetamaskButton_default as SignInWithMetamaskButton,
|
|
1694
1685
|
SignOutButton_default as SignOutButton,
|
|
1695
1686
|
SignUp_default as SignUp,
|
|
1696
1687
|
SignUpButton_default as SignUpButton,
|
|
1697
|
-
SignedIn,
|
|
1698
|
-
SignedOut,
|
|
1699
1688
|
UserAvatar_default as UserAvatar,
|
|
1700
1689
|
UserButton,
|
|
1701
1690
|
UserProfile,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/ClerkHostRenderer.ts","../src/components/controlComponents.ts","../src/utils/useClerkLoaded.ts","../src/composables/useUser.ts","../src/composables/useSession.ts","../src/composables/useSignIn.ts","../src/composables/useSignUp.ts","../src/composables/useSessionList.ts","../src/composables/useOrganization.ts","../src/utils/updateClerkOptions.ts","../src/components/ui-components/SignIn.vue","../src/components/ui-components/SignUp.vue","../src/components/ui-components/GoogleOneTap.vue","../src/components/ui-components/Waitlist.vue","../src/components/ui-components/CreateOrganization.vue","../src/components/ui-components/OrganizationList.vue","../src/components/ui-components/PricingTable.vue","../src/components/ui-components/APIKeys.vue","../src/components/ui-components/UserProfile/index.ts","../src/components/ui-components/UserProfile/UserProfile.vue","../src/utils/useCustomPages.ts","../src/components/ui-components/OrganizationProfile/index.ts","../src/components/ui-components/OrganizationProfile/OrganizationProfile.vue","../src/utils/componentValidation.ts","../src/utils/useCustomElementPortal.ts","../src/components/ui-components/OrganizationSwitcher/OrganizationSwitcher.vue","../src/components/ui-components/OrganizationSwitcher/index.ts","../src/components/ui-components/UserAvatar.vue","../src/components/ui-components/UserButton/index.ts","../src/components/ui-components/UserButton/UserButton.vue","../src/utils/useCustomMenuItems.ts","../src/components/SignInButton.vue","../src/components/SignUpButton.vue","../src/components/SignOutButton.vue","../src/components/SignInWithMetamaskButton.vue","../src/plugin.ts"],"sourcesContent":["import { setClerkJsLoadingErrorPackageName } from '@clerk/shared/loadClerkJsScript';\n\nimport { setErrorThrowerOptions } from './errors/errorThrower';\n\nexport * from './components';\nexport * from './composables';\n\nexport { clerkPlugin, type PluginOptions } from './plugin';\nexport { updateClerkOptions } from './utils';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJsLoadingErrorPackageName(PACKAGE_NAME);\n","import type { PropType } from 'vue';\nimport { defineComponent, h, onUnmounted, ref, watch, watchEffect } from 'vue';\n\nimport type { CustomPortalsRendererProps } from '../types';\nimport { ClerkLoaded } from './controlComponents';\n\ntype AnyObject = Record<string, any>;\n\nexport const CustomPortalsRenderer = defineComponent((props: CustomPortalsRendererProps) => {\n return () => [...(props?.customPagesPortals ?? []), ...(props?.customMenuItemsPortals ?? [])];\n});\n;Object.defineProperty(CustomPortalsRenderer, \"props\", {\n value: [\"customPagesPortals\",\"customMenuItemsPortals\"],\n});\n\n/**\n * Used to orchestrate mounting of Clerk components in a host Vue application.\n * Components are rendered into a specific DOM node using mount/unmount methods provided by the Clerk class.\n */\nexport const ClerkHostRenderer = defineComponent({\n props: {\n mount: {\n type: Function as PropType<(node: HTMLDivElement, props: AnyObject) => void>,\n required: false,\n },\n unmount: {\n type: Function as PropType<(node: HTMLDivElement) => void>,\n required: false,\n },\n open: {\n type: Function as PropType<(props: AnyObject) => void>,\n required: false,\n },\n close: {\n type: Function as PropType<() => void>,\n required: false,\n },\n updateProps: {\n type: Function as PropType<(props: { node: HTMLDivElement; props: AnyObject | undefined }) => void>,\n required: false,\n },\n props: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n },\n setup(props) {\n const portalRef = ref<HTMLDivElement | null>(null);\n let isPortalMounted = false;\n\n watchEffect(() => {\n // Skip if portal element isn't ready or component is already mounted\n if (!portalRef.value || isPortalMounted) {\n return;\n }\n\n if (props.mount) {\n props.mount(portalRef.value, props.props);\n }\n if (props.open) {\n props.open(props.props);\n }\n isPortalMounted = true;\n });\n\n watch(\n () => props.props,\n newProps => {\n if (isPortalMounted && props.updateProps && portalRef.value) {\n props.updateProps({ node: portalRef.value, props: newProps });\n }\n },\n { deep: true },\n );\n\n onUnmounted(() => {\n if (isPortalMounted && portalRef.value) {\n if (props.unmount) {\n props.unmount(portalRef.value);\n }\n if (props.close) {\n props.close();\n }\n }\n });\n\n return () => h(ClerkLoaded, () => h('div', { ref: portalRef }));\n },\n});\n","import { deprecated } from '@clerk/shared/deprecated';\nimport type {\n HandleOAuthCallbackParams,\n PendingSessionOptions,\n ProtectProps as _ProtectProps,\n RedirectOptions,\n} from '@clerk/shared/types';\nimport { defineComponent } from 'vue';\n\nimport { useAuth } from '../composables/useAuth';\nimport { useClerk } from '../composables/useClerk';\nimport { useClerkContext } from '../composables/useClerkContext';\nimport { useClerkLoaded } from '../utils/useClerkLoaded';\n\nexport const SignedIn = defineComponent<PendingSessionOptions>(({ treatPendingAsSignedOut }, { slots }) => {\n const { userId } = useAuth({ treatPendingAsSignedOut });\n\n return () => (userId.value ? slots.default?.() : null);\n});\n;Object.defineProperty(SignedIn, \"props\", {\n value: [\"treatPendingAsSignedOut\"],\n});\n\nexport const SignedOut = defineComponent<PendingSessionOptions>(({ treatPendingAsSignedOut }, { slots }) => {\n const { userId } = useAuth({ treatPendingAsSignedOut });\n\n return () => (userId.value === null ? slots.default?.() : null);\n});\n;Object.defineProperty(SignedOut, \"props\", {\n value: [\"treatPendingAsSignedOut\"],\n});\n\nexport const ClerkLoaded = defineComponent((_, { slots }) => {\n const clerk = useClerk();\n\n return () => (clerk.value?.loaded ? slots.default?.() : null);\n});\n\nexport const ClerkLoading = defineComponent((_, { slots }) => {\n const clerk = useClerk();\n\n return () => (!clerk.value?.loaded ? slots.default?.() : null);\n});\n\nexport const RedirectToSignIn = defineComponent((props: RedirectOptions) => {\n const { sessionCtx, clientCtx } = useClerkContext('RedirectToSignIn');\n\n useClerkLoaded(clerk => {\n const hasSignedInSessions = clientCtx.value?.signedInSessions && clientCtx.value.signedInSessions.length > 0;\n\n if (sessionCtx.value === null && hasSignedInSessions) {\n void clerk.redirectToAfterSignOut();\n } else {\n void clerk.redirectToSignIn(props);\n }\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToSignIn, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\nexport const RedirectToSignUp = defineComponent((props: RedirectOptions) => {\n useClerkLoaded(clerk => {\n void clerk.redirectToSignUp(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToSignUp, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\nexport const RedirectToTasks = defineComponent((props: RedirectOptions) => {\n useClerkLoaded(clerk => {\n void clerk.redirectToTasks(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToTasks, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\n/**\n * @deprecated Use [`redirectToUserProfile()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-user-profile) instead.\n */\nexport const RedirectToUserProfile = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToUserProfile', 'Use the `redirectToUserProfile()` method instead.');\n void clerk.redirectToUserProfile();\n });\n\n return () => null;\n});\n\n/**\n * @deprecated Use [`redirectToOrganizationProfile()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-organization-profile) instead.\n */\nexport const RedirectToOrganizationProfile = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToOrganizationProfile', 'Use the `redirectToOrganizationProfile()` method instead.');\n void clerk.redirectToOrganizationProfile();\n });\n\n return () => null;\n});\n\n/**\n * @deprecated Use [`redirectToCreateOrganization()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-create-organization) instead.\n */\nexport const RedirectToCreateOrganization = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToCreateOrganization', 'Use the `redirectToCreateOrganization()` method instead.');\n void clerk.redirectToCreateOrganization();\n });\n\n return () => null;\n});\n\nexport const AuthenticateWithRedirectCallback = defineComponent((props: HandleOAuthCallbackParams) => {\n useClerkLoaded(clerk => {\n void clerk.handleRedirectCallback(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(AuthenticateWithRedirectCallback, \"props\", {\n value: [\"transferable\",\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"signInUrl\",\"signUpUrl\",\"firstFactorUrl\",\"secondFactorUrl\",\"resetPasswordUrl\",\"continueSignUpUrl\",\"verifyEmailAddressUrl\",\"verifyPhoneNumberUrl\",\"reloadResource\"],\n});\n\nexport type ProtectProps = _ProtectProps & PendingSessionOptions;\n\nexport const Protect = defineComponent((props: ProtectProps, { slots }) => {\n const { isLoaded, has, userId } = useAuth({ treatPendingAsSignedOut: props.treatPendingAsSignedOut });\n\n return () => {\n /**\n * Avoid flickering children or fallback while clerk is loading sessionId or userId\n */\n if (!isLoaded.value) {\n return null;\n }\n\n /**\n * Fallback to UI provided by user or `null` if authorization checks failed\n */\n if (!userId.value) {\n return slots.fallback?.();\n }\n\n /**\n * Check against the results of `has` called inside the callback\n */\n if (typeof props.condition === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (props.condition(has.value!)) {\n return slots.default?.();\n }\n\n return slots.fallback?.();\n }\n\n if (props.role || props.permission || props.feature || props.plan) {\n if (has.value?.(props)) {\n return slots.default?.();\n }\n\n return slots.fallback?.();\n }\n\n /**\n * If neither of the authorization params are passed behave as the `<SignedIn/>`.\n * If fallback is present render that instead of rendering nothing.\n */\n return slots.default?.();\n };\n});\n;Object.defineProperty(Protect, \"props\", {\n value: [\"condition\",\"role\",\"permission\",\"feature\",\"plan\",\"treatPendingAsSignedOut\"],\n});\n","import type { LoadedClerk } from '@clerk/shared/types';\nimport { watch } from 'vue';\n\nimport { useClerk } from '../composables';\n\n/**\n * Executes a callback when Clerk is loaded.\n *\n * @param callback - Function to execute once Clerk is loaded\n * @example\n * ```ts\n * useClerkLoaded((clerk) => {\n * clerk.redirectToSignUp(props);\n * });\n * ```\n */\nexport const useClerkLoaded = (callback: (clerk: LoadedClerk) => void) => {\n const clerk = useClerk();\n\n watch(\n clerk,\n unwrappedClerk => {\n if (!unwrappedClerk?.loaded) {\n return;\n }\n\n callback(unwrappedClerk as LoadedClerk);\n },\n { immediate: true },\n );\n};\n","import type { UseUserReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseUser = () => ToComputedRefs<UseUserReturn>;\n\n/**\n * Returns the current user's [`User`](https://clerk.com/docs/reference/javascript/user/user) object along with loading states.\n *\n * @example\n * <script setup>\n * import { useUser } from '@clerk/vue'\n *\n * const { isLoaded, isSignedIn, user } = useUser()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"isSignedIn\">\n * Hello {{ user.fullName }}!\n * </div>\n *\n * <div v-else>\n * Not signed in\n * </div>\n * </template>\n */\nexport const useUser: UseUser = () => {\n const { userCtx } = useClerkContext('useUser');\n\n const result = computed<UseUserReturn>(() => {\n if (userCtx.value === undefined) {\n return { isLoaded: false, isSignedIn: undefined, user: undefined };\n }\n\n if (userCtx.value === null) {\n return { isLoaded: true, isSignedIn: false, user: null };\n }\n\n return { isLoaded: true, isSignedIn: true, user: userCtx.value };\n });\n\n return toComputedRefs(result);\n};\n","import type { UseSessionReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSession = () => ToComputedRefs<UseSessionReturn>;\n\n/**\n * Returns the current [`Session`](https://clerk.com/docs/reference/javascript/session) object which provides\n * information about the active session and methods to manage it.\n *\n * @example\n * <script setup>\n * import { useSession } from '@clerk/vue'\n *\n * const { isLoaded, session, isSignedIn } = useSession()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"!isSignedIn\">\n * <!-- Handle not signed in state -->\n * </div>\n *\n * <div v-else>\n * <p>This session has been active since {{ session.lastActiveAt.toLocaleString() }}</p>\n * </div>\n * </template>\n */\nexport const useSession: UseSession = () => {\n const { sessionCtx, clerk } = useClerkContext('useSession');\n\n const result = computed<UseSessionReturn>(() => {\n if (sessionCtx.value === undefined) {\n return { isLoaded: false, isSignedIn: undefined, session: undefined };\n }\n\n const isSignedOut = sessionCtx.value === null;\n if (isSignedOut) {\n return { isLoaded: true, isSignedIn: false, session: null };\n }\n\n return { isLoaded: true, isSignedIn: !!clerk.value?.isSignedIn, session: sessionCtx.value };\n });\n\n return toComputedRefs(result);\n};\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignInReturn } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSignIn = () => ToComputedRefs<UseSignInReturn>;\n\n/**\n * Returns the current [`SignIn`](https://clerk.com/docs/reference/javascript/sign-in) object which provides\n * methods and state for managing the sign-in flow.\n *\n * @example\n * <script setup>\n * import { useSignIn } from '@clerk/vue'\n *\n * const { isLoaded, signIn } = useSignIn()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * The current sign in attempt status is {{ signIn.status }}.\n * </div>\n * </template>\n */\nexport const useSignIn: UseSignIn = () => {\n const { clerk, clientCtx } = useClerkContext('useSignIn');\n\n const unwatch = watch(clerk, value => {\n if (value) {\n value.telemetry?.record(eventMethodCalled('useSignIn'));\n unwatch();\n }\n });\n\n const result = computed<UseSignInReturn>(() => {\n if (!clerk.value || !clientCtx.value) {\n return { isLoaded: false, signIn: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n signIn: clientCtx.value.signIn,\n setActive: clerk.value.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignUpReturn } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSignUp = () => ToComputedRefs<UseSignUpReturn>;\n\n/**\n * Returns the current [`SignUp`](https://clerk.com/docs/reference/javascript/sign-up) object which provides\n * methods and state for managing the sign-up flow.\n *\n * @example\n * <script setup>\n * import { useSignUp } from '@clerk/vue'\n *\n * const { isLoaded, signUp } = useSignUp()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * The current sign-up attempt status is {{ signUp.status }}.\n * </div>\n * </template>\n */\nexport const useSignUp: UseSignUp = () => {\n const { clerk, clientCtx } = useClerkContext('useSignUp');\n\n const unwatch = watch(clerk, value => {\n if (value) {\n value.telemetry?.record(eventMethodCalled('useSignUp'));\n unwatch();\n }\n });\n\n const result = computed<UseSignUpReturn>(() => {\n if (!clerk.value || !clientCtx.value) {\n return { isLoaded: false, signUp: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n signUp: clientCtx.value.signUp,\n setActive: clerk.value.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import type { UseSessionListReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSessionList = () => ToComputedRefs<UseSessionListReturn>;\n\n/**\n * Returns an array of [`Session`](https://clerk.com/docs/reference/javascript/session) objects that have been\n * registered on the client device.\n *\n * @example\n * <script setup>\n * import { useSessionList } from '@clerk/vue'\n *\n * const { isLoaded, sessions } = useSessionList()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * <p>\n * Welcome back. You have been here\n * {{ sessions.length }} times before.\n * </p>\n * </div>\n * </template>\n */\nexport const useSessionList: UseSessionList = () => {\n const { clerk, clientCtx } = useClerkContext('useSessionList');\n\n const result = computed<UseSessionListReturn>(() => {\n if (!clientCtx.value) {\n return { isLoaded: false, sessions: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n sessions: clientCtx.value.sessions,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n setActive: clerk.value!.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import { getCurrentOrganizationMembership } from '@clerk/shared/organization';\nimport type { OrganizationMembershipResource, OrganizationResource } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\nimport { useSession } from './useSession';\n\ntype UseOrganizationReturn =\n | {\n isLoaded: false;\n organization: undefined;\n membership: undefined;\n }\n | {\n isLoaded: true;\n organization: OrganizationResource;\n membership: undefined;\n }\n | {\n isLoaded: boolean;\n organization: OrganizationResource | null;\n membership: OrganizationMembershipResource | null | undefined;\n };\n\ntype UseOrganization = () => ToComputedRefs<UseOrganizationReturn>;\n\n/**\n * Returns the current [`Organization`](https://clerk.com/docs/reference/javascript/organization/organization) object\n * along with loading states and membership information.\n *\n * @example\n * <script setup>\n * import { useOrganization } from '@clerk/vue'\n *\n * const { isLoaded, organization, membership } = useOrganization()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"organization\">\n * <h1>{{ organization.name }}</h1>\n * <p>Your role: {{ membership.role }}</p>\n * </div>\n *\n * <div v-else>\n * No active organization\n * </div>\n * </template>\n */\nexport const useOrganization: UseOrganization = () => {\n const { clerk, organizationCtx } = useClerkContext('useOrganization');\n const { session } = useSession();\n\n const unwatch = watch(\n clerk,\n value => {\n if (value) {\n // Optional chaining is important for `@clerk/vue` usage with older clerk-js versions that don't have the method\n value.__internal_attemptToEnableEnvironmentSetting?.({\n for: 'organizations',\n caller: 'useOrganization',\n });\n unwatch();\n }\n },\n { immediate: true },\n );\n\n const result = computed<UseOrganizationReturn>(() => {\n if (organizationCtx.value === undefined) {\n return { isLoaded: false, organization: undefined, membership: undefined };\n }\n\n if (organizationCtx.value === null) {\n return { isLoaded: true, organization: null, membership: null };\n }\n\n /** In SSR context we include only the organization object when loadOrg is set to true. */\n if (!clerk.value?.loaded) {\n return {\n isLoaded: true,\n organization: organizationCtx.value,\n membership: undefined,\n };\n }\n\n return {\n isLoaded: clerk.value.loaded,\n organization: organizationCtx.value,\n membership: getCurrentOrganizationMembership(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n session.value!.user.organizationMemberships,\n organizationCtx.value.id,\n ),\n };\n });\n\n return toComputedRefs(result);\n};\n","import type { ClerkOptions } from '@clerk/shared/types';\nimport type { Appearance, Ui } from '@clerk/ui/internal';\n\ntype ClerkUpdateOptions<TUi extends Ui = Ui> = Pick<ClerkOptions, 'localization'> & {\n appearance?: Appearance<TUi>;\n};\n\n/**\n * Updates Clerk's options at runtime.\n *\n * @param options - The Clerk options to update\n *\n * @example\n * import { frFR } from '@clerk/localizations';\n * import { dark } from '@clerk/ui/themes';\n *\n * updateClerkOptions({\n * appearance: { theme: dark },\n * localization: frFR\n * });\n */\nexport function updateClerkOptions<TUi extends Ui = Ui>(options: ClerkUpdateOptions<TUi>) {\n if (!window.Clerk) {\n throw new Error('Missing Clerk instance');\n }\n\n const updateOptions = {\n options: {\n localization: options.localization,\n },\n appearance: options.appearance,\n } as unknown as { options: any; appearance?: any };\n\n // @ts-expect-error - `__internal_updateProps` is not exposed as public API from `@clerk/types`\n void window.Clerk.__internal_updateProps(updateOptions);\n}\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { SignInProps } from '@clerk/shared/types';\nimport { getCurrentInstance } from 'vue';\n\nconst clerk = useClerk();\n\ndefineProps<SignInProps>();\n\n// Hacking our way to get actual initial uncasted boolean props as vue-tsc\n// is having a hard time with SignInProps type and withDefaults()\nconst currentInstance = getCurrentInstance();\n\nconst hasInitialTransferable = 'transferable' in (currentInstance?.vnode.props ?? {});\nconst hasInitialWithSignUp = 'withSignUp' in (currentInstance?.vnode.props ?? {});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountSignIn\"\n :unmount=\"clerk?.unmountSignIn\"\n :props=\"{\n ...$props,\n transferable: hasInitialTransferable ? $props.transferable : undefined,\n withSignUp: hasInitialWithSignUp ? $props.withSignUp : undefined,\n }\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { SignUpProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\n\nconst props = defineProps<SignUpProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountSignUp\"\n :unmount=\"clerk?.unmountSignUp\"\n :props=\"props\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { GoogleOneTapProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\n\nconst props = withDefaults(defineProps<GoogleOneTapProps>(), {\n cancelOnTapOutside: true,\n itpSupport: true,\n fedCmSupport: true,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :open=\"clerk?.openGoogleOneTap\"\n :close=\"clerk?.closeGoogleOneTap\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { WaitlistProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<WaitlistProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountWaitlist\"\n :unmount=\"clerk?.unmountWaitlist\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { CreateOrganizationProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\nconst props = defineProps<CreateOrganizationProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountCreateOrganization\"\n :unmount=\"clerk?.unmountCreateOrganization\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../composables';\nimport type { OrganizationListProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\n\nconst clerk = useClerk();\nconst props = defineProps<OrganizationListProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationList\"\n :unmount=\"clerk?.unmountOrganizationList\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { PricingTableProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<PricingTableProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountPricingTable\"\n :unmount=\"clerk?.unmountPricingTable\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { APIKeysProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<APIKeysProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountAPIKeys\"\n :unmount=\"clerk?.unmountAPIKeys\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","import { defineComponent, inject } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport { userProfileLinkRenderedError, userProfilePageRenderedError } from '../../../errors/messages';\nimport { UserProfileInjectionKey } from '../../../keys';\nimport type { UserProfileLinkProps, UserProfilePageProps } from '../../../types';\nimport _UserProfile from './UserProfile.vue';\n\nexport const UserProfilePage = defineComponent(\n (props: UserProfilePageProps, { slots }) => {\n const ctx = inject(UserProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userProfilePageRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: UserProfilePage,\n });\n\n return () => null;\n },\n { name: 'UserProfilePage' },\n);\n;Object.defineProperty(UserProfilePage, \"props\", {\n value: [\"label\",\"url\"],\n});\n\nexport const UserProfileLink = defineComponent(\n (props: UserProfileLinkProps, { slots }) => {\n const ctx = inject(UserProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userProfileLinkRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: UserProfileLink,\n });\n\n return () => null;\n },\n { name: 'UserProfileLink' },\n);\n;Object.defineProperty(UserProfileLink, \"props\", {\n value: [\"url\",\"label\"],\n});\n\nexport const UserProfile = Object.assign(_UserProfile, {\n Page: UserProfilePage,\n Link: UserProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { UserProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { computed, provide } from 'vue';\nimport { UserProfileInjectionKey } from '../../../keys';\nimport { useUserProfileCustomPages } from '../../../utils/useCustomPages';\n\ntype Props = Omit<UserProfileProps, 'customPages'>;\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\nconst { customPages, customPagesPortals, addCustomPage } = useUserProfileCustomPages();\n\nconst finalProps = computed(() => ({\n ...props,\n customPages: customPages.value,\n}));\n\nprovide(UserProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserProfile\"\n :unmount=\"clerk?.unmountUserProfile\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import type { CustomPage } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { Component } from 'vue';\nimport { ref } from 'vue';\n\nimport { OrganizationProfileLink, OrganizationProfilePage } from '../components/ui-components/OrganizationProfile';\nimport { UserProfileLink, UserProfilePage } from '../components/ui-components/UserProfile';\nimport { customLinkWrongProps, customPageWrongProps } from '../errors/messages';\nimport type { AddCustomPagesParams } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserProfileCustomPages = () => {\n const { customPages, customPagesPortals, addCustomPage } = useCustomPages({\n reorderItemsLabels: ['account', 'security', 'billing', 'apiKeys'],\n PageComponent: UserProfilePage,\n LinkComponent: UserProfileLink,\n componentName: 'UserProfile',\n });\n\n const addUserProfileCustomPage = (params: AddCustomPagesParams) => {\n return addCustomPage(params);\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage: addUserProfileCustomPage,\n };\n};\n\nexport const useOrganizationProfileCustomPages = () => {\n const { customPages, customPagesPortals, addCustomPage } = useCustomPages({\n reorderItemsLabels: ['general', 'members', 'billing', 'apiKeys'],\n PageComponent: OrganizationProfilePage,\n LinkComponent: OrganizationProfileLink,\n componentName: 'OrganizationProfile',\n });\n\n const addOrganizationProfileCustomPage = (params: AddCustomPagesParams) => {\n return addCustomPage(params);\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage: addOrganizationProfileCustomPage,\n };\n};\n\ntype UseCustomPagesParams = {\n LinkComponent: Component;\n PageComponent: Component;\n reorderItemsLabels: string[];\n componentName: string;\n};\n\nexport const useCustomPages = (customPagesParams: UseCustomPagesParams) => {\n const customPages = ref<CustomPage[]>([]);\n const { portals: customPagesPortals, mount, unmount } = useCustomElementPortal();\n const { PageComponent, LinkComponent, reorderItemsLabels, componentName } = customPagesParams;\n\n const addCustomPage = (params: AddCustomPagesParams) => {\n const { props, slots, component } = params;\n const { label, url } = props;\n\n if (isThatComponent(component, PageComponent)) {\n if (isReorderItem(props, slots, reorderItemsLabels)) {\n // This is a reordering item\n customPages.value.push({ label });\n } else if (isCustomPage(props, slots)) {\n // This is a custom page\n customPages.value.push({\n label,\n url,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n mount(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.default!);\n },\n unmount,\n });\n } else {\n logErrorInDevMode(customPageWrongProps(componentName));\n return;\n }\n }\n\n if (isThatComponent(component, LinkComponent)) {\n if (isExternalLink(props, slots)) {\n // This is an external link\n customPages.value.push({\n label,\n url,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n });\n } else {\n logErrorInDevMode(customLinkWrongProps(componentName));\n return;\n }\n }\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage,\n };\n};\n\nconst isReorderItem = (props: any, slots: AddCustomPagesParams['slots'], validItems: string[]): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !defaultSlot && !url && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomPage = (props: any, slots: AddCustomPagesParams['slots']): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !!defaultSlot && !!url && !!labelIcon && !!label;\n};\n\nconst isExternalLink = (props: any, slots: AddCustomPagesParams['slots']): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !defaultSlot && !!url && !!labelIcon && !!label;\n};\n","import { defineComponent, inject } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport { organizationProfileLinkRenderedError, organizationProfilePageRenderedError } from '../../../errors/messages';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\nimport type { OrganizationLinkProps, OrganizationProfilePageProps } from '../../../types';\nimport _OrganizationProfile from './OrganizationProfile.vue';\n\nexport const OrganizationProfilePage = defineComponent(\n (props: OrganizationProfilePageProps, { slots }) => {\n const ctx = inject(OrganizationProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(organizationProfilePageRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: OrganizationProfilePage,\n });\n\n return () => null;\n },\n { name: 'OrganizationProfilePage' },\n);\n;Object.defineProperty(OrganizationProfilePage, \"props\", {\n value: [\"label\",\"url\"],\n});\n\nexport const OrganizationProfileLink = defineComponent(\n (props: OrganizationLinkProps, { slots }) => {\n const ctx = inject(OrganizationProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(organizationProfileLinkRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: OrganizationProfileLink,\n });\n\n return () => null;\n },\n { name: 'OrganizationProfileLink' },\n);\n;Object.defineProperty(OrganizationProfileLink, \"props\", {\n value: [\"url\",\"label\"],\n});\n\nexport const OrganizationProfile = Object.assign(_OrganizationProfile, {\n Page: OrganizationProfilePage,\n Link: OrganizationProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue';\nimport { useOrganizationProfileCustomPages } from '../../../utils/useCustomPages';\nimport { useClerk } from '../../../composables';\nimport type { OrganizationProfileProps } from '@clerk/shared/types';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\n\ntype Props = Omit<OrganizationProfileProps, 'customPages'>;\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\n\nconst { customPages, customPagesPortals, addCustomPage } = useOrganizationProfileCustomPages();\n\nconst finalProps = computed(() => ({\n ...props,\n customPages: customPages.value,\n}));\n\nprovide(OrganizationProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationProfile\"\n :unmount=\"clerk?.unmountOrganizationProfile\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import { type Component } from 'vue';\n\nexport const isThatComponent = (v: any, component: Component): v is Component => {\n return !!v && isRenderFunction(v) && v.name === component.name;\n};\n\nconst isRenderFunction = (v: any): v is Component => {\n return 'name' in v && 'setup' in v;\n};\n","import type { Slot } from 'vue';\nimport { computed, h, ref, Teleport } from 'vue';\n\ninterface RawPortal {\n id: string;\n el: HTMLDivElement;\n slot: Slot;\n}\n\nfunction generateElementIdentifier() {\n return Math.random().toString(36).substring(2, 7);\n}\n\nexport const useCustomElementPortal = () => {\n const rawPortals = ref<RawPortal[]>([]);\n const portals = computed(() => {\n return rawPortals.value.map(item => {\n return h(Teleport, { to: item.el }, item.slot());\n });\n });\n\n const mount = (el: HTMLDivElement, slot: Slot) => {\n const id = generateElementIdentifier();\n el.setAttribute('data-clerk-mount-id', id);\n rawPortals.value.push({\n id,\n el,\n slot,\n });\n };\n\n const unmount = (el: HTMLDivElement | undefined) => {\n const id = el?.getAttribute('data-clerk-mount-id');\n if (id) {\n const index = rawPortals.value.findIndex(portal => portal.id === id);\n if (index !== -1) {\n rawPortals.value.splice(index, 1);\n }\n }\n };\n\n return {\n portals,\n mount,\n unmount,\n };\n};\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { OrganizationSwitcherProps, OrganizationProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { useOrganizationProfileCustomPages } from '../../../utils/useCustomPages';\nimport { computed, provide } from 'vue';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\n\nconst clerk = useClerk();\n\ntype Props = Omit<OrganizationSwitcherProps, 'organizationProfileProps' | '__experimental_asStandalone'> & {\n organizationProfileProps?: Pick<OrganizationProfileProps, 'appearance'>;\n};\nconst props = defineProps<Props>();\n\nconst { customPages, customPagesPortals, addCustomPage } = useOrganizationProfileCustomPages();\n\nconst finalProps = computed<Props>(() => ({\n ...props,\n organizationProfileProps: {\n ...(props.organizationProfileProps || {}),\n customPages: customPages.value,\n },\n}));\n\nprovide(OrganizationProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationSwitcher\"\n :unmount=\"clerk?.unmountOrganizationSwitcher\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"finalProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import { OrganizationProfileLink, OrganizationProfilePage } from '../OrganizationProfile';\nimport _OrganizationSwitcher from './OrganizationSwitcher.vue';\n\nexport const OrganizationSwitcher = Object.assign(_OrganizationSwitcher, {\n OrganizationProfilePage,\n OrganizationProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { UserAvatarProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<UserAvatarProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserAvatar\"\n :unmount=\"clerk?.unmountUserAvatar\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","import { defineComponent, inject, provide } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport {\n userButtonMenuActionRenderedError,\n userButtonMenuItemsRenderedError,\n userButtonMenuLinkRenderedError,\n} from '../../../errors/messages';\nimport { UserButtonInjectionKey, UserButtonMenuItemsInjectionKey } from '../../../keys';\nimport type { UserButtonActionProps, UserButtonLinkProps } from '../../../types';\nimport { UserProfileLink, UserProfilePage } from '../UserProfile';\nimport _UserButton from './UserButton.vue';\n\nconst MenuItems = defineComponent((_, { slots }) => {\n const ctx = inject(UserButtonInjectionKey);\n\n if (!ctx) {\n return errorThrower.throw(userButtonMenuItemsRenderedError);\n }\n\n provide(UserButtonMenuItemsInjectionKey, ctx);\n return () => slots.default?.();\n});\n\nexport const MenuAction = defineComponent(\n (props: UserButtonActionProps, { slots }) => {\n const ctx = inject(UserButtonMenuItemsInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userButtonMenuActionRenderedError);\n }\n\n ctx.addCustomMenuItem({\n props,\n slots,\n component: MenuAction,\n });\n\n return () => null;\n },\n { name: 'MenuAction' },\n);\n;Object.defineProperty(MenuAction, \"props\", {\n value: [\"label\",\"onClick\",\"open\"],\n});\n\nexport const MenuLink = defineComponent(\n (props: UserButtonLinkProps, { slots }) => {\n const ctx = inject(UserButtonMenuItemsInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userButtonMenuLinkRenderedError);\n }\n\n ctx.addCustomMenuItem({\n props,\n slots,\n component: MenuLink,\n });\n\n return () => null;\n },\n { name: 'MenuLink' },\n);\n;Object.defineProperty(MenuLink, \"props\", {\n value: [\"href\",\"label\"],\n});\n\nexport const UserButton = Object.assign(_UserButton, {\n MenuItems,\n Action: MenuAction,\n Link: MenuLink,\n UserProfilePage,\n UserProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { UserButtonProps, UserProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { computed, provide } from 'vue';\nimport { UserButtonInjectionKey, UserProfileInjectionKey } from '../../../keys';\nimport { useUserProfileCustomPages } from '../../../utils/useCustomPages';\nimport { useUserButtonCustomMenuItems } from '../../../utils/useCustomMenuItems';\n\ntype Props = Omit<UserButtonProps, 'userProfileProps' | 'customMenuItems'> & {\n userProfileProps?: Pick<UserProfileProps, 'additionalOAuthScopes' | 'appearance' | 'apiKeysProps'>;\n};\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\n\nconst { customMenuItems, customMenuItemsPortals, addCustomMenuItem } = useUserButtonCustomMenuItems();\nconst { customPages, customPagesPortals, addCustomPage } = useUserProfileCustomPages();\n\nconst finalProps = computed<Props>(() => ({\n ...props,\n userProfileProps: {\n ...(props.userProfileProps || {}),\n customPages: customPages.value,\n },\n customMenuItems: customMenuItems.value,\n}));\n\nprovide(UserButtonInjectionKey, {\n addCustomMenuItem,\n});\nprovide(UserProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserButton\"\n :unmount=\"clerk?.unmountUserButton\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer\n :custom-pages-portals=\"customPagesPortals\"\n :custom-menu-items-portals=\"customMenuItemsPortals\"\n />\n <slot />\n</template>\n","import type { CustomMenuItem } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport { ref } from 'vue';\n\nimport { MenuAction, MenuLink } from '../components/ui-components/UserButton';\nimport { userButtonMenuItemActionWrongProps, userButtonMenuItemLinkWrongProps } from '../errors/messages';\nimport type { AddCustomMenuItemParams, UserButtonActionProps, UserButtonLinkProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserButtonCustomMenuItems = () => {\n const customMenuItems = ref<CustomMenuItem[]>([]);\n const { portals: customMenuItemsPortals, mount, unmount } = useCustomElementPortal();\n const reorderItemsLabels = ['manageAccount', 'signOut'];\n\n function addCustomMenuItem(params: AddCustomMenuItemParams) {\n const { props, component, slots } = params;\n const { label, onClick, open, href } = props;\n\n if (isThatComponent(component, MenuAction)) {\n if (isReorderItem(props, slots, reorderItemsLabels)) {\n // This is a reordering item\n customMenuItems.value.push({ label });\n } else if (isCustomMenuItem(props, slots)) {\n const baseItem: CustomMenuItem = {\n label,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n };\n\n if (onClick !== undefined) {\n customMenuItems.value.push({\n ...baseItem,\n onClick,\n open,\n });\n } else if (open !== undefined) {\n customMenuItems.value.push({\n ...baseItem,\n open: open.startsWith('/') ? open : `/${open}`,\n });\n } else {\n // Handle the case where neither onClick nor open is defined\n logErrorInDevMode('Custom menu item must have either onClick or open property');\n return;\n }\n } else {\n logErrorInDevMode(userButtonMenuItemActionWrongProps);\n return;\n }\n }\n\n if (isThatComponent(component, MenuLink)) {\n if (isExternalLink(props, slots)) {\n customMenuItems.value.push({\n label,\n href,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n });\n } else {\n logErrorInDevMode(userButtonMenuItemLinkWrongProps);\n return;\n }\n }\n }\n\n return {\n customMenuItems,\n customMenuItemsPortals,\n addCustomMenuItem,\n };\n};\n\nconst isReorderItem = (props: any, slots: AddCustomMenuItemParams['slots'], validItems: string[]): boolean => {\n const { label, onClick } = props;\n const { labelIcon } = slots;\n return !onClick && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomMenuItem = (props: any, slots: AddCustomMenuItemParams['slots']): props is UserButtonActionProps => {\n const { label, onClick, open } = props;\n const { labelIcon } = slots;\n return !!labelIcon && !!label && (typeof onClick === 'function' || typeof open === 'string');\n};\n\nconst isExternalLink = (props: any, slots: AddCustomMenuItemParams['slots']): props is UserButtonLinkProps => {\n const { label, href } = props;\n const { labelIcon } = slots;\n return !!href && !!labelIcon && !!label;\n};\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignInButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\nconst props = defineProps<SignInButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign in');\n return assertSingleChild(children, 'SignInButton');\n}\n\nfunction clickHandler() {\n const { mode, ...opts } = props;\n\n if (mode === 'modal') {\n return clerk.value?.openSignIn({ ...opts, appearance: props.appearance });\n }\n\n const { withSignUp, ...redirectOpts } = opts;\n\n void clerk.value?.redirectToSignIn({\n ...redirectOpts,\n signInFallbackRedirectUrl: props.fallbackRedirectUrl,\n signInForceRedirectUrl: props.forceRedirectUrl,\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignUpButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\nconst props = defineProps<SignUpButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign up');\n return assertSingleChild(children, 'SignUpButton');\n}\n\nfunction clickHandler() {\n const { mode, ...opts } = props;\n\n if (mode === 'modal') {\n return clerk.value?.openSignUp({ ...opts, appearance: props.appearance });\n }\n\n void clerk.value?.redirectToSignUp({\n ...opts,\n signUpFallbackRedirectUrl: props.fallbackRedirectUrl,\n signUpForceRedirectUrl: props.forceRedirectUrl,\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignOutOptions } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ninterface SignOutButtonProps {\n signOutOptions?: SignOutOptions;\n sessionId?: string;\n redirectUrl?: string;\n}\n\nconst props = defineProps<SignOutButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign out');\n return assertSingleChild(children, 'SignOutButton');\n}\n\nfunction clickHandler() {\n const signOutOptions: SignOutOptions = {\n redirectUrl: props.signOutOptions?.redirectUrl ?? props.redirectUrl,\n sessionId: props.signOutOptions?.sessionId ?? props.sessionId,\n };\n void clerk.value?.signOut(signOutOptions);\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { RedirectUrlProp } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ntype Props = RedirectUrlProp & {\n mode?: 'modal' | 'redirect';\n};\n\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign in with Metamask');\n return assertSingleChild(children, 'SignInWithMetamaskButton');\n}\n\nfunction clickHandler() {\n void clerk.value?.authenticateWithMetamask({ redirectUrl: props.redirectUrl || undefined });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","import { inBrowser } from '@clerk/shared/browser';\nimport { deriveState } from '@clerk/shared/deriveState';\nimport { loadClerkJsScript, type LoadClerkJsScriptOptions, loadClerkUiScript } from '@clerk/shared/loadClerkJsScript';\nimport type {\n Clerk,\n ClerkOptions,\n ClientResource,\n InitialState,\n IsomorphicClerkOptions,\n MultiDomainAndOrProxy,\n Resources,\n Without,\n} from '@clerk/shared/types';\nimport type { ClerkUiConstructor } from '@clerk/shared/ui';\nimport type { Appearance, Ui } from '@clerk/ui/internal';\nimport type { Plugin } from 'vue';\nimport { computed, ref, shallowRef, triggerRef } from 'vue';\n\nimport { ClerkInjectionKey } from './keys';\ndeclare global {\n interface Window {\n __internal_ClerkUiCtor?: ClerkUiConstructor;\n }\n}\n\nexport type PluginOptions<TUi extends Ui = Ui> = Without<IsomorphicClerkOptions, 'domain' | 'proxyUrl' | 'appearance'> &\n MultiDomainAndOrProxy & {\n initialState?: InitialState;\n appearance?: Appearance<TUi>;\n };\n\nconst SDK_METADATA = {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n};\n\n/**\n * Vue plugin for integrating Clerk.\n *\n * @example\n * ```ts\n * import { createApp } from 'vue'\n * import { clerkPlugin } from '@clerk/vue'\n * import App from './App.vue'\n *\n * const app = createApp(App)\n *\n * app.use(clerkPlugin, {\n * publishableKey: 'pk_'\n * })\n *\n * app.mount('#app')\n * ```\n */\nexport const clerkPlugin: Plugin<[PluginOptions]> = {\n install<TUi extends Ui = Ui>(app: any, pluginOptions: PluginOptions<TUi>) {\n const { initialState } = pluginOptions || {};\n\n const loaded = shallowRef(false);\n const clerk = shallowRef<Clerk | null>(null);\n\n const resources = ref<Resources>({\n client: undefined as unknown as ClientResource,\n session: undefined,\n user: undefined,\n organization: undefined,\n });\n\n const options = {\n ...pluginOptions,\n sdkMetadata: pluginOptions.sdkMetadata || SDK_METADATA,\n } as LoadClerkJsScriptOptions;\n\n // We need this check for SSR apps like Nuxt as it will try to run this code on the server\n // and loadClerkJsScript contains browser-specific code\n if (inBrowser()) {\n void (async () => {\n try {\n const clerkPromise = loadClerkJsScript(options);\n const clerkUiCtorPromise = pluginOptions.clerkUiCtor\n ? Promise.resolve(pluginOptions.clerkUiCtor)\n : (async () => {\n await loadClerkUiScript(options);\n if (!window.__internal_ClerkUiCtor) {\n throw new Error('Failed to download latest Clerk UI. Contact support@clerk.com.');\n }\n return window.__internal_ClerkUiCtor;\n })();\n\n await clerkPromise;\n\n if (!window.Clerk) {\n throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n }\n\n clerk.value = window.Clerk;\n const loadOptions = { ...options, clerkUiCtor: clerkUiCtorPromise } as unknown as ClerkOptions;\n await window.Clerk.load(loadOptions);\n loaded.value = true;\n\n if (clerk.value) {\n clerk.value.addListener(payload => {\n resources.value = payload;\n });\n\n // When Clerk updates its state internally, Vue's reactivity system doesn't detect\n // the change since it's an external object being mutated. triggerRef() forces Vue\n // to re-evaluate all dependencies regardless of how the value was changed.\n triggerRef(clerk);\n }\n } catch (err) {\n const error = err as Error;\n console.error(error.stack || error.message || error);\n }\n })();\n }\n\n const derivedState = computed(() => deriveState(loaded.value, resources.value, initialState));\n\n const authCtx = computed(() => {\n const {\n sessionId,\n userId,\n orgId,\n actor,\n orgRole,\n orgSlug,\n orgPermissions,\n sessionStatus,\n sessionClaims,\n factorVerificationAge,\n } = derivedState.value;\n return {\n sessionId,\n userId,\n actor,\n orgId,\n orgRole,\n orgSlug,\n orgPermissions,\n sessionStatus,\n sessionClaims,\n factorVerificationAge,\n };\n });\n const clientCtx = computed(() => resources.value.client);\n const userCtx = computed(() => derivedState.value.user);\n const sessionCtx = computed(() => derivedState.value.session);\n const organizationCtx = computed(() => derivedState.value.organization);\n\n app.provide(ClerkInjectionKey, {\n clerk,\n authCtx,\n clientCtx,\n sessionCtx,\n userCtx,\n organizationCtx,\n });\n },\n};\n"],"mappings":"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","names":["defineComponent","watch","watch","computed","computed","computed","computed","eventMethodCalled","computed","watch","watch","eventMethodCalled","computed","computed","computed","computed","watch","watch","computed","watch","defineComponent","defineComponent","watch","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","defineComponent","inject","computed","provide","ref","defineComponent","computed","computed","defineComponent","defineComponent","computed","h","ref","ref","computed","provide","_createVNode","_renderSlot","defineComponent","inject","defineComponent","inject","computed","provide","computed","provide","_createVNode","_renderSlot","_createBlock","defineComponent","inject","provide","computed","provide","logErrorInDevMode","ref","ref","isReorderItem","logErrorInDevMode","isExternalLink","computed","provide","_createVNode","_renderSlot","defineComponent","inject","provide","defineComponent","inject","_createBlock","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","computed","ref","ref","computed"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/ClerkHostRenderer.ts","../src/components/controlComponents.ts","../src/utils/useClerkLoaded.ts","../src/composables/useUser.ts","../src/composables/useSession.ts","../src/composables/useSignIn.ts","../src/composables/useSignUp.ts","../src/composables/useSessionList.ts","../src/composables/useOrganization.ts","../src/utils/updateClerkOptions.ts","../src/components/ui-components/SignIn.vue","../src/components/ui-components/SignUp.vue","../src/components/ui-components/GoogleOneTap.vue","../src/components/ui-components/Waitlist.vue","../src/components/ui-components/CreateOrganization.vue","../src/components/ui-components/OrganizationList.vue","../src/components/ui-components/PricingTable.vue","../src/components/ui-components/APIKeys.vue","../src/components/ui-components/UserProfile/index.ts","../src/components/ui-components/UserProfile/UserProfile.vue","../src/utils/useCustomPages.ts","../src/components/ui-components/OrganizationProfile/index.ts","../src/components/ui-components/OrganizationProfile/OrganizationProfile.vue","../src/utils/componentValidation.ts","../src/utils/useCustomElementPortal.ts","../src/components/ui-components/OrganizationSwitcher/OrganizationSwitcher.vue","../src/components/ui-components/OrganizationSwitcher/index.ts","../src/components/ui-components/UserAvatar.vue","../src/components/ui-components/UserButton/index.ts","../src/components/ui-components/UserButton/UserButton.vue","../src/utils/useCustomMenuItems.ts","../src/components/SignInButton.vue","../src/components/SignUpButton.vue","../src/components/SignOutButton.vue","../src/components/SignInWithMetamaskButton.vue","../src/plugin.ts"],"sourcesContent":["import { setClerkJsLoadingErrorPackageName } from '@clerk/shared/loadClerkJsScript';\n\nimport { setErrorThrowerOptions } from './errors/errorThrower';\n\nexport * from './components';\nexport * from './composables';\n\nexport { clerkPlugin, type PluginOptions } from './plugin';\nexport { updateClerkOptions } from './utils';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJsLoadingErrorPackageName(PACKAGE_NAME);\n","import type { PropType } from 'vue';\nimport { defineComponent, h, onUnmounted, ref, watch, watchEffect } from 'vue';\n\nimport type { CustomPortalsRendererProps } from '../types';\nimport { ClerkLoaded } from './controlComponents';\n\ntype AnyObject = Record<string, any>;\n\nexport const CustomPortalsRenderer = defineComponent((props: CustomPortalsRendererProps) => {\n return () => [...(props?.customPagesPortals ?? []), ...(props?.customMenuItemsPortals ?? [])];\n});\n;Object.defineProperty(CustomPortalsRenderer, \"props\", {\n value: [\"customPagesPortals\",\"customMenuItemsPortals\"],\n});\n\n/**\n * Used to orchestrate mounting of Clerk components in a host Vue application.\n * Components are rendered into a specific DOM node using mount/unmount methods provided by the Clerk class.\n */\nexport const ClerkHostRenderer = defineComponent({\n props: {\n mount: {\n type: Function as PropType<(node: HTMLDivElement, props: AnyObject) => void>,\n required: false,\n },\n unmount: {\n type: Function as PropType<(node: HTMLDivElement) => void>,\n required: false,\n },\n open: {\n type: Function as PropType<(props: AnyObject) => void>,\n required: false,\n },\n close: {\n type: Function as PropType<() => void>,\n required: false,\n },\n updateProps: {\n type: Function as PropType<(props: { node: HTMLDivElement; props: AnyObject | undefined }) => void>,\n required: false,\n },\n props: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n },\n setup(props) {\n const portalRef = ref<HTMLDivElement | null>(null);\n let isPortalMounted = false;\n\n watchEffect(() => {\n // Skip if portal element isn't ready or component is already mounted\n if (!portalRef.value || isPortalMounted) {\n return;\n }\n\n if (props.mount) {\n props.mount(portalRef.value, props.props);\n }\n if (props.open) {\n props.open(props.props);\n }\n isPortalMounted = true;\n });\n\n watch(\n () => props.props,\n newProps => {\n if (isPortalMounted && props.updateProps && portalRef.value) {\n props.updateProps({ node: portalRef.value, props: newProps });\n }\n },\n { deep: true },\n );\n\n onUnmounted(() => {\n if (isPortalMounted && portalRef.value) {\n if (props.unmount) {\n props.unmount(portalRef.value);\n }\n if (props.close) {\n props.close();\n }\n }\n });\n\n return () => h(ClerkLoaded, () => h('div', { ref: portalRef }));\n },\n});\n","import { deprecated } from '@clerk/shared/deprecated';\nimport type {\n HandleOAuthCallbackParams,\n PendingSessionOptions,\n RedirectOptions,\n ShowWhenCondition,\n} from '@clerk/shared/types';\nimport { defineComponent, type VNodeChild } from 'vue';\n\nimport { useAuth } from '../composables/useAuth';\nimport { useClerk } from '../composables/useClerk';\nimport { useClerkContext } from '../composables/useClerkContext';\nimport { useClerkLoaded } from '../utils/useClerkLoaded';\n\nexport const ClerkLoaded = defineComponent((_, { slots }) => {\n const clerk = useClerk();\n\n return () => (clerk.value?.loaded ? slots.default?.() : null);\n});\n\nexport const ClerkLoading = defineComponent((_, { slots }) => {\n const clerk = useClerk();\n\n return () => (!clerk.value?.loaded ? slots.default?.() : null);\n});\n\nexport const RedirectToSignIn = defineComponent((props: RedirectOptions) => {\n const { sessionCtx, clientCtx } = useClerkContext('RedirectToSignIn');\n\n useClerkLoaded(clerk => {\n const hasSignedInSessions = clientCtx.value?.signedInSessions && clientCtx.value.signedInSessions.length > 0;\n\n if (sessionCtx.value === null && hasSignedInSessions) {\n void clerk.redirectToAfterSignOut();\n } else {\n void clerk.redirectToSignIn(props);\n }\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToSignIn, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\nexport const RedirectToSignUp = defineComponent((props: RedirectOptions) => {\n useClerkLoaded(clerk => {\n void clerk.redirectToSignUp(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToSignUp, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\nexport const RedirectToTasks = defineComponent((props: RedirectOptions) => {\n useClerkLoaded(clerk => {\n void clerk.redirectToTasks(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(RedirectToTasks, \"props\", {\n value: [\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"redirectUrl\"],\n});\n\n/**\n * @deprecated Use [`redirectToUserProfile()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-user-profile) instead.\n */\nexport const RedirectToUserProfile = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToUserProfile', 'Use the `redirectToUserProfile()` method instead.');\n void clerk.redirectToUserProfile();\n });\n\n return () => null;\n});\n\n/**\n * @deprecated Use [`redirectToOrganizationProfile()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-organization-profile) instead.\n */\nexport const RedirectToOrganizationProfile = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToOrganizationProfile', 'Use the `redirectToOrganizationProfile()` method instead.');\n void clerk.redirectToOrganizationProfile();\n });\n\n return () => null;\n});\n\n/**\n * @deprecated Use [`redirectToCreateOrganization()`](https://clerk.com/docs/reference/javascript/clerk/redirect-methods#redirect-to-create-organization) instead.\n */\nexport const RedirectToCreateOrganization = defineComponent(() => {\n useClerkLoaded(clerk => {\n deprecated('RedirectToCreateOrganization', 'Use the `redirectToCreateOrganization()` method instead.');\n void clerk.redirectToCreateOrganization();\n });\n\n return () => null;\n});\n\nexport const AuthenticateWithRedirectCallback = defineComponent((props: HandleOAuthCallbackParams) => {\n useClerkLoaded(clerk => {\n void clerk.handleRedirectCallback(props);\n });\n\n return () => null;\n});\n;Object.defineProperty(AuthenticateWithRedirectCallback, \"props\", {\n value: [\"transferable\",\"signInForceRedirectUrl\",\"signInFallbackRedirectUrl\",\"signUpForceRedirectUrl\",\"signUpFallbackRedirectUrl\",\"signInUrl\",\"signUpUrl\",\"firstFactorUrl\",\"secondFactorUrl\",\"resetPasswordUrl\",\"continueSignUpUrl\",\"verifyEmailAddressUrl\",\"verifyPhoneNumberUrl\",\"reloadResource\"],\n});\n\n/**\n * Props for `<Show>` that control when content renders based on sign-in or authorization state.\n *\n * @public\n * @property fallback Optional content shown when the condition fails; can be provided via prop or `fallback` slot.\n * @property when Condition controlling visibility; supports `\"signed-in\"`, `\"signed-out\"`, authorization descriptors, or a predicate that receives the `has` helper.\n * @property treatPendingAsSignedOut Inherited from `PendingSessionOptions`; treat pending sessions as signed out while loading.\n * @example\n * ```vue\n * <Show :when=\"{ role: 'admin' }\" fallback=\"Access denied\">\n * <AdminPanel />\n * </Show>\n *\n * <Show :when=\"(has) => has({ permission: 'org:read' })\">\n * <template #fallback>Not authorized</template>\n * <ProtectedFeature />\n * </Show>\n * ```\n */\nexport type ShowProps = PendingSessionOptions & { fallback?: unknown; when: ShowWhenCondition };\n\nexport const Show = defineComponent((props: ShowProps, { slots }) => {\n const { isLoaded, has, userId } = useAuth({ treatPendingAsSignedOut: props.treatPendingAsSignedOut });\n\n return () => {\n /**\n * Avoid flickering children or fallback while clerk is loading sessionId or userId\n */\n if (!isLoaded.value) {\n return null;\n }\n\n const authorized = (slots.default?.() ?? null) as VNodeChild | null;\n const fallbackFromSlot = slots.fallback?.() ?? null;\n const fallbackFromProp = (props.fallback as VNodeChild | null | undefined) ?? null;\n const unauthorized = (fallbackFromSlot ?? fallbackFromProp ?? null) as VNodeChild | null;\n\n if (props.when === 'signed-out') {\n return userId.value ? unauthorized : authorized;\n }\n\n if (!userId.value) {\n return unauthorized;\n }\n\n if (props.when === 'signed-in') {\n return authorized;\n }\n\n const hasValue = has.value;\n\n if (!hasValue) {\n return unauthorized;\n }\n\n if (typeof props.when === 'function') {\n return props.when(hasValue) ? authorized : unauthorized;\n }\n\n return hasValue(props.when) ? authorized : unauthorized;\n };\n});\n;Object.defineProperty(Show, \"props\", {\n value: [\"treatPendingAsSignedOut\",\"fallback\",\"when\"],\n});\n","import type { LoadedClerk } from '@clerk/shared/types';\nimport { watch } from 'vue';\n\nimport { useClerk } from '../composables';\n\n/**\n * Executes a callback when Clerk is loaded.\n *\n * @param callback - Function to execute once Clerk is loaded\n * @example\n * ```ts\n * useClerkLoaded((clerk) => {\n * clerk.redirectToSignUp(props);\n * });\n * ```\n */\nexport const useClerkLoaded = (callback: (clerk: LoadedClerk) => void) => {\n const clerk = useClerk();\n\n watch(\n clerk,\n unwrappedClerk => {\n if (!unwrappedClerk?.loaded) {\n return;\n }\n\n callback(unwrappedClerk as LoadedClerk);\n },\n { immediate: true },\n );\n};\n","import type { UseUserReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseUser = () => ToComputedRefs<UseUserReturn>;\n\n/**\n * Returns the current user's [`User`](https://clerk.com/docs/reference/javascript/user/user) object along with loading states.\n *\n * @example\n * <script setup>\n * import { useUser } from '@clerk/vue'\n *\n * const { isLoaded, isSignedIn, user } = useUser()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"isSignedIn\">\n * Hello {{ user.fullName }}!\n * </div>\n *\n * <div v-else>\n * Not signed in\n * </div>\n * </template>\n */\nexport const useUser: UseUser = () => {\n const { userCtx } = useClerkContext('useUser');\n\n const result = computed<UseUserReturn>(() => {\n if (userCtx.value === undefined) {\n return { isLoaded: false, isSignedIn: undefined, user: undefined };\n }\n\n if (userCtx.value === null) {\n return { isLoaded: true, isSignedIn: false, user: null };\n }\n\n return { isLoaded: true, isSignedIn: true, user: userCtx.value };\n });\n\n return toComputedRefs(result);\n};\n","import type { UseSessionReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSession = () => ToComputedRefs<UseSessionReturn>;\n\n/**\n * Returns the current [`Session`](https://clerk.com/docs/reference/javascript/session) object which provides\n * information about the active session and methods to manage it.\n *\n * @example\n * <script setup>\n * import { useSession } from '@clerk/vue'\n *\n * const { isLoaded, session, isSignedIn } = useSession()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"!isSignedIn\">\n * <!-- Handle not signed in state -->\n * </div>\n *\n * <div v-else>\n * <p>This session has been active since {{ session.lastActiveAt.toLocaleString() }}</p>\n * </div>\n * </template>\n */\nexport const useSession: UseSession = () => {\n const { sessionCtx, clerk } = useClerkContext('useSession');\n\n const result = computed<UseSessionReturn>(() => {\n if (sessionCtx.value === undefined) {\n return { isLoaded: false, isSignedIn: undefined, session: undefined };\n }\n\n const isSignedOut = sessionCtx.value === null;\n if (isSignedOut) {\n return { isLoaded: true, isSignedIn: false, session: null };\n }\n\n return { isLoaded: true, isSignedIn: !!clerk.value?.isSignedIn, session: sessionCtx.value };\n });\n\n return toComputedRefs(result);\n};\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignInReturn } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSignIn = () => ToComputedRefs<UseSignInReturn>;\n\n/**\n * Returns the current [`SignIn`](https://clerk.com/docs/reference/javascript/sign-in) object which provides\n * methods and state for managing the sign-in flow.\n *\n * @example\n * <script setup>\n * import { useSignIn } from '@clerk/vue'\n *\n * const { isLoaded, signIn } = useSignIn()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * The current sign in attempt status is {{ signIn.status }}.\n * </div>\n * </template>\n */\nexport const useSignIn: UseSignIn = () => {\n const { clerk, clientCtx } = useClerkContext('useSignIn');\n\n const unwatch = watch(clerk, value => {\n if (value) {\n value.telemetry?.record(eventMethodCalled('useSignIn'));\n unwatch();\n }\n });\n\n const result = computed<UseSignInReturn>(() => {\n if (!clerk.value || !clientCtx.value) {\n return { isLoaded: false, signIn: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n signIn: clientCtx.value.signIn,\n setActive: clerk.value.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignUpReturn } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSignUp = () => ToComputedRefs<UseSignUpReturn>;\n\n/**\n * Returns the current [`SignUp`](https://clerk.com/docs/reference/javascript/sign-up) object which provides\n * methods and state for managing the sign-up flow.\n *\n * @example\n * <script setup>\n * import { useSignUp } from '@clerk/vue'\n *\n * const { isLoaded, signUp } = useSignUp()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * The current sign-up attempt status is {{ signUp.status }}.\n * </div>\n * </template>\n */\nexport const useSignUp: UseSignUp = () => {\n const { clerk, clientCtx } = useClerkContext('useSignUp');\n\n const unwatch = watch(clerk, value => {\n if (value) {\n value.telemetry?.record(eventMethodCalled('useSignUp'));\n unwatch();\n }\n });\n\n const result = computed<UseSignUpReturn>(() => {\n if (!clerk.value || !clientCtx.value) {\n return { isLoaded: false, signUp: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n signUp: clientCtx.value.signUp,\n setActive: clerk.value.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import type { UseSessionListReturn } from '@clerk/shared/types';\nimport { computed } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\n\ntype UseSessionList = () => ToComputedRefs<UseSessionListReturn>;\n\n/**\n * Returns an array of [`Session`](https://clerk.com/docs/reference/javascript/session) objects that have been\n * registered on the client device.\n *\n * @example\n * <script setup>\n * import { useSessionList } from '@clerk/vue'\n *\n * const { isLoaded, sessions } = useSessionList()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else>\n * <p>\n * Welcome back. You have been here\n * {{ sessions.length }} times before.\n * </p>\n * </div>\n * </template>\n */\nexport const useSessionList: UseSessionList = () => {\n const { clerk, clientCtx } = useClerkContext('useSessionList');\n\n const result = computed<UseSessionListReturn>(() => {\n if (!clientCtx.value) {\n return { isLoaded: false, sessions: undefined, setActive: undefined };\n }\n\n return {\n isLoaded: true,\n sessions: clientCtx.value.sessions,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n setActive: clerk.value!.setActive,\n };\n });\n\n return toComputedRefs(result);\n};\n","import { getCurrentOrganizationMembership } from '@clerk/shared/organization';\nimport type { OrganizationMembershipResource, OrganizationResource } from '@clerk/shared/types';\nimport { computed, watch } from 'vue';\n\nimport type { ToComputedRefs } from '../utils';\nimport { toComputedRefs } from '../utils';\nimport { useClerkContext } from './useClerkContext';\nimport { useSession } from './useSession';\n\ntype UseOrganizationReturn =\n | {\n isLoaded: false;\n organization: undefined;\n membership: undefined;\n }\n | {\n isLoaded: true;\n organization: OrganizationResource;\n membership: undefined;\n }\n | {\n isLoaded: boolean;\n organization: OrganizationResource | null;\n membership: OrganizationMembershipResource | null | undefined;\n };\n\ntype UseOrganization = () => ToComputedRefs<UseOrganizationReturn>;\n\n/**\n * Returns the current [`Organization`](https://clerk.com/docs/reference/javascript/organization/organization) object\n * along with loading states and membership information.\n *\n * @example\n * <script setup>\n * import { useOrganization } from '@clerk/vue'\n *\n * const { isLoaded, organization, membership } = useOrganization()\n * </script>\n *\n * <template>\n * <div v-if=\"!isLoaded\">\n * <!-- Handle loading state -->\n * </div>\n *\n * <div v-else-if=\"organization\">\n * <h1>{{ organization.name }}</h1>\n * <p>Your role: {{ membership.role }}</p>\n * </div>\n *\n * <div v-else>\n * No active organization\n * </div>\n * </template>\n */\nexport const useOrganization: UseOrganization = () => {\n const { clerk, organizationCtx } = useClerkContext('useOrganization');\n const { session } = useSession();\n\n const unwatch = watch(\n clerk,\n value => {\n if (value) {\n // Optional chaining is important for `@clerk/vue` usage with older clerk-js versions that don't have the method\n value.__internal_attemptToEnableEnvironmentSetting?.({\n for: 'organizations',\n caller: 'useOrganization',\n });\n unwatch();\n }\n },\n { immediate: true },\n );\n\n const result = computed<UseOrganizationReturn>(() => {\n if (organizationCtx.value === undefined) {\n return { isLoaded: false, organization: undefined, membership: undefined };\n }\n\n if (organizationCtx.value === null) {\n return { isLoaded: true, organization: null, membership: null };\n }\n\n /** In SSR context we include only the organization object when loadOrg is set to true. */\n if (!clerk.value?.loaded) {\n return {\n isLoaded: true,\n organization: organizationCtx.value,\n membership: undefined,\n };\n }\n\n return {\n isLoaded: clerk.value.loaded,\n organization: organizationCtx.value,\n membership: getCurrentOrganizationMembership(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n session.value!.user.organizationMemberships,\n organizationCtx.value.id,\n ),\n };\n });\n\n return toComputedRefs(result);\n};\n","import type { ClerkOptions } from '@clerk/shared/types';\nimport type { Appearance, Ui } from '@clerk/ui/internal';\n\ntype ClerkUpdateOptions<TUi extends Ui = Ui> = Pick<ClerkOptions, 'localization'> & {\n appearance?: Appearance<TUi>;\n};\n\n/**\n * Updates Clerk's options at runtime.\n *\n * @param options - The Clerk options to update\n *\n * @example\n * import { frFR } from '@clerk/localizations';\n * import { dark } from '@clerk/ui/themes';\n *\n * updateClerkOptions({\n * appearance: { theme: dark },\n * localization: frFR\n * });\n */\nexport function updateClerkOptions<TUi extends Ui = Ui>(options: ClerkUpdateOptions<TUi>) {\n if (!window.Clerk) {\n throw new Error('Missing Clerk instance');\n }\n\n const updateOptions = {\n options: {\n localization: options.localization,\n },\n appearance: options.appearance,\n } as unknown as { options: any; appearance?: any };\n\n // @ts-expect-error - `__internal_updateProps` is not exposed as public API from `@clerk/types`\n void window.Clerk.__internal_updateProps(updateOptions);\n}\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { SignInProps } from '@clerk/shared/types';\nimport { getCurrentInstance } from 'vue';\n\nconst clerk = useClerk();\n\ndefineProps<SignInProps>();\n\n// Hacking our way to get actual initial uncasted boolean props as vue-tsc\n// is having a hard time with SignInProps type and withDefaults()\nconst currentInstance = getCurrentInstance();\n\nconst hasInitialTransferable = 'transferable' in (currentInstance?.vnode.props ?? {});\nconst hasInitialWithSignUp = 'withSignUp' in (currentInstance?.vnode.props ?? {});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountSignIn\"\n :unmount=\"clerk?.unmountSignIn\"\n :props=\"{\n ...$props,\n transferable: hasInitialTransferable ? $props.transferable : undefined,\n withSignUp: hasInitialWithSignUp ? $props.withSignUp : undefined,\n }\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { SignUpProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\n\nconst props = defineProps<SignUpProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountSignUp\"\n :unmount=\"clerk?.unmountSignUp\"\n :props=\"props\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { GoogleOneTapProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\n\nconst props = withDefaults(defineProps<GoogleOneTapProps>(), {\n cancelOnTapOutside: true,\n itpSupport: true,\n fedCmSupport: true,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :open=\"clerk?.openGoogleOneTap\"\n :close=\"clerk?.closeGoogleOneTap\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { WaitlistProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<WaitlistProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountWaitlist\"\n :unmount=\"clerk?.unmountWaitlist\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport { useClerk } from '../../composables';\nimport type { CreateOrganizationProps } from '@clerk/shared/types';\n\nconst clerk = useClerk();\nconst props = defineProps<CreateOrganizationProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountCreateOrganization\"\n :unmount=\"clerk?.unmountCreateOrganization\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../composables';\nimport type { OrganizationListProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\n\nconst clerk = useClerk();\nconst props = defineProps<OrganizationListProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationList\"\n :unmount=\"clerk?.unmountOrganizationList\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { PricingTableProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<PricingTableProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountPricingTable\"\n :unmount=\"clerk?.unmountPricingTable\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { APIKeysProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<APIKeysProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountAPIKeys\"\n :unmount=\"clerk?.unmountAPIKeys\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","import { defineComponent, inject } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport { userProfileLinkRenderedError, userProfilePageRenderedError } from '../../../errors/messages';\nimport { UserProfileInjectionKey } from '../../../keys';\nimport type { UserProfileLinkProps, UserProfilePageProps } from '../../../types';\nimport _UserProfile from './UserProfile.vue';\n\nexport const UserProfilePage = defineComponent(\n (props: UserProfilePageProps, { slots }) => {\n const ctx = inject(UserProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userProfilePageRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: UserProfilePage,\n });\n\n return () => null;\n },\n { name: 'UserProfilePage' },\n);\n;Object.defineProperty(UserProfilePage, \"props\", {\n value: [\"label\",\"url\"],\n});\n\nexport const UserProfileLink = defineComponent(\n (props: UserProfileLinkProps, { slots }) => {\n const ctx = inject(UserProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userProfileLinkRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: UserProfileLink,\n });\n\n return () => null;\n },\n { name: 'UserProfileLink' },\n);\n;Object.defineProperty(UserProfileLink, \"props\", {\n value: [\"url\",\"label\"],\n});\n\nexport const UserProfile = Object.assign(_UserProfile, {\n Page: UserProfilePage,\n Link: UserProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { UserProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { computed, provide } from 'vue';\nimport { UserProfileInjectionKey } from '../../../keys';\nimport { useUserProfileCustomPages } from '../../../utils/useCustomPages';\n\ntype Props = Omit<UserProfileProps, 'customPages'>;\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\nconst { customPages, customPagesPortals, addCustomPage } = useUserProfileCustomPages();\n\nconst finalProps = computed(() => ({\n ...props,\n customPages: customPages.value,\n}));\n\nprovide(UserProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserProfile\"\n :unmount=\"clerk?.unmountUserProfile\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import type { CustomPage } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { Component } from 'vue';\nimport { ref } from 'vue';\n\nimport { OrganizationProfileLink, OrganizationProfilePage } from '../components/ui-components/OrganizationProfile';\nimport { UserProfileLink, UserProfilePage } from '../components/ui-components/UserProfile';\nimport { customLinkWrongProps, customPageWrongProps } from '../errors/messages';\nimport type { AddCustomPagesParams } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserProfileCustomPages = () => {\n const { customPages, customPagesPortals, addCustomPage } = useCustomPages({\n reorderItemsLabels: ['account', 'security', 'billing', 'apiKeys'],\n PageComponent: UserProfilePage,\n LinkComponent: UserProfileLink,\n componentName: 'UserProfile',\n });\n\n const addUserProfileCustomPage = (params: AddCustomPagesParams) => {\n return addCustomPage(params);\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage: addUserProfileCustomPage,\n };\n};\n\nexport const useOrganizationProfileCustomPages = () => {\n const { customPages, customPagesPortals, addCustomPage } = useCustomPages({\n reorderItemsLabels: ['general', 'members', 'billing', 'apiKeys'],\n PageComponent: OrganizationProfilePage,\n LinkComponent: OrganizationProfileLink,\n componentName: 'OrganizationProfile',\n });\n\n const addOrganizationProfileCustomPage = (params: AddCustomPagesParams) => {\n return addCustomPage(params);\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage: addOrganizationProfileCustomPage,\n };\n};\n\ntype UseCustomPagesParams = {\n LinkComponent: Component;\n PageComponent: Component;\n reorderItemsLabels: string[];\n componentName: string;\n};\n\nexport const useCustomPages = (customPagesParams: UseCustomPagesParams) => {\n const customPages = ref<CustomPage[]>([]);\n const { portals: customPagesPortals, mount, unmount } = useCustomElementPortal();\n const { PageComponent, LinkComponent, reorderItemsLabels, componentName } = customPagesParams;\n\n const addCustomPage = (params: AddCustomPagesParams) => {\n const { props, slots, component } = params;\n const { label, url } = props;\n\n if (isThatComponent(component, PageComponent)) {\n if (isReorderItem(props, slots, reorderItemsLabels)) {\n // This is a reordering item\n customPages.value.push({ label });\n } else if (isCustomPage(props, slots)) {\n // This is a custom page\n customPages.value.push({\n label,\n url,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n mount(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.default!);\n },\n unmount,\n });\n } else {\n logErrorInDevMode(customPageWrongProps(componentName));\n return;\n }\n }\n\n if (isThatComponent(component, LinkComponent)) {\n if (isExternalLink(props, slots)) {\n // This is an external link\n customPages.value.push({\n label,\n url,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n });\n } else {\n logErrorInDevMode(customLinkWrongProps(componentName));\n return;\n }\n }\n };\n\n return {\n customPages,\n customPagesPortals,\n addCustomPage,\n };\n};\n\nconst isReorderItem = (props: any, slots: AddCustomPagesParams['slots'], validItems: string[]): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !defaultSlot && !url && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomPage = (props: any, slots: AddCustomPagesParams['slots']): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !!defaultSlot && !!url && !!labelIcon && !!label;\n};\n\nconst isExternalLink = (props: any, slots: AddCustomPagesParams['slots']): boolean => {\n const { label, url } = props;\n const { default: defaultSlot, labelIcon } = slots;\n return !defaultSlot && !!url && !!labelIcon && !!label;\n};\n","import { defineComponent, inject } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport { organizationProfileLinkRenderedError, organizationProfilePageRenderedError } from '../../../errors/messages';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\nimport type { OrganizationLinkProps, OrganizationProfilePageProps } from '../../../types';\nimport _OrganizationProfile from './OrganizationProfile.vue';\n\nexport const OrganizationProfilePage = defineComponent(\n (props: OrganizationProfilePageProps, { slots }) => {\n const ctx = inject(OrganizationProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(organizationProfilePageRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: OrganizationProfilePage,\n });\n\n return () => null;\n },\n { name: 'OrganizationProfilePage' },\n);\n;Object.defineProperty(OrganizationProfilePage, \"props\", {\n value: [\"label\",\"url\"],\n});\n\nexport const OrganizationProfileLink = defineComponent(\n (props: OrganizationLinkProps, { slots }) => {\n const ctx = inject(OrganizationProfileInjectionKey);\n if (!ctx) {\n return errorThrower.throw(organizationProfileLinkRenderedError);\n }\n\n ctx.addCustomPage({\n props,\n slots,\n component: OrganizationProfileLink,\n });\n\n return () => null;\n },\n { name: 'OrganizationProfileLink' },\n);\n;Object.defineProperty(OrganizationProfileLink, \"props\", {\n value: [\"url\",\"label\"],\n});\n\nexport const OrganizationProfile = Object.assign(_OrganizationProfile, {\n Page: OrganizationProfilePage,\n Link: OrganizationProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue';\nimport { useOrganizationProfileCustomPages } from '../../../utils/useCustomPages';\nimport { useClerk } from '../../../composables';\nimport type { OrganizationProfileProps } from '@clerk/shared/types';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\n\ntype Props = Omit<OrganizationProfileProps, 'customPages'>;\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\n\nconst { customPages, customPagesPortals, addCustomPage } = useOrganizationProfileCustomPages();\n\nconst finalProps = computed(() => ({\n ...props,\n customPages: customPages.value,\n}));\n\nprovide(OrganizationProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationProfile\"\n :unmount=\"clerk?.unmountOrganizationProfile\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import { type Component } from 'vue';\n\nexport const isThatComponent = (v: any, component: Component): v is Component => {\n return !!v && isRenderFunction(v) && v.name === component.name;\n};\n\nconst isRenderFunction = (v: any): v is Component => {\n return 'name' in v && 'setup' in v;\n};\n","import type { Slot } from 'vue';\nimport { computed, h, ref, Teleport } from 'vue';\n\ninterface RawPortal {\n id: string;\n el: HTMLDivElement;\n slot: Slot;\n}\n\nfunction generateElementIdentifier() {\n return Math.random().toString(36).substring(2, 7);\n}\n\nexport const useCustomElementPortal = () => {\n const rawPortals = ref<RawPortal[]>([]);\n const portals = computed(() => {\n return rawPortals.value.map(item => {\n return h(Teleport, { to: item.el }, item.slot());\n });\n });\n\n const mount = (el: HTMLDivElement, slot: Slot) => {\n const id = generateElementIdentifier();\n el.setAttribute('data-clerk-mount-id', id);\n rawPortals.value.push({\n id,\n el,\n slot,\n });\n };\n\n const unmount = (el: HTMLDivElement | undefined) => {\n const id = el?.getAttribute('data-clerk-mount-id');\n if (id) {\n const index = rawPortals.value.findIndex(portal => portal.id === id);\n if (index !== -1) {\n rawPortals.value.splice(index, 1);\n }\n }\n };\n\n return {\n portals,\n mount,\n unmount,\n };\n};\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { OrganizationSwitcherProps, OrganizationProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { useOrganizationProfileCustomPages } from '../../../utils/useCustomPages';\nimport { computed, provide } from 'vue';\nimport { OrganizationProfileInjectionKey } from '../../../keys';\n\nconst clerk = useClerk();\n\ntype Props = Omit<OrganizationSwitcherProps, 'organizationProfileProps' | '__experimental_asStandalone'> & {\n organizationProfileProps?: Pick<OrganizationProfileProps, 'appearance'>;\n};\nconst props = defineProps<Props>();\n\nconst { customPages, customPagesPortals, addCustomPage } = useOrganizationProfileCustomPages();\n\nconst finalProps = computed<Props>(() => ({\n ...props,\n organizationProfileProps: {\n ...(props.organizationProfileProps || {}),\n customPages: customPages.value,\n },\n}));\n\nprovide(OrganizationProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountOrganizationSwitcher\"\n :unmount=\"clerk?.unmountOrganizationSwitcher\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"finalProps\"\n />\n <CustomPortalsRenderer :custom-pages-portals=\"customPagesPortals\" />\n <slot />\n</template>\n","import { OrganizationProfileLink, OrganizationProfilePage } from '../OrganizationProfile';\nimport _OrganizationSwitcher from './OrganizationSwitcher.vue';\n\nexport const OrganizationSwitcher = Object.assign(_OrganizationSwitcher, {\n OrganizationProfilePage,\n OrganizationProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { ClerkHostRenderer } from '../ClerkHostRenderer';\nimport type { UserAvatarProps } from '@clerk/shared/types';\nimport { useClerk } from '../../composables';\n\nconst clerk = useClerk();\nconst props = defineProps<UserAvatarProps>();\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserAvatar\"\n :unmount=\"clerk?.unmountUserAvatar\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n :props=\"props\"\n />\n</template>\n","import { defineComponent, inject, provide } from 'vue';\n\nimport { errorThrower } from '../../../errors/errorThrower';\nimport {\n userButtonMenuActionRenderedError,\n userButtonMenuItemsRenderedError,\n userButtonMenuLinkRenderedError,\n} from '../../../errors/messages';\nimport { UserButtonInjectionKey, UserButtonMenuItemsInjectionKey } from '../../../keys';\nimport type { UserButtonActionProps, UserButtonLinkProps } from '../../../types';\nimport { UserProfileLink, UserProfilePage } from '../UserProfile';\nimport _UserButton from './UserButton.vue';\n\nconst MenuItems = defineComponent((_, { slots }) => {\n const ctx = inject(UserButtonInjectionKey);\n\n if (!ctx) {\n return errorThrower.throw(userButtonMenuItemsRenderedError);\n }\n\n provide(UserButtonMenuItemsInjectionKey, ctx);\n return () => slots.default?.();\n});\n\nexport const MenuAction = defineComponent(\n (props: UserButtonActionProps, { slots }) => {\n const ctx = inject(UserButtonMenuItemsInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userButtonMenuActionRenderedError);\n }\n\n ctx.addCustomMenuItem({\n props,\n slots,\n component: MenuAction,\n });\n\n return () => null;\n },\n { name: 'MenuAction' },\n);\n;Object.defineProperty(MenuAction, \"props\", {\n value: [\"label\",\"onClick\",\"open\"],\n});\n\nexport const MenuLink = defineComponent(\n (props: UserButtonLinkProps, { slots }) => {\n const ctx = inject(UserButtonMenuItemsInjectionKey);\n if (!ctx) {\n return errorThrower.throw(userButtonMenuLinkRenderedError);\n }\n\n ctx.addCustomMenuItem({\n props,\n slots,\n component: MenuLink,\n });\n\n return () => null;\n },\n { name: 'MenuLink' },\n);\n;Object.defineProperty(MenuLink, \"props\", {\n value: [\"href\",\"label\"],\n});\n\nexport const UserButton = Object.assign(_UserButton, {\n MenuItems,\n Action: MenuAction,\n Link: MenuLink,\n UserProfilePage,\n UserProfileLink,\n});\n","<script setup lang=\"ts\">\nimport { useClerk } from '../../../composables';\nimport type { UserButtonProps, UserProfileProps } from '@clerk/shared/types';\nimport { ClerkHostRenderer, CustomPortalsRenderer } from '../../ClerkHostRenderer';\nimport { computed, provide } from 'vue';\nimport { UserButtonInjectionKey, UserProfileInjectionKey } from '../../../keys';\nimport { useUserProfileCustomPages } from '../../../utils/useCustomPages';\nimport { useUserButtonCustomMenuItems } from '../../../utils/useCustomMenuItems';\n\ntype Props = Omit<UserButtonProps, 'userProfileProps' | 'customMenuItems'> & {\n userProfileProps?: Pick<UserProfileProps, 'additionalOAuthScopes' | 'appearance' | 'apiKeysProps'>;\n};\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\n\nconst { customMenuItems, customMenuItemsPortals, addCustomMenuItem } = useUserButtonCustomMenuItems();\nconst { customPages, customPagesPortals, addCustomPage } = useUserProfileCustomPages();\n\nconst finalProps = computed<Props>(() => ({\n ...props,\n userProfileProps: {\n ...(props.userProfileProps || {}),\n customPages: customPages.value,\n },\n customMenuItems: customMenuItems.value,\n}));\n\nprovide(UserButtonInjectionKey, {\n addCustomMenuItem,\n});\nprovide(UserProfileInjectionKey, {\n addCustomPage,\n});\n</script>\n\n<template>\n <ClerkHostRenderer\n :mount=\"clerk?.mountUserButton\"\n :unmount=\"clerk?.unmountUserButton\"\n :props=\"finalProps\"\n :update-props=\"(clerk as any)?.__internal_updateProps\"\n />\n <CustomPortalsRenderer\n :custom-pages-portals=\"customPagesPortals\"\n :custom-menu-items-portals=\"customMenuItemsPortals\"\n />\n <slot />\n</template>\n","import type { CustomMenuItem } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport { ref } from 'vue';\n\nimport { MenuAction, MenuLink } from '../components/ui-components/UserButton';\nimport { userButtonMenuItemActionWrongProps, userButtonMenuItemLinkWrongProps } from '../errors/messages';\nimport type { AddCustomMenuItemParams, UserButtonActionProps, UserButtonLinkProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserButtonCustomMenuItems = () => {\n const customMenuItems = ref<CustomMenuItem[]>([]);\n const { portals: customMenuItemsPortals, mount, unmount } = useCustomElementPortal();\n const reorderItemsLabels = ['manageAccount', 'signOut'];\n\n function addCustomMenuItem(params: AddCustomMenuItemParams) {\n const { props, component, slots } = params;\n const { label, onClick, open, href } = props;\n\n if (isThatComponent(component, MenuAction)) {\n if (isReorderItem(props, slots, reorderItemsLabels)) {\n // This is a reordering item\n customMenuItems.value.push({ label });\n } else if (isCustomMenuItem(props, slots)) {\n const baseItem: CustomMenuItem = {\n label,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n };\n\n if (onClick !== undefined) {\n customMenuItems.value.push({\n ...baseItem,\n onClick,\n open,\n });\n } else if (open !== undefined) {\n customMenuItems.value.push({\n ...baseItem,\n open: open.startsWith('/') ? open : `/${open}`,\n });\n } else {\n // Handle the case where neither onClick nor open is defined\n logErrorInDevMode('Custom menu item must have either onClick or open property');\n return;\n }\n } else {\n logErrorInDevMode(userButtonMenuItemActionWrongProps);\n return;\n }\n }\n\n if (isThatComponent(component, MenuLink)) {\n if (isExternalLink(props, slots)) {\n customMenuItems.value.push({\n label,\n href,\n mountIcon(el) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mount(el, slots.labelIcon!);\n },\n unmountIcon: unmount,\n });\n } else {\n logErrorInDevMode(userButtonMenuItemLinkWrongProps);\n return;\n }\n }\n }\n\n return {\n customMenuItems,\n customMenuItemsPortals,\n addCustomMenuItem,\n };\n};\n\nconst isReorderItem = (props: any, slots: AddCustomMenuItemParams['slots'], validItems: string[]): boolean => {\n const { label, onClick } = props;\n const { labelIcon } = slots;\n return !onClick && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomMenuItem = (props: any, slots: AddCustomMenuItemParams['slots']): props is UserButtonActionProps => {\n const { label, onClick, open } = props;\n const { labelIcon } = slots;\n return !!labelIcon && !!label && (typeof onClick === 'function' || typeof open === 'string');\n};\n\nconst isExternalLink = (props: any, slots: AddCustomMenuItemParams['slots']): props is UserButtonLinkProps => {\n const { label, href } = props;\n const { labelIcon } = slots;\n return !!href && !!labelIcon && !!label;\n};\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignInButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\nconst props = defineProps<SignInButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign in');\n return assertSingleChild(children, 'SignInButton');\n}\n\nfunction clickHandler() {\n const { mode, ...opts } = props;\n\n if (mode === 'modal') {\n return clerk.value?.openSignIn({ ...opts, appearance: props.appearance });\n }\n\n const { withSignUp, ...redirectOpts } = opts;\n\n void clerk.value?.redirectToSignIn({\n ...redirectOpts,\n signInFallbackRedirectUrl: props.fallbackRedirectUrl,\n signInForceRedirectUrl: props.forceRedirectUrl,\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignUpButtonProps } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\nconst props = defineProps<SignUpButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign up');\n return assertSingleChild(children, 'SignUpButton');\n}\n\nfunction clickHandler() {\n const { mode, ...opts } = props;\n\n if (mode === 'modal') {\n return clerk.value?.openSignUp({ ...opts, appearance: props.appearance });\n }\n\n void clerk.value?.redirectToSignUp({\n ...opts,\n signUpFallbackRedirectUrl: props.fallbackRedirectUrl,\n signUpForceRedirectUrl: props.forceRedirectUrl,\n });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { SignOutOptions } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ninterface SignOutButtonProps {\n signOutOptions?: SignOutOptions;\n sessionId?: string;\n redirectUrl?: string;\n}\n\nconst props = defineProps<SignOutButtonProps>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign out');\n return assertSingleChild(children, 'SignOutButton');\n}\n\nfunction clickHandler() {\n const signOutOptions: SignOutOptions = {\n redirectUrl: props.signOutOptions?.redirectUrl ?? props.redirectUrl,\n sessionId: props.signOutOptions?.sessionId ?? props.sessionId,\n };\n void clerk.value?.signOut(signOutOptions);\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { useAttrs, useSlots } from 'vue';\nimport type { RedirectUrlProp } from '@clerk/shared/types';\nimport { useClerk } from '../composables/useClerk';\nimport { assertSingleChild, normalizeWithDefaultValue } from '../utils';\n\ntype Props = RedirectUrlProp & {\n mode?: 'modal' | 'redirect';\n};\n\nconst props = defineProps<Props>();\n\nconst clerk = useClerk();\nconst slots = useSlots();\nconst attrs = useAttrs();\n\nfunction getChildComponent() {\n const children = normalizeWithDefaultValue(slots.default?.({}), 'Sign in with Metamask');\n return assertSingleChild(children, 'SignInWithMetamaskButton');\n}\n\nfunction clickHandler() {\n void clerk.value?.authenticateWithMetamask({ redirectUrl: props.redirectUrl || undefined });\n}\n</script>\n\n<template>\n <component\n :is=\"getChildComponent\"\n v-bind=\"attrs\"\n @click=\"clickHandler\"\n >\n <slot />\n </component>\n</template>\n","import { inBrowser } from '@clerk/shared/browser';\nimport { deriveState } from '@clerk/shared/deriveState';\nimport { loadClerkJsScript, type LoadClerkJsScriptOptions, loadClerkUiScript } from '@clerk/shared/loadClerkJsScript';\nimport type {\n Clerk,\n ClerkOptions,\n ClientResource,\n InitialState,\n IsomorphicClerkOptions,\n MultiDomainAndOrProxy,\n Resources,\n Without,\n} from '@clerk/shared/types';\nimport type { ClerkUiConstructor } from '@clerk/shared/ui';\nimport type { Appearance, Ui } from '@clerk/ui/internal';\nimport type { Plugin } from 'vue';\nimport { computed, ref, shallowRef, triggerRef } from 'vue';\n\nimport { ClerkInjectionKey } from './keys';\ndeclare global {\n interface Window {\n __internal_ClerkUiCtor?: ClerkUiConstructor;\n }\n}\n\nexport type PluginOptions<TUi extends Ui = Ui> = Without<IsomorphicClerkOptions, 'domain' | 'proxyUrl' | 'appearance'> &\n MultiDomainAndOrProxy & {\n initialState?: InitialState;\n appearance?: Appearance<TUi>;\n };\n\nconst SDK_METADATA = {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n};\n\n/**\n * Vue plugin for integrating Clerk.\n *\n * @example\n * ```ts\n * import { createApp } from 'vue'\n * import { clerkPlugin } from '@clerk/vue'\n * import App from './App.vue'\n *\n * const app = createApp(App)\n *\n * app.use(clerkPlugin, {\n * publishableKey: 'pk_'\n * })\n *\n * app.mount('#app')\n * ```\n */\nexport const clerkPlugin: Plugin<[PluginOptions]> = {\n install<TUi extends Ui = Ui>(app: any, pluginOptions: PluginOptions<TUi>) {\n const { initialState } = pluginOptions || {};\n\n const loaded = shallowRef(false);\n const clerk = shallowRef<Clerk | null>(null);\n\n const resources = ref<Resources>({\n client: undefined as unknown as ClientResource,\n session: undefined,\n user: undefined,\n organization: undefined,\n });\n\n const options = {\n ...pluginOptions,\n sdkMetadata: pluginOptions.sdkMetadata || SDK_METADATA,\n } as LoadClerkJsScriptOptions;\n\n // We need this check for SSR apps like Nuxt as it will try to run this code on the server\n // and loadClerkJsScript contains browser-specific code\n if (inBrowser()) {\n void (async () => {\n try {\n const clerkPromise = loadClerkJsScript(options);\n const clerkUiCtorPromise = pluginOptions.clerkUiCtor\n ? Promise.resolve(pluginOptions.clerkUiCtor)\n : (async () => {\n await loadClerkUiScript(options);\n if (!window.__internal_ClerkUiCtor) {\n throw new Error('Failed to download latest Clerk UI. Contact support@clerk.com.');\n }\n return window.__internal_ClerkUiCtor;\n })();\n\n await clerkPromise;\n\n if (!window.Clerk) {\n throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n }\n\n clerk.value = window.Clerk;\n const loadOptions = { ...options, clerkUiCtor: clerkUiCtorPromise } as unknown as ClerkOptions;\n await window.Clerk.load(loadOptions);\n loaded.value = true;\n\n if (clerk.value) {\n clerk.value.addListener(payload => {\n resources.value = payload;\n });\n\n // When Clerk updates its state internally, Vue's reactivity system doesn't detect\n // the change since it's an external object being mutated. triggerRef() forces Vue\n // to re-evaluate all dependencies regardless of how the value was changed.\n triggerRef(clerk);\n }\n } catch (err) {\n const error = err as Error;\n console.error(error.stack || error.message || error);\n }\n })();\n }\n\n const derivedState = computed(() => deriveState(loaded.value, resources.value, initialState));\n\n const authCtx = computed(() => {\n const {\n sessionId,\n userId,\n orgId,\n actor,\n orgRole,\n orgSlug,\n orgPermissions,\n sessionStatus,\n sessionClaims,\n factorVerificationAge,\n } = derivedState.value;\n return {\n sessionId,\n userId,\n actor,\n orgId,\n orgRole,\n orgSlug,\n orgPermissions,\n sessionStatus,\n sessionClaims,\n factorVerificationAge,\n };\n });\n const clientCtx = computed(() => resources.value.client);\n const userCtx = computed(() => derivedState.value.user);\n const sessionCtx = computed(() => derivedState.value.session);\n const organizationCtx = computed(() => derivedState.value.organization);\n\n app.provide(ClerkInjectionKey, {\n clerk,\n authCtx,\n clientCtx,\n sessionCtx,\n userCtx,\n organizationCtx,\n });\n },\n};\n"],"mappings":"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","names":["defineComponent","watch","watch","computed","computed","computed","computed","eventMethodCalled","computed","watch","watch","eventMethodCalled","computed","computed","computed","computed","watch","watch","computed","watch","defineComponent","defineComponent","watch","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","_createBlock","defineComponent","inject","computed","provide","ref","defineComponent","computed","computed","defineComponent","defineComponent","computed","h","ref","ref","computed","provide","_createVNode","_renderSlot","defineComponent","inject","defineComponent","inject","computed","provide","computed","provide","_createVNode","_renderSlot","_createBlock","defineComponent","inject","provide","computed","provide","logErrorInDevMode","ref","ref","isReorderItem","logErrorInDevMode","isExternalLink","computed","provide","_createVNode","_renderSlot","defineComponent","inject","provide","defineComponent","inject","_createBlock","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","useAttrs","useSlots","useSlots","useAttrs","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_renderSlot","computed","ref","ref","computed"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clerk/vue",
|
|
3
|
-
"version": "2.0.0-snapshot.
|
|
3
|
+
"version": "2.0.0-snapshot.v20260105214115",
|
|
4
4
|
"description": "Clerk SDK for Vue",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"clerk",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"dist"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@clerk/shared": "4.0.0-snapshot.
|
|
52
|
+
"@clerk/shared": "4.0.0-snapshot.v20260105214115"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@testing-library/vue": "^8.1.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"unplugin-vue": "^7.0.8",
|
|
59
59
|
"vue": "3.5.24",
|
|
60
60
|
"vue-tsc": "^3.1.4",
|
|
61
|
-
"@clerk/ui": "1.0.0-snapshot.
|
|
61
|
+
"@clerk/ui": "1.0.0-snapshot.v20260105214115"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"vue": "^3.2.0"
|