@coinbase/cdp-react 0.0.18 → 0.0.20

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 (148) hide show
  1. package/dist/assets/Button.css +1 -1
  2. package/dist/assets/EmailForm.css +1 -0
  3. package/dist/assets/Error.css +1 -1
  4. package/dist/assets/Field.css +1 -1
  5. package/dist/assets/Input.css +1 -1
  6. package/dist/assets/Label.css +1 -0
  7. package/dist/assets/LoadingSkeleton.css +1 -1
  8. package/dist/assets/LoadingSpinner.css +1 -1
  9. package/dist/assets/Modal.css +1 -0
  10. package/dist/assets/OTP.css +1 -1
  11. package/dist/assets/OTPForm.css +1 -0
  12. package/dist/assets/PhoneNumberForm.css +1 -0
  13. package/dist/assets/PhoneNumberInput.css +1 -0
  14. package/dist/assets/SignIn.css +1 -1
  15. package/dist/assets/SignInAuthMethodButtons.css +1 -0
  16. package/dist/assets/SignInBackButton.css +1 -0
  17. package/dist/assets/SignInCredentials.css +1 -0
  18. package/dist/assets/SignInDescription.css +1 -1
  19. package/dist/assets/SignInFooter.css +1 -0
  20. package/dist/assets/SignInForm.css +1 -1
  21. package/dist/assets/SignInImage.css +1 -1
  22. package/dist/assets/SignInModal.css +1 -1
  23. package/dist/assets/SignInTitle.css +1 -1
  24. package/dist/assets/SuccessMessage.css +1 -0
  25. package/dist/assets/SwitchFadeTransition.css +1 -0
  26. package/dist/assets/SwitchSlideTransition.css +1 -0
  27. package/dist/assets/SwitchTransition.css +1 -0
  28. package/dist/assets/ThemeProvider.css +1 -1
  29. package/dist/assets/VisuallyHidden.css +1 -1
  30. package/dist/chunks/index.BzllgVaP.js +12 -0
  31. package/dist/components/AuthButton/index.js +7 -7
  32. package/dist/components/CDPReactProvider/index.d.ts +3 -0
  33. package/dist/components/CDPReactProvider/index.js +20 -13
  34. package/dist/components/SendTransactionButton/index.js +1 -1
  35. package/dist/components/SignIn/SignInAuthMethodButtons.d.ts +13 -0
  36. package/dist/components/SignIn/SignInAuthMethodButtons.js +59 -0
  37. package/dist/components/SignIn/SignInBackButton.d.ts +9 -0
  38. package/dist/components/SignIn/SignInBackButton.js +38 -0
  39. package/dist/components/SignIn/SignInCredentials.d.ts +2 -0
  40. package/dist/components/SignIn/SignInCredentials.js +8 -0
  41. package/dist/components/SignIn/SignInDescription.d.ts +4 -3
  42. package/dist/components/SignIn/SignInDescription.js +16 -23
  43. package/dist/components/SignIn/SignInFooter.d.ts +2 -0
  44. package/dist/components/SignIn/SignInFooter.js +18 -0
  45. package/dist/components/SignIn/SignInForm.d.ts +12 -4
  46. package/dist/components/SignIn/SignInForm.js +30 -195
  47. package/dist/components/SignIn/SignInImage.d.ts +2 -2
  48. package/dist/components/SignIn/SignInImage.js +11 -14
  49. package/dist/components/SignIn/SignInProvider.d.ts +1 -1
  50. package/dist/components/SignIn/SignInProvider.js +24 -16
  51. package/dist/components/SignIn/SignInTitle.d.ts +4 -3
  52. package/dist/components/SignIn/SignInTitle.js +18 -13
  53. package/dist/components/SignIn/flows/SignInWithEmail.d.ts +6 -0
  54. package/dist/components/SignIn/flows/SignInWithEmail.js +88 -0
  55. package/dist/components/SignIn/flows/SignInWithSms.d.ts +8 -0
  56. package/dist/components/SignIn/flows/SignInWithSms.js +3011 -0
  57. package/dist/components/SignIn/hooks/useEmailForm.d.ts +13 -0
  58. package/dist/components/SignIn/hooks/useEmailForm.js +42 -0
  59. package/dist/components/SignIn/hooks/useOTPForm.d.ts +16 -0
  60. package/dist/components/SignIn/hooks/useOTPForm.js +59 -0
  61. package/dist/components/SignIn/hooks/usePhoneNumberForm.d.ts +13 -0
  62. package/dist/components/SignIn/hooks/usePhoneNumberForm.js +42 -0
  63. package/dist/components/SignIn/index.d.ts +5 -2
  64. package/dist/components/SignIn/index.js +42 -24
  65. package/dist/components/SignIn/types.d.ts +106 -0
  66. package/dist/components/SignIn/types.js +3 -0
  67. package/dist/components/SignIn/useSignInReducer.d.ts +1 -57
  68. package/dist/components/SignIn/useSignInReducer.js +62 -20
  69. package/dist/components/SignInModal/index.d.ts +2 -2
  70. package/dist/components/SignInModal/index.js +56 -44
  71. package/dist/components/SignOutButton/index.js +1 -1
  72. package/dist/components/ThemeProvider/index.js +1 -1
  73. package/dist/components/forms/EmailForm/index.d.ts +11 -0
  74. package/dist/components/forms/EmailForm/index.js +56 -0
  75. package/dist/components/{Field → forms/Field}/index.d.ts +2 -1
  76. package/dist/components/forms/Field/index.js +24 -0
  77. package/dist/components/{Input → forms/Input}/index.js +1 -1
  78. package/dist/components/forms/Label/index.d.ts +7 -0
  79. package/dist/components/forms/Label/index.js +13 -0
  80. package/dist/components/{OTP → forms/OTP}/index.d.ts +3 -0
  81. package/dist/components/forms/OTP/index.js +65 -0
  82. package/dist/components/forms/OTPForm/index.d.ts +16 -0
  83. package/dist/components/forms/OTPForm/index.js +76 -0
  84. package/dist/components/forms/PhoneNumberForm/index.d.ts +14 -0
  85. package/dist/components/forms/PhoneNumberForm/index.js +68 -0
  86. package/dist/components/forms/PhoneNumberInput/PhoneNumberMetadata.d.ts +2 -0
  87. package/dist/components/forms/PhoneNumberInput/PhoneNumberMetadata.js +5 -0
  88. package/dist/components/forms/PhoneNumberInput/index.d.ts +10 -0
  89. package/dist/components/forms/PhoneNumberInput/index.js +76 -0
  90. package/dist/components/forms/PhoneNumberInput/maskOverride.d.ts +8 -0
  91. package/dist/components/forms/PhoneNumberInput/maskOverride.js +61 -0
  92. package/dist/components/forms/PhoneNumberInput/usePhoneNumberFormatter.d.ts +7 -0
  93. package/dist/components/forms/PhoneNumberInput/usePhoneNumberFormatter.js +52 -0
  94. package/dist/components/{Button → ui/Button}/index.d.ts +2 -1
  95. package/dist/components/ui/Button/index.js +75 -0
  96. package/dist/components/{Error → ui/Error}/index.d.ts +2 -2
  97. package/dist/components/ui/Error/index.js +16 -0
  98. package/dist/components/ui/LoadingSkeleton/index.js +19 -0
  99. package/dist/components/{LoadingSpinner → ui/LoadingSpinner}/index.js +6 -6
  100. package/dist/components/ui/Modal/index.d.ts +11 -0
  101. package/dist/components/ui/Modal/index.js +27 -0
  102. package/dist/components/{ServerError → ui/ServerError}/index.js +4 -4
  103. package/dist/components/ui/SuccessMessage/index.d.ts +7 -0
  104. package/dist/components/ui/SuccessMessage/index.js +16 -0
  105. package/dist/components/ui/SwitchFadeTransition/index.d.ts +5 -0
  106. package/dist/components/ui/SwitchFadeTransition/index.js +24 -0
  107. package/dist/components/ui/SwitchSlideTransition/index.d.ts +7 -0
  108. package/dist/components/ui/SwitchSlideTransition/index.js +27 -0
  109. package/dist/components/ui/SwitchTransition/index.d.ts +25 -0
  110. package/dist/components/ui/SwitchTransition/index.js +155 -0
  111. package/dist/components/{VisuallyHidden → ui/VisuallyHidden}/index.js +2 -2
  112. package/dist/data/countries.d.ts +12 -0
  113. package/dist/data/countries.js +25 -0
  114. package/dist/data/countryNames.d.ts +1 -0
  115. package/dist/data/countryNames.js +6 -0
  116. package/dist/hooks/usePhoneNumberValidators.d.ts +14 -0
  117. package/dist/hooks/usePhoneNumberValidators.js +36 -0
  118. package/dist/hooks/useTimer.d.ts +5 -0
  119. package/dist/hooks/useTimer.js +24 -0
  120. package/dist/icons/IconArrowLeft.d.ts +2 -0
  121. package/dist/icons/IconArrowLeft.js +14 -0
  122. package/dist/icons/IconCheckCircle.js +2 -3
  123. package/dist/icons/IconCoinbaseWordmark.js +5 -5
  124. package/dist/icons/IconEnvelope.d.ts +2 -0
  125. package/dist/icons/IconEnvelope.js +7 -0
  126. package/dist/icons/IconExclamationCircle.js +3 -4
  127. package/dist/icons/IconPhone.d.ts +2 -0
  128. package/dist/icons/IconPhone.js +7 -0
  129. package/dist/icons/IconXMark.js +6 -5
  130. package/dist/icons/index.d.ts +3 -0
  131. package/dist/icons/index.js +14 -8
  132. package/dist/index.js +66 -53
  133. package/dist/theme/theme.d.ts +11 -2
  134. package/dist/theme/tokens.d.ts +30 -6
  135. package/dist/theme/tokens.js +7 -3
  136. package/dist/utils/parseValuesFromPhoneNumber.d.ts +6 -0
  137. package/dist/utils/parseValuesFromPhoneNumber.js +16 -0
  138. package/package.json +23 -7
  139. package/dist/components/Button/index.js +0 -50
  140. package/dist/components/Error/index.js +0 -16
  141. package/dist/components/Field/index.js +0 -22
  142. package/dist/components/LoadingSkeleton/index.js +0 -19
  143. package/dist/components/OTP/index.js +0 -50
  144. /package/dist/components/{Input → forms/Input}/index.d.ts +0 -0
  145. /package/dist/components/{LoadingSkeleton → ui/LoadingSkeleton}/index.d.ts +0 -0
  146. /package/dist/components/{LoadingSpinner → ui/LoadingSpinner}/index.d.ts +0 -0
  147. /package/dist/components/{ServerError → ui/ServerError}/index.d.ts +0 -0
  148. /package/dist/components/{VisuallyHidden → ui/VisuallyHidden}/index.d.ts +0 -0
