@clerk/ui 1.37.0-snapshot.v20260929195855 → 1.37.0

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 (219) hide show
  1. package/dist/ClerkUI.js +2 -2
  2. package/dist/Components.d.ts +3 -4
  3. package/dist/Components.js +2 -26
  4. package/dist/Components.js.map +1 -1
  5. package/dist/components/GoogleOneTap/one-tap-start.js +0 -3
  6. package/dist/components/GoogleOneTap/one-tap-start.js.map +1 -1
  7. package/dist/components/SignIn/SignInProtectCheck.js +2 -2
  8. package/dist/components/SignIn/index.js +0 -3
  9. package/dist/components/SignIn/index.js.map +1 -1
  10. package/dist/components/SignUp/index.js +0 -2
  11. package/dist/components/SignUp/index.js.map +1 -1
  12. package/dist/elements/contexts/index.js.map +1 -1
  13. package/dist/hooks/useProtectCheckRunner.js +2 -7
  14. package/dist/hooks/useProtectCheckRunner.js.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/lazyModules/components.d.ts +0 -2
  17. package/dist/lazyModules/components.js +1 -7
  18. package/dist/lazyModules/components.js.map +1 -1
  19. package/dist/no-rhc/ClerkUI.js +2 -2
  20. package/dist/no-rhc/Components.js +2 -26
  21. package/dist/no-rhc/Components.js.map +1 -1
  22. package/dist/no-rhc/components/GoogleOneTap/one-tap-start.js.map +1 -1
  23. package/dist/no-rhc/components/SignIn/SignInProtectCheck.js +2 -2
  24. package/dist/no-rhc/components/SignIn/index.js +0 -3
  25. package/dist/no-rhc/components/SignIn/index.js.map +1 -1
  26. package/dist/no-rhc/components/SignUp/index.js +0 -2
  27. package/dist/no-rhc/components/SignUp/index.js.map +1 -1
  28. package/dist/no-rhc/elements/contexts/index.js.map +1 -1
  29. package/dist/no-rhc/hooks/useProtectCheckRunner.js +2 -7
  30. package/dist/no-rhc/hooks/useProtectCheckRunner.js.map +1 -1
  31. package/dist/no-rhc/index.js +1 -1
  32. package/dist/no-rhc/lazyModules/components.js +1 -7
  33. package/dist/no-rhc/lazyModules/components.js.map +1 -1
  34. package/dist/onetap_ui_0000cd_1.37.0.js +1 -0
  35. package/dist/onetap_ui_705e4c_1.37.0.js +1 -0
  36. package/dist/onetap_ui_7ff8f0_1.37.0.js +1 -0
  37. package/dist/server.js +1 -1
  38. package/dist/{signin_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → signin_ui_0000cd_1.37.0.js} +1 -1
  39. package/dist/{signin_ui_ca4909_1.37.0-snapshot.v20260929195855.js → signin_ui_705e4c_1.37.0.js} +1 -1
  40. package/dist/{signin_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → signin_ui_7ff8f0_1.37.0.js} +1 -1
  41. package/dist/{signup_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → signup_ui_0000cd_1.37.0.js} +1 -1
  42. package/dist/{signup_ui_ca4909_1.37.0-snapshot.v20260929195855.js → signup_ui_705e4c_1.37.0.js} +1 -1
  43. package/dist/{signup_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → signup_ui_7ff8f0_1.37.0.js} +1 -1
  44. package/dist/{ui-common_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → ui-common_ui_0000cd_1.37.0.js} +1 -1
  45. package/dist/{ui-common_ui_ca4909_1.37.0-snapshot.v20260929195855.js → ui-common_ui_705e4c_1.37.0.js} +1 -1
  46. package/dist/{ui-common_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → ui-common_ui_7ff8f0_1.37.0.js} +1 -1
  47. package/dist/ui.browser.js +5 -5
  48. package/dist/ui.legacy.browser.js +1 -1
  49. package/dist/ui.shared.browser.js +5 -5
  50. package/package.json +3 -3
  51. package/dist/components/ProtectCheckModal/index.d.ts +0 -10
  52. package/dist/components/ProtectCheckModal/index.js +0 -44
  53. package/dist/components/ProtectCheckModal/index.js.map +0 -1
  54. package/dist/no-rhc/components/ProtectCheckModal/index.js +0 -44
  55. package/dist/no-rhc/components/ProtectCheckModal/index.js.map +0 -1
  56. package/dist/onetap_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js +0 -1
  57. package/dist/onetap_ui_4ddac0_1.37.0-snapshot.v20260929195855.js +0 -1
  58. package/dist/onetap_ui_ca4909_1.37.0-snapshot.v20260929195855.js +0 -1
  59. package/dist/protectcheck_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js +0 -1
  60. package/dist/protectcheck_ui_4ddac0_1.37.0-snapshot.v20260929195855.js +0 -1
  61. package/dist/protectcheck_ui_ca4909_1.37.0-snapshot.v20260929195855.js +0 -1
  62. /package/dist/{3736_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 3736_ui_0000cd_1.37.0.js} +0 -0
  63. /package/dist/{3736_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 3736_ui_705e4c_1.37.0.js} +0 -0
  64. /package/dist/{3736_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 3736_ui_7ff8f0_1.37.0.js} +0 -0
  65. /package/dist/{4424_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 4424_ui_0000cd_1.37.0.js} +0 -0
  66. /package/dist/{4424_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 4424_ui_705e4c_1.37.0.js} +0 -0
  67. /package/dist/{4424_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 4424_ui_7ff8f0_1.37.0.js} +0 -0
  68. /package/dist/{5809_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 5809_ui_0000cd_1.37.0.js} +0 -0
  69. /package/dist/{5809_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 5809_ui_705e4c_1.37.0.js} +0 -0
  70. /package/dist/{5809_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 5809_ui_7ff8f0_1.37.0.js} +0 -0
  71. /package/dist/{6206_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 6206_ui_0000cd_1.37.0.js} +0 -0
  72. /package/dist/{6206_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 6206_ui_705e4c_1.37.0.js} +0 -0
  73. /package/dist/{6206_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 6206_ui_7ff8f0_1.37.0.js} +0 -0
  74. /package/dist/{6678_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 6678_ui_0000cd_1.37.0.js} +0 -0
  75. /package/dist/{6678_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 6678_ui_705e4c_1.37.0.js} +0 -0
  76. /package/dist/{6678_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 6678_ui_7ff8f0_1.37.0.js} +0 -0
  77. /package/dist/{7181_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 7181_ui_0000cd_1.37.0.js} +0 -0
  78. /package/dist/{7181_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 7181_ui_705e4c_1.37.0.js} +0 -0
  79. /package/dist/{7181_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 7181_ui_7ff8f0_1.37.0.js} +0 -0
  80. /package/dist/{8316_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 8316_ui_0000cd_1.37.0.js} +0 -0
  81. /package/dist/{8316_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 8316_ui_705e4c_1.37.0.js} +0 -0
  82. /package/dist/{8316_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 8316_ui_7ff8f0_1.37.0.js} +0 -0
  83. /package/dist/{8746_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 8746_ui_0000cd_1.37.0.js} +0 -0
  84. /package/dist/{8746_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 8746_ui_705e4c_1.37.0.js} +0 -0
  85. /package/dist/{8746_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 8746_ui_7ff8f0_1.37.0.js} +0 -0
  86. /package/dist/{9419_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 9419_ui_0000cd_1.37.0.js} +0 -0
  87. /package/dist/{9419_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 9419_ui_705e4c_1.37.0.js} +0 -0
  88. /package/dist/{9419_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 9419_ui_7ff8f0_1.37.0.js} +0 -0
  89. /package/dist/{980_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → 980_ui_0000cd_1.37.0.js} +0 -0
  90. /package/dist/{980_ui_ca4909_1.37.0-snapshot.v20260929195855.js → 980_ui_705e4c_1.37.0.js} +0 -0
  91. /package/dist/{980_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → 980_ui_7ff8f0_1.37.0.js} +0 -0
  92. /package/dist/{apiKeys_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → apiKeys_ui_0000cd_1.37.0.js} +0 -0
  93. /package/dist/{apiKeys_ui_ca4909_1.37.0-snapshot.v20260929195855.js → apiKeys_ui_705e4c_1.37.0.js} +0 -0
  94. /package/dist/{apiKeys_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → apiKeys_ui_7ff8f0_1.37.0.js} +0 -0
  95. /package/dist/{blankcaptcha_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → blankcaptcha_ui_0000cd_1.37.0.js} +0 -0
  96. /package/dist/{blankcaptcha_ui_ca4909_1.37.0-snapshot.v20260929195855.js → blankcaptcha_ui_705e4c_1.37.0.js} +0 -0
  97. /package/dist/{blankcaptcha_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → blankcaptcha_ui_7ff8f0_1.37.0.js} +0 -0
  98. /package/dist/{checkout_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → checkout_ui_0000cd_1.37.0.js} +0 -0
  99. /package/dist/{checkout_ui_ca4909_1.37.0-snapshot.v20260929195855.js → checkout_ui_705e4c_1.37.0.js} +0 -0
  100. /package/dist/{checkout_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → checkout_ui_7ff8f0_1.37.0.js} +0 -0
  101. /package/dist/{configureDirectorySync_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → configureDirectorySync_ui_0000cd_1.37.0.js} +0 -0
  102. /package/dist/{configureDirectorySync_ui_ca4909_1.37.0-snapshot.v20260929195855.js → configureDirectorySync_ui_705e4c_1.37.0.js} +0 -0
  103. /package/dist/{configureDirectorySync_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → configureDirectorySync_ui_7ff8f0_1.37.0.js} +0 -0
  104. /package/dist/{configureSSO_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → configureSSO_ui_0000cd_1.37.0.js} +0 -0
  105. /package/dist/{configureSSO_ui_ca4909_1.37.0-snapshot.v20260929195855.js → configureSSO_ui_705e4c_1.37.0.js} +0 -0
  106. /package/dist/{configureSSO_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → configureSSO_ui_7ff8f0_1.37.0.js} +0 -0
  107. /package/dist/{copy-api-key-modal_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → copy-api-key-modal_ui_0000cd_1.37.0.js} +0 -0
  108. /package/dist/{copy-api-key-modal_ui_ca4909_1.37.0-snapshot.v20260929195855.js → copy-api-key-modal_ui_705e4c_1.37.0.js} +0 -0
  109. /package/dist/{copy-api-key-modal_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → copy-api-key-modal_ui_7ff8f0_1.37.0.js} +0 -0
  110. /package/dist/{createorganization_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → createorganization_ui_0000cd_1.37.0.js} +0 -0
  111. /package/dist/{createorganization_ui_ca4909_1.37.0-snapshot.v20260929195855.js → createorganization_ui_705e4c_1.37.0.js} +0 -0
  112. /package/dist/{createorganization_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → createorganization_ui_7ff8f0_1.37.0.js} +0 -0
  113. /package/dist/{credit-history-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → credit-history-page_ui_0000cd_1.37.0.js} +0 -0
  114. /package/dist/{credit-history-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → credit-history-page_ui_705e4c_1.37.0.js} +0 -0
  115. /package/dist/{credit-history-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → credit-history-page_ui_7ff8f0_1.37.0.js} +0 -0
  116. /package/dist/{enableOrganizationsPrompt_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → enableOrganizationsPrompt_ui_0000cd_1.37.0.js} +0 -0
  117. /package/dist/{enableOrganizationsPrompt_ui_ca4909_1.37.0-snapshot.v20260929195855.js → enableOrganizationsPrompt_ui_705e4c_1.37.0.js} +0 -0
  118. /package/dist/{enableOrganizationsPrompt_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → enableOrganizationsPrompt_ui_7ff8f0_1.37.0.js} +0 -0
  119. /package/dist/{framework_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → framework_ui_0000cd_1.37.0.js} +0 -0
  120. /package/dist/{framework_ui_ca4909_1.37.0-snapshot.v20260929195855.js → framework_ui_705e4c_1.37.0.js} +0 -0
  121. /package/dist/{impersonationfab_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → impersonationfab_ui_0000cd_1.37.0.js} +0 -0
  122. /package/dist/{impersonationfab_ui_ca4909_1.37.0-snapshot.v20260929195855.js → impersonationfab_ui_705e4c_1.37.0.js} +0 -0
  123. /package/dist/{impersonationfab_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → impersonationfab_ui_7ff8f0_1.37.0.js} +0 -0
  124. /package/dist/{invitemembers_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → invitemembers_ui_0000cd_1.37.0.js} +0 -0
  125. /package/dist/{invitemembers_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → invitemembers_ui_705e4c_1.37.0.js} +0 -0
  126. /package/dist/{invitemembers_ui_ca4909_1.37.0-snapshot.v20260929195855.js → invitemembers_ui_7ff8f0_1.37.0.js} +0 -0
  127. /package/dist/{keylessPrompt_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → keylessPrompt_ui_0000cd_1.37.0.js} +0 -0
  128. /package/dist/{keylessPrompt_ui_ca4909_1.37.0-snapshot.v20260929195855.js → keylessPrompt_ui_705e4c_1.37.0.js} +0 -0
  129. /package/dist/{keylessPrompt_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → keylessPrompt_ui_7ff8f0_1.37.0.js} +0 -0
  130. /package/dist/{oauthConsent_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → oauthConsent_ui_0000cd_1.37.0.js} +0 -0
  131. /package/dist/{oauthConsent_ui_ca4909_1.37.0-snapshot.v20260929195855.js → oauthConsent_ui_705e4c_1.37.0.js} +0 -0
  132. /package/dist/{oauthConsent_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → oauthConsent_ui_7ff8f0_1.37.0.js} +0 -0
  133. /package/dist/{oauthDeviceVerification_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → oauthDeviceVerification_ui_0000cd_1.37.0.js} +0 -0
  134. /package/dist/{oauthDeviceVerification_ui_ca4909_1.37.0-snapshot.v20260929195855.js → oauthDeviceVerification_ui_705e4c_1.37.0.js} +0 -0
  135. /package/dist/{oauthDeviceVerification_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → oauthDeviceVerification_ui_7ff8f0_1.37.0.js} +0 -0
  136. /package/dist/{op-api-keys-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → op-api-keys-page_ui_0000cd_1.37.0.js} +0 -0
  137. /package/dist/{op-api-keys-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → op-api-keys-page_ui_705e4c_1.37.0.js} +0 -0
  138. /package/dist/{op-api-keys-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → op-api-keys-page_ui_7ff8f0_1.37.0.js} +0 -0
  139. /package/dist/{op-billing-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → op-billing-page_ui_0000cd_1.37.0.js} +0 -0
  140. /package/dist/{op-billing-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → op-billing-page_ui_705e4c_1.37.0.js} +0 -0
  141. /package/dist/{op-billing-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → op-billing-page_ui_7ff8f0_1.37.0.js} +0 -0
  142. /package/dist/{op-plans-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → op-plans-page_ui_0000cd_1.37.0.js} +0 -0
  143. /package/dist/{op-plans-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → op-plans-page_ui_705e4c_1.37.0.js} +0 -0
  144. /package/dist/{op-plans-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → op-plans-page_ui_7ff8f0_1.37.0.js} +0 -0
  145. /package/dist/{op-security-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → op-security-page_ui_0000cd_1.37.0.js} +0 -0
  146. /package/dist/{op-security-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → op-security-page_ui_705e4c_1.37.0.js} +0 -0
  147. /package/dist/{op-security-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → op-security-page_ui_7ff8f0_1.37.0.js} +0 -0
  148. /package/dist/{organizationlist_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → organizationlist_ui_0000cd_1.37.0.js} +0 -0
  149. /package/dist/{organizationlist_ui_ca4909_1.37.0-snapshot.v20260929195855.js → organizationlist_ui_705e4c_1.37.0.js} +0 -0
  150. /package/dist/{organizationlist_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → organizationlist_ui_7ff8f0_1.37.0.js} +0 -0
  151. /package/dist/{organizationprofile_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → organizationprofile_ui_0000cd_1.37.0.js} +0 -0
  152. /package/dist/{organizationprofile_ui_ca4909_1.37.0-snapshot.v20260929195855.js → organizationprofile_ui_705e4c_1.37.0.js} +0 -0
  153. /package/dist/{organizationprofile_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → organizationprofile_ui_7ff8f0_1.37.0.js} +0 -0
  154. /package/dist/{organizationswitcher_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → organizationswitcher_ui_0000cd_1.37.0.js} +0 -0
  155. /package/dist/{organizationswitcher_ui_ca4909_1.37.0-snapshot.v20260929195855.js → organizationswitcher_ui_705e4c_1.37.0.js} +0 -0
  156. /package/dist/{organizationswitcher_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → organizationswitcher_ui_7ff8f0_1.37.0.js} +0 -0
  157. /package/dist/{payment-attempt-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → payment-attempt-page_ui_0000cd_1.37.0.js} +0 -0
  158. /package/dist/{payment-attempt-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → payment-attempt-page_ui_705e4c_1.37.0.js} +0 -0
  159. /package/dist/{payment-attempt-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → payment-attempt-page_ui_7ff8f0_1.37.0.js} +0 -0
  160. /package/dist/{planDetails_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → planDetails_ui_0000cd_1.37.0.js} +0 -0
  161. /package/dist/{planDetails_ui_ca4909_1.37.0-snapshot.v20260929195855.js → planDetails_ui_705e4c_1.37.0.js} +0 -0
  162. /package/dist/{planDetails_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → planDetails_ui_7ff8f0_1.37.0.js} +0 -0
  163. /package/dist/{prefetchorganizationlist_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → prefetchorganizationlist_ui_0000cd_1.37.0.js} +0 -0
  164. /package/dist/{prefetchorganizationlist_ui_ca4909_1.37.0-snapshot.v20260929195855.js → prefetchorganizationlist_ui_705e4c_1.37.0.js} +0 -0
  165. /package/dist/{prefetchorganizationlist_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → prefetchorganizationlist_ui_7ff8f0_1.37.0.js} +0 -0
  166. /package/dist/{pricingTable_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → pricingTable_ui_0000cd_1.37.0.js} +0 -0
  167. /package/dist/{pricingTable_ui_ca4909_1.37.0-snapshot.v20260929195855.js → pricingTable_ui_705e4c_1.37.0.js} +0 -0
  168. /package/dist/{pricingTable_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → pricingTable_ui_7ff8f0_1.37.0.js} +0 -0
  169. /package/dist/{revoke-api-key-modal_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → revoke-api-key-modal_ui_0000cd_1.37.0.js} +0 -0
  170. /package/dist/{revoke-api-key-modal_ui_ca4909_1.37.0-snapshot.v20260929195855.js → revoke-api-key-modal_ui_705e4c_1.37.0.js} +0 -0
  171. /package/dist/{revoke-api-key-modal_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → revoke-api-key-modal_ui_7ff8f0_1.37.0.js} +0 -0
  172. /package/dist/{sessionTasks_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → sessionTasks_ui_0000cd_1.37.0.js} +0 -0
  173. /package/dist/{sessionTasks_ui_ca4909_1.37.0-snapshot.v20260929195855.js → sessionTasks_ui_705e4c_1.37.0.js} +0 -0
  174. /package/dist/{sessionTasks_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → sessionTasks_ui_7ff8f0_1.37.0.js} +0 -0
  175. /package/dist/{statement-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → statement-page_ui_0000cd_1.37.0.js} +0 -0
  176. /package/dist/{statement-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → statement-page_ui_705e4c_1.37.0.js} +0 -0
  177. /package/dist/{statement-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → statement-page_ui_7ff8f0_1.37.0.js} +0 -0
  178. /package/dist/{subscriptionDetails_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → subscriptionDetails_ui_0000cd_1.37.0.js} +0 -0
  179. /package/dist/{subscriptionDetails_ui_ca4909_1.37.0-snapshot.v20260929195855.js → subscriptionDetails_ui_705e4c_1.37.0.js} +0 -0
  180. /package/dist/{subscriptionDetails_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → subscriptionDetails_ui_7ff8f0_1.37.0.js} +0 -0
  181. /package/dist/{taskChooseOrganization_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → taskChooseOrganization_ui_0000cd_1.37.0.js} +0 -0
  182. /package/dist/{taskChooseOrganization_ui_ca4909_1.37.0-snapshot.v20260929195855.js → taskChooseOrganization_ui_705e4c_1.37.0.js} +0 -0
  183. /package/dist/{taskChooseOrganization_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → taskChooseOrganization_ui_7ff8f0_1.37.0.js} +0 -0
  184. /package/dist/{taskResetPassword_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → taskResetPassword_ui_0000cd_1.37.0.js} +0 -0
  185. /package/dist/{taskResetPassword_ui_ca4909_1.37.0-snapshot.v20260929195855.js → taskResetPassword_ui_705e4c_1.37.0.js} +0 -0
  186. /package/dist/{taskResetPassword_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → taskResetPassword_ui_7ff8f0_1.37.0.js} +0 -0
  187. /package/dist/{taskSetupMFA_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → taskSetupMFA_ui_0000cd_1.37.0.js} +0 -0
  188. /package/dist/{taskSetupMFA_ui_ca4909_1.37.0-snapshot.v20260929195855.js → taskSetupMFA_ui_705e4c_1.37.0.js} +0 -0
  189. /package/dist/{taskSetupMFA_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → taskSetupMFA_ui_7ff8f0_1.37.0.js} +0 -0
  190. /package/dist/{up-api-keys-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → up-api-keys-page_ui_0000cd_1.37.0.js} +0 -0
  191. /package/dist/{up-api-keys-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → up-api-keys-page_ui_705e4c_1.37.0.js} +0 -0
  192. /package/dist/{up-api-keys-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → up-api-keys-page_ui_7ff8f0_1.37.0.js} +0 -0
  193. /package/dist/{up-billing-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → up-billing-page_ui_0000cd_1.37.0.js} +0 -0
  194. /package/dist/{up-billing-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → up-billing-page_ui_705e4c_1.37.0.js} +0 -0
  195. /package/dist/{up-billing-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → up-billing-page_ui_7ff8f0_1.37.0.js} +0 -0
  196. /package/dist/{up-plans-page_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → up-plans-page_ui_0000cd_1.37.0.js} +0 -0
  197. /package/dist/{up-plans-page_ui_ca4909_1.37.0-snapshot.v20260929195855.js → up-plans-page_ui_705e4c_1.37.0.js} +0 -0
  198. /package/dist/{up-plans-page_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → up-plans-page_ui_7ff8f0_1.37.0.js} +0 -0
  199. /package/dist/{useravatar_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → useravatar_ui_0000cd_1.37.0.js} +0 -0
  200. /package/dist/{useravatar_ui_ca4909_1.37.0-snapshot.v20260929195855.js → useravatar_ui_705e4c_1.37.0.js} +0 -0
  201. /package/dist/{useravatar_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → useravatar_ui_7ff8f0_1.37.0.js} +0 -0
  202. /package/dist/{userbutton_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → userbutton_ui_0000cd_1.37.0.js} +0 -0
  203. /package/dist/{userbutton_ui_ca4909_1.37.0-snapshot.v20260929195855.js → userbutton_ui_705e4c_1.37.0.js} +0 -0
  204. /package/dist/{userbutton_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → userbutton_ui_7ff8f0_1.37.0.js} +0 -0
  205. /package/dist/{userprofile_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → userprofile_ui_0000cd_1.37.0.js} +0 -0
  206. /package/dist/{userprofile_ui_ca4909_1.37.0-snapshot.v20260929195855.js → userprofile_ui_705e4c_1.37.0.js} +0 -0
  207. /package/dist/{userprofile_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → userprofile_ui_7ff8f0_1.37.0.js} +0 -0
  208. /package/dist/{userverification_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → userverification_ui_0000cd_1.37.0.js} +0 -0
  209. /package/dist/{userverification_ui_ca4909_1.37.0-snapshot.v20260929195855.js → userverification_ui_705e4c_1.37.0.js} +0 -0
  210. /package/dist/{userverification_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → userverification_ui_7ff8f0_1.37.0.js} +0 -0
  211. /package/dist/{vendors_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → vendors_ui_0000cd_1.37.0.js} +0 -0
  212. /package/dist/{vendors_ui_ca4909_1.37.0-snapshot.v20260929195855.js → vendors_ui_705e4c_1.37.0.js} +0 -0
  213. /package/dist/{vendors_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → vendors_ui_7ff8f0_1.37.0.js} +0 -0
  214. /package/dist/{waitlist_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → waitlist_ui_0000cd_1.37.0.js} +0 -0
  215. /package/dist/{waitlist_ui_ca4909_1.37.0-snapshot.v20260929195855.js → waitlist_ui_705e4c_1.37.0.js} +0 -0
  216. /package/dist/{waitlist_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → waitlist_ui_7ff8f0_1.37.0.js} +0 -0
  217. /package/dist/{web3-solana-wallet-buttons_ui_4ddac0_1.37.0-snapshot.v20260929195855.js → web3-solana-wallet-buttons_ui_0000cd_1.37.0.js} +0 -0
  218. /package/dist/{web3-solana-wallet-buttons_ui_ca4909_1.37.0-snapshot.v20260929195855.js → web3-solana-wallet-buttons_ui_705e4c_1.37.0.js} +0 -0
  219. /package/dist/{web3-solana-wallet-buttons_ui_2cbb7b_1.37.0-snapshot.v20260929195855.js → web3-solana-wallet-buttons_ui_7ff8f0_1.37.0.js} +0 -0
