@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-DV31RTL_.js');
6
6
  var StytchSSRProxy = require('./StytchSSRProxy-Bz6LNYdq.js');
7
- var shadcn = require('./shadcn-Z4AvHriT.js');
7
+ var shadcn = require('./shadcn-aVU6Lm9q.js');
8
8
  var idpHelpers = require('./idpHelpers-Bj_7pbfW.js');
9
9
  var ReactDOM = require('react-dom');
10
10
  var jsxRuntime = require('react/jsx-runtime');
@@ -1907,11 +1907,15 @@ const walletIcons = {
1907
1907
  [StytchSSRProxy.Wallets.Coinbase]: 'coinbase',
1908
1908
  [StytchSSRProxy.Wallets.Metamask]: 'metamask'
1909
1909
  };
1910
- const useCryptoIcon = ()=>{
1911
- const iconRegistry = shadcn.usePresentation().iconRegistry;
1912
- return (wallet)=>{
1913
- const iconName = walletIcons[wallet];
1914
- return iconName ? iconRegistry[iconName] : GenericWalletIcon;
1910
+ const useCryptoButtonProps = ()=>{
1911
+ const presentation = shadcn.usePresentation();
1912
+ const iconRegistry = presentation.iconRegistry;
1913
+ return {
1914
+ getIcon: (wallet)=>{
1915
+ const iconName = walletIcons[wallet];
1916
+ return iconName ? iconRegistry[iconName] : GenericWalletIcon;
1917
+ },
1918
+ getId: (wallet)=>shadcn.getButtonId(`wallet-${wallet}`, presentation.options)
1915
1919
  };
1916
1920
  };
1917
1921
  const WalletToText = {
@@ -2089,7 +2093,7 @@ const CryptoWalletButtons = ({ type })=>{
2089
2093
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
2090
2094
  const [state, dispatch] = useGlobalReducer();
2091
2095
  const config = useConfig();
2092
- const getCryptoIcon = useCryptoIcon();
2096
+ const { getIcon, getId } = useCryptoButtonProps();
2093
2097
  const oAuthOptions = config.oauthOptions?.providers.length ?? 0;
2094
2098
  // Crypto Buttons on screen = Maximum Buttons - OAuth Buttons - 1 (Other crypto or set up new wallet)
2095
2099
  const cryptoButtonsOnMainScreen = MAX_BUTTONS - oAuthOptions - 1;
@@ -2113,12 +2117,13 @@ const CryptoWalletButtons = ({ type })=>{
2113
2117
  const walletsToRender = type === 'main' ? mainWallets : otherWallet;
2114
2118
  return /*#__PURE__*/ React__namespace.createElement(shadcn.ButtonColumn, null, walletsToRender.map((wallet)=>{
2115
2119
  const walletEnum = StytchSSRProxy.Wallets[wallet];
2116
- const Icon = getCryptoIcon(walletEnum);
2120
+ const Icon = getIcon(walletEnum);
2117
2121
  return /*#__PURE__*/ React__namespace.createElement(shadcn.Button, {
2118
2122
  key: wallet,
2119
2123
  variant: "outline",
2120
2124
  icon: /*#__PURE__*/ React__namespace.createElement(Icon, null),
2121
- onClick: ()=>onWalletStart(walletEnum)
2125
+ onClick: ()=>onWalletStart(walletEnum),
2126
+ id: getId(walletEnum)
2122
2127
  }, type === 'main' ? $__i18n._(walletMessages[walletEnum]) : $__i18n._(WalletToText[walletEnum]));
2123
2128
  }), renderOtherScreenButton && type === 'main' ? /*#__PURE__*/ React__namespace.createElement(shadcn.Button, {
2124
2129
  variant: "outline",
@@ -2126,7 +2131,8 @@ const CryptoWalletButtons = ({ type })=>{
2126
2131
  onClick: ()=>dispatch({
2127
2132
  type: 'transition',
2128
2133
  screen: AppScreens.CryptoOtherScreen
2129
- })
2134
+ }),
2135
+ id: getId(StytchSSRProxy.Wallets.GenericEthereumWallet)
2130
2136
  }, $__i18n._({
2131
2137
  id: "crypto.wallet.continueWithOtherWallet",
2132
2138
  message: "Continue with other Crypto Wallet"
@@ -3465,7 +3471,9 @@ const providerInfo = {
3465
3471
  const OAuthButton = ({ providerType, loginRedirectUrl, signupRedirectUrl, customScopes, providerParams, onSuccess })=>{
3466
3472
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
3467
3473
  const stytchClient = useStytch();
3468
- const iconRegistry = shadcn.usePresentation().iconRegistry;
3474
+ const presentation = shadcn.usePresentation();
3475
+ const iconRegistry = presentation.iconRegistry;
3476
+ const id = shadcn.getButtonId(`oauth-${providerType}`, presentation.options);
3469
3477
  const provider = providerInfo[providerType];
3470
3478
  let label = providerType;
3471
3479
  let icon = null;
@@ -3488,7 +3496,8 @@ const OAuthButton = ({ providerType, loginRedirectUrl, signupRedirectUrl, custom
3488
3496
  return /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
3489
3497
  onClick: onButtonClick,
3490
3498
  variant: "outline",
3491
- icon: icon
3499
+ icon: icon,
3500
+ id: id
3492
3501
  }, label);
3493
3502
  };
3494
3503
 
@@ -4750,7 +4759,7 @@ var css$1 = ".EditableRow_module_row__4e3b092b{align-items:center;display:flex;g
4750
4759
  shadcn.collectCss(css$1);
4751
4760
  var modules_20f268b7 = {"row":"EditableRow_module_row__4e3b092b","input":"EditableRow_module_input__4e3b092b","actions":"EditableRow_module_actions__4e3b092b"};
4752
4761
 
4753
- const commonButtonProps$1 = {
4762
+ const commonButtonProps = {
4754
4763
  block: false,
4755
4764
  variant: 'ghost'
4756
4765
  };
@@ -4804,7 +4813,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4804
4813
  }, /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
4805
4814
  key: "submit",
4806
4815
  type: "submit",
4807
- ...commonButtonProps$1
4816
+ ...commonButtonProps
4808
4817
  }, $__i18n._({
4809
4818
  id: "button.save",
4810
4819
  message: "Save"
@@ -4812,7 +4821,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4812
4821
  onClick: ()=>updateState({
4813
4822
  type: 'viewing'
4814
4823
  }),
4815
- ...commonButtonProps$1
4824
+ ...commonButtonProps
4816
4825
  }, $__i18n._({
4817
4826
  id: "button.cancel",
4818
4827
  message: "Cancel"
@@ -4830,7 +4839,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4830
4839
  newName: name
4831
4840
  }),
4832
4841
  disabled: othersEditing,
4833
- ...commonButtonProps$1
4842
+ ...commonButtonProps
4834
4843
  }, $__i18n._({
4835
4844
  id: "button.edit",
4836
4845
  message: "Edit"
@@ -4840,7 +4849,7 @@ const EditableRow = ({ id, name, className, state, updateState, handleEdit })=>{
4840
4849
  id
4841
4850
  }),
4842
4851
  disabled: othersEditing,
4843
- ...commonButtonProps$1
4852
+ ...commonButtonProps
4844
4853
  }, $__i18n._({
4845
4854
  id: "button.delete",
4846
4855
  message: "Delete"
@@ -5184,19 +5193,16 @@ const OtherCryptoWallets = ()=>{
5184
5193
  }))));
5185
5194
  };
5186
5195
 
5187
- const commonButtonProps = {
5188
- variant: 'outline',
5189
- target: '_blank',
5190
- rel: 'noreferrer'
5191
- };
5192
5196
  const SetupNewWallet = ()=>{
5193
5197
  const { i18n: $__i18n, _: $__ } = passwordManagerDisableAutofillProps.useLingui();
5194
5198
  const [, dispatch] = useGlobalReducer();
5195
- const getCryptoIcon = useCryptoIcon();
5196
- const MetamaskIcon = getCryptoIcon(StytchSSRProxy.Wallets.Metamask);
5197
- const PhantomIcon = getCryptoIcon(StytchSSRProxy.Wallets.Phantom);
5198
- const CoinbaseIcon = getCryptoIcon(StytchSSRProxy.Wallets.Coinbase);
5199
- const BinanceIcon = getCryptoIcon(StytchSSRProxy.Wallets.Binance);
5199
+ const { getIcon, getId } = useCryptoButtonProps();
5200
+ const walletsToRender = [
5201
+ StytchSSRProxy.Wallets.Metamask,
5202
+ StytchSSRProxy.Wallets.Phantom,
5203
+ StytchSSRProxy.Wallets.Coinbase,
5204
+ StytchSSRProxy.Wallets.Binance
5205
+ ];
5200
5206
  return /*#__PURE__*/ React__namespace.default.createElement(shadcn.Column, {
5201
5207
  gap: 6
5202
5208
  }, /*#__PURE__*/ React__namespace.default.createElement(shadcn.TextColumn, {
@@ -5212,35 +5218,18 @@ const SetupNewWallet = ()=>{
5212
5218
  id: "crypto.setupNewWallet.instruction",
5213
5219
  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."
5214
5220
  })
5215
- }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonColumn, null, /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5216
- ...commonButtonProps,
5217
- icon: /*#__PURE__*/ React__namespace.default.createElement(MetamaskIcon, null),
5218
- href: "https://metamask.io/"
5219
- }, $__i18n._({
5220
- id: "crypto.wallet.metamask",
5221
- message: "Metamask"
5222
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5223
- ...commonButtonProps,
5224
- icon: /*#__PURE__*/ React__namespace.default.createElement(PhantomIcon, null),
5225
- href: "https://phantom.com/"
5226
- }, $__i18n._({
5227
- id: "crypto.wallet.phantom",
5228
- message: "Phantom"
5229
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5230
- ...commonButtonProps,
5231
- icon: /*#__PURE__*/ React__namespace.default.createElement(CoinbaseIcon, null),
5232
- href: "https://www.coinbase.com/wallet"
5233
- }, $__i18n._({
5234
- id: "crypto.wallet.coinbase",
5235
- message: "Coinbase"
5236
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5237
- ...commonButtonProps,
5238
- icon: /*#__PURE__*/ React__namespace.default.createElement(BinanceIcon, null),
5239
- href: "https://web3.binance.com/en/about"
5240
- }, $__i18n._({
5241
- id: "crypto.wallet.binance",
5242
- message: "Binance"
5243
- })), /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
5221
+ }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonColumn, null, walletsToRender.map((wallet)=>{
5222
+ const Icon = getIcon(wallet);
5223
+ return /*#__PURE__*/ React__namespace.default.createElement(shadcn.ButtonAnchor, {
5224
+ key: wallet,
5225
+ variant: "outline",
5226
+ target: "_blank",
5227
+ rel: "noreferrer",
5228
+ icon: /*#__PURE__*/ React__namespace.default.createElement(Icon, null),
5229
+ href: "https://metamask.io/",
5230
+ id: getId(wallet)
5231
+ }, $__i18n._(WalletToText[wallet]));
5232
+ }), /*#__PURE__*/ React__namespace.default.createElement(shadcn.Button, {
5244
5233
  variant: "primary",
5245
5234
  onClick: ()=>dispatch({
5246
5235
  type: 'transition',