@@ -1 +1 @@
1
- .Button-module__btn___Fx11X{--cdp-web-button-ring-color: transparent;--cdp-web-button-ring-width: 2px;--cdp-web-button-ring-inset-color: transparent;--cdp-web-button-ring-inset-width: 2px;box-sizing:border-box;box-shadow:inset 0 0 0 var(--cdp-web-button-ring-inset-width) var(--cdp-web-button-ring-inset-color),0 0 0 var(--cdp-web-button-ring-width) var(--cdp-web-button-ring-color);display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:1em;border-radius:9999em;border:0;background-color:transparent;color:var(--cdp-web-colors-page-text-default);font-size:1em;font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;transition:all .15s ease-in-out;-webkit-user-select:none;user-select:none}.Button-module__link-primary___wROmv,.Button-module__link-secondary___5VErP{padding:0 .25em}.Button-module__primary___s1sM6{background-color:var(--cdp-web-colors-cta-primary-bg-default);color:var(--cdp-web-colors-cta-primary-text-default)}.Button-module__primary___s1sM6:hover{background-color:var(--cdp-web-colors-cta-primary-bg-hover);color:var(--cdp-web-colors-cta-primary-text-hover)}.Button-module__primary___s1sM6:focus{outline:none}.Button-module__primary___s1sM6:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-cta-primary-border-focus);--cdp-web-button-ring-inset-color: var(--cdp-web-colors-page-bg-default);outline:none}.Button-module__secondary___R0waJ{background-color:var(--cdp-web-colors-cta-secondary-bg-default);color:var(--cdp-web-colors-cta-secondary-text-default)}.Button-module__secondary___R0waJ:hover{background-color:var(--cdp-web-colors-cta-secondary-bg-hover);color:var(--cdp-web-colors-cta-secondary-text-hover)}.Button-module__secondary___R0waJ:focus{outline:none}.Button-module__secondary___R0waJ:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-cta-secondary-border-focus);--cdp-web-button-ring-inset-color: var(--cdp-web-colors-page-bg-default);outline:none}.Button-module__link-primary___wROmv,.Button-module__transparent-primary___Ah0yM{background-color:transparent;color:var(--cdp-web-colors-link-primary-text-default)}.Button-module__link-primary___wROmv:hover,.Button-module__transparent-primary___Ah0yM:hover{color:var(--cdp-web-colors-link-primary-text-hover)}.Button-module__link-primary___wROmv:focus,.Button-module__transparent-primary___Ah0yM:focus{outline:none}.Button-module__link-primary___wROmv:focus-visible,.Button-module__transparent-primary___Ah0yM:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-link-primary-text-default);outline:none}.Button-module__link-secondary___5VErP,.Button-module__transparent-secondary___kk5sZ{background-color:transparent;color:var(--cdp-web-colors-link-secondary-text-default)}.Button-module__link-secondary___5VErP:hover,.Button-module__transparent-secondary___kk5sZ:hover{color:var(--cdp-web-colors-link-secondary-text-hover)}.Button-module__link-secondary___5VErP:focus,.Button-module__transparent-secondary___kk5sZ:focus{outline:none}.Button-module__link-secondary___5VErP:focus-visible,.Button-module__transparent-secondary___kk5sZ:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-link-secondary-text-default);outline:none}
1
+ .Button-module__btn___Wj6Dr{--cdp-web-button-ring-color: transparent;--cdp-web-button-ring-width: 2px;--cdp-web-button-ring-inset-color: transparent;--cdp-web-button-ring-inset-width: 2px;box-sizing:border-box;box-shadow:inset 0 0 0 var(--cdp-web-button-ring-inset-width) var(--cdp-web-button-ring-inset-color),0 0 0 var(--cdp-web-button-ring-width) var(--cdp-web-button-ring-color);display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:1em;border-radius:9999em;border:0;background-color:transparent;color:var(--cdp-web-colors-page-text-default);font-size:var(--cdp-web-font-size-base);font-family:var(--cdp-web-font-family-sans);font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;transition:all .15s ease-in-out;-webkit-user-select:none;user-select:none}.Button-module__size-lg___WlcVE{padding:1em}.Button-module__size-md___-SMmD{padding:.75em}.Button-module__size-sm___Vnrq6{padding:.5em}.Button-module__link-primary___6Zgkh,.Button-module__link-secondary___S0Qdo{padding:0 .25em}.Button-module__primary___WGT--{background-color:var(--cdp-web-colors-cta-primary-bg-default);color:var(--cdp-web-colors-cta-primary-text-default)}.Button-module__primary___WGT--:hover{background-color:var(--cdp-web-colors-cta-primary-bg-hover);color:var(--cdp-web-colors-cta-primary-text-hover)}.Button-module__primary___WGT--:focus{outline:none}.Button-module__primary___WGT--:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-cta-primary-border-focus);--cdp-web-button-ring-inset-color: var(--cdp-web-colors-page-bg-default);outline:none}.Button-module__secondary___Fx0LJ{background-color:var(--cdp-web-colors-cta-secondary-bg-default);color:var(--cdp-web-colors-cta-secondary-text-default)}.Button-module__secondary___Fx0LJ:hover{background-color:var(--cdp-web-colors-cta-secondary-bg-hover);color:var(--cdp-web-colors-cta-secondary-text-hover)}.Button-module__secondary___Fx0LJ:focus{outline:none}.Button-module__secondary___Fx0LJ:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-cta-secondary-border-focus);--cdp-web-button-ring-inset-color: var(--cdp-web-colors-page-bg-default);outline:none}.Button-module__link-primary___6Zgkh,.Button-module__transparent-primary___iwWv5{background-color:transparent;color:var(--cdp-web-colors-link-primary-text-default)}.Button-module__link-primary___6Zgkh:hover,.Button-module__transparent-primary___iwWv5:hover{color:var(--cdp-web-colors-link-primary-text-hover)}.Button-module__link-primary___6Zgkh:focus,.Button-module__transparent-primary___iwWv5:focus{outline:none}.Button-module__link-primary___6Zgkh:focus-visible,.Button-module__transparent-primary___iwWv5:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-link-primary-text-default);outline:none}.Button-module__link-secondary___S0Qdo,.Button-module__transparent-secondary___GfRXu{background-color:transparent;color:var(--cdp-web-colors-link-secondary-text-default)}.Button-module__link-secondary___S0Qdo:hover,.Button-module__transparent-secondary___GfRXu:hover{color:var(--cdp-web-colors-link-secondary-text-hover)}.Button-module__link-secondary___S0Qdo:focus,.Button-module__transparent-secondary___GfRXu:focus{outline:none}.Button-module__link-secondary___S0Qdo:focus-visible,.Button-module__transparent-secondary___GfRXu:focus-visible{--cdp-web-button-ring-color: var(--cdp-web-colors-link-secondary-text-default);outline:none}
@@ -0,0 +1 @@
1
+ .EmailForm-module__form___L0wVX{display:flex;flex-direction:column;gap:1em}.EmailForm-module__server-error___0TSPx{justify-content:center}
@@ -1 +1 @@
1
- .Error-module__error___mRFLG{color:var(--cdp-web-colors-fg-negative);line-height:1.25em;display:flex;align-items:center;gap:.25em;margin:0}.Error-module__error___mRFLG span{font-size:.875em}.Error-module__icon___web4F{width:1em;height:1em;flex-grow:0;flex-shrink:0}
1
+ .Error-module__error___zeTQt{color:var(--cdp-web-colors-fg-negative);line-height:1.25em;font-family:var(--cdp-web-font-family-sans);font-size:var(--cdp-web-font-size-base);display:flex;align-items:center;gap:.25em;margin:0}.Error-module__error___zeTQt span{font-size:.875em}.Error-module__icon___uwkis{width:auto;height:.875em;flex-grow:0;flex-shrink:0}
@@ -1 +1 @@
1
- .Field-module__field-wrapper___0p4i7{display:flex;flex-direction:column;gap:.375em}.Field-module__label___LAQio{font-size:.875em;line-height:1.43;font-weight:500;color:var(--cdp-web-colors-input-label-default)}
1
+ .Field-module__field-wrapper___SCcbl{display:flex;flex-direction:column;font-family:var(--cdp-web-font-family-sans);font-size:var(--cdp-web-font-size-base);gap:.25em}
@@ -1 +1 @@
1
- .Input-module__input___WjT81{--cdp-web-input-ring-width: 1px;--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-default);box-sizing:border-box;font-size:1em;line-height:1.5;padding:1em .75em;border-radius:.5em;border:0;background-color:var(--cdp-web-colors-input-bg-default);box-shadow:0 0 0 var(--cdp-web-input-ring-width) var(--cdp-web-input-ring-color) inset;color:var(--cdp-web-colors-input-text-default);transition:all .15s ease-in-out;width:100%}.Input-module__input___WjT81::placeholder{color:var(--cdp-web-colors-input-placeholder-default)}.Input-module__input___WjT81:focus-visible{outline:none;--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-focus);--cdp-web-input-ring-width: 2px}.Input-module__input___WjT81[aria-invalid=true]{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-error)}
1
+ .Input-module__input___-mK8z{--cdp-web-input-ring-width: 1px;--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-default);box-sizing:border-box;font-family:var(--cdp-web-font-family-sans);font-size:var(--cdp-web-font-size-base);line-height:1.5;padding:1em;border-radius:.5em;border:0;background-color:var(--cdp-web-colors-input-bg-default);box-shadow:0 0 0 var(--cdp-web-input-ring-width) var(--cdp-web-input-ring-color) inset;color:var(--cdp-web-colors-input-text-default);transition:box-shadow .15s ease-in-out;width:100%}.Input-module__input___-mK8z::placeholder{color:var(--cdp-web-colors-input-placeholder-default)}.Input-module__input___-mK8z:focus-visible{outline:none;--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-focus);--cdp-web-input-ring-width: 2px}.Input-module__input___-mK8z[aria-invalid=true]{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-error)}.Input-module__input___-mK8z[data-success=true]{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-success)}
@@ -0,0 +1 @@
1
+ .Label-module__label___jDumT{font-size:.875em;line-height:1.43;font-weight:500;color:var(--cdp-web-colors-input-label-default)}
@@ -1 +1 @@
1
- .LoadingSkeleton-module__loading___ezIkq{animation:LoadingSkeleton-module__pulse___a9tGO 2s cubic-bezier(.4,0,.6,1) infinite;background-color:var(--cdp-web-colors-bg-skeleton);cursor:progress}@keyframes LoadingSkeleton-module__pulse___a9tGO{50%{opacity:.5}}
1
+ .LoadingSkeleton-module__loading___kqndV{animation:LoadingSkeleton-module__pulse___x86cJ 2s cubic-bezier(.4,0,.6,1) infinite;background-color:var(--cdp-web-colors-bg-skeleton);cursor:progress}@keyframes LoadingSkeleton-module__pulse___x86cJ{50%{opacity:.5}}
@@ -1 +1 @@
1
- .LoadingSpinner-module__spinner___X3Bl3{transform-origin:center;animation:LoadingSpinner-module__spinner___X3Bl3 2s linear infinite}.LoadingSpinner-module__spinner-circle___NCrsp{stroke-linecap:round;animation:LoadingSpinner-module__spinner-circle___NCrsp 1.5s ease-in-out infinite}@keyframes LoadingSpinner-module__spinner___X3Bl3{to{transform:rotate(360deg)}}@keyframes LoadingSpinner-module__spinner-circle___NCrsp{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}
1
+ .LoadingSpinner-module__spinner___-zo6Y{transform-origin:center;animation:LoadingSpinner-module__spinner___-zo6Y 2s linear infinite}.LoadingSpinner-module__spinner-circle___9Jfm7{stroke-linecap:round;animation:LoadingSpinner-module__spinner-circle___9Jfm7 1.5s ease-in-out infinite}@keyframes LoadingSpinner-module__spinner___-zo6Y{to{transform:rotate(360deg)}}@keyframes LoadingSpinner-module__spinner-circle___9Jfm7{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}
@@ -0,0 +1 @@
1
+ .Modal-module__modal___MUsZA{--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%);box-sizing:border-box;box-shadow:var(--shadow-md);width:100%;max-width:28.125em;min-width:0;background:var(--cdp-web-colors-page-bg-default);border-radius:.5em;outline:1px solid var(--cdp-web-colors-page-border-default);position:relative}.Modal-module__modal___MUsZA[data-state=open]{animation:Modal-module__slide-in___p-A8u .2s ease-out,Modal-module__fade-in___NfUjS .2s ease-out}.Modal-module__modal___MUsZA[data-state=closed]{animation:Modal-module__slide-out___hrRK1 .2s ease-in,Modal-module__fade-out___LpBNV .2s ease-in}.Modal-module__overlay___-RqGQ{background:var(--cdp-web-colors-bg-overlay);box-sizing:border-box;-webkit-backdrop-filter:blur(.5em);backdrop-filter:blur(.5em);display:grid;grid-template-rows:auto 1fr;inset:0;overflow-y:auto;place-items:end center;position:fixed;z-index:1000}.Modal-module__overlay___-RqGQ[data-state=open]{animation:Modal-module__fade-in___NfUjS .2s ease-out}.Modal-module__overlay___-RqGQ[data-state=closed]{animation:Modal-module__fade-out___LpBNV .2s ease-in}.Modal-module__spacer___dIfOA{height:1em}@keyframes Modal-module__fade-in___NfUjS{0%{opacity:0}to{opacity:1}}@keyframes Modal-module__fade-out___LpBNV{0%{opacity:1}to{opacity:0}}@keyframes Modal-module__slide-in___p-A8u{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes Modal-module__slide-out___hrRK1{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (min-width: 400px){.Modal-module__overlay___-RqGQ{padding:.5rem}}@media (min-width: 450px){.Modal-module__overlay___-RqGQ{place-items:center;padding:1rem;grid-template-rows:1fr}.Modal-module__modal___MUsZA{height:auto}.Modal-module__spacer___dIfOA{display:none}@keyframes Modal-module__slide-in___p-A8u{0%{transform:translateY(10%)}to{transform:translateY(0)}}@keyframes Modal-module__slide-out___hrRK1{0%{transform:translateY(0)}to{transform:translateY(10%)}}}
@@ -1 +1 @@
1
- .OTP-module__otp___EUcSo{--cdp-web-otp-input-width: 25%}.OTP-module__group-container___rfrCo{display:flex;gap:.5em}.OTP-module__input-container___-yRBL{width:var(--cdp-web-otp-input-width)}.OTP-module__input___MEBPV{text-align:center}
1
+ .OTP-module__otp___UjnM8{--cdp-web-otp-input-width: 25%;display:flex;flex-direction:column;gap:.25em}.OTP-module__group-container___hNqnB{display:flex;gap:.5em}.OTP-module__input-container___snmj7{width:var(--cdp-web-otp-input-width)}.OTP-module__input___Vbd5m{text-align:center}.OTP-module__label___cK41n{margin:0 0 .43em}
@@ -0,0 +1 @@
1
+ .OTPForm-module__otp-form___G1-63 [data-part=input-group]{padding-bottom:1.5em}.OTPForm-module__otp-form___G1-63 [data-part=success],.OTPForm-module__otp-form___G1-63 [data-part=error]{margin-top:-1.5em}.OTPForm-module__form-footer___ybmdd{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;min-height:1.5em;padding-top:1.5em;padding-bottom:.5em}.OTPForm-module__server-state-wrapper___R5j5k{margin-top:-1.5em;min-height:1.5em;position:relative;top:-.25em}.OTPForm-module__loading-spinner___8N9XU{color:var(--cdp-web-colors-link-primary-text-default);display:block;margin:0 auto}.OTPForm-module__resend-wrapper___aZUAz{display:flex;align-items:center;justify-content:center;text-align:center;min-height:1.5em}.OTPForm-module__reset-timer___7ElWj{color:var(--cdp-web-colors-page-text-muted);font-weight:500;line-height:1em;min-height:1em;display:flex;align-items:center;justify-content:center}.OTPForm-module__reset-timer___7ElWj p{font-size:.875em;line-height:1;margin:0}
@@ -0,0 +1 @@
1
+ .PhoneNumberForm-module__form___ExO8G{display:flex;flex-direction:column;gap:1em}.PhoneNumberForm-module__server-error___AQcMg{justify-content:center}
@@ -0,0 +1 @@
1
+ .PhoneNumberInput-module__phone-number-input___mYty2{--cdp-web-input-ring-width: 1px;--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-default);box-sizing:border-box;display:flex;align-items:stretch;font-family:var(--cdp-web-font-family-sans);font-size:var(--cdp-web-font-size-base);line-height:1.5;padding-left:1em;border-radius:.5em;border:0;background-color:var(--cdp-web-colors-input-bg-default);box-shadow:0 0 0 var(--cdp-web-input-ring-width) var(--cdp-web-input-ring-color) inset;color:var(--cdp-web-colors-input-text-default);transition:box-shadow .15s ease-in-out;width:100%}.PhoneNumberInput-module__phone-number-input___mYty2.PhoneNumberInput-module__invalid___zDA2p,.PhoneNumberInput-module__phone-number-input___mYty2:focus-within.PhoneNumberInput-module__invalid___zDA2p{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-error)}.PhoneNumberInput-module__phone-number-input___mYty2.PhoneNumberInput-module__success___uPjMx{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-success)}.PhoneNumberInput-module__phone-number-input___mYty2:focus-within{--cdp-web-input-ring-color: var(--cdp-web-colors-input-border-focus);--cdp-web-input-ring-width: 2px}.PhoneNumberInput-module__phone-number-input___mYty2 .PhoneNumberInput-module__input___H-XG-{--cdp-web-input-ring-width: 0px;background-color:transparent;padding-left:.75em}.PhoneNumberInput-module__country-calling-code___N6zDW{display:flex;align-items:center;gap:.25rem}
@@ -1 +1 @@
1
- .SignIn-module__sign-in___cYpee{border-radius:.75em;box-sizing:border-box;font:var(--cdp-web-font-size-base) / 1.5 var(--cdp-web-font-family-sans);background-color:var(--cdp-web-colors-page-bg-default);color:var(--cdp-web-colors-page-text-default);display:flex;flex-direction:column;gap:1em;max-width:38.25em;padding:1em 2em;width:100%}.SignIn-module__sign-in___cYpee *{box-sizing:border-box}
1
+ .SignIn-module__sign-in___cYpee{border-radius:.75em;box-sizing:border-box;font:var(--cdp-web-font-size-base) / 1.5 var(--cdp-web-font-family-sans);font-optical-sizing:auto;background-color:var(--cdp-web-colors-page-bg-default);color:var(--cdp-web-colors-page-text-default);display:flex;flex-direction:column;max-width:38.25em;padding:.75em 2em 1em;overflow:hidden;width:100%}.SignIn-module__title-desc-wrapper___VpPcA{display:flex;flex-direction:column;gap:1.5em;margin:1.5em 0}.SignIn-module__sign-in___cYpee *{box-sizing:border-box}.SignIn-module__back-button___bmE-y{align-self:flex-start}.SignIn-module__back-button-wrapper___Q9FA1{min-height:3em}.SignIn-module__footer___3Gkbc{margin-top:1.5em}
@@ -0,0 +1 @@
1
+ .SignInAuthMethodButtons-module__auth-method-buttons___jYEH7{display:flex;flex-direction:column;gap:.5em}.SignInAuthMethodButtons-module__auth-btn___o1a09{padding-left:2em;padding-right:2em;gap:0}.SignInAuthMethodButtons-module__auth-btn-icon___VjvFY{flex-shrink:0;flex-grow:0;height:1.25em;width:auto}.SignInAuthMethodButtons-module__auth-btn-label___mEWd3{flex-grow:1;padding:0 1.75em 0 .5em}.SignInAuthMethodButtons-module__divider___zphEh{position:relative;text-align:center;margin:1em 0 .5em}.SignInAuthMethodButtons-module__divider___zphEh hr{border:0;border-top:1px solid var(--cdp-web-colors-page-border-default);margin:0;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.SignInAuthMethodButtons-module__divider___zphEh span{background-color:var(--cdp-web-colors-page-bg-default);color:var(--cdp-web-colors-page-text-muted);text-transform:uppercase;font-size:.875em;font-weight:500;padding:0 .5em;position:relative}
@@ -0,0 +1 @@
1
+ .SignInBackButton-module__icon___stNFS{width:1.5em;height:auto}
@@ -0,0 +1 @@
1
+ .SignInCredentials-module__credentials___LE04y{font-weight:500;overflow-wrap:break-word;word-wrap:break-word}
@@ -1 +1 @@
1
- .SignInDescription-module__description___jZLc6{color:var(--cdp-web-colors-page-text-muted);margin:0}.SignInDescription-module__medium___NGpLf{font-weight:500}
1
+ .SignInDescription-module__description___jZLc6{text-align:center;margin:0}
@@ -0,0 +1 @@
1
+ .SignInFooter-module__footer___DLNrl{color:var(--cdp-web-colors-page-text-muted);display:flex;align-items:center;justify-content:center;gap:.5em;line-height:1;padding:1em 2em 0}.SignInFooter-module__footer___DLNrl:first-child{border-top:0}.SignInFooter-module__footer___DLNrl p{display:flex;align-items:center;font-size:.75em;gap:.25em;margin:0}.SignInFooter-module__icon___hFhfx{height:auto;width:.75em}.SignInFooter-module__coinbase-icon___NeFOp{height:1em;width:auto}
@@ -1 +1 @@
1
- .SignInForm-module__form-wrapper___SlQkZ{display:flex;flex-direction:column}.SignInForm-module__form___8Mc3V{display:flex;flex-direction:column;gap:1em;padding-bottom:2em}.SignInForm-module__form-footer___PqM2J{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;min-height:1.5em;padding-top:1.5em}.SignInForm-module__server-state-wrapper___QVsXy{margin-top:-1.5em;min-height:1.5em;position:relative;top:-.25em}.SignInForm-module__loading-spinner___W6gZo{color:var(--cdp-web-colors-link-primary-text-default);display:block;margin:0 auto}.SignInForm-module__server-error___dD9VE{justify-content:center}.SignInForm-module__resend-wrapper___ODSQA{display:flex;align-items:center;justify-content:center;text-align:center;min-height:1.5em}.SignInForm-module__reset-timer___Ms2YZ{color:var(--cdp-web-colors-page-text-muted);font-weight:500;line-height:1em;min-height:1em;display:flex;align-items:center;justify-content:center}.SignInForm-module__reset-timer___Ms2YZ p{font-size:.875em;line-height:1;margin:0}.SignInForm-module__footer___6Lo9w{color:var(--cdp-web-colors-page-text-muted);display:flex;align-items:center;justify-content:center;gap:.5em;line-height:1;padding:1em 2em 1.5em}.SignInForm-module__coinbase-icon___vGv7u{height:1em;width:auto}.SignInForm-module__footer___6Lo9w p{display:flex;align-items:center;font-size:.75em;gap:.25em;margin:0}.SignInForm-module__hr___fOcy4{border:0;border-top:1px solid var(--cdp-web-colors-page-border-default);width:100%}.SignInForm-module__icon___qkJnq{height:auto;width:.75em}
1
+ .SignInForm-module__auth-method-wrapper___uIOAB{display:flex;flex-direction:column;gap:1em}
@@ -1 +1 @@
1
- .SignInImage-module__logo___rlzt-{display:block;margin:0;width:64px;height:64px;border-radius:9999em;object-fit:cover}.SignInImage-module__success-icon___avUF9{color:var(--cdp-web-colors-fg-positive);display:block;height:4em;width:4em}
1
+ .SignInImage-module__logo___rlzt-{display:block;margin:0 auto;width:auto;height:64px;object-fit:cover}
@@ -1 +1 @@
1
- .SignInModal-module__trigger___IcJ8x{padding-left:2em;padding-right:2em}.SignInModal-module__modal___PErrT{--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%);box-sizing:border-box;box-shadow:var(--shadow-md);width:100%;max-width:29.375em;background:var(--cdp-web-colors-page-bg-default);border-radius:.5em;outline:1px solid var(--cdp-web-colors-page-border-default);position:relative}.SignInModal-module__modal___PErrT[data-state=open]{animation:SignInModal-module__slide-in___eayZg .2s ease-out,SignInModal-module__fade-in___YW32x .2s ease-out}.SignInModal-module__modal___PErrT[data-state=closed]{animation:SignInModal-module__slide-out___fY2xG .2s ease-in,SignInModal-module__fade-out___WE6g4 .2s ease-in}.SignInModal-module__sign-in___n05-5{height:100%;padding:2em 0 0}.SignInModal-module__sign-in-image___DGg7B,.SignInModal-module__sign-in-title___cju2s,.SignInModal-module__sign-in-description___-Oi9q,.SignInModal-module__sign-in-form___Jzx1->form,.SignInModal-module__sign-in-form___Jzx1->div{padding-left:2em;padding-right:2em}.SignInModal-module__sign-in-form___Jzx1-,.SignInModal-module__sign-in-form___Jzx1- form{flex-grow:1}.SignInModal-module__sign-in-title___cju2s,.SignInModal-module__sign-in-description___-Oi9q{text-align:center}.SignInModal-module__sign-in-image___DGg7B{display:flex;justify-content:center;align-items:center;flex-grow:1;margin:2em 0}.SignInModal-module__close-button___k1I5Q{position:absolute;top:1.5em;right:1.5em;width:3em}.SignInModal-module__close-button___k1I5Q svg{height:1em;width:1em}.SignInModal-module__overlay___-0rmi{background:var(--cdp-web-colors-bg-overlay);box-sizing:border-box;-webkit-backdrop-filter:blur(.5em);backdrop-filter:blur(.5em);display:grid;grid-template-rows:auto 1fr;inset:0;overflow-y:auto;place-items:end center;position:fixed;z-index:1000}.SignInModal-module__overlay___-0rmi[data-state=open]{animation:SignInModal-module__fade-in___YW32x .2s ease-out}.SignInModal-module__overlay___-0rmi[data-state=closed]{animation:SignInModal-module__fade-out___WE6g4 .2s ease-in}.SignInModal-module__spacer___x-lRH{height:1em}@keyframes SignInModal-module__fade-in___YW32x{0%{opacity:0}to{opacity:1}}@keyframes SignInModal-module__fade-out___WE6g4{0%{opacity:1}to{opacity:0}}@keyframes SignInModal-module__slide-in___eayZg{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes SignInModal-module__slide-out___fY2xG{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (min-width: 400px){.SignInModal-module__overlay___-0rmi{padding:.5rem}}@media (min-width: 470px){.SignInModal-module__overlay___-0rmi{place-items:center;padding:1rem;grid-template-rows:1fr}.SignInModal-module__modal___PErrT{height:auto}.SignInModal-module__spacer___x-lRH{display:none}.SignInModal-module__sign-in___n05-5{padding-top:2.5em}.SignInModal-module__sign-in-image___DGg7B,.SignInModal-module__sign-in-title___cju2s,.SignInModal-module__sign-in-description___-Oi9q,.SignInModal-module__sign-in-form___Jzx1->form,.SignInModal-module__sign-in-form___Jzx1->div{padding-left:2.5em;padding-right:2.5em}.SignInModal-module__sign-in-image___DGg7B{align-self:flex-start;margin:0}.SignInModal-module__sign-in-image___DGg7B:empty{display:none}.SignInModal-module__sign-in-title___cju2s,.SignInModal-module__sign-in-description___-Oi9q{text-align:left}@keyframes SignInModal-module__slide-in___eayZg{0%{transform:translateY(10%)}to{transform:translateY(0)}}@keyframes SignInModal-module__slide-out___fY2xG{0%{transform:translateY(0)}to{transform:translateY(10%)}}}
1
+ .SignInModal-module__trigger___IcJ8x{padding-left:2em;padding-right:2em}.SignInModal-module__sign-in___n05-5{height:100%;overflow:hidden}.SignInModal-module__sign-in___n05-5.SignInModal-module__no-footer___meSt1{padding-bottom:2em}.SignInModal-module__title-desc-wrapper___--XLa{display:flex;flex-direction:column;gap:1.5em;margin-bottom:1.5em}.SignInModal-module__sign-in-form___Jzx1-,.SignInModal-module__sign-in-form___Jzx1- form{flex-grow:1}.SignInModal-module__sign-in-image___DGg7B{flex-grow:1;margin:2em 0}.SignInModal-module__footer___6qEo2{margin-top:1.5em}.SignInModal-module__buttons___jhaVn{display:flex;justify-content:flex-end;align-items:center;margin-left:-.75em;margin-right:-.75em;width:calc(100% + 1.5em)}.SignInModal-module__back-button___nMh2-{margin-left:0;margin-right:auto}.SignInModal-module__close-icon___b-gMh{height:auto;width:1.5em}@media (min-width: 450px){.SignInModal-module__sign-in-image___DGg7B{flex-grow:0;margin:0 0 1.5em}.SignInModal-module__sign-in-image___DGg7B:empty{display:none}}
@@ -1 +1 @@
1
- .SignInTitle-module__heading___QJ071{font-size:1.75em;line-height:1.29;margin:0}
1
+ .SignInTitle-module__heading___QJ071{font-size:1.25em;font-weight:500;line-height:1.4;text-align:center;margin:0}
@@ -0,0 +1 @@
1
+ .SuccessMessage-module__success___ZOELg{color:var(--cdp-web-colors-fg-positive);font-family:var(--cdp-web-font-family-sans);font-size:var(--cdp-web-font-size-base);line-height:1.25em;display:flex;align-items:center;gap:.25em;margin:0}.SuccessMessage-module__success___ZOELg span{font-size:.875em}.SuccessMessage-module__icon___QpPW-{width:auto;height:.875em;flex-grow:0;flex-shrink:0}
@@ -0,0 +1 @@
1
+ .SwitchFadeTransition-module__switch-fade-transition___--lbT[data-transition=fade]{position:relative}.SwitchFadeTransition-module__switch-fade-transition___--lbT [data-transition=fade][data-status]{transition:opacity var(--cdp-web-transition-timeout, .2s);width:100%}.SwitchFadeTransition-module__switch-fade-transition___--lbT [data-transition=fade][data-status=preEnter]{opacity:0}.SwitchFadeTransition-module__switch-fade-transition___--lbT [data-transition=fade][data-status=exiting],.SwitchFadeTransition-module__switch-fade-transition___--lbT [data-transition=fade][data-status=exited]{opacity:0;position:absolute;top:0;left:0}
@@ -0,0 +1 @@
1
+ .SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-left][data-status],.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-right][data-status]{width:100%;transition:opacity var(--cdp-web-transition-timeout, .2s),transform var(--cdp-web-transition-timeout, .2s)}.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-left],.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-right],.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-left][data-animate-height=true]>div,.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-right][data-animate-height=true]>div{display:flex;position:relative;width:100%}.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-left][data-animate-height=true]>div,.SwitchSlideTransition-module__switch-slide-transition___FykQG[data-transition=slide-right][data-animate-height=true]>div{align-items:flex-start}.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-left][data-status=preEnter]{opacity:0;transform:translate(200%)}.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-left][data-status=exiting],.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-left][data-status=exited]{position:absolute;opacity:0;transform:translate(-200%)}.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-right][data-status=preEnter]{opacity:0;transform:translate(-200%)}.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-right][data-status=exiting],.SwitchSlideTransition-module__switch-slide-transition___FykQG [data-transition=slide-right][data-status=exited]{position:absolute;opacity:0;transform:translate(200%)}
@@ -0,0 +1 @@
1
+ .SwitchTransition-module__transition-wrapper___jrI35[data-animate-height=true]{--cdp-web-transition-height: min-cotent;height:var(--cdp-web-transition-height);transition:height var(--cdp-web-transition-timeout, .2s) ease-in-out}
@@ -1 +1 @@
1
- .ThemeProvider-module__wrapper___aXwhZ{width:100%}
1
+ @import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap";.ThemeProvider-module__wrapper___aXwhZ{width:100%}
@@ -1 +1 @@
1
- .VisuallyHidden-module__visually-hidden___qdUPg{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
1
+ .VisuallyHidden-module__visually-hidden___tD5Vj{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
@@ -0,0 +1,12 @@
1
+ import "../components/CDPReactProvider/index.js";
2
+ import { config as o } from "../components/SignIn/flows/SignInWithEmail.js";
3
+ import { config as i } from "../components/SignIn/flows/SignInWithSms.js";
4
+ import "@coinbase/cdp-hooks";
5
+ import "react";
6
+ const a = {
7
+ email: o,
8
+ sms: i
9
+ };
10
+ export {
11
+ a
12
+ };
@@ -1,13 +1,13 @@
1
1
  import { jsxs as T, jsx as l } from "react/jsx-runtime";
2
2
  import { useIsInitialized as _, useIsSignedIn as v } from "@coinbase/cdp-hooks";
3
3
  import { useState as c, useRef as w, useEffect as f } from "react";
4
- import { LoadingSkeleton as x } from "../LoadingSkeleton/index.js";
5
- import { SignInModal as y } from "../SignInModal/index.js";
6
- import { SignOutButton as A } from "../SignOutButton/index.js";
4
+ import { SignInModal as x } from "../SignInModal/index.js";
5
+ import { SignOutButton as y } from "../SignOutButton/index.js";
6
+ import { LoadingSkeleton as A } from "../ui/LoadingSkeleton/index.js";
7
7
  import '../../assets/AuthButton.css';const B = "AuthButton-module__loading___JpDqi", D = {
8
8
  loading: B
9
9
  }, L = ({
10
- closeOnSuccessDelay: S = 0,
10
+ closeOnSuccessDelay: S = 800,
11
11
  onSignInSuccess: g,
12
12
  onSignInSuccessTransitionEnd: a,
13
13
  onSignOutSuccess: h,
@@ -48,9 +48,9 @@ import '../../assets/AuthButton.css';const B = "AuthButton-module__loading___JpD
48
48
  } else
49
49
  s(!1);
50
50
  }, [u, t]), /* @__PURE__ */ T("div", { ...p, children: [
51
- !i && /* @__PURE__ */ l(x, { className: D.loading }),
52
- i && m && /* @__PURE__ */ l(A, { onSuccess: O }),
53
- i && !m && /* @__PURE__ */ l(y, { open: t, setIsOpen: d, onSuccess: I })
51
+ !i && /* @__PURE__ */ l(A, { className: D.loading }),
52
+ i && m && /* @__PURE__ */ l(y, { onSuccess: O }),
53
+ i && !m && /* @__PURE__ */ l(x, { open: t, setIsOpen: d, onSuccess: I })
54
54
  ] });
55
55
  };
