@stytch/react 20.0.0-next.3 → 20.0.0-next.4

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 (77) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/b2b/index.cjs +15 -8
  3. package/dist/cjs/b2b/index.cjs.map +1 -1
  4. package/dist/cjs/index.cjs +45 -56
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/{shadcn-Z4AvHriT.js → shadcn-aVU6Lm9q.js} +9 -3
  7. package/dist/cjs/shadcn-aVU6Lm9q.js.map +1 -0
  8. package/dist/cjs-dev/b2b/index.cjs +15 -8
  9. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  10. package/dist/cjs-dev/index.cjs +45 -56
  11. package/dist/cjs-dev/index.cjs.map +1 -1
  12. package/dist/cjs-dev/{shadcn-DnNfms7-.js → shadcn-DMk6ZSoD.js} +9 -3
  13. package/dist/cjs-dev/shadcn-DMk6ZSoD.js.map +1 -0
  14. package/dist/esm/_virtual/index3.mjs +5 -3
  15. package/dist/esm/_virtual/index3.mjs.map +1 -1
  16. package/dist/esm/_virtual/index4.mjs +3 -5
  17. package/dist/esm/_virtual/index4.mjs.map +1 -1
  18. package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  19. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
  20. package/dist/esm/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  21. package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
  22. package/dist/esm/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
  23. package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
  24. package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
  25. package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
  26. package/dist/esm/packages/web/src/ui/b2b/types/authMethodKeys.mjs.map +1 -1
  27. package/dist/esm/packages/web/src/ui/b2c/components/OAuthButton.mjs +6 -3
  28. package/dist/esm/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
  29. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -40
  30. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
  31. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +7 -5
  32. package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
  33. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +6 -1
  34. package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  35. package/dist/esm/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
  36. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  37. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  38. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs +1 -1
  39. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  40. package/dist/esm/packages/web/src/utils/crypto.mjs +12 -8
  41. package/dist/esm/packages/web/src/utils/crypto.mjs.map +1 -1
  42. package/dist/esm-dev/_virtual/index3.mjs +3 -5
  43. package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
  44. package/dist/esm-dev/_virtual/index4.mjs +5 -3
  45. package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
  46. package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  47. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs +6 -3
  48. package/dist/esm-dev/packages/web/src/ui/b2b/components/OAuthB2BButton.mjs.map +1 -1
  49. package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs +5 -3
  50. package/dist/esm-dev/packages/web/src/ui/b2b/components/SSOButton.mjs.map +1 -1
  51. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +6 -3
  52. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs.map +1 -1
  53. package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs +2 -2
  54. package/dist/esm-dev/packages/web/src/ui/b2b/types/authMethodKeys.mjs.map +1 -1
  55. package/dist/esm-dev/packages/web/src/ui/b2c/components/OAuthButton.mjs +6 -3
  56. package/dist/esm-dev/packages/web/src/ui/b2c/components/OAuthButton.mjs.map +1 -1
  57. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +20 -40
  58. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
  59. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +7 -5
  60. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
  61. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +6 -1
  62. package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
  63. package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs.map +1 -1
  64. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  65. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  66. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +1 -1
  67. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  68. package/dist/esm-dev/packages/web/src/utils/crypto.mjs +12 -8
  69. package/dist/esm-dev/packages/web/src/utils/crypto.mjs.map +1 -1
  70. package/dist/types/{PresentationConfig-CcNEXkjS.d.ts → PresentationConfig-B2jX85oV.d.ts} +8 -1
  71. package/dist/types/b2b/index.d.ts +3 -3
  72. package/dist/types/compat.d.ts +1 -1
  73. package/dist/types/index.d.ts +3 -3
  74. package/dist/types/{shadcn-B04UXoBD.d.ts → shadcn-CGdmyIUF.d.ts} +1 -1
  75. package/package.json +1 -1
  76. package/dist/cjs/shadcn-Z4AvHriT.js.map +0 -1
  77. package/dist/cjs-dev/shadcn-DnNfms7-.js.map +0 -1
