@clerk/ui 1.0.0-snapshot.v20251218183643 → 1.0.0-snapshot.v20260105214115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/207_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  2. package/dist/217_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  3. package/dist/360_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  4. package/dist/444_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  5. package/dist/573_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  6. package/dist/970_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  7. package/dist/ClerkUi.js +2 -2
  8. package/dist/apiKeys_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  9. package/dist/blankcaptcha_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  10. package/dist/{checkout_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → checkout_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +1 -1
  11. package/dist/checkout_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  12. package/dist/components/Checkout/CheckoutPage.js +1 -1
  13. package/dist/components/Checkout/CheckoutPage.js.map +1 -1
  14. package/dist/components/Checkout/parts.js +1 -1
  15. package/dist/components/Checkout/parts.js.map +1 -1
  16. package/dist/components/OrganizationList/UserMembershipList.js +1 -1
  17. package/dist/components/OrganizationList/UserMembershipList.js.map +1 -1
  18. package/dist/components/OrganizationSwitcher/OrganizationSwitcherPopover.js +1 -1
  19. package/dist/components/OrganizationSwitcher/OrganizationSwitcherPopover.js.map +1 -1
  20. package/dist/components/OrganizationSwitcher/OrganizationSwitcherTrigger.js +1 -1
  21. package/dist/components/OrganizationSwitcher/OrganizationSwitcherTrigger.js.map +1 -1
  22. package/dist/components/OrganizationSwitcher/UserMembershipList.js +1 -1
  23. package/dist/components/OrganizationSwitcher/UserMembershipList.js.map +1 -1
  24. package/dist/components/SignIn/index.js +1 -1
  25. package/dist/components/SignIn/index.js.map +1 -1
  26. package/dist/components/SignUp/index.js +1 -1
  27. package/dist/components/SignUp/index.js.map +1 -1
  28. package/dist/components/UserProfile/Web3Form.js +32 -45
  29. package/dist/components/UserProfile/Web3Form.js.map +1 -1
  30. package/dist/components/UserProfile/Web3Section.js +6 -3
  31. package/dist/components/UserProfile/Web3Section.js.map +1 -1
  32. package/dist/copy-api-key-modal_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  33. package/dist/createorganization_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  34. package/dist/enableOrganizationsPrompt_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  35. package/dist/framework_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  36. package/dist/impersonationfab_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  37. package/dist/index.js +1 -1
  38. package/dist/internal/index.js +1 -1
  39. package/dist/keylessPrompt_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  40. package/dist/oauthConsent_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  41. package/dist/onetap_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  42. package/dist/op-api-keys-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  43. package/dist/op-billing-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  44. package/dist/op-plans-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  45. package/dist/organizationlist_ui_bd1c40_1.0.0-snapshot.v20260105214115.js +1 -0
  46. package/dist/organizationlist_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  47. package/dist/organizationprofile_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  48. package/dist/organizationswitcher_ui_bd1c40_1.0.0-snapshot.v20260105214115.js +1 -0
  49. package/dist/organizationswitcher_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  50. package/dist/payment-attempt-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  51. package/dist/planDetails_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  52. package/dist/prefetchorganizationlist_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  53. package/dist/pricingTable_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  54. package/dist/revoke-api-key-modal_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  55. package/dist/sessionTasks_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  56. package/dist/{signin_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → signin_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +1 -1
  57. package/dist/signin_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  58. package/dist/{signup_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → signup_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +1 -1
  59. package/dist/signup_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  60. package/dist/statement-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  61. package/dist/subscriptionDetails_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  62. package/dist/taskChooseOrganization_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  63. package/dist/taskResetPassword_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  64. package/dist/{ui-common_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → ui-common_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +7 -7
  65. package/dist/ui-common_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  66. package/dist/ui.browser.js +1 -1
  67. package/dist/ui.legacy.browser.js +1 -0
  68. package/dist/up-api-keys-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  69. package/dist/up-billing-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  70. package/dist/up-plans-page_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  71. package/dist/useravatar_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  72. package/dist/userbutton_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  73. package/dist/{userprofile_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → userprofile_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +2 -2
  74. package/dist/userprofile_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  75. package/dist/userverification_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  76. package/dist/utils/errorHandler.js +1 -7
  77. package/dist/utils/errorHandler.js.map +1 -1
  78. package/dist/{vendors_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → vendors_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +1 -1
  79. package/dist/vendors_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  80. package/dist/waitlist_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  81. package/dist/{web3-solana-wallet-buttons_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → web3-solana-wallet-buttons_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +3 -3
  82. package/dist/web3-solana-wallet-buttons_ui_dd6371_1.0.0-snapshot.v20260105214115.js +1 -0
  83. package/package.json +8 -5
  84. package/dist/organizationlist_ui_b31bc8_1.0.0-snapshot.v20251218183643.js +0 -1
  85. package/dist/organizationswitcher_ui_b31bc8_1.0.0-snapshot.v20251218183643.js +0 -1
  86. /package/dist/{207_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 207_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  87. /package/dist/{217_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 217_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  88. /package/dist/{360_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 360_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  89. /package/dist/{444_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 444_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  90. /package/dist/{573_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 573_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  91. /package/dist/{970_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → 970_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  92. /package/dist/{apiKeys_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → apiKeys_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  93. /package/dist/{blankcaptcha_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → blankcaptcha_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  94. /package/dist/{copy-api-key-modal_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → copy-api-key-modal_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  95. /package/dist/{createorganization_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → createorganization_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  96. /package/dist/{enableOrganizationsPrompt_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → enableOrganizationsPrompt_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  97. /package/dist/{framework_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → framework_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  98. /package/dist/{impersonationfab_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → impersonationfab_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  99. /package/dist/{keylessPrompt_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → keylessPrompt_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  100. /package/dist/{oauthConsent_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → oauthConsent_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  101. /package/dist/{onetap_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → onetap_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  102. /package/dist/{op-api-keys-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → op-api-keys-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  103. /package/dist/{op-billing-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → op-billing-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  104. /package/dist/{op-plans-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → op-plans-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  105. /package/dist/{organizationprofile_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → organizationprofile_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  106. /package/dist/{payment-attempt-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → payment-attempt-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  107. /package/dist/{planDetails_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → planDetails_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  108. /package/dist/{prefetchorganizationlist_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → prefetchorganizationlist_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  109. /package/dist/{pricingTable_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → pricingTable_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  110. /package/dist/{revoke-api-key-modal_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → revoke-api-key-modal_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  111. /package/dist/{sessionTasks_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → sessionTasks_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  112. /package/dist/{statement-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → statement-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  113. /package/dist/{subscriptionDetails_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → subscriptionDetails_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  114. /package/dist/{taskChooseOrganization_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → taskChooseOrganization_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  115. /package/dist/{taskResetPassword_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → taskResetPassword_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  116. /package/dist/{up-api-keys-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → up-api-keys-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  117. /package/dist/{up-billing-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → up-billing-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  118. /package/dist/{up-plans-page_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → up-plans-page_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  119. /package/dist/{useravatar_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → useravatar_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  120. /package/dist/{userbutton_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → userbutton_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  121. /package/dist/{userverification_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → userverification_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
  122. /package/dist/{waitlist_ui_b31bc8_1.0.0-snapshot.v20251218183643.js → waitlist_ui_bd1c40_1.0.0-snapshot.v20260105214115.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationSwitcherPopover.js","names":["CogFilled","currentOrg"],"sources":["../../../src/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx"],"sourcesContent":["import { useClerk, useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport type { OrganizationResource } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { Actions, SmallAction } from '@/ui/elements/Actions';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { PopoverCard } from '@/ui/elements/PopoverCard';\n\nimport { NotificationCountBadge, withProtect } from '../../common';\nimport { useEnvironment, useOrganizationSwitcherContext } from '../../contexts';\nimport { descriptors, Flex, localizationKeys } from '../../customizables';\nimport { RootBox } from '../../elements/RootBox';\nimport { CogFilled } from '../../icons';\nimport type { PropsOfComponent, ThemableCssProp } from '../../styledSystem';\nimport { OrganizationActionList } from './OtherOrganizationActions';\n\ntype OrganizationSwitcherPopoverProps = { close?: (open: boolean) => void } & PropsOfComponent<typeof PopoverCard.Root>;\n\nexport const OrganizationSwitcherPopover = React.forwardRef<HTMLDivElement, OrganizationSwitcherPopoverProps>(\n (props, ref) => {\n const { close: unsafeClose, ...rest } = props;\n const close = () => unsafeClose?.(false);\n const card = useCardState();\n const { __experimental_asStandalone } = useOrganizationSwitcherContext();\n const { openOrganizationProfile, openCreateOrganization } = useClerk();\n const { organization: currentOrg } = useOrganization();\n const { isLoaded, setActive } = useOrganizationList();\n const {\n hidePersonal,\n createOrganizationMode,\n organizationProfileMode,\n afterLeaveOrganizationUrl,\n afterCreateOrganizationUrl,\n navigateCreateOrganization,\n navigateOrganizationProfile,\n afterSelectOrganizationUrl,\n afterSelectPersonalUrl,\n\n organizationProfileProps,\n skipInvitationScreen,\n } = useOrganizationSwitcherContext();\n\n const { user } = useUser();\n\n if (!user) {\n return null;\n }\n\n const { username, primaryEmailAddress, primaryPhoneNumber, ...userWithoutIdentifiers } = user;\n\n if (!isLoaded) {\n return null;\n }\n\n const handleOrganizationClicked = (organization: OrganizationResource) => {\n return card\n .runAsync(() =>\n setActive({\n organization,\n redirectUrl: afterSelectOrganizationUrl(organization),\n }),\n )\n .then(close);\n };\n\n const handlePersonalWorkspaceClicked = () => {\n return card\n .runAsync(() => setActive({ organization: null, redirectUrl: afterSelectPersonalUrl(user) }))\n .then(close);\n };\n\n const handleCreateOrganizationClicked = () => {\n close();\n if (createOrganizationMode === 'navigation') {\n return navigateCreateOrganization();\n }\n return openCreateOrganization({ afterCreateOrganizationUrl, skipInvitationScreen });\n };\n\n const handleItemClick = () => {\n close();\n if (organizationProfileMode === 'navigation') {\n return navigateOrganizationProfile();\n }\n\n return openOrganizationProfile({\n ...organizationProfileProps,\n afterLeaveOrganizationUrl,\n });\n };\n\n const manageOrganizationButton = (\n <SmallAction\n elementDescriptor={descriptors.organizationSwitcherPopoverActionButton}\n elementId={descriptors.organizationSwitcherPopoverActionButton.setId('manageOrganization')}\n iconBoxElementDescriptor={descriptors.organizationSwitcherPopoverActionButtonIconBox}\n iconBoxElementId={descriptors.organizationSwitcherPopoverActionButtonIconBox.setId('manageOrganization')}\n iconElementDescriptor={descriptors.organizationSwitcherPopoverActionButtonIcon}\n iconElementId={descriptors.organizationSwitcherPopoverActionButtonIcon.setId('manageOrganization')}\n icon={CogFilled}\n label={localizationKeys('organizationSwitcher.action__manageOrganization')}\n onClick={() => handleItemClick()}\n trailing={<NotificationCountBadgeManageButton />}\n focusRing\n />\n );\n\n const selectedOrganizationPreview = (currentOrg: OrganizationResource) => (\n <Flex\n justify='between'\n align='center'\n sx={t => ({\n width: '100%',\n paddingRight: t.space.$5,\n })}\n >\n <OrganizationPreview\n elementId={'organizationSwitcherActiveOrganization'}\n organization={currentOrg}\n user={user}\n mainIdentifierVariant='buttonLarge'\n sx={t => ({\n padding: `${t.space.$4} ${t.space.$5}`,\n })}\n />\n <Actions role='menu'>{manageOrganizationButton}</Actions>\n </Flex>\n );\n\n return (\n <RootBox elementDescriptor={descriptors.organizationSwitcherPopoverRootBox}>\n <PopoverCard.Root\n elementDescriptor={descriptors.organizationSwitcherPopoverCard}\n ref={ref}\n role='dialog'\n aria-label={`${currentOrg?.name} is active`}\n shouldEntryAnimate={!__experimental_asStandalone}\n {...rest}\n >\n <PopoverCard.Content elementDescriptor={descriptors.organizationSwitcherPopoverMain}>\n <Actions\n elementDescriptor={descriptors.organizationSwitcherPopoverActions}\n role='menu'\n >\n {currentOrg\n ? selectedOrganizationPreview(currentOrg)\n : !hidePersonal && (\n <PersonalWorkspacePreview\n user={userWithoutIdentifiers}\n sx={t => ({\n padding: `${t.space.$4} ${t.space.$5}`,\n width: '100%',\n })}\n title={localizationKeys('organizationSwitcher.personalWorkspace')}\n />\n )}\n <OrganizationActionList\n onCreateOrganizationClick={handleCreateOrganizationClicked}\n onPersonalWorkspaceClick={handlePersonalWorkspaceClicked}\n onOrganizationClick={handleOrganizationClicked}\n />\n </Actions>\n </PopoverCard.Content>\n <PopoverCard.Footer elementDescriptor={descriptors.organizationSwitcherPopoverFooter} />\n </PopoverCard.Root>\n </RootBox>\n );\n },\n);\n\nconst NotificationCountBadgeManageButton = withProtect(\n ({ sx }: { sx?: ThemableCssProp }) => {\n const { organizationSettings } = useEnvironment();\n\n const isDomainsEnabled = organizationSettings?.domains?.enabled;\n\n const { membershipRequests } = useOrganization({\n membershipRequests: isDomainsEnabled || undefined,\n });\n\n if (!membershipRequests?.count) {\n return null;\n }\n\n return (\n <NotificationCountBadge\n notificationCount={membershipRequests.count}\n containerSx={sx}\n />\n );\n },\n {\n // if the user is not able to accept a request we should not notify them\n permission: 'org:sys_memberships:manage',\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"OrganizationSwitcherPopover.js","names":["CogFilled","currentOrg"],"sources":["../../../src/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx"],"sourcesContent":["import { useClerk, useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport type { OrganizationResource } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { Actions, SmallAction } from '@/ui/elements/Actions';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { PopoverCard } from '@/ui/elements/PopoverCard';\n\nimport { NotificationCountBadge, withProtect } from '../../common';\nimport { useEnvironment, useOrganizationSwitcherContext } from '../../contexts';\nimport { descriptors, Flex, localizationKeys } from '../../customizables';\nimport { RootBox } from '../../elements/RootBox';\nimport { CogFilled } from '../../icons';\nimport type { PropsOfComponent, ThemableCssProp } from '../../styledSystem';\nimport { OrganizationActionList } from './OtherOrganizationActions';\n\ntype OrganizationSwitcherPopoverProps = { close?: (open: boolean) => void } & PropsOfComponent<typeof PopoverCard.Root>;\n\nexport const OrganizationSwitcherPopover = React.forwardRef<HTMLDivElement, OrganizationSwitcherPopoverProps>(\n (props, ref) => {\n const { close: unsafeClose, ...rest } = props;\n const close = () => unsafeClose?.(false);\n const card = useCardState();\n const { __experimental_asStandalone } = useOrganizationSwitcherContext();\n const { openOrganizationProfile, openCreateOrganization } = useClerk();\n const { organization: currentOrg } = useOrganization();\n const { isLoaded, setActive } = useOrganizationList();\n const {\n hidePersonal,\n createOrganizationMode,\n organizationProfileMode,\n afterLeaveOrganizationUrl,\n afterCreateOrganizationUrl,\n navigateCreateOrganization,\n navigateOrganizationProfile,\n afterSelectOrganizationUrl,\n afterSelectPersonalUrl,\n\n organizationProfileProps,\n skipInvitationScreen,\n } = useOrganizationSwitcherContext();\n\n const { user } = useUser();\n\n if (!user) {\n return null;\n }\n\n const { primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet, username, ...userWithoutIdentifiers } = user;\n\n if (!isLoaded) {\n return null;\n }\n\n const handleOrganizationClicked = (organization: OrganizationResource) => {\n return card\n .runAsync(() =>\n setActive({\n organization,\n redirectUrl: afterSelectOrganizationUrl(organization),\n }),\n )\n .then(close);\n };\n\n const handlePersonalWorkspaceClicked = () => {\n return card\n .runAsync(() => setActive({ organization: null, redirectUrl: afterSelectPersonalUrl(user) }))\n .then(close);\n };\n\n const handleCreateOrganizationClicked = () => {\n close();\n if (createOrganizationMode === 'navigation') {\n return navigateCreateOrganization();\n }\n return openCreateOrganization({ afterCreateOrganizationUrl, skipInvitationScreen });\n };\n\n const handleItemClick = () => {\n close();\n if (organizationProfileMode === 'navigation') {\n return navigateOrganizationProfile();\n }\n\n return openOrganizationProfile({\n ...organizationProfileProps,\n afterLeaveOrganizationUrl,\n });\n };\n\n const manageOrganizationButton = (\n <SmallAction\n elementDescriptor={descriptors.organizationSwitcherPopoverActionButton}\n elementId={descriptors.organizationSwitcherPopoverActionButton.setId('manageOrganization')}\n iconBoxElementDescriptor={descriptors.organizationSwitcherPopoverActionButtonIconBox}\n iconBoxElementId={descriptors.organizationSwitcherPopoverActionButtonIconBox.setId('manageOrganization')}\n iconElementDescriptor={descriptors.organizationSwitcherPopoverActionButtonIcon}\n iconElementId={descriptors.organizationSwitcherPopoverActionButtonIcon.setId('manageOrganization')}\n icon={CogFilled}\n label={localizationKeys('organizationSwitcher.action__manageOrganization')}\n onClick={() => handleItemClick()}\n trailing={<NotificationCountBadgeManageButton />}\n focusRing\n />\n );\n\n const selectedOrganizationPreview = (currentOrg: OrganizationResource) => (\n <Flex\n justify='between'\n align='center'\n sx={t => ({\n width: '100%',\n paddingRight: t.space.$5,\n })}\n >\n <OrganizationPreview\n elementId={'organizationSwitcherActiveOrganization'}\n organization={currentOrg}\n user={user}\n mainIdentifierVariant='buttonLarge'\n sx={t => ({\n padding: `${t.space.$4} ${t.space.$5}`,\n })}\n />\n <Actions role='menu'>{manageOrganizationButton}</Actions>\n </Flex>\n );\n\n return (\n <RootBox elementDescriptor={descriptors.organizationSwitcherPopoverRootBox}>\n <PopoverCard.Root\n elementDescriptor={descriptors.organizationSwitcherPopoverCard}\n ref={ref}\n role='dialog'\n aria-label={`${currentOrg?.name} is active`}\n shouldEntryAnimate={!__experimental_asStandalone}\n {...rest}\n >\n <PopoverCard.Content elementDescriptor={descriptors.organizationSwitcherPopoverMain}>\n <Actions\n elementDescriptor={descriptors.organizationSwitcherPopoverActions}\n role='menu'\n >\n {currentOrg\n ? selectedOrganizationPreview(currentOrg)\n : !hidePersonal && (\n <PersonalWorkspacePreview\n user={userWithoutIdentifiers}\n sx={t => ({\n padding: `${t.space.$4} ${t.space.$5}`,\n width: '100%',\n })}\n title={localizationKeys('organizationSwitcher.personalWorkspace')}\n />\n )}\n <OrganizationActionList\n onCreateOrganizationClick={handleCreateOrganizationClicked}\n onPersonalWorkspaceClick={handlePersonalWorkspaceClicked}\n onOrganizationClick={handleOrganizationClicked}\n />\n </Actions>\n </PopoverCard.Content>\n <PopoverCard.Footer elementDescriptor={descriptors.organizationSwitcherPopoverFooter} />\n </PopoverCard.Root>\n </RootBox>\n );\n },\n);\n\nconst NotificationCountBadgeManageButton = withProtect(\n ({ sx }: { sx?: ThemableCssProp }) => {\n const { organizationSettings } = useEnvironment();\n\n const isDomainsEnabled = organizationSettings?.domains?.enabled;\n\n const { membershipRequests } = useOrganization({\n membershipRequests: isDomainsEnabled || undefined,\n });\n\n if (!membershipRequests?.count) {\n return null;\n }\n\n return (\n <NotificationCountBadge\n notificationCount={membershipRequests.count}\n containerSx={sx}\n />\n );\n },\n {\n // if the user is not able to accept a request we should not notify them\n permission: 'org:sys_memberships:manage',\n },\n);\n"],"mappings":"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"}
@@ -23,7 +23,7 @@ const OrganizationSwitcherTrigger = withAvatarShimmer(forwardRef((props, ref) =>
23
23
  const { hidePersonal } = useOrganizationSwitcherContext();
24
24
  const { t } = useLocalizations();
25
25
  if (!user) return null;
26
- const { username, primaryEmailAddress, primaryPhoneNumber,...userWithoutIdentifiers } = user;
26
+ const { primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet, username,...userWithoutIdentifiers } = user;
27
27
  return /* @__PURE__ */ jsxs(Button, {
28
28
  elementDescriptor: descriptors.organizationSwitcherTrigger,
29
29
  elementId: descriptors.organizationSwitcherTrigger.setId(organization ? "organization" : "personal"),
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationSwitcherTrigger.js","names":["t","ChevronDown"],"sources":["../../../src/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx"],"sourcesContent":["import { useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport { forwardRef } from 'react';\n\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { withAvatarShimmer } from '@/ui/elements/withAvatarShimmer';\n\nimport { NotificationCountBadge, useProtect } from '../../common';\nimport { useEnvironment, useOrganizationSwitcherContext } from '../../contexts';\nimport { Button, descriptors, Icon, localizationKeys, useLocalizations } from '../../customizables';\nimport { ChevronDown } from '../../icons';\nimport type { PropsOfComponent } from '../../styledSystem';\nimport { organizationListParams } from './utils';\n\ntype OrganizationSwitcherTriggerProps = PropsOfComponent<typeof Button> & {\n isOpen: boolean;\n};\n\nexport const OrganizationSwitcherTrigger = withAvatarShimmer(\n forwardRef<HTMLButtonElement, OrganizationSwitcherTriggerProps>((props, ref) => {\n const { sx, ...rest } = props;\n\n const { user } = useUser();\n const { organization } = useOrganization();\n const { hidePersonal } = useOrganizationSwitcherContext();\n const { t } = useLocalizations();\n\n if (!user) {\n return null;\n }\n\n const { username, primaryEmailAddress, primaryPhoneNumber, ...userWithoutIdentifiers } = user;\n\n return (\n <Button\n elementDescriptor={descriptors.organizationSwitcherTrigger}\n elementId={descriptors.organizationSwitcherTrigger.setId(organization ? 'organization' : 'personal')}\n variant='ghost'\n colorScheme='neutral'\n hoverAsFocus\n focusRing={false}\n sx={[\n t => ({\n padding: `${t.space.$1} ${t.space.$2}`,\n position: 'relative',\n }),\n sx,\n ]}\n ref={ref}\n aria-label={`${props.isOpen ? t(localizationKeys('organizationSwitcher.action__closeOrganizationSwitcher')) : t(localizationKeys('organizationSwitcher.action__openOrganizationSwitcher'))}`}\n aria-expanded={props.isOpen}\n aria-haspopup='dialog'\n {...rest}\n >\n {organization && (\n <OrganizationPreview\n elementId={'organizationSwitcherTrigger'}\n gap={3}\n size='xs'\n organization={organization}\n sx={{ maxWidth: '30ch' }}\n />\n )}\n\n {!organization && (\n <PersonalWorkspacePreview\n size='xs'\n gap={3}\n user={userWithoutIdentifiers}\n showAvatar={!hidePersonal}\n sx={t => ({ color: t.colors.$colorMutedForeground })}\n title={\n hidePersonal\n ? localizationKeys('organizationSwitcher.notSelected')\n : localizationKeys('organizationSwitcher.personalWorkspace')\n }\n />\n )}\n\n <NotificationCountBadgeSwitcherTrigger />\n\n <Icon\n elementDescriptor={descriptors.organizationSwitcherTriggerIcon}\n icon={ChevronDown}\n sx={t => ({ marginLeft: `${t.space.$2}` })}\n />\n </Button>\n );\n }),\n);\n\nconst NotificationCountBadgeSwitcherTrigger = () => {\n /**\n * Prefetch user invitations and suggestions\n */\n const { userInvitations, userSuggestions } = useOrganizationList(organizationListParams);\n const { organizationSettings } = useEnvironment();\n const canAcceptRequests = useProtect({\n permission: 'org:sys_memberships:manage',\n });\n const isDomainsEnabled = organizationSettings?.domains?.enabled;\n const { membershipRequests } = useOrganization({\n membershipRequests: (isDomainsEnabled && canAcceptRequests) || undefined,\n });\n\n const notificationCount =\n (userInvitations.count || 0) + (userSuggestions.count || 0) + (membershipRequests?.count || 0);\n\n if (!notificationCount) {\n return null;\n }\n\n return (\n <NotificationCountBadge\n containerSx={t => ({\n position: 'absolute',\n top: `calc(${t.space.$2} * -1)`,\n right: `calc(${t.space.$2} * -1)`,\n })}\n notificationCount={notificationCount}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAa,8BAA8B,kBACzC,YAAiE,OAAO,QAAQ;CAC9E,MAAM,EAAE,GAAI,GAAG,SAAS;CAExB,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,EAAE,iBAAiB,iBAAiB;CAC1C,MAAM,EAAE,iBAAiB,gCAAgC;CACzD,MAAM,EAAE,MAAM,kBAAkB;AAEhC,KAAI,CAAC,KACH,QAAO;CAGT,MAAM,EAAE,UAAU,qBAAqB,mBAAoB,GAAG,2BAA2B;AAEzF,QACE,qBAAC;EACC,mBAAmB,YAAY;EAC/B,WAAW,YAAY,4BAA4B,MAAM,eAAe,iBAAiB,WAAW;EACpG,SAAQ;EACR,aAAY;EACZ;EACA,WAAW;EACX,IAAI,EACF,SAAM;GACJ,SAAS,GAAGA,IAAE,MAAM,GAAG,GAAGA,IAAE,MAAM;GAClC,UAAU;GACX,GACD,GACD;EACI;EACL,cAAY,GAAG,MAAM,SAAS,EAAE,iBAAiB,yDAAyD,CAAC,GAAG,EAAE,iBAAiB,wDAAwD,CAAC;EAC1L,iBAAe,MAAM;EACrB,iBAAc;EACd,GAAI;;GAEH,gBACC,oBAAC;IACC,WAAW;IACX,KAAK;IACL,MAAK;IACS;IACd,IAAI,EAAE,UAAU,QAAQ;KACxB;GAGH,CAAC,gBACA,oBAAC;IACC,MAAK;IACL,KAAK;IACL,MAAM;IACN,YAAY,CAAC;IACb,KAAI,SAAM,EAAE,OAAOA,IAAE,OAAO,uBAAuB;IACnD,OACE,eACI,iBAAiB,mCAAmC,GACpD,iBAAiB,yCAAyC;KAEhE;GAGJ,oBAAC,0CAAwC;GAEzC,oBAAC;IACC,mBAAmB,YAAY;IAC/B,MAAMC;IACN,KAAI,SAAM,EAAE,YAAY,GAAGD,IAAE,MAAM,MAAM;KACzC;;GACK;EAEX,CACH;AAED,MAAM,8CAA8C;;;;CAIlD,MAAM,EAAE,iBAAiB,oBAAoB,oBAAoB,uBAAuB;CACxF,MAAM,EAAE,yBAAyB,gBAAgB;CACjD,MAAM,oBAAoB,WAAW,EACnC,YAAY,8BACb,CAAC;CACF,MAAM,mBAAmB,sBAAsB,SAAS;CACxD,MAAM,EAAE,uBAAuB,gBAAgB,EAC7C,oBAAqB,oBAAoB,qBAAsB,QAChE,CAAC;CAEF,MAAM,qBACH,gBAAgB,SAAS,MAAM,gBAAgB,SAAS,MAAM,oBAAoB,SAAS;AAE9F,KAAI,CAAC,kBACH,QAAO;AAGT,QACE,oBAAC;EACC,cAAa,OAAM;GACjB,UAAU;GACV,KAAK,QAAQ,EAAE,MAAM,GAAG;GACxB,OAAO,QAAQ,EAAE,MAAM,GAAG;GAC3B;EACkB;GACnB"}
1
+ {"version":3,"file":"OrganizationSwitcherTrigger.js","names":["t","ChevronDown"],"sources":["../../../src/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx"],"sourcesContent":["import { useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport { forwardRef } from 'react';\n\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { withAvatarShimmer } from '@/ui/elements/withAvatarShimmer';\n\nimport { NotificationCountBadge, useProtect } from '../../common';\nimport { useEnvironment, useOrganizationSwitcherContext } from '../../contexts';\nimport { Button, descriptors, Icon, localizationKeys, useLocalizations } from '../../customizables';\nimport { ChevronDown } from '../../icons';\nimport type { PropsOfComponent } from '../../styledSystem';\nimport { organizationListParams } from './utils';\n\ntype OrganizationSwitcherTriggerProps = PropsOfComponent<typeof Button> & {\n isOpen: boolean;\n};\n\nexport const OrganizationSwitcherTrigger = withAvatarShimmer(\n forwardRef<HTMLButtonElement, OrganizationSwitcherTriggerProps>((props, ref) => {\n const { sx, ...rest } = props;\n\n const { user } = useUser();\n const { organization } = useOrganization();\n const { hidePersonal } = useOrganizationSwitcherContext();\n const { t } = useLocalizations();\n\n if (!user) {\n return null;\n }\n\n const { primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet, username, ...userWithoutIdentifiers } = user;\n\n return (\n <Button\n elementDescriptor={descriptors.organizationSwitcherTrigger}\n elementId={descriptors.organizationSwitcherTrigger.setId(organization ? 'organization' : 'personal')}\n variant='ghost'\n colorScheme='neutral'\n hoverAsFocus\n focusRing={false}\n sx={[\n t => ({\n padding: `${t.space.$1} ${t.space.$2}`,\n position: 'relative',\n }),\n sx,\n ]}\n ref={ref}\n aria-label={`${props.isOpen ? t(localizationKeys('organizationSwitcher.action__closeOrganizationSwitcher')) : t(localizationKeys('organizationSwitcher.action__openOrganizationSwitcher'))}`}\n aria-expanded={props.isOpen}\n aria-haspopup='dialog'\n {...rest}\n >\n {organization && (\n <OrganizationPreview\n elementId={'organizationSwitcherTrigger'}\n gap={3}\n size='xs'\n organization={organization}\n sx={{ maxWidth: '30ch' }}\n />\n )}\n\n {!organization && (\n <PersonalWorkspacePreview\n size='xs'\n gap={3}\n user={userWithoutIdentifiers}\n showAvatar={!hidePersonal}\n sx={t => ({ color: t.colors.$colorMutedForeground })}\n title={\n hidePersonal\n ? localizationKeys('organizationSwitcher.notSelected')\n : localizationKeys('organizationSwitcher.personalWorkspace')\n }\n />\n )}\n\n <NotificationCountBadgeSwitcherTrigger />\n\n <Icon\n elementDescriptor={descriptors.organizationSwitcherTriggerIcon}\n icon={ChevronDown}\n sx={t => ({ marginLeft: `${t.space.$2}` })}\n />\n </Button>\n );\n }),\n);\n\nconst NotificationCountBadgeSwitcherTrigger = () => {\n /**\n * Prefetch user invitations and suggestions\n */\n const { userInvitations, userSuggestions } = useOrganizationList(organizationListParams);\n const { organizationSettings } = useEnvironment();\n const canAcceptRequests = useProtect({\n permission: 'org:sys_memberships:manage',\n });\n const isDomainsEnabled = organizationSettings?.domains?.enabled;\n const { membershipRequests } = useOrganization({\n membershipRequests: (isDomainsEnabled && canAcceptRequests) || undefined,\n });\n\n const notificationCount =\n (userInvitations.count || 0) + (userSuggestions.count || 0) + (membershipRequests?.count || 0);\n\n if (!notificationCount) {\n return null;\n }\n\n return (\n <NotificationCountBadge\n containerSx={t => ({\n position: 'absolute',\n top: `calc(${t.space.$2} * -1)`,\n right: `calc(${t.space.$2} * -1)`,\n })}\n notificationCount={notificationCount}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAa,8BAA8B,kBACzC,YAAiE,OAAO,QAAQ;CAC9E,MAAM,EAAE,GAAI,GAAG,SAAS;CAExB,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,EAAE,iBAAiB,iBAAiB;CAC1C,MAAM,EAAE,iBAAiB,gCAAgC;CACzD,MAAM,EAAE,MAAM,kBAAkB;AAEhC,KAAI,CAAC,KACH,QAAO;CAGT,MAAM,EAAE,qBAAqB,oBAAoB,mBAAmB,SAAU,GAAG,2BAA2B;AAE5G,QACE,qBAAC;EACC,mBAAmB,YAAY;EAC/B,WAAW,YAAY,4BAA4B,MAAM,eAAe,iBAAiB,WAAW;EACpG,SAAQ;EACR,aAAY;EACZ;EACA,WAAW;EACX,IAAI,EACF,SAAM;GACJ,SAAS,GAAGA,IAAE,MAAM,GAAG,GAAGA,IAAE,MAAM;GAClC,UAAU;GACX,GACD,GACD;EACI;EACL,cAAY,GAAG,MAAM,SAAS,EAAE,iBAAiB,yDAAyD,CAAC,GAAG,EAAE,iBAAiB,wDAAwD,CAAC;EAC1L,iBAAe,MAAM;EACrB,iBAAc;EACd,GAAI;;GAEH,gBACC,oBAAC;IACC,WAAW;IACX,KAAK;IACL,MAAK;IACS;IACd,IAAI,EAAE,UAAU,QAAQ;KACxB;GAGH,CAAC,gBACA,oBAAC;IACC,MAAK;IACL,KAAK;IACL,MAAM;IACN,YAAY,CAAC;IACb,KAAI,SAAM,EAAE,OAAOA,IAAE,OAAO,uBAAuB;IACnD,OACE,eACI,iBAAiB,mCAAmC,GACpD,iBAAiB,yCAAyC;KAEhE;GAGJ,oBAAC,0CAAwC;GAEzC,oBAAC;IACC,mBAAmB,YAAY;IAC/B,MAAMC;IACN,KAAI,SAAM,EAAE,YAAY,GAAGD,IAAE,MAAM,MAAM;KACzC;;GACK;EAEX,CACH;AAED,MAAM,8CAA8C;;;;CAIlD,MAAM,EAAE,iBAAiB,oBAAoB,oBAAoB,uBAAuB;CACxF,MAAM,EAAE,yBAAyB,gBAAgB;CACjD,MAAM,oBAAoB,WAAW,EACnC,YAAY,8BACb,CAAC;CACF,MAAM,mBAAmB,sBAAsB,SAAS;CACxD,MAAM,EAAE,uBAAuB,gBAAgB,EAC7C,oBAAqB,oBAAoB,qBAAsB,QAChE,CAAC;CAEF,MAAM,qBACH,gBAAgB,SAAS,MAAM,gBAAgB,SAAS,MAAM,oBAAoB,SAAS;AAE9F,KAAI,CAAC,kBACH,QAAO;AAGT,QACE,oBAAC;EACC,cAAa,OAAM;GACjB,UAAU;GACV,KAAK,QAAQ,EAAE,MAAM,GAAG;GACxB,OAAO,QAAQ,EAAE,MAAM,GAAG;GAC3B;EACkB;GACnB"}
@@ -37,7 +37,7 @@ const UserMembershipList = (props) => {
37
37
  const { user } = useUser();
38
38
  const otherOrgs = ((userMemberships.count || 0) > 0 ? userMemberships.data || [] : []).map((e) => e.organization).filter((o) => o.id !== currentOrg?.id);
39
39
  if (!user) return null;
40
- const { username, primaryEmailAddress, primaryPhoneNumber,...userWithoutIdentifiers } = user;
40
+ const { primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet, username,...userWithoutIdentifiers } = user;
41
41
  const { isLoading, hasNextPage } = userMemberships;
42
42
  return /* @__PURE__ */ jsxs(Box, {
43
43
  sx: (t) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"UserMembershipList.js","names":["SwitchArrowRight"],"sources":["../../../src/components/OrganizationSwitcher/UserMembershipList.tsx"],"sourcesContent":["import { useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport type { OrganizationResource } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { PreviewButton } from '@/ui/elements/PreviewButton';\n\nimport { InfiniteListSpinner } from '../../common';\nimport { useOrganizationSwitcherContext } from '../../contexts';\nimport { Box, descriptors, localizationKeys } from '../../customizables';\nimport { useInView } from '../../hooks';\nimport { SwitchArrowRight } from '../../icons';\nimport { common } from '../../styledSystem';\nimport { organizationListParams } from './utils';\n\nexport type UserMembershipListProps = {\n onPersonalWorkspaceClick: React.MouseEventHandler;\n onOrganizationClick: (org: OrganizationResource) => unknown;\n};\n\nconst useFetchMemberships = () => {\n const { userMemberships } = useOrganizationList({\n userMemberships: organizationListParams.userMemberships,\n });\n\n const { ref } = useInView({\n threshold: 0,\n onChange: inView => {\n if (!inView) {\n return;\n }\n if (userMemberships.hasNextPage) {\n userMemberships.fetchNext?.();\n }\n },\n });\n\n return {\n userMemberships,\n ref,\n };\n};\nexport const UserMembershipList = (props: UserMembershipListProps) => {\n const { onPersonalWorkspaceClick, onOrganizationClick } = props;\n\n const { hidePersonal } = useOrganizationSwitcherContext();\n const { organization: currentOrg } = useOrganization();\n const { ref, userMemberships } = useFetchMemberships();\n const { user } = useUser();\n\n const otherOrgs = ((userMemberships.count || 0) > 0 ? userMemberships.data || [] : [])\n .map(e => e.organization)\n .filter(o => o.id !== currentOrg?.id);\n\n if (!user) {\n return null;\n }\n\n const { username, primaryEmailAddress, primaryPhoneNumber, ...userWithoutIdentifiers } = user;\n\n const { isLoading, hasNextPage } = userMemberships;\n\n return (\n <Box\n sx={t => ({\n // 4 items + 4px border (four 1px borders)\n maxHeight: `calc((4 * ${t.sizes.$17}) + 4px)`,\n overflowY: 'auto',\n '> button,div': { border: `0 solid ${t.colors.$borderAlpha100}` },\n '>:not([hidden])~:not([hidden])': {\n borderTopWidth: '1px',\n borderBottomWidth: '0',\n },\n ...common.unstyledScrollbar(t),\n })}\n role='group'\n aria-label={hidePersonal ? 'List of all organization memberships' : 'List of all accounts'}\n >\n {currentOrg && !hidePersonal && (\n <PreviewButton\n elementDescriptor={descriptors.organizationSwitcherPreviewButton}\n elementId={descriptors.organizationSwitcherPreviewButton.setId('personal')}\n icon={SwitchArrowRight}\n onClick={onPersonalWorkspaceClick}\n role='menuitem'\n >\n <PersonalWorkspacePreview\n user={userWithoutIdentifiers}\n mainIdentifierVariant={'buttonLarge'}\n title={localizationKeys('organizationSwitcher.personalWorkspace')}\n />\n </PreviewButton>\n )}\n {otherOrgs.map(organization => (\n <PreviewButton\n key={organization.id}\n elementDescriptor={descriptors.organizationSwitcherPreviewButton}\n elementId={descriptors.organizationSwitcherPreviewButton.setId('organization')}\n icon={SwitchArrowRight}\n onClick={() => onOrganizationClick(organization)}\n role='menuitem'\n sx={t => ({\n border: `0 solid ${t.colors.$borderAlpha100}`,\n })}\n >\n <OrganizationPreview\n elementId='organizationSwitcherListedOrganization'\n organization={organization}\n />\n </PreviewButton>\n ))}\n {(hasNextPage || isLoading) && <InfiniteListSpinner ref={ref} />}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,MAAM,4BAA4B;CAChC,MAAM,EAAE,oBAAoB,oBAAoB,EAC9C,iBAAiB,uBAAuB,iBACzC,CAAC;CAEF,MAAM,EAAE,QAAQ,UAAU;EACxB,WAAW;EACX,WAAU,WAAU;AAClB,OAAI,CAAC,OACH;AAEF,OAAI,gBAAgB,YAClB,iBAAgB,aAAa;;EAGlC,CAAC;AAEF,QAAO;EACL;EACA;EACD;;AAEH,MAAa,sBAAsB,UAAmC;CACpE,MAAM,EAAE,0BAA0B,wBAAwB;CAE1D,MAAM,EAAE,iBAAiB,gCAAgC;CACzD,MAAM,EAAE,cAAc,eAAe,iBAAiB;CACtD,MAAM,EAAE,KAAK,oBAAoB,qBAAqB;CACtD,MAAM,EAAE,SAAS,SAAS;CAE1B,MAAM,cAAc,gBAAgB,SAAS,KAAK,IAAI,gBAAgB,QAAQ,EAAE,GAAG,EAAE,EAClF,KAAI,MAAK,EAAE,aAAa,CACxB,QAAO,MAAK,EAAE,OAAO,YAAY,GAAG;AAEvC,KAAI,CAAC,KACH,QAAO;CAGT,MAAM,EAAE,UAAU,qBAAqB,mBAAoB,GAAG,2BAA2B;CAEzF,MAAM,EAAE,WAAW,gBAAgB;AAEnC,QACE,qBAAC;EACC,KAAI,OAAM;GAER,WAAW,aAAa,EAAE,MAAM,IAAI;GACpC,WAAW;GACX,gBAAgB,EAAE,QAAQ,WAAW,EAAE,OAAO,mBAAmB;GACjE,kCAAkC;IAChC,gBAAgB;IAChB,mBAAmB;IACpB;GACD,GAAG,OAAO,kBAAkB,EAAE;GAC/B;EACD,MAAK;EACL,cAAY,eAAe,yCAAyC;;GAEnE,cAAc,CAAC,gBACd,oBAAC;IACC,mBAAmB,YAAY;IAC/B,WAAW,YAAY,kCAAkC,MAAM,WAAW;IAC1E,MAAMA;IACN,SAAS;IACT,MAAK;cAEL,oBAAC;KACC,MAAM;KACN,uBAAuB;KACvB,OAAO,iBAAiB,yCAAyC;MACjE;KACY;GAEjB,UAAU,KAAI,iBACb,oBAAC;IAEC,mBAAmB,YAAY;IAC/B,WAAW,YAAY,kCAAkC,MAAM,eAAe;IAC9E,MAAMA;IACN,eAAe,oBAAoB,aAAa;IAChD,MAAK;IACL,KAAI,OAAM,EACR,QAAQ,WAAW,EAAE,OAAO,mBAC7B;cAED,oBAAC;KACC,WAAU;KACI;MACd;MAbG,aAAa,GAcJ,CAChB;IACA,eAAe,cAAc,oBAAC,uBAAyB,MAAO;;GAC5D"}
1
+ {"version":3,"file":"UserMembershipList.js","names":["SwitchArrowRight"],"sources":["../../../src/components/OrganizationSwitcher/UserMembershipList.tsx"],"sourcesContent":["import { useOrganization, useOrganizationList, useUser } from '@clerk/shared/react';\nimport type { OrganizationResource } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { OrganizationPreview } from '@/ui/elements/OrganizationPreview';\nimport { PersonalWorkspacePreview } from '@/ui/elements/PersonalWorkspacePreview';\nimport { PreviewButton } from '@/ui/elements/PreviewButton';\n\nimport { InfiniteListSpinner } from '../../common';\nimport { useOrganizationSwitcherContext } from '../../contexts';\nimport { Box, descriptors, localizationKeys } from '../../customizables';\nimport { useInView } from '../../hooks';\nimport { SwitchArrowRight } from '../../icons';\nimport { common } from '../../styledSystem';\nimport { organizationListParams } from './utils';\n\nexport type UserMembershipListProps = {\n onPersonalWorkspaceClick: React.MouseEventHandler;\n onOrganizationClick: (org: OrganizationResource) => unknown;\n};\n\nconst useFetchMemberships = () => {\n const { userMemberships } = useOrganizationList({\n userMemberships: organizationListParams.userMemberships,\n });\n\n const { ref } = useInView({\n threshold: 0,\n onChange: inView => {\n if (!inView) {\n return;\n }\n if (userMemberships.hasNextPage) {\n userMemberships.fetchNext?.();\n }\n },\n });\n\n return {\n userMemberships,\n ref,\n };\n};\nexport const UserMembershipList = (props: UserMembershipListProps) => {\n const { onPersonalWorkspaceClick, onOrganizationClick } = props;\n\n const { hidePersonal } = useOrganizationSwitcherContext();\n const { organization: currentOrg } = useOrganization();\n const { ref, userMemberships } = useFetchMemberships();\n const { user } = useUser();\n\n const otherOrgs = ((userMemberships.count || 0) > 0 ? userMemberships.data || [] : [])\n .map(e => e.organization)\n .filter(o => o.id !== currentOrg?.id);\n\n if (!user) {\n return null;\n }\n\n const { primaryEmailAddress, primaryPhoneNumber, primaryWeb3Wallet, username, ...userWithoutIdentifiers } = user;\n\n const { isLoading, hasNextPage } = userMemberships;\n\n return (\n <Box\n sx={t => ({\n // 4 items + 4px border (four 1px borders)\n maxHeight: `calc((4 * ${t.sizes.$17}) + 4px)`,\n overflowY: 'auto',\n '> button,div': { border: `0 solid ${t.colors.$borderAlpha100}` },\n '>:not([hidden])~:not([hidden])': {\n borderTopWidth: '1px',\n borderBottomWidth: '0',\n },\n ...common.unstyledScrollbar(t),\n })}\n role='group'\n aria-label={hidePersonal ? 'List of all organization memberships' : 'List of all accounts'}\n >\n {currentOrg && !hidePersonal && (\n <PreviewButton\n elementDescriptor={descriptors.organizationSwitcherPreviewButton}\n elementId={descriptors.organizationSwitcherPreviewButton.setId('personal')}\n icon={SwitchArrowRight}\n onClick={onPersonalWorkspaceClick}\n role='menuitem'\n >\n <PersonalWorkspacePreview\n user={userWithoutIdentifiers}\n mainIdentifierVariant={'buttonLarge'}\n title={localizationKeys('organizationSwitcher.personalWorkspace')}\n />\n </PreviewButton>\n )}\n {otherOrgs.map(organization => (\n <PreviewButton\n key={organization.id}\n elementDescriptor={descriptors.organizationSwitcherPreviewButton}\n elementId={descriptors.organizationSwitcherPreviewButton.setId('organization')}\n icon={SwitchArrowRight}\n onClick={() => onOrganizationClick(organization)}\n role='menuitem'\n sx={t => ({\n border: `0 solid ${t.colors.$borderAlpha100}`,\n })}\n >\n <OrganizationPreview\n elementId='organizationSwitcherListedOrganization'\n organization={organization}\n />\n </PreviewButton>\n ))}\n {(hasNextPage || isLoading) && <InfiniteListSpinner ref={ref} />}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,MAAM,4BAA4B;CAChC,MAAM,EAAE,oBAAoB,oBAAoB,EAC9C,iBAAiB,uBAAuB,iBACzC,CAAC;CAEF,MAAM,EAAE,QAAQ,UAAU;EACxB,WAAW;EACX,WAAU,WAAU;AAClB,OAAI,CAAC,OACH;AAEF,OAAI,gBAAgB,YAClB,iBAAgB,aAAa;;EAGlC,CAAC;AAEF,QAAO;EACL;EACA;EACD;;AAEH,MAAa,sBAAsB,UAAmC;CACpE,MAAM,EAAE,0BAA0B,wBAAwB;CAE1D,MAAM,EAAE,iBAAiB,gCAAgC;CACzD,MAAM,EAAE,cAAc,eAAe,iBAAiB;CACtD,MAAM,EAAE,KAAK,oBAAoB,qBAAqB;CACtD,MAAM,EAAE,SAAS,SAAS;CAE1B,MAAM,cAAc,gBAAgB,SAAS,KAAK,IAAI,gBAAgB,QAAQ,EAAE,GAAG,EAAE,EAClF,KAAI,MAAK,EAAE,aAAa,CACxB,QAAO,MAAK,EAAE,OAAO,YAAY,GAAG;AAEvC,KAAI,CAAC,KACH,QAAO;CAGT,MAAM,EAAE,qBAAqB,oBAAoB,mBAAmB,SAAU,GAAG,2BAA2B;CAE5G,MAAM,EAAE,WAAW,gBAAgB;AAEnC,QACE,qBAAC;EACC,KAAI,OAAM;GAER,WAAW,aAAa,EAAE,MAAM,IAAI;GACpC,WAAW;GACX,gBAAgB,EAAE,QAAQ,WAAW,EAAE,OAAO,mBAAmB;GACjE,kCAAkC;IAChC,gBAAgB;IAChB,mBAAmB;IACpB;GACD,GAAG,OAAO,kBAAkB,EAAE;GAC/B;EACD,MAAK;EACL,cAAY,eAAe,yCAAyC;;GAEnE,cAAc,CAAC,gBACd,oBAAC;IACC,mBAAmB,YAAY;IAC/B,WAAW,YAAY,kCAAkC,MAAM,WAAW;IAC1E,MAAMA;IACN,SAAS;IACT,MAAK;cAEL,oBAAC;KACC,MAAM;KACN,uBAAuB;KACvB,OAAO,iBAAiB,yCAAyC;MACjE;KACY;GAEjB,UAAU,KAAI,iBACb,oBAAC;IAEC,mBAAmB,YAAY;IAC/B,WAAW,YAAY,kCAAkC,MAAM,eAAe;IAC9E,MAAMA;IACN,eAAe,oBAAoB,aAAa;IAChD,MAAK;IACL,KAAI,OAAM,EACR,QAAQ,WAAW,EAAE,OAAO,mBAC7B;cAED,oBAAC;KACC,WAAU;KACI;MACd;MAbG,aAAa,GAcJ,CAChB;IACA,eAAe,cAAc,oBAAC,uBAAyB,MAAO;;GAC5D"}
@@ -29,7 +29,7 @@ function RedirectToSignIn() {
29
29
  const clerk = useClerk();
30
30
  React.useEffect(() => {
31
31
  clerk.redirectToSignIn();
32
- }, []);
32
+ }, [clerk]);
33
33
  return null;
34
34
  }
35
35
  function SignInRoutes() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LazySessionTasks","SignIn: React.ComponentType<SignInProps>","InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>>"],"sources":["../../../src/components/SignIn/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInModalProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignInEmailLinkFlowComplete, SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport {\n SignInContext,\n SignUpContext,\n useSignInContext,\n useSignUpContext,\n withCoreSessionSwitchGuard,\n} from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { useFetch } from '@/hooks';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport type { SignUpCtx } from '@/types';\nimport { SignInFactorOneSolanaWalletsCard } from '@/ui/components/SignIn/SignInFactorOneSolanaWalletsCard';\nimport { normalizeRoutingOptions } from '@/utils/normalizeRoutingOptions';\n\nimport {\n LazySignUpContinue,\n LazySignUpSSOCallback,\n LazySignUpStart,\n LazySignUpVerifyEmail,\n LazySignUpVerifyPhone,\n preloadSignUp,\n} from './lazy-sign-up';\nimport { ResetPassword } from './ResetPassword';\nimport { ResetPasswordSuccess } from './ResetPasswordSuccess';\nimport { SignInAccountSwitcher } from './SignInAccountSwitcher';\nimport { SignInClientTrust } from './SignInClientTrust';\nimport { SignInFactorOne } from './SignInFactorOne';\nimport { SignInFactorTwo } from './SignInFactorTwo';\nimport { SignInSSOCallback } from './SignInSSOCallback';\nimport { SignInStart } from './SignInStart';\n\nfunction RedirectToSignIn() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignIn();\n }, []);\n return null;\n}\n\nfunction SignInRoutes(): JSX.Element {\n const signInContext = useSignInContext();\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signIn'>\n <Switch>\n <Route path='factor-one'>\n <SignInFactorOne />\n </Route>\n <Route path='factor-two'>\n <SignInFactorTwo />\n </Route>\n <Route path='client-trust'>\n <SignInClientTrust />\n </Route>\n <Route path='reset-password'>\n <ResetPassword />\n </Route>\n <Route path='reset-password-success'>\n <ResetPasswordSuccess />\n </Route>\n <Route path='sso-callback'>\n <SignInSSOCallback\n signUpUrl={signInContext.signUpUrl}\n signInUrl={signInContext.signInUrl}\n signInForceRedirectUrl={signInContext.afterSignInUrl}\n signUpForceRedirectUrl={signInContext.afterSignUpUrl}\n continueSignUpUrl={signInContext.signUpContinueUrl}\n transferable={signInContext.transferable}\n firstFactorUrl={'../factor-one'}\n secondFactorUrl={'../factor-two'}\n resetPasswordUrl={'../reset-password'}\n />\n </Route>\n <Route path='choose'>\n <SignInAccountSwitcher />\n </Route>\n <Route path='choose-wallet'>\n <SignInFactorOneSolanaWalletsCard />\n </Route>\n <Route path='verify'>\n <SignInEmailLinkFlowComplete\n redirectUrlComplete={signInContext.afterSignInUrl}\n redirectUrl='../factor-two'\n />\n </Route>\n\n {signInContext.isCombinedFlow && (\n <Route path='create'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <LazySignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n continuePath='../continue'\n />\n </Route>\n <Route path='continue'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route index>\n <LazySignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignUpUrl} />\n </Route>\n <Route index>\n <LazySignUpStart />\n </Route>\n </Route>\n )}\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignInUrl} />\n </Route>\n <Route index>\n <SignInStart />\n </Route>\n <Route>\n <RedirectToSignIn />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nconst usePreloadSignUp = (enabled = false) =>\n useFetch(enabled ? preloadSignUp : undefined, 'preloadComponent', { staleTime: Infinity });\n\nfunction SignInRoot() {\n const signInContext = useSignInContext();\n const normalizedSignUpContext = {\n componentName: 'SignUp',\n emailLinkRedirectUrl: signInContext.emailLinkRedirectUrl,\n ssoCallbackUrl: signInContext.ssoCallbackUrl,\n forceRedirectUrl: signInContext.signUpForceRedirectUrl,\n fallbackRedirectUrl: signInContext.signUpFallbackRedirectUrl,\n signInUrl: signInContext.signInUrl,\n unsafeMetadata: signInContext.unsafeMetadata,\n ...normalizeRoutingOptions({ routing: signInContext?.routing, path: signInContext?.path }),\n } as SignUpCtx;\n\n /**\n * Preload Sign Up when in Combined Flow.\n */\n usePreloadSignUp(signInContext.isCombinedFlow);\n\n usePreloadTasks();\n\n return (\n <SignUpContext.Provider value={normalizedSignUpContext}>\n <SignInRoutes />\n </SignUpContext.Provider>\n );\n}\n\nSignInRoutes.displayName = 'SignIn';\n\nexport const SignIn: React.ComponentType<SignInProps> = withCoreSessionSwitchGuard(SignInRoot);\n\nconst InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>> = withCoreSessionSwitchGuard(SignInRoot);\n\nexport const SignInModal = (props: SignInModalProps): JSX.Element => {\n const signInProps = {\n signUpUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-up`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-in'>\n <SignInContext.Provider\n value={{\n componentName: 'SignIn',\n ...signInProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignIn\n {...signInProps}\n routing='virtual'\n />\n </div>\n </SignInContext.Provider>\n </Route>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["LazySessionTasks","SignIn: React.ComponentType<SignInProps>","InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>>"],"sources":["../../../src/components/SignIn/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInModalProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignInEmailLinkFlowComplete, SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport {\n SignInContext,\n SignUpContext,\n useSignInContext,\n useSignUpContext,\n withCoreSessionSwitchGuard,\n} from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { useFetch } from '@/hooks';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport type { SignUpCtx } from '@/types';\nimport { SignInFactorOneSolanaWalletsCard } from '@/ui/components/SignIn/SignInFactorOneSolanaWalletsCard';\nimport { normalizeRoutingOptions } from '@/utils/normalizeRoutingOptions';\n\nimport {\n LazySignUpContinue,\n LazySignUpSSOCallback,\n LazySignUpStart,\n LazySignUpVerifyEmail,\n LazySignUpVerifyPhone,\n preloadSignUp,\n} from './lazy-sign-up';\nimport { ResetPassword } from './ResetPassword';\nimport { ResetPasswordSuccess } from './ResetPasswordSuccess';\nimport { SignInAccountSwitcher } from './SignInAccountSwitcher';\nimport { SignInClientTrust } from './SignInClientTrust';\nimport { SignInFactorOne } from './SignInFactorOne';\nimport { SignInFactorTwo } from './SignInFactorTwo';\nimport { SignInSSOCallback } from './SignInSSOCallback';\nimport { SignInStart } from './SignInStart';\n\nfunction RedirectToSignIn() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignIn();\n }, [clerk]);\n return null;\n}\n\nfunction SignInRoutes(): JSX.Element {\n const signInContext = useSignInContext();\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signIn'>\n <Switch>\n <Route path='factor-one'>\n <SignInFactorOne />\n </Route>\n <Route path='factor-two'>\n <SignInFactorTwo />\n </Route>\n <Route path='client-trust'>\n <SignInClientTrust />\n </Route>\n <Route path='reset-password'>\n <ResetPassword />\n </Route>\n <Route path='reset-password-success'>\n <ResetPasswordSuccess />\n </Route>\n <Route path='sso-callback'>\n <SignInSSOCallback\n signUpUrl={signInContext.signUpUrl}\n signInUrl={signInContext.signInUrl}\n signInForceRedirectUrl={signInContext.afterSignInUrl}\n signUpForceRedirectUrl={signInContext.afterSignUpUrl}\n continueSignUpUrl={signInContext.signUpContinueUrl}\n transferable={signInContext.transferable}\n firstFactorUrl={'../factor-one'}\n secondFactorUrl={'../factor-two'}\n resetPasswordUrl={'../reset-password'}\n />\n </Route>\n <Route path='choose'>\n <SignInAccountSwitcher />\n </Route>\n <Route path='choose-wallet'>\n <SignInFactorOneSolanaWalletsCard />\n </Route>\n <Route path='verify'>\n <SignInEmailLinkFlowComplete\n redirectUrlComplete={signInContext.afterSignInUrl}\n redirectUrl='../factor-two'\n />\n </Route>\n\n {signInContext.isCombinedFlow && (\n <Route path='create'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <LazySignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n continuePath='../continue'\n />\n </Route>\n <Route path='continue'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route index>\n <LazySignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignUpUrl} />\n </Route>\n <Route index>\n <LazySignUpStart />\n </Route>\n </Route>\n )}\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignInUrl} />\n </Route>\n <Route index>\n <SignInStart />\n </Route>\n <Route>\n <RedirectToSignIn />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nconst usePreloadSignUp = (enabled = false) =>\n useFetch(enabled ? preloadSignUp : undefined, 'preloadComponent', { staleTime: Infinity });\n\nfunction SignInRoot() {\n const signInContext = useSignInContext();\n const normalizedSignUpContext = {\n componentName: 'SignUp',\n emailLinkRedirectUrl: signInContext.emailLinkRedirectUrl,\n ssoCallbackUrl: signInContext.ssoCallbackUrl,\n forceRedirectUrl: signInContext.signUpForceRedirectUrl,\n fallbackRedirectUrl: signInContext.signUpFallbackRedirectUrl,\n signInUrl: signInContext.signInUrl,\n unsafeMetadata: signInContext.unsafeMetadata,\n ...normalizeRoutingOptions({ routing: signInContext?.routing, path: signInContext?.path }),\n } as SignUpCtx;\n\n /**\n * Preload Sign Up when in Combined Flow.\n */\n usePreloadSignUp(signInContext.isCombinedFlow);\n\n usePreloadTasks();\n\n return (\n <SignUpContext.Provider value={normalizedSignUpContext}>\n <SignInRoutes />\n </SignUpContext.Provider>\n );\n}\n\nSignInRoutes.displayName = 'SignIn';\n\nexport const SignIn: React.ComponentType<SignInProps> = withCoreSessionSwitchGuard(SignInRoot);\n\nconst InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>> = withCoreSessionSwitchGuard(SignInRoot);\n\nexport const SignInModal = (props: SignInModalProps): JSX.Element => {\n const signInProps = {\n signUpUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-up`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-in'>\n <SignInContext.Provider\n value={{\n componentName: 'SignIn',\n ...signInProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignIn\n {...signInProps}\n routing='virtual'\n />\n </div>\n </SignInContext.Provider>\n </Route>\n );\n};\n"],"mappings":"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"}
@@ -23,7 +23,7 @@ function RedirectToSignUp() {
23
23
  const clerk = useClerk();
24
24
  React.useEffect(() => {
25
25
  clerk.redirectToSignUp();
26
- }, []);
26
+ }, [clerk]);
27
27
  return null;
28
28
  }
29
29
  function SignUpRoutes() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LazySessionTasks","SignUp: React.ComponentType<SignUpProps>","InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>>"],"sources":["../../../src/components/SignUp/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignUpModalProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport { SignUpContext, useSignUpContext, withCoreSessionSwitchGuard } from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport { SignUpStartSolanaWalletsCard } from '@/ui/components/SignUp/SignUpStartSolanaWalletsCard';\n\nimport { SignUpContinue } from './SignUpContinue';\nimport { SignUpEnterpriseConnections } from './SignUpEnterpriseConnections';\nimport { SignUpSSOCallback } from './SignUpSSOCallback';\nimport { SignUpStart } from './SignUpStart';\nimport { SignUpVerifyEmail } from './SignUpVerifyEmail';\nimport { SignUpVerifyPhone } from './SignUpVerifyPhone';\n\nfunction RedirectToSignUp() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignUp();\n }, []);\n return null;\n}\n\nfunction SignUpRoutes(): JSX.Element {\n usePreloadTasks();\n\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signUp'>\n <Switch>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <SignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n />\n </Route>\n <Route path='continue'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route index>\n <SignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signUpContext.afterSignUpUrl} />\n </Route>\n <Route path='enterprise-connections'>\n <SignUpEnterpriseConnections />\n </Route>\n <Route path='choose-wallet'>\n <SignUpStartSolanaWalletsCard />\n </Route>\n <Route index>\n <SignUpStart />\n </Route>\n <Route>\n <RedirectToSignUp />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nSignUpRoutes.displayName = 'SignUp';\n\nexport const SignUp: React.ComponentType<SignUpProps> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nconst InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nexport const SignUpModal = (props: SignUpModalProps): JSX.Element => {\n const signUpProps = {\n signInUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-in`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-up'>\n <SignUpContext.Provider\n value={{\n componentName: 'SignUp',\n ...signUpProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignUp\n {...signUpProps}\n routing='virtual'\n />\n </div>\n </SignUpContext.Provider>\n </Route>\n );\n};\n\nexport { SignUpContinue, SignUpSSOCallback, SignUpStart, SignUpVerifyEmail, SignUpVerifyPhone };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,mBAAmB;CAC1B,MAAM,QAAQ,UAAU;AACxB,OAAM,gBAAgB;AACpB,EAAK,MAAM,kBAAkB;IAC5B,EAAE,CAAC;AACN,QAAO;;AAGT,SAAS,eAA4B;AACnC,kBAAiB;CAEjB,MAAM,gBAAgB,kBAAkB;AAExC,QACE,oBAAC,KAAK;EAAK,MAAK;YACd,qBAAC;GACC,oBAAC;IACC,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,sBAAoB;KACf;GACR,oBAAC;IACC,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,sBAAoB;KACf;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC;KACC,WAAW,cAAc;KACzB,WAAW,cAAc;KACzB,wBAAwB,cAAc;KACtC,wBAAwB,cAAc;KACtC,iBAAiB,cAAc;KAC/B,mBAAkB;KAClB,uBAAsB;KACtB,sBAAqB;MACrB;KACI;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC;KACC,qBAAqB,cAAc;KACnC,iBAAgB;KAChB,iBAAgB;MAChB;KACI;GACR,qBAAC;IAAM,MAAK;;KACV,oBAAC;MACC,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,sBAAoB;OACf;KACR,oBAAC;MACC,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,sBAAoB;OACf;KACR,oBAAC;MAAM;gBACL,oBAAC,mBAAiB;OACZ;;KACF;GACR,oBAAC;IAAM,MAAK;cACV,oBAACA,gBAAiB,qBAAqB,cAAc,iBAAkB;KACjE;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC,gCAA8B;KACzB;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC,iCAA+B;KAC1B;GACR,oBAAC;IAAM;cACL,oBAAC,gBAAc;KACT;GACR,oBAAC,mBACC,oBAAC,qBAAmB,GACd;MACD;GACC;;AAIhB,aAAa,cAAc;AAE3B,MAAaC,SAA2C,2BAA2B,aAAa;AAEhG,MAAMC,iBAAwE,2BAA2B,aAAa;AAEtH,MAAa,eAAe,UAAyC;CACnE,MAAM,cAAc;EAClB,WAAW,IAAI,yBAAyB;EACxC,aAAa,IAAI,yBAAyB;EAC1C,GAAG;EACJ;AAED,QACE,oBAAC;EAAM,MAAK;YACV,oBAAC,cAAc;GACb,OAAO;IACL,eAAe;IACf,GAAG;IACH,SAAS;IACT,MAAM;IACP;aAGD,oBAAC,mBACC,oBAAC;IACC,GAAI;IACJ,SAAQ;KACR,GACE;IACiB;GACnB"}
1
+ {"version":3,"file":"index.js","names":["LazySessionTasks","SignUp: React.ComponentType<SignUpProps>","InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>>"],"sources":["../../../src/components/SignUp/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignUpModalProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport { SignUpContext, useSignUpContext, withCoreSessionSwitchGuard } from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport { SignUpStartSolanaWalletsCard } from '@/ui/components/SignUp/SignUpStartSolanaWalletsCard';\n\nimport { SignUpContinue } from './SignUpContinue';\nimport { SignUpEnterpriseConnections } from './SignUpEnterpriseConnections';\nimport { SignUpSSOCallback } from './SignUpSSOCallback';\nimport { SignUpStart } from './SignUpStart';\nimport { SignUpVerifyEmail } from './SignUpVerifyEmail';\nimport { SignUpVerifyPhone } from './SignUpVerifyPhone';\n\nfunction RedirectToSignUp() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignUp();\n }, [clerk]);\n return null;\n}\n\nfunction SignUpRoutes(): JSX.Element {\n usePreloadTasks();\n\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signUp'>\n <Switch>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <SignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n />\n </Route>\n <Route path='continue'>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route index>\n <SignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signUpContext.afterSignUpUrl} />\n </Route>\n <Route path='enterprise-connections'>\n <SignUpEnterpriseConnections />\n </Route>\n <Route path='choose-wallet'>\n <SignUpStartSolanaWalletsCard />\n </Route>\n <Route index>\n <SignUpStart />\n </Route>\n <Route>\n <RedirectToSignUp />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nSignUpRoutes.displayName = 'SignUp';\n\nexport const SignUp: React.ComponentType<SignUpProps> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nconst InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nexport const SignUpModal = (props: SignUpModalProps): JSX.Element => {\n const signUpProps = {\n signInUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-in`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-up'>\n <SignUpContext.Provider\n value={{\n componentName: 'SignUp',\n ...signUpProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignUp\n {...signUpProps}\n routing='virtual'\n />\n </div>\n </SignUpContext.Provider>\n </Route>\n );\n};\n\nexport { SignUpContinue, SignUpSSOCallback, SignUpStart, SignUpVerifyEmail, SignUpVerifyPhone };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,mBAAmB;CAC1B,MAAM,QAAQ,UAAU;AACxB,OAAM,gBAAgB;AACpB,EAAK,MAAM,kBAAkB;IAC5B,CAAC,MAAM,CAAC;AACX,QAAO;;AAGT,SAAS,eAA4B;AACnC,kBAAiB;CAEjB,MAAM,gBAAgB,kBAAkB;AAExC,QACE,oBAAC,KAAK;EAAK,MAAK;YACd,qBAAC;GACC,oBAAC;IACC,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,sBAAoB;KACf;GACR,oBAAC;IACC,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,sBAAoB;KACf;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC;KACC,WAAW,cAAc;KACzB,WAAW,cAAc;KACzB,wBAAwB,cAAc;KACtC,wBAAwB,cAAc;KACtC,iBAAiB,cAAc;KAC/B,mBAAkB;KAClB,uBAAsB;KACtB,sBAAqB;MACrB;KACI;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC;KACC,qBAAqB,cAAc;KACnC,iBAAgB;KAChB,iBAAgB;MAChB;KACI;GACR,qBAAC;IAAM,MAAK;;KACV,oBAAC;MACC,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,sBAAoB;OACf;KACR,oBAAC;MACC,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,sBAAoB;OACf;KACR,oBAAC;MAAM;gBACL,oBAAC,mBAAiB;OACZ;;KACF;GACR,oBAAC;IAAM,MAAK;cACV,oBAACA,gBAAiB,qBAAqB,cAAc,iBAAkB;KACjE;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC,gCAA8B;KACzB;GACR,oBAAC;IAAM,MAAK;cACV,oBAAC,iCAA+B;KAC1B;GACR,oBAAC;IAAM;cACL,oBAAC,gBAAc;KACT;GACR,oBAAC,mBACC,oBAAC,qBAAmB,GACd;MACD;GACC;;AAIhB,aAAa,cAAc;AAE3B,MAAaC,SAA2C,2BAA2B,aAAa;AAEhG,MAAMC,iBAAwE,2BAA2B,aAAa;AAEtH,MAAa,eAAe,UAAyC;CACnE,MAAM,cAAc;EAClB,WAAW,IAAI,yBAAyB;EACxC,aAAa,IAAI,yBAAyB;EAC1C,GAAG;EACJ;AAED,QACE,oBAAC;EAAM,MAAK;YACV,oBAAC,cAAc;GACb,OAAO;IACL,eAAe;IACf,GAAG;IACH,SAAS;IACT,MAAM;IACP;aAGD,oBAAC,mBACC,oBAAC;IACC,GAAI;IACJ,SAAQ;KACR,GACE;IACiB;GACnB"}
@@ -3,11 +3,11 @@ import { useModuleManager } from "../../contexts/ModuleManagerContext.js";
3
3
  import { localizationKeys } from "../../localization/localizationKeys.js";
4
4
  import { descriptors } from "../../customizables/elementDescriptors.js";
5
5
  import { useCardState } from "../../elements/contexts/index.js";
6
- import { Image, Text } from "../../customizables/index.js";
7
- import { getFieldError, handleError } from "../../utils/errorHandler.js";
6
+ import { Image } from "../../customizables/index.js";
8
7
  import { useActionContext } from "../../elements/Action/ActionRoot.js";
9
8
  import { Action } from "../../elements/Action/index.js";
10
9
  import { ProfileSection } from "../../elements/Section.js";
10
+ import { web3CallbackErrorHandler } from "../../utils/web3CallbackErrorHandler.js";
11
11
  import { Web3SelectSolanaWalletScreen } from "./Web3SelectSolanaWalletScreen.js";
12
12
  import { Fragment, jsx, jsxs } from "@emotion/react/jsx-runtime";
13
13
  import { useReverification, useUser } from "@clerk/shared/react";
@@ -55,54 +55,41 @@ const AddWeb3WalletActionMenu = () => {
55
55
  card.setIdle();
56
56
  } catch (err) {
57
57
  card.setIdle();
58
- const fieldError = getFieldError(err);
59
- if (fieldError) card.setError(fieldError.longMessage);
60
- else handleError(err, [], card.setError);
58
+ web3CallbackErrorHandler(err, card.setError);
61
59
  }
62
60
  };
63
- return /* @__PURE__ */ jsxs(Fragment, { children: [
64
- /* @__PURE__ */ jsx(Action.Closed, {
65
- value: "web3Wallets",
66
- children: /* @__PURE__ */ jsx(ProfileSection.ActionMenu, {
67
- id: "web3Wallets",
68
- triggerLocalizationKey: localizationKeys("userProfile.start.web3WalletsSection.primaryButton"),
69
- children: unconnectedStrategies.map((strategy) => /* @__PURE__ */ jsx(ProfileSection.ActionMenuItem, {
70
- id: strategyToDisplayData[strategy].id,
71
- onClick: () => {
72
- connect({ strategy });
73
- },
61
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Action.Closed, {
62
+ value: "web3Wallets",
63
+ children: /* @__PURE__ */ jsx(ProfileSection.ActionMenu, {
64
+ id: "web3Wallets",
65
+ triggerLocalizationKey: localizationKeys("userProfile.start.web3WalletsSection.primaryButton"),
66
+ children: unconnectedStrategies.map((strategy) => /* @__PURE__ */ jsx(ProfileSection.ActionMenuItem, {
67
+ id: strategyToDisplayData[strategy].id,
68
+ onClick: () => {
69
+ connect({ strategy });
70
+ },
71
+ isLoading: card.loadingMetadata === strategy,
72
+ isDisabled: card.isLoading,
73
+ localizationKey: localizationKeys("userProfile.web3WalletPage.web3WalletButtonsBlockButton", { provider: strategyToDisplayData[strategy].name }),
74
+ sx: (t) => ({
75
+ justifyContent: "start",
76
+ gap: t.space.$2
77
+ }),
78
+ leftIcon: /* @__PURE__ */ jsx(Image, {
79
+ elementDescriptor: descriptors.providerIcon,
80
+ elementId: descriptors.providerIcon.setId(strategyToDisplayData[strategy].id),
74
81
  isLoading: card.loadingMetadata === strategy,
75
82
  isDisabled: card.isLoading,
76
- localizationKey: localizationKeys("userProfile.web3WalletPage.web3WalletButtonsBlockButton", { provider: strategyToDisplayData[strategy].name }),
77
- sx: (t) => ({
78
- justifyContent: "start",
79
- gap: t.space.$2
80
- }),
81
- leftIcon: /* @__PURE__ */ jsx(Image, {
82
- elementDescriptor: descriptors.providerIcon,
83
- elementId: descriptors.providerIcon.setId(strategyToDisplayData[strategy].id),
84
- isLoading: card.loadingMetadata === strategy,
85
- isDisabled: card.isLoading,
86
- src: strategyToDisplayData[strategy].iconUrl,
87
- alt: `Connect ${strategyToDisplayData[strategy].name}`,
88
- sx: (theme) => ({ width: theme.sizes.$5 })
89
- })
90
- }, strategy))
91
- })
92
- }),
93
- /* @__PURE__ */ jsx(Action.Open, {
94
- value: "web3Wallets",
95
- children: /* @__PURE__ */ jsx(Action.Card, { children: /* @__PURE__ */ jsx(Web3SelectSolanaWalletScreen, { onConnect: connect }) })
96
- }),
97
- card.error && /* @__PURE__ */ jsx(Text, {
98
- colorScheme: "danger",
99
- sx: (t) => ({
100
- padding: t.sizes.$1x5,
101
- paddingLeft: t.sizes.$8x5
102
- }),
103
- children: card.error
83
+ src: strategyToDisplayData[strategy].iconUrl,
84
+ alt: `Connect ${strategyToDisplayData[strategy].name}`,
85
+ sx: (theme) => ({ width: theme.sizes.$5 })
86
+ })
87
+ }, strategy))
104
88
  })
105
- ] });
89
+ }), /* @__PURE__ */ jsx(Action.Open, {
90
+ value: "web3Wallets",
91
+ children: /* @__PURE__ */ jsx(Action.Card, { children: /* @__PURE__ */ jsx(Web3SelectSolanaWalletScreen, { onConnect: connect }) })
92
+ })] });
106
93
  };
107
94
 
108
95
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Web3Form.js","names":["err: any"],"sources":["../../../src/components/UserProfile/Web3Form.tsx"],"sourcesContent":["import { createWeb3 } from '@clerk/shared/internal/clerk-js/web3';\nimport { useReverification, useUser } from '@clerk/shared/react';\nimport type { Web3Provider, Web3Strategy } from '@clerk/shared/types';\n\nimport { Web3SelectSolanaWalletScreen } from '@/ui/components/UserProfile/Web3SelectSolanaWalletScreen';\nimport { Action } from '@/ui/elements/Action';\nimport { useActionContext } from '@/ui/elements/Action/ActionRoot';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { ProfileSection } from '@/ui/elements/Section';\nimport { getFieldError, handleError } from '@/ui/utils/errorHandler';\n\nimport { useModuleManager } from '../../contexts';\nimport { descriptors, Image, localizationKeys, Text } from '../../customizables';\nimport { useEnabledThirdPartyProviders } from '../../hooks';\n\nexport const AddWeb3WalletActionMenu = () => {\n const card = useCardState();\n const { open } = useActionContext();\n const { user } = useUser();\n const { strategies, strategyToDisplayData } = useEnabledThirdPartyProviders();\n const moduleManager = useModuleManager();\n const enabledStrategies = strategies.filter(s => s.startsWith('web3')) as Web3Strategy[];\n const connectedStrategies = user?.verifiedWeb3Wallets?.map(w => w.verification.strategy) ?? ([] as Web3Strategy[]);\n const unconnectedStrategies = enabledStrategies.filter(strategy => {\n return !connectedStrategies.includes(strategy) && strategyToDisplayData[strategy];\n });\n\n if (unconnectedStrategies.length === 0) {\n return null;\n }\n\n const createWeb3Wallet = useReverification((identifier: string) =>\n user?.createWeb3Wallet({ web3Wallet: identifier }),\n );\n\n // If the user selects `web3_solana_signature` as their strategy,\n // we need to obtain the wallet name to use when connecting and signing the message during the auth flow\n //\n // Otherwise, our current Web3 providers are all based on the wallet provider name,\n // which is sufficient for our current use case when connecting to a wallet.\n const connect = async ({ strategy, walletName }: { strategy: Web3Strategy; walletName?: string }) => {\n const web3 = createWeb3(moduleManager);\n\n if (strategy === 'web3_solana_signature' && !walletName) {\n open('web3Wallets');\n return;\n }\n const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;\n card.setError(undefined);\n\n try {\n card.setLoading(strategy);\n const identifier = await web3.getWeb3Identifier({ provider, walletName });\n\n if (!user) {\n throw new Error('user is not defined');\n }\n\n let web3Wallet = await createWeb3Wallet(identifier);\n web3Wallet = await web3Wallet?.prepareVerification({ strategy });\n const message = web3Wallet?.verification.message as string;\n const signature = await web3.generateWeb3Signature({ identifier, nonce: message, provider, walletName });\n await web3Wallet?.attemptVerification({ signature });\n card.setIdle();\n } catch (err: any) {\n card.setIdle();\n const fieldError = getFieldError(err);\n if (fieldError) {\n card.setError(fieldError.longMessage);\n } else {\n handleError(err, [], card.setError);\n }\n }\n };\n\n return (\n <>\n <Action.Closed value='web3Wallets'>\n <ProfileSection.ActionMenu\n id='web3Wallets'\n triggerLocalizationKey={localizationKeys('userProfile.start.web3WalletsSection.primaryButton')}\n >\n {unconnectedStrategies.map(strategy => (\n <ProfileSection.ActionMenuItem\n key={strategy}\n id={strategyToDisplayData[strategy].id}\n onClick={() => {\n void connect({ strategy });\n }}\n isLoading={card.loadingMetadata === strategy}\n isDisabled={card.isLoading}\n localizationKey={localizationKeys('userProfile.web3WalletPage.web3WalletButtonsBlockButton', {\n provider: strategyToDisplayData[strategy].name,\n })}\n sx={t => ({\n justifyContent: 'start',\n gap: t.space.$2,\n })}\n leftIcon={\n <Image\n elementDescriptor={descriptors.providerIcon}\n elementId={descriptors.providerIcon.setId(strategyToDisplayData[strategy].id)}\n isLoading={card.loadingMetadata === strategy}\n isDisabled={card.isLoading}\n src={strategyToDisplayData[strategy].iconUrl}\n alt={`Connect ${strategyToDisplayData[strategy].name}`}\n sx={theme => ({ width: theme.sizes.$5 })}\n />\n }\n />\n ))}\n </ProfileSection.ActionMenu>\n </Action.Closed>\n <Action.Open value='web3Wallets'>\n <Action.Card>\n <Web3SelectSolanaWalletScreen onConnect={connect} />\n </Action.Card>\n </Action.Open>\n\n {card.error && (\n <Text\n colorScheme='danger'\n sx={t => ({\n padding: t.sizes.$1x5,\n paddingLeft: t.sizes.$8x5,\n })}\n >\n {card.error}\n </Text>\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAa,gCAAgC;CAC3C,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,SAAS,kBAAkB;CACnC,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,EAAE,YAAY,0BAA0B,+BAA+B;CAC7E,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,oBAAoB,WAAW,QAAO,MAAK,EAAE,WAAW,OAAO,CAAC;CACtE,MAAM,sBAAsB,MAAM,qBAAqB,KAAI,MAAK,EAAE,aAAa,SAAS,IAAK,EAAE;CAC/F,MAAM,wBAAwB,kBAAkB,QAAO,aAAY;AACjE,SAAO,CAAC,oBAAoB,SAAS,SAAS,IAAI,sBAAsB;GACxE;AAEF,KAAI,sBAAsB,WAAW,EACnC,QAAO;CAGT,MAAM,mBAAmB,mBAAmB,eAC1C,MAAM,iBAAiB,EAAE,YAAY,YAAY,CAAC,CACnD;CAOD,MAAM,UAAU,OAAO,EAAE,UAAU,iBAAkE;EACnG,MAAM,OAAO,WAAW,cAAc;AAEtC,MAAI,aAAa,2BAA2B,CAAC,YAAY;AACvD,QAAK,cAAc;AACnB;;EAEF,MAAM,WAAW,SAAS,QAAQ,SAAS,GAAG,CAAC,QAAQ,cAAc,GAAG;AACxE,OAAK,SAAS,OAAU;AAExB,MAAI;AACF,QAAK,WAAW,SAAS;GACzB,MAAM,aAAa,MAAM,KAAK,kBAAkB;IAAE;IAAU;IAAY,CAAC;AAEzE,OAAI,CAAC,KACH,OAAM,IAAI,MAAM,sBAAsB;GAGxC,IAAI,aAAa,MAAM,iBAAiB,WAAW;AACnD,gBAAa,MAAM,YAAY,oBAAoB,EAAE,UAAU,CAAC;GAChE,MAAM,UAAU,YAAY,aAAa;GACzC,MAAM,YAAY,MAAM,KAAK,sBAAsB;IAAE;IAAY,OAAO;IAAS;IAAU;IAAY,CAAC;AACxG,SAAM,YAAY,oBAAoB,EAAE,WAAW,CAAC;AACpD,QAAK,SAAS;WACPA,KAAU;AACjB,QAAK,SAAS;GACd,MAAM,aAAa,cAAc,IAAI;AACrC,OAAI,WACF,MAAK,SAAS,WAAW,YAAY;OAErC,aAAY,KAAK,EAAE,EAAE,KAAK,SAAS;;;AAKzC,QACE;EACE,oBAAC,OAAO;GAAO,OAAM;aACnB,oBAAC,eAAe;IACd,IAAG;IACH,wBAAwB,iBAAiB,qDAAqD;cAE7F,sBAAsB,KAAI,aACzB,oBAAC,eAAe;KAEd,IAAI,sBAAsB,UAAU;KACpC,eAAe;AACb,MAAK,QAAQ,EAAE,UAAU,CAAC;;KAE5B,WAAW,KAAK,oBAAoB;KACpC,YAAY,KAAK;KACjB,iBAAiB,iBAAiB,2DAA2D,EAC3F,UAAU,sBAAsB,UAAU,MAC3C,CAAC;KACF,KAAI,OAAM;MACR,gBAAgB;MAChB,KAAK,EAAE,MAAM;MACd;KACD,UACE,oBAAC;MACC,mBAAmB,YAAY;MAC/B,WAAW,YAAY,aAAa,MAAM,sBAAsB,UAAU,GAAG;MAC7E,WAAW,KAAK,oBAAoB;MACpC,YAAY,KAAK;MACjB,KAAK,sBAAsB,UAAU;MACrC,KAAK,WAAW,sBAAsB,UAAU;MAChD,KAAI,WAAU,EAAE,OAAO,MAAM,MAAM,IAAI;OACvC;OAvBC,SAyBL,CACF;KACwB;IACd;EAChB,oBAAC,OAAO;GAAK,OAAM;aACjB,oBAAC,OAAO,kBACN,oBAAC,gCAA6B,WAAW,UAAW,GACxC;IACF;EAEb,KAAK,SACJ,oBAAC;GACC,aAAY;GACZ,KAAI,OAAM;IACR,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,MAAM;IACtB;aAEA,KAAK;IACD;KAER"}
1
+ {"version":3,"file":"Web3Form.js","names":["err: any"],"sources":["../../../src/components/UserProfile/Web3Form.tsx"],"sourcesContent":["import { createWeb3 } from '@clerk/shared/internal/clerk-js/web3';\nimport { useReverification, useUser } from '@clerk/shared/react';\nimport type { Web3Provider, Web3Strategy } from '@clerk/shared/types';\n\nimport { useModuleManager } from '@/contexts';\nimport { descriptors, Image, localizationKeys } from '@/customizables';\nimport { useEnabledThirdPartyProviders } from '@/hooks';\nimport { Web3SelectSolanaWalletScreen } from '@/ui/components/UserProfile/Web3SelectSolanaWalletScreen';\nimport { Action } from '@/ui/elements/Action';\nimport { useActionContext } from '@/ui/elements/Action/ActionRoot';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { ProfileSection } from '@/ui/elements/Section';\nimport { web3CallbackErrorHandler } from '@/ui/utils/web3CallbackErrorHandler';\n\nexport const AddWeb3WalletActionMenu = () => {\n const card = useCardState();\n const { open } = useActionContext();\n const { user } = useUser();\n const { strategies, strategyToDisplayData } = useEnabledThirdPartyProviders();\n const moduleManager = useModuleManager();\n const enabledStrategies = strategies.filter(s => s.startsWith('web3')) as Web3Strategy[];\n const connectedStrategies = user?.verifiedWeb3Wallets?.map(w => w.verification.strategy) ?? ([] as Web3Strategy[]);\n const unconnectedStrategies = enabledStrategies.filter(strategy => {\n return !connectedStrategies.includes(strategy) && strategyToDisplayData[strategy];\n });\n\n if (unconnectedStrategies.length === 0) {\n return null;\n }\n\n const createWeb3Wallet = useReverification((identifier: string) =>\n user?.createWeb3Wallet({ web3Wallet: identifier }),\n );\n\n // If the user selects `web3_solana_signature` as their strategy,\n // we need to obtain the wallet name to use when connecting and signing the message during the auth flow\n //\n // Otherwise, our current Web3 providers are all based on the wallet provider name,\n // which is sufficient for our current use case when connecting to a wallet.\n const connect = async ({ strategy, walletName }: { strategy: Web3Strategy; walletName?: string }) => {\n const web3 = createWeb3(moduleManager);\n\n if (strategy === 'web3_solana_signature' && !walletName) {\n open('web3Wallets');\n return;\n }\n const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;\n card.setError(undefined);\n\n try {\n card.setLoading(strategy);\n const identifier = await web3.getWeb3Identifier({ provider, walletName });\n\n if (!user) {\n throw new Error('user is not defined');\n }\n\n let web3Wallet = await createWeb3Wallet(identifier);\n web3Wallet = await web3Wallet?.prepareVerification({ strategy });\n const message = web3Wallet?.verification.message as string;\n const signature = await web3.generateWeb3Signature({ identifier, nonce: message, provider, walletName });\n await web3Wallet?.attemptVerification({ signature });\n card.setIdle();\n } catch (err: any) {\n card.setIdle();\n web3CallbackErrorHandler(err, card.setError);\n }\n };\n\n return (\n <>\n <Action.Closed value='web3Wallets'>\n <ProfileSection.ActionMenu\n id='web3Wallets'\n triggerLocalizationKey={localizationKeys('userProfile.start.web3WalletsSection.primaryButton')}\n >\n {unconnectedStrategies.map(strategy => (\n <ProfileSection.ActionMenuItem\n key={strategy}\n id={strategyToDisplayData[strategy].id}\n onClick={() => {\n void connect({ strategy });\n }}\n isLoading={card.loadingMetadata === strategy}\n isDisabled={card.isLoading}\n localizationKey={localizationKeys('userProfile.web3WalletPage.web3WalletButtonsBlockButton', {\n provider: strategyToDisplayData[strategy].name,\n })}\n sx={t => ({\n justifyContent: 'start',\n gap: t.space.$2,\n })}\n leftIcon={\n <Image\n elementDescriptor={descriptors.providerIcon}\n elementId={descriptors.providerIcon.setId(strategyToDisplayData[strategy].id)}\n isLoading={card.loadingMetadata === strategy}\n isDisabled={card.isLoading}\n src={strategyToDisplayData[strategy].iconUrl}\n alt={`Connect ${strategyToDisplayData[strategy].name}`}\n sx={theme => ({ width: theme.sizes.$5 })}\n />\n }\n />\n ))}\n </ProfileSection.ActionMenu>\n </Action.Closed>\n <Action.Open value='web3Wallets'>\n <Action.Card>\n <Web3SelectSolanaWalletScreen onConnect={connect} />\n </Action.Card>\n </Action.Open>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAa,gCAAgC;CAC3C,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,SAAS,kBAAkB;CACnC,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,EAAE,YAAY,0BAA0B,+BAA+B;CAC7E,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,oBAAoB,WAAW,QAAO,MAAK,EAAE,WAAW,OAAO,CAAC;CACtE,MAAM,sBAAsB,MAAM,qBAAqB,KAAI,MAAK,EAAE,aAAa,SAAS,IAAK,EAAE;CAC/F,MAAM,wBAAwB,kBAAkB,QAAO,aAAY;AACjE,SAAO,CAAC,oBAAoB,SAAS,SAAS,IAAI,sBAAsB;GACxE;AAEF,KAAI,sBAAsB,WAAW,EACnC,QAAO;CAGT,MAAM,mBAAmB,mBAAmB,eAC1C,MAAM,iBAAiB,EAAE,YAAY,YAAY,CAAC,CACnD;CAOD,MAAM,UAAU,OAAO,EAAE,UAAU,iBAAkE;EACnG,MAAM,OAAO,WAAW,cAAc;AAEtC,MAAI,aAAa,2BAA2B,CAAC,YAAY;AACvD,QAAK,cAAc;AACnB;;EAEF,MAAM,WAAW,SAAS,QAAQ,SAAS,GAAG,CAAC,QAAQ,cAAc,GAAG;AACxE,OAAK,SAAS,OAAU;AAExB,MAAI;AACF,QAAK,WAAW,SAAS;GACzB,MAAM,aAAa,MAAM,KAAK,kBAAkB;IAAE;IAAU;IAAY,CAAC;AAEzE,OAAI,CAAC,KACH,OAAM,IAAI,MAAM,sBAAsB;GAGxC,IAAI,aAAa,MAAM,iBAAiB,WAAW;AACnD,gBAAa,MAAM,YAAY,oBAAoB,EAAE,UAAU,CAAC;GAChE,MAAM,UAAU,YAAY,aAAa;GACzC,MAAM,YAAY,MAAM,KAAK,sBAAsB;IAAE;IAAY,OAAO;IAAS;IAAU;IAAY,CAAC;AACxG,SAAM,YAAY,oBAAoB,EAAE,WAAW,CAAC;AACpD,QAAK,SAAS;WACPA,KAAU;AACjB,QAAK,SAAS;AACd,4BAAyB,KAAK,KAAK,SAAS;;;AAIhD,QACE,4CACE,oBAAC,OAAO;EAAO,OAAM;YACnB,oBAAC,eAAe;GACd,IAAG;GACH,wBAAwB,iBAAiB,qDAAqD;aAE7F,sBAAsB,KAAI,aACzB,oBAAC,eAAe;IAEd,IAAI,sBAAsB,UAAU;IACpC,eAAe;AACb,KAAK,QAAQ,EAAE,UAAU,CAAC;;IAE5B,WAAW,KAAK,oBAAoB;IACpC,YAAY,KAAK;IACjB,iBAAiB,iBAAiB,2DAA2D,EAC3F,UAAU,sBAAsB,UAAU,MAC3C,CAAC;IACF,KAAI,OAAM;KACR,gBAAgB;KAChB,KAAK,EAAE,MAAM;KACd;IACD,UACE,oBAAC;KACC,mBAAmB,YAAY;KAC/B,WAAW,YAAY,aAAa,MAAM,sBAAsB,UAAU,GAAG;KAC7E,WAAW,KAAK,oBAAoB;KACpC,YAAY,KAAK;KACjB,KAAK,sBAAsB,UAAU;KACrC,KAAK,WAAW,sBAAsB,UAAU;KAChD,KAAI,WAAU,EAAE,OAAO,MAAM,MAAM,IAAI;MACvC;MAvBC,SAyBL,CACF;IACwB;GACd,EAChB,oBAAC,OAAO;EAAK,OAAM;YACjB,oBAAC,OAAO,kBACN,oBAAC,gCAA6B,WAAW,UAAW,GACxC;GACF,IACb"}
@@ -80,7 +80,10 @@ const Web3Section = withCardStateProvider(({ shouldAllowCreation = true }) => {
80
80
  ]
81
81
  })
82
82
  })]
83
- }), /* @__PURE__ */ jsx(Web3WalletMenu, { walletId })]
83
+ }), /* @__PURE__ */ jsx(Web3WalletMenu, {
84
+ walletId,
85
+ isVerified: wallet.verification.status === "verified"
86
+ })]
84
87
  }, walletId), /* @__PURE__ */ jsx(Action.Open, {
85
88
  value: `remove-${walletId}`,
86
89
  children: /* @__PURE__ */ jsx(Action.Card, {
@@ -93,7 +96,7 @@ const Web3Section = withCardStateProvider(({ shouldAllowCreation = true }) => {
93
96
  })]
94
97
  });
95
98
  });
96
- const Web3WalletMenu = ({ walletId }) => {
99
+ const Web3WalletMenu = ({ walletId, isVerified }) => {
97
100
  const card = useCardState();
98
101
  const { open } = useActionContext();
99
102
  const { user } = useUser();
@@ -101,7 +104,7 @@ const Web3WalletMenu = ({ walletId }) => {
101
104
  const setPrimary = useReverification(() => {
102
105
  return user?.update({ primaryWeb3WalletId: walletId });
103
106
  });
104
- return /* @__PURE__ */ jsx(ThreeDotsMenu, { actions: [!isPrimary ? {
107
+ return /* @__PURE__ */ jsx(ThreeDotsMenu, { actions: [!isPrimary && isVerified ? {
105
108
  label: localizationKeys("userProfile.start.web3WalletsSection.detailsAction__nonPrimary"),
106
109
  onClick: () => {
107
110
  setPrimary().catch((e) => handleError(e, [], card.setError));
@@ -1 +1 @@
1
- {"version":3,"file":"Web3Section.js","names":[],"sources":["../../../src/components/UserProfile/Web3Section.tsx"],"sourcesContent":["import { useReverification, useUser } from '@clerk/shared/react';\nimport { Fragment, useState } from 'react';\n\nimport { Card } from '@/ui/elements/Card';\nimport { useCardState, withCardStateProvider } from '@/ui/elements/contexts';\nimport { ProfileSection } from '@/ui/elements/Section';\nimport { ThreeDotsMenu } from '@/ui/elements/ThreeDotsMenu';\nimport { handleError } from '@/ui/utils/errorHandler';\n\nimport { Badge, Box, Flex, Image, localizationKeys, Text } from '../../customizables';\nimport { Action } from '../../elements/Action';\nimport { useActionContext } from '../../elements/Action/ActionRoot';\nimport { useEnabledThirdPartyProviders } from '../../hooks';\nimport type { PropsOfComponent } from '../../styledSystem';\nimport { RemoveWeb3WalletForm } from './RemoveResourceForm';\nimport { sortIdentificationBasedOnVerification } from './utils';\nimport { AddWeb3WalletActionMenu } from './Web3Form';\n\ntype RemoveWeb3WalletScreenProps = { walletId: string };\nconst RemoveWeb3WalletScreen = (props: RemoveWeb3WalletScreenProps) => {\n const { close } = useActionContext();\n return (\n <RemoveWeb3WalletForm\n onSuccess={close}\n onReset={close}\n {...props}\n />\n );\n};\n\nconst shortenWeb3Address = (address: string) => {\n if (address.length <= 10) {\n return address;\n }\n return address.slice(0, 6) + '...' + address.slice(-4);\n};\n\nexport const Web3Section = withCardStateProvider(\n ({ shouldAllowCreation = true }: { shouldAllowCreation?: boolean }) => {\n const { user } = useUser();\n const card = useCardState();\n const { strategyToDisplayData } = useEnabledThirdPartyProviders();\n const hasWeb3Wallets = Boolean(user?.web3Wallets?.length);\n const [actionValue, setActionValue] = useState<string | null>(null);\n\n if (!shouldAllowCreation && !hasWeb3Wallets) {\n return null;\n }\n\n return (\n <ProfileSection.Root\n title={localizationKeys('userProfile.start.web3WalletsSection.title')}\n centered={false}\n id='web3Wallets'\n >\n <Card.Alert>{card.error}</Card.Alert>\n <Action.Root\n value={actionValue}\n onChange={setActionValue}\n >\n <ProfileSection.ItemList id='web3Wallets'>\n {sortIdentificationBasedOnVerification(user?.web3Wallets, user?.primaryWeb3WalletId).map(wallet => {\n const strategy = wallet.verification.strategy as keyof typeof strategyToDisplayData;\n const walletId = wallet.id;\n return (\n strategyToDisplayData[strategy] && (\n <Fragment key={wallet.id}>\n <ProfileSection.Item\n key={walletId}\n id='web3Wallets'\n align='start'\n >\n <Flex sx={t => ({ alignItems: 'center', gap: t.space.$2, width: '100%' })}>\n {strategyToDisplayData[strategy].iconUrl && (\n <Image\n src={strategyToDisplayData[strategy].iconUrl}\n alt={strategyToDisplayData[strategy].name}\n sx={theme => ({ width: theme.sizes.$4 })}\n />\n )}\n <Box sx={{ whiteSpace: 'nowrap', overflow: 'hidden' }}>\n <Flex\n gap={2}\n justify='start'\n >\n <Text>\n {strategyToDisplayData[strategy].name} ({shortenWeb3Address(wallet.web3Wallet)})\n </Text>\n {user?.primaryWeb3WalletId === walletId && (\n <Badge localizationKey={localizationKeys('badge__primary')} />\n )}\n {wallet.verification.status !== 'verified' && (\n <Badge localizationKey={localizationKeys('badge__unverified')} />\n )}\n </Flex>\n </Box>\n </Flex>\n <Web3WalletMenu walletId={walletId} />\n </ProfileSection.Item>\n\n <Action.Open value={`remove-${walletId}`}>\n <Action.Card variant='destructive'>\n <RemoveWeb3WalletScreen walletId={wallet.id} />\n </Action.Card>\n </Action.Open>\n </Fragment>\n )\n );\n })}\n </ProfileSection.ItemList>\n {shouldAllowCreation && <AddWeb3WalletActionMenu />}\n </Action.Root>\n </ProfileSection.Root>\n );\n },\n);\n\nconst Web3WalletMenu = ({ walletId }: { walletId: string }) => {\n const card = useCardState();\n const { open } = useActionContext();\n const { user } = useUser();\n const isPrimary = user?.primaryWeb3WalletId === walletId;\n const setPrimary = useReverification(() => {\n return user?.update({ primaryWeb3WalletId: walletId });\n });\n\n const actions = (\n [\n !isPrimary\n ? {\n label: localizationKeys('userProfile.start.web3WalletsSection.detailsAction__nonPrimary'),\n onClick: () => {\n setPrimary().catch(e => handleError(e, [], card.setError));\n },\n }\n : null,\n {\n label: localizationKeys('userProfile.start.web3WalletsSection.destructiveAction'),\n isDestructive: true,\n onClick: () => open(`remove-${walletId}`),\n },\n ] satisfies (PropsOfComponent<typeof ThreeDotsMenu>['actions'][0] | null)[]\n ).filter(a => a !== null) as PropsOfComponent<typeof ThreeDotsMenu>['actions'];\n\n return <ThreeDotsMenu actions={actions} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,0BAA0B,UAAuC;CACrE,MAAM,EAAE,UAAU,kBAAkB;AACpC,QACE,oBAAC;EACC,WAAW;EACX,SAAS;EACT,GAAI;GACJ;;AAIN,MAAM,sBAAsB,YAAoB;AAC9C,KAAI,QAAQ,UAAU,GACpB,QAAO;AAET,QAAO,QAAQ,MAAM,GAAG,EAAE,GAAG,QAAQ,QAAQ,MAAM,GAAG;;AAGxD,MAAa,cAAc,uBACxB,EAAE,sBAAsB,WAA8C;CACrE,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,0BAA0B,+BAA+B;CACjE,MAAM,iBAAiB,QAAQ,MAAM,aAAa,OAAO;CACzD,MAAM,CAAC,aAAa,kBAAkB,SAAwB,KAAK;AAEnE,KAAI,CAAC,uBAAuB,CAAC,eAC3B,QAAO;AAGT,QACE,qBAAC,eAAe;EACd,OAAO,iBAAiB,6CAA6C;EACrE,UAAU;EACV,IAAG;aAEH,oBAAC,KAAK,mBAAO,KAAK,QAAmB,EACrC,qBAAC,OAAO;GACN,OAAO;GACP,UAAU;cAEV,oBAAC,eAAe;IAAS,IAAG;cACzB,sCAAsC,MAAM,aAAa,MAAM,oBAAoB,CAAC,KAAI,WAAU;KACjG,MAAM,WAAW,OAAO,aAAa;KACrC,MAAM,WAAW,OAAO;AACxB,YACE,sBAAsB,aACpB,qBAAC,uBACC,qBAAC,eAAe;MAEd,IAAG;MACH,OAAM;iBAEN,qBAAC;OAAK,KAAI,OAAM;QAAE,YAAY;QAAU,KAAK,EAAE,MAAM;QAAI,OAAO;QAAQ;kBACrE,sBAAsB,UAAU,WAC/B,oBAAC;QACC,KAAK,sBAAsB,UAAU;QACrC,KAAK,sBAAsB,UAAU;QACrC,KAAI,WAAU,EAAE,OAAO,MAAM,MAAM,IAAI;SACvC,EAEJ,oBAAC;QAAI,IAAI;SAAE,YAAY;SAAU,UAAU;SAAU;kBACnD,qBAAC;SACC,KAAK;SACL,SAAQ;;UAER,qBAAC;WACE,sBAAsB,UAAU;WAAK;WAAG,mBAAmB,OAAO,WAAW;WAAC;cAC1E;UACN,MAAM,wBAAwB,YAC7B,oBAAC,SAAM,iBAAiB,iBAAiB,iBAAiB,GAAI;UAE/D,OAAO,aAAa,WAAW,cAC9B,oBAAC,SAAM,iBAAiB,iBAAiB,oBAAoB,GAAI;;UAE9D;SACH;QACD,EACP,oBAAC,kBAAyB,WAAY;QA7BjC,SA8Be,EAEtB,oBAAC,OAAO;MAAK,OAAO,UAAU;gBAC5B,oBAAC,OAAO;OAAK,SAAQ;iBACnB,oBAAC,0BAAuB,UAAU,OAAO,KAAM;QACnC;OACF,KAtCD,OAAO,GAuCX;MAGf;KACsB,EACzB,uBAAuB,oBAAC,4BAA0B;IACvC;GACM;EAG3B;AAED,MAAM,kBAAkB,EAAE,eAAqC;CAC7D,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,SAAS,kBAAkB;CACnC,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,YAAY,MAAM,wBAAwB;CAChD,MAAM,aAAa,wBAAwB;AACzC,SAAO,MAAM,OAAO,EAAE,qBAAqB,UAAU,CAAC;GACtD;AAoBF,QAAO,oBAAC,iBAAc,SAjBpB,CACE,CAAC,YACG;EACE,OAAO,iBAAiB,iEAAiE;EACzF,eAAe;AACb,eAAY,CAAC,OAAM,MAAK,YAAY,GAAG,EAAE,EAAE,KAAK,SAAS,CAAC;;EAE7D,GACD,MACJ;EACE,OAAO,iBAAiB,yDAAyD;EACjF,eAAe;EACf,eAAe,KAAK,UAAU,WAAW;EAC1C,CACF,CACD,QAAO,MAAK,MAAM,KAAK,GAEiB"}
1
+ {"version":3,"file":"Web3Section.js","names":[],"sources":["../../../src/components/UserProfile/Web3Section.tsx"],"sourcesContent":["import { useReverification, useUser } from '@clerk/shared/react';\nimport { Fragment, useState } from 'react';\n\nimport { Card } from '@/ui/elements/Card';\nimport { useCardState, withCardStateProvider } from '@/ui/elements/contexts';\nimport { ProfileSection } from '@/ui/elements/Section';\nimport { ThreeDotsMenu } from '@/ui/elements/ThreeDotsMenu';\nimport { handleError } from '@/ui/utils/errorHandler';\n\nimport { Badge, Box, Flex, Image, localizationKeys, Text } from '../../customizables';\nimport { Action } from '../../elements/Action';\nimport { useActionContext } from '../../elements/Action/ActionRoot';\nimport { useEnabledThirdPartyProviders } from '../../hooks';\nimport type { PropsOfComponent } from '../../styledSystem';\nimport { RemoveWeb3WalletForm } from './RemoveResourceForm';\nimport { sortIdentificationBasedOnVerification } from './utils';\nimport { AddWeb3WalletActionMenu } from './Web3Form';\n\ntype RemoveWeb3WalletScreenProps = { walletId: string };\nconst RemoveWeb3WalletScreen = (props: RemoveWeb3WalletScreenProps) => {\n const { close } = useActionContext();\n return (\n <RemoveWeb3WalletForm\n onSuccess={close}\n onReset={close}\n {...props}\n />\n );\n};\n\nconst shortenWeb3Address = (address: string) => {\n if (address.length <= 10) {\n return address;\n }\n return address.slice(0, 6) + '...' + address.slice(-4);\n};\n\nexport const Web3Section = withCardStateProvider(\n ({ shouldAllowCreation = true }: { shouldAllowCreation?: boolean }) => {\n const { user } = useUser();\n const card = useCardState();\n const { strategyToDisplayData } = useEnabledThirdPartyProviders();\n const hasWeb3Wallets = Boolean(user?.web3Wallets?.length);\n const [actionValue, setActionValue] = useState<string | null>(null);\n\n if (!shouldAllowCreation && !hasWeb3Wallets) {\n return null;\n }\n\n return (\n <ProfileSection.Root\n title={localizationKeys('userProfile.start.web3WalletsSection.title')}\n centered={false}\n id='web3Wallets'\n >\n <Card.Alert>{card.error}</Card.Alert>\n <Action.Root\n value={actionValue}\n onChange={setActionValue}\n >\n <ProfileSection.ItemList id='web3Wallets'>\n {sortIdentificationBasedOnVerification(user?.web3Wallets, user?.primaryWeb3WalletId).map(wallet => {\n const strategy = wallet.verification.strategy as keyof typeof strategyToDisplayData;\n const walletId = wallet.id;\n return (\n strategyToDisplayData[strategy] && (\n <Fragment key={wallet.id}>\n <ProfileSection.Item\n key={walletId}\n id='web3Wallets'\n align='start'\n >\n <Flex sx={t => ({ alignItems: 'center', gap: t.space.$2, width: '100%' })}>\n {strategyToDisplayData[strategy].iconUrl && (\n <Image\n src={strategyToDisplayData[strategy].iconUrl}\n alt={strategyToDisplayData[strategy].name}\n sx={theme => ({ width: theme.sizes.$4 })}\n />\n )}\n <Box sx={{ whiteSpace: 'nowrap', overflow: 'hidden' }}>\n <Flex\n gap={2}\n justify='start'\n >\n <Text>\n {strategyToDisplayData[strategy].name} ({shortenWeb3Address(wallet.web3Wallet)})\n </Text>\n {user?.primaryWeb3WalletId === walletId && (\n <Badge localizationKey={localizationKeys('badge__primary')} />\n )}\n {wallet.verification.status !== 'verified' && (\n <Badge localizationKey={localizationKeys('badge__unverified')} />\n )}\n </Flex>\n </Box>\n </Flex>\n <Web3WalletMenu\n walletId={walletId}\n isVerified={wallet.verification.status === 'verified'}\n />\n </ProfileSection.Item>\n\n <Action.Open value={`remove-${walletId}`}>\n <Action.Card variant='destructive'>\n <RemoveWeb3WalletScreen walletId={wallet.id} />\n </Action.Card>\n </Action.Open>\n </Fragment>\n )\n );\n })}\n </ProfileSection.ItemList>\n {shouldAllowCreation && <AddWeb3WalletActionMenu />}\n </Action.Root>\n </ProfileSection.Root>\n );\n },\n);\n\nconst Web3WalletMenu = ({ walletId, isVerified }: { walletId: string; isVerified: boolean }) => {\n const card = useCardState();\n const { open } = useActionContext();\n const { user } = useUser();\n const isPrimary = user?.primaryWeb3WalletId === walletId;\n const setPrimary = useReverification(() => {\n return user?.update({ primaryWeb3WalletId: walletId });\n });\n\n const actions = (\n [\n // Only allow setting as primary if the wallet is verified and not already primary\n !isPrimary && isVerified\n ? {\n label: localizationKeys('userProfile.start.web3WalletsSection.detailsAction__nonPrimary'),\n onClick: () => {\n setPrimary().catch(e => handleError(e, [], card.setError));\n },\n }\n : null,\n {\n label: localizationKeys('userProfile.start.web3WalletsSection.destructiveAction'),\n isDestructive: true,\n onClick: () => open(`remove-${walletId}`),\n },\n ] satisfies (PropsOfComponent<typeof ThreeDotsMenu>['actions'][0] | null)[]\n ).filter(a => a !== null) as PropsOfComponent<typeof ThreeDotsMenu>['actions'];\n\n return <ThreeDotsMenu actions={actions} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,0BAA0B,UAAuC;CACrE,MAAM,EAAE,UAAU,kBAAkB;AACpC,QACE,oBAAC;EACC,WAAW;EACX,SAAS;EACT,GAAI;GACJ;;AAIN,MAAM,sBAAsB,YAAoB;AAC9C,KAAI,QAAQ,UAAU,GACpB,QAAO;AAET,QAAO,QAAQ,MAAM,GAAG,EAAE,GAAG,QAAQ,QAAQ,MAAM,GAAG;;AAGxD,MAAa,cAAc,uBACxB,EAAE,sBAAsB,WAA8C;CACrE,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,0BAA0B,+BAA+B;CACjE,MAAM,iBAAiB,QAAQ,MAAM,aAAa,OAAO;CACzD,MAAM,CAAC,aAAa,kBAAkB,SAAwB,KAAK;AAEnE,KAAI,CAAC,uBAAuB,CAAC,eAC3B,QAAO;AAGT,QACE,qBAAC,eAAe;EACd,OAAO,iBAAiB,6CAA6C;EACrE,UAAU;EACV,IAAG;aAEH,oBAAC,KAAK,mBAAO,KAAK,QAAmB,EACrC,qBAAC,OAAO;GACN,OAAO;GACP,UAAU;cAEV,oBAAC,eAAe;IAAS,IAAG;cACzB,sCAAsC,MAAM,aAAa,MAAM,oBAAoB,CAAC,KAAI,WAAU;KACjG,MAAM,WAAW,OAAO,aAAa;KACrC,MAAM,WAAW,OAAO;AACxB,YACE,sBAAsB,aACpB,qBAAC,uBACC,qBAAC,eAAe;MAEd,IAAG;MACH,OAAM;iBAEN,qBAAC;OAAK,KAAI,OAAM;QAAE,YAAY;QAAU,KAAK,EAAE,MAAM;QAAI,OAAO;QAAQ;kBACrE,sBAAsB,UAAU,WAC/B,oBAAC;QACC,KAAK,sBAAsB,UAAU;QACrC,KAAK,sBAAsB,UAAU;QACrC,KAAI,WAAU,EAAE,OAAO,MAAM,MAAM,IAAI;SACvC,EAEJ,oBAAC;QAAI,IAAI;SAAE,YAAY;SAAU,UAAU;SAAU;kBACnD,qBAAC;SACC,KAAK;SACL,SAAQ;;UAER,qBAAC;WACE,sBAAsB,UAAU;WAAK;WAAG,mBAAmB,OAAO,WAAW;WAAC;cAC1E;UACN,MAAM,wBAAwB,YAC7B,oBAAC,SAAM,iBAAiB,iBAAiB,iBAAiB,GAAI;UAE/D,OAAO,aAAa,WAAW,cAC9B,oBAAC,SAAM,iBAAiB,iBAAiB,oBAAoB,GAAI;;UAE9D;SACH;QACD,EACP,oBAAC;OACW;OACV,YAAY,OAAO,aAAa,WAAW;QAC3C;QAhCG,SAiCe,EAEtB,oBAAC,OAAO;MAAK,OAAO,UAAU;gBAC5B,oBAAC,OAAO;OAAK,SAAQ;iBACnB,oBAAC,0BAAuB,UAAU,OAAO,KAAM;QACnC;OACF,KAzCD,OAAO,GA0CX;MAGf;KACsB,EACzB,uBAAuB,oBAAC,4BAA0B;IACvC;GACM;EAG3B;AAED,MAAM,kBAAkB,EAAE,UAAU,iBAA4D;CAC9F,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,SAAS,kBAAkB;CACnC,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,YAAY,MAAM,wBAAwB;CAChD,MAAM,aAAa,wBAAwB;AACzC,SAAO,MAAM,OAAO,EAAE,qBAAqB,UAAU,CAAC;GACtD;AAqBF,QAAO,oBAAC,iBAAc,SAlBpB,CAEE,CAAC,aAAa,aACV;EACE,OAAO,iBAAiB,iEAAiE;EACzF,eAAe;AACb,eAAY,CAAC,OAAM,MAAK,YAAY,GAAG,EAAE,EAAE,KAAK,SAAS,CAAC;;EAE7D,GACD,MACJ;EACE,OAAO,iBAAiB,yDAAyD;EACjF,eAAe;EACf,eAAe,KAAK,UAAU,WAAW;EAC1C,CACF,CACD,QAAO,MAAK,MAAM,KAAK,GAEiB"}
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_clerk_ui=globalThis.webpackChunk_clerk_ui||[]).push([["394"],{17396:function(e,t,o){o.d(t,{n:()=>n});var i=o(14518);o(35074);var l=o(86705);let n=e=>{let{modalRoot:t,containerSx:o,...n}=e;return(0,i.Y)(l.Modal,{...n,portalRoot:t,containerSx:[[{alignItems:"center"},t?e=>({position:"absolute",right:0,bottom:0,backgroundColor:"inherit",backdropFilter:"blur(".concat(e.sizes.$2,")"),display:"flex",justifyContent:"center",minHeight:"100%",height:"100%",width:"100%",borderRadius:e.radii.$lg}):{}],o]})}},28169:function(e,t,o){o.d(t,{CopyAPIKeyModal:()=>C});var i=o(14518),l=o(58920),n=o(92513),r=o(23707),a=o(95559),c=o(52454),s=o(11475),d=o(23549),p=o(27782),u=o(17630),h=o(92405),y=o(22861),m=o(8640),b=o(17396);let C=e=>{let{isOpen:t,onOpen:o,onClose:C,apiKeyName:g,apiKeySecret:f,modalRoot:K}=e,Y=(0,m.tJ)("apiKeySecret",f,{type:"text",label:(0,y.G)("formFieldLabel__apiKey"),isRequired:!1}),{onCopy:$}=(0,p.i)(f),{close:k}=(0,n.D5)();return t?(0,i.Y)(b.n,{handleOpen:o,handleClose:C,canCloseModal:!1,modalRoot:K,children:(0,i.Y)(r.Z.Root,{role:"alertdialog",elementDescriptor:l.$z.apiKeysCopyModal,children:(0,i.Y)(r.Z.Content,{sx:e=>({textAlign:"left",padding:"".concat(e.sizes.$4," ").concat(e.sizes.$5," ").concat(e.sizes.$4," ").concat(e.sizes.$6)}),children:(0,i.Y)(d.M,{headerTitle:(0,y.G)("apiKeys.copySecret.formTitle",{name:g}),headerSubtitle:(0,y.G)("apiKeys.copySecret.formHint"),children:(0,i.FD)(c.l.Root,{onSubmit:()=>{$(),C(),setTimeout(()=>{k()},100)},children:[(0,i.Y)(c.l.ControlRow,{elementDescriptor:l.$z.apiKeysCopyModalInput,sx:{flex:1},children:(0,i.Y)(c.l.CommonInputWrapper,{...Y.props,children:(0,i.Y)(a.r,{value:f,readOnly:!0,sx:{width:"100%"},copyIcon:u.A,copiedIcon:h.A})})}),(0,i.Y)(s.G,{submitLabel:(0,y.G)("apiKeys.copySecret.formButtonPrimary__copyAndClose"),hideReset:!0,elementDescriptor:l.$z.apiKeysCopyModalSubmitButton})]})})})})}):null}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_clerk_ui=globalThis.webpackChunk_clerk_ui||[]).push([["243"],{89302:function(e,t,a){a.d(t,{A:()=>P}),a(88711);var r=a(14518),n=a(21210),i=a(35074),l=a(97697),o=a(63269),s=a(52454),d=a(11475),c=a(23549),u=a(76153),g=a(50155),h=a(26370),p=a(25485),m=a(4468),v=a(8640),f=a(46245),z=a(18272),b=a(67068),C=a(22861),Y=a(33934),x=a(53100),$=a(75377),O=a(23689);let P=(0,o.dm)(e=>{var t,a;let P=(0,o.f0)(),S=(0,f.X)({onNextStep:()=>P.setError(void 0)}),w=i.useRef(null),{createOrganization:k,isLoaded:A,setActive:R,userMemberships:F}=(0,n.D_)({userMemberships:O.mu.userMemberships}),{organization:T}=(0,n.Z5)(),{organizationSettings:_}=(0,l.O)(),[y,I]=i.useState(),D=(0,v.tJ)("name","",{type:"text",label:(0,C.G)("formFieldLabel__organizationName"),placeholder:(0,C.G)("formFieldInputPlaceholder__organizationName")}),G=(0,v.tJ)("slug","",{type:"text",label:(0,C.G)("formFieldLabel__organizationSlug"),placeholder:(0,C.G)("formFieldInputPlaceholder__organizationSlug")}),M=!!D.value,B=!_.slug.disabled,U=async t=>{if((t.preventDefault(),M)&&A)try{var a,r;let t={name:D.value};B&&(t.slug=G.value);let n=await k(t);if(y&&await n.setLogo({file:y}),w.current=n,await R({organization:n}),null==(a=F.revalidate)||a.call(F),null!=(r=e.skipInvitationScreen)?r:1===n.maxAllowedMemberships)return V();S.nextStep()}catch(e){(0,m.H4)(e,[D,G],P.setError)}},V=()=>{var t,a;null==(t=e.navigateAfterCreateOrganization)||t.call(e,w.current),null==(a=e.onComplete)||a.call(e)},L=e=>{G.setValue(e)},N="organizationList"===e.flow?"subtitle":void 0;return(0,r.FD)(f.s,{...S.props,children:[(0,r.Y)(c.M,{headerTitle:null==e||null==(t=e.startPage)?void 0:t.headerTitle,headerSubtitle:null==e||null==(a=e.startPage)?void 0:a.headerSubtitle,headerTitleTextVariant:"h2",headerSubtitleTextVariant:N,sx:e=>({minHeight:e.sizes.$60,gap:e.space.$6,textAlign:"left"}),children:(0,r.FD)(s.l.Root,{onSubmit:U,sx:e=>({gap:e.space.$6}),children:[(0,r.Y)(z.fv,{children:(0,r.Y)($.i,{organization:{name:D.value},onAvatarChange:async e=>await I(e),onAvatarRemove:y?()=>(P.setIdle(),I(null)):null,avatarPreviewPlaceholder:(0,r.Y)(g.K,{variant:"ghost","aria-label":"Upload organization logo",icon:(0,r.Y)(z.In,{size:"md",icon:b.A,sx:e=>({color:e.colors.$colorMutedForeground,transitionDuration:e.transitionDuration.$controls})}),sx:e=>({width:e.sizes.$16,height:e.sizes.$16,borderRadius:e.radii.$md,borderWidth:e.borderWidths.$normal,borderStyle:e.borderStyles.$dashed,borderColor:e.colors.$borderAlpha200,backgroundColor:e.colors.$neutralAlpha50,":hover":{backgroundColor:e.colors.$neutralAlpha50,svg:{transform:"scale(1.2)"}}})})})}),(0,r.Y)(s.l.ControlRow,{elementId:D.id,children:(0,r.Y)(s.l.PlainInput,{...D.props,onChange:e=>{D.setValue(e.target.value),L((0,p.e)(e.target.value))},isRequired:!0,autoFocus:!0,ignorePasswordManager:!0})}),B&&(0,r.Y)(s.l.ControlRow,{elementId:G.id,children:(0,r.Y)(s.l.PlainInput,{...G.props,onChange:e=>{L(e.target.value)},isRequired:!0,pattern:"^(?=.*[a-z0-9])[a-z0-9\\-]+$",ignorePasswordManager:!0})}),(0,r.FD)(d.c,{sx:e=>({marginTop:e.space.$none}),children:[(0,r.Y)(s.l.SubmitButton,{block:!1,isDisabled:!M,localizationKey:(0,C.G)("createOrganization.formButtonSubmit")}),e.onCancel&&(0,r.Y)(s.l.ResetButton,{localizationKey:(0,C.G)("userProfile.formButtonReset"),block:!1,onClick:e.onCancel})]})]})}),(0,r.Y)(c.M,{headerTitle:(0,C.G)("organizationProfile.invitePage.title"),headerTitleTextVariant:"h2",headerSubtitleTextVariant:N,sx:e=>({minHeight:e.sizes.$60,textAlign:"left"}),children:T&&(0,r.Y)(Y.B,{resetButtonLabel:(0,C.G)("createOrganization.invitePage.formButtonReset"),onSuccess:S.nextStep,onReset:V})}),(0,r.FD)(z.fv,{children:[(0,r.Y)(u.Y.Root,{children:(0,r.Y)(u.Y.Title,{localizationKey:(0,C.G)("organizationProfile.invitePage.title"),sx:{textAlign:"left"}})}),(0,r.Y)(h.B,{contents:(0,r.Y)(x.k,{}),sx:e=>({minHeight:e.sizes.$60}),onFinish:V})]})]})})},4472:function(e,t,a){a.r(t),a.d(t,{CreateOrganization:()=>f,CreateOrganizationModal:()=>z});var r=a(14518),n=a(63269),i=a(43264),l=a(40001),o=a(44607),s=a(80212),d=a(42265),c=a(21210),u=a(23707),g=a(22861),h=a(180),p=a(89302);let m=(0,n.dm)(()=>{let{closeCreateOrganization:e}=(0,c.ho)(),{mode:t,navigateAfterCreateOrganization:a,skipInvitationScreen:i}=(0,l.W)(),o=(0,n.f0)(),{showDevModeNotice:s}=(0,h.Q)();return(0,r.FD)(u.Z.Root,{sx:e=>({width:e.sizes.$108}),children:[(0,r.FD)(u.Z.Content,{sx:e=>({padding:"".concat(e.space.$4," ").concat(e.space.$5," ").concat(s?e.space.$12:e.space.$6)}),children:[(0,r.Y)(u.Z.Alert,{children:o.error}),(0,r.Y)(p.A,{skipInvitationScreen:i,startPage:{headerTitle:(0,g.G)("createOrganization.title")},navigateAfterCreateOrganization:a,flow:"default",onComplete:()=>{"modal"===t&&e()}})]}),(0,r.Y)(u.Z.Footer,{})]})}),v=(0,i.G)(()=>(0,r.Y)(m,{})),f=(0,n.dm)(()=>(0,r.Y)(o.n.Root,{flow:"createOrganization",children:(0,r.Y)(o.n.Part,{children:(0,r.Y)(s.d,{children:(0,r.Y)(d.q,{children:(0,r.Y)(v,{})})})})})),z=e=>{let t={...e,routing:"virtual",componentName:"CreateOrganization",mode:"modal"};return(0,r.Y)(d.q,{path:"createOrganization",children:(0,r.Y)(l.$.Provider,{value:t,children:(0,r.Y)("div",{children:(0,r.Y)(f,{})})})})}},40001:function(e,t,a){a.d(t,{$:()=>o,W:()=>s}),a(98114);var r=a(35074),n=a(97697),i=a(4964),l=a(42117);let o=(0,r.createContext)(null),s=()=>{let e=(0,r.useContext)(o),{navigate:t}=(0,i.r)(),{displayConfig:a}=(0,n.O)();if(!e||"CreateOrganization"!==e.componentName)throw Error("Clerk: useCreateOrganizationContext called outside CreateOrganization.");let{componentName:s,...d}=e;return{...d,skipInvitationScreen:d.skipInvitationScreen||!1,navigateAfterCreateOrganization:e=>"function"==typeof d.afterCreateOrganizationUrl?t(d.afterCreateOrganizationUrl(e)):d.afterCreateOrganizationUrl?t((0,l.tR)({urlWithParam:d.afterCreateOrganizationUrl,entity:e})):t(a.afterCreateOrganizationUrl),componentName:s}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_clerk_ui=globalThis.webpackChunk_clerk_ui||[]).push([["533"],{27334:function(n,e,r){r.r(e),r.d(e,{EnableOrganizationsPrompt:()=>$});var t=r(91923);r(88711);var i=r(14518),o=r(21210),a=r(18802),l=r(35074),s=r(97697),c=r(86705),d=r(29406),u=r(18272),p=r(81986),h=r(28307);function f(){let n=(0,t._)(["\n color: white;\n font-size: 0.875rem;\n font-weight: 500;\n outline: none;\n "]);return f=function(){return n},n}function g(){let n=(0,t._)(["\n color: #b4b4b4;\n font-size: 0.8125rem;\n font-weight: 400;\n line-height: 1.3;\n "]);return g=function(){return n},n}function b(){let n=(0,t._)(["\n color: #b4b4b4;\n font-size: 0.8125rem;\n font-weight: 400;\n line-height: 1.23;\n "]);return b=function(){return n},n}function m(){let n=(0,t._)(["\n font-size: 0.75rem;\n color: white;\n font-family: monospace;\n line-height: 1.23;\n "]);return m=function(){return n},n}function x(){let n=(0,t._)(["\n height: 1px;\n display: block;\n width: calc(100% - 2px);\n margin-inline: auto;\n background-color: #151515;\n box-shadow: 0px 1px 0px 0px #424242;\n "]);return x=function(){return n},n}function w(){let n=(0,t._)(["\n ",";\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1.75rem;\n padding: 0.375rem 0.625rem;\n border-radius: 0.375rem;\n font-size: 0.75rem;\n font-weight: 500;\n letter-spacing: 0.12px;\n color: white;\n text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.32);\n white-space: nowrap;\n user-select: none;\n color: white;\n outline: none;\n\n &:not(:disabled) {\n transition: 120ms ease-in-out;\n transition-property: background-color, border-color, box-shadow, color;\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &:focus-visible:not(:disabled) {\n outline: 2px solid white;\n outline-offset: 2px;\n }\n"]);return w=function(){return n},n}function C(){let n=(0,t._)(["\n background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30.5%, rgba(0, 0, 0, 0.05) 100%), #454545;\n box-shadow:\n 0 0 3px 0 rgba(253, 224, 71, 0) inset,\n 0 0 0 1px rgba(255, 255, 255, 0.04) inset,\n 0 1px 0 0 rgba(255, 255, 255, 0.04) inset,\n 0 0 0 1px rgba(0, 0, 0, 0.12),\n 0 1.5px 2px 0 rgba(0, 0, 0, 0.48);\n\n &:hover:not(:disabled) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30.5%, rgba(0, 0, 0, 0.15) 100%), #5f5f5f;\n box-shadow:\n 0 0 3px 0 rgba(253, 224, 71, 0) inset,\n 0 0 0 1px rgba(255, 255, 255, 0.04) inset,\n 0 1px 0 0 rgba(255, 255, 255, 0.04) inset,\n 0 0 0 1px rgba(0, 0, 0, 0.12),\n 0 1.5px 2px 0 rgba(0, 0, 0, 0.48);\n }\n"]);return C=function(){return n},n}function v(){let n=(0,t._)(["\n border: 1px solid rgba(118, 118, 132, 0.25);\n background: rgba(69, 69, 69, 0.1);\n\n &:hover:not(:disabled) {\n border-color: rgba(118, 118, 132, 0.5);\n }\n"]);return v=function(){return n},n}function k(){let n=(0,t._)(["\n ",";\n display: inline-flex;\n align-items: center;\n padding: 0.125rem 0.375rem;\n border-radius: 0.25rem;\n font-size: 0.6875rem;\n font-weight: 500;\n line-height: 1.23;\n background-color: #ebebeb;\n color: #2b2b34;\n white-space: nowrap;\n "]);return k=function(){return n},n}function Y(){let n=(0,t._)(["\n ",";\n display: flex;\n align-items: flex-start;\n gap: ",";\n cursor: pointer;\n user-select: none;\n\n &:has(input:focus-visible) > span:first-of-type {\n outline: 2px solid white;\n outline-offset: 2px;\n }\n\n &:hover:has(input:not(:checked)) > span:first-of-type {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n &:hover:has(input:checked) > span:first-of-type {\n background-color: rgba(108, 71, 255, 0.8);\n background-color: color-mix(in srgb, #6c47ff 80%, transparent);\n }\n "]);return Y=function(){return n},n}function _(){let n=(0,t._)(["\n ",";\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n "]);return _=function(){return n},n}function y(){let n=(0,t._)(["\n border-width: 2px;\n border-color: #6c47ff;\n background-color: #6c47ff;\n background-color: color-mix(in srgb, #6c47ff 100%, transparent);\n box-shadow: 0 0 0 2px rgba(108, 71, 255, 0.2);\n "]);return y=function(){return n},n}function z(){let n=(0,t._)(["\n ",";\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ",";\n height: ",";\n margin-top: 0.125rem;\n flex-shrink: 0;\n border-radius: 50%;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background-color: transparent;\n transition: 120ms ease-in-out;\n transition-property: border-color, background-color, box-shadow;\n\n ","\n\n &::after {\n content: '';\n position: absolute;\n width: 0.375rem;\n height: 0.375rem;\n border-radius: 50%;\n background-color: white;\n opacity: ",";\n transform: scale(",");\n transition: 120ms ease-in-out;\n transition-property: opacity, transform;\n }\n "]);return z=function(){return n},n}function F(){let n=(0,t._)(["\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.25;\n color: white;\n "]);return F=function(){return n},n}function A(){let n=(0,t._)(["\n padding-inline-start: calc("," + ",");\n font-size: 0.75rem;\n line-height: 1.33;\n color: #c3c3c6;\n text-wrap: pretty;\n "]);return A=function(){return n},n}function B(){let n=(0,t._)(["\n color: #a8a8ff;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.3;\n font-size: 0.8125rem;\n min-width: 0;\n "]);return B=function(){return n},n}function H(){let n=(0,t._)(["\n width: 1.25rem;\n height: 1.25rem;\n "]);return H=function(){return n},n}function D(){let n=(0,t._)(["\n width: 1.25rem;\n height: 1.25rem;\n "]);return D=function(){return n},n}function M(){let n=(0,t._)(["\n perspective: 1000px;\n width: 1.25rem;\n height: 1.25rem;\n "]);return M=function(){return n},n}function S(){let n=(0,t._)(["\n position: relative;\n width: 100%;\n height: 100%;\n transform-style: preserve-3d;\n transition: transform 0.6s ease-in-out;\n transform: rotateY(","deg);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n "]);return S=function(){return n},n}function O(){let n=(0,t._)(["\n position: absolute;\n width: 100%;\n height: 100%;\n backface-visibility: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-font-smoothing: antialiased;\n transform: rotateY(0deg);\n "]);return O=function(){return n},n}function I(){let n=(0,t._)(["\n position: absolute;\n width: 100%;\n height: 100%;\n backface-visibility: hidden;\n transform: rotateY(180deg);\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-font-smoothing: antialiased;\n "]);return I=function(){return n},n}let R=n=>{let{caller:e,onSuccess:r,onClose:t}=n,d=(0,o.ho)(),[w,C]=(0,l.useState)(!1),[v,k]=(0,l.useState)(!1),[Y,_]=(0,l.useState)(!1),y=(0,l.useRef)(null),z=(0,s.O)(),F=(0,l.useId)(),A=!e.startsWith("use"),B=void 0!==(null==z?void 0:z.organizationSettings.forceOrganizationSelection);return(0,i.Y)(p.Z,{children:(0,i.Y)(c.Modal,{canCloseModal:!1,containerSx:()=>({alignItems:"center"}),initialFocusRef:y,children:(0,i.FD)(h.Uw,{sx:()=>({display:"flex",flexDirection:"column",width:"30rem",maxWidth:"calc(100vw - 2rem)"}),children:[(0,i.FD)(u.so,{direction:"col",sx:n=>({padding:"".concat(n.sizes.$4," ").concat(n.sizes.$6),paddingBottom:n.sizes.$4,gap:n.sizes.$2}),children:[(0,i.FD)(u.so,{as:"header",align:"center",sx:n=>({gap:n.sizes.$2}),children:[(0,i.Y)(W,{isEnabled:v}),(0,i.Y)("h1",{css:[h.mk,(0,a.AH)(f())],tabIndex:-1,ref:y,children:v?"Organizations feature enabled":"Organizations feature required"})]}),(0,i.Y)(u.so,{direction:"col",align:"start",sx:n=>({gap:n.sizes.$0x5}),children:v?(0,i.FD)("p",{css:[h.mk,(0,a.AH)(g())],children:[d.user?'The Organizations feature has been enabled for your application. A default organization named "My Organization" was created automatically. You can manage or rename it in your':"The Organizations feature has been enabled for your application. You can manage it in your"," ",(0,i.Y)(K,{href:"https://dashboard.clerk.com/~/organizations-settings",target:"_blank",rel:"noopener noreferrer",children:"dashboard"}),"."]}):(0,i.FD)(i.FK,{children:[(0,i.FD)("p",{id:F,css:[h.mk,(0,a.AH)(b())],children:["Enable Organizations to use"," ",(0,i.Y)("code",{css:[h.mk,(0,a.AH)(m())],children:A?"<".concat(e," />"):e})," "]}),(0,i.Y)(K,{href:"https://clerk.com/docs/guides/organizations/overview",target:"_blank",rel:"noopener noreferrer",children:"Learn more"})]})}),B&&!v&&(0,i.Y)(u.so,{sx:n=>({marginTop:n.sizes.$2}),direction:"col",children:(0,i.FD)(T,{value:Y?"optional":"required",onChange:n=>_("optional"===n),labelledBy:F,children:[(0,i.Y)(V,{value:"required",label:(0,i.FD)(u.so,{wrap:"wrap",sx:n=>({columnGap:n.sizes.$2,rowGap:n.sizes.$1}),children:[(0,i.Y)("span",{children:"Membership required"}),(0,i.Y)(U,{children:"Standard"})]}),description:(0,i.FD)(i.FK,{children:[(0,i.Y)("span",{className:"block",children:"Users need to belong to at least one organization."}),(0,i.Y)("span",{children:"Common for most B2B SaaS applications"})]})}),(0,i.Y)(V,{value:"optional",label:"Membership optional",description:"Users can work outside of an organization with a personal account"})]})})]}),(0,i.Y)("span",{css:(0,a.AH)(x())}),(0,i.Y)(u.so,{justify:"center",sx:n=>({padding:"".concat(n.sizes.$4," ").concat(n.sizes.$6),gap:n.sizes.$3,justifyContent:"flex-end"}),children:v?(0,i.Y)(Z,{variant:"solid",onClick:()=>{if(d.user)null==r||r();else{var n;d.redirectToSignIn(),null==(n=d.__internal_closeEnableOrganizationsPrompt)||n.call(d)}},children:d.user?"Continue":"Sign in to continue"}):(0,i.FD)(i.FK,{children:[(0,i.Y)(Z,{variant:"outline",onClick:()=>{var n;null==d||null==(n=d.__internal_closeEnableOrganizationsPrompt)||n.call(d),null==t||t()},children:"I'll remove it myself"}),(0,i.Y)(Z,{variant:"solid",onClick:()=>{C(!0);let n={enable_organizations:!0};B&&(n.organization_allow_personal_accounts=Y),z.__internal_enableEnvironmentSetting(n).then(()=>{k(!0),C(!1)}).catch(()=>{C(!1)})},disabled:w,children:"Enable Organizations"})]})})]})})})},$=n=>(0,i.Y)(d.S,{children:(0,i.Y)(R,{...n})}),E=(0,a.AH)(w(),h.mk),L={solid:(0,a.AH)(C()),outline:(0,a.AH)(v())},Z=(0,l.forwardRef)((n,e)=>{let{variant:r="solid",...t}=n;return(0,i.Y)("button",{ref:e,type:"button",css:[E,L[r]],...t})}),U=n=>{let{children:e}=n;return(0,i.Y)("span",{css:(0,a.AH)(k(),h.mk),children:e})},[j,G]=(0,o.e3)("RadioGroupContext"),T=n=>{let{value:e,onChange:r,children:t,labelledBy:o}=n,a=(0,l.useId)(),s=l.useMemo(()=>({value:{name:a,value:e,onChange:r}}),[a,e,r]);return(0,i.Y)(j.Provider,{value:s,children:(0,i.Y)(u.so,{role:"radiogroup",direction:"col",gap:3,"aria-orientation":"vertical","aria-labelledby":o,children:t})})},q="1rem",P="0.5rem",V=n=>{let{value:e,label:r,description:t}=n,{name:o,value:s,onChange:c}=G(),d=(0,l.useId)(),p=e===s;return(0,i.FD)(u.so,{direction:"col",gap:1,children:[(0,i.FD)("label",{css:(0,a.AH)(Y(),h.mk,P),children:[(0,i.Y)("input",{type:"radio",name:o,value:e,checked:p,onChange:()=>c(e),"aria-describedby":t?d:void 0,css:(0,a.AH)(_(),h.mk)}),(0,i.Y)("span",{"aria-hidden":"true",css:(0,a.AH)(z(),h.mk,q,q,p&&(0,a.AH)(y()),+!!p,+!!p)}),(0,i.Y)("span",{css:[h.mk,(0,a.AH)(F())],children:r})]}),t&&(0,i.Y)("span",{id:d,css:[h.mk,(0,a.AH)(A(),q,P)],children:t})]})},K=(0,l.forwardRef)((n,e)=>{let{children:r,css:t,...o}=n;return(0,i.Y)("a",{ref:e,...o,css:[h.mk,(0,a.AH)(B()),t],children:r})}),W=n=>{let{isEnabled:e}=n,[r,t]=(0,l.useState)(0);(0,l.useLayoutEffect)(()=>{if(e)return void t(n=>180*(0===n));let n=setInterval(()=>{t(n=>180*(0===n))},2e3);return()=>clearInterval(n)},[e]);let o="idle",s="warning";e&&(0===r?(o="success",s="warning"):(s="success",o="idle"));let c=n=>{switch(n){case"idle":return(0,i.Y)(h.MF,{});case"success":return(0,i.Y)(h.F3,{css:(0,a.AH)(H())});case"warning":return(0,i.FD)("svg",{css:(0,a.AH)(D()),viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.Y)("path",{opacity:"0.2",d:"M17.25 10C17.25 14.0041 14.0041 17.25 10 17.25C5.99594 17.25 2.75 14.0041 2.75 10C2.75 5.99594 5.99594 2.75 10 2.75C14.0041 2.75 17.25 5.99594 17.25 10Z",fill:"#EAB308"}),(0,i.Y)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 3.5C6.41015 3.5 3.5 6.41015 3.5 10C3.5 13.5899 6.41015 16.5 10 16.5C13.5899 16.5 16.5 13.5899 16.5 10C16.5 6.41015 13.5899 3.5 10 3.5ZM2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 14.4183 14.4183 18 10 18C5.58172 18 2 14.4183 2 10Z",fill:"#EAB308"}),(0,i.Y)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 6C10.5523 6 11 6.44772 11 7V9C11 9.55228 10.5523 10 10 10C9.44772 10 9 9.55228 9 9V7C9 6.44772 9.44772 6 10 6Z",fill:"#EAB308"}),(0,i.Y)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 12C10.5523 12 11 12.4477 11 13V13.01C11 13.5623 10.5523 14.01 10 14.01C9.44772 14.01 9 13.5623 9 13.01V13C9 12.4477 9.44772 12 10 12Z",fill:"#EAB308"})]})}};return(0,i.Y)("div",{css:(0,a.AH)(M()),children:(0,i.FD)("div",{css:(0,a.AH)(S(),r),children:[(0,i.Y)("span",{"aria-hidden":!0,css:(0,a.AH)(O()),children:c(o)}),(0,i.Y)("span",{"aria-hidden":!0,css:(0,a.AH)(I()),children:c(s)})]})})}},28307:function(n,e,r){r.d(e,{CB:()=>u,F3:()=>d,MF:()=>p,Uw:()=>s,mk:()=>c});var t=r(91923);r(88711),r(64178),r(60962),r(60486),r(25089),r(61244),r(77895),r(22501),r(98114);var i=r(14518),o=r(18802),a=r(18272);function l(){let n=(0,t._)(["\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n line-height: 1.5;\n font-family:\n -apple-system,\n BlinkMacSystemFont,\n avenir next,\n avenir,\n segoe ui,\n helvetica neue,\n helvetica,\n Cantarell,\n Ubuntu,\n roboto,\n noto,\n arial,\n sans-serif;\n text-decoration: none;\n"]);return l=function(){return n},n}function s(n){let{children:e,sx:r,...t}=n;return(0,i.Y)(a.so,{sx:n=>[{borderRadius:"1.25rem",fontFamily:n.fonts.$main,background:"linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 100%), #1f1f1f",boxShadow:"0px 0px 0px 0.5px #2F3037 inset, 0px 1px 0px 0px rgba(255, 255, 255, 0.08) inset, 0px 0px 0.8px 0.8px rgba(255, 255, 255, 0.20) inset, 0px 0px 0px 0px rgba(255, 255, 255, 0.72), 0px 16px 36px -6px rgba(0, 0, 0, 0.36), 0px 6px 16px -2px rgba(0, 0, 0, 0.20);"},r],...t,children:e})}let c=(0,o.AH)(l());function d(n){return(0,i.Y)("svg",{...n,viewBox:"0 0 16 17",fill:"none","aria-hidden":!0,xmlns:"http://www.w3.org/2000/svg",children:(0,i.FD)("g",{opacity:"0.88",children:[(0,i.Y)("path",{d:"M13.8002 8.20039C13.8002 8.96206 13.6502 9.71627 13.3587 10.42C13.0672 11.1236 12.64 11.763 12.1014 12.3016C11.5628 12.8402 10.9234 13.2674 10.2198 13.5589C9.51607 13.8504 8.76186 14.0004 8.0002 14.0004C7.23853 14.0004 6.48432 13.8504 5.78063 13.5589C5.07694 13.2674 4.43756 12.8402 3.89898 12.3016C3.3604 11.763 2.93317 11.1236 2.64169 10.42C2.35022 9.71627 2.2002 8.96206 2.2002 8.20039C2.2002 6.66214 2.81126 5.18688 3.89898 4.09917C4.98669 3.01146 6.46194 2.40039 8.0002 2.40039C9.53845 2.40039 11.0137 3.01146 12.1014 4.09917C13.1891 5.18688 13.8002 6.66214 13.8002 8.20039Z",fill:"#22C543",fillOpacity:"0.16"}),(0,i.Y)("path",{d:"M6.06686 8.68372L7.51686 10.1337L9.93353 6.75039M13.8002 8.20039C13.8002 8.96206 13.6502 9.71627 13.3587 10.42C13.0672 11.1236 12.64 11.763 12.1014 12.3016C11.5628 12.8402 10.9234 13.2674 10.2198 13.5589C9.51607 13.8504 8.76186 14.0004 8.0002 14.0004C7.23853 14.0004 6.48432 13.8504 5.78063 13.5589C5.07694 13.2674 4.43756 12.8402 3.89898 12.3016C3.3604 11.763 2.93317 11.1236 2.64169 10.42C2.35022 9.71627 2.2002 8.96206 2.2002 8.20039C2.2002 6.66214 2.81126 5.18688 3.89898 4.09917C4.98669 3.01146 6.46194 2.40039 8.0002 2.40039C9.53845 2.40039 11.0137 3.01146 12.1014 4.09917C13.1891 5.18688 13.8002 6.66214 13.8002 8.20039Z",stroke:"#22C543",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]})})}function u(n){let e=new URL(n).href.match(/^https?:\/\/(.*?)\/apps\/app_(.+?)\/instances\/ins_(.+?)(?:\/.*)?$/);if(!e)throw Error("Invalid value Dashboard URL structure");return{baseDomain:"https://".concat(e[1]),appId:"app_".concat(e[2]),instanceId:"ins_".concat(e[3])}}function p(){return(0,i.FD)("svg",{width:"1rem",height:"1.25rem",viewBox:"0 0 16 20",fill:"none","aria-hidden":!0,xmlns:"http://www.w3.org/2000/svg",children:[(0,i.FD)("g",{filter:"url(#filter0_i_438_501)",children:[(0,i.Y)("path",{d:"M10.4766 9.99979C10.4766 11.3774 9.35978 12.4942 7.98215 12.4942C6.60452 12.4942 5.48773 11.3774 5.48773 9.99979C5.48773 8.62216 6.60452 7.50537 7.98215 7.50537C9.35978 7.50537 10.4766 8.62216 10.4766 9.99979Z",fill:"#BBBBBB"}),(0,i.Y)("path",{d:"M12.4176 3.36236C12.6676 3.52972 12.6889 3.88187 12.4762 4.09457L10.6548 5.91595C10.4897 6.08107 10.2336 6.10714 10.0257 6.00071C9.41273 5.68684 8.71811 5.50976 7.98214 5.50976C5.5024 5.50976 3.49219 7.51998 3.49219 9.99972C3.49219 10.7357 3.66926 11.4303 3.98314 12.0433C4.08957 12.2511 4.06349 12.5073 3.89837 12.6724L2.07699 14.4938C1.86429 14.7065 1.51215 14.6851 1.34479 14.4352C0.495381 13.1666 0 11.641 0 9.99972C0 5.5913 3.57373 2.01758 7.98214 2.01758C9.62345 2.01758 11.1491 2.51296 12.4176 3.36236Z",fill:"#8F8F8F"}),(0,i.Y)("path",{d:"M12.4762 15.905C12.6889 16.1177 12.6675 16.4698 12.4176 16.6372C11.149 17.4866 9.62342 17.982 7.9821 17.982C6.34078 17.982 4.81516 17.4866 3.54661 16.6372C3.29666 16.4698 3.27531 16.1177 3.48801 15.905L5.30938 14.0836C5.4745 13.9185 5.73066 13.8924 5.93851 13.9988C6.55149 14.3127 7.24612 14.4898 7.9821 14.4898C8.71808 14.4898 9.4127 14.3127 10.0257 13.9988C10.2335 13.8924 10.4897 13.9185 10.6548 14.0836L12.4762 15.905Z",fill:"#BBBBBB"})]}),(0,i.Y)("defs",{children:(0,i.FD)("filter",{id:"filter0_i_438_501",x:"0",y:"1.86758",width:"12.6217",height:"16.1144",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB",children:[(0,i.Y)("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),(0,i.Y)("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),(0,i.Y)("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",result:"hardAlpha"}),(0,i.Y)("feOffset",{dy:"-0.15"}),(0,i.Y)("feGaussianBlur",{stdDeviation:"0.15"}),(0,i.Y)("feComposite",{in2:"hardAlpha",operator:"arithmetic",k2:"-1",k3:"1"}),(0,i.Y)("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"}),(0,i.Y)("feBlend",{mode:"normal",in2:"shape",result:"effect1_innerShadow_438_501"})]})})]})}}}]);