56
56
  export {
@@ -1,9 +1,12 @@
1
1
  import { CDPHooksProviderProps } from '@coinbase/cdp-hooks';
2
2
  import { ThemeProviderProps } from '../ThemeProvider';
3
+ export declare const AUTH_METHODS: readonly ["email", "sms"];
4
+ export type AuthMethod = (typeof AUTH_METHODS)[number];
3
5
  export interface AppConfig {
4
6
  name: string;
5
7
  logoUrl?: string;
6
8
  showCoinbaseFooter?: boolean;
9
+ authMethods?: AuthMethod[];
7
10
  }
8
11
  export type CDPReactProviderProps = {
9
12
  app?: AppConfig;
@@ -1,32 +1,39 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import { CDPContext as c, CDPHooksProvider as C } from "@coinbase/cdp-hooks";
3
- import { createContext as d, useContext as i, useMemo as u } from "react";
4
- import { ThemeProvider as m } from "../ThemeProvider/index.js";
5
- const g = ({ children: o, config: e, theme: r, app: s }) => {
6
- const n = /* @__PURE__ */ t(x, { app: s, children: /* @__PURE__ */ t(m, { theme: r, children: o }) });
3
+ import { createContext as d, useContext as i, useMemo as m } from "react";
4
+ import { ThemeProvider as u } from "../ThemeProvider/index.js";
5
+ const A = [
6
+ /** Email OTP method */
7
+ "email",
8
+ /** SMS OTP method */
9
+ "sms"
10
+ ], g = ({ children: o, config: e, theme: r, app: p }) => {
11
+ const n = /* @__PURE__ */ t(f, { app: p, children: /* @__PURE__ */ t(u, { theme: r, children: o }) });
7
12
  return i(c) ? n : /* @__PURE__ */ t(C, { config: e, children: n });
8
- }, p = d(void 0), f = {
13
+ }, s = d(void 0), a = {
9
14
  name: "",
10
15
  logoUrl: "",
11
- showCoinbaseFooter: !0
12
- }, x = ({ children: o, app: e }) => {
13
- const r = u(
16
+ showCoinbaseFooter: !0,
17
+ authMethods: ["email"]
18
+ }, f = ({ children: o, app: e }) => {
19
+ const r = m(
14
20
  () => ({
15
21
  app: {
16
- ...f,
22
+ ...a,
17
23
  ...e
18
24
  }
19
25
  }),
20
26
  [e]
21
27
  );
22
- return /* @__PURE__ */ t(p.Provider, { value: r, children: o });
23
- }, A = () => {
24
- const o = i(p);
28
+ return /* @__PURE__ */ t(s.Provider, { value: r, children: o });
29
+ }, D = () => {
30
+ const o = i(s);
25
31
  if (!o)
26
32
  throw new Error("useAppConfig must be used within an AppConfigProvider");
27
33
  return o.app;
28
34
  };
29
35
  export {
36
+ A as AUTH_METHODS,
30
37
  g as CDPReactProvider,
31
- A as useAppConfig
38
+ D as useAppConfig
32
39
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as b } from "react/jsx-runtime";
2
2
  import { useSendEvmTransaction as y, APIError as T } from "@coinbase/cdp-hooks";
3
3
  import { useState as _, useCallback as v } from "react";
4
- import { Button as w } from "../Button/index.js";
4
+ import { Button as w } from "../ui/Button/index.js";
5
5
  import "../../theme/theme.js";
6
6
  import { getMessageFromUnknownError as B } from "../../utils/getMessageFromUnknownError.js";
7
7
  import '../../assets/SendTransactionButton.css';const P = {
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { AuthMethod } from '../CDPReactProvider/CDPReactProvider';
3
+ export interface SignInAuthMethodButtonProps {
4
+ key: AuthMethod;
5
+ label: string;
6
+ ariaLabel?: string;
7
+ icon: ReactNode;
8
+ onClick: () => void;
9
+ }
10
+ export interface SignInAuthMethodButtonsProps {
11
+ activeMethod?: AuthMethod;
12
+ }
13
+ export declare const SignInAuthMethodButtons: ({ activeMethod }: SignInAuthMethodButtonsProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,59 @@
1
+ import { jsx as n, jsxs as i } from "react/jsx-runtime";
2
+ import { useMemo as c } from "react";
3
+ import { useAppConfig as d } from "../CDPReactProvider/index.js";
4
+ import { useSignInContext as m } from "./SignInProvider.js";
5
+ import { Button as _ } from "../ui/Button/index.js";
6
+ import { IconEnvelope as b } from "../../icons/IconEnvelope.js";
7
+ import { IconPhone as p } from "../../icons/IconPhone.js";
8
+ import '../../assets/SignInAuthMethodButtons.css';const f = "SignInAuthMethodButtons-module__divider___zphEh", o = {
9
+ "auth-method-buttons": "SignInAuthMethodButtons-module__auth-method-buttons___jYEH7",
10
+ "auth-btn": "SignInAuthMethodButtons-module__auth-btn___o1a09",
11
+ "auth-btn-icon": "SignInAuthMethodButtons-module__auth-btn-icon___VjvFY",
12
+ "auth-btn-label": "SignInAuthMethodButtons-module__auth-btn-label___mEWd3",
13
+ divider: f
14
+ }, r = {
15
+ email: {
16
+ label: "Continue with email",
17
+ icon: /* @__PURE__ */ n(b, {})
18
+ },
19
+ sms: {
20
+ label: "Continue with phone",
21
+ icon: /* @__PURE__ */ n(p, {})
22
+ }
23
+ }, S = ({ activeMethod: a }) => {
24
+ const { authMethods: u } = d(), { dispatch: l } = m(), e = c(() => (u || ["email"]).map((t) => {
25
+ if (!r[t])
26
+ return null;
27
+ const { label: s, icon: h } = r[t];
28
+ return {
29
+ key: t,
30
+ label: s,
31
+ icon: h,
32
+ onClick: () => l({ type: "SET_AUTH_METHOD", payload: { authMethod: t } })
33
+ };
34
+ }).filter((t) => t !== null), [u, l]);
35
+ return !e.length || e.length === 1 && e[0].key === a ? null : /* @__PURE__ */ i("div", { className: o["auth-method-buttons"], children: [
36
+ /* @__PURE__ */ i("div", { className: o.divider, children: [
37
+ /* @__PURE__ */ n("hr", {}),
38
+ /* @__PURE__ */ n("span", { children: "or" })
39
+ ] }),
40
+ e.map((t) => t.key === a ? null : /* @__PURE__ */ i(
41
+ _,
42
+ {
43
+ "aria-label": t.ariaLabel,
44
+ className: o["auth-btn"],
45
+ type: "button",
46
+ variant: "secondary",
47
+ onClick: t.onClick,
48
+ children: [
49
+ /* @__PURE__ */ n("span", { className: o["auth-btn-icon"], children: t.icon }),
50
+ /* @__PURE__ */ n("span", { className: o["auth-btn-label"], children: t.label })
51
+ ]
52
+ },
53
+ t.key
54
+ ))
55
+ ] });
56
+ };
57
+ export {
58
+ S as SignInAuthMethodButtons
59
+ };
@@ -0,0 +1,9 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { ButtonSize, ButtonVariant } from '../../theme/theme';
3
+ import { SignInState } from './types';
4
+ export interface SignInBackButtonProps extends HTMLAttributes<HTMLButtonElement> {
5
+ step?: SignInState["step"];
6
+ size?: ButtonSize;
7
+ variant?: ButtonVariant;
8
+ }
9
+ export declare const SignInBackButton: ({ step: stepFromProps, children, onClick, size, variant, ["aria-label"]: ariaLabel, ...props }: SignInBackButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,38 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { useMemo as f } from "react";
3
+ import { Button as S } from "../ui/Button/index.js";
4
+ import { IconArrowLeft as d } from "../../icons/IconArrowLeft.js";
5
+ import "../../theme/theme.js";
6
+ import { useSignInContext as B } from "./SignInProvider.js";
7
+ import "@coinbase/cdp-hooks";
8
+ import "../CDPReactProvider/index.js";
9
+ import '../../assets/SignInBackButton.css';const _ = "SignInBackButton-module__icon___stNFS", k = {
10
+ icon: _
11
+ }, T = ({
12
+ step: t,
13
+ children: i,
14
+ onClick: r,
15
+ size: e = "md",
16
+ variant: c = "transparentSecondary",
17
+ ["aria-label"]: s = "Back",
18
+ ...a
19
+ }) => {
20
+ const { state: o, dispatch: m } = B(), p = f(() => t || o.step, [t, o.step]), l = (u) => {
21
+ r?.(u), m({ type: "RESET_STATE" });
22
+ };
23
+ return p !== "verification" ? null : /* @__PURE__ */ n(
24
+ S,
25
+ {
26
+ type: "button",
27
+ "aria-label": s,
28
+ onClick: l,
29
+ size: e,
30
+ variant: c,
31
+ ...a,
32
+ children: i || /* @__PURE__ */ n(d, { className: k.icon })
33
+ }
34
+ );
35
+ };
36
+ export {
37
+ T as SignInBackButton
38
+ };
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export declare const SignInCredentials: ({ children, ...props }: HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import "react";
3
+ import '../../assets/SignInCredentials.css';const t = "SignInCredentials-module__credentials___LE04y", r = {
4
+ credentials: t
5
+ }, l = ({ children: e, ...n }) => /* @__PURE__ */ s("span", { className: r.credentials, ...n, children: e });
6
+ export {
7
+ l as SignInCredentials
8
+ };
@@ -1,5 +1,6 @@
1
1
  import { ElementType, HTMLAttributes } from 'react';
2
- export type SignInDescriptionProps = {
2
+ import { SignInTitleAndDescriptionProps } from './types';
3
+ export interface SignInDescriptionProps extends SignInTitleAndDescriptionProps, HTMLAttributes<HTMLElement> {
3
4
  as?: ElementType;
4
- } & HTMLAttributes<HTMLElement>;
5
- export declare const SignInDescription: ({ as: Component, children, className, ...props }: SignInDescriptionProps) => import("react/jsx-runtime").JSX.Element;
5
+ }
6
+ export declare const SignInDescription: ({ as: Component, authMethod: authMethodFromProps, children, className, step: stepFromProps, ...props }: SignInDescriptionProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,29 +1,22 @@
1
- import { jsxs as t, Fragment as i, jsx as e } from "react/jsx-runtime";
1
+ import { jsx as i } from "react/jsx-runtime";
2
2
  import "react";
3
- import { useSignInContext as l } from "./SignInProvider.js";
4
- import '../../assets/SignInDescription.css';const u = "SignInDescription-module__description___jZLc6", a = "SignInDescription-module__medium___NGpLf", o = {
5
- description: u,
6
- medium: a
7
- }, _ = () => /* @__PURE__ */ e(i, { children: "We’ll send you a verification code via email." }), g = ({ email: n }) => /* @__PURE__ */ t(i, { children: [
8
- "We’ve sent a 6 digit code to ",
9
- /* @__PURE__ */ e("span", { className: o.medium, children: n }),
10
- "."
11
- ] }), D = () => /* @__PURE__ */ e(i, { children: "You’ve successfully signed in." }), v = ({
3
+ import { a as d } from "../../chunks/index.BzllgVaP.js";
4
+ import { useSignInContext as h } from "./SignInProvider.js";
5
+ import "@coinbase/cdp-hooks";
6
+ import "../CDPReactProvider/index.js";
7
+ import '../../assets/SignInDescription.css';const u = "SignInDescription-module__description___jZLc6", _ = {
8
+ description: u
9
+ }, M = ({
12
10
  as: n = "p",
13
- children: c,
14
- className: r = "",
15
- ...m
11
+ authMethod: e,
12
+ children: t,
13
+ className: p = "",
14
+ step: r,
15
+ ...c
16
16
  }) => {
17
- const { state: d } = l(), { step: s, email: p } = d;
18
- return /* @__PURE__ */ t(n, { className: `${o.description} ${r}`, ...m, children: [
19
- c,
20
- !c && /* @__PURE__ */ t(i, { children: [
21
- s === "otp" && /* @__PURE__ */ e(g, { email: p }),
22
- s === "success" && /* @__PURE__ */ e(D, {}),
23
- s === "email" && /* @__PURE__ */ e(_, {})
24
- ] })
25
- ] });
17
+ const { state: o } = h(), m = r || o.step, s = e || o.authMethod, a = d[s].description;
18
+ return /* @__PURE__ */ i(n, { className: `${_.description} ${p}`, ...c, children: t || /* @__PURE__ */ i(a, { step: m, authMethod: s }) });
26
19
  };
27
20
  export {
28
- v as SignInDescription
21
+ M as SignInDescription
29
22
  };
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export declare const SignInFooter: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { jsxs as e, jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import { IconCoinbaseWordmark as c } from "../../icons/IconCoinbaseWordmark.js";
4
+ import { IconLock as s } from "../../icons/IconLock.js";
5
+ import '../../assets/SignInFooter.css';const t = "SignInFooter-module__footer___DLNrl", a = "SignInFooter-module__icon___hFhfx", n = {
6
+ footer: t,
7
+ icon: a,
8
+ "coinbase-icon": "SignInFooter-module__coinbase-icon___NeFOp"
9
+ }, f = ({ className: r = "", ...i }) => /* @__PURE__ */ e("div", { className: `${n.footer} ${r}`, ...i, children: [
10
+ /* @__PURE__ */ o(s, { className: n.icon }),
11
+ /* @__PURE__ */ e("p", { children: [
12
+ /* @__PURE__ */ o("span", { children: "Secured by " }),
13
+ /* @__PURE__ */ o(c, { className: n["coinbase-icon"], "aria-label": "Coinbase" })
14
+ ] })
15
+ ] });
16
+ export {
17
+ f as SignInFooter
18
+ };
@@ -1,6 +1,14 @@
1
- import { ElementType, HTMLAttributes } from 'react';
2
- export type SignInFormProps = {
1
+ import { ElementType, HTMLAttributes, ReactNode } from 'react';
2
+ import { AuthMethod } from '../CDPReactProvider/CDPReactProvider';
3
+ import { SignInState } from './types';
4
+ export interface SignInFormProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
3
5
  as?: ElementType;
4
6
  onSuccess?: () => void;
5
- } & HTMLAttributes<HTMLElement>;
6
- export declare const SignInForm: ({ as: Component, className, onSuccess, ...props }: SignInFormProps) => import("react/jsx-runtime").JSX.Element;
7
+ step?: SignInState["step"];
8
+ children?: (props: {
9
+ step: SignInState["step"];
10
+ authMethod: AuthMethod;
11
+ Form: ReactNode;
12
+ }) => ReactNode;
13
+ }
14
+ export declare const SignInForm: ({ onSuccess, step: stepFromProps, children, ...props }: SignInFormProps) => import("react/jsx-runtime").JSX.Element;