@@ -4,7 +4,7 @@ var index_headless = require('./index.headless.cjs');
4
4
  var React = require('react');
5
5
  var passwordManagerDisableAutofillProps = require('./passwordManagerDisableAutofillProps-CgiK2M_U.js');
6
6
  var StytchSSRProxy = require('./StytchSSRProxy-d553KgcY.js');
7
- var shadcn = require('./shadcn-DnNfms7-.js');
7
+ var shadcn = require('./shadcn-DMk6ZSoD.js');
8
8
  var idpHelpers = require('./idpHelpers-DOYYSxsX.js');
9
9
  var dev = require('./dev-DaCGDI6V.js');
10
10
  var logger = require('./logger-CvOATP4R.js');
@@ -1915,11 +1915,15 @@ const walletIcons = {
1915
1915
  [StytchSSRProxy.Wallets.Coinbase]: 'coinbase',
1916
1916
  [StytchSSRProxy.Wallets.Metamask]: 'metamask'
1917
1917
  };
1918
- const useCryptoIcon = ()=>{
1919
- const iconRegistry = shadcn.usePresentation().iconRegistry;
1920
- return (wallet)=>{
1921
- const iconName = walletIcons[wallet];
1922
- return iconName ? iconRegistry[iconName] : GenericWalletIcon;
1918
+ const useCryptoButtonProps = ()=>{
1919
+ const presentation = shadcn.usePresentation();
1920
+ const iconRegistry = presentation.iconRegistry;
1921
+ return {
1922
+ getIcon: (wallet)=>{
1923
+ const iconName = walletIcons[wallet];
1924
+ return iconName ? iconRegistry[iconName] : GenericWalletIcon;
1925
+ },
1926
+ getId: (wallet)=>shadcn.getButtonId(`wallet-${wallet}`, presentation.options)
1923
1927
  };
1924
1928
  };
1925
1929
  const WalletToText = {
@@ -2097,7 +2101,7 @@ const CryptoWalletButtons = ({ type })=>{
2097
2101
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
2098
2102
  const [state, dispatch] = useGlobalReducer();
2099
2103
  const config = useConfig();
2100
- const getCryptoIcon = useCryptoIcon();
2104
+ const { getIcon, getId } = useCryptoButtonProps();
2101
2105
  const oAuthOptions = config.oauthOptions?.providers.length ?? 0;
2102
2106
  // Crypto Buttons on screen = Maximum Buttons - OAuth Buttons - 1 (Other crypto or set up new wallet)
2103
2107
  const cryptoButtonsOnMainScreen = MAX_BUTTONS - oAuthOptions - 1;
@@ -2121,12 +2125,13 @@ const CryptoWalletButtons = ({ type })=>{
2121
2125
  const walletsToRender = type === 'main' ? mainWallets : otherWallet;
2122
2126
  return /*#__PURE__*/ React__namespace.createElement(shadcn.ButtonColumn, null, walletsToRender.map((wallet)=>{
2123
2127
  const walletEnum = StytchSSRProxy.Wallets[wallet];
2124
- const Icon = getCryptoIcon(walletEnum);
2128
+ const Icon = getIcon(walletEnum);
2125
2129
  return /*#__PURE__*/ React__namespace.createElement(shadcn.Button, {
2126
2130
  key: wallet,
2127
2131
  variant: "outline",
2128
2132
  icon: /*#__PURE__*/ React__namespace.createElement(Icon, null),
2129
- onClick: ()=>onWalletStart(walletEnum)
2133
+ onClick: ()=>onWalletStart(walletEnum),
2134
+ id: getId(walletEnum)
2130
2135
  }, type === 'main' ? $__i18n._(walletMessages[walletEnum]) : $__i18n._(WalletToText[walletEnum]));
2131
2136
  }), renderOtherScreenButton && type === 'main' ? /*#__PURE__*/ React__namespace.createElement(shadcn.Button, {
2132
2137
  variant: "outline",
@@ -2134,7 +2139,8 @@ const CryptoWalletButtons = ({ type })=>{
2134
2139
  onClick: ()=>dispatch({
2135
2140
  type: 'transition',
2136
2141
  screen: AppScreens.CryptoOtherScreen
2137
- })
2142
+ }),
2143
+ id: getId(StytchSSRProxy.Wallets.GenericEthereumWallet)
2138
2144
  }, $__i18n._({
2139
2145
  id: "crypto.wallet.continueWithOtherWallet",
2140
2146
  message: "Continue with other Crypto Wallet"
@@ -3473,7 +3479,9 @@ const providerInfo = {
3473
3479
  const OAuthButton = ({ providerType, loginRedirectUrl, signupRedirectUrl, customScopes, providerParams, onSuccess })=>{
3474
3480
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
3475
3481
  const stytchClient = useStytch();
3476
- const iconRegistry = shadcn.usePresentation().iconRegistry;
3482
+ const presentation = shadcn.usePresentation();
3483
+ const iconRegistry = presentation.iconRegistry;
3484
+ const id = shadcn.getButtonId(`oauth-${providerType}`, presentation.options);
3477
3485
  const provider = providerInfo[providerType];
3478
3486
  let label = providerType;
3479
3487
  let icon = null;
@@ -3496,7 +3504,8 @@ const OAuthButton = ({ providerType, loginRedirectUrl, signupRedirectUrl, custom
3496
3504
  return /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
3497
3505
  onClick: onButtonClick,
3498
3506
  variant: "outline",
3499
- icon: icon
3507
+ icon: icon,
3508
+ id: id
3500
3509
  }, label);
3501
3510
  };
3502
3511
 
@@ -4760,7 +4769,7 @@ var css$1 = ".EditableRow_module_row__4e3b092b{align-items:center;display:flex;g
4760
4769
  shadcn.collectCss(css$1);
4761
4770
  var modules_20f268b7 = {"row":"EditableRow_module_row__4e3b092b","input":"EditableRow_module_input__4e3b092b","actions":"EditableRow_module_actions__4e3b092b"};
4762
4771
 
4763
- const commonButtonProps$1 = {
4772
+ const commonButtonProps = {
4764
4773
  block: false,
4765
4774
  variant: 'ghost'
4766
4775
  };
@@ -4814,7 +4823,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4814
4823
  }, /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
4815
4824
  key: "submit",
4816
4825
  type: "submit",
4817
- ...commonButtonProps$1
4826
+ ...commonButtonProps
4818
4827
  }, $__i18n._({
4819
4828
  id: "button.save",
4820
4829
  message: "Save"
@@ -4822,7 +4831,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4822
4831
  onClick: ()=>updateState({
4823
4832
  type: 'viewing'
4824
4833
  }),
4825
- ...commonButtonProps$1
4834
+ ...commonButtonProps
4826
4835
  }, $__i18n._({
4827
4836
  id: "button.cancel",
4828
4837
  message: "Cancel"
@@ -4840,7 +4849,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4840
4849
  newName: name
4841
4850
  }),
4842
4851
  disabled: othersEditing,
4843
- ...commonButtonProps$1
4852
+ ...commonButtonProps
4844
4853
  }, $__i18n._({
4845
4854
  id: "button.edit",
4846
4855
  message: "Edit"
@@ -4850,7 +4859,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4850
4859
  id
4851
4860
  }),
4852
4861
  disabled: othersEditing,
4853
- ...commonButtonProps$1
4862
+ ...commonButtonProps
4854
4863
  }, $__i18n._({
4855
4864
  id: "button.delete",
4856
4865
  message: "Delete"
@@ -5194,19 +5203,16 @@ const OtherCryptoWallets = ()=>{
5194
5203
  }))));
5195
5204
  };
5196
5205
 
5197
- const commonButtonProps = {
5198
- variant: 'outline',
5199
- target: '_blank',
5200
- rel: 'noreferrer'
5201
- };
5202
5206
  const SetupNewWallet = ()=>{
5203
5207
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
5204
5208
  const [, dispatch] = useGlobalReducer();
5205
- const getCryptoIcon = useCryptoIcon();
5206
- const MetamaskIcon = getCryptoIcon(StytchSSRProxy.Wallets.Metamask);
5207
- const PhantomIcon = getCryptoIcon(StytchSSRProxy.Wallets.Phantom);
5208
- const CoinbaseIcon = getCryptoIcon(StytchSSRProxy.Wallets.Coinbase);
5209
- const BinanceIcon = getCryptoIcon(StytchSSRProxy.Wallets.Binance);
5209
+ const { getIcon, getId } = useCryptoButtonProps();
5210
+ const walletsToRender = [
5211
+ StytchSSRProxy.Wallets.Metamask,
5212
+ StytchSSRProxy.Wallets.Phantom,
5213
+ StytchSSRProxy.Wallets.Coinbase,
5214
+ StytchSSRProxy.Wallets.Binance
5215
+ ];
5210
5216
  return /*#__PURE__*/ React__namespace.default.createElement(shadcn.Column, {
5211
5217
  gap: 6
5212
5218
  }, /*#__PURE__*/ React__namespace.default.createElement(shadcn.TextColumn, {
@@ -5222,35 +5228,18 @@ const SetupNewWallet = ()=>{
5222
5228
  id: "crypto.setupNewWallet.instruction",
5223
5229
  message: "We’ve included a few examples of wallet extensions you can find below. Once you’ve set up your wallet, click “Go back” to use it and sign in."
5224
5230
  })
5225
- }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonColumn, null, /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5226
- ...commonButtonProps,
5227
- icon: /*#__PURE__*/ React__namespace.default.createElement(MetamaskIcon, null),
5228
- href: "https://metamask.io/"
5229
- }, $__i18n._({
5230
- id: "crypto.wallet.metamask",
5231
- message: "Metamask"
5232
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5233
- ...commonButtonProps,
5234
- icon: /*#__PURE__*/ React__namespace.default.createElement(PhantomIcon, null),
5235
- href: "https://phantom.com/"
5236
- }, $__i18n._({
5237
- id: "crypto.wallet.phantom",
5238
- message: "Phantom"
5239
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5240
- ...commonButtonProps,
5241
- icon: /*#__PURE__*/ React__namespace.default.createElement(CoinbaseIcon, null),
5242
- href: "https://www.coinbase.com/wallet"
5243
- }, $__i18n._({
5244
- id: "crypto.wallet.coinbase",
5245
- message: "Coinbase"
5246
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5247
- ...commonButtonProps,
5248
- icon: /*#__PURE__*/ React__namespace.default.createElement(BinanceIcon, null),
5249
- href: "https://web3.binance.com/en/about"
5250
- }, $__i18n._({
5251
- id: "crypto.wallet.binance",
5252
- message: "Binance"
5253
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
5231
+ }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonColumn, null, walletsToRender.map((wallet)=>{
5232
+ const Icon = getIcon(wallet);
5233
+ return /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5234
+ key: wallet,
5235
+ variant: "outline",
5236
+ target: "_blank",
5237
+ rel: "noreferrer",
5238
+ icon: /*#__PURE__*/ React__namespace.default.createElement(Icon, null),
5239
+ href: "https://metamask.io/",
5240
+ id: getId(wallet)
5241
+ }, $__i18n._(WalletToText[wallet]));
5242
+ }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
5254
5243
  variant: "primary",
5255
5244
  onClick: ()=>dispatch({
5256
5245
  type: 'transition',