@clerk/vue 2.0.0-snapshot.v20251203152900 → 2.0.0-snapshot.v20251204143242

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.
@@ -1,5 +1,5 @@
1
1
  import type { ErrorThrowerOptions } from '@clerk/shared/error';
2
- declare const errorThrower: import("@clerk/shared/error-BYHbh-4N").v;
2
+ declare const errorThrower: import("@clerk/shared/error-KRW-ECGa").y;
3
3
  export { errorThrower };
4
4
  /**
5
5
  * Overrides options of the internal errorThrower (eg setting packageName prefix).
package/dist/index.js CHANGED
@@ -215,7 +215,7 @@ function updateClerkOptions(options) {
215
215
  },
216
216
  appearance: options.appearance
217
217
  };
218
- void window.Clerk.__unstable__updateProps(updateOptions);
218
+ void window.Clerk.__internal_updateProps(updateOptions);
219
219
  }
220
220
 
221
221
  // src/components/controlComponents.ts
@@ -452,7 +452,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
452
452
  transferable: $setup.hasInitialTransferable ? _ctx.$props.transferable : void 0,
453
453
  withSignUp: $setup.hasInitialWithSignUp ? _ctx.$props.withSignUp : void 0
454
454
  },
455
- "update-props": $setup.clerk?.__unstable__updateProps
455
+ "update-props": $setup.clerk?.__internal_updateProps
456
456
  }, null, 8, ["mount", "unmount", "props", "update-props"]);
457
457
  }
458
458
  var SignIn_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/javascript/javascript/packages/vue/src/components/ui-components/SignIn.vue"]]);
@@ -495,7 +495,7 @@ function _sfc_render2(_ctx, _cache, $props, $setup, $data, $options) {
495
495
  mount: $setup.clerk?.mountSignUp,
496
496
  unmount: $setup.clerk?.unmountSignUp,
497
497
  props: $setup.props,
498
- "update-props": $setup.clerk?.__unstable__updateProps
498
+ "update-props": $setup.clerk?.__internal_updateProps
499
499
  }, null, 8, ["mount", "unmount", "props", "update-props"]);
500
500
  }
501
501
  var SignUp_default = /* @__PURE__ */ export_helper_default(_sfc_main2, [["render", _sfc_render2], ["__file", "/home/runner/work/javascript/javascript/packages/vue/src/components/ui-components/SignUp.vue"]]);