package/dist/ClerkUI.js CHANGED
@@ -22,8 +22,8 @@ import { isVersionAtLeast, parseVersion } from "@clerk/shared/versionCheck";
22
22
  * @public
23
23
  */
24
24
  var ClerkUI = class ClerkUI {
25
- static version = "1.37.0-snapshot.v20260929195855";
26
- version = "1.37.0-snapshot.v20260929195855";
25
+ static version = "1.37.0";
26
+ version = "1.37.0";
27
27
  #componentRenderer;
28
28
  /**
29
29
  * Creates a new `ClerkUI` instance and mounts the internal component renderer.
@@ -3,7 +3,7 @@ import { AppearanceCascade } from "./customizables/parseAppearance.js";
3
3
  import { AvailableComponentProps } from "./types.js";
4
4
  import { ClerkComponentName } from "./lazyModules/components.js";
5
5
  import { ModuleManager } from "@clerk/shared/moduleManager";
6
- import { Clerk, ClerkOptions, EnvironmentResource, InviteMembersModalProps, SignInProps, SignUpProps, UserProfileProps, WaitlistProps, __internal_CheckoutProps, __internal_EnableOrganizationsPromptProps, __internal_PlanDetailsProps, __internal_ProtectCheckModalProps, __internal_SubscriptionDetailsProps, __internal_UserVerificationProps } from "@clerk/shared/types";
6
+ import { Clerk, ClerkOptions, EnvironmentResource, InviteMembersModalProps, SignInProps, SignUpProps, UserProfileProps, WaitlistProps, __internal_CheckoutProps, __internal_EnableOrganizationsPromptProps, __internal_PlanDetailsProps, __internal_SubscriptionDetailsProps, __internal_UserVerificationProps } from "@clerk/shared/types";
7
7
 
8
8
  //#region src/Components.d.ts
9
9
  type ComponentControls = {
@@ -22,8 +22,8 @@ type ComponentControls = {
22
22
  node?: HTMLDivElement;
23
23
  props?: unknown;
24
24
  }) => void;
25
- openModal: <T extends 'googleOneTap' | 'signIn' | 'signUp' | 'userProfile' | 'organizationProfile' | 'inviteMembers' | 'createOrganization' | 'userVerification' | 'waitlist' | 'blankCaptcha' | 'protectCheck' | 'enableOrganizationsPrompt'>(modal: T, props: T extends 'signIn' ? SignInProps : T extends 'signUp' ? SignUpProps : T extends 'userVerification' ? __internal_UserVerificationProps : T extends 'waitlist' ? WaitlistProps : T extends 'inviteMembers' ? InviteMembersModalProps : T extends 'enableOrganizationsPrompt' ? __internal_EnableOrganizationsPromptProps : T extends 'protectCheck' ? __internal_ProtectCheckModalProps : UserProfileProps) => void;
26
- closeModal: (modal: 'googleOneTap' | 'signIn' | 'signUp' | 'userProfile' | 'organizationProfile' | 'inviteMembers' | 'createOrganization' | 'userVerification' | 'waitlist' | 'blankCaptcha' | 'protectCheck' | 'enableOrganizationsPrompt', options?: {
25
+ openModal: <T extends 'googleOneTap' | 'signIn' | 'signUp' | 'userProfile' | 'organizationProfile' | 'inviteMembers' | 'createOrganization' | 'userVerification' | 'waitlist' | 'blankCaptcha' | 'enableOrganizationsPrompt'>(modal: T, props: T extends 'signIn' ? SignInProps : T extends 'signUp' ? SignUpProps : T extends 'userVerification' ? __internal_UserVerificationProps : T extends 'waitlist' ? WaitlistProps : T extends 'inviteMembers' ? InviteMembersModalProps : T extends 'enableOrganizationsPrompt' ? __internal_EnableOrganizationsPromptProps : UserProfileProps) => void;
26
+ closeModal: (modal: 'googleOneTap' | 'signIn' | 'signUp' | 'userProfile' | 'organizationProfile' | 'inviteMembers' | 'createOrganization' | 'userVerification' | 'waitlist' | 'blankCaptcha' | 'enableOrganizationsPrompt', options?: {
27
27
  notify?: boolean;
28
28
  }) => void;
29
29
  openDrawer: <T extends 'checkout' | 'planDetails' | 'subscriptionDetails'>(drawer: T, props: T extends 'checkout' ? __internal_CheckoutProps : T extends 'planDetails' ? __internal_PlanDetailsProps : T extends 'subscriptionDetails' ? __internal_SubscriptionDetailsProps : never) => void;
@@ -32,7 +32,6 @@ type ComponentControls = {
32
32
  }) => void;
33
33
  prefetch: (component: 'organizationSwitcher') => void;
34
34
  mountImpersonationFab: () => void;
35
- openProtectCheckModal: (props: __internal_ProtectCheckModalProps) => void;
36
35
  };
37
36
  declare const mountComponentRenderer: (getClerk: () => Clerk, getEnvironment: () => EnvironmentResource | null | undefined, _options: ClerkOptions, moduleManager: ModuleManager) => {
38
37
  ensureMounted: (opts?: {
@@ -1,5 +1,5 @@
1
1
  import { useClerkModalStateParams } from "./hooks/useClerkModalStateParams.js";
2
- import { BlankCaptchaModal, CreateOrganizationModal, EnableOrganizationsPrompt, ImpersonationFab, InviteMembersModal, KeylessPrompt, OrganizationProfileModal, ProtectCheckModal, SignInModal, SignUpModal, UserProfileModal, UserVerificationModal, WaitlistModal, preloadComponent } from "./lazyModules/components.js";
2
+ import { BlankCaptchaModal, CreateOrganizationModal, EnableOrganizationsPrompt, ImpersonationFab, InviteMembersModal, KeylessPrompt, OrganizationProfileModal, SignInModal, SignUpModal, UserProfileModal, UserVerificationModal, WaitlistModal, preloadComponent } from "./lazyModules/components.js";
3
3
  import { MountedCheckoutDrawer, MountedPlanDetailDrawer, MountedSubscriptionDetailDrawer } from "./lazyModules/drawers.js";
4
4
  import { LazyComponentRenderer, LazyEnableOrganizationsPromptProvider, LazyImpersonationFabProvider, LazyModalRenderer, LazyOneTapRenderer, LazyProviders, OrganizationSwitcherPrefetch } from "./lazyModules/providers.js";
5
5
  import { buildVirtualRouterUrl } from "./utils/buildVirtualRouterUrl.js";
@@ -86,7 +86,6 @@ const Components = (props) => {
86
86
  organizationSwitcherPrefetch: false,
87
87
  waitlistModal: null,
88
88
  blankCaptchaModal: null,
89
- protectCheckModal: null,
90
89
  checkoutDrawer: {
91
90
  open: false,
92
91
  props: null
@@ -101,7 +100,7 @@ const Components = (props) => {
101
100
  },
102
101
  impersonationFab: false
103
102
  });
104
- const { googleOneTapModal, signInModal, signUpModal, userProfileModal, userVerificationModal, organizationProfileModal, inviteMembersModal, createOrganizationModal, waitlistModal, blankCaptchaModal, protectCheckModal, checkoutDrawer, planDetailsDrawer, subscriptionDetailsDrawer } = state;
103
+ const { googleOneTapModal, signInModal, signUpModal, userProfileModal, userVerificationModal, organizationProfileModal, inviteMembersModal, createOrganizationModal, waitlistModal, blankCaptchaModal, checkoutDrawer, planDetailsDrawer, subscriptionDetailsDrawer } = state;
105
104
  const clerk = props.getClerk();
106
105
  useSyncExternalStore(useCallback((callback) => clerk.addListener(callback, { skipInitialEmit: true }), [clerk]), useCallback(() => {
107
106
  return clerk.__internal_lastEmittedResources;
@@ -210,9 +209,6 @@ const Components = (props) => {
210
209
  impersonationFab: true
211
210
  }));
212
211
  };
213
- componentsControls.openProtectCheckModal = (props) => {
214
- componentsControls.openModal("protectCheck", props);
215
- };
216
212
  componentsControls.openDrawer = (name, props) => {
217
213
  setState((s) => ({
218
214
  ...s,
@@ -422,25 +418,6 @@ const Components = (props) => {
422
418
  children: /* @__PURE__ */ jsx(BlankCaptchaModal, {})
423
419
  }
424
420
  );
