@clerk/ui 1.0.0-canary-core3.v20251203181537 → 1.0.0-snapshot.v20251203203405

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 (74) hide show
  1. package/dist/ClerkUi.js +2 -2
  2. package/dist/browser/signin_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js +1 -0
  3. package/dist/{ui-common_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/ui-common_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +7 -7
  4. package/dist/{ui.browser.js → browser/ui.browser.js} +1 -1
  5. package/dist/components/SignIn/AlternativeMethods.js +1 -4
  6. package/dist/components/SignIn/AlternativeMethods.js.map +1 -1
  7. package/dist/components/SignIn/SignInFactorOne.js +5 -11
  8. package/dist/components/SignIn/SignInFactorOne.js.map +1 -1
  9. package/dist/components/SignIn/SignInFactorOnePasswordCard.js +14 -24
  10. package/dist/components/SignIn/SignInFactorOnePasswordCard.js.map +1 -1
  11. package/dist/components/SignIn/SignInFactorTwoCodeForm.js +3 -8
  12. package/dist/components/SignIn/SignInFactorTwoCodeForm.js.map +1 -1
  13. package/dist/customizables/parseVariables.js +2 -2
  14. package/dist/customizables/parseVariables.js.map +1 -1
  15. package/dist/elements/contexts/index.js.map +1 -1
  16. package/dist/foundations/colors.js +2 -2
  17. package/dist/foundations/colors.js.map +1 -1
  18. package/dist/foundations/defaultFoundations.d.ts +153 -153
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/internal/index.js +1 -1
  22. package/dist/lazyModules/components.d.ts +20 -20
  23. package/dist/themes/dark.d.ts.map +1 -1
  24. package/dist/themes/dark.js +0 -1
  25. package/dist/themes/dark.js.map +1 -1
  26. package/dist/themes/shadcn.d.ts.map +1 -1
  27. package/dist/themes/shadcn.js +1 -2
  28. package/dist/themes/shadcn.js.map +1 -1
  29. package/dist/utils/usernameUtils.js +0 -2
  30. package/dist/utils/usernameUtils.js.map +1 -1
  31. package/package.json +3 -3
  32. package/dist/signin_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js +0 -1
  33. /package/dist/{207_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/207_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  34. /package/dist/{217_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/217_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  35. /package/dist/{360_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/360_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  36. /package/dist/{444_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/444_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  37. /package/dist/{646_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/646_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  38. /package/dist/{970_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/970_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  39. /package/dist/{apiKeys_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/apiKeys_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  40. /package/dist/{blankcaptcha_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/blankcaptcha_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  41. /package/dist/{checkout_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/checkout_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  42. /package/dist/{copy-api-key-modal_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/copy-api-key-modal_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  43. /package/dist/{createorganization_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/createorganization_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  44. /package/dist/{enableOrganizationsPrompt_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/enableOrganizationsPrompt_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  45. /package/dist/{framework_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/framework_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  46. /package/dist/{impersonationfab_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/impersonationfab_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  47. /package/dist/{keylessPrompt_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/keylessPrompt_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  48. /package/dist/{oauthConsent_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/oauthConsent_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  49. /package/dist/{onetap_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/onetap_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  50. /package/dist/{op-api-keys-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/op-api-keys-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  51. /package/dist/{op-billing-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/op-billing-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  52. /package/dist/{op-plans-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/op-plans-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  53. /package/dist/{organizationlist_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/organizationlist_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  54. /package/dist/{organizationprofile_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/organizationprofile_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  55. /package/dist/{organizationswitcher_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/organizationswitcher_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  56. /package/dist/{payment-attempt-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/payment-attempt-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  57. /package/dist/{planDetails_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/planDetails_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  58. /package/dist/{prefetchorganizationlist_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/prefetchorganizationlist_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  59. /package/dist/{pricingTable_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/pricingTable_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  60. /package/dist/{revoke-api-key-modal_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/revoke-api-key-modal_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  61. /package/dist/{sessionTasks_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/sessionTasks_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  62. /package/dist/{signup_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/signup_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  63. /package/dist/{statement-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/statement-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  64. /package/dist/{subscriptionDetails_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/subscriptionDetails_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  65. /package/dist/{taskChooseOrganization_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/taskChooseOrganization_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  66. /package/dist/{up-api-keys-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/up-api-keys-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  67. /package/dist/{up-billing-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/up-billing-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  68. /package/dist/{up-plans-page_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/up-plans-page_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  69. /package/dist/{useravatar_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/useravatar_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  70. /package/dist/{userbutton_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/userbutton_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  71. /package/dist/{userprofile_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/userprofile_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  72. /package/dist/{userverification_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/userverification_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  73. /package/dist/{vendors_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/vendors_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
  74. /package/dist/{waitlist_ui_b6eb3b_1.0.0-canary-core3.v20251203181537.js → browser/waitlist_ui_9c3cc3_1.0.0-snapshot.v20251203203405.js} +0 -0
@@ -1,3 +1,3 @@
1
1
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(globalThis,()=>(()=>{"use strict";var e,t,n,r={3727:function(e,t,n){n.d(t,{x:()=>l});var r=n(922),a=n(4674),o=n(1421),i=n(5074);let l=()=>{let[e,t]=i.useState({startPath:"",path:"",componentName:"",socialProvider:""}),n=(0,o.F)();i.useLayoutEffect(()=>{n&&t(n)},[]);let l=()=>{t({startPath:"",path:"",componentName:"",socialProvider:""})};return{urlStateParam:{...e,clearUrlStateParam:l},decodedRedirectParams:n,clearUrlStateParam:l,removeQueryParam:()=>(0,a.r)(r.r)}}},4096:function(e,t,n){n.d(t,{Gb:()=>k,JJ:()=>I,L1:()=>C,M9:()=>i,O3:()=>D,Qj:()=>v,RW:()=>$,Sm:()=>O,Xi:()=>b,am:()=>y,gK:()=>f,jr:()=>R,ju:()=>E,yc:()=>u,yd:()=>c,ym:()=>z});var r=n(5074);let a={SignIn:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472"),n.e("444"),n.e("10")]).then(n.bind(n,579)),SignUp:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472")]).then(n.bind(n,8480)),UserAvatar:()=>Promise.all([n.e("545"),n.e("666"),n.e("58")]).then(n.bind(n,7714)),UserButton:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("444"),n.e("99")]).then(n.bind(n,6240)),UserProfile:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("217"),n.e("718")]).then(n.bind(n,4308)),CreateOrganization:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("646"),n.e("243")]).then(n.bind(n,4472)),OrganizationProfile:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("646"),n.e("310")]).then(n.bind(n,847)),OrganizationSwitcher:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("364")]).then(n.bind(n,7498)),OrganizationList:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("646"),n.e("799")]).then(n.bind(n,4013)),ImpersonationFab:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("917")]).then(n.bind(n,7399)),GoogleOneTap:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("721")]).then(n.bind(n,3109)),BlankCaptchaModal:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("328")]).then(n.bind(n,5723)),UserVerification:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("636")]).then(n.bind(n,9066)),Waitlist:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("265")]).then(n.bind(n,1170)),KeylessPrompt:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("522")]).then(n.bind(n,3131)),PricingTable:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("970"),n.e("30")]).then(n.bind(n,6334)),Checkout:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("217"),n.e("256")]).then(n.bind(n,2677)),SessionTasks:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472"),n.e("723"),n.e("390")]).then(n.bind(n,5953)),TaskChooseOrganization:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472"),n.e("723")]).then(n.bind(n,9024)),PlanDetails:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("841")]).then(n.bind(n,3598)),SubscriptionDetails:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("451")]).then(n.bind(n,1461)),APIKeys:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("326")]).then(n.bind(n,4875)),OAuthConsent:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("591")]).then(n.bind(n,9576)),EnableOrganizationsPrompt:()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("533")]).then(n.bind(n,7334))},o=(0,r.lazy)(()=>a.SignIn().then(e=>({default:e.SignIn}))),i=(0,r.lazy)(()=>a.SignIn().then(e=>({default:e.SignInModal}))),l=(0,r.lazy)(()=>a.GoogleOneTap().then(e=>({default:e.OneTap}))),s=(0,r.lazy)(()=>a.UserVerification().then(e=>({default:e.UserVerification}))),c=(0,r.lazy)(()=>a.UserVerification().then(e=>({default:e.UserVerificationModal}))),u=(0,r.lazy)(()=>a.EnableOrganizationsPrompt().then(e=>({default:e.EnableOrganizationsPrompt}))),p=(0,r.lazy)(()=>a.SignUp().then(e=>({default:e.SignUp}))),f=(0,r.lazy)(()=>a.SignUp().then(e=>({default:e.SignUpModal}))),d=(0,r.lazy)(()=>a.UserAvatar().then(e=>({default:e.UserAvatar}))),h=(0,r.lazy)(()=>a.UserButton().then(e=>({default:e.UserButton}))),m=(0,r.lazy)(()=>a.UserProfile().then(e=>({default:e.UserProfile}))),y=(0,r.lazy)(()=>a.UserProfile().then(e=>({default:e.UserProfileModal}))),g=(0,r.lazy)(()=>a.CreateOrganization().then(e=>({default:e.CreateOrganization}))),b=(0,r.lazy)(()=>a.CreateOrganization().then(e=>({default:e.CreateOrganizationModal}))),_=(0,r.lazy)(()=>a.OrganizationProfile().then(e=>({default:e.OrganizationProfile}))),v=(0,r.lazy)(()=>a.OrganizationProfile().then(e=>({default:e.OrganizationProfileModal}))),P=(0,r.lazy)(()=>a.OrganizationSwitcher().then(e=>({default:e.OrganizationSwitcher}))),S=(0,r.lazy)(()=>a.OrganizationList().then(e=>({default:e.OrganizationList}))),w=(0,r.lazy)(()=>a.Waitlist().then(e=>({default:e.Waitlist}))),C=(0,r.lazy)(()=>a.Waitlist().then(e=>({default:e.WaitlistModal}))),k=(0,r.lazy)(()=>a.BlankCaptchaModal().then(e=>({default:e.BlankCaptchaModal}))),O=(0,r.lazy)(()=>a.ImpersonationFab().then(e=>({default:e.ImpersonationFab}))),E=(0,r.lazy)(()=>a.KeylessPrompt().then(e=>({default:e.KeylessPrompt}))),A=(0,r.lazy)(()=>a.PricingTable().then(e=>({default:e.PricingTable}))),M=(0,r.lazy)(()=>a.APIKeys().then(e=>({default:e.APIKeys}))),$=(0,r.lazy)(()=>a.Checkout().then(e=>({default:e.Checkout}))),x=(0,r.lazy)(()=>a.TaskChooseOrganization().then(e=>({default:e.TaskChooseOrganization}))),z=(0,r.lazy)(()=>a.PlanDetails().then(e=>({default:e.PlanDetails}))),N=(0,r.lazy)(()=>a.SubscriptionDetails().then(e=>({default:e.SubscriptionDetails}))),T=(0,r.lazy)(()=>a.OAuthConsent().then(e=>({default:e.OAuthConsent}))),I=(0,r.lazy)(()=>a.SessionTasks().then(e=>({default:e.SessionTasks}))),R=async e=>a[e]?.(),D={SignIn:o,SignUp:p,UserAvatar:d,UserButton:h,UserProfile:m,UserVerification:s,EnableOrganizationsPrompt:u,OrganizationSwitcher:P,OrganizationList:S,OrganizationProfile:_,CreateOrganization:g,SignInModal:i,SignUpModal:f,UserProfileModal:y,OrganizationProfileModal:v,CreateOrganizationModal:b,UserVerificationModal:c,GoogleOneTap:l,Waitlist:w,WaitlistModal:C,BlankCaptchaModal:k,PricingTable:A,Checkout:$,PlanDetails:z,APIKeys:M,OAuthConsent:T,SubscriptionDetails:N,TaskChooseOrganization:x}},4642:function(e,t,n){n.d(t,{Nx:()=>E,Vv:()=>k,Fj:()=>w,up:()=>S,$h:()=>O,t8:()=>C,dB:()=>A,xg:()=>M});var r=n(4518),a=n(4653);let o=new Set;var i=n(5074),l=n(4096);let s=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,9367)).then(e=>({default:e.CoreClerkContextWrapper}))),c=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,9367)).then(e=>({default:e.EnvironmentProvider}))),u=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,9367)).then(e=>({default:e.OptionsProvider}))),p=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,9367)).then(e=>({default:e.ModuleManagerProvider}))),f=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,8272)).then(e=>({default:e.AppearanceProvider}))),d=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,3394)).then(e=>({default:e.VirtualRouter}))),h=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666")]).then(n.bind(n,2245)).then(e=>({default:e.InternalThemeProvider}))),m=(0,i.lazy)(()=>n.e("666").then(n.bind(n,5287)).then(e=>({default:e.StyleCacheProvider}))),y=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472"),n.e("360")]).then(n.bind(n,9661)).then(e=>({default:e.Portal}))),g=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666"),n.e("472"),n.e("360")]).then(n.bind(n,9661)).then(e=>({default:e.VirtualBodyRootPortal}))),b=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666")]).then(n.bind(n,3269)).then(e=>({default:e.FlowMetadataProvider}))),_=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666")]).then(n.bind(n,6705)).then(e=>({default:e.Modal}))),v=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666")]).then(n.bind(n,8532)).then(e=>({default:e.Drawer.Root}))),P=(0,i.lazy)(()=>Promise.all([n.e("26"),n.e("545"),n.e("666")]).then(n.bind(n,8532)).then(e=>({default:e.Drawer.Overlay}))),S=(0,i.lazy)(()=>Promise.all([n.e("545"),n.e("666"),n.e("608")]).then(n.bind(n,4817)).then(e=>({default:e.OrganizationSwitcherPrefetch}))),w=e=>(0,r.Y)(m,{nonce:e.options.nonce,cssLayerName:e.options.appearance?.cssLayerName,children:(0,r.Y)(p,{moduleManager:e.moduleManager,children:(0,r.Y)(s,{clerk:e.clerk,children:(0,r.Y)(c,{value:e.environment,children:(0,r.Y)(u,{value:e.options,children:e.children})})})})}),C=e=>{var t,n;let i,s;return e?.componentProps?.routing==="virtual"&&(t='routing="virtual"',i=(0,a.r)()||(0,a.n)(),s=n??t,o.has(s)||i||(o.add(s),console.warn(`Clerk - DEPRECATION WARNING: "${t}" is deprecated and will be removed in the next major release.
2
2
  Use routing="hash" instead.`))),(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:e.appearanceKey,appearance:e.componentAppearance,children:(0,r.Y)(y,{node:e.node,component:l.O3[e.componentName],props:e.componentProps,componentName:e.componentName})})},k=e=>(0,r.Y)(i.Suspense,{fallback:"",children:(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:e.appearanceKey,appearance:e.componentAppearance,children:(0,r.Y)(b,{flow:e.flowName||"",children:(0,r.Y)(h,{children:(0,r.Y)(_,{id:e.modalId,style:e.modalStyle,handleClose:e.onClose,containerSx:e.modalContainerSx,contentSx:e.modalContentSx,canCloseModal:e.canCloseModal,children:e.startPath?(0,r.Y)(i.Suspense,{children:(0,r.Y)(d,{startPath:e.startPath,onExternalNavigate:e.onExternalNavigate,children:e.children})}):e.children})})})})}),O=e=>(0,r.Y)(i.Suspense,{fallback:"",children:(0,r.Y)(d,{startPath:"",children:(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:e.appearanceKey,appearance:e.componentAppearance,children:(0,r.Y)(b,{flow:e.flowName||"",children:(0,r.Y)(h,{children:(0,r.FD)(v,{open:e.open,onOpenChange:e.onOpenChange,strategy:e.portalId||e.portalRoot?"absolute":"fixed",portalProps:{id:e.portalId?e.portalId:void 0,root:e.portalRoot?e.portalRoot:void 0},children:[(0,r.Y)(P,{}),e.children]})})})})})}),E=e=>(0,r.Y)(i.Suspense,{children:(0,r.Y)(d,{startPath:"",children:(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:"impersonationFab",children:e.children})})}),A=e=>(0,r.Y)(i.Suspense,{children:(0,r.Y)(d,{startPath:"",children:(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:"enableOrganizationsPrompt",children:e.children})})}),M=e=>(0,r.Y)(f,{globalAppearance:e.globalAppearance,appearanceKey:"oneTap",appearance:e.componentAppearance,children:(0,r.Y)(g,{startPath:e.startPath,component:l.O3.GoogleOneTap,props:e.componentProps,componentName:"GoogleOneTap"})})},1785:function(e,t,n){n.d(t,{A:()=>K});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(((t=document.createElement("style")).setAttribute("data-emotion",this.key),void 0!==this.nonce&&t.setAttribute("nonce",this.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t));var t,n=this.tags[this.tags.length-1];if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(n);try{r.insertRule(e,r.cssRules.length)}catch(e){}}else n.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach(function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)}),this.tags=[],this.ctr=0},e}(),a=Math.abs,o=String.fromCharCode,i=Object.assign;function l(e,t,n){return e.replace(t,n)}function s(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function u(e,t,n){return e.slice(t,n)}function p(e){return e.length}function f(e,t){return t.push(e),e}var d=1,h=1,m=0,y=0,g=0,b="";function _(e,t,n,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:d,column:h,length:i,return:""}}function v(e,t){return i(_("",null,null,"",null,null,0),e,{length:-e.length},t)}function P(){return g=y<m?c(b,y++):0,h++,10===g&&(h=1,d++),g}function S(){return c(b,y)}function w(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function C(e){return d=h=1,m=p(b=e),y=0,[]}function k(e){var t,n;return(t=y-1,n=function e(t){for(;P();)switch(g){case t:return y;case 34:case 39:34!==t&&39!==t&&e(g);break;case 40:41===t&&e(t);break;case 92:P()}return y}(91===e?e+2:40===e?e+1:e),u(b,t,n)).trim()}var O="-ms-",E="-moz-",A="-webkit-",M="comm",$="rule",x="decl",z="@keyframes";function N(e,t){for(var n="",r=e.length,a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function T(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case x:return e.return=e.return||e.value;case M:return"";case z:return e.return=e.value+"{"+N(e.children,r)+"}";case $:e.value=e.props.join(",")}return p(n=N(e.children,r))?e.return=e.value+"{"+n+"}":""}function I(e,t,n,r,o,i,s,c,p,f,d){for(var h=o-1,m=0===o?i:[""],y=m.length,g=0,b=0,v=0;g<r;++g)for(var P=0,S=u(e,h+1,h=a(b=s[g])),w=e;P<y;++P)(w=(b>0?m[P]+" "+S:l(S,/&\f/g,m[P])).trim())&&(p[v++]=w);return _(e,t,n,0===o?$:c,p,f,d)}function R(e,t,n,r){return _(e,t,n,x,u(e,0,r),u(e,r+1,-1),r)}var D=function(e,t,n){for(var r=0,a=0;r=a,a=S(),38===r&&12===a&&(t[n]=1),!w(a);)P();return u(b,e,y)},U=function(e,t){var n=-1,r=44;do switch(w(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=D(y-1,t,n);break;case 2:e[n]+=k(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=o(r)}while(r=P());return e},j=function(e,t){var n;return n=U(C(e),t),b="",n},Y=new WeakMap,L=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Y.get(n))&&!r){Y.set(e,!0);for(var a=[],o=j(t,a),i=n.props,l=0,s=0;l<o.length;l++)for(var c=0;c<i.length;c++,s++)e.props[s]=a[l]?o[l].replace(/&\f/g,i[c]):i[c]+" "+o[l]}}},F=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},V=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case x:e.return=function e(t,n){switch(45^c(t,0)?(((n<<2^c(t,0))<<2^c(t,1))<<2^c(t,2))<<2^c(t,3):0){case 5103:return A+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return A+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return A+t+E+t+O+t+t;case 6828:case 4268:return A+t+O+t+t;case 6165:return A+t+O+"flex-"+t+t;case 5187:return A+t+l(t,/(\w+).+(:[^]+)/,A+"box-$1$2"+O+"flex-$1$2")+t;case 5443:return A+t+O+"flex-item-"+l(t,/flex-|-self/,"")+t;case 4675:return A+t+O+"flex-line-pack"+l(t,/align-content|flex-|-self/,"")+t;case 5548:return A+t+O+l(t,"shrink","negative")+t;case 5292:return A+t+O+l(t,"basis","preferred-size")+t;case 6060:return A+"box-"+l(t,"-grow","")+A+t+O+l(t,"grow","positive")+t;case 4554:return A+l(t,/([^-])(transform)/g,"$1"+A+"$2")+t;case 6187:return l(l(l(t,/(zoom-|grab)/,A+"$1"),/(image-set)/,A+"$1"),t,"")+t;case 5495:case 3959:return l(t,/(image-set\([^]*)/,A+"$1$`$1");case 4968:return l(l(t,/(.+:)(flex-)?(.*)/,A+"box-pack:$3"+O+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+A+t+t;case 4095:case 3583:case 4068:case 2532:return l(t,/(.+)-inline(.+)/,A+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(p(t)-1-n>6)switch(c(t,n+1)){case 109:if(45!==c(t,n+4))break;case 102:return l(t,/(.+:)(.+)-([^]+)/,"$1"+A+"$2-$3$1"+E+(108==c(t,n+3)?"$3":"$2-$3"))+t;case 115:return~s(t,"stretch")?e(l(t,"stretch","fill-available"),n)+t:t}break;case 4949:if(115!==c(t,n+1))break;case 6444:switch(c(t,p(t)-3-(~s(t,"!important")&&10))){case 107:return l(t,":",":"+A)+t;case 101:return l(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+A+(45===c(t,14)?"inline-":"")+"box$3$1"+A+"$2$3$1"+O+"$2box$3")+t}break;case 5936:switch(c(t,n+11)){case 114:return A+t+O+l(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return A+t+O+l(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return A+t+O+l(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return A+t+O+t+t}return t}(e.value,e.length);break;case z:return N([v(e,{value:l(e.value,"@","@"+A)})],r);case $:if(e.length){var a,o;return a=e.props,o=function(t){var n;switch(n=t,(n=/(::plac\w+|:read-\w+)/.exec(n))?n[0]:n){case":read-only":case":read-write":return N([v(e,{props:[l(t,/:(read-\w+)/,":"+E+"$1")]})],r);case"::placeholder":return N([v(e,{props:[l(t,/:(plac\w+)/,":"+A+"input-$1")]}),v(e,{props:[l(t,/:(plac\w+)/,":"+E+"$1")]}),v(e,{props:[l(t,/:(plac\w+)/,O+"input-$1")]})],r)}return""},a.map(o).join("")}}}],K=function(e){var t,n,a,i,m,v=e.key;if("css"===v){var O=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(O,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var E=e.stylisPlugins||V,A={},$=[];i=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+v+' "]'),function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)A[t[n]]=!0;$.push(e)});var x=(n=(t=[L,F].concat(E,[T,(a=function(e){m.insert(e)},function(e){!e.root&&(e=e.return)&&a(e)})])).length,function(e,r,a,o){for(var i="",l=0;l<n;l++)i+=t[l](e,r,a,o)||"";return i}),z=function(e){var t,n;return N((n=function e(t,n,r,a,i,m,v,C,O){for(var E,A=0,$=0,x=v,z=0,N=0,T=0,D=1,U=1,j=1,Y=0,L="",F=i,V=m,K=a,B=L;U;)switch(T=Y,Y=P()){case 40:if(108!=T&&58==c(B,x-1)){-1!=s(B+=l(k(Y),"&","&\f"),"&\f")&&(j=-1);break}case 34:case 39:case 91:B+=k(Y);break;case 9:case 10:case 13:case 32:B+=function(e){for(;g=S();)if(g<33)P();else break;return w(e)>2||w(g)>3?"":" "}(T);break;case 92:B+=function(e,t){for(var n;--t&&P()&&!(g<48)&&!(g>102)&&(!(g>57)||!(g<65))&&(!(g>70)||!(g<97)););return n=y+(t<6&&32==S()&&32==P()),u(b,e,n)}(y-1,7);continue;case 47:switch(S()){case 42:case 47:f((E=function(e,t){for(;P();)if(e+g===57)break;else if(e+g===84&&47===S())break;return"/*"+u(b,t,y-1)+"*"+o(47===e?e:P())}(P(),y),_(E,n,r,M,o(g),u(E,2,-2),0)),O);break;default:B+="/"}break;case 123*D:C[A++]=p(B)*j;case 125*D:case 59:case 0:switch(Y){case 0:case 125:U=0;case 59+$:-1==j&&(B=l(B,/\f/g,"")),N>0&&p(B)-x&&f(N>32?R(B+";",a,r,x-1):R(l(B," ","")+";",a,r,x-2),O);break;case 59:B+=";";default:if(f(K=I(B,n,r,A,$,i,C,L,F=[],V=[],x),m),123===Y)if(0===$)e(B,n,K,K,F,m,x,C,V);else switch(99===z&&110===c(B,3)?100:z){case 100:case 108:case 109:case 115:e(t,K,K,a&&f(I(t,K,K,0,0,i,C,L,i,F=[],x),V),i,V,x,C,a?F:V);break;default:e(B,K,K,K,[""],V,0,C,V)}}A=$=N=0,D=j=1,L=B="",x=v;break;case 58:x=1+p(B),N=T;default:if(D<1){if(123==Y)--D;else if(125==Y&&0==D++&&125==(g=y>0?c(b,--y):0,h--,10===g&&(h=1,d--),g))continue}switch(B+=o(Y),Y*D){case 38:j=$>0?1:(B+="\f",-1);break;case 44:C[A++]=(p(B)-1)*j,j=1;break;case 64:45===S()&&(B+=k(P())),z=S(),$=x=p(L=B+=function(e){for(;!w(S());)P();return u(b,e,y)}(y)),Y++;break;case 45:45===T&&2==p(B)&&(D=0)}}return m}("",null,null,null,[""],t=C(t=e),0,[0],t),b="",n),x)},D={key:v,sheet:new r({key:v,container:i,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:A,registered:{},insert:function(e,t,n,r){m=n,z(e?e+"{"+t.styles+"}":t.styles),r&&(D.inserted[t.name]=!0)}};return D.sheet.hydrate($),D}},6668:function(e,t,n){n.d(t,{E:()=>P,h:()=>f,a:()=>g,c:()=>_,C:()=>h});var r,a=n(5074),o=n(1785);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}var l=function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var r=e(n);return t.set(n,r),r}},s=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},c=function(e,t,n){s(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next;while(void 0!==a)}},u=n(399),p=n(7063),f={}.hasOwnProperty,d=a.createContext("undefined"!=typeof HTMLElement?(0,o.A)({key:"css"}):null),h=d.Provider,m=a.createContext({}),y=l(function(e){return l(function(t){var n,r;return n=e,"function"==typeof(r=t)?r(n):i({},n,r)})}),g=function(e){var t=a.useContext(m);return e.theme!==t&&(t=y(t)(e.theme)),a.createElement(m.Provider,{value:t},e.children)},b="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",_=function(e,t){var n={};for(var r in t)f.call(t,r)&&(n[r]=t[r]);return n[b]=e,n},v=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return s(t,n,r),(0,p.s)(function(){return c(t,n,r)}),null},P=(r=function(e,t,n){var r,o,i,l=e.css;"string"==typeof l&&void 0!==t.registered[l]&&(l=t.registered[l]);var s=e[b],c=[l],p="";"string"==typeof e.className?(r=t.registered,o=e.className,i="",o.split(" ").forEach(function(e){void 0!==r[e]?c.push(r[e]+";"):e&&(i+=e+" ")}),p=i):null!=e.className&&(p=e.className+" ");var d=(0,u.J)(c,void 0,a.useContext(m));p+=t.key+"-"+d.name;var h={};for(var y in e)f.call(e,y)&&"css"!==y&&y!==b&&(h[y]=e[y]);return h.ref=n,h.className=p,a.createElement(a.Fragment,null,a.createElement(v,{cache:t,serialized:d,isStringTag:"string"==typeof s}),a.createElement(s,h))},(0,a.forwardRef)(function(e,t){return r(e,(0,a.useContext)(d),t)}))},4518:function(e,t,n){n.d(t,{FD:()=>l,FK:()=>o,Y:()=>i});var r=n(6842),a=n(6668);n(5074),n(1785),n(8863),n(7063);var o=r.Fragment;function i(e,t,n){return a.h.call(t,"css")?r.jsx(a.E,(0,a.c)(e,t),n):r.jsx(e,t,n)}function l(e,t,n){return a.h.call(t,"css")?r.jsxs(a.E,(0,a.c)(e,t),n):r.jsxs(e,t,n)}},399:function(e,t,n){n.d(t,{J:()=>m});var r,a,o,i={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},l=/[A-Z]|^ms/g,s=/_EMO_([^_]+?)_([^]*?)_EMO_/g,c=function(e){return 45===e.charCodeAt(1)},u=function(e){return null!=e&&"boolean"!=typeof e},p=(r=function(e){return c(e)?e:e.replace(l,"-$&").toLowerCase()},a=Object.create(null),function(e){return void 0===a[e]&&(a[e]=r(e)),a[e]}),f=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(s,function(e,t,n){return o={name:t,styles:n,next:o},t})}return 1===i[e]||c(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return o={name:n.name,styles:n.styles,next:o},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)o={name:r.name,styles:r.styles,next:o},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=d(e,t,n[a])+";";else for(var o in n){var i=n[o];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=o+"{"+t[i]+"}":u(i)&&(r+=p(o)+":"+f(o,i)+";");else if(Array.isArray(i)&&"string"==typeof i[0]&&(null==t||void 0===t[i[0]]))for(var l=0;l<i.length;l++)u(i[l])&&(r+=p(o)+":"+f(o,i[l])+";");else{var s=d(e,t,i);switch(o){case"animation":case"animationName":r+=p(o)+":"+s+";";break;default:r+=o+"{"+s+"}"}}}return r}(e,t,n);case"function":if(void 0!==e){var a=o,i=n(e);return o=a,d(e,t,i)}}if(null==t)return n;var l=t[n];return void 0!==l?l:n}var h=/label:\s*([^\s;{]+)\s*(;|$)/g;function m(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r,a=!0,i="";o=void 0;var l=e[0];null==l||void 0===l.raw?(a=!1,i+=d(n,t,l)):i+=l[0];for(var s=1;s<e.length;s++)i+=d(n,t,e[s]),a&&(i+=l[s]);h.lastIndex=0;for(var c="";null!==(r=h.exec(i));)c+="-"+r[1];return{name:function(e){for(var t,n=0,r=0,a=e.length;a>=4;++r,a-=4)t=(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))*0x5bd1e995+((t>>>16)*59797<<16),t^=t>>>24,n=(65535&t)*0x5bd1e995+((t>>>16)*59797<<16)^(65535&n)*0x5bd1e995+((n>>>16)*59797<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n^=255&e.charCodeAt(r),n=(65535&n)*0x5bd1e995+((n>>>16)*59797<<16)}return n^=n>>>13,(((n=(65535&n)*0x5bd1e995+((n>>>16)*59797<<16))^n>>>15)>>>0).toString(36)}(i)+c,styles:i,next:o}}},7063:function(e,t,n){n.d(t,{s:()=>i});var r,a=n(5074),o=!!(r||(r=n.t(a,2))).useInsertionEffect&&(r||(r=n.t(a,2))).useInsertionEffect,i=o||function(e){return e()};o||a.useLayoutEffect},8863:function(e,t,n){var r=n(2243),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=d(n);a&&a!==h&&e(t,a,r)}var i=u(n);p&&(i=i.concat(p(n)));for(var l=s(t),m=s(n),y=0;y<i.length;++y){var g=i[y];if(!o[g]&&!(r&&r[g])&&!(m&&m[g])&&!(l&&l[g])){var b=f(n,g);try{c(t,g,b)}catch(e){}}}}return t}},6983:function(e,t){var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,_=n?Symbol.for("react.responder"):60118,v=n?Symbol.for("react.scope"):60119;function P(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case p:case o:case l:case i:case d:return e;default:switch(e=e&&e.$$typeof){case c:case f:case y:case m:case s:return e;default:return t}}case a:return t}}}function S(e){return P(e)===p}t.AsyncMode=u,t.ConcurrentMode=p,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=y,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=d,t.isAsyncMode=function(e){return S(e)||P(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return P(e)===c},t.isContextProvider=function(e){return P(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return P(e)===f},t.isFragment=function(e){return P(e)===o},t.isLazy=function(e){return P(e)===y},t.isMemo=function(e){return P(e)===m},t.isPortal=function(e){return P(e)===a},t.isProfiler=function(e){return P(e)===l},t.isStrictMode=function(e){return P(e)===i},t.isSuspense=function(e){return P(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===p||e===l||e===i||e===d||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===f||e.$$typeof===b||e.$$typeof===_||e.$$typeof===v||e.$$typeof===g)},t.typeOf=P},2243:function(e,t,n){e.exports=n(6983)},9234:function(e,t,n){var r=n(5074),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:l.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},9709:function(e,t){var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),d=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,y={};function g(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||h}function b(){}function _(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var v=_.prototype=new b;v.constructor=_,m(v,g.prototype),v.isPureReactComponent=!0;var P=Array.isArray,S=Object.prototype.hasOwnProperty,w={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)S.call(t,a)&&!C.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:w.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var E=/\/+/g;function A(e,t){var n,r;return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function M(e,t,a){if(null==e)return e;var o=[],i=0;return!function e(t,a,o,i,l){var s,c,u,p=typeof t;("undefined"===p||"boolean"===p)&&(t=null);var f=!1;if(null===t)f=!0;else switch(p){case"string":case"number":f=!0;break;case"object":switch(t.$$typeof){case n:case r:f=!0}}if(f)return l=l(f=t),t=""===i?"."+A(f,0):i,P(l)?(o="",null!=t&&(o=t.replace(E,"$&/")+"/"),e(l,a,o,"",function(e){return e})):null!=l&&(O(l)&&(s=l,c=o+(!l.key||f&&f.key===l.key?"":(""+l.key).replace(E,"$&/")+"/")+t,l={$$typeof:n,type:s.type,key:c,ref:s.ref,props:s.props,_owner:s._owner}),a.push(l)),1;if(f=0,i=""===i?".":i+":",P(t))for(var h=0;h<t.length;h++){var m=i+A(p=t[h],h);f+=e(p,a,o,m,l)}else if("function"==typeof(m=null===(u=t)||"object"!=typeof u?null:"function"==typeof(u=d&&u[d]||u["@@iterator"])?u:null))for(t=m.call(t),h=0;!(p=t.next()).done;)m=i+A(p=p.value,h++),f+=e(p,a,o,m,l);else if("object"===p)throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(a=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":a)+"). If you meant to render a collection of children, use an array instead.");return f}(e,o,"","",function(e){return t.call(a,e,i++)}),o}function $(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var x={current:null},z={transition:null};function N(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:M,forEach:function(e,t,n){M(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return M(e,function(){t++}),t},toArray:function(e){return M(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=g,t.Fragment=a,t.Profiler=i,t.PureComponent=_,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED={ReactCurrentDispatcher:x,ReactCurrentBatchConfig:z,ReactCurrentOwner:w},t.act=N,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=m({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=w.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)S.call(t,c)&&!C.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){s=Array(c);for(var u=0;u<c;u++)s[u]=arguments[u+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=O,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:$}},t.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=z.transition;z.transition={};try{e()}finally{z.transition=t}},t.unstable_act=N,t.useCallback=function(e,t){return x.current.useCallback(e,t)},t.useContext=function(e){return x.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return x.current.useDeferredValue(e)},t.useEffect=function(e,t){return x.current.useEffect(e,t)},t.useId=function(){return x.current.useId()},t.useImperativeHandle=function(e,t,n){return x.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return x.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return x.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return x.current.useMemo(e,t)},t.useReducer=function(e,t,n){return x.current.useReducer(e,t,n)},t.useRef=function(e){return x.current.useRef(e)},t.useState=function(e){return x.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return x.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return x.current.useTransition()},t.version="18.3.1"},5074:function(e,t,n){e.exports=n(9709)},6842:function(e,t,n){e.exports=n(9234)},922:function(e,t,n){n.d(t,{a:()=>i,c:()=>s,d:()=>u,f:()=>f,i:()=>l,l:()=>r,o:()=>o,r:()=>a,s:()=>p,t:()=>d,u:()=>c});let r=["redirect_url","after_sign_in_url","after_sign_up_url","sign_in_force_redirect_url","sign_in_fallback_redirect_url","sign_up_force_redirect_url","sign_up_fallback_redirect_url"],a="__clerk_modal_state",o="__clerk_synced",i="suffixed_cookies",l="__clerk_satellite_url",s={FORM_IDENTIFIER_NOT_FOUND:"form_identifier_not_found",FORM_PASSWORD_INCORRECT:"form_password_incorrect",FORM_PASSWORD_PWNED:"form_password_pwned",INVALID_STRATEGY_FOR_USER:"strategy_for_user_invalid",NOT_ALLOWED_TO_SIGN_UP:"not_allowed_to_sign_up",OAUTH_ACCESS_DENIED:"oauth_access_denied",OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML:"oauth_email_domain_reserved_by_saml",NOT_ALLOWED_ACCESS:"not_allowed_access",SAML_USER_ATTRIBUTE_MISSING:"saml_user_attribute_missing",USER_LOCKED:"user_locked",EXTERNAL_ACCOUNT_NOT_FOUND:"external_account_not_found",SIGN_UP_MODE_RESTRICTED:"sign_up_mode_restricted",SIGN_UP_MODE_RESTRICTED_WAITLIST:"sign_up_restricted_waitlist",ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING:"enterprise_sso_user_attribute_missing",ENTERPRISE_SSO_EMAIL_ADDRESS_DOMAIN_MISMATCH:"enterprise_sso_email_address_domain_mismatch",ENTERPRISE_SSO_HOSTED_DOMAIN_MISMATCH:"enterprise_sso_hosted_domain_mismatch",SAML_EMAIL_ADDRESS_DOMAIN_MISMATCH:"saml_email_address_domain_mismatch",INVITATION_ACCOUNT_NOT_EXISTS:"invitation_account_not_exists",ORGANIZATION_MEMBERSHIP_QUOTA_EXCEEDED_FOR_SSO:"organization_membership_quota_exceeded_for_sso",CAPTCHA_INVALID:"captcha_invalid",FRAUD_DEVICE_BLOCKED:"device_blocked",FRAUD_ACTION_BLOCKED:"action_blocked",SIGNUP_RATE_LIMIT_EXCEEDED:"signup_rate_limit_exceeded",USER_BANNED:"user_banned"},c=["email_address","phone_number","username"],u=["email_address","phone_number","username","first_name","last_name"],p=350,f={PUBLIC:"public",RESTRICTED:"restricted",WAITLIST:"waitlist"},d="clerk-captcha"},526:function(e,t,n){n.d(t,{t:()=>a});var r=n(8693);let a=()=>{let e=r.t,t=r.t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}},2950:function(e,t,n){n.d(t,{S:()=>c,a:()=>a,c:()=>o,n:()=>i,o:()=>p,s:()=>u,t:()=>l,x:()=>s});let r="ClerkJS:";function a(e){throw Error(`${r} Missing path option. The ${e} component was mounted with path routing so you need to specify the path where the component is mounted on e.g. path="/sign-in".`)}function o(e){throw Error(`${r} Invalid routing strategy, path cannot be used in tandem with ${e}.`)}function i(){throw Error(`${r} Clerk instance not found. Make sure Clerk is initialized before using any Clerk components.`)}function l(e){throw Error(`${r} ${e} not found. Make sure you wrap your app with <${e}>.`)}function s(){throw Error(`${r} The target element is empty. Provide a valid DOM element.`)}function c(e){console.warn(`${r} ${e} is not supported in this environment.`)}function u(e,t){throw Error(`${r} Response: ${e||0} not supported yet.
3
- For more information contact us at ${t}`)}function p(e){throw Error(`${r} Unable to retrieve a third party script${e?` ${e}`:""}.`)}},1421:function(e,t,n){n.d(t,{F:()=>o,j:()=>i});var r=n(922),a=n(4674);let o=()=>{let e=(0,a.n)(r.r)??"";return e?JSON.parse(atob(e)):null},i=({url:e,startPath:t="/user",currentPath:n="",componentName:a,socialProvider:o=""})=>{var i;let l=(i=JSON.stringify({path:n.replace(/CLERK-ROUTER\/VIRTUAL\/.*\//,"")||"",componentName:a,startPath:t,socialProvider:o}),global.btoa(i)),s=new URL(e),c=s.searchParams;return c.set(r.r,l),s.search=c.toString(),s.toString()}},8693:function(e,t,n){n.d(t,{t:()=>r});let r=(...e)=>{}},4674:function(e,t,n){n.d(t,{r:()=>i,n:()=>o,t:()=>l});var r=n(922);let a=["__clerk_status","__clerk_created_session","__clerk_invitation_token","__clerk_ticket","__clerk_modal_state","__clerk_handshake","__clerk_handshake_nonce","__clerk_help","__clerk_netlify_cache_bust",r.o,r.i,r.a];function o(e){return new URL(window.location.href).searchParams.get(e)||null}function i(e){let t=new URL(window.location.href);t.searchParams.has(e)&&(t.searchParams.delete(e),window.history.replaceState(window.history.state,"",t))}function l(e){let t=new URLSearchParams(window.location.search),n=e||new URLSearchParams;for(let e of a){let r=t.get(e);r&&n.set(e,r)}return n}},4653:function(e,t,n){n.d(t,{n:()=>o,r:()=>a,t:()=>r});let r=()=>!1,a=()=>!1,o=()=>{try{return!0}catch{}return!1}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var n=Object.create(null);o.r(n);var r={};i=i||[null,l({}),l([]),l(l)];for(var a=2&t&&e;("object"==typeof a||"function"==typeof a)&&!~i.indexOf(a);a=l(a))Object.getOwnPropertyNames(a).forEach(t=>{r[t]=()=>e[t]});return r.default=()=>e,o.d(n,r),n},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,n)=>(o.f[n](e,t),t),[])),o.u=e=>""+(({10:"signin",110:"up-plans-page",122:"payment-attempt-page",223:"op-api-keys-page",243:"createorganization",256:"checkout",259:"up-billing-page",26:"framework",264:"op-plans-page",265:"waitlist",289:"op-billing-page",30:"pricingTable",310:"organizationprofile",326:"apiKeys",328:"blankcaptcha",364:"organizationswitcher",390:"sessionTasks",394:"copy-api-key-modal",451:"subscriptionDetails",472:"signup",505:"revoke-api-key-modal",522:"keylessPrompt",533:"enableOrganizationsPrompt",545:"vendors",58:"useravatar",591:"oauthConsent",608:"prefetchorganizationlist",627:"statement-page",636:"userverification",666:"ui-common",718:"userprofile",721:"onetap",723:"taskChooseOrganization",799:"organizationlist",817:"up-api-keys-page",841:"planDetails",917:"impersonationfab",99:"userbutton"})[e]||e)+"_ui_"+o.h().slice(0,6)+"_1.0.0-canary-core3.v20251203181537.js",o.h=()=>"b6eb3b35bae2eeb2",o.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},o.l=function(e,t,n,r){if(s[e])return void s[e].push(t);if(void 0!==n)for(var a,i,l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var u=l[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="@clerk/ui:"+n){a=u;break}}a||(i=!0,(a=document.createElement("script")).timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack","@clerk/ui:"+n),a.src=e),s[e]=[t];var p=function(t,n){a.onerror=a.onload=null,clearTimeout(f);var r=s[e];if(delete s[e],a.parentNode&&a.parentNode.removeChild(a),r&&r.forEach(function(e){return e(n)}),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=p.bind(null,a.onerror),a.onload=p.bind(null,a.onload),i&&document.head.appendChild(a)},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.g.importScripts&&(c=o.g.location+"");var i,l,s,c,u=o.g.document;if(!c&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(c=u.currentScript.src),!c)){var p=u.getElementsByTagName("script");if(p.length)for(var f=p.length-1;f>-1&&(!c||!/^http(s?):/.test(c));)c=p[f--].src}if(!c)throw Error("Automatic publicPath is not supported in this browser");return o.p=c=c.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e={4:0},o.f.j=function(t,n){var r=o.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise((n,a)=>r=e[t]=[n,a]);n.push(r[2]=a);var i=o.p+o.u(t),l=Error();o.l(i,function(n){if(o.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,r[1](l)}},"chunk-"+t,t)}},t=(t,n)=>{var r,a,[i,l,s]=n,c=0;if(i.some(t=>0!==e[t])){for(r in l)o.o(l,r)&&(o.m[r]=l[r]);s&&s(o)}for(t&&t(n);c<i.length;c++)a=i[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},(n=globalThis.webpackChunk_clerk_ui=globalThis.webpackChunk_clerk_ui||[]).forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n)),(()=>{var e=o(4518),t=o(2950),n=o(526),r=o(5074),a=o(3727),i=o(4096);let l=(0,r.lazy)(()=>Promise.all([o.e("545"),o.e("666")]).then(o.bind(o,8501)).then(e=>({default:e.MountedCheckoutDrawer}))),s=(0,r.lazy)(()=>Promise.all([o.e("545"),o.e("666")]).then(o.bind(o,4027)).then(e=>({default:e.MountedPlanDetailDrawer}))),c=(0,r.lazy)(()=>Promise.all([o.e("26"),o.e("545"),o.e("666"),o.e("451")]).then(o.bind(o,9949)).then(e=>({default:e.MountedSubscriptionDetailDrawer})));var u=o(4642);let p=({base:e,path:t})=>t?e+t:e;function f(e,t){if(!e)return{};let n="signin"===t?"signIn":"signUp",r={[`${n}ForceRedirectUrl`]:e.forceRedirectUrl,[`${n}FallbackRedirectUrl`]:e.fallbackRedirectUrl},a={...e,...r};return delete a.forceRedirectUrl,delete a.fallbackRedirectUrl,a}let d="undefined"!=typeof window?r.useLayoutEffect:r.useEffect,h=0,m={},y=Object.freeze({SignUp:"signUpModal",SignIn:"signInModal",UserProfile:"userProfileModal",OrganizationProfile:"organizationProfileModal",CreateOrganization:"createOrganizationModal",Waitlist:"waitlistModal"}),g=n=>{let[o,g]=r.useState({appearance:n.options.appearance,options:n.options,googleOneTapModal:null,signInModal:null,signUpModal:null,userProfileModal:null,userVerificationModal:null,organizationProfileModal:null,createOrganizationModal:null,enableOrganizationsPromptModal:null,organizationSwitcherPrefetch:!1,waitlistModal:null,blankCaptchaModal:null,checkoutDrawer:{open:!1,props:null},planDetailsDrawer:{open:!1,props:null},subscriptionDetailsDrawer:{open:!1,props:null},nodes:new Map,impersonationFab:!1}),{googleOneTapModal:b,signInModal:_,signUpModal:v,userProfileModal:P,userVerificationModal:S,organizationProfileModal:w,createOrganizationModal:C,waitlistModal:k,blankCaptchaModal:O,checkoutDrawer:E,planDetailsDrawer:A,subscriptionDetailsDrawer:M,nodes:$}=o,{urlStateParam:x,clearUrlStateParam:z,decodedRedirectParams:N}=(0,a.x)();d(()=>{N&&g(e=>({...e,[y[N.componentName]]:!0})),m.mountComponent=e=>{let{node:n,name:r,props:a,appearanceKey:o}=e;n||(0,t.x)(),g(e=>(e.nodes.set(n,{key:`p${++h}`,name:r,props:a,appearanceKey:o}),{...e,nodes:$}))},m.unmountComponent=e=>{let{node:t}=e;g(e=>(e.nodes.delete(t),{...e,nodes:$}))},m.updateProps=({node:e,props:t,...n})=>{if(e&&t&&"object"==typeof t){let n=o.nodes.get(e);if(n){n.props={...t},g(e=>({...e}));return}}g(e=>({...e,...n,options:{...e.options,...n.options}}))},m.closeModal=(e,t={})=>{let{notify:n=!0}=t;z(),g(t=>{let r;return(r=t[`${e}Modal`])&&"object"==typeof r&&"afterVerificationCancelled"in r&&n&&r.afterVerificationCancelled?.(),{...t,[`${e}Modal`]:null}})},m.openModal=(e,t)=>{"enableOrganizationsPrompt"===e?g(n=>n.enableOrganizationsPromptModal?n:{...n,[`${e}Modal`]:t}):"afterVerificationCancelled"in t?"afterVerificationCancelled"in t&&g(n=>({...n,[`${e}Modal`]:{...t,afterVerification(){t.afterVerification?.(),m.closeModal(e,{notify:!1})}}})):g(n=>({...n,[`${e}Modal`]:t}))},m.mountImpersonationFab=()=>{g(e=>({...e,impersonationFab:!0}))},m.openDrawer=(e,t)=>{g(n=>({...n,[`${e}Drawer`]:{open:!0,props:t}}))},m.closeDrawer=e=>{g(t=>{let n=t[`${e}Drawer`];return n?.props?.onClose?.(),{...t,[`${e}Drawer`]:{...t[`${e}Drawer`],open:!1}}})},m.prefetch=e=>{g(t=>({...t,[`${e}Prefetch`]:!0}))},n.onComponentsMounted()},[]);let T=(0,e.Y)(u.xg,{componentProps:b,globalAppearance:o.appearance,componentAppearance:b?.appearance,startPath:p({base:"/one-tap",path:""})}),I=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"signIn",componentAppearance:_?.appearance,flowName:"signIn",onClose:()=>m.closeModal("signIn"),onExternalNavigate:()=>m.closeModal("signIn"),startPath:p({base:"/sign-in",path:x?.path}),componentName:"SignInModal",children:[(0,e.Y)(i.M9,{..._}),(0,e.Y)(i.gK,{...f(_,"signin")}),(0,e.Y)(i.L1,{...k})]}),R=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"signUp",componentAppearance:v?.appearance,flowName:"signUp",onClose:()=>m.closeModal("signUp"),onExternalNavigate:()=>m.closeModal("signUp"),startPath:p({base:"/sign-up",path:x?.path}),componentName:"SignUpModal",children:[(0,e.Y)(i.M9,{...f(v,"signup")}),(0,e.Y)(i.gK,{...v}),(0,e.Y)(i.L1,{...k})]}),D=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"userProfile",componentAppearance:P?.appearance,flowName:"userProfile",onClose:()=>m.closeModal("userProfile"),onExternalNavigate:()=>m.closeModal("userProfile"),startPath:p({base:"/user",path:P?.__experimental_startPath||x?.path}),componentName:"UserProfileModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$176}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.am,{...P})}),U=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"userVerification",componentAppearance:S?.appearance,flowName:"userVerification",onClose:()=>m.closeModal("userVerification"),onExternalNavigate:()=>m.closeModal("userVerification"),startPath:p({base:"/user-verification",path:x?.path}),componentName:"UserVerificationModal",modalContainerSx:{alignItems:"center"},children:(0,e.Y)(i.yd,{...S})}),j=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"organizationProfile",componentAppearance:w?.appearance,flowName:"organizationProfile",onClose:()=>m.closeModal("organizationProfile"),onExternalNavigate:()=>m.closeModal("organizationProfile"),startPath:p({base:"/organizationProfile",path:w?.__experimental_startPath||x?.path}),componentName:"OrganizationProfileModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$176}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.Qj,{...w})}),Y=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"createOrganization",componentAppearance:C?.appearance,flowName:"createOrganization",onClose:()=>m.closeModal("createOrganization"),onExternalNavigate:()=>m.closeModal("createOrganization"),startPath:p({base:"/createOrganization",path:x?.path}),componentName:"CreateOrganizationModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$120}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.Xi,{...C})}),L=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"waitlist",componentAppearance:k?.appearance,flowName:"waitlist",onClose:()=>m.closeModal("waitlist"),onExternalNavigate:()=>m.closeModal("waitlist"),startPath:p({base:"/waitlist",path:x?.path}),componentName:"WaitlistModal",children:[(0,e.Y)(i.L1,{...k}),(0,e.Y)(i.M9,{...k})]}),F=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"blankCaptcha",componentAppearance:{},flowName:"blankCaptcha",onClose:()=>m.closeModal("blankCaptcha"),startPath:p({base:"/blank-captcha",path:x?.path}),componentName:"BlankCaptchaModal",canCloseModal:!1,modalId:"cl-modal-captcha-wrapper",modalStyle:{visibility:"hidden",pointerEvents:"none"},children:(0,e.Y)(i.Gb,{})});return(0,e.Y)(r.Suspense,{fallback:"",children:(0,e.FD)(u.Fj,{clerk:n.getClerk(),environment:n.getEnvironment(),options:o.options,moduleManager:n.moduleManager,children:[[...$].map(([t,n])=>(0,e.Y)(u.t8,{node:t,globalAppearance:o.appearance,appearanceKey:n.appearanceKey,componentAppearance:n.props?.appearance,componentName:n.name,componentProps:n.props},n.key)),b&&T,_&&I,v&&R,P&&D,S&&U,w&&j,C&&Y,k&&L,O&&F,(0,e.Y)(l,{appearance:o.appearance,checkoutDrawer:E,onOpenChange:()=>m.closeDrawer("checkout")}),(0,e.Y)(s,{appearance:o.appearance,planDetailsDrawer:A,onOpenChange:()=>m.closeDrawer("planDetails")}),(0,e.Y)(c,{appearance:o.appearance,subscriptionDetailsDrawer:M,onOpenChange:()=>m.closeDrawer("subscriptionDetails")}),o.impersonationFab&&(0,e.Y)(u.Nx,{globalAppearance:o.appearance,children:(0,e.Y)(i.Sm,{})}),o.enableOrganizationsPromptModal&&(0,e.Y)(u.dB,{globalAppearance:o.appearance,children:(0,e.Y)(i.yc,{...o.enableOrganizationsPromptModal})}),o.options?.__internal_keyless_claimKeylessApplicationUrl&&o.options?.__internal_keyless_copyInstanceKeysUrl&&(0,e.Y)(u.Nx,{globalAppearance:o.appearance,children:(0,e.Y)(i.ju,{claimUrl:o.options.__internal_keyless_claimKeylessApplicationUrl,copyKeysUrl:o.options.__internal_keyless_copyInstanceKeysUrl,onDismiss:o.options.__internal_keyless_dismissPrompt})}),(0,e.Y)(r.Suspense,{children:o.organizationSwitcherPrefetch&&(0,e.Y)(u.up,{})})]})})};window.__unstable_ClerkUiCtor||(window.__unstable_ClerkUiCtor=class{static version="1.0.0-canary-core3.v20251203181537";version="1.0.0-canary-core3.v20251203181537";#e;constructor(t,r,a,l){this.#e=((t,r,a,l)=>{let s,c={...a};c.appearance&&(c.appearance=function(e){let t;if(!e||"object"!=typeof e)return e;let n=void 0!==e.theme?e.theme:e.baseTheme,r=void 0!==e.theme;if(!n)return e;if(Array.isArray(n)){n.forEach(e=>{!t&&"object"==typeof e&&e.cssLayerName&&(t=e.cssLayerName)});let a=n.map(e=>{if("string"==typeof e)return e;let{cssLayerName:t,...n}=e;return n}),o=e.cssLayerName||t,i={...e,[r?"theme":"baseTheme"]:a};return o&&(i.cssLayerName=o),i}{let t;"object"==typeof n&&n.cssLayerName&&(t=n.cssLayerName);let a="string"==typeof n?n:(()=>{let{cssLayerName:e,...t}=n;return t})(),o=e.cssLayerName||t,i={...e,[r?"theme":"baseTheme"]:a};return o&&(i.cssLayerName=o),i}}(c.appearance));let u=document.getElementById("clerk-components");return u||((u=document.createElement("div")).setAttribute("id","clerk-components"),document.body.appendChild(u)),{ensureMounted:async a=>{let{preloadHint:p}=a||{};if(!s){let a=(0,n.t)();p&&(0,i.jr)(p),s=Promise.all([o.e("26"),o.e("666")]).then(o.bind(o,6053)).then(({createRoot:n})=>(n(u).render((0,e.Y)(g,{getClerk:t,getEnvironment:r,options:c,onComponentsMounted:a.resolve,moduleManager:l})),a.promise.then(()=>m)))}return s.then(e=>e)}}})(t,r,a,l)}ensureMounted(e){return this.#e.ensureMounted(e)}})})(),{}})());
3
+ For more information contact us at ${t}`)}function p(e){throw Error(`${r} Unable to retrieve a third party script${e?` ${e}`:""}.`)}},1421:function(e,t,n){n.d(t,{F:()=>o,j:()=>i});var r=n(922),a=n(4674);let o=()=>{let e=(0,a.n)(r.r)??"";return e?JSON.parse(atob(e)):null},i=({url:e,startPath:t="/user",currentPath:n="",componentName:a,socialProvider:o=""})=>{var i;let l=(i=JSON.stringify({path:n.replace(/CLERK-ROUTER\/VIRTUAL\/.*\//,"")||"",componentName:a,startPath:t,socialProvider:o}),global.btoa(i)),s=new URL(e),c=s.searchParams;return c.set(r.r,l),s.search=c.toString(),s.toString()}},8693:function(e,t,n){n.d(t,{t:()=>r});let r=(...e)=>{}},4674:function(e,t,n){n.d(t,{r:()=>i,n:()=>o,t:()=>l});var r=n(922);let a=["__clerk_status","__clerk_created_session","__clerk_invitation_token","__clerk_ticket","__clerk_modal_state","__clerk_handshake","__clerk_handshake_nonce","__clerk_help","__clerk_netlify_cache_bust",r.o,r.i,r.a];function o(e){return new URL(window.location.href).searchParams.get(e)||null}function i(e){let t=new URL(window.location.href);t.searchParams.has(e)&&(t.searchParams.delete(e),window.history.replaceState(window.history.state,"",t))}function l(e){let t=new URLSearchParams(window.location.search),n=e||new URLSearchParams;for(let e of a){let r=t.get(e);r&&n.set(e,r)}return n}},4653:function(e,t,n){n.d(t,{n:()=>o,r:()=>a,t:()=>r});let r=()=>!1,a=()=>!1,o=()=>{try{return!0}catch{}return!1}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var n=Object.create(null);o.r(n);var r={};i=i||[null,l({}),l([]),l(l)];for(var a=2&t&&e;("object"==typeof a||"function"==typeof a)&&!~i.indexOf(a);a=l(a))Object.getOwnPropertyNames(a).forEach(t=>{r[t]=()=>e[t]});return r.default=()=>e,o.d(n,r),n},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,n)=>(o.f[n](e,t),t),[])),o.u=e=>""+(({10:"signin",110:"up-plans-page",122:"payment-attempt-page",223:"op-api-keys-page",243:"createorganization",256:"checkout",259:"up-billing-page",26:"framework",264:"op-plans-page",265:"waitlist",289:"op-billing-page",30:"pricingTable",310:"organizationprofile",326:"apiKeys",328:"blankcaptcha",364:"organizationswitcher",390:"sessionTasks",394:"copy-api-key-modal",451:"subscriptionDetails",472:"signup",505:"revoke-api-key-modal",522:"keylessPrompt",533:"enableOrganizationsPrompt",545:"vendors",58:"useravatar",591:"oauthConsent",608:"prefetchorganizationlist",627:"statement-page",636:"userverification",666:"ui-common",718:"userprofile",721:"onetap",723:"taskChooseOrganization",799:"organizationlist",817:"up-api-keys-page",841:"planDetails",917:"impersonationfab",99:"userbutton"})[e]||e)+"_ui_"+o.h().slice(0,6)+"_1.0.0-snapshot.v20251203203405.js",o.h=()=>"9c3cc30b48b5c17b",o.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},o.l=function(e,t,n,r){if(s[e])return void s[e].push(t);if(void 0!==n)for(var a,i,l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var u=l[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="@clerk/ui:"+n){a=u;break}}a||(i=!0,(a=document.createElement("script")).timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack","@clerk/ui:"+n),a.src=e),s[e]=[t];var p=function(t,n){a.onerror=a.onload=null,clearTimeout(f);var r=s[e];if(delete s[e],a.parentNode&&a.parentNode.removeChild(a),r&&r.forEach(function(e){return e(n)}),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=p.bind(null,a.onerror),a.onload=p.bind(null,a.onload),i&&document.head.appendChild(a)},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.g.importScripts&&(c=o.g.location+"");var i,l,s,c,u=o.g.document;if(!c&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(c=u.currentScript.src),!c)){var p=u.getElementsByTagName("script");if(p.length)for(var f=p.length-1;f>-1&&(!c||!/^http(s?):/.test(c));)c=p[f--].src}if(!c)throw Error("Automatic publicPath is not supported in this browser");return o.p=c=c.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e={4:0},o.f.j=function(t,n){var r=o.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise((n,a)=>r=e[t]=[n,a]);n.push(r[2]=a);var i=o.p+o.u(t),l=Error();o.l(i,function(n){if(o.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,r[1](l)}},"chunk-"+t,t)}},t=(t,n)=>{var r,a,[i,l,s]=n,c=0;if(i.some(t=>0!==e[t])){for(r in l)o.o(l,r)&&(o.m[r]=l[r]);s&&s(o)}for(t&&t(n);c<i.length;c++)a=i[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},(n=globalThis.webpackChunk_clerk_ui=globalThis.webpackChunk_clerk_ui||[]).forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n)),(()=>{var e=o(4518),t=o(2950),n=o(526),r=o(5074),a=o(3727),i=o(4096);let l=(0,r.lazy)(()=>Promise.all([o.e("545"),o.e("666")]).then(o.bind(o,8501)).then(e=>({default:e.MountedCheckoutDrawer}))),s=(0,r.lazy)(()=>Promise.all([o.e("545"),o.e("666")]).then(o.bind(o,4027)).then(e=>({default:e.MountedPlanDetailDrawer}))),c=(0,r.lazy)(()=>Promise.all([o.e("26"),o.e("545"),o.e("666"),o.e("451")]).then(o.bind(o,9949)).then(e=>({default:e.MountedSubscriptionDetailDrawer})));var u=o(4642);let p=({base:e,path:t})=>t?e+t:e;function f(e,t){if(!e)return{};let n="signin"===t?"signIn":"signUp",r={[`${n}ForceRedirectUrl`]:e.forceRedirectUrl,[`${n}FallbackRedirectUrl`]:e.fallbackRedirectUrl},a={...e,...r};return delete a.forceRedirectUrl,delete a.fallbackRedirectUrl,a}let d="undefined"!=typeof window?r.useLayoutEffect:r.useEffect,h=0,m={},y=Object.freeze({SignUp:"signUpModal",SignIn:"signInModal",UserProfile:"userProfileModal",OrganizationProfile:"organizationProfileModal",CreateOrganization:"createOrganizationModal",Waitlist:"waitlistModal"}),g=n=>{let[o,g]=r.useState({appearance:n.options.appearance,options:n.options,googleOneTapModal:null,signInModal:null,signUpModal:null,userProfileModal:null,userVerificationModal:null,organizationProfileModal:null,createOrganizationModal:null,enableOrganizationsPromptModal:null,organizationSwitcherPrefetch:!1,waitlistModal:null,blankCaptchaModal:null,checkoutDrawer:{open:!1,props:null},planDetailsDrawer:{open:!1,props:null},subscriptionDetailsDrawer:{open:!1,props:null},nodes:new Map,impersonationFab:!1}),{googleOneTapModal:b,signInModal:_,signUpModal:v,userProfileModal:P,userVerificationModal:S,organizationProfileModal:w,createOrganizationModal:C,waitlistModal:k,blankCaptchaModal:O,checkoutDrawer:E,planDetailsDrawer:A,subscriptionDetailsDrawer:M,nodes:$}=o,{urlStateParam:x,clearUrlStateParam:z,decodedRedirectParams:N}=(0,a.x)();d(()=>{N&&g(e=>({...e,[y[N.componentName]]:!0})),m.mountComponent=e=>{let{node:n,name:r,props:a,appearanceKey:o}=e;n||(0,t.x)(),g(e=>(e.nodes.set(n,{key:`p${++h}`,name:r,props:a,appearanceKey:o}),{...e,nodes:$}))},m.unmountComponent=e=>{let{node:t}=e;g(e=>(e.nodes.delete(t),{...e,nodes:$}))},m.updateProps=({node:e,props:t,...n})=>{if(e&&t&&"object"==typeof t){let n=o.nodes.get(e);if(n){n.props={...t},g(e=>({...e}));return}}g(e=>({...e,...n,options:{...e.options,...n.options}}))},m.closeModal=(e,t={})=>{let{notify:n=!0}=t;z(),g(t=>{let r;return(r=t[`${e}Modal`])&&"object"==typeof r&&"afterVerificationCancelled"in r&&n&&r.afterVerificationCancelled?.(),{...t,[`${e}Modal`]:null}})},m.openModal=(e,t)=>{"enableOrganizationsPrompt"===e?g(n=>n.enableOrganizationsPromptModal?n:{...n,[`${e}Modal`]:t}):"afterVerificationCancelled"in t?"afterVerificationCancelled"in t&&g(n=>({...n,[`${e}Modal`]:{...t,afterVerification(){t.afterVerification?.(),m.closeModal(e,{notify:!1})}}})):g(n=>({...n,[`${e}Modal`]:t}))},m.mountImpersonationFab=()=>{g(e=>({...e,impersonationFab:!0}))},m.openDrawer=(e,t)=>{g(n=>({...n,[`${e}Drawer`]:{open:!0,props:t}}))},m.closeDrawer=e=>{g(t=>{let n=t[`${e}Drawer`];return n?.props?.onClose?.(),{...t,[`${e}Drawer`]:{...t[`${e}Drawer`],open:!1}}})},m.prefetch=e=>{g(t=>({...t,[`${e}Prefetch`]:!0}))},n.onComponentsMounted()},[]);let T=(0,e.Y)(u.xg,{componentProps:b,globalAppearance:o.appearance,componentAppearance:b?.appearance,startPath:p({base:"/one-tap",path:""})}),I=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"signIn",componentAppearance:_?.appearance,flowName:"signIn",onClose:()=>m.closeModal("signIn"),onExternalNavigate:()=>m.closeModal("signIn"),startPath:p({base:"/sign-in",path:x?.path}),componentName:"SignInModal",children:[(0,e.Y)(i.M9,{..._}),(0,e.Y)(i.gK,{...f(_,"signin")}),(0,e.Y)(i.L1,{...k})]}),R=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"signUp",componentAppearance:v?.appearance,flowName:"signUp",onClose:()=>m.closeModal("signUp"),onExternalNavigate:()=>m.closeModal("signUp"),startPath:p({base:"/sign-up",path:x?.path}),componentName:"SignUpModal",children:[(0,e.Y)(i.M9,{...f(v,"signup")}),(0,e.Y)(i.gK,{...v}),(0,e.Y)(i.L1,{...k})]}),D=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"userProfile",componentAppearance:P?.appearance,flowName:"userProfile",onClose:()=>m.closeModal("userProfile"),onExternalNavigate:()=>m.closeModal("userProfile"),startPath:p({base:"/user",path:P?.__experimental_startPath||x?.path}),componentName:"UserProfileModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$176}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.am,{...P})}),U=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"userVerification",componentAppearance:S?.appearance,flowName:"userVerification",onClose:()=>m.closeModal("userVerification"),onExternalNavigate:()=>m.closeModal("userVerification"),startPath:p({base:"/user-verification",path:x?.path}),componentName:"UserVerificationModal",modalContainerSx:{alignItems:"center"},children:(0,e.Y)(i.yd,{...S})}),j=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"organizationProfile",componentAppearance:w?.appearance,flowName:"organizationProfile",onClose:()=>m.closeModal("organizationProfile"),onExternalNavigate:()=>m.closeModal("organizationProfile"),startPath:p({base:"/organizationProfile",path:w?.__experimental_startPath||x?.path}),componentName:"OrganizationProfileModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$176}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.Qj,{...w})}),Y=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"createOrganization",componentAppearance:C?.appearance,flowName:"createOrganization",onClose:()=>m.closeModal("createOrganization"),onExternalNavigate:()=>m.closeModal("createOrganization"),startPath:p({base:"/createOrganization",path:x?.path}),componentName:"CreateOrganizationModal",modalContainerSx:{alignItems:"center"},modalContentSx:e=>({height:`min(${e.sizes.$120}, calc(100% - ${e.sizes.$12}))`,margin:0}),children:(0,e.Y)(i.Xi,{...C})}),L=(0,e.FD)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"waitlist",componentAppearance:k?.appearance,flowName:"waitlist",onClose:()=>m.closeModal("waitlist"),onExternalNavigate:()=>m.closeModal("waitlist"),startPath:p({base:"/waitlist",path:x?.path}),componentName:"WaitlistModal",children:[(0,e.Y)(i.L1,{...k}),(0,e.Y)(i.M9,{...k})]}),F=(0,e.Y)(u.Vv,{globalAppearance:o.appearance,appearanceKey:"blankCaptcha",componentAppearance:{},flowName:"blankCaptcha",onClose:()=>m.closeModal("blankCaptcha"),startPath:p({base:"/blank-captcha",path:x?.path}),componentName:"BlankCaptchaModal",canCloseModal:!1,modalId:"cl-modal-captcha-wrapper",modalStyle:{visibility:"hidden",pointerEvents:"none"},children:(0,e.Y)(i.Gb,{})});return(0,e.Y)(r.Suspense,{fallback:"",children:(0,e.FD)(u.Fj,{clerk:n.getClerk(),environment:n.getEnvironment(),options:o.options,moduleManager:n.moduleManager,children:[[...$].map(([t,n])=>(0,e.Y)(u.t8,{node:t,globalAppearance:o.appearance,appearanceKey:n.appearanceKey,componentAppearance:n.props?.appearance,componentName:n.name,componentProps:n.props},n.key)),b&&T,_&&I,v&&R,P&&D,S&&U,w&&j,C&&Y,k&&L,O&&F,(0,e.Y)(l,{appearance:o.appearance,checkoutDrawer:E,onOpenChange:()=>m.closeDrawer("checkout")}),(0,e.Y)(s,{appearance:o.appearance,planDetailsDrawer:A,onOpenChange:()=>m.closeDrawer("planDetails")}),(0,e.Y)(c,{appearance:o.appearance,subscriptionDetailsDrawer:M,onOpenChange:()=>m.closeDrawer("subscriptionDetails")}),o.impersonationFab&&(0,e.Y)(u.Nx,{globalAppearance:o.appearance,children:(0,e.Y)(i.Sm,{})}),o.enableOrganizationsPromptModal&&(0,e.Y)(u.dB,{globalAppearance:o.appearance,children:(0,e.Y)(i.yc,{...o.enableOrganizationsPromptModal})}),o.options?.__internal_keyless_claimKeylessApplicationUrl&&o.options?.__internal_keyless_copyInstanceKeysUrl&&(0,e.Y)(u.Nx,{globalAppearance:o.appearance,children:(0,e.Y)(i.ju,{claimUrl:o.options.__internal_keyless_claimKeylessApplicationUrl,copyKeysUrl:o.options.__internal_keyless_copyInstanceKeysUrl,onDismiss:o.options.__internal_keyless_dismissPrompt})}),(0,e.Y)(r.Suspense,{children:o.organizationSwitcherPrefetch&&(0,e.Y)(u.up,{})})]})})};window.__unstable_ClerkUiCtor||(window.__unstable_ClerkUiCtor=class{static version="1.0.0-snapshot.v20251203203405";version="1.0.0-snapshot.v20251203203405";#e;constructor(t,r,a,l){this.#e=((t,r,a,l)=>{let s,c={...a};c.appearance&&(c.appearance=function(e){let t;if(!e||"object"!=typeof e)return e;let n=void 0!==e.theme?e.theme:e.baseTheme,r=void 0!==e.theme;if(!n)return e;if(Array.isArray(n)){n.forEach(e=>{!t&&"object"==typeof e&&e.cssLayerName&&(t=e.cssLayerName)});let a=n.map(e=>{if("string"==typeof e)return e;let{cssLayerName:t,...n}=e;return n}),o=e.cssLayerName||t,i={...e,[r?"theme":"baseTheme"]:a};return o&&(i.cssLayerName=o),i}{let t;"object"==typeof n&&n.cssLayerName&&(t=n.cssLayerName);let a="string"==typeof n?n:(()=>{let{cssLayerName:e,...t}=n;return t})(),o=e.cssLayerName||t,i={...e,[r?"theme":"baseTheme"]:a};return o&&(i.cssLayerName=o),i}}(c.appearance));let u=document.getElementById("clerk-components");return u||((u=document.createElement("div")).setAttribute("id","clerk-components"),document.body.appendChild(u)),{ensureMounted:async a=>{let{preloadHint:p}=a||{};if(!s){let a=(0,n.t)();p&&(0,i.jr)(p),s=Promise.all([o.e("26"),o.e("666")]).then(o.bind(o,6053)).then(({createRoot:n})=>(n(u).render((0,e.Y)(g,{getClerk:t,getEnvironment:r,options:c,onComponentsMounted:a.resolve,moduleManager:l})),a.promise.then(()=>m)))}return s.then(e=>e)}}})(t,r,a,l)}ensureMounted(e){return this.#e.ensureMounted(e)}})})(),{}})());
@@ -44,7 +44,7 @@ const AlternativeMethodsList = (props) => {
44
44
  children: /* @__PURE__ */ jsxs(Card.Root, { children: [/* @__PURE__ */ jsxs(Card.Content, { children: [
45
45
  /* @__PURE__ */ jsxs(Header.Root, {
46
46
  showLogo: true,
47
- children: [/* @__PURE__ */ jsx(Header.Title, { localizationKey: cardTitleKey }), !isReset && mode !== "passwordCompromised" && /* @__PURE__ */ jsx(Header.Subtitle, { localizationKey: localizationKeys("signIn.alternativeMethods.subtitle") })]
47
+ children: [/* @__PURE__ */ jsx(Header.Title, { localizationKey: cardTitleKey }), !isReset && /* @__PURE__ */ jsx(Header.Subtitle, { localizationKey: localizationKeys("signIn.alternativeMethods.subtitle") })]
48
48
  }),
49
49
  /* @__PURE__ */ jsx(Card.Alert, { children: card.error }),
50
50
  /* @__PURE__ */ jsxs(Flex, {
@@ -129,7 +129,6 @@ function determineFlowPart(mode) {
129
129
  switch (mode) {
130
130
  case "forgot": return "forgotPasswordMethods";
131
131
  case "pwned": return "passwordPwnedMethods";
132
- case "passwordCompromised": return "passwordCompromisedMethods";
133
132
  default: return "alternativeMethods";
134
133
  }
135
134
  }
@@ -137,7 +136,6 @@ function determineTitle(mode) {
137
136
  switch (mode) {
138
137
  case "forgot": return localizationKeys("signIn.forgotPasswordAlternativeMethods.title");
139
138
  case "pwned": return localizationKeys("signIn.passwordPwned.title");
140
- case "passwordCompromised": return localizationKeys("signIn.passwordCompromised.title");
141
139
  default: return localizationKeys("signIn.alternativeMethods.title");
142
140
  }
143
141
  }
@@ -145,7 +143,6 @@ function determineIsReset(mode) {
145
143
  switch (mode) {
146
144
  case "forgot":
147
145
  case "pwned": return true;
148
- case "passwordCompromised": return false;
149
146
  default: return false;
150
147
  }
151
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlternativeMethods.js","names":["LinkIcon","Email","ChatAltIcon","RequestAuthIcon","LockClosedIcon","Fingerprint"],"sources":["../../../src/components/SignIn/AlternativeMethods.tsx"],"sourcesContent":["import type { SignInFactor } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { ArrowBlockButton } from '@/ui/elements/ArrowBlockButton';\nimport { BackLink } from '@/ui/elements/BackLink';\nimport { Card } from '@/ui/elements/Card';\nimport { Divider } from '@/ui/elements/Divider';\nimport { Header } from '@/ui/elements/Header';\nimport { formatSafeIdentifier } from '@/ui/utils/formatSafeIdentifier';\n\nimport { useCoreSignIn } from '../../contexts';\nimport type { LocalizationKey } from '../../customizables';\nimport { Button, Col, descriptors, Flex, Flow, localizationKeys } from '../../customizables';\nimport { useCardState } from '../../elements/contexts';\nimport { useAlternativeStrategies } from '../../hooks/useAlternativeStrategies';\nimport { ChatAltIcon, Email, Fingerprint, LinkIcon, LockClosedIcon, RequestAuthIcon } from '../../icons';\nimport { SignInSocialButtons } from './SignInSocialButtons';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\nimport { withHavingTrouble } from './withHavingTrouble';\n\nexport type AlternativeMethodsMode = 'forgot' | 'pwned' | 'passwordCompromised' | 'default';\n\nexport type AlternativeMethodsProps = {\n onBackLinkClick: React.MouseEventHandler | undefined;\n onFactorSelected: (factor: SignInFactor) => void;\n currentFactor: SignInFactor | undefined | null;\n mode?: AlternativeMethodsMode;\n};\n\nexport type AlternativeMethodListProps = AlternativeMethodsProps & { onHavingTroubleClick: React.MouseEventHandler };\n\nexport const AlternativeMethods = (props: AlternativeMethodsProps) => {\n return withHavingTrouble(AlternativeMethodsList, {\n ...props,\n });\n};\n\nconst AlternativeMethodsList = (props: AlternativeMethodListProps) => {\n const { onBackLinkClick, onHavingTroubleClick, onFactorSelected, mode = 'default' } = props;\n const card = useCardState();\n const resetPasswordFactor = useResetPasswordFactor();\n const { supportedFirstFactors } = useCoreSignIn();\n const { firstPartyFactors, hasAnyStrategy } = useAlternativeStrategies({\n filterOutFactor: props?.currentFactor,\n supportedFirstFactors: supportedFirstFactors,\n });\n\n const flowPart = determineFlowPart(mode);\n const cardTitleKey = determineTitle(mode);\n const isReset = determineIsReset(mode);\n\n return (\n <Flow.Part part={flowPart}>\n <Card.Root>\n <Card.Content>\n <Header.Root showLogo>\n <Header.Title localizationKey={cardTitleKey} />\n {!isReset && mode !== 'passwordCompromised' && (\n <Header.Subtitle localizationKey={localizationKeys('signIn.alternativeMethods.subtitle')} />\n )}\n </Header.Root>\n <Card.Alert>{card.error}</Card.Alert>\n {/*TODO: extract main in its own component */}\n <Flex\n direction='col'\n elementDescriptor={descriptors.main}\n gap={6}\n >\n {isReset && resetPasswordFactor && (\n <Button\n localizationKey={getButtonLabel(resetPasswordFactor)}\n elementDescriptor={descriptors.alternativeMethodsBlockButton}\n isDisabled={card.isLoading}\n onClick={() => {\n card.setError(undefined);\n onFactorSelected(resetPasswordFactor);\n }}\n />\n )}\n {isReset && hasAnyStrategy && (\n <Divider\n dividerText={localizationKeys('signIn.forgotPasswordAlternativeMethods.label__alternativeMethods')}\n />\n )}\n <Col gap={4}>\n {hasAnyStrategy && (\n <Flex\n elementDescriptor={descriptors.alternativeMethods}\n direction='col'\n gap={2}\n >\n <SignInSocialButtons\n enableWeb3Providers\n enableOAuthProviders\n enableAlternativePhoneCodeProviders={false}\n />\n {firstPartyFactors &&\n firstPartyFactors.map((factor, i) => (\n <ArrowBlockButton\n leftIcon={getButtonIcon(factor)}\n textLocalizationKey={getButtonLabel(factor)}\n elementDescriptor={descriptors.alternativeMethodsBlockButton}\n textElementDescriptor={descriptors.alternativeMethodsBlockButtonText}\n arrowElementDescriptor={descriptors.alternativeMethodsBlockButtonArrow}\n key={i}\n textVariant='buttonLarge'\n isDisabled={card.isLoading}\n onClick={() => {\n card.setError(undefined);\n onFactorSelected(factor);\n }}\n />\n ))}\n </Flex>\n )}\n {onBackLinkClick && (\n <BackLink\n boxElementDescriptor={descriptors.backRow}\n linkElementDescriptor={descriptors.backLink}\n onClick={onBackLinkClick}\n />\n )}\n </Col>\n </Flex>\n </Card.Content>\n\n <Card.Footer>\n <Card.Action elementId='havingTrouble'>\n <Card.ActionText localizationKey={localizationKeys('signIn.alternativeMethods.actionText')} />\n <Card.ActionLink\n localizationKey={localizationKeys('signIn.alternativeMethods.actionLink')}\n onClick={onHavingTroubleClick}\n />\n </Card.Action>\n </Card.Footer>\n </Card.Root>\n </Flow.Part>\n );\n};\n\nexport function getButtonLabel(factor: SignInFactor): LocalizationKey {\n switch (factor.strategy) {\n case 'email_link':\n return localizationKeys('signIn.alternativeMethods.blockButton__emailLink', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'email_code':\n return localizationKeys('signIn.alternativeMethods.blockButton__emailCode', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'phone_code':\n return localizationKeys('signIn.alternativeMethods.blockButton__phoneCode', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'password':\n return localizationKeys('signIn.alternativeMethods.blockButton__password');\n case 'passkey':\n return localizationKeys('signIn.alternativeMethods.blockButton__passkey');\n case 'reset_password_email_code':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.blockButton__resetPassword');\n case 'reset_password_phone_code':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.blockButton__resetPassword');\n default:\n throw new Error(`Invalid sign in strategy: \"${factor.strategy}\"`);\n }\n}\n\nexport function getButtonIcon(factor: SignInFactor) {\n const icons = {\n email_link: LinkIcon,\n email_code: Email,\n phone_code: ChatAltIcon,\n reset_password_email_code: RequestAuthIcon,\n reset_password_phone_code: RequestAuthIcon,\n password: LockClosedIcon,\n passkey: Fingerprint,\n } as const;\n\n return icons[factor.strategy as keyof typeof icons];\n}\n\nfunction determineFlowPart(mode: AlternativeMethodsMode) {\n switch (mode) {\n case 'forgot':\n return 'forgotPasswordMethods';\n case 'pwned':\n return 'passwordPwnedMethods';\n case 'passwordCompromised':\n return 'passwordCompromisedMethods';\n default:\n return 'alternativeMethods';\n }\n}\n\nfunction determineTitle(mode: AlternativeMethodsMode): LocalizationKey {\n switch (mode) {\n case 'forgot':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.title');\n case 'pwned':\n return localizationKeys('signIn.passwordPwned.title');\n case 'passwordCompromised':\n return localizationKeys('signIn.passwordCompromised.title');\n default:\n return localizationKeys('signIn.alternativeMethods.title');\n }\n}\n\nfunction determineIsReset(mode: AlternativeMethodsMode): boolean {\n switch (mode) {\n case 'forgot':\n case 'pwned':\n return true;\n case 'passwordCompromised':\n return false;\n default:\n return false;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AlternativeMethods.js","names":["LinkIcon","Email","ChatAltIcon","RequestAuthIcon","LockClosedIcon","Fingerprint"],"sources":["../../../src/components/SignIn/AlternativeMethods.tsx"],"sourcesContent":["import type { SignInFactor } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { ArrowBlockButton } from '@/ui/elements/ArrowBlockButton';\nimport { BackLink } from '@/ui/elements/BackLink';\nimport { Card } from '@/ui/elements/Card';\nimport { Divider } from '@/ui/elements/Divider';\nimport { Header } from '@/ui/elements/Header';\nimport { formatSafeIdentifier } from '@/ui/utils/formatSafeIdentifier';\n\nimport { useCoreSignIn } from '../../contexts';\nimport type { LocalizationKey } from '../../customizables';\nimport { Button, Col, descriptors, Flex, Flow, localizationKeys } from '../../customizables';\nimport { useCardState } from '../../elements/contexts';\nimport { useAlternativeStrategies } from '../../hooks/useAlternativeStrategies';\nimport { ChatAltIcon, Email, Fingerprint, LinkIcon, LockClosedIcon, RequestAuthIcon } from '../../icons';\nimport { SignInSocialButtons } from './SignInSocialButtons';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\nimport { withHavingTrouble } from './withHavingTrouble';\n\ntype AlternativeMethodsMode = 'forgot' | 'pwned' | 'default';\n\nexport type AlternativeMethodsProps = {\n onBackLinkClick: React.MouseEventHandler | undefined;\n onFactorSelected: (factor: SignInFactor) => void;\n currentFactor: SignInFactor | undefined | null;\n mode?: AlternativeMethodsMode;\n};\n\nexport type AlternativeMethodListProps = AlternativeMethodsProps & { onHavingTroubleClick: React.MouseEventHandler };\n\nexport const AlternativeMethods = (props: AlternativeMethodsProps) => {\n return withHavingTrouble(AlternativeMethodsList, {\n ...props,\n });\n};\n\nconst AlternativeMethodsList = (props: AlternativeMethodListProps) => {\n const { onBackLinkClick, onHavingTroubleClick, onFactorSelected, mode = 'default' } = props;\n const card = useCardState();\n const resetPasswordFactor = useResetPasswordFactor();\n const { supportedFirstFactors } = useCoreSignIn();\n const { firstPartyFactors, hasAnyStrategy } = useAlternativeStrategies({\n filterOutFactor: props?.currentFactor,\n supportedFirstFactors: supportedFirstFactors,\n });\n\n const flowPart = determineFlowPart(mode);\n const cardTitleKey = determineTitle(mode);\n const isReset = determineIsReset(mode);\n\n return (\n <Flow.Part part={flowPart}>\n <Card.Root>\n <Card.Content>\n <Header.Root showLogo>\n <Header.Title localizationKey={cardTitleKey} />\n {!isReset && <Header.Subtitle localizationKey={localizationKeys('signIn.alternativeMethods.subtitle')} />}\n </Header.Root>\n <Card.Alert>{card.error}</Card.Alert>\n {/*TODO: extract main in its own component */}\n <Flex\n direction='col'\n elementDescriptor={descriptors.main}\n gap={6}\n >\n {isReset && resetPasswordFactor && (\n <Button\n localizationKey={getButtonLabel(resetPasswordFactor)}\n elementDescriptor={descriptors.alternativeMethodsBlockButton}\n isDisabled={card.isLoading}\n onClick={() => {\n card.setError(undefined);\n onFactorSelected(resetPasswordFactor);\n }}\n />\n )}\n {isReset && hasAnyStrategy && (\n <Divider\n dividerText={localizationKeys('signIn.forgotPasswordAlternativeMethods.label__alternativeMethods')}\n />\n )}\n <Col gap={4}>\n {hasAnyStrategy && (\n <Flex\n elementDescriptor={descriptors.alternativeMethods}\n direction='col'\n gap={2}\n >\n <SignInSocialButtons\n enableWeb3Providers\n enableOAuthProviders\n enableAlternativePhoneCodeProviders={false}\n />\n {firstPartyFactors &&\n firstPartyFactors.map((factor, i) => (\n <ArrowBlockButton\n leftIcon={getButtonIcon(factor)}\n textLocalizationKey={getButtonLabel(factor)}\n elementDescriptor={descriptors.alternativeMethodsBlockButton}\n textElementDescriptor={descriptors.alternativeMethodsBlockButtonText}\n arrowElementDescriptor={descriptors.alternativeMethodsBlockButtonArrow}\n key={i}\n textVariant='buttonLarge'\n isDisabled={card.isLoading}\n onClick={() => {\n card.setError(undefined);\n onFactorSelected(factor);\n }}\n />\n ))}\n </Flex>\n )}\n {onBackLinkClick && (\n <BackLink\n boxElementDescriptor={descriptors.backRow}\n linkElementDescriptor={descriptors.backLink}\n onClick={onBackLinkClick}\n />\n )}\n </Col>\n </Flex>\n </Card.Content>\n\n <Card.Footer>\n <Card.Action elementId='havingTrouble'>\n <Card.ActionText localizationKey={localizationKeys('signIn.alternativeMethods.actionText')} />\n <Card.ActionLink\n localizationKey={localizationKeys('signIn.alternativeMethods.actionLink')}\n onClick={onHavingTroubleClick}\n />\n </Card.Action>\n </Card.Footer>\n </Card.Root>\n </Flow.Part>\n );\n};\n\nexport function getButtonLabel(factor: SignInFactor): LocalizationKey {\n switch (factor.strategy) {\n case 'email_link':\n return localizationKeys('signIn.alternativeMethods.blockButton__emailLink', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'email_code':\n return localizationKeys('signIn.alternativeMethods.blockButton__emailCode', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'phone_code':\n return localizationKeys('signIn.alternativeMethods.blockButton__phoneCode', {\n identifier: formatSafeIdentifier(factor.safeIdentifier) || '',\n });\n case 'password':\n return localizationKeys('signIn.alternativeMethods.blockButton__password');\n case 'passkey':\n return localizationKeys('signIn.alternativeMethods.blockButton__passkey');\n case 'reset_password_email_code':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.blockButton__resetPassword');\n case 'reset_password_phone_code':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.blockButton__resetPassword');\n default:\n throw new Error(`Invalid sign in strategy: \"${factor.strategy}\"`);\n }\n}\n\nexport function getButtonIcon(factor: SignInFactor) {\n const icons = {\n email_link: LinkIcon,\n email_code: Email,\n phone_code: ChatAltIcon,\n reset_password_email_code: RequestAuthIcon,\n reset_password_phone_code: RequestAuthIcon,\n password: LockClosedIcon,\n passkey: Fingerprint,\n } as const;\n\n return icons[factor.strategy as keyof typeof icons];\n}\n\nfunction determineFlowPart(mode: AlternativeMethodsMode) {\n switch (mode) {\n case 'forgot':\n return 'forgotPasswordMethods';\n case 'pwned':\n return 'passwordPwnedMethods';\n default:\n return 'alternativeMethods';\n }\n}\n\nfunction determineTitle(mode: AlternativeMethodsMode): LocalizationKey {\n switch (mode) {\n case 'forgot':\n return localizationKeys('signIn.forgotPasswordAlternativeMethods.title');\n case 'pwned':\n return localizationKeys('signIn.passwordPwned.title');\n default:\n return localizationKeys('signIn.alternativeMethods.title');\n }\n}\n\nfunction determineIsReset(mode: AlternativeMethodsMode): boolean {\n switch (mode) {\n case 'forgot':\n case 'pwned':\n return true;\n default:\n return false;\n }\n}\n"],"mappings":"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"}
@@ -32,12 +32,6 @@ const factorKey = (factor) => {
32
32
  if ("channel" in factor) key += factor.channel;
33
33
  return key;
34
34
  };
35
- function determineAlternativeMethodsMode(showForgotPasswordStrategies, passwordErrorCode) {
36
- if (!showForgotPasswordStrategies) return "default";
37
- if (passwordErrorCode === "pwned") return "pwned";
38
- if (passwordErrorCode === "compromised") return "passwordCompromised";
39
- return "forgot";
40
- }
41
35
  function SignInFactorOneInternal() {
42
36
  const { __internal_setActiveInProgress } = useClerk();
43
37
  const signIn = useCoreSignIn();
@@ -62,7 +56,7 @@ function SignInFactorOneInternal() {
62
56
  const [showAllStrategies, setShowAllStrategies] = React.useState(() => !currentFactor || !factorHasLocalStrategy(currentFactor));
63
57
  const resetPasswordFactor = useResetPasswordFactor();
64
58
  const [showForgotPasswordStrategies, setShowForgotPasswordStrategies] = React.useState(false);
65
- const [passwordErrorCode, setPasswordErrorCode] = React.useState(null);
59
+ const [isPasswordPwned, setIsPasswordPwned] = React.useState(false);
66
60
  React.useEffect(() => {
67
61
  if (__internal_setActiveInProgress) return;
68
62
  if (signIn.status === "needs_identifier" || signIn.status === null) router.navigate("../");
@@ -93,11 +87,11 @@ function SignInFactorOneInternal() {
93
87
  const toggle = showAllStrategies ? toggleAllStrategies : toggleForgotPasswordStrategies;
94
88
  const backHandler = () => {
95
89
  card.setError(void 0);
96
- setPasswordErrorCode(null);
90
+ setIsPasswordPwned(false);
97
91
  toggle?.();
98
92
  };
99
93
  return /* @__PURE__ */ jsx(AlternativeMethods, {
100
- mode: determineAlternativeMethodsMode(showForgotPasswordStrategies, passwordErrorCode),
94
+ mode: showForgotPasswordStrategies ? isPasswordPwned ? "pwned" : "forgot" : "default",
101
95
  onBackLinkClick: canGoBack ? backHandler : void 0,
102
96
  onFactorSelected: (f) => {
103
97
  selectFactor(f);
@@ -115,8 +109,8 @@ function SignInFactorOneInternal() {
115
109
  case "password": return /* @__PURE__ */ jsx(SignInFactorOnePasswordCard, {
116
110
  onForgotPasswordMethodClick: resetPasswordFactor ? toggleForgotPasswordStrategies : toggleAllStrategies,
117
111
  onShowAlternativeMethodsClick: toggleAllStrategies,
118
- onPasswordError: (errorCode) => {
119
- setPasswordErrorCode(errorCode);
112
+ onPasswordPwned: () => {
113
+ setIsPasswordPwned(true);
120
114
  toggleForgotPasswordStrategies();
121
115
  }
122
116
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SignInFactorOne.js","names":[],"sources":["../../../src/components/SignIn/SignInFactorOne.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInFactor } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useCardState, withCardStateProvider } from '@/ui/elements/contexts';\nimport { ErrorCard } from '@/ui/elements/ErrorCard';\nimport { LoadingCard } from '@/ui/elements/LoadingCard';\n\nimport { withRedirectToAfterSignIn, withRedirectToSignInTask } from '../../common';\nimport { useCoreSignIn, useEnvironment } from '../../contexts';\nimport { useAlternativeStrategies } from '../../hooks/useAlternativeStrategies';\nimport { localizationKeys } from '../../localization';\nimport { useRouter } from '../../router';\nimport type { AlternativeMethodsMode } from './AlternativeMethods';\nimport { AlternativeMethods } from './AlternativeMethods';\nimport { hasMultipleEnterpriseConnections } from './shared';\nimport { SignInFactorOneAlternativePhoneCodeCard } from './SignInFactorOneAlternativePhoneCodeCard';\nimport { SignInFactorOneEmailCodeCard } from './SignInFactorOneEmailCodeCard';\nimport { SignInFactorOneEmailLinkCard } from './SignInFactorOneEmailLinkCard';\nimport { SignInFactorOneEnterpriseConnections } from './SignInFactorOneEnterpriseConnections';\nimport { SignInFactorOneForgotPasswordCard } from './SignInFactorOneForgotPasswordCard';\nimport { SignInFactorOnePasskey } from './SignInFactorOnePasskey';\nimport type { PasswordErrorCode } from './SignInFactorOnePasswordCard';\nimport { SignInFactorOnePasswordCard } from './SignInFactorOnePasswordCard';\nimport { SignInFactorOnePhoneCodeCard } from './SignInFactorOnePhoneCodeCard';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\nimport { determineStartingSignInFactor, factorHasLocalStrategy } from './utils';\n\nconst factorKey = (factor: SignInFactor | null | undefined) => {\n if (!factor) {\n return '';\n }\n let key = factor.strategy;\n if ('emailAddressId' in factor) {\n key += factor.emailAddressId;\n }\n if ('phoneNumberId' in factor) {\n key += factor.phoneNumberId;\n }\n if ('channel' in factor) {\n key += factor.channel;\n }\n return key;\n};\n\nfunction determineAlternativeMethodsMode(\n showForgotPasswordStrategies: boolean,\n passwordErrorCode: PasswordErrorCode | null,\n): AlternativeMethodsMode {\n if (!showForgotPasswordStrategies) {\n return 'default';\n }\n\n if (passwordErrorCode === 'pwned') {\n return 'pwned';\n }\n\n if (passwordErrorCode === 'compromised') {\n return 'passwordCompromised';\n }\n\n return 'forgot';\n}\n\nfunction SignInFactorOneInternal(): JSX.Element {\n const { __internal_setActiveInProgress } = useClerk();\n const signIn = useCoreSignIn();\n const { preferredSignInStrategy } = useEnvironment().displayConfig;\n const availableFactors = signIn.supportedFirstFactors;\n const router = useRouter();\n const card = useCardState();\n const { supportedFirstFactors, firstFactorVerification } = useCoreSignIn();\n\n const lastPreparedFactorKeyRef = React.useRef('');\n const [{ currentFactor }, setFactor] = React.useState<{\n currentFactor: SignInFactor | undefined | null;\n prevCurrentFactor: SignInFactor | undefined | null;\n }>(() => {\n const factor = determineStartingSignInFactor(availableFactors, signIn.identifier, preferredSignInStrategy);\n if (\n factor?.strategy === 'phone_code' &&\n !!firstFactorVerification.channel &&\n firstFactorVerification.channel !== 'sms'\n ) {\n // This is only applied to phone_code with channel that is not 'sms'\n // because we don't want to send the channel parameter when its value is 'sms'\n factor.channel = firstFactorVerification.channel;\n }\n return {\n currentFactor: factor,\n prevCurrentFactor: undefined,\n };\n });\n\n const { hasAnyStrategy } = useAlternativeStrategies({\n filterOutFactor: currentFactor,\n supportedFirstFactors,\n });\n\n const [showAllStrategies, setShowAllStrategies] = React.useState<boolean>(\n () => !currentFactor || !factorHasLocalStrategy(currentFactor),\n );\n\n const resetPasswordFactor = useResetPasswordFactor();\n\n const [showForgotPasswordStrategies, setShowForgotPasswordStrategies] = React.useState(false);\n\n const [passwordErrorCode, setPasswordErrorCode] = React.useState<PasswordErrorCode | null>(null);\n\n React.useEffect(() => {\n if (__internal_setActiveInProgress) {\n return;\n }\n\n // Handle the case where a user lands on alternative methods screen,\n // clicks a social button but then navigates back to sign in.\n // SignIn status resets to 'needs_identifier'\n if (signIn.status === 'needs_identifier' || signIn.status === null) {\n void router.navigate('../');\n }\n }, [__internal_setActiveInProgress]);\n\n if (!currentFactor) {\n return signIn.status ? (\n <ErrorCard\n cardTitle={localizationKeys('signIn.noAvailableMethods.title')}\n cardSubtitle={localizationKeys('signIn.noAvailableMethods.subtitle')}\n message={localizationKeys('signIn.noAvailableMethods.message')}\n />\n ) : (\n <LoadingCard />\n );\n }\n\n const toggleAllStrategies = hasAnyStrategy ? () => setShowAllStrategies(s => !s) : undefined;\n\n const toggleForgotPasswordStrategies = () => setShowForgotPasswordStrategies(s => !s);\n\n const handleFactorPrepare = () => {\n lastPreparedFactorKeyRef.current = factorKey(currentFactor);\n };\n const selectFactor = (factor: SignInFactor) => {\n setFactor(prev => ({\n currentFactor: factor,\n prevCurrentFactor: prev.currentFactor,\n }));\n };\n\n /**\n * Prompt to choose between a list of enterprise connections as supported first factors\n * @experimental\n */\n if (hasMultipleEnterpriseConnections(signIn.supportedFirstFactors)) {\n return <SignInFactorOneEnterpriseConnections />;\n }\n\n if (showAllStrategies || showForgotPasswordStrategies) {\n const canGoBack = factorHasLocalStrategy(currentFactor);\n\n const toggle = showAllStrategies ? toggleAllStrategies : toggleForgotPasswordStrategies;\n const backHandler = () => {\n card.setError(undefined);\n setPasswordErrorCode(null);\n toggle?.();\n };\n\n const mode = determineAlternativeMethodsMode(showForgotPasswordStrategies, passwordErrorCode);\n\n return (\n <AlternativeMethods\n mode={mode}\n onBackLinkClick={canGoBack ? backHandler : undefined}\n onFactorSelected={f => {\n selectFactor(f);\n toggle?.();\n }}\n currentFactor={currentFactor}\n />\n );\n }\n\n if (!currentFactor) {\n return <LoadingCard />;\n }\n\n switch (currentFactor?.strategy) {\n case 'passkey':\n return (\n <SignInFactorOnePasskey\n onFactorPrepare={handleFactorPrepare}\n onShowAlternativeMethodsClick={toggleAllStrategies}\n />\n );\n case 'password':\n return (\n <SignInFactorOnePasswordCard\n onForgotPasswordMethodClick={resetPasswordFactor ? toggleForgotPasswordStrategies : toggleAllStrategies}\n onShowAlternativeMethodsClick={toggleAllStrategies}\n onPasswordError={errorCode => {\n setPasswordErrorCode(errorCode);\n toggleForgotPasswordStrategies();\n }}\n />\n );\n case 'email_code':\n return (\n <SignInFactorOneEmailCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n case 'phone_code':\n if (currentFactor.channel && currentFactor.channel !== 'sms') {\n // Alternative phone code provider (e.g. WhatsApp)\n return (\n <SignInFactorOneAlternativePhoneCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onChangePhoneCodeChannel={selectFactor}\n />\n );\n } else {\n // SMS\n return (\n <SignInFactorOnePhoneCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n }\n\n case 'email_link':\n return (\n <SignInFactorOneEmailLinkCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n case 'reset_password_phone_code':\n return (\n <SignInFactorOneForgotPasswordCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n onBackLinkClicked={() => {\n setFactor(prev => ({\n currentFactor: prev.prevCurrentFactor,\n prevCurrentFactor: prev.currentFactor,\n }));\n toggleForgotPasswordStrategies();\n }}\n cardSubtitle={localizationKeys('signIn.forgotPassword.subtitle_phone')}\n />\n );\n\n case 'reset_password_email_code':\n return (\n <SignInFactorOneForgotPasswordCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n onBackLinkClicked={() => {\n setFactor(prev => ({\n currentFactor: prev.prevCurrentFactor,\n prevCurrentFactor: prev.currentFactor,\n }));\n toggleForgotPasswordStrategies();\n }}\n cardSubtitle={localizationKeys('signIn.forgotPassword.subtitle_email')}\n />\n );\n default:\n return <LoadingCard />;\n }\n}\n\nexport const SignInFactorOne = withRedirectToSignInTask(\n withRedirectToAfterSignIn(withCardStateProvider(SignInFactorOneInternal)),\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"SignInFactorOne.js","names":[],"sources":["../../../src/components/SignIn/SignInFactorOne.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInFactor } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useCardState, withCardStateProvider } from '@/ui/elements/contexts';\nimport { ErrorCard } from '@/ui/elements/ErrorCard';\nimport { LoadingCard } from '@/ui/elements/LoadingCard';\n\nimport { withRedirectToAfterSignIn, withRedirectToSignInTask } from '../../common';\nimport { useCoreSignIn, useEnvironment } from '../../contexts';\nimport { useAlternativeStrategies } from '../../hooks/useAlternativeStrategies';\nimport { localizationKeys } from '../../localization';\nimport { useRouter } from '../../router';\nimport { AlternativeMethods } from './AlternativeMethods';\nimport { hasMultipleEnterpriseConnections } from './shared';\nimport { SignInFactorOneAlternativePhoneCodeCard } from './SignInFactorOneAlternativePhoneCodeCard';\nimport { SignInFactorOneEmailCodeCard } from './SignInFactorOneEmailCodeCard';\nimport { SignInFactorOneEmailLinkCard } from './SignInFactorOneEmailLinkCard';\nimport { SignInFactorOneEnterpriseConnections } from './SignInFactorOneEnterpriseConnections';\nimport { SignInFactorOneForgotPasswordCard } from './SignInFactorOneForgotPasswordCard';\nimport { SignInFactorOnePasskey } from './SignInFactorOnePasskey';\nimport { SignInFactorOnePasswordCard } from './SignInFactorOnePasswordCard';\nimport { SignInFactorOnePhoneCodeCard } from './SignInFactorOnePhoneCodeCard';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\nimport { determineStartingSignInFactor, factorHasLocalStrategy } from './utils';\n\nconst factorKey = (factor: SignInFactor | null | undefined) => {\n if (!factor) {\n return '';\n }\n let key = factor.strategy;\n if ('emailAddressId' in factor) {\n key += factor.emailAddressId;\n }\n if ('phoneNumberId' in factor) {\n key += factor.phoneNumberId;\n }\n if ('channel' in factor) {\n key += factor.channel;\n }\n return key;\n};\n\nfunction SignInFactorOneInternal(): JSX.Element {\n const { __internal_setActiveInProgress } = useClerk();\n const signIn = useCoreSignIn();\n const { preferredSignInStrategy } = useEnvironment().displayConfig;\n const availableFactors = signIn.supportedFirstFactors;\n const router = useRouter();\n const card = useCardState();\n const { supportedFirstFactors, firstFactorVerification } = useCoreSignIn();\n\n const lastPreparedFactorKeyRef = React.useRef('');\n const [{ currentFactor }, setFactor] = React.useState<{\n currentFactor: SignInFactor | undefined | null;\n prevCurrentFactor: SignInFactor | undefined | null;\n }>(() => {\n const factor = determineStartingSignInFactor(availableFactors, signIn.identifier, preferredSignInStrategy);\n if (\n factor?.strategy === 'phone_code' &&\n !!firstFactorVerification.channel &&\n firstFactorVerification.channel !== 'sms'\n ) {\n // This is only applied to phone_code with channel that is not 'sms'\n // because we don't want to send the channel parameter when its value is 'sms'\n factor.channel = firstFactorVerification.channel;\n }\n return {\n currentFactor: factor,\n prevCurrentFactor: undefined,\n };\n });\n\n const { hasAnyStrategy } = useAlternativeStrategies({\n filterOutFactor: currentFactor,\n supportedFirstFactors,\n });\n\n const [showAllStrategies, setShowAllStrategies] = React.useState<boolean>(\n () => !currentFactor || !factorHasLocalStrategy(currentFactor),\n );\n\n const resetPasswordFactor = useResetPasswordFactor();\n\n const [showForgotPasswordStrategies, setShowForgotPasswordStrategies] = React.useState(false);\n\n const [isPasswordPwned, setIsPasswordPwned] = React.useState(false);\n\n React.useEffect(() => {\n if (__internal_setActiveInProgress) {\n return;\n }\n\n // Handle the case where a user lands on alternative methods screen,\n // clicks a social button but then navigates back to sign in.\n // SignIn status resets to 'needs_identifier'\n if (signIn.status === 'needs_identifier' || signIn.status === null) {\n void router.navigate('../');\n }\n }, [__internal_setActiveInProgress]);\n\n if (!currentFactor) {\n return signIn.status ? (\n <ErrorCard\n cardTitle={localizationKeys('signIn.noAvailableMethods.title')}\n cardSubtitle={localizationKeys('signIn.noAvailableMethods.subtitle')}\n message={localizationKeys('signIn.noAvailableMethods.message')}\n />\n ) : (\n <LoadingCard />\n );\n }\n\n const toggleAllStrategies = hasAnyStrategy ? () => setShowAllStrategies(s => !s) : undefined;\n\n const toggleForgotPasswordStrategies = () => setShowForgotPasswordStrategies(s => !s);\n\n const handleFactorPrepare = () => {\n lastPreparedFactorKeyRef.current = factorKey(currentFactor);\n };\n const selectFactor = (factor: SignInFactor) => {\n setFactor(prev => ({\n currentFactor: factor,\n prevCurrentFactor: prev.currentFactor,\n }));\n };\n\n /**\n * Prompt to choose between a list of enterprise connections as supported first factors\n * @experimental\n */\n if (hasMultipleEnterpriseConnections(signIn.supportedFirstFactors)) {\n return <SignInFactorOneEnterpriseConnections />;\n }\n\n if (showAllStrategies || showForgotPasswordStrategies) {\n const canGoBack = factorHasLocalStrategy(currentFactor);\n\n const toggle = showAllStrategies ? toggleAllStrategies : toggleForgotPasswordStrategies;\n const backHandler = () => {\n card.setError(undefined);\n setIsPasswordPwned(false);\n toggle?.();\n };\n\n const mode = showForgotPasswordStrategies ? (isPasswordPwned ? 'pwned' : 'forgot') : 'default';\n\n return (\n <AlternativeMethods\n mode={mode}\n onBackLinkClick={canGoBack ? backHandler : undefined}\n onFactorSelected={f => {\n selectFactor(f);\n toggle?.();\n }}\n currentFactor={currentFactor}\n />\n );\n }\n\n if (!currentFactor) {\n return <LoadingCard />;\n }\n\n switch (currentFactor?.strategy) {\n case 'passkey':\n return (\n <SignInFactorOnePasskey\n onFactorPrepare={handleFactorPrepare}\n onShowAlternativeMethodsClick={toggleAllStrategies}\n />\n );\n case 'password':\n return (\n <SignInFactorOnePasswordCard\n onForgotPasswordMethodClick={resetPasswordFactor ? toggleForgotPasswordStrategies : toggleAllStrategies}\n onShowAlternativeMethodsClick={toggleAllStrategies}\n onPasswordPwned={() => {\n setIsPasswordPwned(true);\n toggleForgotPasswordStrategies();\n }}\n />\n );\n case 'email_code':\n return (\n <SignInFactorOneEmailCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n case 'phone_code':\n if (currentFactor.channel && currentFactor.channel !== 'sms') {\n // Alternative phone code provider (e.g. WhatsApp)\n return (\n <SignInFactorOneAlternativePhoneCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onChangePhoneCodeChannel={selectFactor}\n />\n );\n } else {\n // SMS\n return (\n <SignInFactorOnePhoneCodeCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n }\n\n case 'email_link':\n return (\n <SignInFactorOneEmailLinkCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n />\n );\n case 'reset_password_phone_code':\n return (\n <SignInFactorOneForgotPasswordCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n onBackLinkClicked={() => {\n setFactor(prev => ({\n currentFactor: prev.prevCurrentFactor,\n prevCurrentFactor: prev.currentFactor,\n }));\n toggleForgotPasswordStrategies();\n }}\n cardSubtitle={localizationKeys('signIn.forgotPassword.subtitle_phone')}\n />\n );\n\n case 'reset_password_email_code':\n return (\n <SignInFactorOneForgotPasswordCard\n factorAlreadyPrepared={lastPreparedFactorKeyRef.current === factorKey(currentFactor)}\n onFactorPrepare={handleFactorPrepare}\n factor={currentFactor}\n onShowAlternativeMethodsClicked={toggleAllStrategies}\n onBackLinkClicked={() => {\n setFactor(prev => ({\n currentFactor: prev.prevCurrentFactor,\n prevCurrentFactor: prev.currentFactor,\n }));\n toggleForgotPasswordStrategies();\n }}\n cardSubtitle={localizationKeys('signIn.forgotPassword.subtitle_email')}\n />\n );\n default:\n return <LoadingCard />;\n }\n}\n\nexport const SignInFactorOne = withRedirectToSignInTask(\n withRedirectToAfterSignIn(withCardStateProvider(SignInFactorOneInternal)),\n);\n"],"mappings":"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"}
@@ -18,7 +18,7 @@ import { HavingTrouble } from "./HavingTrouble.js";
18
18
  import { clerkInvalidFAPIResponse } from "@clerk/shared/internal/clerk-js/errors";
19
19
  import React from "react";
20
20
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
21
- import { isPasswordCompromisedError, isPasswordPwnedError, isUserLockedError } from "@clerk/shared/error";
21
+ import { isPasswordPwnedError, isUserLockedError } from "@clerk/shared/error";
22
22
  import { useClerk } from "@clerk/shared/react";
23
23
 
24
24
  //#region src/components/SignIn/SignInFactorOnePasswordCard.tsx
@@ -40,7 +40,7 @@ const usePasswordControl = (props) => {
40
40
  };
41
41
  };
42
42
  const SignInFactorOnePasswordCard = (props) => {
43
- const { onShowAlternativeMethodsClick, onPasswordError } = props;
43
+ const { onShowAlternativeMethodsClick, onPasswordPwned } = props;
44
44
  const passwordInputRef = React.useRef(null);
45
45
  const card = useCardState();
46
46
  const { setActive } = useClerk();
@@ -53,19 +53,19 @@ const SignInFactorOnePasswordCard = (props) => {
53
53
  const toggleHavingTrouble = React.useCallback(() => setShowHavingTrouble((s) => !s), [setShowHavingTrouble]);
54
54
  const clerk = useClerk();
55
55
  const goBack = () => {
56
- navigate("../");
56
+ return navigate("../");
57
57
  };
58
- const handlePasswordSubmit = (e) => {
58
+ const handlePasswordSubmit = async (e) => {
59
59
  e.preventDefault();
60
- signIn.attemptFirstFactor({
60
+ return signIn.attemptFirstFactor({
61
61
  strategy: "password",
62
62
  password: passwordControl.value
63
63
  }).then((res) => {
64
64
  switch (res.status) {
65
65
  case "complete": return setActive({
66
66
  session: res.createdSessionId,
67
- navigate: ({ session }) => {
68
- navigateOnSetActive({
67
+ navigate: async ({ session }) => {
68
+ await navigateOnSetActive({
69
69
  session,
70
70
  redirectUrl: afterSignInUrl
71
71
  });
@@ -76,23 +76,13 @@ const SignInFactorOnePasswordCard = (props) => {
76
76
  }
77
77
  }).catch((err) => {
78
78
  if (isUserLockedError(err)) return clerk.__internal_navigateWithError("..", err.errors[0]);
79
- if (onPasswordError) {
80
- if (isPasswordPwnedError(err)) {
81
- card.setError({
82
- ...err.errors[0],
83
- code: "form_password_pwned__sign_in"
84
- });
85
- onPasswordError("pwned");
86
- return;
87
- }
88
- if (isPasswordCompromisedError(err)) {
89
- card.setError({
90
- ...err.errors[0],
91
- code: "form_password_compromised__sign_in"
92
- });
93
- onPasswordError("compromised");
94
- return;
95
- }
79
+ if (isPasswordPwnedError(err) && onPasswordPwned) {
80
+ card.setError({
81
+ ...err.errors[0],
82
+ code: "form_password_pwned__sign_in"
83
+ });
84
+ onPasswordPwned();
85
+ return;
96
86
  }
97
87
  handleError(err, [passwordControl], card.setError);
98
88
  setTimeout(() => passwordInputRef.current?.focus(), 0);
@@ -1 +1 @@
1
- {"version":3,"file":"SignInFactorOnePasswordCard.js","names":["handlePasswordSubmit: React.FormEventHandler<HTMLFormElement>"],"sources":["../../../src/components/SignIn/SignInFactorOnePasswordCard.tsx"],"sourcesContent":["import { isPasswordCompromisedError, isPasswordPwnedError, isUserLockedError } from '@clerk/shared/error';\nimport { clerkInvalidFAPIResponse } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk } from '@clerk/shared/react';\nimport React from 'react';\n\nimport { Card } from '@/ui/elements/Card';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { Form } from '@/ui/elements/Form';\nimport { Header } from '@/ui/elements/Header';\nimport { IdentityPreview } from '@/ui/elements/IdentityPreview';\nimport { handleError } from '@/ui/utils/errorHandler';\nimport { useFormControl } from '@/ui/utils/useFormControl';\n\nimport { useCoreSignIn, useSignInContext } from '../../contexts';\nimport { descriptors, Flex, Flow, localizationKeys } from '../../customizables';\nimport { useSupportEmail } from '../../hooks/useSupportEmail';\nimport { useRouter } from '../../router/RouteContext';\nimport { HavingTrouble } from './HavingTrouble';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\n\nexport type PasswordErrorCode = 'compromised' | 'pwned';\n\ntype SignInFactorOnePasswordProps = {\n onForgotPasswordMethodClick: React.MouseEventHandler | undefined;\n onShowAlternativeMethodsClick: React.MouseEventHandler | undefined;\n onPasswordError?: (errorCode: PasswordErrorCode) => void;\n};\n\nconst usePasswordControl = (props: SignInFactorOnePasswordProps) => {\n const { onForgotPasswordMethodClick, onShowAlternativeMethodsClick } = props;\n const resetPasswordFactor = useResetPasswordFactor();\n\n const passwordControl = useFormControl('password', '', {\n type: 'password',\n label: localizationKeys('formFieldLabel__password'),\n placeholder: localizationKeys('formFieldInputPlaceholder__password'),\n });\n\n return {\n ...passwordControl,\n props: {\n ...passwordControl.props,\n actionLabel:\n resetPasswordFactor || onShowAlternativeMethodsClick ? localizationKeys('formFieldAction__forgotPassword') : '',\n onActionClicked: onForgotPasswordMethodClick\n ? onForgotPasswordMethodClick\n : onShowAlternativeMethodsClick\n ? onShowAlternativeMethodsClick\n : () => null,\n },\n };\n};\n\nexport const SignInFactorOnePasswordCard = (props: SignInFactorOnePasswordProps) => {\n const { onShowAlternativeMethodsClick, onPasswordError } = props;\n const passwordInputRef = React.useRef<HTMLInputElement>(null);\n const card = useCardState();\n const { setActive } = useClerk();\n const signIn = useCoreSignIn();\n const { afterSignInUrl, navigateOnSetActive } = useSignInContext();\n const supportEmail = useSupportEmail();\n const passwordControl = usePasswordControl(props);\n const { navigate } = useRouter();\n const [showHavingTrouble, setShowHavingTrouble] = React.useState(false);\n const toggleHavingTrouble = React.useCallback(() => setShowHavingTrouble(s => !s), [setShowHavingTrouble]);\n const clerk = useClerk();\n\n const goBack = () => {\n void navigate('../');\n };\n\n const handlePasswordSubmit: React.FormEventHandler<HTMLFormElement> = e => {\n e.preventDefault();\n void signIn\n .attemptFirstFactor({ strategy: 'password', password: passwordControl.value })\n .then(res => {\n switch (res.status) {\n case 'complete':\n return setActive({\n session: res.createdSessionId,\n navigate: ({ session }) => {\n void navigateOnSetActive({ session, redirectUrl: afterSignInUrl });\n },\n });\n case 'needs_second_factor':\n return navigate('../factor-two');\n default:\n return console.error(clerkInvalidFAPIResponse(res.status, supportEmail));\n }\n })\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n if (onPasswordError) {\n if (isPasswordPwnedError(err)) {\n card.setError({ ...err.errors[0], code: 'form_password_pwned__sign_in' });\n onPasswordError('pwned');\n return;\n }\n\n if (isPasswordCompromisedError(err)) {\n card.setError({ ...err.errors[0], code: 'form_password_compromised__sign_in' });\n onPasswordError('compromised');\n return;\n }\n }\n\n handleError(err, [passwordControl], card.setError);\n\n setTimeout(() => passwordInputRef.current?.focus(), 0);\n });\n };\n\n if (showHavingTrouble) {\n return <HavingTrouble onBackLinkClick={toggleHavingTrouble} />;\n }\n\n return (\n <Flow.Part part='password'>\n <Card.Root>\n <Card.Content>\n <Header.Root showLogo>\n <Header.Title localizationKey={localizationKeys('signIn.password.title')} />\n <Header.Subtitle localizationKey={localizationKeys('signIn.password.subtitle')} />\n <IdentityPreview\n identifier={signIn.identifier}\n avatarUrl={signIn.userData.imageUrl}\n onClick={goBack}\n />\n </Header.Root>\n <Card.Alert>{card.error}</Card.Alert>\n {/*TODO: extract main in its own component */}\n <Flex\n direction='col'\n elementDescriptor={descriptors.main}\n gap={4}\n >\n <Form.Root\n onSubmit={handlePasswordSubmit}\n gap={8}\n >\n {/* For password managers */}\n <input\n readOnly\n id='identifier-field'\n name='identifier'\n value={signIn.identifier || ''}\n style={{ display: 'none' }}\n />\n <Form.ControlRow elementId={passwordControl.id}>\n <Form.PasswordInput\n {...passwordControl.props}\n ref={passwordInputRef}\n autoFocus\n />\n </Form.ControlRow>\n <Form.SubmitButton hasArrow />\n </Form.Root>\n <Card.Action elementId={onShowAlternativeMethodsClick ? 'alternativeMethods' : 'havingTrouble'}>\n <Card.ActionLink\n localizationKey={localizationKeys(\n onShowAlternativeMethodsClick ? 'signIn.password.actionLink' : 'signIn.alternativeMethods.actionLink',\n )}\n onClick={onShowAlternativeMethodsClick || toggleHavingTrouble}\n />\n </Card.Action>\n </Flex>\n </Card.Content>\n\n <Card.Footer />\n </Card.Root>\n </Flow.Part>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SignInFactorOnePasswordCard.js","names":["handlePasswordSubmit: React.FormEventHandler"],"sources":["../../../src/components/SignIn/SignInFactorOnePasswordCard.tsx"],"sourcesContent":["import { isPasswordPwnedError, isUserLockedError } from '@clerk/shared/error';\nimport { clerkInvalidFAPIResponse } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk } from '@clerk/shared/react';\nimport React from 'react';\n\nimport { Card } from '@/ui/elements/Card';\nimport { useCardState } from '@/ui/elements/contexts';\nimport { Form } from '@/ui/elements/Form';\nimport { Header } from '@/ui/elements/Header';\nimport { IdentityPreview } from '@/ui/elements/IdentityPreview';\nimport { handleError } from '@/ui/utils/errorHandler';\nimport { useFormControl } from '@/ui/utils/useFormControl';\n\nimport { useCoreSignIn, useSignInContext } from '../../contexts';\nimport { descriptors, Flex, Flow, localizationKeys } from '../../customizables';\nimport { useSupportEmail } from '../../hooks/useSupportEmail';\nimport { useRouter } from '../../router/RouteContext';\nimport { HavingTrouble } from './HavingTrouble';\nimport { useResetPasswordFactor } from './useResetPasswordFactor';\n\ntype SignInFactorOnePasswordProps = {\n onForgotPasswordMethodClick: React.MouseEventHandler | undefined;\n onShowAlternativeMethodsClick: React.MouseEventHandler | undefined;\n onPasswordPwned?: () => void;\n};\n\nconst usePasswordControl = (props: SignInFactorOnePasswordProps) => {\n const { onForgotPasswordMethodClick, onShowAlternativeMethodsClick } = props;\n const resetPasswordFactor = useResetPasswordFactor();\n\n const passwordControl = useFormControl('password', '', {\n type: 'password',\n label: localizationKeys('formFieldLabel__password'),\n placeholder: localizationKeys('formFieldInputPlaceholder__password'),\n });\n\n return {\n ...passwordControl,\n props: {\n ...passwordControl.props,\n actionLabel:\n resetPasswordFactor || onShowAlternativeMethodsClick ? localizationKeys('formFieldAction__forgotPassword') : '',\n onActionClicked: onForgotPasswordMethodClick\n ? onForgotPasswordMethodClick\n : onShowAlternativeMethodsClick\n ? onShowAlternativeMethodsClick\n : () => null,\n },\n };\n};\n\nexport const SignInFactorOnePasswordCard = (props: SignInFactorOnePasswordProps) => {\n const { onShowAlternativeMethodsClick, onPasswordPwned } = props;\n const passwordInputRef = React.useRef<HTMLInputElement>(null);\n const card = useCardState();\n const { setActive } = useClerk();\n const signIn = useCoreSignIn();\n const { afterSignInUrl, navigateOnSetActive } = useSignInContext();\n const supportEmail = useSupportEmail();\n const passwordControl = usePasswordControl(props);\n const { navigate } = useRouter();\n const [showHavingTrouble, setShowHavingTrouble] = React.useState(false);\n const toggleHavingTrouble = React.useCallback(() => setShowHavingTrouble(s => !s), [setShowHavingTrouble]);\n const clerk = useClerk();\n\n const goBack = () => {\n return navigate('../');\n };\n\n const handlePasswordSubmit: React.FormEventHandler = async e => {\n e.preventDefault();\n return signIn\n .attemptFirstFactor({ strategy: 'password', password: passwordControl.value })\n .then(res => {\n switch (res.status) {\n case 'complete':\n return setActive({\n session: res.createdSessionId,\n navigate: async ({ session }) => {\n await navigateOnSetActive({ session, redirectUrl: afterSignInUrl });\n },\n });\n case 'needs_second_factor':\n return navigate('../factor-two');\n default:\n return console.error(clerkInvalidFAPIResponse(res.status, supportEmail));\n }\n })\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n if (isPasswordPwnedError(err) && onPasswordPwned) {\n card.setError({ ...err.errors[0], code: 'form_password_pwned__sign_in' });\n onPasswordPwned();\n return;\n }\n\n handleError(err, [passwordControl], card.setError);\n\n setTimeout(() => passwordInputRef.current?.focus(), 0);\n });\n };\n\n if (showHavingTrouble) {\n return <HavingTrouble onBackLinkClick={toggleHavingTrouble} />;\n }\n\n return (\n <Flow.Part part='password'>\n <Card.Root>\n <Card.Content>\n <Header.Root showLogo>\n <Header.Title localizationKey={localizationKeys('signIn.password.title')} />\n <Header.Subtitle localizationKey={localizationKeys('signIn.password.subtitle')} />\n <IdentityPreview\n identifier={signIn.identifier}\n avatarUrl={signIn.userData.imageUrl}\n onClick={goBack}\n />\n </Header.Root>\n <Card.Alert>{card.error}</Card.Alert>\n {/*TODO: extract main in its own component */}\n <Flex\n direction='col'\n elementDescriptor={descriptors.main}\n gap={4}\n >\n <Form.Root\n onSubmit={handlePasswordSubmit}\n gap={8}\n >\n {/* For password managers */}\n <input\n readOnly\n id='identifier-field'\n name='identifier'\n value={signIn.identifier || ''}\n style={{ display: 'none' }}\n />\n <Form.ControlRow elementId={passwordControl.id}>\n <Form.PasswordInput\n {...passwordControl.props}\n ref={passwordInputRef}\n autoFocus\n />\n </Form.ControlRow>\n <Form.SubmitButton hasArrow />\n </Form.Root>\n <Card.Action elementId={onShowAlternativeMethodsClick ? 'alternativeMethods' : 'havingTrouble'}>\n <Card.ActionLink\n localizationKey={localizationKeys(\n onShowAlternativeMethodsClick ? 'signIn.password.actionLink' : 'signIn.alternativeMethods.actionLink',\n )}\n onClick={onShowAlternativeMethodsClick || toggleHavingTrouble}\n />\n </Card.Action>\n </Flex>\n </Card.Content>\n\n <Card.Footer />\n </Card.Root>\n </Flow.Part>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,sBAAsB,UAAwC;CAClE,MAAM,EAAE,6BAA6B,kCAAkC;CACvE,MAAM,sBAAsB,wBAAwB;CAEpD,MAAM,kBAAkB,eAAe,YAAY,IAAI;EACrD,MAAM;EACN,OAAO,iBAAiB,2BAA2B;EACnD,aAAa,iBAAiB,sCAAsC;EACrE,CAAC;AAEF,QAAO;EACL,GAAG;EACH,OAAO;GACL,GAAG,gBAAgB;GACnB,aACE,uBAAuB,gCAAgC,iBAAiB,kCAAkC,GAAG;GAC/G,iBAAiB,8BACb,8BACA,gCACE,sCACM;GACb;EACF;;AAGH,MAAa,+BAA+B,UAAwC;CAClF,MAAM,EAAE,+BAA+B,oBAAoB;CAC3D,MAAM,mBAAmB,MAAM,OAAyB,KAAK;CAC7D,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,cAAc,UAAU;CAChC,MAAM,SAAS,eAAe;CAC9B,MAAM,EAAE,gBAAgB,wBAAwB,kBAAkB;CAClE,MAAM,eAAe,iBAAiB;CACtC,MAAM,kBAAkB,mBAAmB,MAAM;CACjD,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,CAAC,mBAAmB,wBAAwB,MAAM,SAAS,MAAM;CACvE,MAAM,sBAAsB,MAAM,kBAAkB,sBAAqB,MAAK,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;CAC1G,MAAM,QAAQ,UAAU;CAExB,MAAM,eAAe;AACnB,SAAO,SAAS,MAAM;;CAGxB,MAAMA,uBAA+C,OAAM,MAAK;AAC9D,IAAE,gBAAgB;AAClB,SAAO,OACJ,mBAAmB;GAAE,UAAU;GAAY,UAAU,gBAAgB;GAAO,CAAC,CAC7E,MAAK,QAAO;AACX,WAAQ,IAAI,QAAZ;IACE,KAAK,WACH,QAAO,UAAU;KACf,SAAS,IAAI;KACb,UAAU,OAAO,EAAE,cAAc;AAC/B,YAAM,oBAAoB;OAAE;OAAS,aAAa;OAAgB,CAAC;;KAEtE,CAAC;IACJ,KAAK,sBACH,QAAO,SAAS,gBAAgB;IAClC,QACE,QAAO,QAAQ,MAAM,yBAAyB,IAAI,QAAQ,aAAa,CAAC;;IAE5E,CACD,OAAM,QAAO;AACZ,OAAI,kBAAkB,IAAI,CAExB,QAAO,MAAM,6BAA6B,MAAM,IAAI,OAAO,GAAG;AAGhE,OAAI,qBAAqB,IAAI,IAAI,iBAAiB;AAChD,SAAK,SAAS;KAAE,GAAG,IAAI,OAAO;KAAI,MAAM;KAAgC,CAAC;AACzE,qBAAiB;AACjB;;AAGF,eAAY,KAAK,CAAC,gBAAgB,EAAE,KAAK,SAAS;AAElD,oBAAiB,iBAAiB,SAAS,OAAO,EAAE,EAAE;IACtD;;AAGN,KAAI,kBACF,QAAO,oBAAC,iBAAc,iBAAiB,sBAAuB;AAGhE,QACE,oBAAC,KAAK;EAAK,MAAK;YACd,qBAAC,KAAK,mBACJ,qBAAC,KAAK;GACJ,qBAAC,OAAO;IAAK;;KACX,oBAAC,OAAO,SAAM,iBAAiB,iBAAiB,wBAAwB,GAAI;KAC5E,oBAAC,OAAO,YAAS,iBAAiB,iBAAiB,2BAA2B,GAAI;KAClF,oBAAC;MACC,YAAY,OAAO;MACnB,WAAW,OAAO,SAAS;MAC3B,SAAS;OACT;;KACU;GACd,oBAAC,KAAK,mBAAO,KAAK,QAAmB;GAErC,qBAAC;IACC,WAAU;IACV,mBAAmB,YAAY;IAC/B,KAAK;eAEL,qBAAC,KAAK;KACJ,UAAU;KACV,KAAK;;MAGL,oBAAC;OACC;OACA,IAAG;OACH,MAAK;OACL,OAAO,OAAO,cAAc;OAC5B,OAAO,EAAE,SAAS,QAAQ;QAC1B;MACF,oBAAC,KAAK;OAAW,WAAW,gBAAgB;iBAC1C,oBAAC,KAAK;QACJ,GAAI,gBAAgB;QACpB,KAAK;QACL;SACA;QACc;MAClB,oBAAC,KAAK,gBAAa,iBAAW;;MACpB,EACZ,oBAAC,KAAK;KAAO,WAAW,gCAAgC,uBAAuB;eAC7E,oBAAC,KAAK;MACJ,iBAAiB,iBACf,gCAAgC,+BAA+B,uCAChE;MACD,SAAS,iCAAiC;OAC1C;MACU;KACT;MACM,EAEf,oBAAC,KAAK,WAAS,IACL;GACF"}
@@ -1,5 +1,4 @@
1
1
  import { useRouter } from "../../router/RouteContext.js";
2
- import { useEnvironment } from "../../contexts/EnvironmentContext.js";
3
2
  import { localizationKeys } from "../../localization/localizationKeys.js";
4
3
  import { useSignInContext } from "../../contexts/components/SignIn.js";
5
4
  import { useCoreSignIn } from "../../contexts/CoreClientContext.js";
@@ -10,15 +9,15 @@ import { useSupportEmail } from "../../hooks/useSupportEmail.js";
10
9
  import { isResetPasswordStrategy } from "./utils.js";
11
10
  import { VerificationCodeCard } from "../../elements/VerificationCodeCard.js";
12
11
  import { clerkInvalidFAPIResponse } from "@clerk/shared/internal/clerk-js/errors";
13
- import React, { useMemo } from "react";
12
+ import React from "react";
14
13
  import { jsx } from "@emotion/react/jsx-runtime";
15
14
  import { isUserLockedError } from "@clerk/shared/error";
16
15
  import { useClerk } from "@clerk/shared/react";
17
16
 
18
17
  //#region src/components/SignIn/SignInFactorTwoCodeForm.tsx
19
18
  const isResettingPassword = (resource) => isResetPasswordStrategy(resource.firstFactorVerification?.strategy) && resource.firstFactorVerification?.status === "verified";
19
+ const isNewDevice = (resource) => resource.clientTrustState === "new";
20
20
  const SignInFactorTwoCodeForm = (props) => {
21
- const env = useEnvironment();
22
21
  const signIn = useCoreSignIn();
23
22
  const card = useCardState();
24
23
  const { afterSignInUrl, navigateOnSetActive } = useSignInContext();
@@ -26,10 +25,6 @@ const SignInFactorTwoCodeForm = (props) => {
26
25
  const { navigate } = useRouter();
27
26
  const supportEmail = useSupportEmail();
28
27
  const clerk = useClerk();
29
- const showNewDeviceVerificationNotice = useMemo(() => {
30
- const anyAttributeUsedForSecondFactor = Object.values(env.userSettings.attributes).some((attr) => attr.used_for_second_factor);
31
- return signIn.clientTrustState === "new" && !anyAttributeUsedForSecondFactor;
32
- }, [signIn.clientTrustState, env.userSettings.attributes]);
33
28
  React.useEffect(() => {
34
29
  if (props.factorAlreadyPrepared) return;
35
30
  prepare?.();
@@ -72,7 +67,7 @@ const SignInFactorTwoCodeForm = (props) => {
72
67
  return /* @__PURE__ */ jsx(VerificationCodeCard, {
73
68
  cardTitle: props.cardTitle,
74
69
  cardSubtitle: isResettingPassword(signIn) ? localizationKeys("signIn.forgotPassword.subtitle") : props.cardSubtitle,
75
- cardNotice: showNewDeviceVerificationNotice ? localizationKeys("signIn.newDeviceVerificationNotice") : void 0,
70
+ cardNotice: isNewDevice(signIn) ? localizationKeys("signIn.newDeviceVerificationNotice") : void 0,
76
71
  resendButton: props.resendButton,
77
72
  inputLabel: props.inputLabel,
78
73
  onCodeEntryFinishedAction: action,
@@ -1 +1 @@
1
- {"version":3,"file":"SignInFactorTwoCodeForm.js","names":["action: VerificationCodeCardProps['onCodeEntryFinishedAction']"],"sources":["../../../src/components/SignIn/SignInFactorTwoCodeForm.tsx"],"sourcesContent":["import { isUserLockedError } from '@clerk/shared/error';\nimport { clerkInvalidFAPIResponse } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk } from '@clerk/shared/react';\nimport type { EmailCodeFactor, PhoneCodeFactor, SignInResource, TOTPFactor } from '@clerk/shared/types';\nimport React, { useMemo } from 'react';\n\nimport { useCardState } from '@/ui/elements/contexts';\nimport type { VerificationCodeCardProps } from '@/ui/elements/VerificationCodeCard';\nimport { VerificationCodeCard } from '@/ui/elements/VerificationCodeCard';\nimport { handleError } from '@/ui/utils/errorHandler';\n\nimport { useCoreSignIn, useEnvironment, useSignInContext } from '../../contexts';\nimport { localizationKeys, Text } from '../../customizables';\nimport { useSupportEmail } from '../../hooks/useSupportEmail';\nimport type { LocalizationKey } from '../../localization';\nimport { useRouter } from '../../router';\nimport { isResetPasswordStrategy } from './utils';\n\nexport type SignInFactorTwoCodeCard = Pick<VerificationCodeCardProps, 'onShowAlternativeMethodsClicked'> & {\n factor: EmailCodeFactor | PhoneCodeFactor | TOTPFactor;\n factorAlreadyPrepared: boolean;\n onFactorPrepare: () => void;\n prepare?: () => Promise<SignInResource>;\n};\n\ntype SignInFactorTwoCodeFormProps = SignInFactorTwoCodeCard & {\n cardTitle: LocalizationKey;\n cardSubtitle: LocalizationKey;\n inputLabel: LocalizationKey;\n resendButton?: LocalizationKey;\n};\n\nconst isResettingPassword = (resource: SignInResource) =>\n isResetPasswordStrategy(resource.firstFactorVerification?.strategy) &&\n resource.firstFactorVerification?.status === 'verified';\n\nexport const SignInFactorTwoCodeForm = (props: SignInFactorTwoCodeFormProps) => {\n const env = useEnvironment();\n const signIn = useCoreSignIn();\n const card = useCardState();\n const { afterSignInUrl, navigateOnSetActive } = useSignInContext();\n const { setActive } = useClerk();\n const { navigate } = useRouter();\n const supportEmail = useSupportEmail();\n const clerk = useClerk();\n\n // Only show the new device verification notice if the user is new\n // and no attributes are explicitly used for second factor.\n const showNewDeviceVerificationNotice = useMemo(() => {\n const anyAttributeUsedForSecondFactor = Object.values(env.userSettings.attributes).some(\n attr => attr.used_for_second_factor,\n );\n return signIn.clientTrustState === 'new' && !anyAttributeUsedForSecondFactor;\n }, [signIn.clientTrustState, env.userSettings.attributes]);\n\n React.useEffect(() => {\n if (props.factorAlreadyPrepared) {\n return;\n }\n\n void prepare?.();\n }, []);\n\n const prepare = props.prepare\n ? () => {\n return props\n .prepare?.()\n .then(() => props.onFactorPrepare())\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n handleError(err, [], card.setError);\n });\n }\n : undefined;\n\n const action: VerificationCodeCardProps['onCodeEntryFinishedAction'] = (code, resolve, reject) => {\n signIn\n .attemptSecondFactor({ strategy: props.factor.strategy, code })\n .then(async res => {\n await resolve();\n switch (res.status) {\n case 'complete':\n if (isResettingPassword(res) && res.createdSessionId) {\n const queryParams = new URLSearchParams();\n queryParams.set('createdSessionId', res.createdSessionId);\n return navigate(`../reset-password-success?${queryParams.toString()}`);\n }\n return setActive({\n session: res.createdSessionId,\n navigate: async ({ session }) => {\n await navigateOnSetActive({ session, redirectUrl: afterSignInUrl });\n },\n });\n default:\n return console.error(clerkInvalidFAPIResponse(res.status, supportEmail));\n }\n })\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n return reject(err);\n });\n };\n\n return (\n <VerificationCodeCard\n cardTitle={props.cardTitle}\n cardSubtitle={\n isResettingPassword(signIn) ? localizationKeys('signIn.forgotPassword.subtitle') : props.cardSubtitle\n }\n cardNotice={showNewDeviceVerificationNotice ? localizationKeys('signIn.newDeviceVerificationNotice') : undefined}\n resendButton={props.resendButton}\n inputLabel={props.inputLabel}\n onCodeEntryFinishedAction={action}\n onResendCodeClicked={prepare}\n safeIdentifier={'safeIdentifier' in props.factor ? props.factor.safeIdentifier : undefined}\n profileImageUrl={signIn.userData.imageUrl}\n onShowAlternativeMethodsClicked={props.onShowAlternativeMethodsClicked}\n >\n {isResettingPassword(signIn) && (\n <Text\n localizationKey={localizationKeys('signIn.resetPasswordMfa.detailsLabel')}\n colorScheme='secondary'\n />\n )}\n </VerificationCodeCard>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,MAAM,uBAAuB,aAC3B,wBAAwB,SAAS,yBAAyB,SAAS,IACnE,SAAS,yBAAyB,WAAW;AAE/C,MAAa,2BAA2B,UAAwC;CAC9E,MAAM,MAAM,gBAAgB;CAC5B,MAAM,SAAS,eAAe;CAC9B,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,gBAAgB,wBAAwB,kBAAkB;CAClE,MAAM,EAAE,cAAc,UAAU;CAChC,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,eAAe,iBAAiB;CACtC,MAAM,QAAQ,UAAU;CAIxB,MAAM,kCAAkC,cAAc;EACpD,MAAM,kCAAkC,OAAO,OAAO,IAAI,aAAa,WAAW,CAAC,MACjF,SAAQ,KAAK,uBACd;AACD,SAAO,OAAO,qBAAqB,SAAS,CAAC;IAC5C,CAAC,OAAO,kBAAkB,IAAI,aAAa,WAAW,CAAC;AAE1D,OAAM,gBAAgB;AACpB,MAAI,MAAM,sBACR;AAGF,EAAK,WAAW;IACf,EAAE,CAAC;CAEN,MAAM,UAAU,MAAM,gBACZ;AACJ,SAAO,MACJ,WAAW,CACX,WAAW,MAAM,iBAAiB,CAAC,CACnC,OAAM,QAAO;AACZ,OAAI,kBAAkB,IAAI,CAExB,QAAO,MAAM,6BAA6B,MAAM,IAAI,OAAO,GAAG;AAGhE,eAAY,KAAK,EAAE,EAAE,KAAK,SAAS;IACnC;KAEN;CAEJ,MAAMA,UAAkE,MAAM,SAAS,WAAW;AAChG,SACG,oBAAoB;GAAE,UAAU,MAAM,OAAO;GAAU;GAAM,CAAC,CAC9D,KAAK,OAAM,QAAO;AACjB,SAAM,SAAS;AACf,WAAQ,IAAI,QAAZ;IACE,KAAK;AACH,SAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;MACpD,MAAM,cAAc,IAAI,iBAAiB;AACzC,kBAAY,IAAI,oBAAoB,IAAI,iBAAiB;AACzD,aAAO,SAAS,6BAA6B,YAAY,UAAU,GAAG;;AAExE,YAAO,UAAU;MACf,SAAS,IAAI;MACb,UAAU,OAAO,EAAE,cAAc;AAC/B,aAAM,oBAAoB;QAAE;QAAS,aAAa;QAAgB,CAAC;;MAEtE,CAAC;IACJ,QACE,QAAO,QAAQ,MAAM,yBAAyB,IAAI,QAAQ,aAAa,CAAC;;IAE5E,CACD,OAAM,QAAO;AACZ,OAAI,kBAAkB,IAAI,CAExB,QAAO,MAAM,6BAA6B,MAAM,IAAI,OAAO,GAAG;AAGhE,UAAO,OAAO,IAAI;IAClB;;AAGN,QACE,oBAAC;EACC,WAAW,MAAM;EACjB,cACE,oBAAoB,OAAO,GAAG,iBAAiB,iCAAiC,GAAG,MAAM;EAE3F,YAAY,kCAAkC,iBAAiB,qCAAqC,GAAG;EACvG,cAAc,MAAM;EACpB,YAAY,MAAM;EAClB,2BAA2B;EAC3B,qBAAqB;EACrB,gBAAgB,oBAAoB,MAAM,SAAS,MAAM,OAAO,iBAAiB;EACjF,iBAAiB,OAAO,SAAS;EACjC,iCAAiC,MAAM;YAEtC,oBAAoB,OAAO,IAC1B,oBAAC;GACC,iBAAiB,iBAAiB,uCAAuC;GACzE,aAAY;IACZ;GAEiB"}
1
+ {"version":3,"file":"SignInFactorTwoCodeForm.js","names":["action: VerificationCodeCardProps['onCodeEntryFinishedAction']"],"sources":["../../../src/components/SignIn/SignInFactorTwoCodeForm.tsx"],"sourcesContent":["import { isUserLockedError } from '@clerk/shared/error';\nimport { clerkInvalidFAPIResponse } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk } from '@clerk/shared/react';\nimport type { EmailCodeFactor, PhoneCodeFactor, SignInResource, TOTPFactor } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useCardState } from '@/ui/elements/contexts';\nimport type { VerificationCodeCardProps } from '@/ui/elements/VerificationCodeCard';\nimport { VerificationCodeCard } from '@/ui/elements/VerificationCodeCard';\nimport { handleError } from '@/ui/utils/errorHandler';\n\nimport { useCoreSignIn, useSignInContext } from '../../contexts';\nimport { localizationKeys, Text } from '../../customizables';\nimport { useSupportEmail } from '../../hooks/useSupportEmail';\nimport type { LocalizationKey } from '../../localization';\nimport { useRouter } from '../../router';\nimport { isResetPasswordStrategy } from './utils';\n\nexport type SignInFactorTwoCodeCard = Pick<VerificationCodeCardProps, 'onShowAlternativeMethodsClicked'> & {\n factor: EmailCodeFactor | PhoneCodeFactor | TOTPFactor;\n factorAlreadyPrepared: boolean;\n onFactorPrepare: () => void;\n prepare?: () => Promise<SignInResource>;\n};\n\ntype SignInFactorTwoCodeFormProps = SignInFactorTwoCodeCard & {\n cardTitle: LocalizationKey;\n cardSubtitle: LocalizationKey;\n inputLabel: LocalizationKey;\n resendButton?: LocalizationKey;\n};\n\nconst isResettingPassword = (resource: SignInResource) =>\n isResetPasswordStrategy(resource.firstFactorVerification?.strategy) &&\n resource.firstFactorVerification?.status === 'verified';\n\nconst isNewDevice = (resource: SignInResource) => resource.clientTrustState === 'new';\n\nexport const SignInFactorTwoCodeForm = (props: SignInFactorTwoCodeFormProps) => {\n const signIn = useCoreSignIn();\n const card = useCardState();\n const { afterSignInUrl, navigateOnSetActive } = useSignInContext();\n const { setActive } = useClerk();\n const { navigate } = useRouter();\n const supportEmail = useSupportEmail();\n const clerk = useClerk();\n\n React.useEffect(() => {\n if (props.factorAlreadyPrepared) {\n return;\n }\n\n void prepare?.();\n }, []);\n\n const prepare = props.prepare\n ? () => {\n return props\n .prepare?.()\n .then(() => props.onFactorPrepare())\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n handleError(err, [], card.setError);\n });\n }\n : undefined;\n\n const action: VerificationCodeCardProps['onCodeEntryFinishedAction'] = (code, resolve, reject) => {\n signIn\n .attemptSecondFactor({ strategy: props.factor.strategy, code })\n .then(async res => {\n await resolve();\n switch (res.status) {\n case 'complete':\n if (isResettingPassword(res) && res.createdSessionId) {\n const queryParams = new URLSearchParams();\n queryParams.set('createdSessionId', res.createdSessionId);\n return navigate(`../reset-password-success?${queryParams.toString()}`);\n }\n return setActive({\n session: res.createdSessionId,\n navigate: async ({ session }) => {\n await navigateOnSetActive({ session, redirectUrl: afterSignInUrl });\n },\n });\n default:\n return console.error(clerkInvalidFAPIResponse(res.status, supportEmail));\n }\n })\n .catch(err => {\n if (isUserLockedError(err)) {\n // @ts-expect-error -- private method for the time being\n return clerk.__internal_navigateWithError('..', err.errors[0]);\n }\n\n return reject(err);\n });\n };\n\n return (\n <VerificationCodeCard\n cardTitle={props.cardTitle}\n cardSubtitle={\n isResettingPassword(signIn) ? localizationKeys('signIn.forgotPassword.subtitle') : props.cardSubtitle\n }\n cardNotice={isNewDevice(signIn) ? localizationKeys('signIn.newDeviceVerificationNotice') : undefined}\n resendButton={props.resendButton}\n inputLabel={props.inputLabel}\n onCodeEntryFinishedAction={action}\n onResendCodeClicked={prepare}\n safeIdentifier={'safeIdentifier' in props.factor ? props.factor.safeIdentifier : undefined}\n profileImageUrl={signIn.userData.imageUrl}\n onShowAlternativeMethodsClicked={props.onShowAlternativeMethodsClicked}\n >\n {isResettingPassword(signIn) && (\n <Text\n localizationKey={localizationKeys('signIn.resetPasswordMfa.detailsLabel')}\n colorScheme='secondary'\n />\n )}\n </VerificationCodeCard>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAgCA,MAAM,uBAAuB,aAC3B,wBAAwB,SAAS,yBAAyB,SAAS,IACnE,SAAS,yBAAyB,WAAW;AAE/C,MAAM,eAAe,aAA6B,SAAS,qBAAqB;AAEhF,MAAa,2BAA2B,UAAwC;CAC9E,MAAM,SAAS,eAAe;CAC9B,MAAM,OAAO,cAAc;CAC3B,MAAM,EAAE,gBAAgB,wBAAwB,kBAAkB;CAClE,MAAM,EAAE,cAAc,UAAU;CAChC,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,eAAe,iBAAiB;CACtC,MAAM,QAAQ,UAAU;AAExB,OAAM,gBAAgB;AACpB,MAAI,MAAM,sBACR;AAGF,EAAK,WAAW;IACf,EAAE,CAAC;CAEN,MAAM,UAAU,MAAM,gBACZ;AACJ,SAAO,MACJ,WAAW,CACX,WAAW,MAAM,iBAAiB,CAAC,CACnC,OAAM,QAAO;AACZ,OAAI,kBAAkB,IAAI,CAExB,QAAO,MAAM,6BAA6B,MAAM,IAAI,OAAO,GAAG;AAGhE,eAAY,KAAK,EAAE,EAAE,KAAK,SAAS;IACnC;KAEN;CAEJ,MAAMA,UAAkE,MAAM,SAAS,WAAW;AAChG,SACG,oBAAoB;GAAE,UAAU,MAAM,OAAO;GAAU;GAAM,CAAC,CAC9D,KAAK,OAAM,QAAO;AACjB,SAAM,SAAS;AACf,WAAQ,IAAI,QAAZ;IACE,KAAK;AACH,SAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;MACpD,MAAM,cAAc,IAAI,iBAAiB;AACzC,kBAAY,IAAI,oBAAoB,IAAI,iBAAiB;AACzD,aAAO,SAAS,6BAA6B,YAAY,UAAU,GAAG;;AAExE,YAAO,UAAU;MACf,SAAS,IAAI;MACb,UAAU,OAAO,EAAE,cAAc;AAC/B,aAAM,oBAAoB;QAAE;QAAS,aAAa;QAAgB,CAAC;;MAEtE,CAAC;IACJ,QACE,QAAO,QAAQ,MAAM,yBAAyB,IAAI,QAAQ,aAAa,CAAC;;IAE5E,CACD,OAAM,QAAO;AACZ,OAAI,kBAAkB,IAAI,CAExB,QAAO,MAAM,6BAA6B,MAAM,IAAI,OAAO,GAAG;AAGhE,UAAO,OAAO,IAAI;IAClB;;AAGN,QACE,oBAAC;EACC,WAAW,MAAM;EACjB,cACE,oBAAoB,OAAO,GAAG,iBAAiB,iCAAiC,GAAG,MAAM;EAE3F,YAAY,YAAY,OAAO,GAAG,iBAAiB,qCAAqC,GAAG;EAC3F,cAAc,MAAM;EACpB,YAAY,MAAM;EAClB,2BAA2B;EAC3B,qBAAqB;EACrB,gBAAgB,oBAAoB,MAAM,SAAS,MAAM,OAAO,iBAAiB;EACjF,iBAAiB,OAAO,SAAS;EACjC,iCAAiC,MAAM;YAEtC,oBAAoB,OAAO,IAC1B,oBAAC;GACC,iBAAiB,iBAAiB,uCAAuC;GACzE,aAAY;IACZ;GAEiB"}