@@ -558,7 +558,7 @@ function _sfc_render4(_ctx, _cache, $props, $setup, $data, $options) {
558
558
  return _openBlock4(), _createBlock4($setup["ClerkHostRenderer"], {
559
559
  mount: $setup.clerk?.mountWaitlist,
560
560
  unmount: $setup.clerk?.unmountWaitlist,
561
- "update-props": $setup.clerk?.__unstable__updateProps,
561
+ "update-props": $setup.clerk?.__internal_updateProps,
562
562
  props: $setup.props
563
563
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
564
564
  }
@@ -591,7 +591,7 @@ function _sfc_render5(_ctx, _cache, $props, $setup, $data, $options) {
591
591
  return _openBlock5(), _createBlock5($setup["ClerkHostRenderer"], {
592
592
  mount: $setup.clerk?.mountCreateOrganization,
593
593
  unmount: $setup.clerk?.unmountCreateOrganization,
594
- "update-props": $setup.clerk?.__unstable__updateProps,
594
+ "update-props": $setup.clerk?.__internal_updateProps,
595
595
  props: $setup.props
596
596
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
597
597
  }
@@ -625,7 +625,7 @@ function _sfc_render6(_ctx, _cache, $props, $setup, $data, $options) {
625
625
  return _openBlock6(), _createBlock6($setup["ClerkHostRenderer"], {
626
626
  mount: $setup.clerk?.mountOrganizationList,
627
627
  unmount: $setup.clerk?.unmountOrganizationList,
628
- "update-props": $setup.clerk?.__unstable__updateProps,
628
+ "update-props": $setup.clerk?.__internal_updateProps,
629
629
  props: $setup.props
630
630
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
631
631
  }
@@ -659,7 +659,7 @@ function _sfc_render7(_ctx, _cache, $props, $setup, $data, $options) {
659
659
  return _openBlock7(), _createBlock7($setup["ClerkHostRenderer"], {
660
660
  mount: $setup.clerk?.mountPricingTable,
661
661
  unmount: $setup.clerk?.unmountPricingTable,
662
- "update-props": $setup.clerk?.__unstable__updateProps,
662
+ "update-props": $setup.clerk?.__internal_updateProps,
663
663
  props: $setup.props
664
664
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
665
665
  }
@@ -690,7 +690,7 @@ function _sfc_render8(_ctx, _cache, $props, $setup, $data, $options) {
690
690
  return _openBlock8(), _createBlock8($setup["ClerkHostRenderer"], {
691
691
  mount: $setup.clerk?.mountAPIKeys,
692
692
  unmount: $setup.clerk?.unmountAPIKeys,
693
- "update-props": $setup.clerk?.__unstable__updateProps,
693
+ "update-props": $setup.clerk?.__internal_updateProps,
694
694
  props: $setup.props
695
695
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
696
696
  }
@@ -754,7 +754,7 @@ function _sfc_render9(_ctx, _cache, $props, $setup, $data, $options) {
754
754
  mount: $setup.clerk?.mountOrganizationProfile,
755
755
  unmount: $setup.clerk?.unmountOrganizationProfile,
756
756
  props: $setup.finalProps,
757
- "update-props": $setup.clerk?.__unstable__updateProps
757
+ "update-props": $setup.clerk?.__internal_updateProps
758
758
  }, null, 8, ["mount", "unmount", "props", "update-props"]),
759
759
  _createVNode($setup["CustomPortalsRenderer"], { "custom-pages-portals": $setup.customPagesPortals }, null, 8, ["custom-pages-portals"]),
760
760
  _renderSlot(_ctx.$slots, "default")
@@ -993,7 +993,7 @@ function _sfc_render10(_ctx, _cache, $props, $setup, $data, $options) {
993
993
  mount: $setup.clerk?.mountUserProfile,
994
994
  unmount: $setup.clerk?.unmountUserProfile,
995
995
  props: $setup.finalProps,
996
- "update-props": $setup.clerk?.__unstable__updateProps
996
+ "update-props": $setup.clerk?.__internal_updateProps
997
997
  }, null, 8, ["mount", "unmount", "props", "update-props"]),
998
998
  _createVNode2($setup["CustomPortalsRenderer"], { "custom-pages-portals": $setup.customPagesPortals }, null, 8, ["custom-pages-portals"]),
999
999
  _renderSlot2(_ctx.$slots, "default")
@@ -1099,7 +1099,7 @@ function _sfc_render11(_ctx, _cache, $props, $setup, $data, $options) {
1099
1099
  _createVNode3($setup["ClerkHostRenderer"], {
1100
1100
  mount: $setup.clerk?.mountOrganizationSwitcher,
1101
1101
  unmount: $setup.clerk?.unmountOrganizationSwitcher,
1102
- "update-props": $setup.clerk?.__unstable__updateProps,
1102
+ "update-props": $setup.clerk?.__internal_updateProps,
1103
1103
  props: $setup.finalProps
1104
1104
  }, null, 8, ["mount", "unmount", "update-props", "props"]),
1105
1105
  _createVNode3($setup["CustomPortalsRenderer"], { "custom-pages-portals": $setup.customPagesPortals }, null, 8, ["custom-pages-portals"]),
@@ -1141,7 +1141,7 @@ function _sfc_render12(_ctx, _cache, $props, $setup, $data, $options) {
1141
1141
  return _openBlock12(), _createBlock9($setup["ClerkHostRenderer"], {
1142
1142
  mount: $setup.clerk?.mountUserAvatar,
1143
1143
  unmount: $setup.clerk?.unmountUserAvatar,
1144
- "update-props": $setup.clerk?.__unstable__updateProps,
1144
+ "update-props": $setup.clerk?.__internal_updateProps,
1145
1145
  props: $setup.props
1146
1146
  }, null, 8, ["mount", "unmount", "update-props", "props"]);
1147
1147
  }
@@ -1286,7 +1286,7 @@ function _sfc_render13(_ctx, _cache, $props, $setup, $data, $options) {
1286
1286
  mount: $setup.clerk?.mountUserButton,
1287
1287
  unmount: $setup.clerk?.unmountUserButton,
1288
1288
  props: $setup.finalProps,
1289
- "update-props": $setup.clerk?.__unstable__updateProps
1289
+ "update-props": $setup.clerk?.__internal_updateProps
1290
1290
  }, null, 8, ["mount", "unmount", "props", "update-props"]),
1291
1291
  _createVNode4($setup["CustomPortalsRenderer"], {
1292
1292
  "custom-pages-portals": $setup.customPagesPortals,
@@ -1576,7 +1576,7 @@ import { loadClerkJsScript, loadClerkUiScript } from "@clerk/shared/loadClerkJsS
1576
1576
  import { computed as computed12, ref as ref5, shallowRef, triggerRef } from "vue";
1577
1577
  var SDK_METADATA = {
1578
1578
  name: "@clerk/vue",
1579
- version: "2.0.0-snapshot.v20251203152900",
1579
+ version: "2.0.0-snapshot.v20251204143242",
1580
1580
  environment: process.env.NODE_ENV
1581
1581
  };
1582
1582
  var clerkPlugin = {
@@ -1600,10 +1600,10 @@ var clerkPlugin = {
1600
1600
  const clerkPromise = loadClerkJsScript(options);
1601
1601
  const clerkUiCtorPromise = pluginOptions.clerkUiCtor ? Promise.resolve(pluginOptions.clerkUiCtor) : (async () => {
1602
1602
  await loadClerkUiScript(options);
1603
- if (!window.__unstable_ClerkUiCtor) {
1603
+ if (!window.__internal_ClerkUiCtor) {
1604
1604
  throw new Error("Failed to download latest Clerk UI. Contact support@clerk.com.");
1605
1605
  }
1606
- return window.__unstable_ClerkUiCtor;
1606
+ return window.__internal_ClerkUiCtor;
1607
1607
  })();
1608
1608
  await clerkPromise;
1609
1609
  if (!window.Clerk) {
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: { baseTheme: 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 - `__unstable__updateProps` is not exposed as public API from `@clerk/types`\n void window.Clerk.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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'],\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'],\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)?.__unstable__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)?.__unstable__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)?.__unstable__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)?.__unstable__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 __unstable_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.__unstable_ClerkUiCtor) {\n throw new Error('Failed to download latest Clerk UI. Contact support@clerk.com.');\n }\n return window.__unstable_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 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'],\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'],\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/dist/plugin.d.ts CHANGED
@@ -4,7 +4,7 @@ import type { Appearance, Ui } from '@clerk/ui/internal';
4
4
  import type { Plugin } from 'vue';
5
5
  declare global {
6
6
  interface Window {
7
- __unstable_ClerkUiCtor?: ClerkUiConstructor;
7
+ __internal_ClerkUiCtor?: ClerkUiConstructor;
8
8
  }
9
9
  }
10
10
  export type PluginOptions<TUi extends Ui = Ui> = Without<IsomorphicClerkOptions, 'domain' | 'proxyUrl' | 'appearance'> & MultiDomainAndOrProxy & {
@@ -13,7 +13,7 @@ type ClerkUpdateOptions<TUi extends Ui = Ui> = Pick<ClerkOptions, 'localization'
13
13
  * import { dark } from '@clerk/ui/themes';
14
14
  *
15
15
  * updateClerkOptions({
16
- * appearance: { baseTheme: dark },
16
+ * appearance: { theme: dark },
17
17
  * localization: frFR
18
18
  * });
19
19
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerk/vue",
3
- "version": "2.0.0-snapshot.v20251203152900",
3
+ "version": "2.0.0-snapshot.v20251204143242",
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.v20251203152900"
52
+ "@clerk/shared": "^4.0.0-snapshot.v20251204143242"
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.v20251203152900"
61
+ "@clerk/ui": "^1.0.0-snapshot.v20251204143242"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "vue": "^3.2.0"