425
- const mountedProtectCheckModal = protectCheckModal && /* @__PURE__ */ jsx(LazyModalRenderer, {
426
- globalAppearance: state.appearance,
427
- appearanceKey: "protectCheck",
428
- componentAppearance: {},
429
- flowName: "protectCheck",
430
- onClose: () => componentsControls.closeModal("protectCheck"),
431
- startPath: buildVirtualRouterUrl({
432
- base: "/protect-check",
433
- path: urlStateParam?.path
434
- }),
435
- componentName: "ProtectCheckModal",
436
- canCloseModal: false,
437
- modalContainerSx: (t) => ({
438
- alignItems: "center",
439
- backdropFilter: `blur(${t.sizes.$2})`
440
- }),
441
- getContainer: () => null,
442
- children: /* @__PURE__ */ jsx(ProtectCheckModal, { ...protectCheckModal })
443
- });
444
421
  return /* @__PURE__ */ jsx(Suspense, {
445
422
  fallback: "",
446
423
  children: /* @__PURE__ */ jsxs(LazyProviders, {
@@ -469,7 +446,6 @@ const Components = (props) => {
469
446
  createOrganizationModal && mountedCreateOrganizationModal,
470
447
  waitlistModal && mountedWaitlistModal,
471
448
  blankCaptchaModal && mountedBlankCaptchaModal,
472
- mountedProtectCheckModal,
473
449
  /* @__PURE__ */ jsx(MountedCheckoutDrawer, {
474
450
  appearance: state.appearance,
475
451
  checkoutDrawer,
@@ -1 +1 @@
1
- {"version":3,"file":"Components.js","names":[],"sources":["../src/Components.tsx"],"sourcesContent":["import { clerkUIErrorDOMElementNotFound } from '@clerk/shared/internal/clerk-js/errors';\nimport type { ModuleManager } from '@clerk/shared/moduleManager';\nimport type {\n __internal_CheckoutProps,\n __internal_EnableOrganizationsPromptProps,\n __internal_PlanDetailsProps,\n __internal_ProtectCheckModalProps,\n __internal_SubscriptionDetailsProps,\n __internal_UserVerificationProps,\n Clerk,\n ClerkOptions,\n CreateOrganizationModalProps,\n EnvironmentResource,\n GoogleOneTapProps,\n InviteMembersModalProps,\n OrganizationProfileModalProps,\n SignInModalProps,\n SignInProps,\n SignUpModalProps,\n SignUpProps,\n UserProfileModalProps,\n UserProfileProps,\n WaitlistModalProps,\n WaitlistProps,\n} from '@clerk/shared/types';\nimport { createDeferredPromise } from '@clerk/shared/utils';\nimport React, { Suspense, useCallback, useRef, useSyncExternalStore } from 'react';\n\nimport type { AppearanceCascade } from './customizables/parseAppearance';\n// NOTE: Using `./hooks` instead of `./hooks/useClerkModalStateParams` will increase the bundle size\nimport { useClerkModalStateParams } from './hooks/useClerkModalStateParams';\nimport type { Appearance } from './internal/appearance';\nimport type { ClerkComponentName } from './lazyModules/components';\nimport {\n BlankCaptchaModal,\n CreateOrganizationModal,\n EnableOrganizationsPrompt,\n ImpersonationFab,\n InviteMembersModal,\n KeylessPrompt,\n OrganizationProfileModal,\n preloadComponent,\n ProtectCheckModal,\n SignInModal,\n SignUpModal,\n UserProfileModal,\n UserVerificationModal,\n WaitlistModal,\n} from './lazyModules/components';\nimport { MountedCheckoutDrawer, MountedPlanDetailDrawer, MountedSubscriptionDetailDrawer } from './lazyModules/drawers';\nimport {\n LazyComponentRenderer,\n LazyEnableOrganizationsPromptProvider,\n LazyImpersonationFabProvider,\n LazyModalRenderer,\n LazyOneTapRenderer,\n LazyProviders,\n OrganizationSwitcherPrefetch,\n} from './lazyModules/providers';\nimport type { AvailableComponentProps } from './types';\nimport { buildVirtualRouterUrl } from './utils/buildVirtualRouterUrl';\nimport { disambiguateRedirectOptions } from './utils/disambiguateRedirectOptions';\nimport { extractCssLayerNameFromAppearance } from './utils/extractCssLayerNameFromAppearance';\nimport { warnAboutCustomizationWithoutPinning } from './utils/warnAboutCustomizationWithoutPinning';\n\n// Re-export for ClerkUI\nexport { extractCssLayerNameFromAppearance };\n\n/**\n * Avoid importing from `@clerk/shared/react` to prevent extra dependencies being added to the bundle.\n */\nconst useSafeLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport const ROOT_ELEMENT_ID = 'clerk-components';\n\nexport type ComponentControls = {\n mountComponent: (params: {\n appearanceKey: Uncapitalize<AppearanceCascade['appearanceKey']>;\n name: ClerkComponentName;\n node: HTMLDivElement;\n props?: AvailableComponentProps;\n }) => void;\n unmountComponent: (params: { node: HTMLDivElement }) => void;\n updateProps: (params: {\n appearance?: Appearance | undefined;\n options?: ClerkOptions | undefined;\n node?: HTMLDivElement;\n props?: unknown;\n }) => void;\n openModal: <\n T extends\n | 'googleOneTap'\n | 'signIn'\n | 'signUp'\n | 'userProfile'\n | 'organizationProfile'\n | 'inviteMembers'\n | 'createOrganization'\n | 'userVerification'\n | 'waitlist'\n | 'blankCaptcha'\n | 'protectCheck'\n | 'enableOrganizationsPrompt',\n >(\n modal: T,\n props: T extends 'signIn'\n ? SignInProps\n : T extends 'signUp'\n ? SignUpProps\n : T extends 'userVerification'\n ? __internal_UserVerificationProps\n : T extends 'waitlist'\n ? WaitlistProps\n : T extends 'inviteMembers'\n ? InviteMembersModalProps\n : T extends 'enableOrganizationsPrompt'\n ? __internal_EnableOrganizationsPromptProps\n : T extends 'protectCheck'\n ? __internal_ProtectCheckModalProps\n : UserProfileProps,\n ) => void;\n closeModal: (\n modal:\n | 'googleOneTap'\n | 'signIn'\n | 'signUp'\n | 'userProfile'\n | 'organizationProfile'\n | 'inviteMembers'\n | 'createOrganization'\n | 'userVerification'\n | 'waitlist'\n | 'blankCaptcha'\n | 'protectCheck'\n | 'enableOrganizationsPrompt',\n options?: {\n notify?: boolean;\n },\n ) => void;\n openDrawer: <T extends 'checkout' | 'planDetails' | 'subscriptionDetails'>(\n drawer: T,\n props: T extends 'checkout'\n ? __internal_CheckoutProps\n : T extends 'planDetails'\n ? __internal_PlanDetailsProps\n : T extends 'subscriptionDetails'\n ? __internal_SubscriptionDetailsProps\n : never,\n ) => void;\n closeDrawer: (\n drawer: 'checkout' | 'planDetails' | 'subscriptionDetails',\n options?: {\n notify?: boolean;\n },\n ) => void;\n prefetch: (component: 'organizationSwitcher') => void;\n // Special case, as the impersonation fab mounts automatically\n mountImpersonationFab: () => void;\n openProtectCheckModal: (props: __internal_ProtectCheckModalProps) => void;\n};\n\ninterface HtmlNodeOptions {\n key: string;\n name: ClerkComponentName;\n appearanceKey: Uncapitalize<AppearanceCascade['appearanceKey']>;\n props?: AvailableComponentProps;\n}\n\ninterface ComponentsProps {\n getClerk: () => Clerk;\n getEnvironment: () => EnvironmentResource | null | undefined;\n options: ClerkOptions;\n onComponentsMounted: () => void;\n moduleManager: ModuleManager;\n}\n\ninterface ComponentsState {\n appearance: Appearance | undefined;\n options: ClerkOptions | undefined;\n googleOneTapModal: null | GoogleOneTapProps;\n signInModal: null | SignInModalProps;\n signUpModal: null | SignUpModalProps;\n userProfileModal: null | UserProfileModalProps;\n userVerificationModal: null | __internal_UserVerificationProps;\n organizationProfileModal: null | OrganizationProfileModalProps;\n inviteMembersModal: null | InviteMembersModalProps;\n createOrganizationModal: null | CreateOrganizationModalProps;\n enableOrganizationsPromptModal: null | __internal_EnableOrganizationsPromptProps;\n blankCaptchaModal: null;\n protectCheckModal: null | __internal_ProtectCheckModalProps;\n organizationSwitcherPrefetch: boolean;\n waitlistModal: null | WaitlistModalProps;\n checkoutDrawer: {\n open: false;\n props: null | __internal_CheckoutProps;\n };\n planDetailsDrawer: {\n open: false;\n props: null | __internal_PlanDetailsProps;\n };\n subscriptionDetailsDrawer: {\n open: false;\n props: null | __internal_SubscriptionDetailsProps;\n };\n impersonationFab: boolean;\n}\n\nlet portalCt = 0;\n\nfunction assertDOMElement(element: HTMLElement): asserts element {\n if (!element) {\n clerkUIErrorDOMElementNotFound();\n }\n}\n\nexport const mountComponentRenderer = (\n getClerk: () => Clerk,\n getEnvironment: () => EnvironmentResource | null | undefined,\n _options: ClerkOptions,\n moduleManager: ModuleManager,\n) => {\n const options = { ..._options };\n // Extract cssLayerName from theme if present and move it to appearance level\n if (options.appearance) {\n options.appearance = extractCssLayerNameFromAppearance(options.appearance);\n }\n\n // TODO: Init of components should start\n // before /env and /client requests\n let clerkRoot = document.getElementById(ROOT_ELEMENT_ID);\n\n if (!clerkRoot) {\n clerkRoot = document.createElement('div');\n clerkRoot.setAttribute('id', 'clerk-components');\n document.body.appendChild(clerkRoot);\n }\n\n let componentsControlsResolver: Promise<ComponentControls> | undefined;\n\n return {\n ensureMounted: (opts?: { preloadHint: ClerkComponentName }) => {\n const { preloadHint } = opts || {};\n // Always preload, even if ensureMounted was already called.\n // preloadComponent is idempotent (returns cached promise on subsequent calls).\n if (preloadHint) {\n void preloadComponent(preloadHint).catch(() => {});\n }\n // This mechanism ensures that mountComponentControls will only be called once\n // and any calls to .mount before mountComponentControls resolves will fire in order.\n // Otherwise, we risk having components rendered multiple times, or having\n // .unmountComponent incorrectly called before the component is rendered\n if (!componentsControlsResolver) {\n const deferredPromise = createDeferredPromise();\n const mountTimeout = setTimeout(() => {\n console.error(\n '[Clerk UI] Component renderer did not mount within 10s. Common causes: a failed chunk load, a dev-server misconfiguration (e.g. unresolved lazy-compilation proxy), or a ClerkProvider/mountX call before the page is hydrated. Check the Network tab for stalled or empty requests.',\n );\n }, 10_000);\n componentsControlsResolver = import('./lazyModules/common')\n .then(({ createRoot }) => {\n createRoot(clerkRoot).render(\n <Components\n getClerk={getClerk}\n getEnvironment={getEnvironment}\n options={options}\n onComponentsMounted={() => {\n clearTimeout(mountTimeout);\n // Defer warning check to avoid blocking component mount\n // Only check in development mode (based on publishable key, not NODE_ENV)\n if (getClerk().instanceType === 'development') {\n const scheduleWarningCheck =\n typeof requestIdleCallback === 'function'\n ? requestIdleCallback\n : (cb: () => void) => setTimeout(cb, 0);\n scheduleWarningCheck(() => warnAboutCustomizationWithoutPinning(options));\n }\n deferredPromise.resolve();\n }}\n moduleManager={moduleManager}\n />,\n );\n return deferredPromise.promise.then(() => componentsControls);\n })\n .catch(err => {\n clearTimeout(mountTimeout);\n console.error('[Clerk UI] Failed to initialize component renderer:', err);\n throw err;\n });\n }\n return componentsControlsResolver.then(controls => controls);\n },\n };\n};\n\nexport type MountComponentRenderer = typeof mountComponentRenderer;\n\nconst componentsControls = {} as ComponentControls;\n\nconst componentNodes = Object.freeze({\n SignUp: 'signUpModal',\n SignIn: 'signInModal',\n UserProfile: 'userProfileModal',\n OrganizationProfile: 'organizationProfileModal',\n CreateOrganization: 'createOrganizationModal',\n Waitlist: 'waitlistModal',\n}) as any;\n\nconst Components = (props: ComponentsProps) => {\n const [state, setState] = React.useState<ComponentsState>({\n appearance: props.options.appearance,\n options: props.options,\n googleOneTapModal: null,\n signInModal: null,\n signUpModal: null,\n userProfileModal: null,\n userVerificationModal: null,\n organizationProfileModal: null,\n inviteMembersModal: null,\n createOrganizationModal: null,\n enableOrganizationsPromptModal: null,\n organizationSwitcherPrefetch: false,\n waitlistModal: null,\n blankCaptchaModal: null,\n protectCheckModal: null,\n checkoutDrawer: {\n open: false,\n props: null,\n },\n planDetailsDrawer: {\n open: false,\n props: null,\n },\n subscriptionDetailsDrawer: {\n open: false,\n props: null,\n },\n impersonationFab: false,\n });\n\n const {\n googleOneTapModal,\n signInModal,\n signUpModal,\n userProfileModal,\n userVerificationModal,\n organizationProfileModal,\n inviteMembersModal,\n createOrganizationModal,\n waitlistModal,\n blankCaptchaModal,\n protectCheckModal,\n checkoutDrawer,\n planDetailsDrawer,\n subscriptionDetailsDrawer,\n } = state;\n const clerk = props.getClerk();\n\n // We do this to ensure this component re-renders before any children listening to this state does.\n // This is necessary since `unmountComponent` uses `setState` to trigger re-renders, but this can\n // happen _after_ `useSyncExternalStore` triggers a re-render. This can cause the Clerk components to\n // re-render and even run effects when they should have already been unmounted.\n // Forcing this to re-render first to remove the children is a workaround for this issue.\n // Note that this does not fix the issue at its root, which is that it's possible for Clerk components\n // to stay mounted even after their node has been removed.\n useSyncExternalStore(\n useCallback(callback => clerk.addListener(callback, { skipInitialEmit: true }), [clerk]),\n useCallback(() => {\n return clerk.__internal_lastEmittedResources;\n }, [clerk]),\n // This is not a correct implementation of getServerSnapshot, but should be fine since we don't use the\n // return state anyway.\n // We currently do not server render the Clerk components, so leaving it out entirely would also be fine,\n // but this is a workaround to avoid a hard error when we want to experiment with server rendering.\n // A fully correct implementation would require passing in the initialState to the <Components> component.\n useCallback(() => {\n return clerk.__internal_lastEmittedResources;\n }, [clerk]),\n );\n\n // See above comment on useSyncExternalStore for why we use a ref to store the nodes instead of state\n const nodesRef = useRef<Map<HTMLDivElement, HtmlNodeOptions>>(new Map());\n\n const { urlStateParam, clearUrlStateParam, decodedRedirectParams } = useClerkModalStateParams();\n useSafeLayoutEffect(() => {\n if (decodedRedirectParams) {\n setState(s => ({\n ...s,\n [componentNodes[decodedRedirectParams.componentName]]: true,\n }));\n }\n\n const triggerRender = () => {\n setState(s => ({ ...s }));\n };\n\n componentsControls.mountComponent = params => {\n const { node, name, props, appearanceKey } = params;\n assertDOMElement(node);\n nodesRef.current.set(node, { key: `p${++portalCt}`, name, props, appearanceKey });\n triggerRender();\n };\n\n componentsControls.unmountComponent = params => {\n const { node } = params;\n nodesRef.current.delete(node);\n triggerRender();\n };\n\n componentsControls.updateProps = ({ node, props, ...restProps }) => {\n if (node && props && typeof props === 'object') {\n const nodeOptions = nodesRef.current.get(node);\n if (nodeOptions) {\n nodeOptions.props = { ...props };\n triggerRender();\n return;\n }\n }\n\n setState(s => ({ ...s, ...restProps, options: { ...s.options, ...restProps.options } }));\n };\n\n componentsControls.closeModal = (name, options = {}) => {\n const { notify = true } = options;\n clearUrlStateParam();\n setState(s => {\n function handleCloseModalForExperimentalUserVerification() {\n const modal = s[`${name}Modal`];\n if (modal && typeof modal === 'object' && 'afterVerificationCancelled' in modal && notify) {\n // TypeScript doesn't narrow properly with template literal access and 'in' operator\n (modal as { afterVerificationCancelled?: () => void }).afterVerificationCancelled?.();\n }\n }\n\n /**\n * We need this in order for `Clerk.__experimental_closeUserVerification()`\n * to properly trigger the previously defined `afterVerificationCancelled` callback\n */\n handleCloseModalForExperimentalUserVerification();\n\n return { ...s, [`${name}Modal`]: null };\n });\n };\n\n componentsControls.openModal = (name, props) => {\n // Prevent opening enableOrganizations prompt if it's already open\n // It should open the first call and ignore the subsequent calls\n if (name === 'enableOrganizationsPrompt') {\n setState(prev => {\n // Modal is already open, don't update state\n if (prev.enableOrganizationsPromptModal) {\n return prev;\n }\n\n return { ...prev, [`${name}Modal`]: props };\n });\n return;\n }\n\n function handleCloseModalForExperimentalUserVerification() {\n if (!('afterVerificationCancelled' in props)) {\n return;\n }\n\n setState(s => ({\n ...s,\n [`${name}Modal`]: {\n ...props,\n /**\n * When a UserVerification flow is completed, we need to close the modal without trigger a cancellation callback\n */\n afterVerification() {\n props.afterVerification?.();\n componentsControls.closeModal(name, { notify: false });\n },\n },\n }));\n }\n\n if ('afterVerificationCancelled' in props) {\n handleCloseModalForExperimentalUserVerification();\n } else {\n setState(s => ({ ...s, [`${name}Modal`]: props }));\n }\n };\n\n componentsControls.mountImpersonationFab = () => {\n setState(s => ({ ...s, impersonationFab: true }));\n };\n\n componentsControls.openProtectCheckModal = props => {\n componentsControls.openModal('protectCheck', props);\n };\n\n componentsControls.openDrawer = (name, props) => {\n setState(s => ({\n ...s,\n [`${name}Drawer`]: {\n open: true,\n props,\n },\n }));\n };\n\n componentsControls.closeDrawer = name => {\n setState(s => {\n const currentItem = s[`${name}Drawer`];\n // @ts-expect-error `__internal_PlanDetailsProps` does not accept `onClose`\n currentItem?.props?.onClose?.();\n return {\n ...s,\n [`${name}Drawer`]: {\n ...s[`${name}Drawer`],\n open: false,\n },\n };\n });\n };\n\n componentsControls.prefetch = component => {\n setState(s => ({ ...s, [`${component}Prefetch`]: true }));\n };\n\n props.onComponentsMounted();\n }, []);\n\n const mountedOneTapModal = (\n <LazyOneTapRenderer\n componentProps={googleOneTapModal}\n globalAppearance={state.appearance}\n componentAppearance={googleOneTapModal?.appearance}\n startPath={buildVirtualRouterUrl({ base: '/one-tap', path: '' })}\n />\n );\n\n const mountedSignInModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'signIn'}\n componentAppearance={signInModal?.appearance}\n flowName={'signIn'}\n onClose={() => componentsControls.closeModal('signIn')}\n onExternalNavigate={() => componentsControls.closeModal('signIn')}\n startPath={buildVirtualRouterUrl({ base: '/sign-in', path: urlStateParam?.path })}\n getContainer={signInModal?.getContainer ?? (() => null)}\n componentName={'SignInModal'}\n >\n <SignInModal {...signInModal} />\n <SignUpModal {...disambiguateRedirectOptions(signInModal, 'signin')} />\n <WaitlistModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedSignUpModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'signUp'}\n componentAppearance={signUpModal?.appearance}\n flowName={'signUp'}\n onClose={() => componentsControls.closeModal('signUp')}\n onExternalNavigate={() => componentsControls.closeModal('signUp')}\n startPath={buildVirtualRouterUrl({ base: '/sign-up', path: urlStateParam?.path })}\n getContainer={signUpModal?.getContainer ?? (() => null)}\n componentName={'SignUpModal'}\n >\n <SignInModal {...disambiguateRedirectOptions(signUpModal, 'signup')} />\n <SignUpModal {...signUpModal} />\n <WaitlistModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedUserProfileModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'userProfile'}\n componentAppearance={userProfileModal?.appearance}\n flowName={'userProfile'}\n onClose={() => componentsControls.closeModal('userProfile')}\n onExternalNavigate={() => componentsControls.closeModal('userProfile')}\n startPath={buildVirtualRouterUrl({\n base: '/user',\n path: userProfileModal?.__experimental_startPath || urlStateParam?.path,\n })}\n getContainer={userProfileModal?.getContainer ?? (() => null)}\n componentName={'UserProfileModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$176}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <UserProfileModal {...userProfileModal} />\n </LazyModalRenderer>\n );\n\n const mountedUserVerificationModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'userVerification'}\n componentAppearance={userVerificationModal?.appearance}\n flowName={'userVerification'}\n onClose={() => componentsControls.closeModal('userVerification')}\n onExternalNavigate={() => componentsControls.closeModal('userVerification')}\n startPath={buildVirtualRouterUrl({ base: '/user-verification', path: urlStateParam?.path })}\n getContainer={userVerificationModal?.getContainer ?? (() => null)}\n componentName={'UserVerificationModal'}\n modalContainerSx={{ alignItems: 'center' }}\n >\n <UserVerificationModal {...userVerificationModal} />\n </LazyModalRenderer>\n );\n\n const mountedOrganizationProfileModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'organizationProfile'}\n componentAppearance={organizationProfileModal?.appearance}\n flowName={'organizationProfile'}\n onClose={() => componentsControls.closeModal('organizationProfile')}\n onExternalNavigate={() => componentsControls.closeModal('organizationProfile')}\n startPath={buildVirtualRouterUrl({\n base: '/organizationProfile',\n path: organizationProfileModal?.__experimental_startPath || urlStateParam?.path,\n })}\n getContainer={organizationProfileModal?.getContainer ?? (() => null)}\n componentName={'OrganizationProfileModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$176}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <OrganizationProfileModal {...organizationProfileModal} />\n </LazyModalRenderer>\n );\n\n const mountedInviteMembersModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'organizationProfile'}\n componentAppearance={inviteMembersModal?.appearance}\n flowName={'organizationProfile'}\n onClose={() => componentsControls.closeModal('inviteMembers')}\n onExternalNavigate={() => componentsControls.closeModal('inviteMembers')}\n startPath={buildVirtualRouterUrl({ base: '/inviteMembers', path: urlStateParam?.path })}\n getContainer={inviteMembersModal?.getContainer ?? (() => null)}\n componentName={'InviteMembersModal'}\n modalContainerSx={{ alignItems: 'center' }}\n >\n <InviteMembersModal {...inviteMembersModal} />\n </LazyModalRenderer>\n );\n\n const mountedCreateOrganizationModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'createOrganization'}\n componentAppearance={createOrganizationModal?.appearance}\n flowName={'createOrganization'}\n onClose={() => componentsControls.closeModal('createOrganization')}\n onExternalNavigate={() => componentsControls.closeModal('createOrganization')}\n startPath={buildVirtualRouterUrl({ base: '/createOrganization', path: urlStateParam?.path })}\n getContainer={createOrganizationModal?.getContainer ?? (() => null)}\n componentName={'CreateOrganizationModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$120}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <CreateOrganizationModal {...createOrganizationModal} />\n </LazyModalRenderer>\n );\n\n const mountedWaitlistModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'waitlist'}\n componentAppearance={waitlistModal?.appearance}\n flowName={'waitlist'}\n onClose={() => componentsControls.closeModal('waitlist')}\n onExternalNavigate={() => componentsControls.closeModal('waitlist')}\n startPath={buildVirtualRouterUrl({ base: '/waitlist', path: urlStateParam?.path })}\n getContainer={waitlistModal?.getContainer ?? (() => null)}\n componentName={'WaitlistModal'}\n >\n <WaitlistModal {...waitlistModal} />\n <SignInModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedBlankCaptchaModal = (\n /**\n * Captcha modal should not close on `Clerk.navigate()`, hence we are not passing `onExternalNavigate`.\n */\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'blankCaptcha' as any}\n componentAppearance={{}}\n flowName={'blankCaptcha'}\n onClose={() => componentsControls.closeModal('blankCaptcha')}\n startPath={buildVirtualRouterUrl({ base: '/blank-captcha', path: urlStateParam?.path })}\n componentName={'BlankCaptchaModal'}\n canCloseModal={false}\n modalId={'cl-modal-captcha-wrapper'}\n modalStyle={{ visibility: 'hidden', pointerEvents: 'none' }}\n getContainer={() => null}\n >\n <BlankCaptchaModal />\n </LazyModalRenderer>\n );\n\n const mountedProtectCheckModal = protectCheckModal && (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'protectCheck' as any}\n componentAppearance={{}}\n flowName={'protectCheck'}\n onClose={() => componentsControls.closeModal('protectCheck')}\n startPath={buildVirtualRouterUrl({ base: '/protect-check', path: urlStateParam?.path })}\n componentName={'ProtectCheckModal'}\n canCloseModal={false}\n modalContainerSx={t => ({ alignItems: 'center', backdropFilter: `blur(${t.sizes.$2})` })}\n getContainer={() => null}\n >\n <ProtectCheckModal {...protectCheckModal} />\n </LazyModalRenderer>\n );\n\n return (\n <Suspense fallback={''}>\n <LazyProviders\n clerk={props.getClerk()}\n environment={props.getEnvironment()}\n options={state.options}\n moduleManager={props.moduleManager}\n >\n {[...nodesRef.current].map(([node, component]) => {\n return (\n <LazyComponentRenderer\n key={component.key}\n node={node}\n globalAppearance={state.appearance}\n appearanceKey={component.appearanceKey}\n componentAppearance={component.props?.appearance}\n componentName={component.name}\n componentProps={component.props}\n />\n );\n })}\n\n {googleOneTapModal && mountedOneTapModal}\n {signInModal && mountedSignInModal}\n {signUpModal && mountedSignUpModal}\n {userProfileModal && mountedUserProfileModal}\n {userVerificationModal && mountedUserVerificationModal}\n {organizationProfileModal && mountedOrganizationProfileModal}\n {inviteMembersModal && mountedInviteMembersModal}\n {createOrganizationModal && mountedCreateOrganizationModal}\n {waitlistModal && mountedWaitlistModal}\n {blankCaptchaModal && mountedBlankCaptchaModal}\n {mountedProtectCheckModal}\n\n <MountedCheckoutDrawer\n appearance={state.appearance}\n checkoutDrawer={checkoutDrawer}\n onOpenChange={() => componentsControls.closeDrawer('checkout')}\n />\n\n <MountedPlanDetailDrawer\n appearance={state.appearance}\n planDetailsDrawer={planDetailsDrawer}\n onOpenChange={() => componentsControls.closeDrawer('planDetails')}\n />\n\n <MountedSubscriptionDetailDrawer\n appearance={state.appearance}\n subscriptionDetailsDrawer={subscriptionDetailsDrawer}\n onOpenChange={() => componentsControls.closeDrawer('subscriptionDetails')}\n />\n\n {state.impersonationFab && (\n <LazyImpersonationFabProvider globalAppearance={state.appearance}>\n <ImpersonationFab />\n </LazyImpersonationFabProvider>\n )}\n\n {state.enableOrganizationsPromptModal && (\n <LazyEnableOrganizationsPromptProvider globalAppearance={state.appearance}>\n <EnableOrganizationsPrompt {...state.enableOrganizationsPromptModal} />\n </LazyEnableOrganizationsPromptProvider>\n )}\n\n {state.options?.__internal_keyless_claimKeylessApplicationUrl &&\n state.options?.__internal_keyless_copyInstanceKeysUrl && (\n <LazyImpersonationFabProvider globalAppearance={state.appearance}>\n <KeylessPrompt\n claimUrl={state.options.__internal_keyless_claimKeylessApplicationUrl}\n copyKeysUrl={state.options.__internal_keyless_copyInstanceKeysUrl}\n onDismiss={state.options.__internal_keyless_dismissPrompt}\n />\n </LazyImpersonationFabProvider>\n )}\n\n <Suspense>{state.organizationSwitcherPrefetch && <OrganizationSwitcherPrefetch />}</Suspense>\n </LazyProviders>\n </Suspense>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Components.js","names":[],"sources":["../src/Components.tsx"],"sourcesContent":["import { clerkUIErrorDOMElementNotFound } from '@clerk/shared/internal/clerk-js/errors';\nimport type { ModuleManager } from '@clerk/shared/moduleManager';\nimport type {\n __internal_CheckoutProps,\n __internal_EnableOrganizationsPromptProps,\n __internal_PlanDetailsProps,\n __internal_SubscriptionDetailsProps,\n __internal_UserVerificationProps,\n Clerk,\n ClerkOptions,\n CreateOrganizationModalProps,\n EnvironmentResource,\n GoogleOneTapProps,\n InviteMembersModalProps,\n OrganizationProfileModalProps,\n SignInModalProps,\n SignInProps,\n SignUpModalProps,\n SignUpProps,\n UserProfileModalProps,\n UserProfileProps,\n WaitlistModalProps,\n WaitlistProps,\n} from '@clerk/shared/types';\nimport { createDeferredPromise } from '@clerk/shared/utils';\nimport React, { Suspense, useCallback, useRef, useSyncExternalStore } from 'react';\n\nimport type { AppearanceCascade } from './customizables/parseAppearance';\n// NOTE: Using `./hooks` instead of `./hooks/useClerkModalStateParams` will increase the bundle size\nimport { useClerkModalStateParams } from './hooks/useClerkModalStateParams';\nimport type { Appearance } from './internal/appearance';\nimport type { ClerkComponentName } from './lazyModules/components';\nimport {\n BlankCaptchaModal,\n CreateOrganizationModal,\n EnableOrganizationsPrompt,\n ImpersonationFab,\n InviteMembersModal,\n KeylessPrompt,\n OrganizationProfileModal,\n preloadComponent,\n SignInModal,\n SignUpModal,\n UserProfileModal,\n UserVerificationModal,\n WaitlistModal,\n} from './lazyModules/components';\nimport { MountedCheckoutDrawer, MountedPlanDetailDrawer, MountedSubscriptionDetailDrawer } from './lazyModules/drawers';\nimport {\n LazyComponentRenderer,\n LazyEnableOrganizationsPromptProvider,\n LazyImpersonationFabProvider,\n LazyModalRenderer,\n LazyOneTapRenderer,\n LazyProviders,\n OrganizationSwitcherPrefetch,\n} from './lazyModules/providers';\nimport type { AvailableComponentProps } from './types';\nimport { buildVirtualRouterUrl } from './utils/buildVirtualRouterUrl';\nimport { disambiguateRedirectOptions } from './utils/disambiguateRedirectOptions';\nimport { extractCssLayerNameFromAppearance } from './utils/extractCssLayerNameFromAppearance';\nimport { warnAboutCustomizationWithoutPinning } from './utils/warnAboutCustomizationWithoutPinning';\n\n// Re-export for ClerkUI\nexport { extractCssLayerNameFromAppearance };\n\n/**\n * Avoid importing from `@clerk/shared/react` to prevent extra dependencies being added to the bundle.\n */\nconst useSafeLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport const ROOT_ELEMENT_ID = 'clerk-components';\n\nexport type ComponentControls = {\n mountComponent: (params: {\n appearanceKey: Uncapitalize<AppearanceCascade['appearanceKey']>;\n name: ClerkComponentName;\n node: HTMLDivElement;\n props?: AvailableComponentProps;\n }) => void;\n unmountComponent: (params: { node: HTMLDivElement }) => void;\n updateProps: (params: {\n appearance?: Appearance | undefined;\n options?: ClerkOptions | undefined;\n node?: HTMLDivElement;\n props?: unknown;\n }) => void;\n openModal: <\n T extends\n | 'googleOneTap'\n | 'signIn'\n | 'signUp'\n | 'userProfile'\n | 'organizationProfile'\n | 'inviteMembers'\n | 'createOrganization'\n | 'userVerification'\n | 'waitlist'\n | 'blankCaptcha'\n | 'enableOrganizationsPrompt',\n >(\n modal: T,\n props: T extends 'signIn'\n ? SignInProps\n : T extends 'signUp'\n ? SignUpProps\n : T extends 'userVerification'\n ? __internal_UserVerificationProps\n : T extends 'waitlist'\n ? WaitlistProps\n : T extends 'inviteMembers'\n ? InviteMembersModalProps\n : T extends 'enableOrganizationsPrompt'\n ? __internal_EnableOrganizationsPromptProps\n : UserProfileProps,\n ) => void;\n closeModal: (\n modal:\n | 'googleOneTap'\n | 'signIn'\n | 'signUp'\n | 'userProfile'\n | 'organizationProfile'\n | 'inviteMembers'\n | 'createOrganization'\n | 'userVerification'\n | 'waitlist'\n | 'blankCaptcha'\n | 'enableOrganizationsPrompt',\n options?: {\n notify?: boolean;\n },\n ) => void;\n openDrawer: <T extends 'checkout' | 'planDetails' | 'subscriptionDetails'>(\n drawer: T,\n props: T extends 'checkout'\n ? __internal_CheckoutProps\n : T extends 'planDetails'\n ? __internal_PlanDetailsProps\n : T extends 'subscriptionDetails'\n ? __internal_SubscriptionDetailsProps\n : never,\n ) => void;\n closeDrawer: (\n drawer: 'checkout' | 'planDetails' | 'subscriptionDetails',\n options?: {\n notify?: boolean;\n },\n ) => void;\n prefetch: (component: 'organizationSwitcher') => void;\n // Special case, as the impersonation fab mounts automatically\n mountImpersonationFab: () => void;\n};\n\ninterface HtmlNodeOptions {\n key: string;\n name: ClerkComponentName;\n appearanceKey: Uncapitalize<AppearanceCascade['appearanceKey']>;\n props?: AvailableComponentProps;\n}\n\ninterface ComponentsProps {\n getClerk: () => Clerk;\n getEnvironment: () => EnvironmentResource | null | undefined;\n options: ClerkOptions;\n onComponentsMounted: () => void;\n moduleManager: ModuleManager;\n}\n\ninterface ComponentsState {\n appearance: Appearance | undefined;\n options: ClerkOptions | undefined;\n googleOneTapModal: null | GoogleOneTapProps;\n signInModal: null | SignInModalProps;\n signUpModal: null | SignUpModalProps;\n userProfileModal: null | UserProfileModalProps;\n userVerificationModal: null | __internal_UserVerificationProps;\n organizationProfileModal: null | OrganizationProfileModalProps;\n inviteMembersModal: null | InviteMembersModalProps;\n createOrganizationModal: null | CreateOrganizationModalProps;\n enableOrganizationsPromptModal: null | __internal_EnableOrganizationsPromptProps;\n blankCaptchaModal: null;\n organizationSwitcherPrefetch: boolean;\n waitlistModal: null | WaitlistModalProps;\n checkoutDrawer: {\n open: false;\n props: null | __internal_CheckoutProps;\n };\n planDetailsDrawer: {\n open: false;\n props: null | __internal_PlanDetailsProps;\n };\n subscriptionDetailsDrawer: {\n open: false;\n props: null | __internal_SubscriptionDetailsProps;\n };\n impersonationFab: boolean;\n}\n\nlet portalCt = 0;\n\nfunction assertDOMElement(element: HTMLElement): asserts element {\n if (!element) {\n clerkUIErrorDOMElementNotFound();\n }\n}\n\nexport const mountComponentRenderer = (\n getClerk: () => Clerk,\n getEnvironment: () => EnvironmentResource | null | undefined,\n _options: ClerkOptions,\n moduleManager: ModuleManager,\n) => {\n const options = { ..._options };\n // Extract cssLayerName from theme if present and move it to appearance level\n if (options.appearance) {\n options.appearance = extractCssLayerNameFromAppearance(options.appearance);\n }\n\n // TODO: Init of components should start\n // before /env and /client requests\n let clerkRoot = document.getElementById(ROOT_ELEMENT_ID);\n\n if (!clerkRoot) {\n clerkRoot = document.createElement('div');\n clerkRoot.setAttribute('id', 'clerk-components');\n document.body.appendChild(clerkRoot);\n }\n\n let componentsControlsResolver: Promise<ComponentControls> | undefined;\n\n return {\n ensureMounted: (opts?: { preloadHint: ClerkComponentName }) => {\n const { preloadHint } = opts || {};\n // Always preload, even if ensureMounted was already called.\n // preloadComponent is idempotent (returns cached promise on subsequent calls).\n if (preloadHint) {\n void preloadComponent(preloadHint).catch(() => {});\n }\n // This mechanism ensures that mountComponentControls will only be called once\n // and any calls to .mount before mountComponentControls resolves will fire in order.\n // Otherwise, we risk having components rendered multiple times, or having\n // .unmountComponent incorrectly called before the component is rendered\n if (!componentsControlsResolver) {\n const deferredPromise = createDeferredPromise();\n const mountTimeout = setTimeout(() => {\n console.error(\n '[Clerk UI] Component renderer did not mount within 10s. Common causes: a failed chunk load, a dev-server misconfiguration (e.g. unresolved lazy-compilation proxy), or a ClerkProvider/mountX call before the page is hydrated. Check the Network tab for stalled or empty requests.',\n );\n }, 10_000);\n componentsControlsResolver = import('./lazyModules/common')\n .then(({ createRoot }) => {\n createRoot(clerkRoot).render(\n <Components\n getClerk={getClerk}\n getEnvironment={getEnvironment}\n options={options}\n onComponentsMounted={() => {\n clearTimeout(mountTimeout);\n // Defer warning check to avoid blocking component mount\n // Only check in development mode (based on publishable key, not NODE_ENV)\n if (getClerk().instanceType === 'development') {\n const scheduleWarningCheck =\n typeof requestIdleCallback === 'function'\n ? requestIdleCallback\n : (cb: () => void) => setTimeout(cb, 0);\n scheduleWarningCheck(() => warnAboutCustomizationWithoutPinning(options));\n }\n deferredPromise.resolve();\n }}\n moduleManager={moduleManager}\n />,\n );\n return deferredPromise.promise.then(() => componentsControls);\n })\n .catch(err => {\n clearTimeout(mountTimeout);\n console.error('[Clerk UI] Failed to initialize component renderer:', err);\n throw err;\n });\n }\n return componentsControlsResolver.then(controls => controls);\n },\n };\n};\n\nexport type MountComponentRenderer = typeof mountComponentRenderer;\n\nconst componentsControls = {} as ComponentControls;\n\nconst componentNodes = Object.freeze({\n SignUp: 'signUpModal',\n SignIn: 'signInModal',\n UserProfile: 'userProfileModal',\n OrganizationProfile: 'organizationProfileModal',\n CreateOrganization: 'createOrganizationModal',\n Waitlist: 'waitlistModal',\n}) as any;\n\nconst Components = (props: ComponentsProps) => {\n const [state, setState] = React.useState<ComponentsState>({\n appearance: props.options.appearance,\n options: props.options,\n googleOneTapModal: null,\n signInModal: null,\n signUpModal: null,\n userProfileModal: null,\n userVerificationModal: null,\n organizationProfileModal: null,\n inviteMembersModal: null,\n createOrganizationModal: null,\n enableOrganizationsPromptModal: null,\n organizationSwitcherPrefetch: false,\n waitlistModal: null,\n blankCaptchaModal: null,\n checkoutDrawer: {\n open: false,\n props: null,\n },\n planDetailsDrawer: {\n open: false,\n props: null,\n },\n subscriptionDetailsDrawer: {\n open: false,\n props: null,\n },\n impersonationFab: false,\n });\n\n const {\n googleOneTapModal,\n signInModal,\n signUpModal,\n userProfileModal,\n userVerificationModal,\n organizationProfileModal,\n inviteMembersModal,\n createOrganizationModal,\n waitlistModal,\n blankCaptchaModal,\n checkoutDrawer,\n planDetailsDrawer,\n subscriptionDetailsDrawer,\n } = state;\n const clerk = props.getClerk();\n\n // We do this to ensure this component re-renders before any children listening to this state does.\n // This is necessary since `unmountComponent` uses `setState` to trigger re-renders, but this can\n // happen _after_ `useSyncExternalStore` triggers a re-render. This can cause the Clerk components to\n // re-render and even run effects when they should have already been unmounted.\n // Forcing this to re-render first to remove the children is a workaround for this issue.\n // Note that this does not fix the issue at its root, which is that it's possible for Clerk components\n // to stay mounted even after their node has been removed.\n useSyncExternalStore(\n useCallback(callback => clerk.addListener(callback, { skipInitialEmit: true }), [clerk]),\n useCallback(() => {\n return clerk.__internal_lastEmittedResources;\n }, [clerk]),\n // This is not a correct implementation of getServerSnapshot, but should be fine since we don't use the\n // return state anyway.\n // We currently do not server render the Clerk components, so leaving it out entirely would also be fine,\n // but this is a workaround to avoid a hard error when we want to experiment with server rendering.\n // A fully correct implementation would require passing in the initialState to the <Components> component.\n useCallback(() => {\n return clerk.__internal_lastEmittedResources;\n }, [clerk]),\n );\n\n // See above comment on useSyncExternalStore for why we use a ref to store the nodes instead of state\n const nodesRef = useRef<Map<HTMLDivElement, HtmlNodeOptions>>(new Map());\n\n const { urlStateParam, clearUrlStateParam, decodedRedirectParams } = useClerkModalStateParams();\n useSafeLayoutEffect(() => {\n if (decodedRedirectParams) {\n setState(s => ({\n ...s,\n [componentNodes[decodedRedirectParams.componentName]]: true,\n }));\n }\n\n const triggerRender = () => {\n setState(s => ({ ...s }));\n };\n\n componentsControls.mountComponent = params => {\n const { node, name, props, appearanceKey } = params;\n assertDOMElement(node);\n nodesRef.current.set(node, { key: `p${++portalCt}`, name, props, appearanceKey });\n triggerRender();\n };\n\n componentsControls.unmountComponent = params => {\n const { node } = params;\n nodesRef.current.delete(node);\n triggerRender();\n };\n\n componentsControls.updateProps = ({ node, props, ...restProps }) => {\n if (node && props && typeof props === 'object') {\n const nodeOptions = nodesRef.current.get(node);\n if (nodeOptions) {\n nodeOptions.props = { ...props };\n triggerRender();\n return;\n }\n }\n\n setState(s => ({ ...s, ...restProps, options: { ...s.options, ...restProps.options } }));\n };\n\n componentsControls.closeModal = (name, options = {}) => {\n const { notify = true } = options;\n clearUrlStateParam();\n setState(s => {\n function handleCloseModalForExperimentalUserVerification() {\n const modal = s[`${name}Modal`];\n if (modal && typeof modal === 'object' && 'afterVerificationCancelled' in modal && notify) {\n // TypeScript doesn't narrow properly with template literal access and 'in' operator\n (modal as { afterVerificationCancelled?: () => void }).afterVerificationCancelled?.();\n }\n }\n\n /**\n * We need this in order for `Clerk.__experimental_closeUserVerification()`\n * to properly trigger the previously defined `afterVerificationCancelled` callback\n */\n handleCloseModalForExperimentalUserVerification();\n\n return { ...s, [`${name}Modal`]: null };\n });\n };\n\n componentsControls.openModal = (name, props) => {\n // Prevent opening enableOrganizations prompt if it's already open\n // It should open the first call and ignore the subsequent calls\n if (name === 'enableOrganizationsPrompt') {\n setState(prev => {\n // Modal is already open, don't update state\n if (prev.enableOrganizationsPromptModal) {\n return prev;\n }\n\n return { ...prev, [`${name}Modal`]: props };\n });\n return;\n }\n\n function handleCloseModalForExperimentalUserVerification() {\n if (!('afterVerificationCancelled' in props)) {\n return;\n }\n\n setState(s => ({\n ...s,\n [`${name}Modal`]: {\n ...props,\n /**\n * When a UserVerification flow is completed, we need to close the modal without trigger a cancellation callback\n */\n afterVerification() {\n props.afterVerification?.();\n componentsControls.closeModal(name, { notify: false });\n },\n },\n }));\n }\n\n if ('afterVerificationCancelled' in props) {\n handleCloseModalForExperimentalUserVerification();\n } else {\n setState(s => ({ ...s, [`${name}Modal`]: props }));\n }\n };\n\n componentsControls.mountImpersonationFab = () => {\n setState(s => ({ ...s, impersonationFab: true }));\n };\n\n componentsControls.openDrawer = (name, props) => {\n setState(s => ({\n ...s,\n [`${name}Drawer`]: {\n open: true,\n props,\n },\n }));\n };\n\n componentsControls.closeDrawer = name => {\n setState(s => {\n const currentItem = s[`${name}Drawer`];\n // @ts-expect-error `__internal_PlanDetailsProps` does not accept `onClose`\n currentItem?.props?.onClose?.();\n return {\n ...s,\n [`${name}Drawer`]: {\n ...s[`${name}Drawer`],\n open: false,\n },\n };\n });\n };\n\n componentsControls.prefetch = component => {\n setState(s => ({ ...s, [`${component}Prefetch`]: true }));\n };\n\n props.onComponentsMounted();\n }, []);\n\n const mountedOneTapModal = (\n <LazyOneTapRenderer\n componentProps={googleOneTapModal}\n globalAppearance={state.appearance}\n componentAppearance={googleOneTapModal?.appearance}\n startPath={buildVirtualRouterUrl({ base: '/one-tap', path: '' })}\n />\n );\n\n const mountedSignInModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'signIn'}\n componentAppearance={signInModal?.appearance}\n flowName={'signIn'}\n onClose={() => componentsControls.closeModal('signIn')}\n onExternalNavigate={() => componentsControls.closeModal('signIn')}\n startPath={buildVirtualRouterUrl({ base: '/sign-in', path: urlStateParam?.path })}\n getContainer={signInModal?.getContainer ?? (() => null)}\n componentName={'SignInModal'}\n >\n <SignInModal {...signInModal} />\n <SignUpModal {...disambiguateRedirectOptions(signInModal, 'signin')} />\n <WaitlistModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedSignUpModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'signUp'}\n componentAppearance={signUpModal?.appearance}\n flowName={'signUp'}\n onClose={() => componentsControls.closeModal('signUp')}\n onExternalNavigate={() => componentsControls.closeModal('signUp')}\n startPath={buildVirtualRouterUrl({ base: '/sign-up', path: urlStateParam?.path })}\n getContainer={signUpModal?.getContainer ?? (() => null)}\n componentName={'SignUpModal'}\n >\n <SignInModal {...disambiguateRedirectOptions(signUpModal, 'signup')} />\n <SignUpModal {...signUpModal} />\n <WaitlistModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedUserProfileModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'userProfile'}\n componentAppearance={userProfileModal?.appearance}\n flowName={'userProfile'}\n onClose={() => componentsControls.closeModal('userProfile')}\n onExternalNavigate={() => componentsControls.closeModal('userProfile')}\n startPath={buildVirtualRouterUrl({\n base: '/user',\n path: userProfileModal?.__experimental_startPath || urlStateParam?.path,\n })}\n getContainer={userProfileModal?.getContainer ?? (() => null)}\n componentName={'UserProfileModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$176}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <UserProfileModal {...userProfileModal} />\n </LazyModalRenderer>\n );\n\n const mountedUserVerificationModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'userVerification'}\n componentAppearance={userVerificationModal?.appearance}\n flowName={'userVerification'}\n onClose={() => componentsControls.closeModal('userVerification')}\n onExternalNavigate={() => componentsControls.closeModal('userVerification')}\n startPath={buildVirtualRouterUrl({ base: '/user-verification', path: urlStateParam?.path })}\n getContainer={userVerificationModal?.getContainer ?? (() => null)}\n componentName={'UserVerificationModal'}\n modalContainerSx={{ alignItems: 'center' }}\n >\n <UserVerificationModal {...userVerificationModal} />\n </LazyModalRenderer>\n );\n\n const mountedOrganizationProfileModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'organizationProfile'}\n componentAppearance={organizationProfileModal?.appearance}\n flowName={'organizationProfile'}\n onClose={() => componentsControls.closeModal('organizationProfile')}\n onExternalNavigate={() => componentsControls.closeModal('organizationProfile')}\n startPath={buildVirtualRouterUrl({\n base: '/organizationProfile',\n path: organizationProfileModal?.__experimental_startPath || urlStateParam?.path,\n })}\n getContainer={organizationProfileModal?.getContainer ?? (() => null)}\n componentName={'OrganizationProfileModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$176}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <OrganizationProfileModal {...organizationProfileModal} />\n </LazyModalRenderer>\n );\n\n const mountedInviteMembersModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'organizationProfile'}\n componentAppearance={inviteMembersModal?.appearance}\n flowName={'organizationProfile'}\n onClose={() => componentsControls.closeModal('inviteMembers')}\n onExternalNavigate={() => componentsControls.closeModal('inviteMembers')}\n startPath={buildVirtualRouterUrl({ base: '/inviteMembers', path: urlStateParam?.path })}\n getContainer={inviteMembersModal?.getContainer ?? (() => null)}\n componentName={'InviteMembersModal'}\n modalContainerSx={{ alignItems: 'center' }}\n >\n <InviteMembersModal {...inviteMembersModal} />\n </LazyModalRenderer>\n );\n\n const mountedCreateOrganizationModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'createOrganization'}\n componentAppearance={createOrganizationModal?.appearance}\n flowName={'createOrganization'}\n onClose={() => componentsControls.closeModal('createOrganization')}\n onExternalNavigate={() => componentsControls.closeModal('createOrganization')}\n startPath={buildVirtualRouterUrl({ base: '/createOrganization', path: urlStateParam?.path })}\n getContainer={createOrganizationModal?.getContainer ?? (() => null)}\n componentName={'CreateOrganizationModal'}\n modalContainerSx={{ alignItems: 'center' }}\n modalContentSx={t => ({ height: `min(${t.sizes.$120}, calc(100% - ${t.sizes.$12}))`, margin: 0 })}\n >\n <CreateOrganizationModal {...createOrganizationModal} />\n </LazyModalRenderer>\n );\n\n const mountedWaitlistModal = (\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'waitlist'}\n componentAppearance={waitlistModal?.appearance}\n flowName={'waitlist'}\n onClose={() => componentsControls.closeModal('waitlist')}\n onExternalNavigate={() => componentsControls.closeModal('waitlist')}\n startPath={buildVirtualRouterUrl({ base: '/waitlist', path: urlStateParam?.path })}\n getContainer={waitlistModal?.getContainer ?? (() => null)}\n componentName={'WaitlistModal'}\n >\n <WaitlistModal {...waitlistModal} />\n <SignInModal {...waitlistModal} />\n </LazyModalRenderer>\n );\n\n const mountedBlankCaptchaModal = (\n /**\n * Captcha modal should not close on `Clerk.navigate()`, hence we are not passing `onExternalNavigate`.\n */\n <LazyModalRenderer\n globalAppearance={state.appearance}\n appearanceKey={'blankCaptcha' as any}\n componentAppearance={{}}\n flowName={'blankCaptcha'}\n onClose={() => componentsControls.closeModal('blankCaptcha')}\n startPath={buildVirtualRouterUrl({ base: '/blank-captcha', path: urlStateParam?.path })}\n componentName={'BlankCaptchaModal'}\n canCloseModal={false}\n modalId={'cl-modal-captcha-wrapper'}\n modalStyle={{ visibility: 'hidden', pointerEvents: 'none' }}\n getContainer={() => null}\n >\n <BlankCaptchaModal />\n </LazyModalRenderer>\n );\n\n return (\n <Suspense fallback={''}>\n <LazyProviders\n clerk={props.getClerk()}\n environment={props.getEnvironment()}\n options={state.options}\n moduleManager={props.moduleManager}\n >\n {[...nodesRef.current].map(([node, component]) => {\n return (\n <LazyComponentRenderer\n key={component.key}\n node={node}\n globalAppearance={state.appearance}\n appearanceKey={component.appearanceKey}\n componentAppearance={component.props?.appearance}\n componentName={component.name}\n componentProps={component.props}\n />\n );\n })}\n\n {googleOneTapModal && mountedOneTapModal}\n {signInModal && mountedSignInModal}\n {signUpModal && mountedSignUpModal}\n {userProfileModal && mountedUserProfileModal}\n {userVerificationModal && mountedUserVerificationModal}\n {organizationProfileModal && mountedOrganizationProfileModal}\n {inviteMembersModal && mountedInviteMembersModal}\n {createOrganizationModal && mountedCreateOrganizationModal}\n {waitlistModal && mountedWaitlistModal}\n {blankCaptchaModal && mountedBlankCaptchaModal}\n\n <MountedCheckoutDrawer\n appearance={state.appearance}\n checkoutDrawer={checkoutDrawer}\n onOpenChange={() => componentsControls.closeDrawer('checkout')}\n />\n\n <MountedPlanDetailDrawer\n appearance={state.appearance}\n planDetailsDrawer={planDetailsDrawer}\n onOpenChange={() => componentsControls.closeDrawer('planDetails')}\n />\n\n <MountedSubscriptionDetailDrawer\n appearance={state.appearance}\n subscriptionDetailsDrawer={subscriptionDetailsDrawer}\n onOpenChange={() => componentsControls.closeDrawer('subscriptionDetails')}\n />\n\n {state.impersonationFab && (\n <LazyImpersonationFabProvider globalAppearance={state.appearance}>\n <ImpersonationFab />\n </LazyImpersonationFabProvider>\n )}\n\n {state.enableOrganizationsPromptModal && (\n <LazyEnableOrganizationsPromptProvider globalAppearance={state.appearance}>\n <EnableOrganizationsPrompt {...state.enableOrganizationsPromptModal} />\n </LazyEnableOrganizationsPromptProvider>\n )}\n\n {state.options?.__internal_keyless_claimKeylessApplicationUrl &&\n state.options?.__internal_keyless_copyInstanceKeysUrl && (\n <LazyImpersonationFabProvider globalAppearance={state.appearance}>\n <KeylessPrompt\n claimUrl={state.options.__internal_keyless_claimKeylessApplicationUrl}\n copyKeysUrl={state.options.__internal_keyless_copyInstanceKeysUrl}\n onDismiss={state.options.__internal_keyless_dismissPrompt}\n />\n </LazyImpersonationFabProvider>\n )}\n\n <Suspense>{state.organizationSwitcherPrefetch && <OrganizationSwitcherPrefetch />}</Suspense>\n </LazyProviders>\n </Suspense>\n );\n};\n"],"mappings":"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"}
@@ -18,14 +18,11 @@ function OneTapStartInternal() {
18
18
  const ctx = useGoogleOneTapContext();
19
19
  async function oneTapCallback(response) {
20
20
  isPromptedRef.current = false;
21
- const release = clerk.__internal_registerProtectCheckHandler?.(["signIn", "signUp"]);
22
21
  try {
23
22
  const res = await clerk.authenticateWithGoogleOneTap({ token: response.credential });
24
23
  await clerk.handleGoogleOneTapCallback(res, ctx.generateCallbackUrls(window.location.href), navigate);
25
24
  } catch (e) {
26
25
  console.error(e);
27
- } finally {
28
- release?.();
29
26
  }
30
27
  }
31
28
  const environmentClientID = environment.displayConfig.googleOneTapClientId;
@@ -1 +1 @@
1
- {"version":3,"file":"one-tap-start.js","names":[],"sources":["../../../src/components/GoogleOneTap/one-tap-start.tsx"],"sourcesContent":["import { clerkUnsupportedEnvironmentWarning } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk, useUser } from '@clerk/shared/react';\nimport { useEffect, useRef } from 'react';\n\nimport { withCardStateProvider } from '@/ui/elements/contexts';\n\nimport { useEnvironment, useGoogleOneTapContext } from '../../contexts';\nimport { useFetch } from '../../hooks';\nimport { useRouter } from '../../router';\nimport type { GISCredentialResponse } from '../../utils/one-tap';\nimport { loadGIS } from '../../utils/one-tap';\n\nfunction OneTapStartInternal(): JSX.Element | null {\n const clerk = useClerk();\n const { user } = useUser();\n const environment = useEnvironment();\n const isPromptedRef = useRef(false);\n const { navigate } = useRouter();\n\n const ctx = useGoogleOneTapContext();\n\n async function oneTapCallback(response: GISCredentialResponse) {\n isPromptedRef.current = false;\n const release = clerk.__internal_registerProtectCheckHandler?.(['signIn', 'signUp']);\n try {\n const res = await clerk.authenticateWithGoogleOneTap({\n token: response.credential,\n });\n await clerk.handleGoogleOneTapCallback(res, ctx.generateCallbackUrls(window.location.href), navigate);\n } catch (e: any) {\n console.error(e);\n } finally {\n release?.();\n }\n }\n\n const environmentClientID = environment.displayConfig.googleOneTapClientId;\n const shouldLoadGIS = !user?.id && !!environmentClientID;\n\n async function initializeGIS() {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Google Identity Services');\n return undefined;\n }\n\n const google = await loadGIS();\n\n google.accounts.id.initialize({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n client_id: environmentClientID!,\n callback: oneTapCallback,\n itp_support: ctx.itpSupport,\n cancel_on_tap_outside: ctx.cancelOnTapOutside,\n auto_select: false,\n use_fedcm_for_prompt: ctx.fedCmSupport,\n });\n\n return google;\n }\n\n /**\n * Prevent GIS from initializing multiple times\n */\n const { data: initializedGoogle } = useFetch(\n shouldLoadGIS ? initializeGIS : undefined,\n 'google-identity-services-script',\n );\n\n useEffect(() => {\n if (initializedGoogle && !user?.id && !isPromptedRef.current) {\n initializedGoogle.accounts.id.prompt(notification => {\n // Close the modal, when the user clicks outside the prompt or cancels\n if (notification.getMomentType() === 'skipped') {\n // Unmounts the component will cause the useEffect cleanup function from below to be called\n clerk.closeGoogleOneTap();\n }\n });\n isPromptedRef.current = true;\n }\n }, [clerk, initializedGoogle, user?.id]);\n\n // Trigger only on mount/unmount. Above we handle the logic for the initial fetch + initialization\n useEffect(() => {\n return () => {\n if (initializedGoogle && isPromptedRef.current) {\n isPromptedRef.current = false;\n initializedGoogle.accounts.id.cancel();\n }\n };\n }, [initializedGoogle]);\n\n return null;\n}\n\nexport const OneTapStart = withCardStateProvider(OneTapStartInternal);\n"],"mappings":";;;;;;;;;;;AAYA,SAAS,sBAA0C;CACjD,MAAM,QAAQ,SAAS;CACvB,MAAM,EAAE,SAAS,QAAQ;CACzB,MAAM,cAAc,eAAe;CACnC,MAAM,gBAAgB,OAAO,KAAK;CAClC,MAAM,EAAE,aAAa,UAAU;CAE/B,MAAM,MAAM,uBAAuB;CAEnC,eAAe,eAAe,UAAiC;EAC7D,cAAc,UAAU;EACxB,MAAM,UAAU,MAAM,yCAAyC,CAAC,UAAU,QAAQ,CAAC;EACnF,IAAI;GACF,MAAM,MAAM,MAAM,MAAM,6BAA6B,EACnD,OAAO,SAAS,WAClB,CAAC;GACD,MAAM,MAAM,2BAA2B,KAAK,IAAI,qBAAqB,OAAO,SAAS,IAAI,GAAG,QAAQ;EACtG,SAAS,GAAQ;GACf,QAAQ,MAAM,CAAC;EACjB,UAAU;GACR,UAAU;EACZ;CACF;CAEA,MAAM,sBAAsB,YAAY,cAAc;CACtD,MAAM,gBAAgB,CAAC,MAAM,MAAM,CAAC,CAAC;CAErC,eAAe,gBAAgB;EAM7B,MAAM,SAAS,MAAM,QAAQ;EAE7B,OAAO,SAAS,GAAG,WAAW;GAE5B,WAAW;GACX,UAAU;GACV,aAAa,IAAI;GACjB,uBAAuB,IAAI;GAC3B,aAAa;GACb,sBAAsB,IAAI;EAC5B,CAAC;EAED,OAAO;CACT;;;;CAKA,MAAM,EAAE,MAAM,sBAAsB,SAClC,gBAAgB,gBAAgB,QAChC,iCACF;CAEA,gBAAgB;EACd,IAAI,qBAAqB,CAAC,MAAM,MAAM,CAAC,cAAc,SAAS;GAC5D,kBAAkB,SAAS,GAAG,QAAO,iBAAgB;IAEnD,IAAI,aAAa,cAAc,MAAM,WAEnC,MAAM,kBAAkB;GAE5B,CAAC;GACD,cAAc,UAAU;EAC1B;CACF,GAAG;EAAC;EAAO;EAAmB,MAAM;CAAE,CAAC;CAGvC,gBAAgB;EACd,aAAa;GACX,IAAI,qBAAqB,cAAc,SAAS;IAC9C,cAAc,UAAU;IACxB,kBAAkB,SAAS,GAAG,OAAO;GACvC;EACF;CACF,GAAG,CAAC,iBAAiB,CAAC;CAEtB,OAAO;AACT;AAEA,MAAa,cAAc,sBAAsB,mBAAmB"}
1
+ {"version":3,"file":"one-tap-start.js","names":[],"sources":["../../../src/components/GoogleOneTap/one-tap-start.tsx"],"sourcesContent":["import { clerkUnsupportedEnvironmentWarning } from '@clerk/shared/internal/clerk-js/errors';\nimport { useClerk, useUser } from '@clerk/shared/react';\nimport { useEffect, useRef } from 'react';\n\nimport { withCardStateProvider } from '@/ui/elements/contexts';\n\nimport { useEnvironment, useGoogleOneTapContext } from '../../contexts';\nimport { useFetch } from '../../hooks';\nimport { useRouter } from '../../router';\nimport type { GISCredentialResponse } from '../../utils/one-tap';\nimport { loadGIS } from '../../utils/one-tap';\n\nfunction OneTapStartInternal(): JSX.Element | null {\n const clerk = useClerk();\n const { user } = useUser();\n const environment = useEnvironment();\n const isPromptedRef = useRef(false);\n const { navigate } = useRouter();\n\n const ctx = useGoogleOneTapContext();\n\n async function oneTapCallback(response: GISCredentialResponse) {\n isPromptedRef.current = false;\n try {\n const res = await clerk.authenticateWithGoogleOneTap({\n token: response.credential,\n });\n await clerk.handleGoogleOneTapCallback(res, ctx.generateCallbackUrls(window.location.href), navigate);\n } catch (e: any) {\n console.error(e);\n }\n }\n\n const environmentClientID = environment.displayConfig.googleOneTapClientId;\n const shouldLoadGIS = !user?.id && !!environmentClientID;\n\n async function initializeGIS() {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Google Identity Services');\n return undefined;\n }\n\n const google = await loadGIS();\n\n google.accounts.id.initialize({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n client_id: environmentClientID!,\n callback: oneTapCallback,\n itp_support: ctx.itpSupport,\n cancel_on_tap_outside: ctx.cancelOnTapOutside,\n auto_select: false,\n use_fedcm_for_prompt: ctx.fedCmSupport,\n });\n\n return google;\n }\n\n /**\n * Prevent GIS from initializing multiple times\n */\n const { data: initializedGoogle } = useFetch(\n shouldLoadGIS ? initializeGIS : undefined,\n 'google-identity-services-script',\n );\n\n useEffect(() => {\n if (initializedGoogle && !user?.id && !isPromptedRef.current) {\n initializedGoogle.accounts.id.prompt(notification => {\n // Close the modal, when the user clicks outside the prompt or cancels\n if (notification.getMomentType() === 'skipped') {\n // Unmounts the component will cause the useEffect cleanup function from below to be called\n clerk.closeGoogleOneTap();\n }\n });\n isPromptedRef.current = true;\n }\n }, [clerk, initializedGoogle, user?.id]);\n\n // Trigger only on mount/unmount. Above we handle the logic for the initial fetch + initialization\n useEffect(() => {\n return () => {\n if (initializedGoogle && isPromptedRef.current) {\n isPromptedRef.current = false;\n initializedGoogle.accounts.id.cancel();\n }\n };\n }, [initializedGoogle]);\n\n return null;\n}\n\nexport const OneTapStart = withCardStateProvider(OneTapStartInternal);\n"],"mappings":";;;;;;;;;;;AAYA,SAAS,sBAA0C;CACjD,MAAM,QAAQ,SAAS;CACvB,MAAM,EAAE,SAAS,QAAQ;CACzB,MAAM,cAAc,eAAe;CACnC,MAAM,gBAAgB,OAAO,KAAK;CAClC,MAAM,EAAE,aAAa,UAAU;CAE/B,MAAM,MAAM,uBAAuB;CAEnC,eAAe,eAAe,UAAiC;EAC7D,cAAc,UAAU;EACxB,IAAI;GACF,MAAM,MAAM,MAAM,MAAM,6BAA6B,EACnD,OAAO,SAAS,WAClB,CAAC;GACD,MAAM,MAAM,2BAA2B,KAAK,IAAI,qBAAqB,OAAO,SAAS,IAAI,GAAG,QAAQ;EACtG,SAAS,GAAQ;GACf,QAAQ,MAAM,CAAC;EACjB;CACF;CAEA,MAAM,sBAAsB,YAAY,cAAc;CACtD,MAAM,gBAAgB,CAAC,MAAM,MAAM,CAAC,CAAC;CAErC,eAAe,gBAAgB;EAM7B,MAAM,SAAS,MAAM,QAAQ;EAE7B,OAAO,SAAS,GAAG,WAAW;GAE5B,WAAW;GACX,UAAU;GACV,aAAa,IAAI;GACjB,uBAAuB,IAAI;GAC3B,aAAa;GACb,sBAAsB,IAAI;EAC5B,CAAC;EAED,OAAO;CACT;;;;CAKA,MAAM,EAAE,MAAM,sBAAsB,SAClC,gBAAgB,gBAAgB,QAChC,iCACF;CAEA,gBAAgB;EACd,IAAI,qBAAqB,CAAC,MAAM,MAAM,CAAC,cAAc,SAAS;GAC5D,kBAAkB,SAAS,GAAG,QAAO,iBAAgB;IAEnD,IAAI,aAAa,cAAc,MAAM,WAEnC,MAAM,kBAAkB;GAE5B,CAAC;GACD,cAAc,UAAU;EAC1B;CACF,GAAG;EAAC;EAAO;EAAmB,MAAM;CAAE,CAAC;CAGvC,gBAAgB;EACd,aAAa;GACX,IAAI,qBAAqB,cAAc,SAAS;IAC9C,cAAc,UAAU;IACxB,kBAAkB,SAAS,GAAG,OAAO;GACvC;EACF;CACF,GAAG,CAAC,iBAAiB,CAAC;CAEtB,OAAO;AACT;AAEA,MAAa,cAAc,sBAAsB,mBAAmB"}
@@ -6,10 +6,10 @@ import { useCardState, withCardStateProvider } from "../../elements/contexts/ind
6
6
  import { actionBlockedDetailsFrom } from "../../utils/actionBlocked.js";
7
7
  import { ActionBlockedCard } from "../../common/ActionBlockedCard.js";
8
8
  import { withRedirectToAfterSignIn } from "../../common/withRedirect.js";
9
- import { useProtectCheckRunner } from "../../hooks/useProtectCheckRunner.js";
10
- import { ProtectCheckCard } from "../ProtectCheck/ProtectCheckCard.js";
11
9
  import { buildSignInOAuthCallbackParams } from "./buildOAuthCallbackParams.js";
12
10
  import { isProtectCheckRequiredError, isSignInPendingOAuthTransfer, isSignInProtectGated, resumeSignInAfterProtectCheck } from "./handleProtectCheck.js";
11
+ import { useProtectCheckRunner } from "../../hooks/useProtectCheckRunner.js";
12
+ import { ProtectCheckCard } from "../ProtectCheck/ProtectCheckCard.js";
13
13
  import { useEffect, useRef, useState } from "react";
14
14
  import { removeClerkQueryParam } from "@clerk/shared/internal/clerk-js/queryParams";
15
15
  import { useClerk } from "@clerk/shared/react";
@@ -38,9 +38,6 @@ function RedirectToSignIn() {
38
38
  function SignInRoutes() {
39
39
  const signInContext = useSignInContext();
40
40
  const signUpContext = useSignUpContext();
41
- const clerk = useClerk();
42
- const { isCombinedFlow } = signInContext;
43
- React.useEffect(() => clerk.__internal_registerProtectCheckHandler?.(isCombinedFlow ? ["signIn", "signUp"] : ["signIn"]), [clerk, isCombinedFlow]);
44
41
  return /* @__PURE__ */ jsx(Flow.Root, {
45
42
  flow: "signIn",
46
43
  children: /* @__PURE__ */ jsxs(Switch, { children: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LazySessionTasks"],"sources":["../../../src/components/SignIn/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInModalProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport {\n SignInContext,\n SignUpContext,\n useSignInContext,\n useSignUpContext,\n withCoreSessionSwitchGuard,\n} from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { useFetch } from '@/hooks';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport type { SignUpCtx } from '@/types';\nimport { SignInFactorOneSolanaWalletsCard } from '@/ui/components/SignIn/SignInFactorOneSolanaWalletsCard';\nimport { normalizeRoutingOptions } from '@/utils/normalizeRoutingOptions';\n\nimport { buildSignInOAuthCallbackParams, buildSignUpOAuthCallbackParams } from './buildOAuthCallbackParams';\nimport {\n LazySignUpContinue,\n LazySignUpProtectCheck,\n LazySignUpSSOCallback,\n LazySignUpStart,\n LazySignUpVerifyEmail,\n LazySignUpVerifyPhone,\n preloadSignUp,\n} from './lazy-sign-up';\nimport { ResetPassword } from './ResetPassword';\nimport { ResetPasswordSuccess } from './ResetPasswordSuccess';\nimport { SignInAccountSwitcher } from './SignInAccountSwitcher';\nimport { SignInClientTrust } from './SignInClientTrust';\nimport { SignInEmailLinkVerify } from './SignInEmailLinkVerify';\nimport { SignInFactorOne } from './SignInFactorOne';\nimport { SignInFactorTwo } from './SignInFactorTwo';\nimport { SignInProtectCheck } from './SignInProtectCheck';\nimport { SignInSSOCallback } from './SignInSSOCallback';\nimport { SignInStart } from './SignInStart';\n\nfunction RedirectToSignIn() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignIn();\n }, [clerk]);\n return null;\n}\n\nfunction SignInRoutes(): JSX.Element {\n const signInContext = useSignInContext();\n const signUpContext = useSignUpContext();\n const clerk = useClerk();\n const { isCombinedFlow } = signInContext;\n React.useEffect(\n () => clerk.__internal_registerProtectCheckHandler?.(isCombinedFlow ? ['signIn', 'signUp'] : ['signIn']),\n [clerk, isCombinedFlow],\n );\n\n return (\n <Flow.Root flow='signIn'>\n <Switch>\n {/* No canActivate guard here. `!!signIn.protectCheck` flips to false the\n instant the check resolves (submitProtectCheck clears protectCheck),\n which would unmount this card mid-navigation and blank the route\n (RouteGuard renders null + navigateToFlowStart). The card owns its\n own routing — it navigates to the next step on resolution. */}\n <Route path='protect-check'>\n <SignInProtectCheck />\n </Route>\n <Route path='factor-one'>\n <SignInFactorOne />\n </Route>\n <Route path='factor-two'>\n <SignInFactorTwo />\n </Route>\n <Route path='client-trust'>\n <SignInClientTrust />\n </Route>\n <Route path='reset-password'>\n <ResetPassword />\n </Route>\n <Route path='reset-password-success'>\n <ResetPasswordSuccess />\n </Route>\n <Route path='sso-callback'>\n <SignInSSOCallback {...buildSignInOAuthCallbackParams(signInContext)} />\n </Route>\n <Route path='choose'>\n <SignInAccountSwitcher />\n </Route>\n <Route path='choose-wallet'>\n <SignInFactorOneSolanaWalletsCard />\n </Route>\n <Route path='verify'>\n <SignInEmailLinkVerify />\n </Route>\n\n {signInContext.isCombinedFlow && (\n <Route path='create'>\n {/* No canActivate guard — same resolution race as the sign-in\n protect-check route above; the card owns its own routing. */}\n <Route path='protect-check'>\n <LazySignUpProtectCheck />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <LazySignUpSSOCallback {...buildSignUpOAuthCallbackParams(signUpContext)} />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n ssoCallbackUrl={signUpContext.ssoCallbackUrl}\n oidcPrompt={signUpContext.oidcPrompt}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n continuePath='../continue'\n />\n </Route>\n <Route path='continue'>\n {/* No canActivate guard — same resolution race as the sign-in\n protect-check route; the card owns its own routing. */}\n <Route path='protect-check'>\n {/* Under `create/continue`, the continue index is `..`, not `../continue`. */}\n <LazySignUpProtectCheck continuePath='..' />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route index>\n <LazySignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignUpUrl} />\n </Route>\n <Route index>\n <LazySignUpStart />\n </Route>\n </Route>\n )}\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignInUrl} />\n </Route>\n <Route index>\n <SignInStart />\n </Route>\n <Route>\n <RedirectToSignIn />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nconst usePreloadSignUp = (enabled = false) =>\n useFetch(enabled ? preloadSignUp : undefined, 'preloadComponent', { staleTime: Infinity });\n\nfunction SignInRoot() {\n const signInContext = useSignInContext();\n const normalizedSignUpContext = {\n componentName: 'SignUp',\n emailLinkRedirectUrl: signInContext.emailLinkRedirectUrl,\n ssoCallbackUrl: signInContext.ssoCallbackUrl,\n oidcPrompt: signInContext.oidcPrompt,\n forceRedirectUrl: signInContext.signUpForceRedirectUrl,\n fallbackRedirectUrl: signInContext.signUpFallbackRedirectUrl,\n signInUrl: signInContext.signInUrl,\n unsafeMetadata: signInContext.unsafeMetadata,\n ...normalizeRoutingOptions({ routing: signInContext?.routing, path: signInContext?.path }),\n } as SignUpCtx;\n\n /**\n * Preload Sign Up when in Combined Flow.\n */\n usePreloadSignUp(signInContext.isCombinedFlow);\n\n usePreloadTasks();\n\n return (\n <SignUpContext.Provider value={normalizedSignUpContext}>\n <SignInRoutes />\n </SignUpContext.Provider>\n );\n}\n\nSignInRoutes.displayName = 'SignIn';\n\nexport const SignIn: React.ComponentType<SignInProps> = withCoreSessionSwitchGuard(SignInRoot);\n\nconst InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>> = withCoreSessionSwitchGuard(SignInRoot);\n\nexport const SignInModal = (props: SignInModalProps): JSX.Element => {\n const signInProps = {\n signUpUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-up`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-in'>\n <SignInContext.Provider\n value={{\n componentName: 'SignIn',\n ...signInProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignIn\n {...signInProps}\n routing='virtual'\n />\n </div>\n </SignInContext.Provider>\n </Route>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["LazySessionTasks"],"sources":["../../../src/components/SignIn/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignInModalProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport {\n SignInContext,\n SignUpContext,\n useSignInContext,\n useSignUpContext,\n withCoreSessionSwitchGuard,\n} from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { useFetch } from '@/hooks';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport type { SignUpCtx } from '@/types';\nimport { SignInFactorOneSolanaWalletsCard } from '@/ui/components/SignIn/SignInFactorOneSolanaWalletsCard';\nimport { normalizeRoutingOptions } from '@/utils/normalizeRoutingOptions';\n\nimport { buildSignInOAuthCallbackParams, buildSignUpOAuthCallbackParams } from './buildOAuthCallbackParams';\nimport {\n LazySignUpContinue,\n LazySignUpProtectCheck,\n LazySignUpSSOCallback,\n LazySignUpStart,\n LazySignUpVerifyEmail,\n LazySignUpVerifyPhone,\n preloadSignUp,\n} from './lazy-sign-up';\nimport { ResetPassword } from './ResetPassword';\nimport { ResetPasswordSuccess } from './ResetPasswordSuccess';\nimport { SignInAccountSwitcher } from './SignInAccountSwitcher';\nimport { SignInClientTrust } from './SignInClientTrust';\nimport { SignInEmailLinkVerify } from './SignInEmailLinkVerify';\nimport { SignInFactorOne } from './SignInFactorOne';\nimport { SignInFactorTwo } from './SignInFactorTwo';\nimport { SignInProtectCheck } from './SignInProtectCheck';\nimport { SignInSSOCallback } from './SignInSSOCallback';\nimport { SignInStart } from './SignInStart';\n\nfunction RedirectToSignIn() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignIn();\n }, [clerk]);\n return null;\n}\n\nfunction SignInRoutes(): JSX.Element {\n const signInContext = useSignInContext();\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signIn'>\n <Switch>\n {/* No canActivate guard here. `!!signIn.protectCheck` flips to false the\n instant the check resolves (submitProtectCheck clears protectCheck),\n which would unmount this card mid-navigation and blank the route\n (RouteGuard renders null + navigateToFlowStart). The card owns its\n own routing — it navigates to the next step on resolution. */}\n <Route path='protect-check'>\n <SignInProtectCheck />\n </Route>\n <Route path='factor-one'>\n <SignInFactorOne />\n </Route>\n <Route path='factor-two'>\n <SignInFactorTwo />\n </Route>\n <Route path='client-trust'>\n <SignInClientTrust />\n </Route>\n <Route path='reset-password'>\n <ResetPassword />\n </Route>\n <Route path='reset-password-success'>\n <ResetPasswordSuccess />\n </Route>\n <Route path='sso-callback'>\n <SignInSSOCallback {...buildSignInOAuthCallbackParams(signInContext)} />\n </Route>\n <Route path='choose'>\n <SignInAccountSwitcher />\n </Route>\n <Route path='choose-wallet'>\n <SignInFactorOneSolanaWalletsCard />\n </Route>\n <Route path='verify'>\n <SignInEmailLinkVerify />\n </Route>\n\n {signInContext.isCombinedFlow && (\n <Route path='create'>\n {/* No canActivate guard — same resolution race as the sign-in\n protect-check route above; the card owns its own routing. */}\n <Route path='protect-check'>\n <LazySignUpProtectCheck />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <LazySignUpSSOCallback {...buildSignUpOAuthCallbackParams(signUpContext)} />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n ssoCallbackUrl={signUpContext.ssoCallbackUrl}\n oidcPrompt={signUpContext.oidcPrompt}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n continuePath='../continue'\n />\n </Route>\n <Route path='continue'>\n {/* No canActivate guard — same resolution race as the sign-in\n protect-check route; the card owns its own routing. */}\n <Route path='protect-check'>\n {/* Under `create/continue`, the continue index is `..`, not `../continue`. */}\n <LazySignUpProtectCheck continuePath='..' />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <LazySignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <LazySignUpVerifyPhone />\n </Route>\n <Route index>\n <LazySignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignUpUrl} />\n </Route>\n <Route index>\n <LazySignUpStart />\n </Route>\n </Route>\n )}\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signInContext.afterSignInUrl} />\n </Route>\n <Route index>\n <SignInStart />\n </Route>\n <Route>\n <RedirectToSignIn />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nconst usePreloadSignUp = (enabled = false) =>\n useFetch(enabled ? preloadSignUp : undefined, 'preloadComponent', { staleTime: Infinity });\n\nfunction SignInRoot() {\n const signInContext = useSignInContext();\n const normalizedSignUpContext = {\n componentName: 'SignUp',\n emailLinkRedirectUrl: signInContext.emailLinkRedirectUrl,\n ssoCallbackUrl: signInContext.ssoCallbackUrl,\n oidcPrompt: signInContext.oidcPrompt,\n forceRedirectUrl: signInContext.signUpForceRedirectUrl,\n fallbackRedirectUrl: signInContext.signUpFallbackRedirectUrl,\n signInUrl: signInContext.signInUrl,\n unsafeMetadata: signInContext.unsafeMetadata,\n ...normalizeRoutingOptions({ routing: signInContext?.routing, path: signInContext?.path }),\n } as SignUpCtx;\n\n /**\n * Preload Sign Up when in Combined Flow.\n */\n usePreloadSignUp(signInContext.isCombinedFlow);\n\n usePreloadTasks();\n\n return (\n <SignUpContext.Provider value={normalizedSignUpContext}>\n <SignInRoutes />\n </SignUpContext.Provider>\n );\n}\n\nSignInRoutes.displayName = 'SignIn';\n\nexport const SignIn: React.ComponentType<SignInProps> = withCoreSessionSwitchGuard(SignInRoot);\n\nconst InternalSignIn: React.ComponentType<WithInternalRouting<SignInProps>> = withCoreSessionSwitchGuard(SignInRoot);\n\nexport const SignInModal = (props: SignInModalProps): JSX.Element => {\n const signInProps = {\n signUpUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-up`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-in'>\n <SignInContext.Provider\n value={{\n componentName: 'SignIn',\n ...signInProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignIn\n {...signInProps}\n routing='virtual'\n />\n </div>\n </SignInContext.Provider>\n </Route>\n );\n};\n"],"mappings":"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"}
@@ -30,8 +30,6 @@ function RedirectToSignUp() {
30
30
  function SignUpRoutes() {
31
31
  usePreloadTasks();
32
32
  const signUpContext = useSignUpContext();
33
- const clerk = useClerk();
34
- React.useEffect(() => clerk.__internal_registerProtectCheckHandler?.(["signUp"]), [clerk]);
35
33
  return /* @__PURE__ */ jsx(Flow.Root, {
36
34
  flow: "signUp",
37
35
  children: /* @__PURE__ */ jsxs(Switch, { children: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LazySessionTasks"],"sources":["../../../src/components/SignUp/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignUpModalProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport { SignUpContext, useSignUpContext, withCoreSessionSwitchGuard } from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport { SignUpStartSolanaWalletsCard } from '@/ui/components/SignUp/SignUpStartSolanaWalletsCard';\n\nimport { SignUpContinue } from './SignUpContinue';\nimport { SignUpEnterpriseConnections } from './SignUpEnterpriseConnections';\nimport { SignUpProtectCheck } from './SignUpProtectCheck';\nimport { SignUpSSOCallback } from './SignUpSSOCallback';\nimport { SignUpStart } from './SignUpStart';\nimport { SignUpVerifyEmail } from './SignUpVerifyEmail';\nimport { SignUpVerifyPhone } from './SignUpVerifyPhone';\n\nfunction RedirectToSignUp() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignUp();\n }, [clerk]);\n return null;\n}\n\nfunction SignUpRoutes(): JSX.Element {\n usePreloadTasks();\n\n const signUpContext = useSignUpContext();\n const clerk = useClerk();\n React.useEffect(() => clerk.__internal_registerProtectCheckHandler?.(['signUp']), [clerk]);\n\n return (\n <Flow.Root flow='signUp'>\n <Switch>\n {/* No canActivate guard here. `!!signUp.protectCheck` flips to false\n when submitProtectCheck resolves and clears protectCheck, which\n unmounts this card mid-navigation and blanks the route. The card\n owns its own post-resolution routing. */}\n <Route path='protect-check'>\n <SignUpProtectCheck />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <SignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n signUpProtectCheckUrl='../protect-check'\n unsafeMetadata={signUpContext.unsafeMetadata}\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n ssoCallbackUrl={signUpContext.ssoCallbackUrl}\n oidcPrompt={signUpContext.oidcPrompt}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n />\n </Route>\n <Route path='continue'>\n {/* No canActivate guard: same resolution race as the top-level\n protect-check route; the card owns its own routing. */}\n <Route path='protect-check'>\n {/* Under `continue`, the continue index is `..`, not `../continue`. */}\n <SignUpProtectCheck continuePath='..' />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route index>\n <SignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signUpContext.afterSignUpUrl} />\n </Route>\n <Route path='enterprise-connections'>\n <SignUpEnterpriseConnections />\n </Route>\n <Route path='choose-wallet'>\n <SignUpStartSolanaWalletsCard />\n </Route>\n <Route index>\n <SignUpStart />\n </Route>\n <Route>\n <RedirectToSignUp />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nSignUpRoutes.displayName = 'SignUp';\n\nexport const SignUp: React.ComponentType<SignUpProps> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nconst InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nexport const SignUpModal = (props: SignUpModalProps): JSX.Element => {\n const signUpProps = {\n signInUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-in`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-up'>\n <SignUpContext.Provider\n value={{\n componentName: 'SignUp',\n ...signUpProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignUp\n {...signUpProps}\n routing='virtual'\n />\n </div>\n </SignUpContext.Provider>\n </Route>\n );\n};\n\nexport { SignUpContinue, SignUpProtectCheck, SignUpSSOCallback, SignUpStart, SignUpVerifyEmail, SignUpVerifyPhone };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,mBAAmB;CAC1B,MAAM,QAAQ,SAAS;CACvB,MAAM,gBAAgB;EACpB,AAAK,MAAM,iBAAiB;CAC9B,GAAG,CAAC,KAAK,CAAC;CACV,OAAO;AACT;AAEA,SAAS,eAA4B;CACnC,gBAAgB;CAEhB,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,QAAQ,SAAS;CACvB,MAAM,gBAAgB,MAAM,yCAAyC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;CAEzF,OACE,oBAAC,KAAK,MAAN;EAAW,MAAK;YACd,qBAAC,QAAD;GAKE,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,oBAAD,CAAqB;GAChB;GACP,oBAAC,OAAD;IACE,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,mBAAD,CAAoB;GACf;GACP,oBAAC,OAAD;IACE,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,mBAAD,CAAoB;GACf;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,mBAAD;KACE,WAAW,cAAc;KACzB,WAAW,cAAc;KACzB,wBAAwB,cAAc;KACtC,wBAAwB,cAAc;KACtC,iBAAiB,cAAc;KAC/B,mBAAkB;KAClB,uBAAsB;KACtB,sBAAqB;KACrB,uBAAsB;KACtB,gBAAgB,cAAc;IAC/B;GACI;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,6BAAD;KACE,qBAAqB,cAAc;KACnC,gBAAgB,cAAc;KAC9B,YAAY,cAAc;KAC1B,iBAAgB;KAChB,iBAAgB;IACjB;GACI;GACP,qBAAC,OAAD;IAAO,MAAK;cAAZ;KAGE,oBAAC,OAAD;MAAO,MAAK;gBAEV,oBAAC,oBAAD,EAAoB,cAAa,KAAM;KAClC;KACP,oBAAC,OAAD;MACE,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,mBAAD,CAAoB;KACf;KACP,oBAAC,OAAD;MACE,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,mBAAD,CAAoB;KACf;KACP,oBAAC,OAAD;MAAO;gBACL,oBAAC,gBAAD,CAAiB;KACZ;IACF;;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAACA,cAAD,EAAkB,qBAAqB,cAAc,eAAiB;GACjE;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,6BAAD,CAA8B;GACzB;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,8BAAD,CAA+B;GAC1B;GACP,oBAAC,OAAD;IAAO;cACL,oBAAC,aAAD,CAAc;GACT;GACP,oBAAC,OAAD,YACE,oBAAC,kBAAD,CAAmB,GACd;EACD;CACC;AAEf;AAEA,aAAa,cAAc;AAE3B,MAAa,SAA2C,2BAA2B,YAAY;AAE/F,MAAM,iBAAwE,2BAA2B,YAAY;AAErH,MAAa,eAAe,UAAyC;CACnE,MAAM,cAAc;EAClB,WAAW,IAAI,yBAAyB;EACxC,aAAa,IAAI,yBAAyB;EAC1C,GAAG;CACL;CAEA,OACE,oBAAC,OAAD;EAAO,MAAK;YACV,oBAAC,cAAc,UAAf;GACE,OAAO;IACL,eAAe;IACf,GAAG;IACH,SAAS;IACT,MAAM;GACR;aAGA,oBAAC,OAAD,YACE,oBAAC,gBAAD;IACE,GAAI;IACJ,SAAQ;GACT,GACE;EACiB;CACnB;AAEX"}
1
+ {"version":3,"file":"index.js","names":["LazySessionTasks"],"sources":["../../../src/components/SignUp/index.tsx"],"sourcesContent":["import { useClerk } from '@clerk/shared/react';\nimport type { SignUpModalProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { SignUpEmailLinkFlowComplete } from '@/common/EmailLinkCompleteFlowCard';\nimport { SignUpContext, useSignUpContext, withCoreSessionSwitchGuard } from '@/contexts';\nimport { Flow } from '@/customizables';\nimport { usePreloadTasks } from '@/hooks/usePreloadTasks';\nimport type { WithInternalRouting } from '@/internal';\nimport { SessionTasks as LazySessionTasks } from '@/lazyModules/components';\nimport { Route, Switch, VIRTUAL_ROUTER_BASE_PATH } from '@/router';\nimport { SignUpStartSolanaWalletsCard } from '@/ui/components/SignUp/SignUpStartSolanaWalletsCard';\n\nimport { SignUpContinue } from './SignUpContinue';\nimport { SignUpEnterpriseConnections } from './SignUpEnterpriseConnections';\nimport { SignUpProtectCheck } from './SignUpProtectCheck';\nimport { SignUpSSOCallback } from './SignUpSSOCallback';\nimport { SignUpStart } from './SignUpStart';\nimport { SignUpVerifyEmail } from './SignUpVerifyEmail';\nimport { SignUpVerifyPhone } from './SignUpVerifyPhone';\n\nfunction RedirectToSignUp() {\n const clerk = useClerk();\n React.useEffect(() => {\n void clerk.redirectToSignUp();\n }, [clerk]);\n return null;\n}\n\nfunction SignUpRoutes(): JSX.Element {\n usePreloadTasks();\n\n const signUpContext = useSignUpContext();\n\n return (\n <Flow.Root flow='signUp'>\n <Switch>\n {/* No canActivate guard here. `!!signUp.protectCheck` flips to false\n when submitProtectCheck resolves and clears protectCheck, which\n unmounts this card mid-navigation and blanks the route. The card\n owns its own post-resolution routing. */}\n <Route path='protect-check'>\n <SignUpProtectCheck />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route path='sso-callback'>\n <SignUpSSOCallback\n signUpUrl={signUpContext.signUpUrl}\n signInUrl={signUpContext.signInUrl}\n signUpForceRedirectUrl={signUpContext.afterSignUpUrl}\n signInForceRedirectUrl={signUpContext.afterSignInUrl}\n secondFactorUrl={signUpContext.secondFactorUrl}\n continueSignUpUrl='../continue'\n verifyEmailAddressUrl='../verify-email-address'\n verifyPhoneNumberUrl='../verify-phone-number'\n signUpProtectCheckUrl='../protect-check'\n unsafeMetadata={signUpContext.unsafeMetadata}\n />\n </Route>\n <Route path='verify'>\n <SignUpEmailLinkFlowComplete\n redirectUrlComplete={signUpContext.afterSignUpUrl}\n ssoCallbackUrl={signUpContext.ssoCallbackUrl}\n oidcPrompt={signUpContext.oidcPrompt}\n verifyEmailPath='../verify-email-address'\n verifyPhonePath='../verify-phone-number'\n />\n </Route>\n <Route path='continue'>\n {/* No canActivate guard: same resolution race as the top-level\n protect-check route; the card owns its own routing. */}\n <Route path='protect-check'>\n {/* Under `continue`, the continue index is `..`, not `../continue`. */}\n <SignUpProtectCheck continuePath='..' />\n </Route>\n <Route\n path='verify-email-address'\n canActivate={clerk => !!clerk.client.signUp.emailAddress}\n >\n <SignUpVerifyEmail />\n </Route>\n <Route\n path='verify-phone-number'\n canActivate={clerk => !!clerk.client.signUp.phoneNumber}\n >\n <SignUpVerifyPhone />\n </Route>\n <Route index>\n <SignUpContinue />\n </Route>\n </Route>\n <Route path='tasks'>\n <LazySessionTasks redirectUrlComplete={signUpContext.afterSignUpUrl} />\n </Route>\n <Route path='enterprise-connections'>\n <SignUpEnterpriseConnections />\n </Route>\n <Route path='choose-wallet'>\n <SignUpStartSolanaWalletsCard />\n </Route>\n <Route index>\n <SignUpStart />\n </Route>\n <Route>\n <RedirectToSignUp />\n </Route>\n </Switch>\n </Flow.Root>\n );\n}\n\nSignUpRoutes.displayName = 'SignUp';\n\nexport const SignUp: React.ComponentType<SignUpProps> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nconst InternalSignUp: React.ComponentType<WithInternalRouting<SignUpProps>> = withCoreSessionSwitchGuard(SignUpRoutes);\n\nexport const SignUpModal = (props: SignUpModalProps): JSX.Element => {\n const signUpProps = {\n signInUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/sign-in`,\n waitlistUrl: `/${VIRTUAL_ROUTER_BASE_PATH}/waitlist`,\n ...props,\n };\n\n return (\n <Route path='sign-up'>\n <SignUpContext.Provider\n value={{\n componentName: 'SignUp',\n ...signUpProps,\n routing: 'virtual',\n mode: 'modal',\n }}\n >\n {/*TODO: Used by InvisibleRootBox, can we simplify? */}\n <div>\n <InternalSignUp\n {...signUpProps}\n routing='virtual'\n />\n </div>\n </SignUpContext.Provider>\n </Route>\n );\n};\n\nexport { SignUpContinue, SignUpProtectCheck, SignUpSSOCallback, SignUpStart, SignUpVerifyEmail, SignUpVerifyPhone };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,mBAAmB;CAC1B,MAAM,QAAQ,SAAS;CACvB,MAAM,gBAAgB;EACpB,AAAK,MAAM,iBAAiB;CAC9B,GAAG,CAAC,KAAK,CAAC;CACV,OAAO;AACT;AAEA,SAAS,eAA4B;CACnC,gBAAgB;CAEhB,MAAM,gBAAgB,iBAAiB;CAEvC,OACE,oBAAC,KAAK,MAAN;EAAW,MAAK;YACd,qBAAC,QAAD;GAKE,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,oBAAD,CAAqB;GAChB;GACP,oBAAC,OAAD;IACE,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,mBAAD,CAAoB;GACf;GACP,oBAAC,OAAD;IACE,MAAK;IACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;cAE5C,oBAAC,mBAAD,CAAoB;GACf;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,mBAAD;KACE,WAAW,cAAc;KACzB,WAAW,cAAc;KACzB,wBAAwB,cAAc;KACtC,wBAAwB,cAAc;KACtC,iBAAiB,cAAc;KAC/B,mBAAkB;KAClB,uBAAsB;KACtB,sBAAqB;KACrB,uBAAsB;KACtB,gBAAgB,cAAc;IAC/B;GACI;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,6BAAD;KACE,qBAAqB,cAAc;KACnC,gBAAgB,cAAc;KAC9B,YAAY,cAAc;KAC1B,iBAAgB;KAChB,iBAAgB;IACjB;GACI;GACP,qBAAC,OAAD;IAAO,MAAK;cAAZ;KAGE,oBAAC,OAAD;MAAO,MAAK;gBAEV,oBAAC,oBAAD,EAAoB,cAAa,KAAM;KAClC;KACP,oBAAC,OAAD;MACE,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,mBAAD,CAAoB;KACf;KACP,oBAAC,OAAD;MACE,MAAK;MACL,cAAa,UAAS,CAAC,CAAC,MAAM,OAAO,OAAO;gBAE5C,oBAAC,mBAAD,CAAoB;KACf;KACP,oBAAC,OAAD;MAAO;gBACL,oBAAC,gBAAD,CAAiB;KACZ;IACF;;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAACA,cAAD,EAAkB,qBAAqB,cAAc,eAAiB;GACjE;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,6BAAD,CAA8B;GACzB;GACP,oBAAC,OAAD;IAAO,MAAK;cACV,oBAAC,8BAAD,CAA+B;GAC1B;GACP,oBAAC,OAAD;IAAO;cACL,oBAAC,aAAD,CAAc;GACT;GACP,oBAAC,OAAD,YACE,oBAAC,kBAAD,CAAmB,GACd;EACD;CACC;AAEf;AAEA,aAAa,cAAc;AAE3B,MAAa,SAA2C,2BAA2B,YAAY;AAE/F,MAAM,iBAAwE,2BAA2B,YAAY;AAErH,MAAa,eAAe,UAAyC;CACnE,MAAM,cAAc;EAClB,WAAW,IAAI,yBAAyB;EACxC,aAAa,IAAI,yBAAyB;EAC1C,GAAG;CACL;CAEA,OACE,oBAAC,OAAD;EAAO,MAAK;YACV,oBAAC,cAAc,UAAf;GACE,OAAO;IACL,eAAe;IACf,GAAG;IACH,SAAS;IACT,MAAM;GACR;aAGA,oBAAC,OAAD,YACE,oBAAC,gBAAD;IACE,GAAI;IACJ,SAAQ;GACT,GACE;EACiB;CACnB;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/elements/contexts/index.tsx"],"sourcesContent":["import { createContextAndHook } from '@clerk/shared/react';\nimport type { ClerkAPIError, ClerkRuntimeError } from '@clerk/shared/types';\nimport { FloatingTree, useFloatingParentNodeId } from '@floating-ui/react';\nimport React from 'react';\n\nimport { useRouter } from '@/ui/router';\n\nimport { useLocalizations } from '../../customizables';\n\ntype Status = 'idle' | 'loading' | 'error';\ntype Metadata = string | undefined;\ntype CardError = ClerkRuntimeError | ClerkAPIError | Metadata | string;\ntype State = {\n status: Status;\n metadata: Metadata;\n error: string | undefined;\n rawError?: CardError;\n};\ntype CardStateCtxValue = {\n state: State;\n setState: React.Dispatch<React.SetStateAction<State>>;\n};\n\nconst [CardStateCtx, _useCardState] = createContextAndHook<CardStateCtxValue>('CardState');\n\nexport const CardStateProvider = (props: React.PropsWithChildren<any>) => {\n const { translateError } = useLocalizations();\n const router = useRouter();\n\n const [state, setState] = React.useState<State>(() => {\n const lastError = window?.Clerk?.__internal_last_error || undefined;\n return { status: 'idle', metadata: undefined, error: translateError(lastError), rawError: lastError };\n });\n\n React.useEffect(() => {\n const error = window?.Clerk?.__internal_last_error;\n\n if (error) {\n setState(s => ({ ...s, error: translateError(error), rawError: error }));\n }\n }, [translateError, setState, router.currentPath]);\n\n const value = React.useMemo(() => ({ value: { state, setState } }), [state, setState]);\n return <CardStateCtx.Provider value={value}>{props.children}</CardStateCtx.Provider>;\n};\n\nexport const useCardState = () => {\n const { state, setState } = _useCardState();\n const { translateError } = useLocalizations();\n\n const setIdle = (metadata?: Metadata) => setState(s => ({ ...s, status: 'idle', metadata }));\n const setError = (metadata: CardError) =>\n setState(s => ({ ...s, error: translateError(metadata), rawError: metadata || undefined }));\n const setLoading = (metadata?: Metadata) => setState(s => ({ ...s, status: 'loading', metadata }));\n const runAsync = async <T = unknown,>(cb: Promise<T> | (() => Promise<T>), metadata?: Metadata) => {\n setLoading(metadata);\n return (typeof cb === 'function' ? cb() : cb)\n .then(res => {\n return res;\n })\n .finally(() => setIdle(metadata));\n };\n\n return {\n setIdle,\n setError,\n setLoading,\n runAsync,\n loadingMetadata: state.status === 'loading' ? state.metadata : undefined,\n error: state.error ? state.error : undefined,\n rawError: state.rawError,\n isLoading: state.status === 'loading',\n isIdle: state.status === 'idle',\n state,\n };\n};\n\nexport const withCardStateProvider = <T,>(Component: React.ComponentType<T>) => {\n return (props: T) => {\n return (\n <CardStateProvider>\n {/* @ts-expect-error */}\n <Component {...props} />\n </CardStateProvider>\n );\n };\n};\n\nexport type FlowMetadata = {\n flow:\n | 'signIn'\n | 'signUp'\n | 'userButton'\n | 'userProfile'\n | 'userVerification'\n | 'organizationProfile'\n | 'createOrganization'\n | 'organizationSwitcher'\n | 'organizationList'\n | 'oneTap'\n | 'blankCaptcha'\n | 'protectCheck'\n | 'waitlist'\n | 'checkout'\n | 'planDetails'\n | 'pricingTable'\n | 'apiKeys'\n | 'configureSSO'\n | 'configureDirectorySync'\n | 'oauthConsent'\n | 'oauthDeviceVerification'\n | 'subscriptionDetails'\n | 'tasks'\n | 'taskChooseOrganization'\n | 'enableOrganizations'\n | 'taskResetPassword'\n | 'taskSetupMfa';\n part?:\n | 'start'\n | 'emailCode'\n | 'emailCode2Fa'\n | 'phoneCode'\n | 'phoneCode2Fa'\n | 'totp2Fa'\n | 'backupCode2Fa'\n | 'password'\n | 'resetPassword'\n | 'emailLink'\n | 'emailLinkVerify'\n | 'emailLinkStatus'\n | 'alternativeMethods'\n | 'forgotPasswordMethods'\n | 'passwordPwnedMethods'\n | 'passwordCompromisedMethods'\n | 'havingTrouble'\n | 'ssoCallback'\n | 'popupCallback'\n | 'popover'\n | 'complete'\n | 'accountSwitcher'\n | 'chooseOrganization'\n | 'chooseWallet'\n | 'enterpriseConnections'\n | 'ssoBypass'\n | 'organizationCreationDisabled'\n | 'methodSelectionMFA'\n | 'provideEmail'\n | 'selectProvider'\n | 'organizationDomains'\n | 'configureCreateApp'\n | 'configureMapAttributes'\n | 'testSso'\n | 'ssoActivate'\n | 'protectCheck'\n | 'actionBlocked';\n};\n\nconst [FlowMetadataCtx, useFlowMetadata] = createContextAndHook<FlowMetadata>('FlowMetadata');\n\nexport const FlowMetadataProvider = (props: React.PropsWithChildren<FlowMetadata>) => {\n const { flow, part } = props;\n const value = React.useMemo(() => ({ value: props }), [flow, part]);\n return <FlowMetadataCtx.Provider value={value}>{props.children}</FlowMetadataCtx.Provider>;\n};\n\nexport const withFloatingTree = <T,>(Component: React.ComponentType<T>): React.ComponentType<T> => {\n return (props: T) => {\n const parentId = useFloatingParentNodeId();\n if (parentId == null) {\n return (\n <FloatingTree>\n {/* @ts-expect-error */}\n <Component {...props} />\n </FloatingTree>\n );\n }\n\n /* @ts-expect-error */\n return <Component {...props} />;\n };\n};\n\nexport { useFlowMetadata };\n"],"mappings":";;;;;;;;AAuBA,MAAM,CAAC,cAAc,iBAAiB,qBAAwC,WAAW;AAEzF,MAAa,qBAAqB,UAAwC;CACxE,MAAM,EAAE,mBAAmB,iBAAiB;CAC5C,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,OAAO,YAAY,MAAM,eAAsB;EACpD,MAAM,YAAY,QAAQ,OAAO,yBAAyB;EAC1D,OAAO;GAAE,QAAQ;GAAQ,UAAU;GAAW,OAAO,eAAe,SAAS;GAAG,UAAU;EAAU;CACtG,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,QAAQ,QAAQ,OAAO;EAE7B,IAAI,OACF,UAAS,OAAM;GAAE,GAAG;GAAG,OAAO,eAAe,KAAK;GAAG,UAAU;EAAM,EAAE;CAE3E,GAAG;EAAC;EAAgB;EAAU,OAAO;CAAW,CAAC;CAEjD,MAAM,QAAQ,MAAM,eAAe,EAAE,OAAO;EAAE;EAAO;CAAS,EAAE,IAAI,CAAC,OAAO,QAAQ,CAAC;CACrF,OAAO,oBAAC,aAAa,UAAd;EAA8B;YAAQ,MAAM;CAAgC;AACrF;AAEA,MAAa,qBAAqB;CAChC,MAAM,EAAE,OAAO,aAAa,cAAc;CAC1C,MAAM,EAAE,mBAAmB,iBAAiB;CAE5C,MAAM,WAAW,aAAwB,UAAS,OAAM;EAAE,GAAG;EAAG,QAAQ;EAAQ;CAAS,EAAE;CAC3F,MAAM,YAAY,aAChB,UAAS,OAAM;EAAE,GAAG;EAAG,OAAO,eAAe,QAAQ;EAAG,UAAU,YAAY;CAAU,EAAE;CAC5F,MAAM,cAAc,aAAwB,UAAS,OAAM;EAAE,GAAG;EAAG,QAAQ;EAAW;CAAS,EAAE;CACjG,MAAM,WAAW,OAAqB,IAAqC,aAAwB;EACjG,WAAW,QAAQ;EACnB,QAAQ,OAAO,OAAO,aAAa,GAAG,IAAI,GAAE,CACzC,MAAK,QAAO;GACX,OAAO;EACT,CAAC,CAAC,CACD,cAAc,QAAQ,QAAQ,CAAC;CACpC;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA,iBAAiB,MAAM,WAAW,YAAY,MAAM,WAAW;EAC/D,OAAO,MAAM,QAAQ,MAAM,QAAQ;EACnC,UAAU,MAAM;EAChB,WAAW,MAAM,WAAW;EAC5B,QAAQ,MAAM,WAAW;EACzB;CACF;AACF;AAEA,MAAa,yBAA6B,cAAsC;CAC9E,QAAQ,UAAa;EACnB,OACE,oBAAC,mBAAD,YAEE,oBAAC,WAAD,EAAW,GAAI,MAAQ,GACN;CAEvB;AACF;AAuEA,MAAM,CAAC,iBAAiB,mBAAmB,qBAAmC,cAAc;AAE5F,MAAa,wBAAwB,UAAiD;CACpF,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,QAAQ,MAAM,eAAe,EAAE,OAAO,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC;CAClE,OAAO,oBAAC,gBAAgB,UAAjB;EAAiC;YAAQ,MAAM;CAAmC;AAC3F;AAEA,MAAa,oBAAwB,cAA8D;CACjG,QAAQ,UAAa;EAEnB,IADiB,wBACN,KAAK,MACd,OACE,oBAAC,cAAD,YAEE,oBAAC,WAAD,EAAW,GAAI,MAAQ,GACX;EAKlB,OAAO,oBAAC,WAAD,EAAW,GAAI,MAAQ;CAChC;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/elements/contexts/index.tsx"],"sourcesContent":["import { createContextAndHook } from '@clerk/shared/react';\nimport type { ClerkAPIError, ClerkRuntimeError } from '@clerk/shared/types';\nimport { FloatingTree, useFloatingParentNodeId } from '@floating-ui/react';\nimport React from 'react';\n\nimport { useRouter } from '@/ui/router';\n\nimport { useLocalizations } from '../../customizables';\n\ntype Status = 'idle' | 'loading' | 'error';\ntype Metadata = string | undefined;\ntype CardError = ClerkRuntimeError | ClerkAPIError | Metadata | string;\ntype State = {\n status: Status;\n metadata: Metadata;\n error: string | undefined;\n rawError?: CardError;\n};\ntype CardStateCtxValue = {\n state: State;\n setState: React.Dispatch<React.SetStateAction<State>>;\n};\n\nconst [CardStateCtx, _useCardState] = createContextAndHook<CardStateCtxValue>('CardState');\n\nexport const CardStateProvider = (props: React.PropsWithChildren<any>) => {\n const { translateError } = useLocalizations();\n const router = useRouter();\n\n const [state, setState] = React.useState<State>(() => {\n const lastError = window?.Clerk?.__internal_last_error || undefined;\n return { status: 'idle', metadata: undefined, error: translateError(lastError), rawError: lastError };\n });\n\n React.useEffect(() => {\n const error = window?.Clerk?.__internal_last_error;\n\n if (error) {\n setState(s => ({ ...s, error: translateError(error), rawError: error }));\n }\n }, [translateError, setState, router.currentPath]);\n\n const value = React.useMemo(() => ({ value: { state, setState } }), [state, setState]);\n return <CardStateCtx.Provider value={value}>{props.children}</CardStateCtx.Provider>;\n};\n\nexport const useCardState = () => {\n const { state, setState } = _useCardState();\n const { translateError } = useLocalizations();\n\n const setIdle = (metadata?: Metadata) => setState(s => ({ ...s, status: 'idle', metadata }));\n const setError = (metadata: CardError) =>\n setState(s => ({ ...s, error: translateError(metadata), rawError: metadata || undefined }));\n const setLoading = (metadata?: Metadata) => setState(s => ({ ...s, status: 'loading', metadata }));\n const runAsync = async <T = unknown,>(cb: Promise<T> | (() => Promise<T>), metadata?: Metadata) => {\n setLoading(metadata);\n return (typeof cb === 'function' ? cb() : cb)\n .then(res => {\n return res;\n })\n .finally(() => setIdle(metadata));\n };\n\n return {\n setIdle,\n setError,\n setLoading,\n runAsync,\n loadingMetadata: state.status === 'loading' ? state.metadata : undefined,\n error: state.error ? state.error : undefined,\n rawError: state.rawError,\n isLoading: state.status === 'loading',\n isIdle: state.status === 'idle',\n state,\n };\n};\n\nexport const withCardStateProvider = <T,>(Component: React.ComponentType<T>) => {\n return (props: T) => {\n return (\n <CardStateProvider>\n {/* @ts-expect-error */}\n <Component {...props} />\n </CardStateProvider>\n );\n };\n};\n\nexport type FlowMetadata = {\n flow:\n | 'signIn'\n | 'signUp'\n | 'userButton'\n | 'userProfile'\n | 'userVerification'\n | 'organizationProfile'\n | 'createOrganization'\n | 'organizationSwitcher'\n | 'organizationList'\n | 'oneTap'\n | 'blankCaptcha'\n | 'waitlist'\n | 'checkout'\n | 'planDetails'\n | 'pricingTable'\n | 'apiKeys'\n | 'configureSSO'\n | 'configureDirectorySync'\n | 'oauthConsent'\n | 'oauthDeviceVerification'\n | 'subscriptionDetails'\n | 'tasks'\n | 'taskChooseOrganization'\n | 'enableOrganizations'\n | 'taskResetPassword'\n | 'taskSetupMfa';\n part?:\n | 'start'\n | 'emailCode'\n | 'emailCode2Fa'\n | 'phoneCode'\n | 'phoneCode2Fa'\n | 'totp2Fa'\n | 'backupCode2Fa'\n | 'password'\n | 'resetPassword'\n | 'emailLink'\n | 'emailLinkVerify'\n | 'emailLinkStatus'\n | 'alternativeMethods'\n | 'forgotPasswordMethods'\n | 'passwordPwnedMethods'\n | 'passwordCompromisedMethods'\n | 'havingTrouble'\n | 'ssoCallback'\n | 'popupCallback'\n | 'popover'\n | 'complete'\n | 'accountSwitcher'\n | 'chooseOrganization'\n | 'chooseWallet'\n | 'enterpriseConnections'\n | 'ssoBypass'\n | 'organizationCreationDisabled'\n | 'methodSelectionMFA'\n | 'provideEmail'\n | 'selectProvider'\n | 'organizationDomains'\n | 'configureCreateApp'\n | 'configureMapAttributes'\n | 'testSso'\n | 'ssoActivate'\n | 'protectCheck'\n | 'actionBlocked';\n};\n\nconst [FlowMetadataCtx, useFlowMetadata] = createContextAndHook<FlowMetadata>('FlowMetadata');\n\nexport const FlowMetadataProvider = (props: React.PropsWithChildren<FlowMetadata>) => {\n const { flow, part } = props;\n const value = React.useMemo(() => ({ value: props }), [flow, part]);\n return <FlowMetadataCtx.Provider value={value}>{props.children}</FlowMetadataCtx.Provider>;\n};\n\nexport const withFloatingTree = <T,>(Component: React.ComponentType<T>): React.ComponentType<T> => {\n return (props: T) => {\n const parentId = useFloatingParentNodeId();\n if (parentId == null) {\n return (\n <FloatingTree>\n {/* @ts-expect-error */}\n <Component {...props} />\n </FloatingTree>\n );\n }\n\n /* @ts-expect-error */\n return <Component {...props} />;\n };\n};\n\nexport { useFlowMetadata };\n"],"mappings":";;;;;;;;AAuBA,MAAM,CAAC,cAAc,iBAAiB,qBAAwC,WAAW;AAEzF,MAAa,qBAAqB,UAAwC;CACxE,MAAM,EAAE,mBAAmB,iBAAiB;CAC5C,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,OAAO,YAAY,MAAM,eAAsB;EACpD,MAAM,YAAY,QAAQ,OAAO,yBAAyB;EAC1D,OAAO;GAAE,QAAQ;GAAQ,UAAU;GAAW,OAAO,eAAe,SAAS;GAAG,UAAU;EAAU;CACtG,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,QAAQ,QAAQ,OAAO;EAE7B,IAAI,OACF,UAAS,OAAM;GAAE,GAAG;GAAG,OAAO,eAAe,KAAK;GAAG,UAAU;EAAM,EAAE;CAE3E,GAAG;EAAC;EAAgB;EAAU,OAAO;CAAW,CAAC;CAEjD,MAAM,QAAQ,MAAM,eAAe,EAAE,OAAO;EAAE;EAAO;CAAS,EAAE,IAAI,CAAC,OAAO,QAAQ,CAAC;CACrF,OAAO,oBAAC,aAAa,UAAd;EAA8B;YAAQ,MAAM;CAAgC;AACrF;AAEA,MAAa,qBAAqB;CAChC,MAAM,EAAE,OAAO,aAAa,cAAc;CAC1C,MAAM,EAAE,mBAAmB,iBAAiB;CAE5C,MAAM,WAAW,aAAwB,UAAS,OAAM;EAAE,GAAG;EAAG,QAAQ;EAAQ;CAAS,EAAE;CAC3F,MAAM,YAAY,aAChB,UAAS,OAAM;EAAE,GAAG;EAAG,OAAO,eAAe,QAAQ;EAAG,UAAU,YAAY;CAAU,EAAE;CAC5F,MAAM,cAAc,aAAwB,UAAS,OAAM;EAAE,GAAG;EAAG,QAAQ;EAAW;CAAS,EAAE;CACjG,MAAM,WAAW,OAAqB,IAAqC,aAAwB;EACjG,WAAW,QAAQ;EACnB,QAAQ,OAAO,OAAO,aAAa,GAAG,IAAI,GAAE,CACzC,MAAK,QAAO;GACX,OAAO;EACT,CAAC,CAAC,CACD,cAAc,QAAQ,QAAQ,CAAC;CACpC;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA,iBAAiB,MAAM,WAAW,YAAY,MAAM,WAAW;EAC/D,OAAO,MAAM,QAAQ,MAAM,QAAQ;EACnC,UAAU,MAAM;EAChB,WAAW,MAAM,WAAW;EAC5B,QAAQ,MAAM,WAAW;EACzB;CACF;AACF;AAEA,MAAa,yBAA6B,cAAsC;CAC9E,QAAQ,UAAa;EACnB,OACE,oBAAC,mBAAD,YAEE,oBAAC,WAAD,EAAW,GAAI,MAAQ,GACN;CAEvB;AACF;AAsEA,MAAM,CAAC,iBAAiB,mBAAmB,qBAAmC,cAAc;AAE5F,MAAa,wBAAwB,UAAiD;CACpF,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,QAAQ,MAAM,eAAe,EAAE,OAAO,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC;CAClE,OAAO,oBAAC,gBAAgB,UAAjB;EAAiC;YAAQ,MAAM;CAAmC;AAC3F;AAEA,MAAa,oBAAwB,cAA8D;CACjG,QAAQ,UAAa;EAEnB,IADiB,wBACN,KAAK,MACd,OACE,oBAAC,cAAD,YAEE,oBAAC,WAAD,EAAW,GAAI,MAAQ,GACX;EAKlB,OAAO,oBAAC,WAAD,EAAW,GAAI,MAAQ;CAChC;AACF"}
@@ -20,14 +20,7 @@ function useProtectCheckRunner(params) {
20
20
  const loaderTimeoutMs = useClerk().__internal_protectChallengeLoadTimeoutMs;
21
21
  const instanceTimeoutMs = useEnvironment().protectConfig?.challenge_load_timeout_ms;
22
22
  const loadTimeoutMs = loaderTimeoutMs ?? instanceTimeoutMs;
23
- const paramsRef = React.useRef(params);
24
- paramsRef.current = params;
25
23
  const reportError = (err) => {
26
- const { onError } = paramsRef.current;
27
- if (onError) {
28
- onError(err);
29
- return;
30
- }
31
24
  try {
32
25
  handleError(err, [], card.setError);
33
26
  } catch {
@@ -47,6 +40,8 @@ function useProtectCheckRunner(params) {
47
40
  mountedRef.current = false;
48
41
  };
49
42
  }, []);
43
+ const paramsRef = React.useRef(params);
44
+ paramsRef.current = params;
50
45
  const reloadCountRef = React.useRef(0);
51
46
  const token = params.getProtectCheck()?.token;
52
47
  React.useEffect(() => {